| 'use strict'; | ||
| module.exports = { | ||
| config: require('./config.js'), | ||
| filter: require('./filter.js'), | ||
| finish: require('./finish.js'), | ||
| log: require('./log.js'), | ||
| login: require('./login.js'), | ||
| prompt: require('./prompt.js') | ||
| }; |
+7
-4
@@ -29,8 +29,11 @@ { | ||
| { | ||
| "name": "today", | ||
| "description": "Display tasks with a priority, due or completed today, or overdue", | ||
| "command": "lsp", | ||
| "args": "(not priority:none and status:incomplete) or completed:today or (dueBefore:tomorrow and status:incomplete)" | ||
| "name": "overdue", | ||
| "description": "Display incomplete tasks that are overdue", | ||
| "command": "lsd", | ||
| "args": "dueBefore:today AND status:incomplete" | ||
| } | ||
| ], | ||
| "plugins": [ | ||
| "{{HOME}}/.rtm.plugins/" | ||
| ] | ||
| } |
+2
-2
| { | ||
| "name": "rtm-cli", | ||
| "version": "1.2.2", | ||
| "version": "1.3.0", | ||
| "description": "RTM CLI", | ||
@@ -18,3 +18,3 @@ "keywords": [ | ||
| }, | ||
| "main": "src/cli.js", | ||
| "main": "src/utils/index.js", | ||
| "scripts": { | ||
@@ -21,0 +21,0 @@ "postversion": "npm run build", |
+27
-814
@@ -29,3 +29,3 @@ Remember The Milk Command Line Interface | ||
| **Note:** `rtm-cli` requires node version >= 7.5.0 | ||
| **Note:** RTM CLI requires Node version >= 7.5.0 | ||
@@ -56,2 +56,3 @@ ### Executable Releases | ||
| -f, --config [file] specify configuration file | ||
| -v, --verbose print stack traces on errors | ||
| -h, --help output usage information | ||
@@ -88,7 +89,7 @@ | ||
| whoami Display RTM user information | ||
| today Display tasks with a priority, due or completed today, or overdue | ||
| overdue Display incomplete tasks that are overdue | ||
| ``` | ||
| ## Interactive Mode | ||
| ### Interactive Mode | ||
@@ -101,826 +102,38 @@ An interactive mode is started when no commands are given to `rtm`, which | ||
| ## Options | ||
| ### Full Usage Information | ||
| For full documentation on the usage of the built-in commands and options, | ||
| see the [Command Reference](https://github.com/dwaring87/rtm-cli/wiki/Command-Reference). | ||
| ### Plain Output: `--plain`, `-p` | ||
| Display output text without any styling and/or colors. This option overrides | ||
| the default in the configuration files. | ||
| **Note:** This option overrides `--color`, if provided, and will disable the | ||
| status/spinner text. | ||
| **Default:** Display styled/colored output. | ||
| ### Styled Output: `--color`, `-c` | ||
| Force the display of output text using special styling and/or colors. This | ||
| option overrides the default in the configuration files. | ||
| **Default:** Display styled/colored output. | ||
| ### Status Text: `--status`, `-s` | ||
| Toggle the display of the status/spinner text messages. This option will | ||
| toggle the default value in the configuration files. | ||
| **Note:** When status messages are disabled, error messages will not be displayed | ||
| and any errors encountered will be silently ignored. | ||
| **Default:** Display status/spinner messages. | ||
| ### Completed Tasks: `--completed [value]`, `-x [value]` | ||
| Specify how completed tasks should be displayed. This option overrides the | ||
| default in the configuration files. Valid values include: | ||
| | Value | Description | | ||
| | :---: | ----------- | | ||
| | true | Display all completed tasks | | ||
| | false | Don't display any completed tasks | | ||
| | n > 0 | Display tasks completed within `n` days | | ||
| **Default:** 7 | ||
| ### Hide Tasks Due in Future: `--hideDue [value]`, `-d [value]` | ||
| Hide tasks with due dates more than `value` days in the future. This option | ||
| overrides the default in the configuration files. Valid values include: | ||
| | Value | Description | | ||
| | :---: | ----------- | | ||
| | false | Do not hide any tasks based on due date | | ||
| | n > 0 | Hide tasks with due dates more than `n` days from today | | ||
| **Default:** false | ||
| ### Configuration File: `--config [file]`, `-f [file]` | ||
| Specify a configuration file to use. Properties in this file will override the | ||
| default configuration properties. RTM User information will be stored in this | ||
| file. | ||
| **Default:** `$HOME/.rtm.json` and `$HOME/.rtm.config.json` | ||
| ### Version Information: `--version`, `-v` | ||
| Display RTM CLI version | ||
| ### Help: `--help`, `-h` | ||
| Display Usage Information | ||
| ## Commands | ||
| ### Add a Task: `add`, `a` | ||
| `add` `[Task Name]` | ||
| The `Task Name` can use RTM's [Smart Add Syntax](https://www.rememberthemilk.com/help/answer/basics-smartadd-howdoiuse). | ||
| Additionally, to minimize the need to escape special characters at the command line, | ||
| the following properties can be specified: | ||
| - priority as `p:{priority}` | ||
| - list as `l:{list}` | ||
| - tags as `t:tag1 t:tag2` | ||
| - due date as `due:{due date}` | ||
| If `Task Name` is not provided, a prompt allowing multiple new task entries | ||
| will be displayed. Enter a blank line to finish adding new tasks. | ||
| Examples: | ||
| ``` | ||
| > add Buy Milk ^tomorrow !2 #Shopping | ||
| > add Feed The Cat today p:1 l:Chores t:pets *daily | ||
| ``` | ||
| ### Add a List: `addList`, `al` | ||
| `addList` `[List Name]` `[Smart List Filter]` | ||
| This command will add a new empty List to the User's account or if a | ||
| `Smart List Filer` is provided, a Smart List using the provided | ||
| [advanced search criteria](https://www.rememberthemilk.com/help/?ctx=basics.search.advanced) | ||
| will be created. | ||
| If no arguments are provided, a prompt allowing multiple new list names | ||
| will be displayed. Enter a blank line to finish add new lists. | ||
| Examples: | ||
| ``` | ||
| > addList Bills | ||
| > addList Important priority:1 OR priority:2 | ||
| ``` | ||
| ### Add Tags to a Task: `addTags`, `at` | ||
| `addTags` `[index]` `[tags...]` | ||
| This command will add one or more tags to a Task. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. Multiple tags can be provided | ||
| as arguments to this command. | ||
| If no arguments are provided, a prompt allowing multiple task indices and tags | ||
| to be entered will be displayed. Enter a blank line to finish adding tasks and | ||
| tags. | ||
| Examples: | ||
| ``` | ||
| > addTags 1 rent | ||
| > addTags 5 rent bills | ||
| ``` | ||
| ### Complete a Task: `comp`, `x` | ||
| `comp` `[indices...]` | ||
| This command will mark the Tasks as complete. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. Multiple task indices can be | ||
| provided as arguments to this command. | ||
| If no arguments are provided, a prompt allowing multiple task indices to be | ||
| entered will be displayed. Enter a blank line to finish adding task indices. | ||
| Examples: | ||
| ``` | ||
| > comp 15 | ||
| > comp 1 9 8 | ||
| ``` | ||
| ### Decrease Task Priority: `decPri`, `-` | ||
| `decPri` `[indices...]` | ||
| This command will decrease the priority of the Tasks by 1. Tasks are referenced | ||
| by index number, which are displayed when listing tasks. Multiple task indices | ||
| can be provided as arguments to this command. | ||
| If no arguments are provided, a prompt allowing multiple task indices to be | ||
| entered will be displayed. Enter a blank line to finish adding task indices. | ||
| Examples: | ||
| ``` | ||
| > decPri 15 | ||
| > decPri 1 9 8 | ||
| ``` | ||
| ### Set Task Due Date: `due` | ||
| `due` `[index]` `[due date]` | ||
| This command will set the Due Date of a Task. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. Due Dates can be entered in any | ||
| format that [RTM can parse](https://www.rememberthemilk.com/help/answer/basics-basics-dateformat). | ||
| If no arguments are provided, a prompt allowing multiple task and due dates to be | ||
| entered will be displayed. Enter a blank line to finish adding tasks and due dates. | ||
| Examples: | ||
| ``` | ||
| > due 1 tomorrow | ||
| > due 15 May 12 | ||
| > due 3 days | ||
| ``` | ||
| ### Edit Task Name: `edit` | ||
| `edit` `[new task name]` | ||
| This command will change the name of a Task. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. | ||
| If no arguments are provided, a prompt allowing multiple task indices and names | ||
| to be entered will be displayed. Enter a blank line to finish adding indices | ||
| and names. | ||
| Example: | ||
| ``` | ||
| > edit 1 Buy More Milk | ||
| ``` | ||
| ### Increase Task Priority: `incPri`, `+` | ||
| `incPri` `[indices...]` | ||
| This command will increase the priority of the Tasks by 1. Tasks are referenced | ||
| by index number, which are displayed when listing tasks. Multiple task indices | ||
| can be provided as arguments to this command. | ||
| If no arguments are provided, a prompt allowing multiple task indices to be | ||
| entered will be displayed. Enter a blank line to finish adding task indices. | ||
| Examples: | ||
| ``` | ||
| > incPri 15 | ||
| > incPri 1 9 8 | ||
| ``` | ||
| ### Display all Lists: `lists`, `l` | ||
| This command will display the names of all Lists. If the List is a 'Smart List', | ||
| the search criteria will be displayed alongside the list name. | ||
| ### Login: `login` | ||
| This command will remove any saved RTM user information and start the | ||
| login procedure. An Auth URL will be displayed and opened in the User's | ||
| browser. This URL will ask the User to grant **RTM CLI** access to their | ||
| account. Once authorized, the user's information (id, username, full name | ||
| and an Auth Token provided by RTM) will be saved locally (`$HOME/.rtm.json` | ||
| by default). | ||
| ### Logout: `logout` | ||
| This command will remove any saved RTM user information. Any future requests | ||
| to the RTM API Server will require the User to login again. | ||
| ### List Tasks By List, Priority: `ls` | ||
| `ls` `[filter]` | ||
| This command will display the User's tasks sorted first by List then by | ||
| priority. A filter, using RTM's [Advanced Search Syntax](https://www.rememberthemilk.com/help/?ctx=basics.search.advanced) | ||
| can be used to filter the tasks displayed. | ||
| Examples: | ||
| ``` | ||
| > ls | ||
| > ls priority:1 AND list:Work | ||
| ``` | ||
|  | ||
| ### List Tasks By Due Date, Priority: `lsd` | ||
| `lsd` `[filter]` | ||
| This command will display the User's tasks sorted first by Due Date (with | ||
| tasks without a due date shown first) then by priority. A filter, using RTM's | ||
| [Advanced Search Syntax](https://www.rememberthemilk.com/help/?ctx=basics.search.advanced) | ||
| can be used to filter the tasks displayed. | ||
| Examples: | ||
| ``` | ||
| > lsd | ||
| > lsd priority:1 AND list:Work | ||
| ``` | ||
|  | ||
| ### List Tasks By Priority, Due Date: `lsp` | ||
| `lsp` `[filter]` | ||
| This command will display the User's tasks sorted first by priority then by | ||
| due date. A filter, using RTM's [Advanced Search Syntax](https://www.rememberthemilk.com/help/?ctx=basics.search.advanced) | ||
| can be used to filter the tasks displayed. | ||
| Examples: | ||
| ``` | ||
| > lsp | ||
| > lsp priority:1 AND list:Work | ||
| ``` | ||
|  | ||
| ### Move Task to List: `move`, `mv` | ||
| `move` `[index]` `[list name]` | ||
| This command will move a Task to a different List. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. The `list name` must be the | ||
| name of an existing List. | ||
| **Note:** This command will fail if there is more than 1 List matching the | ||
| new List name. | ||
| Example: | ||
| ``` | ||
| > move 1 Work | ||
| ``` | ||
| ### Weekly Planner: `planner` | ||
| `planner` `[--start <sun, mon, today>]` `[filter]` | ||
| This command will display this week's Tasks in a weekly planner table. The `--start` | ||
| option can be one of: `sun`, `mon`, or `today` and will set the first day | ||
| of the planner. An optional `filter` can be used to filter the displayed tasks. | ||
| Any incomplete tasks with a due date before the start of the planner and tasks | ||
| without a set due date will be displayed below the planner. | ||
| Examples: | ||
| ``` | ||
| > planner | ||
| > planner --start mon NOT due:never # Hide tasks with no due date set | ||
| ``` | ||
|  | ||
| ### Postpone a Task: `postpone`, `pp` | ||
| `postpone` `[indices...]` | ||
| This command will postpone the due date of a Task by one day. Tasks are referenced | ||
| by index number, which are displayed when listing tasks. Multiple task indices | ||
| can be provided as arguments to this command. | ||
| Examples: | ||
| ``` | ||
| > postpone 1 | ||
| > postpone 1 15 8 | ||
| ``` | ||
| ### Set Task Priority: `pri`, `p` | ||
| `pri` `[index]` `[priority]` | ||
| This command will set the priority of the tasks. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. Acceptable priority values | ||
| include `1`, `2`, and `3` - any other value removes the priority from the task. | ||
| If no arguments are provided, a prompt allowing for multiple task and priority | ||
| inputs is displayed. Enter a blank line to finish adding tasks/priorities. | ||
| Examples: | ||
| ``` | ||
| > pri 15 1 | ||
| > pri 14 0 | ||
| ``` | ||
| ### Remove a Task: `remove`, `rm` | ||
| `remove` `[indices...]` | ||
| This command will remove the Tasks from the User's account. Tasks are referenced | ||
| by index number, which are displayed when listing tasks. Multiple task indices | ||
| can be provided as arguments to this command. | ||
| Examples: | ||
| ``` | ||
| > remove 1 | ||
| > remove 1 15 8 | ||
| ``` | ||
| ### Remove a List: `removeList`, `rml` | ||
| `removeList` `[name]` | ||
| This command will remove the List matching the provided `name` from the User's | ||
| account. Any tasks remaining in the List will be moved to the User's Inbox. | ||
| **Note:** This command will fail if there is more than one List matching the | ||
| provided list name. | ||
| If no list name is provided, a prompt allowing for multiple list names to be | ||
| entered will be displayed. Enter a blank line to finish adding list names. | ||
| Example: | ||
| ``` | ||
| > removeList Bills | ||
| ``` | ||
| ### Remove Tags From a Task: `removeTags`, `rmt` | ||
| `removeTags` `[index]` `[tags...]` | ||
| This command will remove one or more tags from the Task. Tasks are referenced | ||
| by index number, which are displayed when listing tasks. Multiple tags can be | ||
| provided as arguments to this command. | ||
| Examples: | ||
| ``` | ||
| > removeTags 1 bills | ||
| > removeTags 15 bills rent | ||
| ``` | ||
| ### Rename a List: `renameList`, `mvl` | ||
| `renameList` `[old name]` `[new name]` | ||
| This command will change the name of the List from `old name` to `new name`. | ||
| **Note:** This command will fail if there is more than one List matching the | ||
| provided `old name`. | ||
| **Note:** This command is unable to rename a 'Smart List' (the RTM API | ||
| considers a 'Smart List' to be read-only). | ||
| Example: | ||
| ``` | ||
| > renameList Food Groceries | ||
| ``` | ||
| ### Reset Task Index Cache: `reset` | ||
| This command will regenerate the cached lookup table used to reference a | ||
| specific task to an index number. This is helpful when many tasks have | ||
| been deleted and the task indices are getting large. | ||
| ### Display all Tags: `tags`, `t` | ||
| This command will display all tag names associated with the User's tasks. Next | ||
| to each tag will be the number of incomplete and complete Tasks for that tag. | ||
| ### Un-Complete a Task: `uncomp`, `unc` | ||
| `uncomp` `[indices...]` | ||
| This command will mark the Task as incomplete. Tasks are referenced by index | ||
| number, which are displayed when listing tasks. Multiple task indices can be | ||
| provided as arguments to this command. | ||
| Examples: | ||
| ``` | ||
| > uncomp 1 | ||
| > uncomp 15 8 | ||
| ``` | ||
| ### Custom Commands: | ||
| Custom meta-commands can be added to your configuration file's `aliases` property. | ||
| This property is a list of aliased commands that reference an existing command | ||
| and can provide pre-defined arguments. This can be used to create a meta-command | ||
| that uses one of the existing display commands (such as `ls`) and a pre-set | ||
| filter string (using RTM's Advanced Search Syntax). | ||
| The included `today` command is a meta-command added to the default configuration. | ||
| To create your own meta command, add the `alias` property to your configuration file | ||
| (located at `$HOME/.rtm.json` by default). The example below creates the `overdue` | ||
| command listing overdue tasks with the existing `lsp` command. | ||
| ```json | ||
| { | ||
| "aliases": [ | ||
| { | ||
| "name": "overdue", | ||
| "description": "Display all tasks that are overdue", | ||
| "command": "lsp", | ||
| "args": "dueBefore:today AND status:incomplete" | ||
| } | ||
| ] | ||
| } | ||
| ``` | ||
| The `name` property gives the command name, `description` is the command description | ||
| given in the help output, `command` is the existing command to map the new one to, and | ||
| `args` provide the arguments (such as the filter string) to the command. | ||
| ## Configuration | ||
| RTM CLI has a number of properties that can be configured using a separate JSON | ||
| configuration file. The default user configuration file is located at `$HOME/.rtm.json` | ||
| but can be changed using the `--config` option. | ||
| RTM CLI has a number of properties that can be configured using a separate JSON configuration | ||
| file. The default user configuration file is located at `$HOME/.rtm.json` but can be changed | ||
| using the `--config <file>` option. | ||
| For convenience, if you want to separate the storage of your account credentials | ||
| and the RTM configuration properties, the `$HOME/.rtm.config.json` file will | ||
| be read and parsed in addition to the `$HOME/.rtm.json` file, if present. | ||
| Currently, the configuration can customize: | ||
| - the formats of displayed dates | ||
| - styled text output for different task properties | ||
| - the display of completed tasks | ||
| - the display of tasks with due dates in the future | ||
| - **custom aliases** for existing commands | ||
| - these are useful for applying commonly used [RTM advanced search](https://www.rememberthemilk.com/help/answer/basics-search-advanced) | ||
| filters to display commands | ||
| - ex: `overdue` = `ls dueBefore:today AND status:incomplete` | ||
| ### Default | ||
| The default configuration is as follows: | ||
| For full documentation on the configuration properties, see the | ||
| [Configuration Reference](https://github.com/dwaring87/rtm-cli/wiki/Configuration-Reference). | ||
| ```json | ||
| { | ||
| "dateformat": "ddd mmm-dd", | ||
| "plannerDateformat": "ddd", | ||
| "completed": 7, | ||
| "hideDue": false, | ||
| "plain": false, | ||
| "status": true, | ||
| "styles": { | ||
| "list": "yellow.underline", | ||
| "index": "dim", | ||
| "priority": { | ||
| "0": "reset", | ||
| "1": "red", | ||
| "2": "blue", | ||
| "3": "cyan" | ||
| }, | ||
| "completed": "dim", | ||
| "notes": "reset", | ||
| "tags": "magenta", | ||
| "due": "green" | ||
| }, | ||
| "aliases": [ | ||
| { | ||
| "name": "today", | ||
| "description": "Display prioritized tasks and tasks due or completed today", | ||
| "command": "lsp", | ||
| "args": "(not priority:none and status:incomplete) or completed:today or (due:today and status:incomplete)" | ||
| } | ||
| ] | ||
| } | ||
| ``` | ||
| ## Plugins | ||
| ### Properties | ||
| RTM CLI supports adding additional commands through plugins. | ||
| The following is a list of all configuration properties, their descriptions, and default values. | ||
| For information on installing plugins, see the | ||
| [Plugin Reference](https://github.com/dwaring87/rtm-cli/wiki/Plugin-Reference). | ||
| <table> | ||
| <tr> | ||
| <th>Property</th> | ||
| <th>Type</th> | ||
| <th>Description</th> | ||
| <th>Default</th> | ||
| </tr> | ||
| <tr> | ||
| <td><code>client</code></td> | ||
| <td><code>object</code></td> | ||
| <td colspan=2> | ||
| <p><strong>RTM API Client Information</strong></p> | ||
| <table> | ||
| <tr> | ||
| <th>Property</th> | ||
| <th>Type</th> | ||
| <th>Description</th> | ||
| <th>Default</th> | ||
| </tr> | ||
| <tr> | ||
| <td><code>key</code></td> | ||
| <td><code>string</code></td> | ||
| <td>RTM API Key</td> | ||
| <td><strong>RTM CLI</strong> API Key</td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>secret</code></td> | ||
| <td><code>string</code></td> | ||
| <td>RTM API Secret</td> | ||
| <td><strong>RTM CLI</strong> API Secret</td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>perms</code></td> | ||
| <td><code>string</code></td> | ||
| <td> | ||
| <p>RTM API Permissions</p> | ||
| <ul> | ||
| <li><code>read</code></li> | ||
| <li><code>write</code></li> | ||
| <li><code>delete</code></li> | ||
| </ul> | ||
| </td> | ||
| <td><code>delete</code></td> | ||
| </tr> | ||
| </table> | ||
| <p><strong>RTM CLI</strong> includes an RTM API client key/secret but | ||
| you can override these with your own, if you prefer. | ||
| </p> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>dateformat</code></td> | ||
| <td><code>string</code></td> | ||
| <td> | ||
| <p><strong>Date Display Format</strong></p> | ||
| <p>This property describes how dates will be formatted when displayed in | ||
| the task lists generated by the <code>ls</code>, <code>lsd</code>, and | ||
| <code>lsp</code> commands.</p> | ||
| <p>The format is parsed by the <code>dateformat</code> node module. Mask | ||
| options are described in that project's <a href='https://github.com/felixge/node-dateformat#mask-options'>README</a>.</p> | ||
| </td> | ||
| <td><code>ddd mmm-dd</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>plannerDateformat</code></td> | ||
| <td><code>string</code></td> | ||
| <td> | ||
| <p><strong>Planner Date Display Format</strong></p> | ||
| <p>This property describes how dates will be formatted when displayed in | ||
| the headers of the planner table.</p> | ||
| <p>The format is parsed by the <code>dateformat</code> node module. Mask | ||
| options are described in that project's <a href='https://github.com/felixge/node-dateformat#mask-options'>README</a>.</p> | ||
| </td> | ||
| <td><code>ddd</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>completed</code></td> | ||
| <td><code>boolean</code> or <code>integer</code></td> | ||
| <td> | ||
| <p><strong>Display Completed Tasks</strong></p> | ||
| <p>The display of completed tasks can be changed to include all, none | ||
| or some of the completed tasks with the following values: | ||
| </p> | ||
| <ul> | ||
| <li><code>true</code>: display all completed tasks</li> | ||
| <li><code>false</code>: don't display any completed tasks</li> | ||
| <li><code>n > 0</code>: display tasks completed within the last <code>n</code> days | ||
| </ul> | ||
| <p>This can be overridden using the <code>--completed [value]</code> flag at the command line.</p> | ||
| </td> | ||
| <td><code>7</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>hideDue</code></td> | ||
| <td><code>boolean</code> or <code>integer</code></td> | ||
| <td> | ||
| <p><strong>Hide Tasks Due in Future</strong></p> | ||
| <p>This property can be configured to hide tasks that have a due | ||
| date set more than <code>n</code> days in the future. Valid values for | ||
| this property include:</p> | ||
| <ul> | ||
| <li><code>false</code>: Do not hide any tasks based on due date</li> | ||
| <li><code>n > 0</code>: Hide tasks with a due date greater than <code>n</code> | ||
| days from today</li> | ||
| </ul> | ||
| <p>This can be overridden using the <code>--hideDue [value]</code> flag at the command line.</p> | ||
| </td> | ||
| <td><code>false</code></td> | ||
| <tr> | ||
| <td><code>plain</code></td> | ||
| <td><code>boolean</code></td> | ||
| <td> | ||
| <p><strong>Display Plain Text</strong></p> | ||
| <p>When set to <code>true</code>, output text will not be styled and/or colored.</p> | ||
| <p>This can be overridden using the <code>--plain</code> or <code>--color</code> flags at the command line.</p> | ||
| </td> | ||
| <td><code>false</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>status</code></td> | ||
| <td><code>boolean</code></td> | ||
| <td> | ||
| <p><strong>Display Status Text</strong></p> | ||
| <p>When set to <code>true</code>, the status/spinner messages (such as 'Getting Tasks...') will be displayed.</p> | ||
| <p>This can be overridden using the <code>--status</code> flag at the command line.</p> | ||
| </td> | ||
| <td><code>true</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>styles</code></td> | ||
| <td><code>object</code></td> | ||
| <td colspan=2> | ||
| <p><strong>Task Attribute Styles</strong></p> | ||
| <p>Different attributes of tasks can have different styles applied to them when displayed.</p> | ||
| <p>Styles are applied using the <code>chalk</code> npm module and can include the styles listed on | ||
| that project's <a href='https://github.com/chalk/chalk#styles'>README</a> and can be combined | ||
| using a <code>.</code>:</p> | ||
| <table> | ||
| <tr> | ||
| <th>Property</th> | ||
| <th>Type</th> | ||
| <th>Description</th> | ||
| <th>Default</th> | ||
| </tr> | ||
| <tr> | ||
| <td><code>list</code></td> | ||
| <td><code>string</code></td> | ||
| <td>List Name</td> | ||
| <td><code>yellow.underline</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>index</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Index Number</td> | ||
| <td><code>dim</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>priority</code></td> | ||
| <td><code>object</code></td> | ||
| <td colspan=2> | ||
| <p>Task Priorities</p> | ||
| <table> | ||
| <tr> | ||
| <th>Property</th> | ||
| <th>Type</th> | ||
| <th>Description</th> | ||
| <th>Default</th> | ||
| </tr> | ||
| <tr> | ||
| <td><code>0</code></td> | ||
| <td><code>string</code></td> | ||
| <td>No Priority</td> | ||
| <td><code>reset</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>1</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Priority 1</td> | ||
| <td><code>red</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>2</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Priority 2</td> | ||
| <td><code>blue</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>3</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Priority 3</td> | ||
| <td><code>cyan</code></td> | ||
| </tr> | ||
| </table> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>completed</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Completed Tasks</td> | ||
| <td><code>dim</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>notes</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Notes Indicator</td> | ||
| <td><code>reset</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>tags</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Tags</td> | ||
| <td><code>magenta</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>due</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Due Dates</td> | ||
| <td><code>green</code></td> | ||
| </tr> | ||
| </table> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>aliases</code></td> | ||
| <td><code>object[]</code></td> | ||
| <td colspan=2> | ||
| <p><strong>Command Aliases</strong></p> | ||
| <p>This configuration property allows you to define your own meta-commands | ||
| that map a new command name to an existing command (such as <code>ls</code>, | ||
| <code>planner</code>, etc) with a pre-defined set of arguments (such as a | ||
| filter string using RTM's advanced search syntax). The <code>today</code> | ||
| command is already included in the default configuration and can be used as | ||
| an example.</p> | ||
| <table> | ||
| <tr> | ||
| <th>Property</th> | ||
| <th>Type</th> | ||
| <th>Description</th> | ||
| <th>Default</th> | ||
| </tr> | ||
| <tr> | ||
| <td><code>name</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Command Name</td> | ||
| <td><code>today</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>description</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Command Description - will be used in the help output</td> | ||
| <td>Display tasks with a priority, due or completed today, or overdue</td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>command</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Command - the existing command to execute.</td> | ||
| <td><code>lsp</code></td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>args</code></td> | ||
| <td><code>string</code></td> | ||
| <td>Options and arguments to pass to the specified command.</td> | ||
| <td>(not priority:none and status:incomplete) or completed:today or (dueBefore:tomorrow and status:incomplete)</td> | ||
| </tr> | ||
| <table> | ||
| </td> | ||
| </tr> | ||
| </table> | ||
| For information on creating commands, see the **Creating Commands** section | ||
| in the [Project Wiki](https://github.com/dwaring87/rtm-cli/wiki#creating-commands). |
+176
-18
| #!/usr/bin/env node | ||
| 'use strict'; | ||
| const os = require('os'); | ||
| const fs = require('fs'); | ||
@@ -56,4 +57,6 @@ const path = require('path'); | ||
| config.reset(file); | ||
| parsePlugins(); | ||
| parseAliases(); | ||
| }); | ||
| }) | ||
| .option('-v, --verbose', 'print stack traces on errors'); | ||
@@ -80,2 +83,5 @@ // Add additional Help information | ||
| // Add Any Plugins | ||
| parsePlugins(); | ||
| // Parse Aliases | ||
@@ -110,2 +116,5 @@ parseAliases(); | ||
| log.error("ERROR: " + err); | ||
| if ( program.verbose ) { | ||
| console.log(err); | ||
| } | ||
| finish(); | ||
@@ -117,2 +126,6 @@ }); | ||
| // ===== COMMAND PARSING ===== // | ||
| /** | ||
@@ -125,3 +138,5 @@ * Parse the commands in the command directory | ||
| for ( let i = 0; i < files.length; i++ ) { | ||
| parseCmd(path.normalize(CMD_DIR + '/' + files[i])); | ||
| let file = path.normalize(CMD_DIR + '/' + files[i]); | ||
| let command = require(file); | ||
| parseCmd(command); | ||
| } | ||
@@ -133,17 +148,25 @@ } | ||
| * Parse the command file | ||
| * @param {string} file Path to command file | ||
| * @param {object} command The command object to parse | ||
| * @private | ||
| */ | ||
| function parseCmd(file) { | ||
| let opts = require(file); | ||
| function parseCmd(command) { | ||
| // Check for existing command name | ||
| let existing = program.commands; | ||
| for ( let i = 0; i < existing.length; i++ ) { | ||
| if ( existing[i].name() === command.command.split(' ')[0] ) { | ||
| log.error("ERROR: Command name (" + command.command.split(' ')[0] + ") already exists"); | ||
| process.exit(1); | ||
| } | ||
| } | ||
| // Build Command | ||
| let cmd = program.command(opts.command); | ||
| cmd.description(opts.description); | ||
| cmd.alias(opts.alias); | ||
| let cmd = program.command(command.command); | ||
| cmd.description(command.description); | ||
| cmd.alias(command.alias); | ||
| // Add Command Options | ||
| if ( opts.options ) { | ||
| for ( let i = 0; i < opts.options.length; i++ ) { | ||
| let option = opts.options[i]; | ||
| if ( command.options ) { | ||
| for ( let i = 0; i < command.options.length; i++ ) { | ||
| let option = command.options[i]; | ||
| cmd.option(option.option, option.description); | ||
@@ -173,4 +196,4 @@ } | ||
| // Skip Login Check | ||
| if ( opts.disableLogin ) { | ||
| opts.action(args, env); | ||
| if ( command.disableLogin ) { | ||
| command.action(args, env); | ||
| } | ||
@@ -181,3 +204,3 @@ | ||
| config.user(function() { | ||
| opts.action(args, env); | ||
| command.action(args, env); | ||
| }); | ||
@@ -190,6 +213,132 @@ } | ||
| // ===== PLUGIN PARSING ===== // | ||
| /** | ||
| * Parse the plugins listed in the configuration | ||
| */ | ||
| function parsePlugins() { | ||
| // Get plugin locations from the configuration | ||
| let locations = config.get().plugins; | ||
| // Parse each location | ||
| for ( let i = 0; i < locations.length; i++ ) { | ||
| parsePluginLocation(locations[i]); | ||
| } | ||
| } | ||
| /** | ||
| * Parse the specified plugin location | ||
| * @param {string} location Plugin location (file, directory or module name) | ||
| * @private | ||
| */ | ||
| function parsePluginLocation(location) { | ||
| // Replace {{HOME}} with home directory location | ||
| location = location.replace("{{HOME}}", os.homedir()); | ||
| // Try to load as a module (either directory or file) | ||
| try { | ||
| require.resolve(location); | ||
| parsePluginModule(location); | ||
| } | ||
| // Not a module... | ||
| catch (err) { | ||
| // Check to make sure file/directory exists | ||
| if ( fs.existsSync(location) ) { | ||
| // Check if a directory | ||
| if ( fs.lstatSync(location).isDirectory() ) { | ||
| parsePluginDirectory(location); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| /** | ||
| * Parse the Plugin as a Module | ||
| * @param {string} location Module location (for `require`) | ||
| * @private | ||
| */ | ||
| function parsePluginModule(location) { | ||
| // Load the module | ||
| let module = require(location); | ||
| // Check the root module for a command | ||
| _check(module); | ||
| // Check children objects for a command | ||
| for ( let key in module ) { | ||
| if ( module.hasOwnProperty(key) ) { | ||
| _check(module[key]); | ||
| } | ||
| } | ||
| /** | ||
| * Check the object for the required command properties and parse the | ||
| * object as a command if they are all found | ||
| * @param obj | ||
| * @private | ||
| */ | ||
| function _check(obj) { | ||
| if ( obj.hasOwnProperty('command') && obj.hasOwnProperty('description') && obj.hasOwnProperty('action') ) { | ||
| parseCmd(obj); | ||
| } | ||
| } | ||
| } | ||
| /** | ||
| * Process a plugin directory | ||
| * @param location | ||
| */ | ||
| function parsePluginDirectory(location) { | ||
| // Check if location exists | ||
| if ( fs.existsSync(location) ) { | ||
| // Get all files in directory | ||
| let files = fs.readdirSync(location); | ||
| // Parse each location | ||
| for ( let i = 0; i < files.length; i++ ) { | ||
| parsePluginLocation(path.normalize(location + '/' + files[i])); | ||
| } | ||
| } | ||
| } | ||
| // ===== ALIAS PARSING ===== // | ||
| /** | ||
| * Parse the Alias Commands from the Config Files | ||
| */ | ||
| function parseAliases() { | ||
| // Remove existing RTM Aliases | ||
| let keep = []; | ||
| let current = program.commands; | ||
| for ( let i = 0; i < current.length; i++ ) { | ||
| let cmd = current[i]; | ||
| if ( !cmd._isRTMAlias ) { | ||
| keep.push(cmd); | ||
| } | ||
| } | ||
| program.commands = keep; | ||
| // Parse aliases in configuration | ||
| if ( config.get().aliases ) { | ||
@@ -227,5 +376,5 @@ for ( let i = 0; i < config.get().aliases.length; i++ ) { | ||
| if ( alias.args ) { | ||
| alias.args = alias.args.split(' '); | ||
| for ( let j = 0; j < alias.args.length; j++ ) { | ||
| args.push(alias.args[j]); | ||
| let aa = alias.args.split(' '); | ||
| for ( let j = 0; j < aa.length; j++ ) { | ||
| args.push(aa[j]); | ||
| } | ||
@@ -245,9 +394,18 @@ } | ||
| }); | ||
| // Flag command as RTM Alias | ||
| cmd._isRTMAlias = true; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| // ===== START FUNCTIONS ===== // | ||
| /** | ||
@@ -254,0 +412,0 @@ * Parse the CLI arguments and run the specified command |
Sorry, the diff of this file is not supported yet
-1539
| { | ||
| "name": "rtm-cli", | ||
| "version": "1.2.1", | ||
| "lockfileVersion": 1, | ||
| "requires": true, | ||
| "dependencies": { | ||
| "acorn": { | ||
| "version": "5.1.1", | ||
| "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", | ||
| "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", | ||
| "dev": true | ||
| }, | ||
| "ajv": { | ||
| "version": "4.11.8", | ||
| "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", | ||
| "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", | ||
| "dev": true, | ||
| "requires": { | ||
| "co": "4.6.0", | ||
| "json-stable-stringify": "1.0.1" | ||
| } | ||
| }, | ||
| "amdefine": { | ||
| "version": "1.0.1", | ||
| "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", | ||
| "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", | ||
| "dev": true, | ||
| "optional": true | ||
| }, | ||
| "ansi-regex": { | ||
| "version": "2.1.1", | ||
| "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | ||
| "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" | ||
| }, | ||
| "ansi-styles": { | ||
| "version": "3.2.0", | ||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", | ||
| "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", | ||
| "requires": { | ||
| "color-convert": "1.9.1" | ||
| } | ||
| }, | ||
| "archiver": { | ||
| "version": "2.1.0", | ||
| "resolved": "https://registry.npmjs.org/archiver/-/archiver-2.1.0.tgz", | ||
| "integrity": "sha1-0t8ujVdzqCwdzOklzMQUUOqZmv0=", | ||
| "dev": true, | ||
| "requires": { | ||
| "archiver-utils": "1.3.0", | ||
| "async": "2.6.0", | ||
| "buffer-crc32": "0.2.13", | ||
| "glob": "7.1.2", | ||
| "lodash": "4.17.4", | ||
| "readable-stream": "2.3.3", | ||
| "tar-stream": "1.5.5", | ||
| "zip-stream": "1.2.0" | ||
| }, | ||
| "dependencies": { | ||
| "lodash": { | ||
| "version": "4.17.4", | ||
| "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", | ||
| "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "archiver-utils": { | ||
| "version": "1.3.0", | ||
| "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", | ||
| "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", | ||
| "dev": true, | ||
| "requires": { | ||
| "glob": "7.1.2", | ||
| "graceful-fs": "4.1.11", | ||
| "lazystream": "1.0.0", | ||
| "lodash": "4.17.4", | ||
| "normalize-path": "2.1.1", | ||
| "readable-stream": "2.3.3" | ||
| }, | ||
| "dependencies": { | ||
| "lodash": { | ||
| "version": "4.17.4", | ||
| "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", | ||
| "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "array-union": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", | ||
| "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", | ||
| "dev": true, | ||
| "requires": { | ||
| "array-uniq": "1.0.3" | ||
| } | ||
| }, | ||
| "array-uniq": { | ||
| "version": "1.0.3", | ||
| "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", | ||
| "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", | ||
| "dev": true | ||
| }, | ||
| "asn1": { | ||
| "version": "0.2.3", | ||
| "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", | ||
| "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", | ||
| "dev": true | ||
| }, | ||
| "assert-plus": { | ||
| "version": "0.2.0", | ||
| "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", | ||
| "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", | ||
| "dev": true | ||
| }, | ||
| "async": { | ||
| "version": "2.6.0", | ||
| "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", | ||
| "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", | ||
| "dev": true, | ||
| "requires": { | ||
| "lodash": "4.17.4" | ||
| }, | ||
| "dependencies": { | ||
| "lodash": { | ||
| "version": "4.17.4", | ||
| "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", | ||
| "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "asynckit": { | ||
| "version": "0.4.0", | ||
| "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||
| "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", | ||
| "dev": true | ||
| }, | ||
| "aws-sign2": { | ||
| "version": "0.6.0", | ||
| "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", | ||
| "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", | ||
| "dev": true | ||
| }, | ||
| "aws4": { | ||
| "version": "1.6.0", | ||
| "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", | ||
| "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", | ||
| "dev": true | ||
| }, | ||
| "babel-runtime": { | ||
| "version": "6.25.0", | ||
| "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", | ||
| "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", | ||
| "dev": true, | ||
| "requires": { | ||
| "core-js": "2.5.1", | ||
| "regenerator-runtime": "0.10.5" | ||
| } | ||
| }, | ||
| "balanced-match": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||
| "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", | ||
| "dev": true | ||
| }, | ||
| "bcrypt-pbkdf": { | ||
| "version": "1.0.1", | ||
| "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", | ||
| "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", | ||
| "dev": true, | ||
| "optional": true, | ||
| "requires": { | ||
| "tweetnacl": "0.14.5" | ||
| } | ||
| }, | ||
| "bl": { | ||
| "version": "1.2.1", | ||
| "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", | ||
| "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", | ||
| "dev": true, | ||
| "requires": { | ||
| "readable-stream": "2.3.3" | ||
| } | ||
| }, | ||
| "boom": { | ||
| "version": "2.10.1", | ||
| "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", | ||
| "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", | ||
| "dev": true, | ||
| "requires": { | ||
| "hoek": "2.16.3" | ||
| } | ||
| }, | ||
| "brace-expansion": { | ||
| "version": "1.1.8", | ||
| "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", | ||
| "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", | ||
| "dev": true, | ||
| "requires": { | ||
| "balanced-match": "1.0.0", | ||
| "concat-map": "0.0.1" | ||
| } | ||
| }, | ||
| "buffer-crc32": { | ||
| "version": "0.2.13", | ||
| "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", | ||
| "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", | ||
| "dev": true | ||
| }, | ||
| "byline": { | ||
| "version": "5.0.0", | ||
| "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", | ||
| "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=", | ||
| "dev": true | ||
| }, | ||
| "caseless": { | ||
| "version": "0.12.0", | ||
| "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | ||
| "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", | ||
| "dev": true | ||
| }, | ||
| "chalk": { | ||
| "version": "2.3.0", | ||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", | ||
| "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", | ||
| "requires": { | ||
| "ansi-styles": "3.2.0", | ||
| "escape-string-regexp": "1.0.5", | ||
| "supports-color": "4.5.0" | ||
| } | ||
| }, | ||
| "cli-cursor": { | ||
| "version": "2.1.0", | ||
| "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", | ||
| "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", | ||
| "requires": { | ||
| "restore-cursor": "2.0.0" | ||
| } | ||
| }, | ||
| "cli-spinners": { | ||
| "version": "1.1.0", | ||
| "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.1.0.tgz", | ||
| "integrity": "sha1-8YR7FohE2RemceudFH499JfJDQY=" | ||
| }, | ||
| "cli-table2": { | ||
| "version": "0.2.0", | ||
| "resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", | ||
| "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", | ||
| "requires": { | ||
| "colors": "1.1.2", | ||
| "lodash": "3.10.1", | ||
| "string-width": "1.0.2" | ||
| } | ||
| }, | ||
| "co": { | ||
| "version": "4.6.0", | ||
| "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", | ||
| "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", | ||
| "dev": true | ||
| }, | ||
| "code-point-at": { | ||
| "version": "1.1.0", | ||
| "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", | ||
| "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" | ||
| }, | ||
| "color-convert": { | ||
| "version": "1.9.1", | ||
| "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", | ||
| "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", | ||
| "requires": { | ||
| "color-name": "1.1.3" | ||
| } | ||
| }, | ||
| "color-name": { | ||
| "version": "1.1.3", | ||
| "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", | ||
| "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" | ||
| }, | ||
| "colors": { | ||
| "version": "1.1.2", | ||
| "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", | ||
| "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", | ||
| "optional": true | ||
| }, | ||
| "combined-stream": { | ||
| "version": "1.0.5", | ||
| "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", | ||
| "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", | ||
| "dev": true, | ||
| "requires": { | ||
| "delayed-stream": "1.0.0" | ||
| } | ||
| }, | ||
| "commander": { | ||
| "version": "2.12.2", | ||
| "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz", | ||
| "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA==" | ||
| }, | ||
| "compress-commons": { | ||
| "version": "1.2.2", | ||
| "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", | ||
| "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", | ||
| "dev": true, | ||
| "requires": { | ||
| "buffer-crc32": "0.2.13", | ||
| "crc32-stream": "2.0.0", | ||
| "normalize-path": "2.1.1", | ||
| "readable-stream": "2.3.3" | ||
| } | ||
| }, | ||
| "concat-map": { | ||
| "version": "0.0.1", | ||
| "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||
| "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", | ||
| "dev": true | ||
| }, | ||
| "copy-paste": { | ||
| "version": "1.3.0", | ||
| "resolved": "https://registry.npmjs.org/copy-paste/-/copy-paste-1.3.0.tgz", | ||
| "integrity": "sha1-p+bEocKP3t8rCB5yuX3y75X0ce0=", | ||
| "requires": { | ||
| "iconv-lite": "0.4.19", | ||
| "sync-exec": "0.6.2" | ||
| } | ||
| }, | ||
| "core-js": { | ||
| "version": "2.5.1", | ||
| "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", | ||
| "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", | ||
| "dev": true | ||
| }, | ||
| "core-util-is": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", | ||
| "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", | ||
| "dev": true | ||
| }, | ||
| "crc": { | ||
| "version": "3.5.0", | ||
| "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", | ||
| "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", | ||
| "dev": true | ||
| }, | ||
| "crc32-stream": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", | ||
| "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", | ||
| "dev": true, | ||
| "requires": { | ||
| "crc": "3.5.0", | ||
| "readable-stream": "2.3.3" | ||
| } | ||
| }, | ||
| "cryptiles": { | ||
| "version": "2.0.5", | ||
| "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", | ||
| "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", | ||
| "dev": true, | ||
| "requires": { | ||
| "boom": "2.10.1" | ||
| } | ||
| }, | ||
| "dashdash": { | ||
| "version": "1.14.1", | ||
| "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", | ||
| "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", | ||
| "dev": true, | ||
| "requires": { | ||
| "assert-plus": "1.0.0" | ||
| }, | ||
| "dependencies": { | ||
| "assert-plus": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
| "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "dateformat": { | ||
| "version": "3.0.2", | ||
| "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.2.tgz", | ||
| "integrity": "sha1-mk30v/FYrC80vGN6vbFUcWB+Flk=" | ||
| }, | ||
| "deep-is": { | ||
| "version": "0.1.3", | ||
| "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", | ||
| "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", | ||
| "dev": true | ||
| }, | ||
| "deepmerge": { | ||
| "version": "2.0.1", | ||
| "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.0.1.tgz", | ||
| "integrity": "sha512-VIPwiMJqJ13ZQfaCsIFnp5Me9tnjURiaIFxfz7EH0Ci0dTSQpZtSLrqOicXqEd/z2r+z+Klk9GzmnRsgpgbOsQ==" | ||
| }, | ||
| "define-property": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", | ||
| "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", | ||
| "requires": { | ||
| "is-descriptor": "1.0.1" | ||
| } | ||
| }, | ||
| "delayed-stream": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||
| "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", | ||
| "dev": true | ||
| }, | ||
| "ecc-jsbn": { | ||
| "version": "0.1.1", | ||
| "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", | ||
| "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", | ||
| "dev": true, | ||
| "optional": true, | ||
| "requires": { | ||
| "jsbn": "0.1.1" | ||
| } | ||
| }, | ||
| "end-of-stream": { | ||
| "version": "1.4.0", | ||
| "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", | ||
| "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", | ||
| "dev": true, | ||
| "requires": { | ||
| "once": "1.4.0" | ||
| } | ||
| }, | ||
| "escape-string-regexp": { | ||
| "version": "1.0.5", | ||
| "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", | ||
| "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" | ||
| }, | ||
| "escodegen": { | ||
| "version": "1.8.1", | ||
| "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", | ||
| "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", | ||
| "dev": true, | ||
| "requires": { | ||
| "esprima": "2.7.3", | ||
| "estraverse": "1.9.3", | ||
| "esutils": "2.0.2", | ||
| "optionator": "0.8.2", | ||
| "source-map": "0.2.0" | ||
| } | ||
| }, | ||
| "esprima": { | ||
| "version": "2.7.3", | ||
| "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", | ||
| "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", | ||
| "dev": true | ||
| }, | ||
| "estraverse": { | ||
| "version": "1.9.3", | ||
| "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", | ||
| "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", | ||
| "dev": true | ||
| }, | ||
| "esutils": { | ||
| "version": "2.0.2", | ||
| "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", | ||
| "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", | ||
| "dev": true | ||
| }, | ||
| "expand-template": { | ||
| "version": "1.0.3", | ||
| "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.0.3.tgz", | ||
| "integrity": "sha1-bDAzIxd6YrGyLAcCefeGEoe2mxo=", | ||
| "dev": true | ||
| }, | ||
| "extend": { | ||
| "version": "3.0.1", | ||
| "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", | ||
| "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", | ||
| "dev": true | ||
| }, | ||
| "extsprintf": { | ||
| "version": "1.3.0", | ||
| "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", | ||
| "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", | ||
| "dev": true | ||
| }, | ||
| "fast-levenshtein": { | ||
| "version": "2.0.6", | ||
| "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", | ||
| "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", | ||
| "dev": true | ||
| }, | ||
| "forever-agent": { | ||
| "version": "0.6.1", | ||
| "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | ||
| "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", | ||
| "dev": true | ||
| }, | ||
| "form-data": { | ||
| "version": "2.1.4", | ||
| "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", | ||
| "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", | ||
| "dev": true, | ||
| "requires": { | ||
| "asynckit": "0.4.0", | ||
| "combined-stream": "1.0.5", | ||
| "mime-types": "2.1.17" | ||
| } | ||
| }, | ||
| "fs-extra": { | ||
| "version": "4.0.1", | ||
| "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", | ||
| "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", | ||
| "dev": true, | ||
| "requires": { | ||
| "graceful-fs": "4.1.11", | ||
| "jsonfile": "3.0.1", | ||
| "universalify": "0.1.1" | ||
| } | ||
| }, | ||
| "fs.realpath": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||
| "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", | ||
| "dev": true | ||
| }, | ||
| "getpass": { | ||
| "version": "0.1.7", | ||
| "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | ||
| "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", | ||
| "dev": true, | ||
| "requires": { | ||
| "assert-plus": "1.0.0" | ||
| }, | ||
| "dependencies": { | ||
| "assert-plus": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
| "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "glob": { | ||
| "version": "7.1.2", | ||
| "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | ||
| "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||
| "dev": true, | ||
| "requires": { | ||
| "fs.realpath": "1.0.0", | ||
| "inflight": "1.0.6", | ||
| "inherits": "2.0.3", | ||
| "minimatch": "3.0.4", | ||
| "once": "1.4.0", | ||
| "path-is-absolute": "1.0.1" | ||
| } | ||
| }, | ||
| "globby": { | ||
| "version": "6.1.0", | ||
| "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", | ||
| "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", | ||
| "dev": true, | ||
| "requires": { | ||
| "array-union": "1.0.2", | ||
| "glob": "7.1.2", | ||
| "object-assign": "4.1.1", | ||
| "pify": "2.3.0", | ||
| "pinkie-promise": "2.0.1" | ||
| } | ||
| }, | ||
| "graceful-fs": { | ||
| "version": "4.1.11", | ||
| "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", | ||
| "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", | ||
| "dev": true | ||
| }, | ||
| "har-schema": { | ||
| "version": "1.0.5", | ||
| "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", | ||
| "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", | ||
| "dev": true | ||
| }, | ||
| "har-validator": { | ||
| "version": "4.2.1", | ||
| "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", | ||
| "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", | ||
| "dev": true, | ||
| "requires": { | ||
| "ajv": "4.11.8", | ||
| "har-schema": "1.0.5" | ||
| } | ||
| }, | ||
| "has-ansi": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", | ||
| "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", | ||
| "requires": { | ||
| "ansi-regex": "2.1.1" | ||
| } | ||
| }, | ||
| "has-flag": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", | ||
| "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" | ||
| }, | ||
| "hawk": { | ||
| "version": "3.1.3", | ||
| "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", | ||
| "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", | ||
| "dev": true, | ||
| "requires": { | ||
| "boom": "2.10.1", | ||
| "cryptiles": "2.0.5", | ||
| "hoek": "2.16.3", | ||
| "sntp": "1.0.9" | ||
| } | ||
| }, | ||
| "hoek": { | ||
| "version": "2.16.3", | ||
| "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", | ||
| "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", | ||
| "dev": true | ||
| }, | ||
| "http-signature": { | ||
| "version": "1.1.1", | ||
| "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", | ||
| "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", | ||
| "dev": true, | ||
| "requires": { | ||
| "assert-plus": "0.2.0", | ||
| "jsprim": "1.4.1", | ||
| "sshpk": "1.13.1" | ||
| } | ||
| }, | ||
| "iconv-lite": { | ||
| "version": "0.4.19", | ||
| "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", | ||
| "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" | ||
| }, | ||
| "in-publish": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", | ||
| "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", | ||
| "dev": true | ||
| }, | ||
| "inflight": { | ||
| "version": "1.0.6", | ||
| "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||
| "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||
| "dev": true, | ||
| "requires": { | ||
| "once": "1.4.0", | ||
| "wrappy": "1.0.2" | ||
| } | ||
| }, | ||
| "inherits": { | ||
| "version": "2.0.3", | ||
| "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||
| "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", | ||
| "dev": true | ||
| }, | ||
| "is-accessor-descriptor": { | ||
| "version": "0.1.6", | ||
| "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", | ||
| "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", | ||
| "requires": { | ||
| "kind-of": "3.2.2" | ||
| }, | ||
| "dependencies": { | ||
| "kind-of": { | ||
| "version": "3.2.2", | ||
| "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
| "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
| "requires": { | ||
| "is-buffer": "1.1.6" | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "is-buffer": { | ||
| "version": "1.1.6", | ||
| "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", | ||
| "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" | ||
| }, | ||
| "is-data-descriptor": { | ||
| "version": "0.1.4", | ||
| "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", | ||
| "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", | ||
| "requires": { | ||
| "kind-of": "3.2.2" | ||
| }, | ||
| "dependencies": { | ||
| "kind-of": { | ||
| "version": "3.2.2", | ||
| "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
| "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
| "requires": { | ||
| "is-buffer": "1.1.6" | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "is-descriptor": { | ||
| "version": "1.0.1", | ||
| "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.1.tgz", | ||
| "integrity": "sha512-G3fFVFTqfaqu7r4YuSBHKBAuOaLz8Sy7ekklUpFEliaLMP1Y2ZjoN9jS62YWCAPQrQpMUQSitRlrzibbuCZjdA==", | ||
| "requires": { | ||
| "is-accessor-descriptor": "0.1.6", | ||
| "is-data-descriptor": "0.1.4", | ||
| "kind-of": "5.1.0" | ||
| } | ||
| }, | ||
| "is-fullwidth-code-point": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", | ||
| "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", | ||
| "requires": { | ||
| "number-is-nan": "1.0.1" | ||
| } | ||
| }, | ||
| "is-number": { | ||
| "version": "3.0.0", | ||
| "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", | ||
| "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", | ||
| "requires": { | ||
| "kind-of": "3.2.2" | ||
| }, | ||
| "dependencies": { | ||
| "kind-of": { | ||
| "version": "3.2.2", | ||
| "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", | ||
| "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", | ||
| "requires": { | ||
| "is-buffer": "1.1.6" | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "is-typedarray": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | ||
| "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", | ||
| "dev": true | ||
| }, | ||
| "isarray": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||
| "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", | ||
| "dev": true | ||
| }, | ||
| "isstream": { | ||
| "version": "0.1.2", | ||
| "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | ||
| "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", | ||
| "dev": true | ||
| }, | ||
| "jsbn": { | ||
| "version": "0.1.1", | ||
| "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | ||
| "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", | ||
| "dev": true, | ||
| "optional": true | ||
| }, | ||
| "json-schema": { | ||
| "version": "0.2.3", | ||
| "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", | ||
| "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", | ||
| "dev": true | ||
| }, | ||
| "json-stable-stringify": { | ||
| "version": "1.0.1", | ||
| "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", | ||
| "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", | ||
| "dev": true, | ||
| "requires": { | ||
| "jsonify": "0.0.0" | ||
| } | ||
| }, | ||
| "json-stringify-safe": { | ||
| "version": "5.0.1", | ||
| "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", | ||
| "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", | ||
| "dev": true | ||
| }, | ||
| "jsonfile": { | ||
| "version": "3.0.1", | ||
| "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", | ||
| "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", | ||
| "dev": true, | ||
| "requires": { | ||
| "graceful-fs": "4.1.11" | ||
| } | ||
| }, | ||
| "jsonify": { | ||
| "version": "0.0.0", | ||
| "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", | ||
| "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", | ||
| "dev": true | ||
| }, | ||
| "jsprim": { | ||
| "version": "1.4.1", | ||
| "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", | ||
| "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", | ||
| "dev": true, | ||
| "requires": { | ||
| "assert-plus": "1.0.0", | ||
| "extsprintf": "1.3.0", | ||
| "json-schema": "0.2.3", | ||
| "verror": "1.10.0" | ||
| }, | ||
| "dependencies": { | ||
| "assert-plus": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
| "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "kind-of": { | ||
| "version": "5.1.0", | ||
| "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", | ||
| "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" | ||
| }, | ||
| "lazystream": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", | ||
| "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", | ||
| "dev": true, | ||
| "requires": { | ||
| "readable-stream": "2.3.3" | ||
| } | ||
| }, | ||
| "levn": { | ||
| "version": "0.3.0", | ||
| "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", | ||
| "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", | ||
| "dev": true, | ||
| "requires": { | ||
| "prelude-ls": "1.1.2", | ||
| "type-check": "0.3.2" | ||
| } | ||
| }, | ||
| "lodash": { | ||
| "version": "3.10.1", | ||
| "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", | ||
| "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" | ||
| }, | ||
| "log-symbols": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", | ||
| "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", | ||
| "requires": { | ||
| "chalk": "1.1.3" | ||
| }, | ||
| "dependencies": { | ||
| "ansi-styles": { | ||
| "version": "2.2.1", | ||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", | ||
| "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" | ||
| }, | ||
| "chalk": { | ||
| "version": "1.1.3", | ||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", | ||
| "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", | ||
| "requires": { | ||
| "ansi-styles": "2.2.1", | ||
| "escape-string-regexp": "1.0.5", | ||
| "has-ansi": "2.0.0", | ||
| "strip-ansi": "3.0.1", | ||
| "supports-color": "2.0.0" | ||
| } | ||
| }, | ||
| "supports-color": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", | ||
| "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" | ||
| } | ||
| } | ||
| }, | ||
| "mime-db": { | ||
| "version": "1.30.0", | ||
| "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", | ||
| "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", | ||
| "dev": true | ||
| }, | ||
| "mime-types": { | ||
| "version": "2.1.17", | ||
| "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", | ||
| "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", | ||
| "dev": true, | ||
| "requires": { | ||
| "mime-db": "1.30.0" | ||
| } | ||
| }, | ||
| "mimic-fn": { | ||
| "version": "1.1.0", | ||
| "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", | ||
| "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" | ||
| }, | ||
| "minimatch": { | ||
| "version": "3.0.4", | ||
| "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||
| "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||
| "dev": true, | ||
| "requires": { | ||
| "brace-expansion": "1.1.8" | ||
| } | ||
| }, | ||
| "minimist": { | ||
| "version": "1.2.0", | ||
| "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | ||
| "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", | ||
| "dev": true | ||
| }, | ||
| "mkdirp": { | ||
| "version": "0.5.1", | ||
| "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", | ||
| "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", | ||
| "dev": true, | ||
| "requires": { | ||
| "minimist": "0.0.8" | ||
| }, | ||
| "dependencies": { | ||
| "minimist": { | ||
| "version": "0.0.8", | ||
| "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | ||
| "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "multistream": { | ||
| "version": "2.1.0", | ||
| "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.0.tgz", | ||
| "integrity": "sha1-YlwmfVxEQkrWKUeItbtNo9yzLx0=", | ||
| "dev": true, | ||
| "requires": { | ||
| "inherits": "2.0.3", | ||
| "readable-stream": "2.3.3" | ||
| } | ||
| }, | ||
| "normalize-path": { | ||
| "version": "2.1.1", | ||
| "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", | ||
| "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", | ||
| "dev": true, | ||
| "requires": { | ||
| "remove-trailing-separator": "1.1.0" | ||
| } | ||
| }, | ||
| "number-is-nan": { | ||
| "version": "1.0.1", | ||
| "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", | ||
| "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" | ||
| }, | ||
| "oauth-sign": { | ||
| "version": "0.8.2", | ||
| "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", | ||
| "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", | ||
| "dev": true | ||
| }, | ||
| "object-assign": { | ||
| "version": "4.1.1", | ||
| "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", | ||
| "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", | ||
| "dev": true | ||
| }, | ||
| "once": { | ||
| "version": "1.4.0", | ||
| "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||
| "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||
| "dev": true, | ||
| "requires": { | ||
| "wrappy": "1.0.2" | ||
| } | ||
| }, | ||
| "onetime": { | ||
| "version": "2.0.1", | ||
| "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", | ||
| "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", | ||
| "requires": { | ||
| "mimic-fn": "1.1.0" | ||
| } | ||
| }, | ||
| "optionator": { | ||
| "version": "0.8.2", | ||
| "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", | ||
| "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", | ||
| "dev": true, | ||
| "requires": { | ||
| "deep-is": "0.1.3", | ||
| "fast-levenshtein": "2.0.6", | ||
| "levn": "0.3.0", | ||
| "prelude-ls": "1.1.2", | ||
| "type-check": "0.3.2", | ||
| "wordwrap": "1.0.0" | ||
| } | ||
| }, | ||
| "ora": { | ||
| "version": "1.3.0", | ||
| "resolved": "https://registry.npmjs.org/ora/-/ora-1.3.0.tgz", | ||
| "integrity": "sha1-gAeN0rkqk0r2ajrXKluRBpTt5Ro=", | ||
| "requires": { | ||
| "chalk": "1.1.3", | ||
| "cli-cursor": "2.1.0", | ||
| "cli-spinners": "1.1.0", | ||
| "log-symbols": "1.0.2" | ||
| }, | ||
| "dependencies": { | ||
| "ansi-styles": { | ||
| "version": "2.2.1", | ||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", | ||
| "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" | ||
| }, | ||
| "chalk": { | ||
| "version": "1.1.3", | ||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", | ||
| "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", | ||
| "requires": { | ||
| "ansi-styles": "2.2.1", | ||
| "escape-string-regexp": "1.0.5", | ||
| "has-ansi": "2.0.0", | ||
| "strip-ansi": "3.0.1", | ||
| "supports-color": "2.0.0" | ||
| } | ||
| }, | ||
| "supports-color": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", | ||
| "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" | ||
| } | ||
| } | ||
| }, | ||
| "os-tmpdir": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", | ||
| "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", | ||
| "dev": true | ||
| }, | ||
| "path-is-absolute": { | ||
| "version": "1.0.1", | ||
| "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||
| "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", | ||
| "dev": true | ||
| }, | ||
| "path-parse": { | ||
| "version": "1.0.5", | ||
| "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", | ||
| "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", | ||
| "dev": true | ||
| }, | ||
| "performance-now": { | ||
| "version": "0.2.0", | ||
| "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", | ||
| "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", | ||
| "dev": true | ||
| }, | ||
| "pify": { | ||
| "version": "2.3.0", | ||
| "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", | ||
| "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", | ||
| "dev": true | ||
| }, | ||
| "pinkie": { | ||
| "version": "2.0.4", | ||
| "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", | ||
| "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", | ||
| "dev": true | ||
| }, | ||
| "pinkie-promise": { | ||
| "version": "2.0.1", | ||
| "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", | ||
| "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", | ||
| "dev": true, | ||
| "requires": { | ||
| "pinkie": "2.0.4" | ||
| } | ||
| }, | ||
| "pkg": { | ||
| "version": "4.3.0-beta.1", | ||
| "resolved": "https://registry.npmjs.org/pkg/-/pkg-4.3.0-beta.1.tgz", | ||
| "integrity": "sha512-U0o/d6yNo/kqXzLLUj2yq41iVmrtWuHmIPa+ty83ijNFHq6Mchi7NT5OMrjbmeRZohBnIXj8fAhcHTMfSLFmtg==", | ||
| "dev": true, | ||
| "requires": { | ||
| "acorn": "5.1.1", | ||
| "babel-runtime": "6.25.0", | ||
| "chalk": "2.1.0", | ||
| "escodegen": "1.8.1", | ||
| "fs-extra": "4.0.1", | ||
| "globby": "6.1.0", | ||
| "minimist": "1.2.0", | ||
| "multistream": "2.1.0", | ||
| "pkg-fetch": "2.5.0", | ||
| "progress": "2.0.0", | ||
| "resolve": "1.4.0", | ||
| "simple-bufferstream": "1.0.0", | ||
| "stream-meter": "1.0.4" | ||
| }, | ||
| "dependencies": { | ||
| "chalk": { | ||
| "version": "2.1.0", | ||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", | ||
| "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", | ||
| "dev": true, | ||
| "requires": { | ||
| "ansi-styles": "3.2.0", | ||
| "escape-string-regexp": "1.0.5", | ||
| "supports-color": "4.5.0" | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "pkg-fetch": { | ||
| "version": "2.5.0", | ||
| "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-2.5.0.tgz", | ||
| "integrity": "sha512-9fXaxbo+uvMT3ETWzinJjyoWLbzN3H5dsmEHVCiQNhZX0rExzA0kmOE6HrsomtSpwrrtKaPtiC7Yoe5vB0wWfQ==", | ||
| "dev": true, | ||
| "requires": { | ||
| "babel-runtime": "6.25.0", | ||
| "byline": "5.0.0", | ||
| "chalk": "2.1.0", | ||
| "expand-template": "1.0.3", | ||
| "fs-extra": "4.0.1", | ||
| "in-publish": "2.0.0", | ||
| "minimist": "1.2.0", | ||
| "progress": "2.0.0", | ||
| "request": "2.81.0", | ||
| "request-progress": "3.0.0", | ||
| "semver": "5.4.1", | ||
| "unique-temp-dir": "1.0.0" | ||
| }, | ||
| "dependencies": { | ||
| "chalk": { | ||
| "version": "2.1.0", | ||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", | ||
| "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", | ||
| "dev": true, | ||
| "requires": { | ||
| "ansi-styles": "3.2.0", | ||
| "escape-string-regexp": "1.0.5", | ||
| "supports-color": "4.5.0" | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "prelude-ls": { | ||
| "version": "1.1.2", | ||
| "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | ||
| "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", | ||
| "dev": true | ||
| }, | ||
| "process-nextick-args": { | ||
| "version": "1.0.7", | ||
| "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", | ||
| "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", | ||
| "dev": true | ||
| }, | ||
| "progress": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", | ||
| "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", | ||
| "dev": true | ||
| }, | ||
| "punycode": { | ||
| "version": "1.4.1", | ||
| "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", | ||
| "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", | ||
| "dev": true | ||
| }, | ||
| "qs": { | ||
| "version": "6.4.0", | ||
| "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", | ||
| "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", | ||
| "dev": true | ||
| }, | ||
| "readable-stream": { | ||
| "version": "2.3.3", | ||
| "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", | ||
| "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", | ||
| "dev": true, | ||
| "requires": { | ||
| "core-util-is": "1.0.2", | ||
| "inherits": "2.0.3", | ||
| "isarray": "1.0.0", | ||
| "process-nextick-args": "1.0.7", | ||
| "safe-buffer": "5.1.1", | ||
| "string_decoder": "1.0.3", | ||
| "util-deprecate": "1.0.2" | ||
| } | ||
| }, | ||
| "regenerator-runtime": { | ||
| "version": "0.10.5", | ||
| "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", | ||
| "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", | ||
| "dev": true | ||
| }, | ||
| "remove-trailing-separator": { | ||
| "version": "1.1.0", | ||
| "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", | ||
| "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", | ||
| "dev": true | ||
| }, | ||
| "request": { | ||
| "version": "2.81.0", | ||
| "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", | ||
| "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", | ||
| "dev": true, | ||
| "requires": { | ||
| "aws-sign2": "0.6.0", | ||
| "aws4": "1.6.0", | ||
| "caseless": "0.12.0", | ||
| "combined-stream": "1.0.5", | ||
| "extend": "3.0.1", | ||
| "forever-agent": "0.6.1", | ||
| "form-data": "2.1.4", | ||
| "har-validator": "4.2.1", | ||
| "hawk": "3.1.3", | ||
| "http-signature": "1.1.1", | ||
| "is-typedarray": "1.0.0", | ||
| "isstream": "0.1.2", | ||
| "json-stringify-safe": "5.0.1", | ||
| "mime-types": "2.1.17", | ||
| "oauth-sign": "0.8.2", | ||
| "performance-now": "0.2.0", | ||
| "qs": "6.4.0", | ||
| "safe-buffer": "5.1.1", | ||
| "stringstream": "0.0.5", | ||
| "tough-cookie": "2.3.3", | ||
| "tunnel-agent": "0.6.0", | ||
| "uuid": "3.1.0" | ||
| } | ||
| }, | ||
| "request-progress": { | ||
| "version": "3.0.0", | ||
| "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", | ||
| "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", | ||
| "dev": true, | ||
| "requires": { | ||
| "throttleit": "1.0.0" | ||
| } | ||
| }, | ||
| "resolve": { | ||
| "version": "1.4.0", | ||
| "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", | ||
| "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", | ||
| "dev": true, | ||
| "requires": { | ||
| "path-parse": "1.0.5" | ||
| } | ||
| }, | ||
| "restore-cursor": { | ||
| "version": "2.0.0", | ||
| "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", | ||
| "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", | ||
| "requires": { | ||
| "onetime": "2.0.1", | ||
| "signal-exit": "3.0.2" | ||
| } | ||
| }, | ||
| "rtm-api": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/rtm-api/-/rtm-api-1.0.2.tgz", | ||
| "integrity": "sha512-NA14QtmxAqVaUmOpOjf7EVbCs8eE1m/2krwWMlHGKRTujix8HQegG4x9NWzYyMucOB/CphV/Cqp8iNBOPRYsyg==" | ||
| }, | ||
| "safe-buffer": { | ||
| "version": "5.1.1", | ||
| "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", | ||
| "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", | ||
| "dev": true | ||
| }, | ||
| "semver": { | ||
| "version": "5.4.1", | ||
| "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", | ||
| "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", | ||
| "dev": true | ||
| }, | ||
| "signal-exit": { | ||
| "version": "3.0.2", | ||
| "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", | ||
| "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" | ||
| }, | ||
| "simple-bufferstream": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/simple-bufferstream/-/simple-bufferstream-1.0.0.tgz", | ||
| "integrity": "sha1-XKsQ6FGqccZnt3th/hux2QpguqQ=", | ||
| "dev": true | ||
| }, | ||
| "sntp": { | ||
| "version": "1.0.9", | ||
| "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", | ||
| "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", | ||
| "dev": true, | ||
| "requires": { | ||
| "hoek": "2.16.3" | ||
| } | ||
| }, | ||
| "source-map": { | ||
| "version": "0.2.0", | ||
| "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", | ||
| "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", | ||
| "dev": true, | ||
| "optional": true, | ||
| "requires": { | ||
| "amdefine": "1.0.1" | ||
| } | ||
| }, | ||
| "sshpk": { | ||
| "version": "1.13.1", | ||
| "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", | ||
| "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", | ||
| "dev": true, | ||
| "requires": { | ||
| "asn1": "0.2.3", | ||
| "assert-plus": "1.0.0", | ||
| "bcrypt-pbkdf": "1.0.1", | ||
| "dashdash": "1.14.1", | ||
| "ecc-jsbn": "0.1.1", | ||
| "getpass": "0.1.7", | ||
| "jsbn": "0.1.1", | ||
| "tweetnacl": "0.14.5" | ||
| }, | ||
| "dependencies": { | ||
| "assert-plus": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
| "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "stream-meter": { | ||
| "version": "1.0.4", | ||
| "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", | ||
| "integrity": "sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=", | ||
| "dev": true, | ||
| "requires": { | ||
| "readable-stream": "2.3.3" | ||
| } | ||
| }, | ||
| "string-width": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", | ||
| "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", | ||
| "requires": { | ||
| "code-point-at": "1.1.0", | ||
| "is-fullwidth-code-point": "1.0.0", | ||
| "strip-ansi": "3.0.1" | ||
| } | ||
| }, | ||
| "string_decoder": { | ||
| "version": "1.0.3", | ||
| "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", | ||
| "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", | ||
| "dev": true, | ||
| "requires": { | ||
| "safe-buffer": "5.1.1" | ||
| } | ||
| }, | ||
| "stringstream": { | ||
| "version": "0.0.5", | ||
| "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", | ||
| "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", | ||
| "dev": true | ||
| }, | ||
| "strip-ansi": { | ||
| "version": "3.0.1", | ||
| "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | ||
| "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | ||
| "requires": { | ||
| "ansi-regex": "2.1.1" | ||
| } | ||
| }, | ||
| "supports-color": { | ||
| "version": "4.5.0", | ||
| "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", | ||
| "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", | ||
| "requires": { | ||
| "has-flag": "2.0.0" | ||
| } | ||
| }, | ||
| "sync-exec": { | ||
| "version": "0.6.2", | ||
| "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", | ||
| "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=", | ||
| "optional": true | ||
| }, | ||
| "tar-stream": { | ||
| "version": "1.5.5", | ||
| "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", | ||
| "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", | ||
| "dev": true, | ||
| "requires": { | ||
| "bl": "1.2.1", | ||
| "end-of-stream": "1.4.0", | ||
| "readable-stream": "2.3.3", | ||
| "xtend": "4.0.1" | ||
| } | ||
| }, | ||
| "throttleit": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", | ||
| "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", | ||
| "dev": true | ||
| }, | ||
| "tough-cookie": { | ||
| "version": "2.3.3", | ||
| "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", | ||
| "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", | ||
| "dev": true, | ||
| "requires": { | ||
| "punycode": "1.4.1" | ||
| } | ||
| }, | ||
| "tunnel-agent": { | ||
| "version": "0.6.0", | ||
| "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", | ||
| "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", | ||
| "dev": true, | ||
| "requires": { | ||
| "safe-buffer": "5.1.1" | ||
| } | ||
| }, | ||
| "tweetnacl": { | ||
| "version": "0.14.5", | ||
| "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", | ||
| "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", | ||
| "dev": true, | ||
| "optional": true | ||
| }, | ||
| "type-check": { | ||
| "version": "0.3.2", | ||
| "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", | ||
| "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", | ||
| "dev": true, | ||
| "requires": { | ||
| "prelude-ls": "1.1.2" | ||
| } | ||
| }, | ||
| "uid2": { | ||
| "version": "0.0.3", | ||
| "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", | ||
| "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=", | ||
| "dev": true | ||
| }, | ||
| "unique-temp-dir": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", | ||
| "integrity": "sha1-bc6VsmgcoAPuv7MEpBX5y6vMU4U=", | ||
| "dev": true, | ||
| "requires": { | ||
| "mkdirp": "0.5.1", | ||
| "os-tmpdir": "1.0.2", | ||
| "uid2": "0.0.3" | ||
| } | ||
| }, | ||
| "universalify": { | ||
| "version": "0.1.1", | ||
| "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", | ||
| "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", | ||
| "dev": true | ||
| }, | ||
| "util-deprecate": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||
| "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", | ||
| "dev": true | ||
| }, | ||
| "uuid": { | ||
| "version": "3.1.0", | ||
| "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", | ||
| "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", | ||
| "dev": true | ||
| }, | ||
| "verror": { | ||
| "version": "1.10.0", | ||
| "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", | ||
| "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", | ||
| "dev": true, | ||
| "requires": { | ||
| "assert-plus": "1.0.0", | ||
| "core-util-is": "1.0.2", | ||
| "extsprintf": "1.3.0" | ||
| }, | ||
| "dependencies": { | ||
| "assert-plus": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", | ||
| "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", | ||
| "dev": true | ||
| } | ||
| } | ||
| }, | ||
| "window-size": { | ||
| "version": "1.1.0", | ||
| "resolved": "https://registry.npmjs.org/window-size/-/window-size-1.1.0.tgz", | ||
| "integrity": "sha1-O0AtMkTzVWHbLJdhrZ0eUoawei0=", | ||
| "requires": { | ||
| "define-property": "1.0.0", | ||
| "is-number": "3.0.0" | ||
| } | ||
| }, | ||
| "wordwrap": { | ||
| "version": "1.0.0", | ||
| "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", | ||
| "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", | ||
| "dev": true | ||
| }, | ||
| "wrappy": { | ||
| "version": "1.0.2", | ||
| "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||
| "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", | ||
| "dev": true | ||
| }, | ||
| "xtend": { | ||
| "version": "4.0.1", | ||
| "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", | ||
| "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", | ||
| "dev": true | ||
| }, | ||
| "zip-stream": { | ||
| "version": "1.2.0", | ||
| "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", | ||
| "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", | ||
| "dev": true, | ||
| "requires": { | ||
| "archiver-utils": "1.3.0", | ||
| "compress-commons": "1.2.2", | ||
| "lodash": "4.17.4", | ||
| "readable-stream": "2.3.3" | ||
| }, | ||
| "dependencies": { | ||
| "lodash": { | ||
| "version": "4.17.4", | ||
| "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", | ||
| "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", | ||
| "dev": true | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1082169
-6.12%45
-2.17%3292
-30.08%136
-85.27%12
9.09%