{"_id":"somnus","_rev":"57-27dd8cadad07d9e4dba5352742578861","name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","dist-tags":{"latest":"11.0.0","next":"8.3.2"},"versions":{"1.0.4":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.0.4","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.5.1","restify":"^4.0.3"},"devDependencies":{"mocha":"^2.3.4"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/thesephi/somnus.git"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"4a1c59efa9334a7ee2371a90f6a901d82af1148e","bugs":{"url":"https://github.com/thesephi/somnus/issues"},"homepage":"https://github.com/thesephi/somnus#readme","_id":"somnus@1.0.4","_shasum":"134d58e1842139229d9ad2a5d273d6d8ce1e0068","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.4.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"134d58e1842139229d9ad2a5d273d6d8ce1e0068","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.0.4.tgz","integrity":"sha512-D5nr2yqXybK4XnFIERqHSLMD5h5PuCuAAtlZNJLFCX+HEO3IbX/ZsL8HLhi12yjCaRoyefro70IDs7orMrwV1w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq3SkJKandK4XqmnjoTiyys9JCLkbNVJqEoeh7Mg/6dAIhAPDLBe8Gcl6PlDpIkusxmpn+APIjjkQeL8JmpAZFxKZ+"}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"deprecated":"Explicitly requiring initializing the framework with the syntax require('somnus').init()","directories":{}},"1.0.5":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.0.5","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.5.1","restify":"^4.0.3"},"devDependencies":{"mocha":"^2.3.4"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"752b705d1679149dd180e022773d35d2ae6053ea","bugs":{"url":"https://github.com/dklabco/somnus/issues"},"homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.0.5","_shasum":"0566ad2f9a46d9813813cf50cbcd9fdc4246ae65","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.4.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"0566ad2f9a46d9813813cf50cbcd9fdc4246ae65","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.0.5.tgz","integrity":"sha512-PWt/8G58tOUz2/050RFOPbKz4x3p8ZPHUSLFqyetV4zgYy7wMEA4TjlyHqLFxK6hoUNZzAC52G+Dq6QvNJnDhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHpR7IyxQetwAsu3sN0v9HthDAPHlXhg+ikUU9KLOb9QAiEAgoO3hIcKW1/DU10Ba+g1Sl0op0O03WsSMmu2vli73B4="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"deprecated":"Explicitly requiring initializing the framework with the syntax require('somnus').init()","directories":{}},"1.1.0":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.1.0","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.5.1","restify":"^4.0.3"},"devDependencies":{"mocha":"^2.3.4"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"02fb59c3ff75c05713f2e2feaf2ca2b06c91fe41","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.1.0","_shasum":"b677e4a147cbb9bc5a9c9306d46c0a00ee45de93","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.4.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"b677e4a147cbb9bc5a9c9306d46c0a00ee45de93","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.1.0.tgz","integrity":"sha512-wTVPsehb32LZ64HPpw6bQl8J1lTzgmJR92LpsInxdQQdVXAAQJcQqyMsuWS7aJXq/mgjRgwytl7tSjTC9Tarmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQm3KU8nZ6hX05QLHZWRVyAnCODycwDurItDUQz4RN7AiBwq3vKDnkKR4HoRTXQu7mP8N0cGBJYE5NTyM2iezYUTA=="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"directories":{}},"1.1.2":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.1.2","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.1","restify":"^4.0.4"},"devDependencies":{"mocha":"^2.4.5"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"fab571cd8fff5054cee6c4320be43df25e3afa2a","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.1.2","_shasum":"8d76f701d188be13194a2b8a45a24a4cd167adbc","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"8d76f701d188be13194a2b8a45a24a4cd167adbc","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.1.2.tgz","integrity":"sha512-d13uvzCjnO2vHV+8rBB8ODq5YupiVU8+uWePcb40Egog5F3C32SNA5ltuoyTMsv5y4JGJuiNXy+/gpU+nLP0Sg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD48gepFyqNsd30h4fvzse9QeElFHektUObvDwXXNQcdgIgCCjlGzPAeHkuOPdjQ368o8AAt8wm4+3FOQRM+PenT+k="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/somnus-1.1.2.tgz_1462221141630_0.7337077422998846"},"directories":{}},"1.1.3":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.1.3","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.1","restify":"^4.0.4"},"devDependencies":{"mocha":"^2.4.5"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"45559c2d3713a8c726b87216627762072c477745","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.1.3","_shasum":"f52354c5c60eb4d5c4b7362bf848cc496ff5b3d7","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"f52354c5c60eb4d5c4b7362bf848cc496ff5b3d7","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.1.3.tgz","integrity":"sha512-JhKA/ThwJR/YOSV4uNS6spCop6T1uCSmjEP8gBHrsj3cXSK6O6oS61JeB08AA0gYDpV55r4/D22Ve/ASgYn+xQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZvwa9XDVAbjNSMUN8ang/Sy4X72CuQ8U/ViaNtvytTQIhAK6TenJCQIuHeEZD4ogxvwcXatmViPdcaFyl0RaKbGCc"}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/somnus-1.1.3.tgz_1463995366273_0.5331682576797903"},"deprecated":"This version won't be fully compatible with older NodeJS versions","directories":{}},"1.1.4":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.1.4","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.1","restify":"^4.0.4"},"devDependencies":{"mocha":"^2.4.5"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"9ec263cd3f098063f4c1db3555c7dc71a6638f4f","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.1.4","_shasum":"d6b71195fe64ed95b3fb867f501d37199f9d82d1","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"d6b71195fe64ed95b3fb867f501d37199f9d82d1","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.1.4.tgz","integrity":"sha512-/CPBhxjCwOn2onkyFhMnHoQQ6FACRu5Trig/MoV3pTbE1rXtarZjJynYdGxkaidDyll6qQprzNAdxGKXOvxRmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEMnP4BSVtmYP4AFmSmPIUMPRcFJ8hRtIBNe8/hPKSpHAiB6NIEeHnyWqQfrEXXN0bH1mZBPOlbJp53c4ZC/Kzl5AQ=="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/somnus-1.1.4.tgz_1463996572873_0.5042812158353627"},"deprecated":"This version won't be fully compatible with older NodeJS versions","directories":{}},"1.1.5":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.1.5","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.1","restify":"^4.0.4"},"devDependencies":{"mocha":"^2.4.5"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"b9374e1e77497e29f674c1acf263ecafa698b7de","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.1.5","_shasum":"06e60eafb1b68e8cb2a5468178f81ac932ff55c9","_from":".","_npmVersion":"3.8.9","_nodeVersion":"6.2.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"shasum":"06e60eafb1b68e8cb2a5468178f81ac932ff55c9","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.1.5.tgz","integrity":"sha512-5jUB26ygX87CguPfBoH2MDQtyrsBnlc9F54qlzCVDWBDSclzNLUhsVCBgzipCHSRc1PWvTJW4wkBlXOnKGb9SA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL6OcvWRBW7u8GuzgwNKpA7vfQqrd05PnIlsjsWeIQyQIgeaXJFrGJaVNYTR6hUdaBBHezF5hPgbhwZW7kv+nJT44="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/somnus-1.1.5.tgz_1464118903933_0.0818224714603275"},"directories":{}},"1.2.0":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"1.2.0","main":"index.js","scripts":{"test":"mocha -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.10","restify":"^4.3.0"},"devDependencies":{"mocha":"^2.5.3"},"engines":{"node":">= 4.0.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"5f9dedd10e228f84efaba56160ce70b5aa9a1701","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@1.2.0","_npmVersion":"5.0.1","_nodeVersion":"8.0.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"integrity":"sha512-nAoRtdPszM5ofrTRAzFCIUyyhxbTDUxqtfFtm0yj7NkMga0MJdfAC54xRGZZ8IrvquTnkDO3uVn8VSB8S6+IMQ==","shasum":"40291e937f6a90f2de2f2e9a06a987d3a8238993","tarball":"https://registry.npmjs.org/somnus/-/somnus-1.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAgasKFcTUs8NfcJOeNhQeLa/HetVILegqpMcukKxZUwIhAJgPKREE2evlmGpYa9AzPpVusKTH51ZV8DAaCTNYwK/h"}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus-1.2.0.tgz_1496331152381_0.36013255384750664"},"directories":{}},"2.1.0":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"2.1.0","main":"lib/index.js","scripts":{"prepublish":"npm run build","build":"babel src --out-dir lib","test":"mocha --require babel-register -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.1","restify":"^4.0.4"},"devDependencies":{"babel-cli":"^6.24.1","babel-core":"^6.24.1","babel-preset-latest":"^6.24.1","babel-register":"^6.24.1","mocha":"^3.4.2"},"engines":{"node":">= 6.1.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"209565122e8eafb6b4904f9d36c13e09a028afe6","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@2.1.0","_npmVersion":"5.0.1","_nodeVersion":"8.0.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"integrity":"sha512-TD+u9RacLncqRTJFYl1aBJH9FHpb/7MQRhSBke63VnC19x0tZ9JXYPxMlJIHyNlZGv6c5oYI+BbzrM3Ya+mrPA==","shasum":"8f809aac8d3d4537996535e0a49d5bf76be7f671","tarball":"https://registry.npmjs.org/somnus/-/somnus-2.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0t7PrOxpfbAn6sUwDa2vU401UyArn3XrTME8JVVxGQAIgZwce63eHuXNCttHbiC9yyayxTXV6/FWOMXz/3QRlhlE="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus-2.1.0.tgz_1496347442199_0.8278589555993676"},"directories":{}},"2.1.1":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"2.1.1","main":"lib/index.js","scripts":{"prepublish":"npm run build","build":"babel src --out-dir lib","test":"mocha --require babel-register -R spec test/**/*.js","ex:hw":"node --harmony examples/hello-world | bunyan -o short"},"dependencies":{"bunyan":"^1.8.1","restify":"^4.0.4"},"devDependencies":{"babel-cli":"^6.24.1","babel-core":"^6.24.1","babel-preset-latest":"^6.24.1","babel-register":"^6.24.1","mocha":"^3.4.2"},"engines":{"node":">= 6.1.0"},"repository":{"type":"git","url":"git+https://github.com/dklabco/somnus.git"},"bugs":{"url":"https://github.com/dklabco/somnus/issues","email":"gate@dklab.co"},"author":{"name":"Khang Dinh","email":"dk@dklab.co"},"license":"MIT","keywords":["somnus","api","web","mbaas","framework","restify"],"gitHead":"a47974fc7e1725594981d4d0e42edea01f89e52b","homepage":"https://github.com/dklabco/somnus#readme","_id":"somnus@2.1.1","_npmVersion":"5.0.1","_nodeVersion":"8.0.0","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"integrity":"sha512-k2xTqwDsh57l2VCAURdrPuBtaqJf86uFvhE7/FVcK/1lsFlr70wJfbhkhlJ6TaV+SX1Cgt/P3FJXcdFUVLwVoA==","shasum":"5d655320fa71eda83ee5732f9bbd7a6879b52d65","tarball":"https://registry.npmjs.org/somnus/-/somnus-2.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGbNbSyIg6fcF12c4DT5yBGMcBl8u1PwTJwAm9ui89TpAiEAmzanSu+EWOIq6pFj7qo1ynuAWqRX0UUNlxPkJnhNNg8="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus-2.1.1.tgz_1496349222000_0.017598679289221764"},"directories":{}},"3.0.1":{"name":"somnus","description":"Minimal, database-agnostic API Framework based on Restify","version":"3.0.1","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"prepare":"npm run build:prod","prepublishOnly":"npm i && TARGET_DIST_BUILD=true npm test","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts","start":"npm run example:helloworld:ts","example:helloworld:ts":"LOG_LEVEL=info PORT=3001 ts-node examples/helloworld-ts | bunyan -o short","example:helloworld:js":"LOG_LEVEL=info node examples/helloworld-js | bunyan -o short"},"dependencies":{"bunyan":"^1.8.12","restify":"^7.3.0","restify-errors":"^6.1.1"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/preset-env":"^7.2.3","@babel/preset-typescript":"^7.1.0","@babel/register":"^7.0.0","@types/bunyan":"^1.8.5","@types/mocha":"^5.2.5","@types/node-fetch":"^2.1.4","@types/restify":"^7.2.6","@types/restify-errors":"^4.3.3","mocha":"^5.2.0","node-fetch":"^2.3.0","ts-node":"^7.0.1","typescript":"^3.2.2","webpack":"^5.0.0-alpha.0","webpack-cli":"^3.1.2"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"5e26e29e9f2514f946679f6b3d6d0c90407e8b79","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@3.0.1","_npmVersion":"6.4.1","_nodeVersion":"9.11.2","_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"dist":{"integrity":"sha512-0syGiCgs4AQCzg1dsy/SoWiyiqlGXG3BG33SmmOt4ILhkAgWaAFvkkaRf4UdhaKn4RL8kB8s3BXrv2LB9PnSuQ==","shasum":"97130306e90310e7cb39298dd1212f6cb1b2f199","tarball":"https://registry.npmjs.org/somnus/-/somnus-3.0.1.tgz","fileCount":6,"unpackedSize":868984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcH8N8CRA9TVsSAnZWagAANh0QAJXe/1egDxXBTsi3B40n\nO1wzllg6e7g/Ir7X1xR2JM6elM9F/gqmvrQ8sCA8poN+n5FzdNWKUcoGe9rU\n7ji4tm3BUTRpnT+Ok0Ticj8b8M4QPAUSCwskoPofkzCwe/trbIb2xXho3e6t\nIWYH9Ds6CwOe4Eq0PGHoXkW5H5zxp5GNalW5pNAzfIX9K2gfyHUgfj+nKtbu\noOocZjZ8J8dFAjADBNlyHVBmrjfoKOhkjC/bFFhzfwBYSPa8FFXETED9tQj5\n0HvkdXmHyY+jr6Zz3nCppoJPCN7zak3a7LjQI9xeM3DOF+/zedaIPZRHd9hE\nP7pjqRWAAAggMDjwmnpiaoYIfpQGFGyBmWBP7WDxhfuU2xy1UNXIWhlAoHB6\nnhaIs6cNQ+DaJtpsG3uiwrqA+9CweYhZ9EX6aqvci5WcuXzVFXSZUJvtftAD\nE3CX4ep54aK9K6LFKHjop8+d5rDC0FGxxiva/BdlKGt3koWxIuIovBU1t8TF\ndio5tYh851Ptsc2mm5kKInFCCP6rcCipBl8dyWHWuBvGSYZ/f4jUaeiwgviy\nHA1JfXE6AyPnjvRKsPo0cp8fkVnKeim0jk/BHlignEsCcWDHpCVT0ugr7iLe\nJPF3eGp3W7e8xx8Y0pAWRQEJpjHiCEZUDMVko738iDiqA8ZX4vjPA+RQZMRm\nmGzS\r\n=+Z6B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICz0uD6JGdD9HEQVswbVoYsWG85Dp74Dz3XoECVb3bsdAiAOZJGgmpsRH7aFW7JTL9DLQRog2Xg2EWPO7A0y3f97fw=="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_3.0.1_1545585532048_0.41056692138966033"},"_hasShrinkwrap":false},"8.0.0":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.0.0","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepare":"npm run build:prod","prepublishOnly":"npm i && npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"LOG_LEVEL=info PORT=3001 ts-node examples/helloworld-ts | bunyan -o short","example:helloworld:js":"LOG_LEVEL=info node examples/helloworld-js | bunyan -o short"},"dependencies":{"bunyan":"^1.8.14","restify":"^8.5.1","restify-errors":"^8.0.2"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.0.0-beta.22","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"e259df80556d01044e23a90d2808666e0e126aa6","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.0.0","_nodeVersion":"13.9.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Tvp8Xva2dWsknp5dQUHBfzPcPJ7I5tuXQrqiBX0ILhYP3wJCbiPxMI1pEnfdjyMvzAF9IPy6b0pTzTpPbsiHjQ==","shasum":"f9b6c5ea19c96db260b0f4a0663e2ecdcc5be517","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.0.0.tgz","fileCount":8,"unpackedSize":918624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHNrTCRA9TVsSAnZWagAAV5YP/2J66Z8Mjm+Z/heutE4D\nhZUzq5kjRQxLQKESoCQFWXmKAWFO4NqAqtmNJ6KAPUL5xCu4BmKP+PKO2SWK\ncqHC0wu0Vs6cJJXWobmhrH/UGRNy2Bta9kxNYHG8CO3MdpjOpflYJMHZQoK7\ncnHWMe/xDUscObYKs0DDxYJbDSG+rogXSXhGrsVv76ldnfNdCw8fCtp/Dzlo\n4wTenayi4YJ1Ww5xgLpk7jiA39FN/5bKaKsSs+DOWF5V5BarFhJ9GNpiBnD6\nbbaHaV8yNhoSt3N3q7fzDTcM9lhvVnT+Z3ZqqXGINQtCKGwl/xbBWhRXdGAb\nQA6Aj2VfeuxpWIIZN3epuFa8KuqA3D+APJLidyPs9ZamEaFQYHybnZl3eZH9\nZxcXdbZWGpP5MLOxCkMjc4hU6GJIJIix/mA+H9YNJzcnskYjqYsZdJ4uHoZf\nqx81uNbSo5cGD3zli+jU5J6V+s+AnH0eQQ5hWM3Uxn8iReF2GmML3kUn/Plz\nqMzQ8voTX+IfEbP1JOT5b7li+u4wDH+3DvxXCGDDvY9SKwh3ev3vYF9Xx7gw\nV+eaWg8U9DxMcXm/F5rG2vHEg300DH1PN120r22jEBI/GrbSImmidEsJFGVJ\npS4wua2VbQfiKCFBzCHh7KieenZgMKywJowAkEaDvqw+saTKMbHZNKte83pM\ndfoa\r\n=iDG5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEAyq1O0tFscTO3wBAiqDiyW4usPCngSKDQLL8trTKB5AiEAukYrmPVnAuI0qrgE96IMkuKlqtj+Sjx7foY4C7TGvv8="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.0.0_1595726547365_0.6520921675950833"},"_hasShrinkwrap":false},"8.1.0":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.1.0","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.14","gracefulize":"^1.0.0","restify":"^8.5.1","restify-errors":"^8.0.2"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.0.0-beta.22","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"30174b17cb3181f5a2cb49403b4ce31a0a1f6183","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.1.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-djCvkKLOF0sGXngThdeYMBAkMoVlUbT0zT8XBi42cJahAK/46jmwX4FuJfNaIqkGwClVCzdHuViHatxnC4JsbA==","shasum":"e3f6503c08c1c9c23fc77ce568815d93c6efa20b","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.1.0.tgz","fileCount":8,"unpackedSize":919971,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfH2UFCRA9TVsSAnZWagAADEcP/12IZkgWONB4uFBmG8b4\nMM2IwsXtqdPFKdjtdec2y2gto0exQAxuzSD7rtQzLfOP1CFo0+/ABrHv0NxX\nFS7XZpHzzqeD5yLZg+nJ/SRDq2oEApaBNbsnK9yQlWrGEQhbtHNv0oZTlWdP\nxX6Yp0dNTNZ8xrdCqGJpho93vZ54gpNMAkQ5L72J6tlP3xXrsZwLZj1ZPclg\nseyopXDFpHgmJbCjgObHnSqadzUsN0me/usRhK8pJKPpYF7KuTpFiWWVfSTO\nO/QVG8vACaa9OsrqYvmrzdRhh8n9L8DpAKW0Il58gLa6lalnPaRdybQSa1zc\nSZEFa7aJzS2MVMW6u4yDebkaVg/7qi6p9XMYk3NkKUaqOQLcNr2dz472h38S\nZb7PeLlSr5KKP4SIS/NrIocXEDKEqcGnHag22o3JHujyrrKN8NM9VDVp9sCG\nW7AoENLwGxez15XyDVU3U0fiF1SrLIPpCL+bvxigLRInGmGIay+ORNHC5lPZ\nj696Kq5UtYB4R1wVFwGaXem/m7f9IjnzmgKZ9I+tRTAJ1hBREUec5kiV6kPp\n6EdZq5VLTwR6z4JNOMbKwdwJGPbYdcbmb8na2YtztQDRO7ARMHCPnORccMhU\nFYGL3qX1/g6V4XM2fZ6zNH+51Nlyn5axeL3q5A/iOBmbhYlfrSTWnqaRd6AE\nmVml\r\n=7riB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhjeGqPeQYbup+l1NfRissPbRKdcjhlX3m7ag0jHXHQAiB3YwnHAcQGVB6SlBn7rQJAtWrrr7rtaRTVb2HqkgIJnA=="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.1.0_1595892997057_0.47274793581688446"},"_hasShrinkwrap":false},"8.2.0-alpha.1":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.2.0-alpha.1","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.14","gracefulize":"^1.0.0","restify":"^8.5.1","restify-errors":"^8.0.2"},"peerDependencies":{"unit-http":"^1.18.0"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.0.0-beta.22","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"readme":"SOMNUS\n======\n\nMinimal, database-agnostic REST API Framework based on Restify\n\n[![Build Status](https://travis-ci.org/somnusjs/somnus.svg)](https://travis-ci.org/somnusjs/somnus)\n[![Package Quality](https://npm.packagequality.com/shield/somnus.svg)](https://packagequality.com/#?package=somnus)\n\n## Features\n\nSomnus is a very thin layer wrapping around the [Restify](https://www.npmjs.com/package/restify) Node.js library. It aims to set up foundational features of a web/API framework by adding (sometimes opinionated) out-of-the-box configurations on top of the bare-bone Restify. In short, it helps you:\n\n- set up your web/API platform in the shortest time possible\n- implement the use of [Bunyan](https://www.npmjs.com/package/bunyan) logger by default. This in turn discourages the spam of `console.log` which seems convenient at first but eventually will turn your project into a mess\n- add utility/helper functions supporting the repetitive, trivial tasks during day-to-day web/API development projects\n- integrate with [NGINX Unit](https://www.nginx.com/blog/introducing-nginx-unit/) seamlessly\n\nWhile the original developer's intention is to add commonly essential features on top of Restify, it's also important to note that the key principal is to keep the codebase as small as possible, living up to Restify's standard of being a lighter library than the colossus we have in [Express.js](https://expressjs.com/). Please keep this in mind should you decide to contribute to Somnus!\n\n## Developer & User notices\n\nSomnus strongly promotes the use of next-gen JavaScript (ES6, ES7, etc.). Hence, it will most likely always enforce the latest [LTS version of Node.js](https://github.com/nodejs/LTS) (for example `10.14.2` at writing time). Besides, it encourages the use of [modern JS features](https://github.com/lukehoban/es6features) such as **arrow functions**, **const identifier** and others (where they make sense).\n\n## Installation\n\nWith [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com/) installed, simply run:\n\n```bash\n# installs a production build of this framework from the global npm repo\nnpm install somnus\n```\n\n## Build\n\n> Note: this section is only for contributors. If you only need to use Somnus, the installation step above is enough.\n\nYou can build the framework yourself by checking out this repository, `cd`ing into it then running the `build` or `build:prod` npm script, for example:\n\n```bash\n# installs the toolchains needed for the build process\nnpm install\n\n# outputs a development build into `lib/`\nnpm run build\n\n# or if you want a production build\nnpm run build:prod\n```\n\n> TBA: explain the difference between development and production builds\n\n## Usage\n\n```javascript\nimport somnus from 'somnus';\n// or const somnus = require('somnus').default;\n\n// you can add routes via the standard syntax\n// as you would normally do with `express` or `restify`\nsomnus.server.get('/echo', (req, res) => res.send('echo echo'));\n\n// or you can add routes by declaring a `routeConfig` object,\n// which is then passed into `somnus.start()`\nconst routeConfig = {\n  'get /hello': (req, res) => res.send('world')\n}\nsomnus.start({ routeConfig });\n\n// from now on, all routes added above are available. Go ahead and test these\n// paths with `curl` or your favourite web browser:\n// - `/echo`\n// - `/hello`\n```\n\n## Usage with NGINX Unit\n\nSupport for [NGINX Unit](https://www.nginx.com/blog/introducing-nginx-unit/) comes out-of-the-box starting from `somnus@8.2.0`. You only need to:\n1. take an existing `somnus` application (where `somnus` is upgraded to at least v8.2.0)\n2. add the line `#!/usr/bin/env node` on top of the entry file\n3. make the file executable (e.g. `chmod +x /path/to/your/entry.js`)\n4. and voilà, you can start it up with NGINX Unit as instructed in [this tutorial](https://unit.nginx.org/howto/samples/#node-js)\n\n## ENV variables\n\n- `UNIX_SOCKET`: the unix socket at which the underlying `http` server listens, defaults to `undefined`, taking precedence over `HOST` and `PORT` (explained below) when defined\n- `HOST`: the host at which the underlying `http` server listens, defaults to `localhost`\n- `PORT`: the port at which the underlying `http` server listens, defaults to a random available port on your system\n- `LOG_LEVEL`: enum of [bunyan log levels](https://github.com/trentm/node-bunyan#levels). If set, this will overwrite the default value, which is `warn` for production build and `debug` for development build.\n- `TARGET_DIST_BUILD`: **only used** when running tests. If true, the tests are run against the build artifact (`lib/somnus.js`); otherwise, the source file (`src/somnus.ts`)\n\n## Types\n\nFor those loving TypeScript: type-def for Somnus is backed directly into the build artifact so you don't have to install anything else. If your IDE somehow doesn't pick up the definitions automatically, please manually check/import the `node_modules/somnus/lib/somnus.d.ts` file.\n\nAlso, as Somnus bases itself on Restify, you may benefit from installing `@types/restify` and `@types/restify-errors` in addition (Somnus doesn't bake them in for you).\n\n## Test\n\nThe following command will run all tests found under `./test` and its subdirectories:\n\n```bash\nnpm test\n```\n\nWhy do we run tests for both `src` and `lib` directories? Because as library authors, we're responsible for ensuring that the build process transpiles & outputs as it should, and the best way to do that is by testing the code from both source and dist.\n\n## Migration\n\n### from v3 to v8\n- the **somnus@8** API itself is backward compatible, so you should expect no breaking changes in this space\n- as `somnus` is always just a thin wrapper around `restify`, its major version will always match that of `restify`. Please consult the corresponding [Restify migration guide](http://restify.com/docs/home/) for breaking changes regarding Restify internal itself.\n\n### from below to v3\n- If you have never used **somnus@1** or **somnus@2**, migration is of no concern for you\n- If you are using **somnus@1** or **somnus@2**, please understand that **somnus@3** is completely rewritten, and there is no migration path at all between v2 and v3. v3 exposes a different set of APIs and philosophies behind how the entire framework should be used.\n\nFAQs\n====\n\n## 1. What special knowledge do I need to fully utilize Somnus?\nFamiliarity with the [Restify](https://www.npmjs.com/package/restify) library is recommended, though not necessarily to get you started with and profit from Somnus.\n\n## 2. Why Somnus?\nPracticality, Productivity, Simplicity, Fun (well, hopefully)\n\n## 3. What is Somnus, again?\n**Somnus** is latin for **Sleep** (or at least that's [what Google told the developer](https://translate.google.com/?ie=UTF-8&hl=en&client=tw-ob#la/en/Somnus)). What better fits an API framework created for REST(ful) communications?\n\n## 4. What is Somnus, seriously?\nSomnus is aimed to **make mundane day-to-day web/API development tasks as effortlessly fun as possible while maintaining the smallest codebase possible**. Well, at least that's the original intent of the developer, so if you're considering contributing (which is a beautiful thing), please adhere to the said philosophy!\n\n## 5. Why database-agnostic?\n`SQL`, `MongoDB`, `RethinkDB` and a plethora of other database solutions have made it easier and more fun than ever before to play with data. At the same time, it gives framework developers a hard time deciding on any database technology to go with and invest in. Somnus is aimed to make things simple and minimal, not to magnify what's already clunky enough. Hence, it's up to Somnus users to choose the database technologies they feel most suitable to their projects.\n\nIn fact, Somnus isn't developed with any database driver built-in. It's essentially the **C** in MVC.\n\n## 6. How may I contribute?\nCurrently, there is no formal contribution guide. It probably makes sense to start there!\n","readmeFilename":"README.md","gitHead":"8f78a5c871325cb74ad9642edd5714481f03a8bb","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.2.0-alpha.1","_nodeVersion":"14.6.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-P2VF4mCgxR2Y7uN3g/SRW++bep+1jm1B8PTS3S84fuRl7fIbBiPkfLFKdqunzb+X9GdzkHA8WNLftc+wsR+8zQ==","shasum":"dccb39105136399cdbc8eab14a5909e1547d8c16","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.2.0-alpha.1.tgz","fileCount":7,"unpackedSize":919713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKIQ6CRA9TVsSAnZWagAAcQUP+QBJGnv2bz4ppA+sPIdz\nQOyuX6dyrB5hc7jDzRpkapNFzqC1SVQD8O4GWQ1wRMpCidshKYNA4VYY+CjN\n2T3JOi+i6pFn2C4yxa8ylX3yL6mMFc4gprSxuMOPKLiBMVRmTp0spvv+NL8V\nzKNgkvOuDCCQ687Ln+g/g3WiVWjEyEycrw34OCclWhiBV5a7E+UJlgrRoILS\nKgaMyYxaXzZjcBsw6+LZjN38uRWgT7tSe1tZHTalfo5TfYnqaJGCSL6gLzoU\nnyUHUdffXTaeUERgFIaUGM7zy6iaD2B8LoRs8VWOt3kLULt8Dl2mVTGg2VTu\nwNFs6dDLrTRewAQf4F+Slk4WbAO1C/V4iXcxU0v5EXqhBif7aNw9u6PZ9bda\nxJZ2LMbc+FkcytgBMXcbIGBdPv0xLYs+aBZKWLh5XGvra4KB4P99BoFlyzlK\nSgupRMRirWzxgveoOQAPvj6N5nNOZPdMOWkTYGlssSKULlhuYK+CQH+z6rkr\nLKpiDyWcFb+GYTZ/JFXTtzaZdk472A6IbaqhCe8SpSaT5zXZJfZkxl9/inRM\noQcd9CAHeVIsSFByfGNyOWlhjX6IcWUHLA8oVJH2xO888NNBR4V//BXBvcx9\n9epK6t2uKr1otxsTu+cmMRos1ZZD+19mCAVpE0pnXhap1b0iu+wTnajJWbIg\nbaLG\r\n=RtBO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUux7cs7M5U199TU/iSZtA5MpBqLQ16+0h6RPvkRckUAiEAh2IjSoZMZhqAUNFoV2KLjAXhhXQbnPcjQ9RZlOp3V9g="}]},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.2.0-alpha.1_1596490809911_0.8347398574637708"},"_hasShrinkwrap":false,"deprecated":"this package has been deprecated in favour of somnus@8.2.0-alpha.2"},"8.2.0-alpha.2":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.2.0-alpha.2","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.14","gracefulize":"^1.0.0","restify":"^8.5.1","restify-errors":"^8.0.2","unit-http":"^1.18.0"},"optionalDependencies":{"unit-http":"^1.18.0"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.0.0-beta.22","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"readme":"SOMNUS\n======\n\nMinimal, database-agnostic REST API Framework based on Restify\n\n[![Build Status](https://travis-ci.org/somnusjs/somnus.svg)](https://travis-ci.org/somnusjs/somnus)\n[![Package Quality](https://npm.packagequality.com/shield/somnus.svg)](https://packagequality.com/#?package=somnus)\n\n## Features\n\nSomnus is a very thin layer wrapping around the [Restify](https://www.npmjs.com/package/restify) Node.js library. It aims to set up foundational features of a web/API framework by adding (sometimes opinionated) out-of-the-box configurations on top of the bare-bone Restify. In short, it helps you:\n\n- set up your web/API platform in the shortest time possible\n- implement the use of [Bunyan](https://www.npmjs.com/package/bunyan) logger by default. This in turn discourages the spam of `console.log` which seems convenient at first but eventually will turn your project into a mess\n- add utility/helper functions supporting the repetitive, trivial tasks during day-to-day web/API development projects\n- integrate with [NGINX Unit](https://www.nginx.com/blog/introducing-nginx-unit/) seamlessly\n\nWhile the original developer's intention is to add commonly essential features on top of Restify, it's also important to note that the key principal is to keep the codebase as small as possible, living up to Restify's standard of being a lighter library than the colossus we have in [Express.js](https://expressjs.com/). Please keep this in mind should you decide to contribute to Somnus!\n\n## Developer & User notices\n\nSomnus strongly promotes the use of next-gen JavaScript (ES6, ES7, etc.). Hence, it will most likely always enforce the latest [LTS version of Node.js](https://github.com/nodejs/LTS) (for example `10.14.2` at writing time). Besides, it encourages the use of [modern JS features](https://github.com/lukehoban/es6features) such as **arrow functions**, **const identifier** and others (where they make sense).\n\nStarting v8.2.0, somnus has Nginx Unit integration support. If you fail to install Unit's language module for Node.js (`npm i unit-http`), be sure to follow up [Unit's installation guide](http://unit.nginx.org/installation/) itself first. For example, MacOS users may want to follow the [homebrew guide](https://github.com/nginx/homebrew-unit).\n\n## Installation\n\nWith [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com/) installed, simply run:\n\n```bash\n# installs a production build of this framework from the global npm repo\nnpm install somnus\n```\n\n## Build\n\n> Note: this section is only for contributors. If you only need to use Somnus, the installation step above is enough.\n\nYou can build the framework yourself by checking out this repository, `cd`ing into it then running the `build` or `build:prod` npm script, for example:\n\n```bash\n# installs the toolchains needed for the build process\nnpm install\n\n# outputs a development build into `lib/`\nnpm run build\n\n# or if you want a production build\nnpm run build:prod\n```\n\n> TBA: explain the difference between development and production builds\n\n## Usage\n\n```javascript\nimport somnus from 'somnus';\n// or const somnus = require('somnus').default;\n\n// you can add routes via the standard syntax\n// as you would normally do with `express` or `restify`\nsomnus.server.get('/echo', (req, res) => res.send('echo echo'));\n\n// or you can add routes by declaring a `routeConfig` object,\n// which is then passed into `somnus.start()`\nconst routeConfig = {\n  'get /hello': (req, res) => res.send('world')\n}\nsomnus.start({ routeConfig });\n\n// from now on, all routes added above are available. Go ahead and test these\n// paths with `curl` or your favourite web browser:\n// - `/echo`\n// - `/hello`\n```\n\n## Usage with NGINX Unit\n\nSupport for [NGINX Unit](https://www.nginx.com/blog/introducing-nginx-unit/) comes out-of-the-box starting from `somnus@8.2.0`. You only need to:\n1. take an existing `somnus`-based application (where `somnus` is at least at v8.2.0)\n2. install the `unit-http` module (`npm i unit-http`)\n  - if you fail to install this module, be sure to follow up [Unit's installation guide](http://unit.nginx.org/installation/) itself first. For example, MacOS users may want to follow the [homebrew guide](https://github.com/nginx/homebrew-unit).\n3. add the line `#!/usr/bin/env node` on top of the entry file of your app\n4. make the entry file executable (e.g. `chmod +x /path/to/your/entry.js`)\n\nand voilà, you can start it up with NGINX Unit as instructed in [this tutorial](https://unit.nginx.org/howto/samples/#node-js)\n\n## ENV variables\n\n- `UNIX_SOCKET`: the unix socket at which the underlying `http` server listens, defaults to `undefined`, taking precedence over `HOST` and `PORT` (explained below) when defined\n- `HOST`: the host at which the underlying `http` server listens, defaults to `localhost`\n- `PORT`: the port at which the underlying `http` server listens, defaults to a random available port on your system\n- `LOG_LEVEL`: enum of [bunyan log levels](https://github.com/trentm/node-bunyan#levels). If set, this will overwrite the default value, which is `warn` for production build and `debug` for development build.\n- `TARGET_DIST_BUILD`: **only used** when running tests. If true, the tests are run against the build artifact (`lib/somnus.js`); otherwise, the source file (`src/somnus.ts`)\n\n## Types\n\nFor those loving TypeScript: type-def for Somnus is backed directly into the build artifact so you don't have to install anything else. If your IDE somehow doesn't pick up the definitions automatically, please manually check/import the `node_modules/somnus/lib/somnus.d.ts` file.\n\nAlso, as Somnus bases itself on Restify, you may benefit from installing `@types/restify` and `@types/restify-errors` in addition (Somnus doesn't bake them in for you).\n\n## Test\n\nThe following command will run all tests found under `./test` and its subdirectories:\n\n```bash\nnpm test\n```\n\nWhy do we run tests for both `src` and `lib` directories? Because as library authors, we're responsible for ensuring that the build process transpiles & outputs as it should, and the best way to do that is by testing the code from both source and dist.\n\n## Migration\n\n### from v3 to v8\n- the **somnus@8** API itself is backward compatible, so you should expect no breaking changes in this space\n- as `somnus` is always just a thin wrapper around `restify`, its major version will always match that of `restify`. Please consult the corresponding [Restify migration guide](http://restify.com/docs/home/) for breaking changes regarding Restify internal itself.\n\n### from below to v3\n- If you have never used **somnus@1** or **somnus@2**, migration is of no concern for you\n- If you are using **somnus@1** or **somnus@2**, please understand that **somnus@3** is completely rewritten, and there is no migration path at all between v2 and v3. v3 exposes a different set of APIs and philosophies behind how the entire framework should be used.\n\nFAQs\n====\n\n## 1. What special knowledge do I need to fully utilize Somnus?\nFamiliarity with the [Restify](https://www.npmjs.com/package/restify) library is recommended, though not necessarily to get you started with and profit from Somnus.\n\n## 2. Why Somnus?\nPracticality, Productivity, Simplicity, Fun (well, hopefully)\n\n## 3. What is Somnus, again?\n**Somnus** is latin for **Sleep** (or at least that's [what Google told the developer](https://translate.google.com/?ie=UTF-8&hl=en&client=tw-ob#la/en/Somnus)). What better fits an API framework created for REST(ful) communications?\n\n## 4. What is Somnus, seriously?\nSomnus is aimed to **make mundane day-to-day web/API development tasks as effortlessly fun as possible while maintaining the smallest codebase possible**. Well, at least that's the original intent of the developer, so if you're considering contributing (which is a beautiful thing), please adhere to the said philosophy!\n\n## 5. Why database-agnostic?\n`SQL`, `MongoDB`, `RethinkDB` and a plethora of other database solutions have made it easier and more fun than ever before to play with data. At the same time, it gives framework developers a hard time deciding on any database technology to go with and invest in. Somnus is aimed to make things simple and minimal, not to magnify what's already clunky enough. Hence, it's up to Somnus users to choose the database technologies they feel most suitable to their projects.\n\nIn fact, Somnus isn't developed with any database driver built-in. It's essentially the **C** in MVC.\n\n## 6. How may I contribute?\nCurrently, there is no formal contribution guide. It probably makes sense to start there!\n","readmeFilename":"README.md","gitHead":"b32e3adc6cd88082967a9740193731899e098b54","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.2.0-alpha.2","_nodeVersion":"14.6.0","_npmVersion":"6.14.9","dist":{"integrity":"sha512-RGjMyF7f9WqY1tl2r6Tw75vze+Ki+T2NPxqpqqakYlYGd0bM2RBOV1klGECbVw+3v/noY8MFZFJk05QkOri9OQ==","shasum":"aa8c90d82cf677ce65e2e64aef91ecf3e196e7f4","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.2.0-alpha.2.tgz","fileCount":7,"unpackedSize":920649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf1oeBCRA9TVsSAnZWagAAZLcQAI3zZopyhLMLuc4Ux5Yb\nK7hec6FBFiAsveQ5e2GIBjajT/8aSR1aH2PSwmE03Y8Eal7k8eyv6Yr/04U+\n/zm0IZZN9Q3AE4PDplVNB5ZOLq5BikRW4kzOxL1sEnRFBCBfjdiul3+IXI7r\nXzyRHFYm1JUb2MfztnV0u1T1pXMqyLZtGlo+QJPfugb6oTYovk1KvVwSbuxG\nksZdT21oxdaLgaP9KK9WDnok4vjhXv7kr1psDSOEaVlFXO7iQg5tyvCc2tbQ\n17v6BxfYw6muQSNX0cpeglOIInfIZ+mSXHegrvqQptTzfDNJdMRYcXWyajhd\nDfAULE3qxCfOmj0bqjqvuPUW8b+JmdqFPyo+AHjJrxeDZQZZYoTc6bYhetcd\nKKTLSo4qWJsQYWlY+Oln7O+igMIb2TKL5kRYSOlQkZqXT+Ty1h4JG50p2UMJ\nhSiJ7i91aDkiKTwb7yNr6lvdbzYPBxFml62VILKuxJn16EYPifX7+K3Y9pfa\n0zWIQTAUnIZYMNQoyFKZRsECLweUuWmNjYLLOx+b7zV0gjbZdGLMrxIWUayw\nr/ccHEJ/p2MDMQFCh7lkiIzJbEiYiwF3hq033cii4fVit/EoeWEgpQYpSn5I\niSH1uJfUeJSsNVrknxaBAarrZzFENLxxwQOb7Xre/og61HV627k2ySFAcHX8\nByP+\r\n=D8YZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9UDOok0bCOHpCdmq7DzLM3rBIS5cGxrOqfsuVDC9wrwIhALYbXVxfU7aRrwgxRqktYa3jR9iTLM2d9mo7qIi0xReN"}]},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.2.0-alpha.2_1607894913487_0.2720026001683733"},"_hasShrinkwrap":false,"deprecated":"Release Candidates are generally deprecated once they've outlived their lifecycle"},"8.2.1":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.2.1","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.14","gracefulize":"^1.0.0","restify":"^8.5.1","restify-errors":"^8.0.2","unit-http":"^1.26.1"},"optionalDependencies":{"unit-http":"^1.26.1"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.72.0","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"1948a32a4c6ccd7575bbe85b7b7648ea9ff0c2ad","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.2.1","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-NUX3kD/SdGFjUO5kxVpp6f/940WVfvLf029YMEo3fUZGhJMMVCzhFXR1glsiAgCZvVqsB8rVH7jVzBCoSSgXLQ==","shasum":"2baa1fa9b72457ba63ba2d18001159a1e684bd8b","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.2.1.tgz","fileCount":8,"unpackedSize":944495,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFEz5cT2Wqi+jp5D/q+n0t8RvUvn4t0qO9be5IgzU91QIhAKL6P+w1LW2khBXZQx9XtL+fkCk12rlVrSRBkB22Jm2/"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiUoMvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr9Fw//UrVK/B+De08D7LjOwc13cEe9yTlcu1wJUKuUM5OSSuRGvZsp\r\nAF09q0NY4BV3b8hyFwCSooUaqVJJy1hdCzPHgZCP5ZLLQ1ffjdFELSCLpeHX\r\nIMG9AASdgc5McYZHgZobcSvNrxjHtVj4Z2ywC/PDWSREhbZXt3cC3SSjWOea\r\nsfaXEnDhs7Qm9Qm8lLePEEiZuuef24WW0kyp465mlkgrueqNfLyPnxr9CmDZ\r\nI7C8JpdMpLJphxaNG/dKhPIOkWZfe4mmWR1EYqd+HxIhTg6AOyQFwrf0FRCM\r\n6LtkEKR2Dbnz+vp2vQSEfXxRCIvZG1nQ7qnmb0VgguLxhyvFYNq8IL5IcWH5\r\nLYZk3O5v0zY66M5a3m0Z2wUru4GJ/B5EE/x7w8cfE4tLelttn/+dgdzOhdeD\r\nixI07xqSf/Q6zsbM4tcuVtRhLF0PQXnaES9mUnZhuuRPf+CckbQgSLDzdptq\r\nyV6nE0VP2fmLTKnPbPapsf2z4oaEaMYPXTk58ObvNXcXBaKz9cFPCQnz9sRz\r\nrwtNq3aePPvrgxBCTkEKGswFDYnG8IeHklyTPK/1ATrFcHmfEila2fJqM3LH\r\nQaqzliwTMBKIsidvoPioLMWJo83ruIUtqX6bOgWIwpKBZFBg/UAuJjV/CPTt\r\nYU7jpjlqjfAxmm9/ynKWAc5e5vr+xN5Bx24=\r\n=75aI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.2.1_1649574702705_0.7083650942271376"},"_hasShrinkwrap":false},"8.3.0":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.3.0","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.15","gracefulize":"^1.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","unit-http":"^1.26.1"},"optionalDependencies":{"unit-http":"^1.26.1"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.72.0","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"7626621cb4805b2882bbdd55c3e07e419d0b35c8","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.3.0","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-pH61TG3TqzQioLXHjesNgDhsbEj6orCsR/NcwGPfRfAJSnKqeQMe4GUvSTCyVWMZEL28Gg659I4SBQC3XVV85w==","shasum":"8421f84429eabfbde6970e0651bca40c23d7f53a","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.3.0.tgz","fileCount":9,"unpackedSize":945546,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgD66g+j+xvpoA+s8uaCx8xMwkKvAYc51Y7KLWfbiU9AIhAMcnGIo/U2YsQwn7VhnwQIldU6muii3cXKHT0MLbIH0u"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijWdHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmonNg/+Nf7uiI1IS9odpGaIEppZKRJ7c4tPFw6IdWdoztF52KGLMmyE\r\nKW+jGY5VU25jjHR+49mR82eXT/hphOyzPGrXe8x1F/GBfHz0mTHN/DiBHrQy\r\nBT7Oqah6Howkkru2UbB9CnXJp6zouDUnymmZzqPqaU/MjsDU8+AU4kiLfe/I\r\n5Lt6su5m6HSm7yZkDyduxfDKNcUqj6Zl+6lecQ+3ov8QZVwg1FPeYy0sIcEr\r\nEbHixiM7r+7P+iI8eDSKzU3C/EC+7KfFhWpxmyk3kaQapNSXmmKizGwoB7OW\r\n3zLZooYDI5UiiBHF/qo253Qkps5csTrabt4uUtiEqeWy5OdOHfxcoohlRQ9r\r\nW93JUvj9H8noRe5CiWhhzK1ht/iO1Vp0CevV3Bt5bWiijyMPqOyvf2r9hbLY\r\nX1Al2p60yCQMrY3jwhcein9j0lzWfevVm1buvnfmB0nYw7y22Xdof8kj66Fb\r\nuuK7uzxaMrfq06OZL5ytsZj8aKGabN5u2jwMYjgGCRHkZHGrczJr5YDwtWjS\r\nAVsUOGhYKpyH+W+NRrLn4vTIGFuHeFUgqJdwe5WcOpePYjHTHXpGmeKE30hv\r\n5BbqBytwF2c+YJFb9kmv/A0eTTEbEfJCK58TbV7UNTDuYKrFxFqoKjeE1+yP\r\nbgfiT/Wtz1FKHMAxZ4TJbfWhyvmKURKsjws=\r\n=8Riq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.3.0_1653434183831_0.802013317283812"},"_hasShrinkwrap":false,"deprecated":"noises in tarball"},"8.3.1":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.3.1","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.15","gracefulize":"^1.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","unit-http":"^1.26.1"},"optionalDependencies":{"unit-http":"^1.26.1"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.72.0","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"b6acf12e98a56a72941ed545a620d9d5e0fd9991","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.3.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-dYWMY+ezbzCtpGnr2iiTfmbkBZDiy/e+4mP6Xo5j5+7DdJG1pt2OWGpSO24hPQYshd3tu+sgG+Qeq6QPG1dF0A==","shasum":"8dca9e03a6b66ca9ee71ce3406d29d12574f24aa","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.3.1.tgz","fileCount":7,"unpackedSize":943841,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEnamnjWGHvx2R81IDR2BPHSXWAD4fWvfO8jy3qOG/rAIhALB/be8UckaBCW5AGBYG16R7ysYZZ0jpc498bwes/01i"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijXLBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKwg/+OL1q3moaUqKhuC2QI4hUR4pWkeeMiCQcwrq9jApyEc6V7/Z+\r\nZ5Jb1o3fvKevCpJEPq7v74gGBrNFD+vzMQjG+VtYBcxm3XvdrCeygAm/x1nm\r\nEmy4uBgpzAerXw1strSNmtFFsJas5AWUH0BApqTkaddY1uchjJjnIdyBqErE\r\nKSmzslUVDAwR/XEFaFGq53My+dGbAky3aRwgZ7Tnbtijl4hxQheclRX3d9kh\r\nU7/RrzgFMS51qRGHCEewt97DV6t5ZShVwWhFAEjQwpFUzMCbX6EeWiopuYME\r\ny7iFlCztHCU5962m8OssF5o1upEnXARYnX9uvowf52UUsleNiQr0x0xktpXu\r\nLolAdAXS27xde+BZDTUIYRpN4WBuZDn6jLA0qy20Qq9BzEE8KCOdJZffbHb3\r\nlIIFxnaLAP/qtKVqlQhxXSOpI5Ot/6Mp1RVsN4Dt+DMa5t5TGY5xNicqHhMG\r\nVjri54CDsc6B/dmcchruCMngUur+J8PwEValmNZzdlXq7VqSmzDbrvsBgJIb\r\nMquwayW6PUW8JXdZ1kC+FjT3MjkNytsaRiL9/lliolcEfpFs4zS0DigCmTMG\r\nDDQ1/sjrbIxIRrKCfl8nsHpY0qMgddVDOQ1EAV9Hxv7pfUmMu4wQ79x90BFN\r\n7l0EJLl0kPjdlLXctB6UjopeIUf1djeD6Eg=\r\n=vgCW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.3.1_1653437120873_0.5024173732398769"},"_hasShrinkwrap":false},"8.3.2-rc.4":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.3.2-rc.4","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.15","gracefulize":"^1.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","unit-http":"^1.26.1"},"optionalDependencies":{"unit-http":"^1.26.1"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.6","@types/mocha":"^8.0.0","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^8.0.1","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.72.0","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"ecc0326fac5e42a90f3efaab0227b21338ebdc5e","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.3.2-rc.4","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-vJ71+wsSG+Mq4x1w+ZP/Vn3nfiT/d6IwjM2MktCkA1c5xbPy7r2fiaI+13K6lcgVvn9AMGxLZU2XphzyIi2cCQ==","shasum":"8df55e3d84327803b15f1daae69a98799eea6432","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.3.2-rc.4.tgz","fileCount":7,"unpackedSize":943991,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBjLvMid1DH79ykiHljiEY6dnyDDyPwn+1RS7iIoafdwIgG6n2wlWnfBC1av7ncTI/OcSi90XlAUo45xZa5a5dY6g="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikAH3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNjxAAkBWFgVnwHHA+IiNPJJ00z7V06Ase5iRMzVJxI/JkTL+4J2bL\r\nnadXT5RedP8XfM/iVCn9LiHMfeRvohKlztW6SN0AmHcSFVF7pdciqao8JuC5\r\n82exzFjx1OPg6a7BOJ+WSBcWlx4/uy7qDIW1tfHjcqWpno+7EdyvbJySbdjd\r\nm1X9VryLTnyj8v9DIg6gATYThWAFVQoQoLmaw8w0OIWDSuhFtEBiAcDI339+\r\nJpj0MdvB0N5bISf9ReOzcbiBYu50ZQN8R49puQ+Q19vnsbS2CNU8peKCQyMR\r\njFxTNleZsWrDS+DdPPFqjFEcYMlGWu+NcGXiWb7Y5Su2Z/Ay2ZgAQJ+HxAny\r\nxsTJ6BbRBoF9XnKxZ/ieefIYyiGgJr+0eD4HlB7h4OwrjgDgA8UFv/VnfMjv\r\nJr8dX9AzcMCeO2sCGmMDLFlhjrixw7XUBp/C32R1j/6umsj62Y10A8UxyqdJ\r\n729w3ey1WpR76p3KDosFzfkceFx2jBjFxItht5Pqr8uEBW7Mo+jACctR6twf\r\n+r1Fu8CBAw5QB1i1qDYpMa2/cXK00PoZiLyj2YSyLmyFQbj5HQkLgIlnJeUC\r\nehRHmxeb1yRhyDgJdGDhF5To0zdkve4w3PuIqbX8N/45muiNm6oCYiMacGuF\r\nQpSxyega+jjYT/mKk/kgQsYPL/sod/u+Jaw=\r\n=sPVq\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.3.2-rc.4_1653604855658_0.36005395921115424"},"_hasShrinkwrap":false,"deprecated":"Release Candidates are generally deprecated once they've outlived their lifecycle"},"8.3.2":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.3.2","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"npm run test:src && npm run test:dist","prepublishOnly":"npm i; npm run build:prod; npm test","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.15","gracefulize":"^1.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","unit-http":"^1.26.1"},"optionalDependencies":{"unit-http":"^1.26.1"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.8","@types/mocha":"^9.1.1","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^10.0.0","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.72.0","webpack-cli":"^3.3.12"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"69255bd7faacd6cdf53c32c41ae55a91398175cd","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.3.2","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-RXv4AUb2amKj3tYL/DIbZRwBPw28VIP8M7/M5aa5I11LT6PFNpSE9RHawGAVpgEeFIKQev8bIZU2xvGcC2Ffbg==","shasum":"4be8dd5fa9a4ab552ee41af9c44349596b741859","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.3.2.tgz","fileCount":7,"unpackedSize":944081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnMa4TL3wn+q7PqYPZRT7mcrKdYFCk+Ddiekl9a02kMQIgDqIRzPM5fg1gwR38ajnsT7ezCmUKs1+xxCcTg9O90sk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik/mBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmre3A/6Ar4KJaySS306/M+BCTrN8teQVk+IMwSw5MEXpdXs0YPMWLBU\r\n4ztM9VxdvXv9UEciiOd1VSBc6suI80NP/9a8jpG6wGCY16W1M0QzAfbtxMDH\r\n4UQUJCPBRlHbka0INLmwlXilBtSTENCMRjF/kVFsxq6QollE3Zdqg3oM65Pz\r\ny8Od+w+g+q2FBO5loS5C6ErwhZGhebNDQKZYUYAByaaBUZukjxAyi+9XqLBG\r\nbJMVGl662OiqhmsZoCr7UMWcd1EF/iTEv0H9xzsdqef3sOWWiXmrvlU+Ii6f\r\n63AwlecqP7ukWQcu7scXWQInzWFNUIwK6YP6kSem4Q+GWmpMRhxE2ZO8oXUG\r\nhahoMqZEDTZFe56PKWS0dJNzmrF6M6wSQmv1SMrMMdEbrWh83OtYOqXhHS63\r\nvrOnbeq5MSuWFNLkN0QXvDpdcYojmBzb/Gg6U5rZHvRV0+kjzP8MaMiBv6IR\r\nJ9/6E9RvfgzndNLDPwSBZj9YntJdm0YrdmrWCxX+sV5vqjS1p0NHISrCIe87\r\nrER9/JVU7cMrxwIK7NttWHOVg5ATQTV6ccMkIZCVbscBalWbIiRC0ykn77dz\r\n//YWpqeSgINeN9bZNK5mU66B34C7tl9RuJLIlPk71KgTxvfhqxiX6jGwRmGl\r\nOROe+sbx9k7cBc0UhibZoM1G/pRKIc7yq8U=\r\n=9mtz\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.3.2_1653864833355_0.12167614692760664"},"_hasShrinkwrap":false},"8.4.0":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"8.4.0","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"tslint":"tslint -c tslint.json 'src/**/*.ts'","prebuild:prod":"npm run tslint","prebuild":"npm run tslint","pretest":"npm run tslint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"./scripts/test.sh","prepublishOnly":"npm i; npm run build:prod; npm test","local-pack":"npm run build:prod && npm pack","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.15","gracefulize":"^1.0.0","restify":"^8.6.1","restify-errors":"^8.0.2","unit-http":"^1.27.0"},"optionalDependencies":{"unit-http":"^1.27.0"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/preset-env":"^7.10.4","@babel/preset-typescript":"^7.10.4","@babel/register":"^7.10.5","@types/bunyan":"^1.8.8","@types/mocha":"^9.1.1","@types/node-fetch":"^2.5.7","@types/restify":"^8.4.2","@types/restify-errors":"^4.3.3","mocha":"^10.0.0","node-fetch":"^2.6.0","ts-node":"^8.10.2","tslint":"^6.1.2","typescript":"^3.9.7","webpack":"^5.72.0","webpack-cli":"^4.10.0"},"engines":{"node":">= 10.14.2"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"122200b2bd8a334ee726e8752adf943b50ee462c","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@8.4.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-6Xo+vXAEfYNvqIkgu4uwAqe2oDBXwMRbPsRmKV6tMuV8E0UdN2TpjzXnP+YlHm3DdYJxtIlceUicmMRjAgw1ig==","shasum":"0f7aeb797e10fb23ef2df4c1d4c4ec5331ca6331","tarball":"https://registry.npmjs.org/somnus/-/somnus-8.4.0.tgz","fileCount":12,"unpackedSize":1090682,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzcL+i0fnrsSBSaDddnYIBorQqPRhzq/vo8WmXPFO5MgIgJAcVX33MAg6mGzszlnUxRJLNX9lrGPxjE57aSmZP/20="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiy4nuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrLug//QyzbH0rJF8ys9ogb6YS9o02K3175s+dGKTTL9X5iaHAGS0FS\r\nIKQ+NSO9T6CtWrf/h7yiT0YotqMrNufG2odTlG8KQiymx9f+CegTlf+m9gC9\r\nnAikqJVj4wyPVJZddBNhxGDdW9rv83VTmE3uJ7IIYW0eEBYVSW0nET+P7AM8\r\nX19v5pL9bPDvbEZ4GK0oqn3t66IZo7ohceQhsbZmcbnPxON2eUOA32FvRYPu\r\nb1SdICh6VegwxcuM50ij1hwLchj653aKcAGbFDkvEkNP514z08UcBKtS/Nte\r\nfpLPHO2DA6eIRSGgrqINZE1aC+MBAXsW1a49qdStIxEntpBncHcy5bbrF9Ie\r\nT6pAgf3y8rkPs7xscUTSlf6+GhJlL7ORnPxEfEC6cLbkfkr5ji4+uNRUNXwS\r\nJ1lHDnCf9Jpu7HmrJ0ldsumtDddsA+G6cYzOTMMzpq0dymbVMgeu/e48wrSV\r\nNvYWCYxa9FpNd45j2vx5JlRQsT/uQFM2tRau41fceEK7t3K/Z0WFeB1fjJdo\r\njUj1hgDiJptdlLYMq9oLPxJv2J9M+ylTJpoZjEfa3pwC1idYabl2RJtZ/MZ7\r\noHjoNRfi0Yo9l3ER9BFuHXHXGuyoA5gjQ0L03Cmqw4zC1c1bM5TesytCfMNt\r\nt/VkzafnlZGc1kTJUQtD6WjHAHFzdMXPMwU=\r\n=B1pX\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_8.4.0_1657506286069_0.6640402263851846"},"_hasShrinkwrap":false},"11.0.0":{"name":"somnus","description":"Minimal, database-agnostic REST API Framework based on Restify","version":"11.0.0","main":"lib/somnus.js","types":"lib/somnus.d.ts","scripts":{"lint":"eslint 'src/**/*.ts'","prebuild:prod":"npm run lint","prebuild":"npm run lint","pretest":"npm run lint","build:prod":"./scripts/build.sh","build":"NODE_ENV=development ./scripts/build.sh","test:base":"mocha --require ts-node/register --file test/setup.js -R spec test/**/*.ts test/*.ts","test:src":"TARGET_DIST_BUILD=false npm run test:base","test:dist":"TARGET_DIST_BUILD=true npm run test:base","test":"./scripts/test.sh","prepublishOnly":"npm i; npm run build:prod; npm test","local-pack":"npm run build:prod && npm pack","start":"npm run example:helloworld:ts","example:helloworld:ts":"./scripts/run-example.js helloworld-ts","example:helloworld:js":"./scripts/run-example.js helloworld-js","example:unixsocket":"./scripts/run-example.js unix-socket"},"dependencies":{"bunyan":"^1.8.15","gracefulize":"^1.0.0","restify":"^11.1.0","restify-errors":"^8.0.2","unit-http":"^1.30.0"},"optionalDependencies":{"unit-http":"^1.30.0"},"devDependencies":{"@babel/cli":"^7.22.10","@babel/core":"^7.22.10","@babel/preset-env":"^7.22.10","@babel/preset-typescript":"^7.22.5","@babel/register":"^7.22.5","@types/bunyan":"^1.8.8","@types/mocha":"^10.0.1","@types/restify":"^8.5.7","@types/restify-errors":"^4.3.5","@typescript-eslint/eslint-plugin":"^6.4.0","@typescript-eslint/parser":"^6.4.0","eslint":"^8.47.0","eslint-config-prettier":"^9.0.0","eslint-plugin-import":"^2.28.1","eslint-plugin-jsdoc":"^46.5.0","eslint-plugin-prefer-arrow":"^1.2.3","mocha":"^10.2.0","ts-node":"^10.9.1","typescript":"^5.1.6","webpack":"^5.88.2","webpack-cli":"^5.1.4"},"engines":{"node":">= 18"},"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"license":"MIT","keywords":["somnus","api","web","rest","framework","restify"],"gitHead":"4e5e9e8461b9c46cbd34aaf3e71c3a569d8fec04","homepage":"https://github.com/somnusjs/somnus#readme","_id":"somnus@11.0.0","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-1XVRx+9Up1pYKiwsXHMCwX0iEt0nT7aN3Vt6hj4VpWqtQXj0R/1F2BQz9fg28Aupf0Yrgitdh4mQ38MFHG7DrA==","shasum":"ddd987fe765f7911cd79a559557743933f13de86","tarball":"https://registry.npmjs.org/somnus/-/somnus-11.0.0.tgz","fileCount":12,"unpackedSize":1185437,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCq+LrjH/Ndbohs+/7dT/6QS0j7xATKuPVLsqq8DEXeawIhAI2TsaWYdxQ+gOkmgKo7Q6Pdn/2ETfzVDTK8kz2HHzOv"}]},"_npmUser":{"name":"thesephi","email":"thesephi@gmail.com"},"directories":{},"maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/somnus_11.0.0_1692668249853_0.2939696421092144"},"_hasShrinkwrap":false}},"readme":"SOMNUS\n======\n\nMinimal, database-agnostic REST API Framework based on Restify\n\n[![Build Status](https://app.travis-ci.com/somnusjs/somnus.svg?branch=master)](https://app.travis-ci.com/somnusjs/somnus)\n[![Package Quality](https://npm.packagequality.com/shield/somnus.svg)](https://packagequality.com/#?package=somnus)\n\n## Features\n\nSomnus is a very thin layer wrapping around the [Restify](https://www.npmjs.com/package/restify) Node.js library. It aims to set up foundational features of a web/API framework by adding (sometimes opinionated) out-of-the-box configurations on top of the bare-bone Restify. In short, it helps you:\n\n- set up your web/API platform in the shortest time possible\n- implement the use of [Bunyan](https://www.npmjs.com/package/bunyan) logger by default. This in turn discourages the spam of `console.log` which seems convenient at first but eventually will turn your project into a mess\n- add utility/helper functions supporting the repetitive, trivial tasks during day-to-day web/API development projects\n- integrate with [NGINX Unit](https://www.nginx.com/blog/introducing-nginx-unit/) seamlessly\n\nWhile the original developer's intention is to add commonly essential features on top of Restify, it's also important to note that the key principal is to keep the codebase as small as possible, living up to Restify's standard of being a lighter library than the colossus we have in [Express.js](https://expressjs.com/). Please keep this in mind should you decide to contribute to Somnus!\n\n## Developer & User notices\n\nSomnus strongly promotes the use of next-gen JavaScript (ES6, ES7, etc.). Hence, it will most likely always enforce the latest [LTS version of Node.js](https://github.com/nodejs/LTS) (for example `10.14.2` at writing time). Besides, it encourages the use of [modern JS features](https://github.com/lukehoban/es6features) such as **arrow functions**, **const identifier** and others (where they make sense).\n\nStarting v8.2.0, somnus has Nginx Unit integration support. If you fail to install Unit's language module for Node.js (`npm i unit-http`), be sure to follow up [Unit's installation guide](http://unit.nginx.org/installation/) itself first. For example, MacOS users may want to follow the [homebrew guide](https://github.com/nginx/homebrew-unit).\n\n## Installation\n\nWith [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com/) installed, simply run:\n\n```bash\n# installs a production build of this framework from the global npm repo\nnpm install somnus\n```\n\n## Build\n\n> Note: this section is only for contributors. If you only need to use Somnus, the installation step above is enough.\n\nYou can build the framework yourself by checking out this repository, `cd`ing into it then running the `build` or `build:prod` npm script, for example:\n\n```bash\n# installs the toolchains needed for the build process\nnpm install\n\n# outputs a development build into `lib/`\nnpm run build\n\n# or if you want a production build\nnpm run build:prod\n```\n\n> TBA: explain the difference between development and production builds\n\n## Usage\n\n```javascript\nimport somnus from 'somnus';\n// or const somnus = require('somnus').default;\n\n// you can add routes via the standard syntax\n// as you would normally do with `express` or `restify`\nsomnus.server.get('/echo', (req, res) => res.send('echo echo'));\n\n// or you can add routes by declaring a `routeConfig` object,\n// which is then passed into `somnus.start()`\nconst routeConfig = {\n  'get /hello': (req, res) => res.send('world')\n}\nsomnus.start({ routeConfig });\n\n// from now on, all routes added above are available. Go ahead and test these\n// paths with `curl` or your favourite web browser:\n// - `/echo`\n// - `/hello`\n```\n\n## Usage with NGINX Unit\n\nSupport for [NGINX Unit](https://www.nginx.com/blog/introducing-nginx-unit/) is available starting from `somnus@8.2.0`. To use your `somnus`-based application with Nginx Unit, you need to:\n1. ensure the `unit-http` module is installed (`npm i -g unit-http`). Nginx [recommends](https://unit.nginx.org/installation/#node-js) a global installation of this module\n    - if you fail to install this module, be sure to follow up [Unit's installation guide](http://unit.nginx.org/installation/) itself first. For example, MacOS users may want to follow the [homebrew guide](https://github.com/nginx/homebrew-unit).\n2. `cd` into your existing `somnus`-based application (where `somnus` is at least at v8.2.0)\n3. link `unit-http` into your application (`npm link unit-http`) (as instructed [here](https://unit.nginx.org/howto/samples/#node-js))\n4. add the line `#!/usr/bin/env node` on top of the entry file of your app\n    - if you have troubles adding the above shebang line to your webpack-compiled module, try using `webpack.BannerPlugin` like so: `new webpack.BannerPlugin({ banner: \"#!/usr/bin/env node\", raw: true })`, as shared in [this SO answer](https://stackoverflow.com/a/40763389/3429055).\n5. make the entry file executable (e.g. `chmod +x /path/to/your/entry.js`)\n\nand voilà, you can start it up with NGINX Unit as instructed in [this tutorial](https://unit.nginx.org/howto/samples/#node-js)\n\n## ENV variables\n\n- `UNIX_SOCKET`: the unix socket at which the underlying `http` server listens, defaults to `undefined`, taking precedence over `HOST` and `PORT` (explained below) when defined\n- `HOST`: the host at which the underlying `http` server listens, defaults to `localhost`\n- `PORT`: the port at which the underlying `http` server listens, defaults to a random available port on your system\n- `LOG_LEVEL`: enum of [bunyan log levels](https://github.com/trentm/node-bunyan#levels). If set, this will overwrite the default value, which is `warn` for production build and `debug` for development build.\n- `TARGET_DIST_BUILD`: **only used** when running tests. If true, the tests are run against the build artifact (`lib/somnus.js`); otherwise, the source file (`src/somnus.ts`)\n\n## Types\n\nFor those loving TypeScript: type-def for Somnus is backed directly into the build artifact so you don't have to install anything else. If your IDE somehow doesn't pick up the definitions automatically, please manually check/import the `node_modules/somnus/lib/somnus.d.ts` file.\n\nAlso, as Somnus bases itself on Restify, you may benefit from installing `@types/restify` and `@types/restify-errors` in addition (Somnus doesn't bake them in for you).\n\n## Test\n\nThe following command will run all tests found under `./test` and its subdirectories:\n\n```bash\nnpm test\n```\n\nWhy do we run tests for both `src` and `lib` directories? Because as library authors, we're responsible for ensuring that the build process transpiles & outputs as it should, and the best way to do that is by testing the code from both source and dist.\n\n## How to install 'unit-http'?\n\nIntegration with Nginx's `unit-http` was added in `v8.2.0` and a rudimentary unit test suite for it was added in `v8.4.0`.\nIt is not required to have `unit-http` installed to develop somnus.js; however, if you really want to install `unit-http`,\nfeel free to follow the following example steps:\n1. install the corresponding native system dependencies: https://unit.nginx.org/installation/\n2. install the `unit-http` Node.js module itself using `npm i -g unit-http`\n3. link the global `unit-http` to the somnus project using `npm link unit-http`\n\nNote that the instruction above is for example only. It should work for most use cases, but you are free to\ninstall `unit-http` however best fits your project/system setup.\n\n## Migration\n\n### from v3 to v8\n- the **somnus@8** API itself is backward compatible, so you should expect no major breaking changes in this space\n- minor TypeScript update is needed (TypeScript will otherwise warn you the same):\n  - before: `import somnus, { RouteConfig } from \"somnus\"`\n  - after: `import somnus, { IRouteConfig } from \"somnus\"`\n- as `somnus` is designed to be just a thin wrapper around `restify`, starting v8, its major version will always match that of `restify`. Please consult the corresponding [Restify migration guide](http://restify.com/docs/home/) for breaking changes regarding Restify internal itself.\n\n### from below to v3\n- If you have never used **somnus@1** or **somnus@2**, migration is of no concern for you\n- If you are using **somnus@1** or **somnus@2**, please understand that **somnus@3** is completely rewritten, and there is no migration path at all between v2 and v3. v3 exposes a different set of APIs and philosophies behind how the entire framework should be used.\n\nFAQs\n====\n\n## 1. What special knowledge do I need to fully utilize Somnus?\nFamiliarity with the [Restify](https://www.npmjs.com/package/restify) library is recommended, though not necessarily to get you started with and profit from Somnus.\n\n## 2. Why Somnus?\nPracticality, Productivity, Simplicity, Fun (well, hopefully)\n\n## 3. What is Somnus, again?\n**Somnus** is latin for **Sleep** (or at least that's [what Google told the developer](https://translate.google.com/?ie=UTF-8&hl=en&client=tw-ob#la/en/Somnus)). What better fits an API framework created for REST(ful) communications?\n\n## 4. What is Somnus, seriously?\nSomnus is aimed to **make mundane day-to-day web/API development tasks as effortlessly fun as possible while maintaining the smallest codebase possible**. Well, at least that's the original intent of the developer, so if you're considering contributing (which is a beautiful thing), please adhere to the said philosophy!\n\n## 5. Why database-agnostic?\n`SQL`, `MongoDB`, `RethinkDB` and a plethora of other database solutions have made it easier and more fun than ever before to play with data. At the same time, it gives framework developers a hard time deciding on any database technology to go with and invest in. Somnus is aimed to make things simple and minimal, not to magnify what's already clunky enough. Hence, it's up to Somnus users to choose the database technologies they feel most suitable to their projects.\n\nIn fact, Somnus isn't developed with any database driver built-in. It's essentially the **C** in MVC.\n\n## 6. How may I contribute?\nCurrently, there is no formal contribution guide. It probably makes sense to start there!\n","maintainers":[{"name":"thesephi","email":"thesephi@gmail.com"}],"time":{"modified":"2023-08-22T01:37:30.445Z","created":"2016-01-09T20:02:55.712Z","1.0.0":"2016-01-09T20:02:55.712Z","1.0.1":"2016-01-10T08:38:59.578Z","1.0.3":"2016-01-10T12:57:24.452Z","1.0.4":"2016-01-10T14:00:21.998Z","1.0.5":"2016-01-10T16:08:55.753Z","1.1.0":"2016-01-13T17:42:03.431Z","1.1.1":"2016-05-02T20:07:06.448Z","1.1.2":"2016-05-02T20:32:23.865Z","1.1.3":"2016-05-23T09:22:48.437Z","1.1.4":"2016-05-23T09:42:54.946Z","1.1.5":"2016-05-24T19:41:44.402Z","1.2.0":"2017-06-01T15:32:32.469Z","2.1.0":"2017-06-01T20:04:02.479Z","2.1.1":"2017-06-01T20:33:42.127Z","3.0.0-rc1":"2018-12-23T09:53:06.295Z","3.0.0-rc2":"2018-12-23T10:20:26.505Z","3.0.0":"2018-12-23T11:10:10.806Z","3.0.1":"2018-12-23T17:18:52.206Z","8.0.0":"2020-07-26T01:22:27.546Z","8.1.0":"2020-07-27T23:36:37.212Z","8.2.0-alpha.1":"2020-08-03T21:40:10.086Z","8.2.0-alpha.2":"2020-12-13T21:28:33.643Z","8.2.1":"2022-04-10T07:11:43.027Z","8.3.0":"2022-05-24T23:16:23.937Z","8.3.1":"2022-05-25T00:05:21.088Z","8.3.2-rc.4":"2022-05-26T22:40:55.879Z","8.3.2":"2022-05-29T22:53:53.576Z","8.4.0":"2022-07-11T02:24:46.295Z","11.0.0":"2023-08-22T01:37:30.239Z"},"homepage":"https://github.com/somnusjs/somnus#readme","keywords":["somnus","api","web","rest","framework","restify"],"repository":{"type":"git","url":"git+https://github.com/somnusjs/somnus.git"},"author":{"name":"Khang Dinh","email":"thesephi@gmail.com"},"bugs":{"url":"https://github.com/somnusjs/somnus/issues","email":"thesephi@gmail.com"},"license":"MIT","readmeFilename":"README.md","users":{"thesephi":true}}