{"analyzedAt":"2022-06-28T18:32:07.620Z","collected":{"metadata":{"name":"vorpal","scope":"unscoped","version":"1.12.0","description":"Node's first framework for building immersive CLI apps.","keywords":["api","cli","repl","shell","immersive","framework","app","application","command","commander","automated","prompt","inquirer"],"date":"2017-04-09T17:15:27.655Z","author":{"name":"dthree"},"publisher":{"username":"dthree","email":"threedeecee@gmail.com"},"maintainers":[{"username":"dthree","email":"threedeecee@gmail.com"},{"username":"scotthovestadt","email":"scott.hovestadt@gmail.com"}],"repository":{"type":"git","url":"git+https://github.com/dthree/vorpal.git"},"links":{"npm":"https://www.npmjs.com/package/vorpal"},"license":"MIT","dependencies":{"babel-polyfill":"^6.3.14","chalk":"^1.1.0","in-publish":"^2.0.0","inquirer":"0.11.0","lodash":"^4.5.1","log-update":"^1.0.2","minimist":"^1.2.0","node-localstorage":"^0.6.0","strip-ansi":"^3.0.0","wrap-ansi":"^2.0.0"},"devDependencies":{"babel":"^6.3.26","babel-core":"^6.4.5","babel-preset-es2015":"^6.3.13","bluebird":"^3.1.1","gulp":"^3.9.0","gulp-babel":"^6.1.2","gulp-changed":"^1.3.0","gulp-eslint":"^1.1.1","gulp-xo":"^0.7.0","load-plugins":"^2.1.0","mocha":"^2.2.5","moment":"^2.10.3","request":"^2.58.0","should":"^6.0.3","vorpal-less":"0.0.4","vorpal-repl":"^1.1.8","xo":"^0.9.0"},"releases":[{"from":"2022-05-29T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2022-03-30T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2021-12-30T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2021-06-28T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2020-06-28T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0}],"hasTestScript":true,"hasSelectiveFiles":true,"readme":"# Vorpal\r\n\r\n\r\n[![Build Status](https://travis-ci.org/dthree/vorpal.svg)](https://travis-ci.org/dthree/vorpal/)\r\n<a href=\"https://www.npmjs.com/package/vorpal\">\r\n  <img src=\"https://img.shields.io/npm/dt/vorpal.svg\" alt=\"NPM Downloads\" />\r\n</a>\r\n[![Package Quality](http://npm.packagequality.com/shield/vorpal.svg)](http://packagequality.com/#?package=vorpal)\r\n<a href=\"https://www.npmjs.com/package/vorpal\">\r\n  <img src=\"https://img.shields.io/npm/v/vorpal.svg\" alt=\"NPM Version\" />\r\n</a>\r\n[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)\r\n\r\n> Conquer the command-line.\r\n\r\n```text\r\n              (O)\r\n              <M\r\n   o          <M\r\n  /| ......  /:M\\------------------------------------------------,,,,,,\r\n(O)[ vorpal ]::@+}==========================================------------>\r\n  \\| ^^^^^^  \\:W/------------------------------------------------''''''\r\n   o          <W\r\n              <W\r\n              (O)\r\n```\r\n\r\nVorpal is Node's first framework for building interactive CLI applications. With a simple and powerful API, Vorpal opens the door to a new breed of rich, immersive CLI environments like [cash](https://github.com/dthree/cash) and [wat](https://github.com/dthree/wat).\r\n\r\n## Notice\r\n\r\nThis is now an [OPEN Open Source](http://openopensource.org/) project. I am not able to invest a significant amount of time into maintaining Vorpal and so am looking for volunteers who would like to be active maintainers of the project. If you are interested, shoot me a note.\r\n\r\n## Contents\r\n\r\n* [Introduction](#introduction)\r\n* [Getting Started](#getting-started)\r\n* [API](#api)\r\n* [Extensions](#extensions)\r\n* [FAQ](#faq)\r\n* [License](#license)\r\n\r\n## Introduction\r\n\r\nInspired by and based on [commander.js](https://www.npmjs.com/package/commander), Vorpal is a framework for building immersive CLI applications built on an interactive prompt provided by [inquirer.js](https://www.npmjs.com/package/inquirer). Vorpal launches Node into an isolated CLI environment and provides a suite of API commands and functionality including:\r\n\r\n* [x] Simple, powerful command creation\r\n* [x] Supports optional, required and variadic arguments and options\r\n* [x] Piped commands\r\n* [x] Persistent command history\r\n* [x] Built-in help\r\n* [x] Built-in tabbed auto-completion\r\n* [x] Command-specific auto-completion\r\n* [x] Customizable prompts\r\n* [x] Extensive terminal control\r\n* [x] Custom event listeners\r\n* [x] And more\r\n\r\nVorpal supports [community extensions](https://github.com/vorpaljs/awesome-vorpaljs), which empower it to do awesome things such as [piping commands to less](https://github.com/vorpaljs/vorpal-less), [importing commands live](https://github.com/vorpaljs/vorpal-use) or supporting a [built-in REPL](https://github.com/vorpaljs/vorpal-repl).\r\n\r\nMade with :heart: by [dthree](https://github.com/dthree).\r\n\r\n## Getting Started\r\n\r\n##### Quick Start\r\n\r\nInstall `vorpal` into your project:\r\n\r\n```bash\r\n$ npm install vorpal --save\r\n```\r\n\r\nCreate a `.js` file and add the following:\r\n\r\n```js\r\nconst vorpal = require('vorpal')();\r\n\r\nvorpal\r\n  .command('foo', 'Outputs \"bar\".')\r\n  .action(function(args, callback) {\r\n    this.log('bar');\r\n    callback();\r\n  });\r\n\r\nvorpal\r\n  .delimiter('myapp$')\r\n  .show();\r\n```\r\nThis creates an instance of Vorpal, adds a command which logs \"bar\", sets the prompt delimiter to say \"myapp$\", and shows the prompt.\r\n\r\nRun your project file. Your Node app has become a CLI:\r\n\r\n```bash\r\n$ node server.js\r\nmyapp~$\r\n```\r\n\r\nTry out your \"foo\" command.\r\n\r\n```bash\r\nmyapp~$ foo\r\nbar\r\nmyapp~$\r\n```\r\n\r\nNow type \"help\" to see Vorpal's built in commands in addition to \"foo\":\r\n\r\n```bash\r\nmyapp~$ help\r\n\r\n  Commands\r\n\r\n    help [command]    Provides help for a given command.\r\n    exit [options]    Exits instance of Vorpal.\r\n    foo               Outputs \"bar\".\r\n\r\nmyapp~$\r\n```\r\n\r\nThere's the basics. Once you get the hang of it, [follow this tutorial](http://developer.telerik.com/featured/creating-node-js-command-line-utilities-improve-workflow/) or read on to learn what else Vorpal can do.\r\n\r\n##### Community\r\n\r\nQuestions? Use the `vorpal.js` StackOverflow tag for fast answers that help others, or jump into chat on Gitter.\r\n\r\n- [Stack Overflow](http://stackoverflow.com/questions/tagged/vorpal.js) \r\n- [Gitter Chat](https://gitter.im/dthree/vorpal?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) \r\n- [Vorpal extensions](https://github.com/vorpaljs/awesome-vorpaljs#vorpal-extensions) \r\n- [Projects made with Vorpal](https://github.com/vorpaljs/awesome-vorpaljs) \r\n- [Follow @vorpaljs](https://twitter.com/vorpaljs) \r\n\r\n## [API](https://github.com/dthree/vorpal/wiki)\r\n\r\n##### [Command](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command)\r\n- [`vorpal.command`](https://github.com/dthree/vorpal/wiki/api-%7C-vorpal.command#vorpalcommandcommand-description)\r\n- [`command.description`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commanddescriptionstring)\r\n- [`command.alias`](https://github.com/dthree/vorpal/wiki/api-%7C-vorpal.command#commandaliasname-names)\r\n- [`command.parse`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandparseparsefunction)\r\n- [`command.option`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandoptionstring-description)\r\n- [`command.hidden`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandhidden)\r\n- [`command.remove`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandremove)\r\n- [`command.help`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandhelp)\r\n- [`command.autocomplete`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandautocompletearray-or-object-or-function)\r\n- [`command.action`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandactionfunction)\r\n- [`command.cancel`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.command#commandcancelfunction)\r\n\r\n##### [Mode](https://github.com/dthree/vorpal/wiki/API-|-vorpal.mode)\r\n- [`vorpal.mode`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal.mode#vorpalmodecommand-description)\r\n- [`mode.delimiter`](https://github.com/dthree/vorpal/wiki/API-|-vorpal.mode#modedelimiterstring)\r\n- [`mode.init`](https://github.com/dthree/vorpal/wiki/API-|-vorpal.mode#modeinitfunction)\r\n- [`mode.action`](https://github.com/dthree/vorpal/wiki/API-|-vorpal.mode#modeactionfunction)\r\n\r\n##### [Catch](https://github.com/dthree/vorpal/wiki/API-|-vorpal.catch)\r\n- [`vorpal.catch`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal.catch#catchcommand-description)\r\n\r\n##### [CommandInstance](https://github.com/dthree/vorpal/wiki/API-|-CommandInstance)\r\n- [`commandInstance.log`](https://github.com/dthree/vorpal/wiki/API-%7C-CommandInstance#commandinstancelogstring-strings)\r\n- [`commandInstance.prompt`](https://github.com/dthree/vorpal/wiki/API-%7C-CommandInstance#commandinstancepromptobject-callback)\r\n- [`commandInstance.delimiter`](https://github.com/dthree/vorpal/wiki/API-%7C-CommandInstance#commandinstancedelimiterstring)\r\n\r\n##### [UI](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui)\r\n- [`ui.delimiter`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uidelimitertext)\r\n- [`ui.input`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uiinputtext)\r\n- [`ui.imprint`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uiimprint)\r\n- [`ui.submit`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uisubmittext)\r\n- [`ui.cancel`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uicancel)\r\n- [`ui.imprint`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uiimprint)\r\n- [`ui.redraw`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uiredrawtext-text)\r\n- [`ui.redraw.clear`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uiredrawclear)\r\n- [`ui.redraw.done`](https://github.com/dthree/vorpal/wiki/api-|-vorpal.ui#uiredrawdone)\r\n\r\n##### [Vorpal](https://github.com/dthree/vorpal/wiki/API-|-vorpal)\r\n- [`.parse`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalparseargv-options)\r\n- [`.delimiter`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpaldelimiterstring)\r\n- [`.show`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalshow)\r\n- [`.find`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalfindstring)\r\n- [`.exec`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalexeccommand-callback)\r\n- [`.execSync`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalexecsynccommand-options)\r\n- [`.log`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpallogstring-strings)\r\n- [`.history`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalhistoryid)\r\n- [`.localStorage`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpallocalstorageid)\r\n- [`.help`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalhelpfunction)\r\n- [`.pipe`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpalpipefunction)\r\n- [`.use`](https://github.com/dthree/vorpal/wiki/API-%7C-vorpal#vorpaluseextension)\r\n\r\n##### [Events](https://github.com/dthree/vorpal/wiki/Docs-%7C-Events)\r\n\r\n\r\n## Extensions\r\n\r\nYou can build your own Vorpal commands and extensions.\r\n\r\n- [List of awesome extensions](https://github.com/vorpaljs/awesome-vorpaljs#vorpal-extensions)\r\n- [Building your own extension](https://github.com/dthree/vorpal/wiki/Docs-%7C-Creating-Extensions)\r\n\r\n\r\n## [FAQ](https://github.com/dthree/vorpal/wiki/FAQ)\r\n\r\n- [What is an \"immersive CLI app?\"](https://github.com/dthree/vorpal/wiki/FAQ#what-is-an-immersive-cli-app)\r\n- [Wasn't this called Vantage?](https://github.com/dthree/vorpal/wiki/FAQ#uh-wasnt-this-called-vantage)\r\n\r\n\r\n## Why Vorpal?\r\n\r\n```text\r\nOne, two! One, two! and through and through\r\nThe vorpal blade went snicker-snack!\r\nHe left it dead, and with its head\r\nHe went galumphing back.\r\n\r\nLewis Carroll, Jabberwocky\r\n```\r\n\r\n\r\n##### Life Goals:\r\n\r\n- <s>Build a popular framework based on the [Jabberwocky](https://en.wikipedia.org/wiki/Jabberwocky) poem.</s>\r\n\r\n\r\n## License\r\n\r\nMIT © [David Caccavella](https://github.com/dthree)"},"npm":{"downloads":[{"from":"2022-06-27T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":10883},{"from":"2022-06-21T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":60190},{"from":"2022-05-29T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":232694},{"from":"2022-03-30T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":995461},{"from":"2021-12-30T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":2207600},{"from":"2021-06-28T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":4916886}],"starsCount":50},"github":{"homepage":"http://vorpal.js.org","starsCount":5538,"forksCount":300,"subscribersCount":69,"issues":{"count":357,"openCount":141,"distribution":{"3600":30,"10800":19,"32400":26,"97200":22,"291600":25,"874800":12,"2624400":22,"7873200":30,"23619600":25,"70858800":10,"212576400":136},"isDisabled":false},"contributors":[{"username":"melonmanchan","commitsCount":4},{"username":"zakhenry","commitsCount":1},{"username":"da70","commitsCount":2},{"username":"jeff-1amstudios","commitsCount":4},{"username":"postatum","commitsCount":2},{"username":"fiatjaf","commitsCount":1},{"username":"milesj","commitsCount":3},{"username":"scotthovestadt","commitsCount":37},{"username":"mdouglass","commitsCount":1},{"username":"fredericgrati","commitsCount":3},{"username":"alansouzati","commitsCount":3},{"username":"rjmill","commitsCount":1},{"username":"drewbrokke","commitsCount":5},{"username":"dashlanebot","commitsCount":1},{"username":"naltun","commitsCount":1},{"username":"DanielRuf","commitsCount":2},{"username":"prayagverma","commitsCount":1},{"username":"marcos-abreu","commitsCount":1},{"username":"matt-oc","commitsCount":2},{"username":"MichelYpma","commitsCount":2},{"username":"AdrieanKhisbe","commitsCount":2},{"username":"hnordt","commitsCount":1},{"username":"mvayngrib","commitsCount":4},{"username":"e-jigsaw","commitsCount":1},{"username":"eliperelman","commitsCount":1},{"username":"ccorcos","commitsCount":4},{"username":"ORESoftware","commitsCount":1},{"username":"dthree","commitsCount":13},{"username":"jackyjieliu","commitsCount":15}],"commits":[{"from":"2022-06-21T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2022-05-29T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2022-03-30T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2021-12-30T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0},{"from":"2021-06-28T00:00:00.000Z","to":"2022-06-28T00:00:00.000Z","count":0}],"statuses":[{"context":"continuous-integration/travis-ci/push","state":"success"}]},"source":{"files":{"readmeSize":10078,"testsSize":50278,"hasNpmIgnore":true},"badges":[{"urls":{"original":"https://travis-ci.org/dthree/vorpal.svg","service":"https://api.travis-ci.org/dthree/vorpal.svg","shields":"https://img.shields.io/travis/dthree/vorpal.svg","content":"https://img.shields.io/travis/dthree/vorpal.json"},"info":{"service":"travis","type":"build"}},{"urls":{"original":"https://img.shields.io/npm/dt/vorpal.svg","shields":"https://img.shields.io/npm/dt/vorpal.svg","content":"https://img.shields.io/npm/dt/vorpal.json"},"info":{"service":"npm","type":"downloads","modifiers":{"type":"dt"}}},{"urls":{"original":"https://img.shields.io/npm/v/vorpal.svg","shields":"https://img.shields.io/npm/v/vorpal.svg","content":"https://img.shields.io/npm/v/vorpal.json"},"info":{"service":"npm","type":"version","modifiers":{"type":"v"}}}],"linters":["xo"],"outdatedDependencies":{"strip-ansi":{"required":"^3.0.0","stable":"7.0.1","latest":"6.0.1"},"wrap-ansi":{"required":"^2.0.0","stable":"8.0.1","latest":"8.0.1"},"chalk":{"required":"^1.1.0","stable":"5.0.1","latest":"5.0.1"},"log-update":{"required":"^1.0.2","stable":"5.0.1","latest":"5.0.1"},"node-localstorage":{"required":"^0.6.0","stable":"2.2.1","latest":"2.2.1"},"inquirer":{"required":"0.11.0","stable":"9.0.0","latest":"9.0.0"}}}},"evaluation":{"quality":{"carefulness":0.9199999999999999,"tests":0.85,"health":0.5,"branding":0.85},"popularity":{"communityInterest":5986,"downloadsCount":331820.3333333333,"downloadsAcceleration":-1730.2324961948245,"dependentsCount":0},"maintenance":{"releasesFrequency":0,"commitsFrequency":0,"openIssues":0.6750700280112045,"issuesDistribution":0}},"score":{"final":0.5719032037261782,"detail":{"quality":0.9097118215127683,"popularity":0.3563909346344382,"maintenance":0.49786522900084096}}}