{"_id":"clite","_rev":"162150","name":"clite","description":"A slight CLI framework","dist-tags":{"latest":"0.3.0"},"maintainers":[{"name":"remy","email":""}],"time":{"modified":"2021-06-03T11:41:33.000Z","created":"2016-02-09T11:22:58.981Z","0.2.0":"2016-03-28T13:43:20.626Z","0.3.0":"2016-03-28T20:35:52.687Z","0.1.6":"2016-03-18T12:35:42.106Z","0.1.5":"2016-02-29T21:34:18.961Z","0.1.4":"2016-02-29T19:45:03.686Z","0.1.3":"2016-02-29T14:47:19.360Z","0.1.2":"2016-02-26T13:28:11.459Z","0.1.1":"2016-02-22T22:17:55.554Z","0.1.0":"2016-02-22T22:13:16.879Z","0.0.0":"2016-02-09T11:22:58.981Z"},"users":{},"author":{"name":"Remy Sharp"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"versions":{"0.2.0":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"config":{"validate-commit-msg":{"helpMessage":"\n-----------\n\nThere was a small validation problem with your commit message:\n\n> %s\n\nIt's not a huge problem, but a valid commit message will ensure\nwhether your commit triggers a release or not (and sometimes the\ncommit won't need to trigger a release). If you really need to, you\ncan skip the validation using `git commit --no-verify`.\n\nIf your commit is a fix, it might want to be:\n\n> fix: storage bug\n\nOr a feature:\n\n> feat: added new storage process\n\nThere's also `docs`, `test` and `chore` and a few more. To read\nhow the commit message should be formatted, please see this short\npost: https://git.io/v2Nnm\n"},"ghooks":{"commit-msg":"validate-commit-msg","pre-push":"npm test"}},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","ghooks":"^1.0.3","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","rimraf":"^2.5.2","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5","validate-commit-msg":"^2.3.0"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","then-fs":"^2.0.0","update-notifier":"^0.6.0","yargs":"^4.3.2"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.2.0","gitHead":"bb9a06b7dcaf8ccbf71669c75b64ea29f81c1a84","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.2.0","_shasum":"360e9e362ac872d184a5c1339a58f98ca0bd7ecf","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.9.1","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"360e9e362ac872d184a5c1339a58f98ca0bd7ecf","size":23004,"noattachment":false,"key":"/clite/-/clite-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.2.0.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/clite-0.2.0.tgz_1459172599627_0.8406882400158793"},"directories":{},"publish_time":1459172600626,"_cnpm_publish_time":1459172600626,"_hasShrinkwrap":false},"0.3.0":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"config":{"validate-commit-msg":{"helpMessage":"\n-----------\n\nThere was a small validation problem with your commit message:\n\n> %s\n\nIt's not a huge problem, but a valid commit message will ensure\nwhether your commit triggers a release or not (and sometimes the\ncommit won't need to trigger a release). If you really need to, you\ncan skip the validation using `git commit --no-verify`.\n\nIf your commit is a fix, it might want to be:\n\n> fix: storage bug\n\nOr a feature:\n\n> feat: added new storage process\n\nThere's also `docs`, `test` and `chore` and a few more. To read\nhow the commit message should be formatted, please see this short\npost: https://git.io/v2Nnm\n"},"ghooks":{"commit-msg":"validate-commit-msg","pre-push":"npm test"}},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","ghooks":"^1.0.3","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","rimraf":"^2.5.2","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5","validate-commit-msg":"^2.3.0"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","then-fs":"^2.0.0","update-notifier":"^0.6.0","yargs":"^4.3.2"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.3.0","gitHead":"83fb9dd755d71916fc06cf2da023ec3bc3af834e","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.3.0","_shasum":"e7fcbc8cc5bd3e7f8b84ed48db12e9474cc73441","_from":".","_npmVersion":"2.15.2","_nodeVersion":"5.9.1","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"e7fcbc8cc5bd3e7f8b84ed48db12e9474cc73441","size":25820,"noattachment":false,"key":"/clite/-/clite-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.3.0.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/clite-0.3.0.tgz_1459197351769_0.3460871509741992"},"directories":{},"publish_time":1459197352687,"_cnpm_publish_time":1459197352687,"_hasShrinkwrap":false},"0.1.6":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"config":{"validate-commit-msg":{"helpMessage":"\n-----------\n\nThere was a small validation problem with your commit message:\n\n> %s\n\nIt's not a huge problem, but a valid commit message will ensure\nwhether your commit triggers a release or not (and sometimes the\ncommit won't need to trigger a release). If you really need to, you\ncan skip the validation using `git commit --no-verify`.\n\nIf your commit is a fix, it might want to be:\n\n> fix: storage bug\n\nOr a feature:\n\n> feat: added new storage process\n\nThere's also `docs`, `test` and `chore` and a few more. To read\nhow the commit message should be formatted, please see this short\npost: https://git.io/v2Nnm\n"},"ghooks":{"commit-msg":"validate-commit-msg","pre-push":"npm test"}},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","ghooks":"^1.0.3","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","rimraf":"^2.5.2","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5","validate-commit-msg":"^2.3.0"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.6","gitHead":"77c729d65dd65f02546555c4f983c3cb0501710f","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.6","_shasum":"065e53de8fda4e34dfac1a90d2e87b00de292d66","_from":".","_npmVersion":"2.15.1","_nodeVersion":"5.9.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"065e53de8fda4e34dfac1a90d2e87b00de292d66","size":20024,"noattachment":false,"key":"/clite/-/clite-0.1.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.6.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/clite-0.1.6.tgz_1458304539648_0.7012320926878601"},"directories":{},"publish_time":1458304542106,"_cnpm_publish_time":1458304542106,"_hasShrinkwrap":false},"0.1.5":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","rimraf":"^2.5.2","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.5","gitHead":"dfb4f62387a9bec729fbbaf383cb361545c71bdd","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.5","_shasum":"4abd5db3a9ed88cdd40080f3b982688aecc6b440","_from":".","_npmVersion":"2.14.21","_nodeVersion":"5.7.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"4abd5db3a9ed88cdd40080f3b982688aecc6b440","size":19475,"noattachment":false,"key":"/clite/-/clite-0.1.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.5.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/clite-0.1.5.tgz_1456781655390_0.7334364661946893"},"directories":{},"publish_time":1456781658961,"_cnpm_publish_time":1456781658961,"_hasShrinkwrap":false},"0.1.4":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.4","gitHead":"8a697ef17da23873cc1cd09058c0d228669a884e","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.4","_shasum":"e646912ba040a20843dd490edc618d7ffe91bbc8","_from":".","_npmVersion":"2.14.21","_nodeVersion":"5.7.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"e646912ba040a20843dd490edc618d7ffe91bbc8","size":18864,"noattachment":false,"key":"/clite/-/clite-0.1.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.4.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/clite-0.1.4.tgz_1456775099960_0.8153635251801461"},"directories":{},"publish_time":1456775103686,"_cnpm_publish_time":1456775103686,"_hasShrinkwrap":false},"0.1.3":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.3","gitHead":"d7709fa043f856eaabbd1a086538c58676f12339","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.3","_shasum":"09496f6ec53ed4c556d306dfde0e8d891afc3923","_from":".","_npmVersion":"2.14.21","_nodeVersion":"5.7.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"09496f6ec53ed4c556d306dfde0e8d891afc3923","size":17961,"noattachment":false,"key":"/clite/-/clite-0.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.3.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/clite-0.1.3.tgz_1456757237839_0.3128603391814977"},"directories":{},"publish_time":1456757239360,"_cnpm_publish_time":1456757239360,"_hasShrinkwrap":false},"0.1.2":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.3.1","lodash.mergewith":"^4.3.1","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.2","gitHead":"51223da4b23ed8e2719af4c881ef1b51503be409","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.2","_shasum":"d0523cebe4d05196d24aa3a38bb5e36a4bb7c93f","_from":".","_npmVersion":"2.14.21","_nodeVersion":"5.7.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"d0523cebe4d05196d24aa3a38bb5e36a4bb7c93f","size":10922,"noattachment":false,"key":"/clite/-/clite-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.2.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/clite-0.1.2.tgz_1456493288468_0.01981997024267912"},"directories":{},"publish_time":1456493291459,"_cnpm_publish_time":1456493291459,"_hasShrinkwrap":false},"0.1.1":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.1.0","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.1","gitHead":"50f26423a35bf4b23867d9b6aa25782391616e6e","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.1","_shasum":"e4da599b5e1166c2e463dd2d4ca194a9af6230e3","_from":".","_npmVersion":"2.14.20","_nodeVersion":"5.6.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"e4da599b5e1166c2e463dd2d4ca194a9af6230e3","size":10756,"noattachment":false,"key":"/clite/-/clite-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.1.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/clite-0.1.1.tgz_1456179469871_0.4783093088772148"},"directories":{},"publish_time":1456179475554,"_cnpm_publish_time":1456179475554,"_hasShrinkwrap":false},"0.1.0":{"name":"clite","description":"A slight CLI framework","main":"./index.js","scripts":{"lint":"jscs lib/*.js -v","check-only":"! grep 'test.only' test/**/*.test.js -n","tap":"tap test/**/*.test.js --cov","test":"npm run check-only && npm run lint && npm run tap","cover":"tap test/**/*.test.js --cov --coverage-report=lcov && npm run check-only","build":"babel lib --out-dir dist","semantic-release":"semantic-release pre && npm publish && semantic-release post"},"bin":{"clite":"cli/index.js"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","devDependencies":{"babel-cli":"^6.5.1","babel-preset-es2015":"^6.5.0","jscs":"^2.10.1","mock-stdin":"^0.3.0","proxyquire":"^1.7.4","semantic-release":"^4.3.5","tap":"^5.4.3","tap-only":"0.0.5"},"dependencies":{"abbrev":"^1.0.7","debug":"^2.2.0","es6-promise":"^3.1.2","lodash.defaults":"^4.0.1","lodash.defaultsdeep":"^4.1.0","minimist":"^1.2.0","then-fs":"^2.0.0","update-notifier":"^0.6.0"},"repository":{"type":"git","url":"git+https://github.com/remy/clite.git"},"version":"0.1.0","gitHead":"b6cfbca7280703b7fce97785f7ae5b22e1132cf9","bugs":{"url":"https://github.com/remy/clite/issues"},"homepage":"https://github.com/remy/clite#readme","_id":"clite@0.1.0","_shasum":"4c5037a629f7d35b2f28f6d1ebd1c5f5fc3e2c8d","_from":".","_npmVersion":"2.14.20","_nodeVersion":"5.6.0","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"4c5037a629f7d35b2f28f6d1ebd1c5f5fc3e2c8d","size":10759,"noattachment":false,"key":"/clite/-/clite-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.1.0.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/clite-0.1.0.tgz_1456179192052_0.0665985899977386"},"directories":{},"publish_time":1456179196879,"_cnpm_publish_time":1456179196879,"_hasShrinkwrap":false},"0.0.0":{"name":"clite","version":"0.0.0","description":"CLI lite framework","main":"lib/index.js","scripts":{"test":"tap test/*.test.js --cov"},"keywords":["cli","terminal","framework"],"author":{"name":"Remy Sharp"},"license":"MIT","_id":"clite@0.0.0","_shasum":"ac1d654268e9d533c0837e32d8ef32e019ab5449","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.2.4","_npmUser":{"name":"remy","email":"remy@leftlogic.com"},"dist":{"shasum":"ac1d654268e9d533c0837e32d8ef32e019ab5449","size":286,"noattachment":false,"key":"/clite/-/clite-0.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/clite/download/clite-0.0.0.tgz"},"maintainers":[{"name":"remy","email":""}],"_npmOperationalInternal":{"host":"packages-9-west.internal.npmjs.com","tmp":"tmp/clite-0.0.0.tgz_1455016976793_0.450729310978204"},"directories":{},"publish_time":1455016978981,"_cnpm_publish_time":1455016978981,"_hasShrinkwrap":false}},"readme":"# clite\n\nA CLI lite framework for your node CLI utilities. Provides basic routine functionality that you don't want to write yourself. Pronounced: *slight*.\n\n[![Build Status](https://travis-ci.org/remy/clite.svg)](https://travis-ci.org/remy/clite) [![Donate](https://img.shields.io/badge/support-%20%E2%9D%A4%20-56c838.svg)](https://www.paypal.me/rem)\n\n## Features\n\n- **version**: echo's current `package.json` version, or if omitted (if you're using [semantic-release](https://www.npmjs.com/semantic-release)) will echo the current branch & commit\n- **help**: simplifies loading and reading help files\n- **stdin**: automatically detects bodies on stdin and passes it as an argument to your code\n- **update notification**: uses [update-notifier](https://www.npmjs.com/update-notifier) to automatically notify your users of an update to your CLI tool\n- on exceptions, will echo the error and quit with a non-zero exit code\n- automatically creates aliases for all your CLI commands and options using [abbrev](https://www.npmjs.com/package/abbrev)\n- supports boolean flags, options and aliases using [yargs](https://www.npmjs.org/yargs)\n- promise based (note that promises are polyfilled in node < 4, using [es6-promise](https://www.npmjs.com/es6-promise))\n- command modules are lazy loaded, which reduces boot and exit time in your CLI tool\n\n## Usage\n\nAfter `npm install --save clite` to your project, the simplest CLI script contains:\n\n```js\n#!/usr/bin/env node\nvar clite = require('clite');\nclite(require('./config'));\n```\n\nThe config drives how your code is run from the CLI. Note that by default, clite expects your code to return a string (which will be echo'ed on `STDOUT`) or throw an error that also echos the `error.message` on `STDERR`.\n\n## Debugging\n\nTo see more details on what clite is parsing and see any stacktraces inside of clite, use the `DEBUG=clite` env value:\n\n```bash\nDEBUG=clite <your-demo-app>\n```\n\n## Return objects in commands (and async use)\n\nYour command modules are called inside of promises. The clite framework expects a `string` to be returned out of the promises to be printed on `STDOUT`.\n\nIf your command needs to make use of asnychonous programming, return a promise, and resolve the promise with a string. For example:\n\n```js\nmodule.exports = function echoLater(args) {\n  return new Promise(resolve =>\n    setTimeout(() => resolve('All done'), 1000)\n  );\n};\n```\n\n## Config\n\nThe configuration is made up of the following properties:\n\n- commands: a map of CLI arguments to JavaScript files\n- booleans: an array of arguments you wish to accept as boolean values\n- options: an array of arguments you wish to accept as strings (or numbers)\n- alias: a map of alias keys (the CLI alias) and values (the real value)\n- help: either a filename, or a map of keys and values to text filenames\n- return: defaulted to false, returns all values, errors included, to user code (by default exceptions cause a `process.exit(1)`)\n\n**Important**: all filenames (for help and commands) are relative to the root of your package.json file.\n\nFor `commands` and `help`, a special key of `_` that is used if no argument is given (i.e. your user runs your CLI utility without any arguments).\n\nA sample config can be seen in the [example](#example) section below.\n\n## Commands\n\nThe commands are the mapping from the CLI argument to your scripts. An example `commands` in the config could be:\n\n```js\nmodule.exports = {\n  commands: {\n    '_': 'lib/index',\n    'publish': 'lib/publish',\n    'search': 'lib/search',\n    'new': 'lib/create-new-post'\n  },\n  // snip\n```\n\nAlthough clite uses promises, your code does not need to use them (but you can if chose to), however, if you `throw` an error, this will echo to the terminal and `exit(1)` the program. The commands modules receive three arguments:\n\n- `args`: an object of the fully parsed CLI arguments, all command arguments are stored in `args._` as an array (note that the array only contains all the remaining args not matched to flags or commands)\n- `settings`: the configuration of clite (including defaults)\n- `body`: the body of text if content was piped via `STDIN`\n\nFor example, `lib/create-new-post` could contain:\n\n```js\nmodule.exports = (args, settings, body) => {\n  if (body) {\n    // create the post in the db\n    return new Post({\n      body,\n      title: args._[0]\n    }).save().then(r => `Successfully created ${r.id}`);\n  }\n};\n\n// called using `cat post.md | my-cli-tool new \"Awesome Post Title\"\n```\n\nThis also assumes that your bin script is using `.then(console.log)` to redirect responses to the terminal. Of course, you don't have to do that, you can handle printing to the terminal as you please.\n\n## Example\n\nDirectory structure:\n\n```text\nclite-demo\n├── cli\n│   ├── config.js\n│   └── index.js\n├── help\n│   ├── help.txt\n│   └── setup.txt\n├── lib\n│   ├── search.js\n│   ├── publish.js\n│   ├── create-new-post.js\n│   └── index.js\n├── node_modules\n│   └── clite <snip>\n└── package.json\n```\n\nSnippet of `package.json`:\n\n```json\n{\n  \"name\": \"clite-demo\",\n  \"main\": \"lib/index.js\",\n  \"dependencies\": {\n    \"clite\": \"^1.0.0\"\n  },\n  \"bin\": {\n    \"clite-demo\": \"cli/index.js\"\n  }\n}\n```\n\nContents of `cli/index.js` (which is linked to the bin file `clite-demo`):\n\n```js\n#!/usr/bin/env node\nvar clite = require('clite');\nclite(require('./config')).then(console.log);\n```\n\nContents of `cli/config.js`:\n\n```js\nmodule.exports = {\n  commands: {\n    '_': 'lib/index',\n    'publish': 'lib/publish',\n    'search': 'lib/search',\n    'new': 'lib/create-new-post'\n  },\n  option: [\n    'grep',\n    'count',\n  ],\n  flag: [\n    'debug',\n    'json'\n  ],\n  help: {\n    _: 'help/help.txt',\n    setup: 'help/setup.txt'\n  },\n};\n```\n\n**Important note:** where `_` is used, this is the fallback for if the user has not specified a value for a particular command. If the default is not found, clite will revert to loading \"`.`\" (aka the index of package directory).\n\n## FAQTIMU\n\nFrequently asked questions...that I made up:\n\n### I see `undefined` at the end of the output\n\nThis is because clite is logging out your content, then your code is including a final log, such as:\n\n```js\nclite(require('./config')).then(console.log);\n```\n\nTo fix this, remove the final `.then(console.log)`.\n\n### Can I get the original CLI arguments?\n\nThe original CLI args is on `process.argv`, if you want everything that wasn't a boolean or an option, then this is in the command's `arg.argv` - which is usually the same as `arg._` except doesn't contain the path to `node`, the script that ran the code and if a command was matched, that command.\n\n## Feedback, filing issues & pull requests\n\nPlease see the [contributing](https://github.com/remy/clite/blob/master/.github/CONTRIBUTING.md) for guidelines. All feedback is welcome ❤\n\n## License\n\nMIT / http://rem.mit-license.org","_attachments":{},"homepage":"https://github.com/remy/clite#readme","bugs":{"url":"https://github.com/remy/clite/issues"},"license":"MIT"}