├── .babelrc ├── .editorconfig ├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── package-lock.json ├── package.json ├── src ├── callback-mappers.js ├── index.js ├── input.js ├── renderer.js └── value-mappers.js └── typings └── index.d.ts /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "targets": { 7 | "node": 6 8 | } 9 | } 10 | ] 11 | ], 12 | "plugins": [ 13 | "@babel/plugin-proposal-object-rest-spread" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # top-most EditorConfig file 2 | root = true 3 | 4 | # Unix-style newlines with a newline ending every file 5 | [*] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | [*.js] 11 | charset = utf-8 12 | indent_style = space 13 | indent_size = 2 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # os 2 | .DS_Store 3 | .DS_Store? 4 | ._* 5 | .Spotlight-V100 6 | .Trashes 7 | ehthumbs.db 8 | Thumbs.db 9 | 10 | # editor 11 | .idea 12 | .vscode 13 | 14 | # node 15 | node_modules 16 | 17 | # project 18 | dist 19 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # os 2 | .Spotlight-V100 3 | .Trashes 4 | ehthumbs.db 5 | Thumbs.db 6 | 7 | # project 8 | src 9 | .babelrc 10 | .editorconfig 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Cyril Wanner 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

▶️ 🔴 cli-select

2 | 3 |

4 | NPM 5 | License 6 |

7 | 8 |

9 | Simple and interactive solution to provide a list of selectable items on the command line. 10 | cli-select preview 11 |

12 | 13 | > Note: cli-select does not produce colored output by default to keep the dependencies at a minimum. See the [examples](#examples) below on how to reproduce this preview. 14 | 15 | ## Table of contents 16 | 17 | - [Installation](#installation) 18 | - [Usage](#usage) 19 | - [Configuration](#configuration) 20 | - [Examples](#examples) 21 | - [License](#license) 22 | 23 | ## Installation 24 | 25 | ``` 26 | npm install --save cli-select 27 | ``` 28 | 29 | ## Usage 30 | 31 | ```javascript 32 | const cliSelect = require('cli-select'); 33 | 34 | cliSelect(options, callback); 35 | ``` 36 | 37 | See the [configuration section](#configuration) for all available options. 38 | 39 | The select list gets immediately rendered when the function gets called and the user can then select an option with the `up` and `down` arrow keys. To confirm the selection, just press `enter`/`return`. It is also possible to cancel a selection with `ctrl+c` or `esc` but it is up to you how you want to handle the cancellation of a selection, the process won't be ended by default. 40 | 41 | cli-select supports both, a __callback__ function or a __Promise__ (if your node environment supports promises). 42 | 43 | ### Callback 44 | 45 | If the __callback__ function is defined, two parameters will get passed where `valueId` is the numeric index if values is an array or the object key if values is an object. Both parameters will be `null` if the selection gets cancelled. 46 | ```javascript 47 | cliSelect(options, (valueId, value) => { 48 | if (valueId !== null) { 49 | console.log('selected ' + valueId + ': ' + value); 50 | } else { 51 | console.log('cancelled'); 52 | } 53 | }); 54 | ``` 55 | 56 | ### Promise 57 | 58 | If no callback function is defined, a __Promise__ will be returned: 59 | ```javascript 60 | cliSelect(options).then((response) => { 61 | console.log('selected ' + response.id + ': ' + response.value); 62 | }).catch(() => { 63 | console.log('cancelled'); 64 | }); 65 | ``` 66 | 67 | ## Configuration 68 | 69 | > Note: All options are optional except `values` and will default as specified below. 70 | 71 | The configuration gets passed to the `cliSelect` function as a normal object and can contain the following keys: 72 | 73 | ```javascript 74 | cliSelect({ 75 | /** 76 | * All values which can be selected. 77 | * This can either be an array or an object with string keys and values. 78 | * If an array is specified, the numerical index gets passed to the callback, 79 | * if an object is specified, the object key will get passed to the callback. 80 | * If you use the `valueRenderer` option, you can also pass in any array/object you want, 81 | * the value can be anything as the `valueRenderer` returns the string to render on the terminal. 82 | * 83 | * @type {array|object} 84 | */ 85 | values: [], 86 | 87 | /** 88 | * The default value which will be pre-selected when the list shows up. 89 | * If `values` is an object, the object key can be specified, otherwise 90 | * it requires the numerical index in the array. 91 | * 92 | * @type {number|string} 93 | */ 94 | defaultValue: 0, 95 | 96 | /** 97 | * Symbol which gets rendered if an option is selected. 98 | * 99 | * @type {string} 100 | */ 101 | selected: '(x)', 102 | 103 | /** 104 | * Symbol which gets rendered if an option is not selected. 105 | * 106 | * @type {string} 107 | */ 108 | unselected: '( )', 109 | 110 | /** 111 | * If you want an indent before the symbol and options, 112 | * you can specify it here with the number of spaces. 113 | * 114 | * @type {number} 115 | */ 116 | indentation: 0, 117 | 118 | /** 119 | * If true, the list will get removed from the output 120 | * once an item gets selected or it gets cancelled. 121 | * 122 | * @type {boolean} 123 | */ 124 | cleanup: true, 125 | 126 | /** 127 | * If you use a custom object for values or want to render the values differently, 128 | * you can overwrite it with a custom function. 129 | * The function gets two parameters passed, the value 130 | * (which can be a string or your custom object, depending what you have in the `values` option) 131 | * and a boolean specifying if the value is selected. 132 | * See the examples below for a simple example. 133 | * 134 | * @type {function} 135 | */ 136 | valueRenderer: (value, selected) => value, 137 | 138 | /** 139 | * Stream where the output should be written to. 140 | * 141 | * @type {Stream} 142 | */ 143 | outputStream: process.stdout, 144 | 145 | /** 146 | * Stream to use for the keyboard events. 147 | * 148 | * @type {Stream} 149 | */ 150 | inputStream: process.stdin, 151 | }); 152 | ``` 153 | 154 | ## Examples 155 | 156 | `cli-select` does not produce colored outputs by default so you can use the package for that which you already have in your project and you don't have two packages doing basically the same at the end. 157 | If you don't have such a package already in your project and you want the output to look similar to the preview gif above, 158 | I recommend the packages [chalk](https://www.npmjs.com/package/chalk) for colored output and 159 | [figures](https://www.npmjs.com/package/figures) for unicode symbols with fallbacks. 160 | These two packages are also used in the examples below but `cli-select` is also compatible with every other package. 161 | 162 | ### Custom value renderer 163 | 164 | ```javascript 165 | const cliSelect = require('cli-select'); 166 | const chalk = require('chalk'); 167 | 168 | cliSelect({ 169 | values: ['Major', 'Minor', 'Patch'], 170 | valueRenderer: (value, selected) => { 171 | if (selected) { 172 | return chalk.underline(value); 173 | } 174 | 175 | return value; 176 | }, 177 | }).then(...); 178 | ``` 179 | 180 | Todo: more examples, also the one in the preview gif 181 | 182 | ## License 183 | 184 | [MIT](https://github.com/cyrilwanner/cli-select/blob/master/LICENSE) 185 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cli-select", 3 | "version": "1.1.2", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/cli": { 8 | "version": "7.4.3", 9 | "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.4.3.tgz", 10 | "integrity": "sha512-cbC5H9iTDV9H7sMxK5rUm18UbdVPNTPqgdzmQAkOUP3YLysgDWLZaysVAfylK49rgTlzL01a6tXyq9rCb3yLhQ==", 11 | "dev": true, 12 | "requires": { 13 | "chokidar": "^2.0.4", 14 | "commander": "^2.8.1", 15 | "convert-source-map": "^1.1.0", 16 | "fs-readdir-recursive": "^1.1.0", 17 | "glob": "^7.0.0", 18 | "lodash": "^4.17.11", 19 | "mkdirp": "^0.5.1", 20 | "output-file-sync": "^2.0.0", 21 | "slash": "^2.0.0", 22 | "source-map": "^0.5.0" 23 | } 24 | }, 25 | "@babel/code-frame": { 26 | "version": "7.0.0", 27 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 28 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 29 | "dev": true, 30 | "requires": { 31 | "@babel/highlight": "^7.0.0" 32 | } 33 | }, 34 | "@babel/core": { 35 | "version": "7.4.3", 36 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.3.tgz", 37 | "integrity": "sha512-oDpASqKFlbspQfzAE7yaeTmdljSH2ADIvBlb0RwbStltTuWa0+7CCI1fYVINNv9saHPa1W7oaKeuNuKj+RQCvA==", 38 | "dev": true, 39 | "requires": { 40 | "@babel/code-frame": "^7.0.0", 41 | "@babel/generator": "^7.4.0", 42 | "@babel/helpers": "^7.4.3", 43 | "@babel/parser": "^7.4.3", 44 | "@babel/template": "^7.4.0", 45 | "@babel/traverse": "^7.4.3", 46 | "@babel/types": "^7.4.0", 47 | "convert-source-map": "^1.1.0", 48 | "debug": "^4.1.0", 49 | "json5": "^2.1.0", 50 | "lodash": "^4.17.11", 51 | "resolve": "^1.3.2", 52 | "semver": "^5.4.1", 53 | "source-map": "^0.5.0" 54 | }, 55 | "dependencies": { 56 | "debug": { 57 | "version": "4.1.1", 58 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 59 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 60 | "dev": true, 61 | "requires": { 62 | "ms": "^2.1.1" 63 | } 64 | }, 65 | "ms": { 66 | "version": "2.1.1", 67 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 68 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 69 | "dev": true 70 | } 71 | } 72 | }, 73 | "@babel/generator": { 74 | "version": "7.4.0", 75 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.0.tgz", 76 | "integrity": "sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ==", 77 | "dev": true, 78 | "requires": { 79 | "@babel/types": "^7.4.0", 80 | "jsesc": "^2.5.1", 81 | "lodash": "^4.17.11", 82 | "source-map": "^0.5.0", 83 | "trim-right": "^1.0.1" 84 | } 85 | }, 86 | "@babel/helper-annotate-as-pure": { 87 | "version": "7.0.0", 88 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", 89 | "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", 90 | "dev": true, 91 | "requires": { 92 | "@babel/types": "^7.0.0" 93 | } 94 | }, 95 | "@babel/helper-builder-binary-assignment-operator-visitor": { 96 | "version": "7.1.0", 97 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", 98 | "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", 99 | "dev": true, 100 | "requires": { 101 | "@babel/helper-explode-assignable-expression": "^7.1.0", 102 | "@babel/types": "^7.0.0" 103 | } 104 | }, 105 | "@babel/helper-call-delegate": { 106 | "version": "7.4.0", 107 | "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz", 108 | "integrity": "sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ==", 109 | "dev": true, 110 | "requires": { 111 | "@babel/helper-hoist-variables": "^7.4.0", 112 | "@babel/traverse": "^7.4.0", 113 | "@babel/types": "^7.4.0" 114 | } 115 | }, 116 | "@babel/helper-define-map": { 117 | "version": "7.4.0", 118 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz", 119 | "integrity": "sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA==", 120 | "dev": true, 121 | "requires": { 122 | "@babel/helper-function-name": "^7.1.0", 123 | "@babel/types": "^7.4.0", 124 | "lodash": "^4.17.11" 125 | } 126 | }, 127 | "@babel/helper-explode-assignable-expression": { 128 | "version": "7.1.0", 129 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", 130 | "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", 131 | "dev": true, 132 | "requires": { 133 | "@babel/traverse": "^7.1.0", 134 | "@babel/types": "^7.0.0" 135 | } 136 | }, 137 | "@babel/helper-function-name": { 138 | "version": "7.1.0", 139 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", 140 | "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", 141 | "dev": true, 142 | "requires": { 143 | "@babel/helper-get-function-arity": "^7.0.0", 144 | "@babel/template": "^7.1.0", 145 | "@babel/types": "^7.0.0" 146 | } 147 | }, 148 | "@babel/helper-get-function-arity": { 149 | "version": "7.0.0", 150 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", 151 | "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", 152 | "dev": true, 153 | "requires": { 154 | "@babel/types": "^7.0.0" 155 | } 156 | }, 157 | "@babel/helper-hoist-variables": { 158 | "version": "7.4.0", 159 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz", 160 | "integrity": "sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw==", 161 | "dev": true, 162 | "requires": { 163 | "@babel/types": "^7.4.0" 164 | } 165 | }, 166 | "@babel/helper-member-expression-to-functions": { 167 | "version": "7.0.0", 168 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", 169 | "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", 170 | "dev": true, 171 | "requires": { 172 | "@babel/types": "^7.0.0" 173 | } 174 | }, 175 | "@babel/helper-module-imports": { 176 | "version": "7.0.0", 177 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", 178 | "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", 179 | "dev": true, 180 | "requires": { 181 | "@babel/types": "^7.0.0" 182 | } 183 | }, 184 | "@babel/helper-module-transforms": { 185 | "version": "7.4.3", 186 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.3.tgz", 187 | "integrity": "sha512-H88T9IySZW25anu5uqyaC1DaQre7ofM+joZtAaO2F8NBdFfupH0SZ4gKjgSFVcvtx/aAirqA9L9Clio2heYbZA==", 188 | "dev": true, 189 | "requires": { 190 | "@babel/helper-module-imports": "^7.0.0", 191 | "@babel/helper-simple-access": "^7.1.0", 192 | "@babel/helper-split-export-declaration": "^7.0.0", 193 | "@babel/template": "^7.2.2", 194 | "@babel/types": "^7.2.2", 195 | "lodash": "^4.17.11" 196 | } 197 | }, 198 | "@babel/helper-optimise-call-expression": { 199 | "version": "7.0.0", 200 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", 201 | "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", 202 | "dev": true, 203 | "requires": { 204 | "@babel/types": "^7.0.0" 205 | } 206 | }, 207 | "@babel/helper-plugin-utils": { 208 | "version": "7.0.0", 209 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", 210 | "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", 211 | "dev": true 212 | }, 213 | "@babel/helper-regex": { 214 | "version": "7.4.3", 215 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.3.tgz", 216 | "integrity": "sha512-hnoq5u96pLCfgjXuj8ZLX3QQ+6nAulS+zSgi6HulUwFbEruRAKwbGLU5OvXkE14L8XW6XsQEKsIDfgthKLRAyA==", 217 | "dev": true, 218 | "requires": { 219 | "lodash": "^4.17.11" 220 | } 221 | }, 222 | "@babel/helper-remap-async-to-generator": { 223 | "version": "7.1.0", 224 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", 225 | "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", 226 | "dev": true, 227 | "requires": { 228 | "@babel/helper-annotate-as-pure": "^7.0.0", 229 | "@babel/helper-wrap-function": "^7.1.0", 230 | "@babel/template": "^7.1.0", 231 | "@babel/traverse": "^7.1.0", 232 | "@babel/types": "^7.0.0" 233 | } 234 | }, 235 | "@babel/helper-replace-supers": { 236 | "version": "7.4.0", 237 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz", 238 | "integrity": "sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg==", 239 | "dev": true, 240 | "requires": { 241 | "@babel/helper-member-expression-to-functions": "^7.0.0", 242 | "@babel/helper-optimise-call-expression": "^7.0.0", 243 | "@babel/traverse": "^7.4.0", 244 | "@babel/types": "^7.4.0" 245 | } 246 | }, 247 | "@babel/helper-simple-access": { 248 | "version": "7.1.0", 249 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", 250 | "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", 251 | "dev": true, 252 | "requires": { 253 | "@babel/template": "^7.1.0", 254 | "@babel/types": "^7.0.0" 255 | } 256 | }, 257 | "@babel/helper-split-export-declaration": { 258 | "version": "7.4.0", 259 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz", 260 | "integrity": "sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw==", 261 | "dev": true, 262 | "requires": { 263 | "@babel/types": "^7.4.0" 264 | } 265 | }, 266 | "@babel/helper-wrap-function": { 267 | "version": "7.2.0", 268 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", 269 | "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", 270 | "dev": true, 271 | "requires": { 272 | "@babel/helper-function-name": "^7.1.0", 273 | "@babel/template": "^7.1.0", 274 | "@babel/traverse": "^7.1.0", 275 | "@babel/types": "^7.2.0" 276 | } 277 | }, 278 | "@babel/helpers": { 279 | "version": "7.4.3", 280 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.3.tgz", 281 | "integrity": "sha512-BMh7X0oZqb36CfyhvtbSmcWc3GXocfxv3yNsAEuM0l+fAqSO22rQrUpijr3oE/10jCTrB6/0b9kzmG4VetCj8Q==", 282 | "dev": true, 283 | "requires": { 284 | "@babel/template": "^7.4.0", 285 | "@babel/traverse": "^7.4.3", 286 | "@babel/types": "^7.4.0" 287 | } 288 | }, 289 | "@babel/highlight": { 290 | "version": "7.0.0", 291 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", 292 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", 293 | "dev": true, 294 | "requires": { 295 | "chalk": "^2.0.0", 296 | "esutils": "^2.0.2", 297 | "js-tokens": "^4.0.0" 298 | } 299 | }, 300 | "@babel/parser": { 301 | "version": "7.4.3", 302 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.3.tgz", 303 | "integrity": "sha512-gxpEUhTS1sGA63EGQGuA+WESPR/6tz6ng7tSHFCmaTJK/cGK8y37cBTspX+U2xCAue2IQVvF6Z0oigmjwD8YGQ==", 304 | "dev": true 305 | }, 306 | "@babel/plugin-proposal-async-generator-functions": { 307 | "version": "7.2.0", 308 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", 309 | "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", 310 | "dev": true, 311 | "requires": { 312 | "@babel/helper-plugin-utils": "^7.0.0", 313 | "@babel/helper-remap-async-to-generator": "^7.1.0", 314 | "@babel/plugin-syntax-async-generators": "^7.2.0" 315 | } 316 | }, 317 | "@babel/plugin-proposal-json-strings": { 318 | "version": "7.2.0", 319 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", 320 | "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", 321 | "dev": true, 322 | "requires": { 323 | "@babel/helper-plugin-utils": "^7.0.0", 324 | "@babel/plugin-syntax-json-strings": "^7.2.0" 325 | } 326 | }, 327 | "@babel/plugin-proposal-object-rest-spread": { 328 | "version": "7.4.3", 329 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.3.tgz", 330 | "integrity": "sha512-xC//6DNSSHVjq8O2ge0dyYlhshsH4T7XdCVoxbi5HzLYWfsC5ooFlJjrXk8RcAT+hjHAK9UjBXdylzSoDK3t4g==", 331 | "dev": true, 332 | "requires": { 333 | "@babel/helper-plugin-utils": "^7.0.0", 334 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0" 335 | } 336 | }, 337 | "@babel/plugin-proposal-optional-catch-binding": { 338 | "version": "7.2.0", 339 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", 340 | "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", 341 | "dev": true, 342 | "requires": { 343 | "@babel/helper-plugin-utils": "^7.0.0", 344 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" 345 | } 346 | }, 347 | "@babel/plugin-proposal-unicode-property-regex": { 348 | "version": "7.4.0", 349 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz", 350 | "integrity": "sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w==", 351 | "dev": true, 352 | "requires": { 353 | "@babel/helper-plugin-utils": "^7.0.0", 354 | "@babel/helper-regex": "^7.0.0", 355 | "regexpu-core": "^4.5.4" 356 | } 357 | }, 358 | "@babel/plugin-syntax-async-generators": { 359 | "version": "7.2.0", 360 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", 361 | "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", 362 | "dev": true, 363 | "requires": { 364 | "@babel/helper-plugin-utils": "^7.0.0" 365 | } 366 | }, 367 | "@babel/plugin-syntax-json-strings": { 368 | "version": "7.2.0", 369 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", 370 | "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", 371 | "dev": true, 372 | "requires": { 373 | "@babel/helper-plugin-utils": "^7.0.0" 374 | } 375 | }, 376 | "@babel/plugin-syntax-object-rest-spread": { 377 | "version": "7.2.0", 378 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", 379 | "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", 380 | "dev": true, 381 | "requires": { 382 | "@babel/helper-plugin-utils": "^7.0.0" 383 | } 384 | }, 385 | "@babel/plugin-syntax-optional-catch-binding": { 386 | "version": "7.2.0", 387 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", 388 | "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", 389 | "dev": true, 390 | "requires": { 391 | "@babel/helper-plugin-utils": "^7.0.0" 392 | } 393 | }, 394 | "@babel/plugin-transform-arrow-functions": { 395 | "version": "7.2.0", 396 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", 397 | "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", 398 | "dev": true, 399 | "requires": { 400 | "@babel/helper-plugin-utils": "^7.0.0" 401 | } 402 | }, 403 | "@babel/plugin-transform-async-to-generator": { 404 | "version": "7.4.0", 405 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz", 406 | "integrity": "sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g==", 407 | "dev": true, 408 | "requires": { 409 | "@babel/helper-module-imports": "^7.0.0", 410 | "@babel/helper-plugin-utils": "^7.0.0", 411 | "@babel/helper-remap-async-to-generator": "^7.1.0" 412 | } 413 | }, 414 | "@babel/plugin-transform-block-scoped-functions": { 415 | "version": "7.2.0", 416 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", 417 | "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", 418 | "dev": true, 419 | "requires": { 420 | "@babel/helper-plugin-utils": "^7.0.0" 421 | } 422 | }, 423 | "@babel/plugin-transform-block-scoping": { 424 | "version": "7.4.0", 425 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz", 426 | "integrity": "sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ==", 427 | "dev": true, 428 | "requires": { 429 | "@babel/helper-plugin-utils": "^7.0.0", 430 | "lodash": "^4.17.11" 431 | } 432 | }, 433 | "@babel/plugin-transform-classes": { 434 | "version": "7.4.3", 435 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.3.tgz", 436 | "integrity": "sha512-PUaIKyFUDtG6jF5DUJOfkBdwAS/kFFV3XFk7Nn0a6vR7ZT8jYw5cGtIlat77wcnd0C6ViGqo/wyNf4ZHytF/nQ==", 437 | "dev": true, 438 | "requires": { 439 | "@babel/helper-annotate-as-pure": "^7.0.0", 440 | "@babel/helper-define-map": "^7.4.0", 441 | "@babel/helper-function-name": "^7.1.0", 442 | "@babel/helper-optimise-call-expression": "^7.0.0", 443 | "@babel/helper-plugin-utils": "^7.0.0", 444 | "@babel/helper-replace-supers": "^7.4.0", 445 | "@babel/helper-split-export-declaration": "^7.4.0", 446 | "globals": "^11.1.0" 447 | } 448 | }, 449 | "@babel/plugin-transform-computed-properties": { 450 | "version": "7.2.0", 451 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", 452 | "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", 453 | "dev": true, 454 | "requires": { 455 | "@babel/helper-plugin-utils": "^7.0.0" 456 | } 457 | }, 458 | "@babel/plugin-transform-destructuring": { 459 | "version": "7.4.3", 460 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.3.tgz", 461 | "integrity": "sha512-rVTLLZpydDFDyN4qnXdzwoVpk1oaXHIvPEOkOLyr88o7oHxVc/LyrnDx+amuBWGOwUb7D1s/uLsKBNTx08htZg==", 462 | "dev": true, 463 | "requires": { 464 | "@babel/helper-plugin-utils": "^7.0.0" 465 | } 466 | }, 467 | "@babel/plugin-transform-dotall-regex": { 468 | "version": "7.4.3", 469 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.3.tgz", 470 | "integrity": "sha512-9Arc2I0AGynzXRR/oPdSALv3k0rM38IMFyto7kOCwb5F9sLUt2Ykdo3V9yUPR+Bgr4kb6bVEyLkPEiBhzcTeoA==", 471 | "dev": true, 472 | "requires": { 473 | "@babel/helper-plugin-utils": "^7.0.0", 474 | "@babel/helper-regex": "^7.4.3", 475 | "regexpu-core": "^4.5.4" 476 | } 477 | }, 478 | "@babel/plugin-transform-duplicate-keys": { 479 | "version": "7.2.0", 480 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", 481 | "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", 482 | "dev": true, 483 | "requires": { 484 | "@babel/helper-plugin-utils": "^7.0.0" 485 | } 486 | }, 487 | "@babel/plugin-transform-exponentiation-operator": { 488 | "version": "7.2.0", 489 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", 490 | "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", 491 | "dev": true, 492 | "requires": { 493 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", 494 | "@babel/helper-plugin-utils": "^7.0.0" 495 | } 496 | }, 497 | "@babel/plugin-transform-for-of": { 498 | "version": "7.4.3", 499 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.3.tgz", 500 | "integrity": "sha512-UselcZPwVWNSURnqcfpnxtMehrb8wjXYOimlYQPBnup/Zld426YzIhNEvuRsEWVHfESIECGrxoI6L5QqzuLH5Q==", 501 | "dev": true, 502 | "requires": { 503 | "@babel/helper-plugin-utils": "^7.0.0" 504 | } 505 | }, 506 | "@babel/plugin-transform-function-name": { 507 | "version": "7.4.3", 508 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.3.tgz", 509 | "integrity": "sha512-uT5J/3qI/8vACBR9I1GlAuU/JqBtWdfCrynuOkrWG6nCDieZd5przB1vfP59FRHBZQ9DC2IUfqr/xKqzOD5x0A==", 510 | "dev": true, 511 | "requires": { 512 | "@babel/helper-function-name": "^7.1.0", 513 | "@babel/helper-plugin-utils": "^7.0.0" 514 | } 515 | }, 516 | "@babel/plugin-transform-literals": { 517 | "version": "7.2.0", 518 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", 519 | "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", 520 | "dev": true, 521 | "requires": { 522 | "@babel/helper-plugin-utils": "^7.0.0" 523 | } 524 | }, 525 | "@babel/plugin-transform-member-expression-literals": { 526 | "version": "7.2.0", 527 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", 528 | "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", 529 | "dev": true, 530 | "requires": { 531 | "@babel/helper-plugin-utils": "^7.0.0" 532 | } 533 | }, 534 | "@babel/plugin-transform-modules-amd": { 535 | "version": "7.2.0", 536 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", 537 | "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", 538 | "dev": true, 539 | "requires": { 540 | "@babel/helper-module-transforms": "^7.1.0", 541 | "@babel/helper-plugin-utils": "^7.0.0" 542 | } 543 | }, 544 | "@babel/plugin-transform-modules-commonjs": { 545 | "version": "7.4.3", 546 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.3.tgz", 547 | "integrity": "sha512-sMP4JqOTbMJMimqsSZwYWsMjppD+KRyDIUVW91pd7td0dZKAvPmhCaxhOzkzLParKwgQc7bdL9UNv+rpJB0HfA==", 548 | "dev": true, 549 | "requires": { 550 | "@babel/helper-module-transforms": "^7.4.3", 551 | "@babel/helper-plugin-utils": "^7.0.0", 552 | "@babel/helper-simple-access": "^7.1.0" 553 | } 554 | }, 555 | "@babel/plugin-transform-modules-systemjs": { 556 | "version": "7.4.0", 557 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz", 558 | "integrity": "sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ==", 559 | "dev": true, 560 | "requires": { 561 | "@babel/helper-hoist-variables": "^7.4.0", 562 | "@babel/helper-plugin-utils": "^7.0.0" 563 | } 564 | }, 565 | "@babel/plugin-transform-modules-umd": { 566 | "version": "7.2.0", 567 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", 568 | "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", 569 | "dev": true, 570 | "requires": { 571 | "@babel/helper-module-transforms": "^7.1.0", 572 | "@babel/helper-plugin-utils": "^7.0.0" 573 | } 574 | }, 575 | "@babel/plugin-transform-named-capturing-groups-regex": { 576 | "version": "7.4.2", 577 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz", 578 | "integrity": "sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ==", 579 | "dev": true, 580 | "requires": { 581 | "regexp-tree": "^0.1.0" 582 | } 583 | }, 584 | "@babel/plugin-transform-new-target": { 585 | "version": "7.4.0", 586 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz", 587 | "integrity": "sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw==", 588 | "dev": true, 589 | "requires": { 590 | "@babel/helper-plugin-utils": "^7.0.0" 591 | } 592 | }, 593 | "@babel/plugin-transform-object-super": { 594 | "version": "7.2.0", 595 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", 596 | "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", 597 | "dev": true, 598 | "requires": { 599 | "@babel/helper-plugin-utils": "^7.0.0", 600 | "@babel/helper-replace-supers": "^7.1.0" 601 | } 602 | }, 603 | "@babel/plugin-transform-parameters": { 604 | "version": "7.4.3", 605 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.3.tgz", 606 | "integrity": "sha512-ULJYC2Vnw96/zdotCZkMGr2QVfKpIT/4/K+xWWY0MbOJyMZuk660BGkr3bEKWQrrciwz6xpmft39nA4BF7hJuA==", 607 | "dev": true, 608 | "requires": { 609 | "@babel/helper-call-delegate": "^7.4.0", 610 | "@babel/helper-get-function-arity": "^7.0.0", 611 | "@babel/helper-plugin-utils": "^7.0.0" 612 | } 613 | }, 614 | "@babel/plugin-transform-property-literals": { 615 | "version": "7.2.0", 616 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", 617 | "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", 618 | "dev": true, 619 | "requires": { 620 | "@babel/helper-plugin-utils": "^7.0.0" 621 | } 622 | }, 623 | "@babel/plugin-transform-regenerator": { 624 | "version": "7.4.3", 625 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.3.tgz", 626 | "integrity": "sha512-kEzotPuOpv6/iSlHroCDydPkKYw7tiJGKlmYp6iJn4a6C/+b2FdttlJsLKYxolYHgotTJ5G5UY5h0qey5ka3+A==", 627 | "dev": true, 628 | "requires": { 629 | "regenerator-transform": "^0.13.4" 630 | } 631 | }, 632 | "@babel/plugin-transform-reserved-words": { 633 | "version": "7.2.0", 634 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", 635 | "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", 636 | "dev": true, 637 | "requires": { 638 | "@babel/helper-plugin-utils": "^7.0.0" 639 | } 640 | }, 641 | "@babel/plugin-transform-shorthand-properties": { 642 | "version": "7.2.0", 643 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", 644 | "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", 645 | "dev": true, 646 | "requires": { 647 | "@babel/helper-plugin-utils": "^7.0.0" 648 | } 649 | }, 650 | "@babel/plugin-transform-spread": { 651 | "version": "7.2.2", 652 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", 653 | "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", 654 | "dev": true, 655 | "requires": { 656 | "@babel/helper-plugin-utils": "^7.0.0" 657 | } 658 | }, 659 | "@babel/plugin-transform-sticky-regex": { 660 | "version": "7.2.0", 661 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", 662 | "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", 663 | "dev": true, 664 | "requires": { 665 | "@babel/helper-plugin-utils": "^7.0.0", 666 | "@babel/helper-regex": "^7.0.0" 667 | } 668 | }, 669 | "@babel/plugin-transform-template-literals": { 670 | "version": "7.2.0", 671 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", 672 | "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", 673 | "dev": true, 674 | "requires": { 675 | "@babel/helper-annotate-as-pure": "^7.0.0", 676 | "@babel/helper-plugin-utils": "^7.0.0" 677 | } 678 | }, 679 | "@babel/plugin-transform-typeof-symbol": { 680 | "version": "7.2.0", 681 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", 682 | "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", 683 | "dev": true, 684 | "requires": { 685 | "@babel/helper-plugin-utils": "^7.0.0" 686 | } 687 | }, 688 | "@babel/plugin-transform-unicode-regex": { 689 | "version": "7.4.3", 690 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.3.tgz", 691 | "integrity": "sha512-lnSNgkVjL8EMtnE8eSS7t2ku8qvKH3eqNf/IwIfnSPUqzgqYmRwzdsQWv4mNQAN9Nuo6Gz1Y0a4CSmdpu1Pp6g==", 692 | "dev": true, 693 | "requires": { 694 | "@babel/helper-plugin-utils": "^7.0.0", 695 | "@babel/helper-regex": "^7.4.3", 696 | "regexpu-core": "^4.5.4" 697 | } 698 | }, 699 | "@babel/preset-env": { 700 | "version": "7.4.3", 701 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.3.tgz", 702 | "integrity": "sha512-FYbZdV12yHdJU5Z70cEg0f6lvtpZ8jFSDakTm7WXeJbLXh4R0ztGEu/SW7G1nJ2ZvKwDhz8YrbA84eYyprmGqw==", 703 | "dev": true, 704 | "requires": { 705 | "@babel/helper-module-imports": "^7.0.0", 706 | "@babel/helper-plugin-utils": "^7.0.0", 707 | "@babel/plugin-proposal-async-generator-functions": "^7.2.0", 708 | "@babel/plugin-proposal-json-strings": "^7.2.0", 709 | "@babel/plugin-proposal-object-rest-spread": "^7.4.3", 710 | "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", 711 | "@babel/plugin-proposal-unicode-property-regex": "^7.4.0", 712 | "@babel/plugin-syntax-async-generators": "^7.2.0", 713 | "@babel/plugin-syntax-json-strings": "^7.2.0", 714 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0", 715 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", 716 | "@babel/plugin-transform-arrow-functions": "^7.2.0", 717 | "@babel/plugin-transform-async-to-generator": "^7.4.0", 718 | "@babel/plugin-transform-block-scoped-functions": "^7.2.0", 719 | "@babel/plugin-transform-block-scoping": "^7.4.0", 720 | "@babel/plugin-transform-classes": "^7.4.3", 721 | "@babel/plugin-transform-computed-properties": "^7.2.0", 722 | "@babel/plugin-transform-destructuring": "^7.4.3", 723 | "@babel/plugin-transform-dotall-regex": "^7.4.3", 724 | "@babel/plugin-transform-duplicate-keys": "^7.2.0", 725 | "@babel/plugin-transform-exponentiation-operator": "^7.2.0", 726 | "@babel/plugin-transform-for-of": "^7.4.3", 727 | "@babel/plugin-transform-function-name": "^7.4.3", 728 | "@babel/plugin-transform-literals": "^7.2.0", 729 | "@babel/plugin-transform-member-expression-literals": "^7.2.0", 730 | "@babel/plugin-transform-modules-amd": "^7.2.0", 731 | "@babel/plugin-transform-modules-commonjs": "^7.4.3", 732 | "@babel/plugin-transform-modules-systemjs": "^7.4.0", 733 | "@babel/plugin-transform-modules-umd": "^7.2.0", 734 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.2", 735 | "@babel/plugin-transform-new-target": "^7.4.0", 736 | "@babel/plugin-transform-object-super": "^7.2.0", 737 | "@babel/plugin-transform-parameters": "^7.4.3", 738 | "@babel/plugin-transform-property-literals": "^7.2.0", 739 | "@babel/plugin-transform-regenerator": "^7.4.3", 740 | "@babel/plugin-transform-reserved-words": "^7.2.0", 741 | "@babel/plugin-transform-shorthand-properties": "^7.2.0", 742 | "@babel/plugin-transform-spread": "^7.2.0", 743 | "@babel/plugin-transform-sticky-regex": "^7.2.0", 744 | "@babel/plugin-transform-template-literals": "^7.2.0", 745 | "@babel/plugin-transform-typeof-symbol": "^7.2.0", 746 | "@babel/plugin-transform-unicode-regex": "^7.4.3", 747 | "@babel/types": "^7.4.0", 748 | "browserslist": "^4.5.2", 749 | "core-js-compat": "^3.0.0", 750 | "invariant": "^2.2.2", 751 | "js-levenshtein": "^1.1.3", 752 | "semver": "^5.5.0" 753 | } 754 | }, 755 | "@babel/template": { 756 | "version": "7.4.0", 757 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.0.tgz", 758 | "integrity": "sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw==", 759 | "dev": true, 760 | "requires": { 761 | "@babel/code-frame": "^7.0.0", 762 | "@babel/parser": "^7.4.0", 763 | "@babel/types": "^7.4.0" 764 | } 765 | }, 766 | "@babel/traverse": { 767 | "version": "7.4.3", 768 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.3.tgz", 769 | "integrity": "sha512-HmA01qrtaCwwJWpSKpA948cBvU5BrmviAief/b3AVw936DtcdsTexlbyzNuDnthwhOQ37xshn7hvQaEQk7ISYQ==", 770 | "dev": true, 771 | "requires": { 772 | "@babel/code-frame": "^7.0.0", 773 | "@babel/generator": "^7.4.0", 774 | "@babel/helper-function-name": "^7.1.0", 775 | "@babel/helper-split-export-declaration": "^7.4.0", 776 | "@babel/parser": "^7.4.3", 777 | "@babel/types": "^7.4.0", 778 | "debug": "^4.1.0", 779 | "globals": "^11.1.0", 780 | "lodash": "^4.17.11" 781 | }, 782 | "dependencies": { 783 | "debug": { 784 | "version": "4.1.1", 785 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 786 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 787 | "dev": true, 788 | "requires": { 789 | "ms": "^2.1.1" 790 | } 791 | }, 792 | "ms": { 793 | "version": "2.1.1", 794 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 795 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 796 | "dev": true 797 | } 798 | } 799 | }, 800 | "@babel/types": { 801 | "version": "7.4.0", 802 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.0.tgz", 803 | "integrity": "sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA==", 804 | "dev": true, 805 | "requires": { 806 | "esutils": "^2.0.2", 807 | "lodash": "^4.17.11", 808 | "to-fast-properties": "^2.0.0" 809 | } 810 | }, 811 | "@types/node": { 812 | "version": "11.13.6", 813 | "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.6.tgz", 814 | "integrity": "sha512-Xoo/EBzEe8HxTSwaZNLZjaW6M6tA/+GmD3/DZ6uo8qSaolE/9Oarko0oV1fVfrLqOz0tx0nXJB4rdD5c+vixLw==", 815 | "dev": true 816 | }, 817 | "ansi-escapes": { 818 | "version": "3.2.0", 819 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 820 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" 821 | }, 822 | "ansi-styles": { 823 | "version": "3.2.1", 824 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 825 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 826 | "dev": true, 827 | "requires": { 828 | "color-convert": "^1.9.0" 829 | } 830 | }, 831 | "anymatch": { 832 | "version": "2.0.0", 833 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", 834 | "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", 835 | "dev": true, 836 | "optional": true, 837 | "requires": { 838 | "micromatch": "^3.1.4", 839 | "normalize-path": "^2.1.1" 840 | }, 841 | "dependencies": { 842 | "normalize-path": { 843 | "version": "2.1.1", 844 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", 845 | "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 846 | "dev": true, 847 | "optional": true, 848 | "requires": { 849 | "remove-trailing-separator": "^1.0.1" 850 | } 851 | } 852 | } 853 | }, 854 | "arr-diff": { 855 | "version": "4.0.0", 856 | "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", 857 | "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", 858 | "dev": true 859 | }, 860 | "arr-flatten": { 861 | "version": "1.1.0", 862 | "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", 863 | "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", 864 | "dev": true 865 | }, 866 | "arr-union": { 867 | "version": "3.1.0", 868 | "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", 869 | "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 870 | "dev": true 871 | }, 872 | "array-unique": { 873 | "version": "0.3.2", 874 | "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", 875 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 876 | "dev": true 877 | }, 878 | "assign-symbols": { 879 | "version": "1.0.0", 880 | "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", 881 | "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", 882 | "dev": true 883 | }, 884 | "async-each": { 885 | "version": "1.0.3", 886 | "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", 887 | "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", 888 | "dev": true, 889 | "optional": true 890 | }, 891 | "atob": { 892 | "version": "2.1.2", 893 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", 894 | "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", 895 | "dev": true 896 | }, 897 | "balanced-match": { 898 | "version": "1.0.0", 899 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 900 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 901 | "dev": true 902 | }, 903 | "base": { 904 | "version": "0.11.2", 905 | "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", 906 | "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", 907 | "dev": true, 908 | "requires": { 909 | "cache-base": "^1.0.1", 910 | "class-utils": "^0.3.5", 911 | "component-emitter": "^1.2.1", 912 | "define-property": "^1.0.0", 913 | "isobject": "^3.0.1", 914 | "mixin-deep": "^1.2.0", 915 | "pascalcase": "^0.1.1" 916 | }, 917 | "dependencies": { 918 | "define-property": { 919 | "version": "1.0.0", 920 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 921 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 922 | "dev": true, 923 | "requires": { 924 | "is-descriptor": "^1.0.0" 925 | } 926 | }, 927 | "is-accessor-descriptor": { 928 | "version": "1.0.0", 929 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 930 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 931 | "dev": true, 932 | "requires": { 933 | "kind-of": "^6.0.0" 934 | } 935 | }, 936 | "is-data-descriptor": { 937 | "version": "1.0.0", 938 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 939 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 940 | "dev": true, 941 | "requires": { 942 | "kind-of": "^6.0.0" 943 | } 944 | }, 945 | "is-descriptor": { 946 | "version": "1.0.2", 947 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 948 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 949 | "dev": true, 950 | "requires": { 951 | "is-accessor-descriptor": "^1.0.0", 952 | "is-data-descriptor": "^1.0.0", 953 | "kind-of": "^6.0.2" 954 | } 955 | } 956 | } 957 | }, 958 | "binary-extensions": { 959 | "version": "1.13.1", 960 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", 961 | "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", 962 | "dev": true, 963 | "optional": true 964 | }, 965 | "brace-expansion": { 966 | "version": "1.1.11", 967 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 968 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 969 | "dev": true, 970 | "requires": { 971 | "balanced-match": "^1.0.0", 972 | "concat-map": "0.0.1" 973 | } 974 | }, 975 | "braces": { 976 | "version": "2.3.2", 977 | "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", 978 | "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", 979 | "dev": true, 980 | "requires": { 981 | "arr-flatten": "^1.1.0", 982 | "array-unique": "^0.3.2", 983 | "extend-shallow": "^2.0.1", 984 | "fill-range": "^4.0.0", 985 | "isobject": "^3.0.1", 986 | "repeat-element": "^1.1.2", 987 | "snapdragon": "^0.8.1", 988 | "snapdragon-node": "^2.0.1", 989 | "split-string": "^3.0.2", 990 | "to-regex": "^3.0.1" 991 | }, 992 | "dependencies": { 993 | "extend-shallow": { 994 | "version": "2.0.1", 995 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 996 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 997 | "dev": true, 998 | "requires": { 999 | "is-extendable": "^0.1.0" 1000 | } 1001 | } 1002 | } 1003 | }, 1004 | "browserslist": { 1005 | "version": "4.5.5", 1006 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.5.tgz", 1007 | "integrity": "sha512-0QFO1r/2c792Ohkit5XI8Cm8pDtZxgNl2H6HU4mHrpYz7314pEYcsAVVatM0l/YmxPnEzh9VygXouj4gkFUTKA==", 1008 | "dev": true, 1009 | "requires": { 1010 | "caniuse-lite": "^1.0.30000960", 1011 | "electron-to-chromium": "^1.3.124", 1012 | "node-releases": "^1.1.14" 1013 | } 1014 | }, 1015 | "cache-base": { 1016 | "version": "1.0.1", 1017 | "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", 1018 | "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", 1019 | "dev": true, 1020 | "requires": { 1021 | "collection-visit": "^1.0.0", 1022 | "component-emitter": "^1.2.1", 1023 | "get-value": "^2.0.6", 1024 | "has-value": "^1.0.0", 1025 | "isobject": "^3.0.1", 1026 | "set-value": "^2.0.0", 1027 | "to-object-path": "^0.3.0", 1028 | "union-value": "^1.0.0", 1029 | "unset-value": "^1.0.0" 1030 | } 1031 | }, 1032 | "caniuse-lite": { 1033 | "version": "1.0.30000962", 1034 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000962.tgz", 1035 | "integrity": "sha512-WXYsW38HK+6eaj5IZR16Rn91TGhU3OhbwjKZvJ4HN/XBIABLKfbij9Mnd3pM0VEwZSlltWjoWg3I8FQ0DGgNOA==", 1036 | "dev": true 1037 | }, 1038 | "chalk": { 1039 | "version": "2.4.2", 1040 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1041 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1042 | "dev": true, 1043 | "requires": { 1044 | "ansi-styles": "^3.2.1", 1045 | "escape-string-regexp": "^1.0.5", 1046 | "supports-color": "^5.3.0" 1047 | } 1048 | }, 1049 | "chokidar": { 1050 | "version": "2.1.5", 1051 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", 1052 | "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", 1053 | "dev": true, 1054 | "optional": true, 1055 | "requires": { 1056 | "anymatch": "^2.0.0", 1057 | "async-each": "^1.0.1", 1058 | "braces": "^2.3.2", 1059 | "fsevents": "^1.2.7", 1060 | "glob-parent": "^3.1.0", 1061 | "inherits": "^2.0.3", 1062 | "is-binary-path": "^1.0.0", 1063 | "is-glob": "^4.0.0", 1064 | "normalize-path": "^3.0.0", 1065 | "path-is-absolute": "^1.0.0", 1066 | "readdirp": "^2.2.1", 1067 | "upath": "^1.1.1" 1068 | } 1069 | }, 1070 | "class-utils": { 1071 | "version": "0.3.6", 1072 | "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", 1073 | "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", 1074 | "dev": true, 1075 | "requires": { 1076 | "arr-union": "^3.1.0", 1077 | "define-property": "^0.2.5", 1078 | "isobject": "^3.0.0", 1079 | "static-extend": "^0.1.1" 1080 | }, 1081 | "dependencies": { 1082 | "define-property": { 1083 | "version": "0.2.5", 1084 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1085 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1086 | "dev": true, 1087 | "requires": { 1088 | "is-descriptor": "^0.1.0" 1089 | } 1090 | } 1091 | } 1092 | }, 1093 | "collection-visit": { 1094 | "version": "1.0.0", 1095 | "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", 1096 | "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", 1097 | "dev": true, 1098 | "requires": { 1099 | "map-visit": "^1.0.0", 1100 | "object-visit": "^1.0.0" 1101 | } 1102 | }, 1103 | "color-convert": { 1104 | "version": "1.9.3", 1105 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1106 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1107 | "dev": true, 1108 | "requires": { 1109 | "color-name": "1.1.3" 1110 | } 1111 | }, 1112 | "color-name": { 1113 | "version": "1.1.3", 1114 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1115 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 1116 | "dev": true 1117 | }, 1118 | "commander": { 1119 | "version": "2.20.0", 1120 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", 1121 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", 1122 | "dev": true 1123 | }, 1124 | "component-emitter": { 1125 | "version": "1.3.0", 1126 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 1127 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", 1128 | "dev": true 1129 | }, 1130 | "concat-map": { 1131 | "version": "0.0.1", 1132 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1133 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1134 | "dev": true 1135 | }, 1136 | "convert-source-map": { 1137 | "version": "1.6.0", 1138 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", 1139 | "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", 1140 | "dev": true, 1141 | "requires": { 1142 | "safe-buffer": "~5.1.1" 1143 | } 1144 | }, 1145 | "copy-descriptor": { 1146 | "version": "0.1.1", 1147 | "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", 1148 | "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", 1149 | "dev": true 1150 | }, 1151 | "core-js": { 1152 | "version": "3.0.1", 1153 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.0.1.tgz", 1154 | "integrity": "sha512-sco40rF+2KlE0ROMvydjkrVMMG1vYilP2ALoRXcYR4obqbYIuV3Bg+51GEDW+HF8n7NRA+iaA4qD0nD9lo9mew==", 1155 | "dev": true 1156 | }, 1157 | "core-js-compat": { 1158 | "version": "3.0.1", 1159 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.0.1.tgz", 1160 | "integrity": "sha512-2pC3e+Ht/1/gD7Sim/sqzvRplMiRnFQVlPpDVaHtY9l7zZP7knamr3VRD6NyGfHd84MrDC0tAM9ulNxYMW0T3g==", 1161 | "dev": true, 1162 | "requires": { 1163 | "browserslist": "^4.5.4", 1164 | "core-js": "3.0.1", 1165 | "core-js-pure": "3.0.1", 1166 | "semver": "^6.0.0" 1167 | }, 1168 | "dependencies": { 1169 | "semver": { 1170 | "version": "6.0.0", 1171 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", 1172 | "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==", 1173 | "dev": true 1174 | } 1175 | } 1176 | }, 1177 | "core-js-pure": { 1178 | "version": "3.0.1", 1179 | "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.0.1.tgz", 1180 | "integrity": "sha512-mSxeQ6IghKW3MoyF4cz19GJ1cMm7761ON+WObSyLfTu/Jn3x7w4NwNFnrZxgl4MTSvYYepVLNuRtlB4loMwJ5g==", 1181 | "dev": true 1182 | }, 1183 | "core-util-is": { 1184 | "version": "1.0.2", 1185 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1186 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1187 | "dev": true, 1188 | "optional": true 1189 | }, 1190 | "debug": { 1191 | "version": "2.6.9", 1192 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1193 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1194 | "dev": true, 1195 | "requires": { 1196 | "ms": "2.0.0" 1197 | } 1198 | }, 1199 | "decode-uri-component": { 1200 | "version": "0.2.0", 1201 | "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", 1202 | "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", 1203 | "dev": true 1204 | }, 1205 | "define-property": { 1206 | "version": "2.0.2", 1207 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", 1208 | "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", 1209 | "dev": true, 1210 | "requires": { 1211 | "is-descriptor": "^1.0.2", 1212 | "isobject": "^3.0.1" 1213 | }, 1214 | "dependencies": { 1215 | "is-accessor-descriptor": { 1216 | "version": "1.0.0", 1217 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1218 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1219 | "dev": true, 1220 | "requires": { 1221 | "kind-of": "^6.0.0" 1222 | } 1223 | }, 1224 | "is-data-descriptor": { 1225 | "version": "1.0.0", 1226 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1227 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1228 | "dev": true, 1229 | "requires": { 1230 | "kind-of": "^6.0.0" 1231 | } 1232 | }, 1233 | "is-descriptor": { 1234 | "version": "1.0.2", 1235 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1236 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1237 | "dev": true, 1238 | "requires": { 1239 | "is-accessor-descriptor": "^1.0.0", 1240 | "is-data-descriptor": "^1.0.0", 1241 | "kind-of": "^6.0.2" 1242 | } 1243 | } 1244 | } 1245 | }, 1246 | "electron-to-chromium": { 1247 | "version": "1.3.125", 1248 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.125.tgz", 1249 | "integrity": "sha512-XxowpqQxJ4nDwUXHtVtmEhRqBpm2OnjBomZmZtHD0d2Eo0244+Ojezhk3sD/MBSSe2nxCdGQFRXHIsf/LUTL9A==", 1250 | "dev": true 1251 | }, 1252 | "escape-string-regexp": { 1253 | "version": "1.0.5", 1254 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1255 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1256 | "dev": true 1257 | }, 1258 | "esutils": { 1259 | "version": "2.0.2", 1260 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1261 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 1262 | "dev": true 1263 | }, 1264 | "expand-brackets": { 1265 | "version": "2.1.4", 1266 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", 1267 | "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", 1268 | "dev": true, 1269 | "requires": { 1270 | "debug": "^2.3.3", 1271 | "define-property": "^0.2.5", 1272 | "extend-shallow": "^2.0.1", 1273 | "posix-character-classes": "^0.1.0", 1274 | "regex-not": "^1.0.0", 1275 | "snapdragon": "^0.8.1", 1276 | "to-regex": "^3.0.1" 1277 | }, 1278 | "dependencies": { 1279 | "define-property": { 1280 | "version": "0.2.5", 1281 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 1282 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 1283 | "dev": true, 1284 | "requires": { 1285 | "is-descriptor": "^0.1.0" 1286 | } 1287 | }, 1288 | "extend-shallow": { 1289 | "version": "2.0.1", 1290 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1291 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1292 | "dev": true, 1293 | "requires": { 1294 | "is-extendable": "^0.1.0" 1295 | } 1296 | } 1297 | } 1298 | }, 1299 | "extend-shallow": { 1300 | "version": "3.0.2", 1301 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", 1302 | "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", 1303 | "dev": true, 1304 | "requires": { 1305 | "assign-symbols": "^1.0.0", 1306 | "is-extendable": "^1.0.1" 1307 | }, 1308 | "dependencies": { 1309 | "is-extendable": { 1310 | "version": "1.0.1", 1311 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 1312 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 1313 | "dev": true, 1314 | "requires": { 1315 | "is-plain-object": "^2.0.4" 1316 | } 1317 | } 1318 | } 1319 | }, 1320 | "extglob": { 1321 | "version": "2.0.4", 1322 | "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", 1323 | "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", 1324 | "dev": true, 1325 | "requires": { 1326 | "array-unique": "^0.3.2", 1327 | "define-property": "^1.0.0", 1328 | "expand-brackets": "^2.1.4", 1329 | "extend-shallow": "^2.0.1", 1330 | "fragment-cache": "^0.2.1", 1331 | "regex-not": "^1.0.0", 1332 | "snapdragon": "^0.8.1", 1333 | "to-regex": "^3.0.1" 1334 | }, 1335 | "dependencies": { 1336 | "define-property": { 1337 | "version": "1.0.0", 1338 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 1339 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 1340 | "dev": true, 1341 | "requires": { 1342 | "is-descriptor": "^1.0.0" 1343 | } 1344 | }, 1345 | "extend-shallow": { 1346 | "version": "2.0.1", 1347 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1348 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1349 | "dev": true, 1350 | "requires": { 1351 | "is-extendable": "^0.1.0" 1352 | } 1353 | }, 1354 | "is-accessor-descriptor": { 1355 | "version": "1.0.0", 1356 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 1357 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 1358 | "dev": true, 1359 | "requires": { 1360 | "kind-of": "^6.0.0" 1361 | } 1362 | }, 1363 | "is-data-descriptor": { 1364 | "version": "1.0.0", 1365 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 1366 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 1367 | "dev": true, 1368 | "requires": { 1369 | "kind-of": "^6.0.0" 1370 | } 1371 | }, 1372 | "is-descriptor": { 1373 | "version": "1.0.2", 1374 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 1375 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 1376 | "dev": true, 1377 | "requires": { 1378 | "is-accessor-descriptor": "^1.0.0", 1379 | "is-data-descriptor": "^1.0.0", 1380 | "kind-of": "^6.0.2" 1381 | } 1382 | } 1383 | } 1384 | }, 1385 | "fill-range": { 1386 | "version": "4.0.0", 1387 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", 1388 | "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", 1389 | "dev": true, 1390 | "requires": { 1391 | "extend-shallow": "^2.0.1", 1392 | "is-number": "^3.0.0", 1393 | "repeat-string": "^1.6.1", 1394 | "to-regex-range": "^2.1.0" 1395 | }, 1396 | "dependencies": { 1397 | "extend-shallow": { 1398 | "version": "2.0.1", 1399 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 1400 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 1401 | "dev": true, 1402 | "requires": { 1403 | "is-extendable": "^0.1.0" 1404 | } 1405 | } 1406 | } 1407 | }, 1408 | "for-in": { 1409 | "version": "1.0.2", 1410 | "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", 1411 | "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", 1412 | "dev": true 1413 | }, 1414 | "fragment-cache": { 1415 | "version": "0.2.1", 1416 | "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", 1417 | "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", 1418 | "dev": true, 1419 | "requires": { 1420 | "map-cache": "^0.2.2" 1421 | } 1422 | }, 1423 | "fs-readdir-recursive": { 1424 | "version": "1.1.0", 1425 | "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", 1426 | "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", 1427 | "dev": true 1428 | }, 1429 | "fs.realpath": { 1430 | "version": "1.0.0", 1431 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1432 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1433 | "dev": true 1434 | }, 1435 | "fsevents": { 1436 | "version": "1.2.8", 1437 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.8.tgz", 1438 | "integrity": "sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA==", 1439 | "dev": true, 1440 | "optional": true, 1441 | "requires": { 1442 | "nan": "^2.12.1", 1443 | "node-pre-gyp": "^0.12.0" 1444 | }, 1445 | "dependencies": { 1446 | "abbrev": { 1447 | "version": "1.1.1", 1448 | "bundled": true, 1449 | "dev": true, 1450 | "optional": true 1451 | }, 1452 | "ansi-regex": { 1453 | "version": "2.1.1", 1454 | "bundled": true, 1455 | "dev": true 1456 | }, 1457 | "aproba": { 1458 | "version": "1.2.0", 1459 | "bundled": true, 1460 | "dev": true, 1461 | "optional": true 1462 | }, 1463 | "are-we-there-yet": { 1464 | "version": "1.1.5", 1465 | "bundled": true, 1466 | "dev": true, 1467 | "optional": true, 1468 | "requires": { 1469 | "delegates": "^1.0.0", 1470 | "readable-stream": "^2.0.6" 1471 | } 1472 | }, 1473 | "balanced-match": { 1474 | "version": "1.0.0", 1475 | "bundled": true, 1476 | "dev": true 1477 | }, 1478 | "brace-expansion": { 1479 | "version": "1.1.11", 1480 | "bundled": true, 1481 | "dev": true, 1482 | "requires": { 1483 | "balanced-match": "^1.0.0", 1484 | "concat-map": "0.0.1" 1485 | } 1486 | }, 1487 | "chownr": { 1488 | "version": "1.1.1", 1489 | "bundled": true, 1490 | "dev": true, 1491 | "optional": true 1492 | }, 1493 | "code-point-at": { 1494 | "version": "1.1.0", 1495 | "bundled": true, 1496 | "dev": true 1497 | }, 1498 | "concat-map": { 1499 | "version": "0.0.1", 1500 | "bundled": true, 1501 | "dev": true 1502 | }, 1503 | "console-control-strings": { 1504 | "version": "1.1.0", 1505 | "bundled": true, 1506 | "dev": true 1507 | }, 1508 | "core-util-is": { 1509 | "version": "1.0.2", 1510 | "bundled": true, 1511 | "dev": true, 1512 | "optional": true 1513 | }, 1514 | "debug": { 1515 | "version": "4.1.1", 1516 | "bundled": true, 1517 | "dev": true, 1518 | "optional": true, 1519 | "requires": { 1520 | "ms": "^2.1.1" 1521 | } 1522 | }, 1523 | "deep-extend": { 1524 | "version": "0.6.0", 1525 | "bundled": true, 1526 | "dev": true, 1527 | "optional": true 1528 | }, 1529 | "delegates": { 1530 | "version": "1.0.0", 1531 | "bundled": true, 1532 | "dev": true, 1533 | "optional": true 1534 | }, 1535 | "detect-libc": { 1536 | "version": "1.0.3", 1537 | "bundled": true, 1538 | "dev": true, 1539 | "optional": true 1540 | }, 1541 | "fs-minipass": { 1542 | "version": "1.2.5", 1543 | "bundled": true, 1544 | "dev": true, 1545 | "optional": true, 1546 | "requires": { 1547 | "minipass": "^2.2.1" 1548 | } 1549 | }, 1550 | "fs.realpath": { 1551 | "version": "1.0.0", 1552 | "bundled": true, 1553 | "dev": true, 1554 | "optional": true 1555 | }, 1556 | "gauge": { 1557 | "version": "2.7.4", 1558 | "bundled": true, 1559 | "dev": true, 1560 | "optional": true, 1561 | "requires": { 1562 | "aproba": "^1.0.3", 1563 | "console-control-strings": "^1.0.0", 1564 | "has-unicode": "^2.0.0", 1565 | "object-assign": "^4.1.0", 1566 | "signal-exit": "^3.0.0", 1567 | "string-width": "^1.0.1", 1568 | "strip-ansi": "^3.0.1", 1569 | "wide-align": "^1.1.0" 1570 | } 1571 | }, 1572 | "glob": { 1573 | "version": "7.1.3", 1574 | "bundled": true, 1575 | "dev": true, 1576 | "optional": true, 1577 | "requires": { 1578 | "fs.realpath": "^1.0.0", 1579 | "inflight": "^1.0.4", 1580 | "inherits": "2", 1581 | "minimatch": "^3.0.4", 1582 | "once": "^1.3.0", 1583 | "path-is-absolute": "^1.0.0" 1584 | } 1585 | }, 1586 | "has-unicode": { 1587 | "version": "2.0.1", 1588 | "bundled": true, 1589 | "dev": true, 1590 | "optional": true 1591 | }, 1592 | "iconv-lite": { 1593 | "version": "0.4.24", 1594 | "bundled": true, 1595 | "dev": true, 1596 | "optional": true, 1597 | "requires": { 1598 | "safer-buffer": ">= 2.1.2 < 3" 1599 | } 1600 | }, 1601 | "ignore-walk": { 1602 | "version": "3.0.1", 1603 | "bundled": true, 1604 | "dev": true, 1605 | "optional": true, 1606 | "requires": { 1607 | "minimatch": "^3.0.4" 1608 | } 1609 | }, 1610 | "inflight": { 1611 | "version": "1.0.6", 1612 | "bundled": true, 1613 | "dev": true, 1614 | "optional": true, 1615 | "requires": { 1616 | "once": "^1.3.0", 1617 | "wrappy": "1" 1618 | } 1619 | }, 1620 | "inherits": { 1621 | "version": "2.0.3", 1622 | "bundled": true, 1623 | "dev": true 1624 | }, 1625 | "ini": { 1626 | "version": "1.3.5", 1627 | "bundled": true, 1628 | "dev": true, 1629 | "optional": true 1630 | }, 1631 | "is-fullwidth-code-point": { 1632 | "version": "1.0.0", 1633 | "bundled": true, 1634 | "dev": true, 1635 | "requires": { 1636 | "number-is-nan": "^1.0.0" 1637 | } 1638 | }, 1639 | "isarray": { 1640 | "version": "1.0.0", 1641 | "bundled": true, 1642 | "dev": true, 1643 | "optional": true 1644 | }, 1645 | "minimatch": { 1646 | "version": "3.0.4", 1647 | "bundled": true, 1648 | "dev": true, 1649 | "requires": { 1650 | "brace-expansion": "^1.1.7" 1651 | } 1652 | }, 1653 | "minimist": { 1654 | "version": "0.0.8", 1655 | "bundled": true, 1656 | "dev": true 1657 | }, 1658 | "minipass": { 1659 | "version": "2.3.5", 1660 | "bundled": true, 1661 | "dev": true, 1662 | "requires": { 1663 | "safe-buffer": "^5.1.2", 1664 | "yallist": "^3.0.0" 1665 | } 1666 | }, 1667 | "minizlib": { 1668 | "version": "1.2.1", 1669 | "bundled": true, 1670 | "dev": true, 1671 | "optional": true, 1672 | "requires": { 1673 | "minipass": "^2.2.1" 1674 | } 1675 | }, 1676 | "mkdirp": { 1677 | "version": "0.5.1", 1678 | "bundled": true, 1679 | "dev": true, 1680 | "requires": { 1681 | "minimist": "0.0.8" 1682 | } 1683 | }, 1684 | "ms": { 1685 | "version": "2.1.1", 1686 | "bundled": true, 1687 | "dev": true, 1688 | "optional": true 1689 | }, 1690 | "needle": { 1691 | "version": "2.3.0", 1692 | "bundled": true, 1693 | "dev": true, 1694 | "optional": true, 1695 | "requires": { 1696 | "debug": "^4.1.0", 1697 | "iconv-lite": "^0.4.4", 1698 | "sax": "^1.2.4" 1699 | } 1700 | }, 1701 | "node-pre-gyp": { 1702 | "version": "0.12.0", 1703 | "bundled": true, 1704 | "dev": true, 1705 | "optional": true, 1706 | "requires": { 1707 | "detect-libc": "^1.0.2", 1708 | "mkdirp": "^0.5.1", 1709 | "needle": "^2.2.1", 1710 | "nopt": "^4.0.1", 1711 | "npm-packlist": "^1.1.6", 1712 | "npmlog": "^4.0.2", 1713 | "rc": "^1.2.7", 1714 | "rimraf": "^2.6.1", 1715 | "semver": "^5.3.0", 1716 | "tar": "^4" 1717 | } 1718 | }, 1719 | "nopt": { 1720 | "version": "4.0.1", 1721 | "bundled": true, 1722 | "dev": true, 1723 | "optional": true, 1724 | "requires": { 1725 | "abbrev": "1", 1726 | "osenv": "^0.1.4" 1727 | } 1728 | }, 1729 | "npm-bundled": { 1730 | "version": "1.0.6", 1731 | "bundled": true, 1732 | "dev": true, 1733 | "optional": true 1734 | }, 1735 | "npm-packlist": { 1736 | "version": "1.4.1", 1737 | "bundled": true, 1738 | "dev": true, 1739 | "optional": true, 1740 | "requires": { 1741 | "ignore-walk": "^3.0.1", 1742 | "npm-bundled": "^1.0.1" 1743 | } 1744 | }, 1745 | "npmlog": { 1746 | "version": "4.1.2", 1747 | "bundled": true, 1748 | "dev": true, 1749 | "optional": true, 1750 | "requires": { 1751 | "are-we-there-yet": "~1.1.2", 1752 | "console-control-strings": "~1.1.0", 1753 | "gauge": "~2.7.3", 1754 | "set-blocking": "~2.0.0" 1755 | } 1756 | }, 1757 | "number-is-nan": { 1758 | "version": "1.0.1", 1759 | "bundled": true, 1760 | "dev": true 1761 | }, 1762 | "object-assign": { 1763 | "version": "4.1.1", 1764 | "bundled": true, 1765 | "dev": true, 1766 | "optional": true 1767 | }, 1768 | "once": { 1769 | "version": "1.4.0", 1770 | "bundled": true, 1771 | "dev": true, 1772 | "requires": { 1773 | "wrappy": "1" 1774 | } 1775 | }, 1776 | "os-homedir": { 1777 | "version": "1.0.2", 1778 | "bundled": true, 1779 | "dev": true, 1780 | "optional": true 1781 | }, 1782 | "os-tmpdir": { 1783 | "version": "1.0.2", 1784 | "bundled": true, 1785 | "dev": true, 1786 | "optional": true 1787 | }, 1788 | "osenv": { 1789 | "version": "0.1.5", 1790 | "bundled": true, 1791 | "dev": true, 1792 | "optional": true, 1793 | "requires": { 1794 | "os-homedir": "^1.0.0", 1795 | "os-tmpdir": "^1.0.0" 1796 | } 1797 | }, 1798 | "path-is-absolute": { 1799 | "version": "1.0.1", 1800 | "bundled": true, 1801 | "dev": true, 1802 | "optional": true 1803 | }, 1804 | "process-nextick-args": { 1805 | "version": "2.0.0", 1806 | "bundled": true, 1807 | "dev": true, 1808 | "optional": true 1809 | }, 1810 | "rc": { 1811 | "version": "1.2.8", 1812 | "bundled": true, 1813 | "dev": true, 1814 | "optional": true, 1815 | "requires": { 1816 | "deep-extend": "^0.6.0", 1817 | "ini": "~1.3.0", 1818 | "minimist": "^1.2.0", 1819 | "strip-json-comments": "~2.0.1" 1820 | }, 1821 | "dependencies": { 1822 | "minimist": { 1823 | "version": "1.2.0", 1824 | "bundled": true, 1825 | "dev": true, 1826 | "optional": true 1827 | } 1828 | } 1829 | }, 1830 | "readable-stream": { 1831 | "version": "2.3.6", 1832 | "bundled": true, 1833 | "dev": true, 1834 | "optional": true, 1835 | "requires": { 1836 | "core-util-is": "~1.0.0", 1837 | "inherits": "~2.0.3", 1838 | "isarray": "~1.0.0", 1839 | "process-nextick-args": "~2.0.0", 1840 | "safe-buffer": "~5.1.1", 1841 | "string_decoder": "~1.1.1", 1842 | "util-deprecate": "~1.0.1" 1843 | } 1844 | }, 1845 | "rimraf": { 1846 | "version": "2.6.3", 1847 | "bundled": true, 1848 | "dev": true, 1849 | "optional": true, 1850 | "requires": { 1851 | "glob": "^7.1.3" 1852 | } 1853 | }, 1854 | "safe-buffer": { 1855 | "version": "5.1.2", 1856 | "bundled": true, 1857 | "dev": true 1858 | }, 1859 | "safer-buffer": { 1860 | "version": "2.1.2", 1861 | "bundled": true, 1862 | "dev": true, 1863 | "optional": true 1864 | }, 1865 | "sax": { 1866 | "version": "1.2.4", 1867 | "bundled": true, 1868 | "dev": true, 1869 | "optional": true 1870 | }, 1871 | "semver": { 1872 | "version": "5.7.0", 1873 | "bundled": true, 1874 | "dev": true, 1875 | "optional": true 1876 | }, 1877 | "set-blocking": { 1878 | "version": "2.0.0", 1879 | "bundled": true, 1880 | "dev": true, 1881 | "optional": true 1882 | }, 1883 | "signal-exit": { 1884 | "version": "3.0.2", 1885 | "bundled": true, 1886 | "dev": true, 1887 | "optional": true 1888 | }, 1889 | "string-width": { 1890 | "version": "1.0.2", 1891 | "bundled": true, 1892 | "dev": true, 1893 | "requires": { 1894 | "code-point-at": "^1.0.0", 1895 | "is-fullwidth-code-point": "^1.0.0", 1896 | "strip-ansi": "^3.0.0" 1897 | } 1898 | }, 1899 | "string_decoder": { 1900 | "version": "1.1.1", 1901 | "bundled": true, 1902 | "dev": true, 1903 | "optional": true, 1904 | "requires": { 1905 | "safe-buffer": "~5.1.0" 1906 | } 1907 | }, 1908 | "strip-ansi": { 1909 | "version": "3.0.1", 1910 | "bundled": true, 1911 | "dev": true, 1912 | "requires": { 1913 | "ansi-regex": "^2.0.0" 1914 | } 1915 | }, 1916 | "strip-json-comments": { 1917 | "version": "2.0.1", 1918 | "bundled": true, 1919 | "dev": true, 1920 | "optional": true 1921 | }, 1922 | "tar": { 1923 | "version": "4.4.8", 1924 | "bundled": true, 1925 | "dev": true, 1926 | "optional": true, 1927 | "requires": { 1928 | "chownr": "^1.1.1", 1929 | "fs-minipass": "^1.2.5", 1930 | "minipass": "^2.3.4", 1931 | "minizlib": "^1.1.1", 1932 | "mkdirp": "^0.5.0", 1933 | "safe-buffer": "^5.1.2", 1934 | "yallist": "^3.0.2" 1935 | } 1936 | }, 1937 | "util-deprecate": { 1938 | "version": "1.0.2", 1939 | "bundled": true, 1940 | "dev": true, 1941 | "optional": true 1942 | }, 1943 | "wide-align": { 1944 | "version": "1.1.3", 1945 | "bundled": true, 1946 | "dev": true, 1947 | "optional": true, 1948 | "requires": { 1949 | "string-width": "^1.0.2 || 2" 1950 | } 1951 | }, 1952 | "wrappy": { 1953 | "version": "1.0.2", 1954 | "bundled": true, 1955 | "dev": true 1956 | }, 1957 | "yallist": { 1958 | "version": "3.0.3", 1959 | "bundled": true, 1960 | "dev": true 1961 | } 1962 | } 1963 | }, 1964 | "get-value": { 1965 | "version": "2.0.6", 1966 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", 1967 | "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", 1968 | "dev": true 1969 | }, 1970 | "glob": { 1971 | "version": "7.1.3", 1972 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", 1973 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 1974 | "dev": true, 1975 | "requires": { 1976 | "fs.realpath": "^1.0.0", 1977 | "inflight": "^1.0.4", 1978 | "inherits": "2", 1979 | "minimatch": "^3.0.4", 1980 | "once": "^1.3.0", 1981 | "path-is-absolute": "^1.0.0" 1982 | } 1983 | }, 1984 | "glob-parent": { 1985 | "version": "3.1.0", 1986 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", 1987 | "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 1988 | "dev": true, 1989 | "optional": true, 1990 | "requires": { 1991 | "is-glob": "^3.1.0", 1992 | "path-dirname": "^1.0.0" 1993 | }, 1994 | "dependencies": { 1995 | "is-glob": { 1996 | "version": "3.1.0", 1997 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 1998 | "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 1999 | "dev": true, 2000 | "optional": true, 2001 | "requires": { 2002 | "is-extglob": "^2.1.0" 2003 | } 2004 | } 2005 | } 2006 | }, 2007 | "globals": { 2008 | "version": "11.11.0", 2009 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", 2010 | "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==", 2011 | "dev": true 2012 | }, 2013 | "graceful-fs": { 2014 | "version": "4.1.15", 2015 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", 2016 | "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", 2017 | "dev": true 2018 | }, 2019 | "has-flag": { 2020 | "version": "3.0.0", 2021 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2022 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 2023 | "dev": true 2024 | }, 2025 | "has-value": { 2026 | "version": "1.0.0", 2027 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", 2028 | "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", 2029 | "dev": true, 2030 | "requires": { 2031 | "get-value": "^2.0.6", 2032 | "has-values": "^1.0.0", 2033 | "isobject": "^3.0.0" 2034 | } 2035 | }, 2036 | "has-values": { 2037 | "version": "1.0.0", 2038 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", 2039 | "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", 2040 | "dev": true, 2041 | "requires": { 2042 | "is-number": "^3.0.0", 2043 | "kind-of": "^4.0.0" 2044 | }, 2045 | "dependencies": { 2046 | "kind-of": { 2047 | "version": "4.0.0", 2048 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", 2049 | "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", 2050 | "dev": true, 2051 | "requires": { 2052 | "is-buffer": "^1.1.5" 2053 | } 2054 | } 2055 | } 2056 | }, 2057 | "inflight": { 2058 | "version": "1.0.6", 2059 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 2060 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 2061 | "dev": true, 2062 | "requires": { 2063 | "once": "^1.3.0", 2064 | "wrappy": "1" 2065 | } 2066 | }, 2067 | "inherits": { 2068 | "version": "2.0.3", 2069 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 2070 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 2071 | "dev": true 2072 | }, 2073 | "invariant": { 2074 | "version": "2.2.4", 2075 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 2076 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 2077 | "dev": true, 2078 | "requires": { 2079 | "loose-envify": "^1.0.0" 2080 | } 2081 | }, 2082 | "is-accessor-descriptor": { 2083 | "version": "0.1.6", 2084 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", 2085 | "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", 2086 | "dev": true, 2087 | "requires": { 2088 | "kind-of": "^3.0.2" 2089 | }, 2090 | "dependencies": { 2091 | "kind-of": { 2092 | "version": "3.2.2", 2093 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2094 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2095 | "dev": true, 2096 | "requires": { 2097 | "is-buffer": "^1.1.5" 2098 | } 2099 | } 2100 | } 2101 | }, 2102 | "is-binary-path": { 2103 | "version": "1.0.1", 2104 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", 2105 | "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", 2106 | "dev": true, 2107 | "optional": true, 2108 | "requires": { 2109 | "binary-extensions": "^1.0.0" 2110 | } 2111 | }, 2112 | "is-buffer": { 2113 | "version": "1.1.6", 2114 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 2115 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", 2116 | "dev": true 2117 | }, 2118 | "is-data-descriptor": { 2119 | "version": "0.1.4", 2120 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", 2121 | "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", 2122 | "dev": true, 2123 | "requires": { 2124 | "kind-of": "^3.0.2" 2125 | }, 2126 | "dependencies": { 2127 | "kind-of": { 2128 | "version": "3.2.2", 2129 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2130 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2131 | "dev": true, 2132 | "requires": { 2133 | "is-buffer": "^1.1.5" 2134 | } 2135 | } 2136 | } 2137 | }, 2138 | "is-descriptor": { 2139 | "version": "0.1.6", 2140 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", 2141 | "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", 2142 | "dev": true, 2143 | "requires": { 2144 | "is-accessor-descriptor": "^0.1.6", 2145 | "is-data-descriptor": "^0.1.4", 2146 | "kind-of": "^5.0.0" 2147 | }, 2148 | "dependencies": { 2149 | "kind-of": { 2150 | "version": "5.1.0", 2151 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", 2152 | "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", 2153 | "dev": true 2154 | } 2155 | } 2156 | }, 2157 | "is-extendable": { 2158 | "version": "0.1.1", 2159 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", 2160 | "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", 2161 | "dev": true 2162 | }, 2163 | "is-extglob": { 2164 | "version": "2.1.1", 2165 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2166 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 2167 | "dev": true 2168 | }, 2169 | "is-glob": { 2170 | "version": "4.0.1", 2171 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 2172 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 2173 | "dev": true, 2174 | "optional": true, 2175 | "requires": { 2176 | "is-extglob": "^2.1.1" 2177 | } 2178 | }, 2179 | "is-number": { 2180 | "version": "3.0.0", 2181 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 2182 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 2183 | "dev": true, 2184 | "requires": { 2185 | "kind-of": "^3.0.2" 2186 | }, 2187 | "dependencies": { 2188 | "kind-of": { 2189 | "version": "3.2.2", 2190 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2191 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2192 | "dev": true, 2193 | "requires": { 2194 | "is-buffer": "^1.1.5" 2195 | } 2196 | } 2197 | } 2198 | }, 2199 | "is-plain-obj": { 2200 | "version": "1.1.0", 2201 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", 2202 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", 2203 | "dev": true 2204 | }, 2205 | "is-plain-object": { 2206 | "version": "2.0.4", 2207 | "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", 2208 | "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", 2209 | "dev": true, 2210 | "requires": { 2211 | "isobject": "^3.0.1" 2212 | } 2213 | }, 2214 | "is-windows": { 2215 | "version": "1.0.2", 2216 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", 2217 | "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", 2218 | "dev": true 2219 | }, 2220 | "isarray": { 2221 | "version": "1.0.0", 2222 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2223 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 2224 | "dev": true 2225 | }, 2226 | "isobject": { 2227 | "version": "3.0.1", 2228 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", 2229 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", 2230 | "dev": true 2231 | }, 2232 | "js-levenshtein": { 2233 | "version": "1.1.6", 2234 | "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", 2235 | "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", 2236 | "dev": true 2237 | }, 2238 | "js-tokens": { 2239 | "version": "4.0.0", 2240 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2241 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 2242 | "dev": true 2243 | }, 2244 | "jsesc": { 2245 | "version": "2.5.2", 2246 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2247 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 2248 | "dev": true 2249 | }, 2250 | "json5": { 2251 | "version": "2.1.0", 2252 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", 2253 | "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", 2254 | "dev": true, 2255 | "requires": { 2256 | "minimist": "^1.2.0" 2257 | }, 2258 | "dependencies": { 2259 | "minimist": { 2260 | "version": "1.2.0", 2261 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2262 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", 2263 | "dev": true 2264 | } 2265 | } 2266 | }, 2267 | "kind-of": { 2268 | "version": "6.0.2", 2269 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", 2270 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", 2271 | "dev": true 2272 | }, 2273 | "lodash": { 2274 | "version": "4.17.11", 2275 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 2276 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 2277 | "dev": true 2278 | }, 2279 | "loose-envify": { 2280 | "version": "1.4.0", 2281 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2282 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2283 | "dev": true, 2284 | "requires": { 2285 | "js-tokens": "^3.0.0 || ^4.0.0" 2286 | } 2287 | }, 2288 | "map-cache": { 2289 | "version": "0.2.2", 2290 | "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", 2291 | "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", 2292 | "dev": true 2293 | }, 2294 | "map-visit": { 2295 | "version": "1.0.0", 2296 | "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", 2297 | "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", 2298 | "dev": true, 2299 | "requires": { 2300 | "object-visit": "^1.0.0" 2301 | } 2302 | }, 2303 | "micromatch": { 2304 | "version": "3.1.10", 2305 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", 2306 | "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", 2307 | "dev": true, 2308 | "requires": { 2309 | "arr-diff": "^4.0.0", 2310 | "array-unique": "^0.3.2", 2311 | "braces": "^2.3.1", 2312 | "define-property": "^2.0.2", 2313 | "extend-shallow": "^3.0.2", 2314 | "extglob": "^2.0.4", 2315 | "fragment-cache": "^0.2.1", 2316 | "kind-of": "^6.0.2", 2317 | "nanomatch": "^1.2.9", 2318 | "object.pick": "^1.3.0", 2319 | "regex-not": "^1.0.0", 2320 | "snapdragon": "^0.8.1", 2321 | "to-regex": "^3.0.2" 2322 | } 2323 | }, 2324 | "minimatch": { 2325 | "version": "3.0.4", 2326 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2327 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2328 | "dev": true, 2329 | "requires": { 2330 | "brace-expansion": "^1.1.7" 2331 | } 2332 | }, 2333 | "minimist": { 2334 | "version": "0.0.8", 2335 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2336 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 2337 | "dev": true 2338 | }, 2339 | "mixin-deep": { 2340 | "version": "1.3.1", 2341 | "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", 2342 | "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", 2343 | "dev": true, 2344 | "requires": { 2345 | "for-in": "^1.0.2", 2346 | "is-extendable": "^1.0.1" 2347 | }, 2348 | "dependencies": { 2349 | "is-extendable": { 2350 | "version": "1.0.1", 2351 | "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", 2352 | "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", 2353 | "dev": true, 2354 | "requires": { 2355 | "is-plain-object": "^2.0.4" 2356 | } 2357 | } 2358 | } 2359 | }, 2360 | "mkdirp": { 2361 | "version": "0.5.1", 2362 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2363 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2364 | "dev": true, 2365 | "requires": { 2366 | "minimist": "0.0.8" 2367 | } 2368 | }, 2369 | "ms": { 2370 | "version": "2.0.0", 2371 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2372 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 2373 | "dev": true 2374 | }, 2375 | "nan": { 2376 | "version": "2.13.2", 2377 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", 2378 | "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", 2379 | "dev": true, 2380 | "optional": true 2381 | }, 2382 | "nanomatch": { 2383 | "version": "1.2.13", 2384 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", 2385 | "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", 2386 | "dev": true, 2387 | "requires": { 2388 | "arr-diff": "^4.0.0", 2389 | "array-unique": "^0.3.2", 2390 | "define-property": "^2.0.2", 2391 | "extend-shallow": "^3.0.2", 2392 | "fragment-cache": "^0.2.1", 2393 | "is-windows": "^1.0.2", 2394 | "kind-of": "^6.0.2", 2395 | "object.pick": "^1.3.0", 2396 | "regex-not": "^1.0.0", 2397 | "snapdragon": "^0.8.1", 2398 | "to-regex": "^3.0.1" 2399 | } 2400 | }, 2401 | "node-releases": { 2402 | "version": "1.1.15", 2403 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.15.tgz", 2404 | "integrity": "sha512-cKV097BQaZr8LTSRUa2+oc/aX5L8UkZtPQrMSTgiJEeaW7ymTDCoRaGCoaTqk0lqnalcoSHu4wjSl0Cmj2+bMw==", 2405 | "dev": true, 2406 | "requires": { 2407 | "semver": "^5.3.0" 2408 | } 2409 | }, 2410 | "normalize-path": { 2411 | "version": "3.0.0", 2412 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2413 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2414 | "dev": true, 2415 | "optional": true 2416 | }, 2417 | "object-copy": { 2418 | "version": "0.1.0", 2419 | "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 2420 | "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", 2421 | "dev": true, 2422 | "requires": { 2423 | "copy-descriptor": "^0.1.0", 2424 | "define-property": "^0.2.5", 2425 | "kind-of": "^3.0.3" 2426 | }, 2427 | "dependencies": { 2428 | "define-property": { 2429 | "version": "0.2.5", 2430 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 2431 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 2432 | "dev": true, 2433 | "requires": { 2434 | "is-descriptor": "^0.1.0" 2435 | } 2436 | }, 2437 | "kind-of": { 2438 | "version": "3.2.2", 2439 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2440 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2441 | "dev": true, 2442 | "requires": { 2443 | "is-buffer": "^1.1.5" 2444 | } 2445 | } 2446 | } 2447 | }, 2448 | "object-visit": { 2449 | "version": "1.0.1", 2450 | "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", 2451 | "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", 2452 | "dev": true, 2453 | "requires": { 2454 | "isobject": "^3.0.0" 2455 | } 2456 | }, 2457 | "object.pick": { 2458 | "version": "1.3.0", 2459 | "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", 2460 | "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", 2461 | "dev": true, 2462 | "requires": { 2463 | "isobject": "^3.0.1" 2464 | } 2465 | }, 2466 | "once": { 2467 | "version": "1.4.0", 2468 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2469 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2470 | "dev": true, 2471 | "requires": { 2472 | "wrappy": "1" 2473 | } 2474 | }, 2475 | "output-file-sync": { 2476 | "version": "2.0.1", 2477 | "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", 2478 | "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", 2479 | "dev": true, 2480 | "requires": { 2481 | "graceful-fs": "^4.1.11", 2482 | "is-plain-obj": "^1.1.0", 2483 | "mkdirp": "^0.5.1" 2484 | } 2485 | }, 2486 | "pascalcase": { 2487 | "version": "0.1.1", 2488 | "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", 2489 | "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", 2490 | "dev": true 2491 | }, 2492 | "path-dirname": { 2493 | "version": "1.0.2", 2494 | "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", 2495 | "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", 2496 | "dev": true, 2497 | "optional": true 2498 | }, 2499 | "path-is-absolute": { 2500 | "version": "1.0.1", 2501 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2502 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2503 | "dev": true 2504 | }, 2505 | "path-parse": { 2506 | "version": "1.0.6", 2507 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 2508 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 2509 | "dev": true 2510 | }, 2511 | "posix-character-classes": { 2512 | "version": "0.1.1", 2513 | "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", 2514 | "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", 2515 | "dev": true 2516 | }, 2517 | "private": { 2518 | "version": "0.1.8", 2519 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 2520 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", 2521 | "dev": true 2522 | }, 2523 | "process-nextick-args": { 2524 | "version": "2.0.0", 2525 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 2526 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", 2527 | "dev": true, 2528 | "optional": true 2529 | }, 2530 | "readable-stream": { 2531 | "version": "2.3.6", 2532 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 2533 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 2534 | "dev": true, 2535 | "optional": true, 2536 | "requires": { 2537 | "core-util-is": "~1.0.0", 2538 | "inherits": "~2.0.3", 2539 | "isarray": "~1.0.0", 2540 | "process-nextick-args": "~2.0.0", 2541 | "safe-buffer": "~5.1.1", 2542 | "string_decoder": "~1.1.1", 2543 | "util-deprecate": "~1.0.1" 2544 | } 2545 | }, 2546 | "readdirp": { 2547 | "version": "2.2.1", 2548 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", 2549 | "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", 2550 | "dev": true, 2551 | "optional": true, 2552 | "requires": { 2553 | "graceful-fs": "^4.1.11", 2554 | "micromatch": "^3.1.10", 2555 | "readable-stream": "^2.0.2" 2556 | } 2557 | }, 2558 | "regenerate": { 2559 | "version": "1.4.0", 2560 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", 2561 | "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", 2562 | "dev": true 2563 | }, 2564 | "regenerate-unicode-properties": { 2565 | "version": "8.0.2", 2566 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz", 2567 | "integrity": "sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ==", 2568 | "dev": true, 2569 | "requires": { 2570 | "regenerate": "^1.4.0" 2571 | } 2572 | }, 2573 | "regenerator-transform": { 2574 | "version": "0.13.4", 2575 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", 2576 | "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==", 2577 | "dev": true, 2578 | "requires": { 2579 | "private": "^0.1.6" 2580 | } 2581 | }, 2582 | "regex-not": { 2583 | "version": "1.0.2", 2584 | "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", 2585 | "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", 2586 | "dev": true, 2587 | "requires": { 2588 | "extend-shallow": "^3.0.2", 2589 | "safe-regex": "^1.1.0" 2590 | } 2591 | }, 2592 | "regexp-tree": { 2593 | "version": "0.1.5", 2594 | "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.5.tgz", 2595 | "integrity": "sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ==", 2596 | "dev": true 2597 | }, 2598 | "regexpu-core": { 2599 | "version": "4.5.4", 2600 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", 2601 | "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", 2602 | "dev": true, 2603 | "requires": { 2604 | "regenerate": "^1.4.0", 2605 | "regenerate-unicode-properties": "^8.0.2", 2606 | "regjsgen": "^0.5.0", 2607 | "regjsparser": "^0.6.0", 2608 | "unicode-match-property-ecmascript": "^1.0.4", 2609 | "unicode-match-property-value-ecmascript": "^1.1.0" 2610 | } 2611 | }, 2612 | "regjsgen": { 2613 | "version": "0.5.0", 2614 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", 2615 | "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", 2616 | "dev": true 2617 | }, 2618 | "regjsparser": { 2619 | "version": "0.6.0", 2620 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", 2621 | "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", 2622 | "dev": true, 2623 | "requires": { 2624 | "jsesc": "~0.5.0" 2625 | }, 2626 | "dependencies": { 2627 | "jsesc": { 2628 | "version": "0.5.0", 2629 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 2630 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 2631 | "dev": true 2632 | } 2633 | } 2634 | }, 2635 | "remove-trailing-separator": { 2636 | "version": "1.1.0", 2637 | "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", 2638 | "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", 2639 | "dev": true, 2640 | "optional": true 2641 | }, 2642 | "repeat-element": { 2643 | "version": "1.1.3", 2644 | "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", 2645 | "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", 2646 | "dev": true 2647 | }, 2648 | "repeat-string": { 2649 | "version": "1.6.1", 2650 | "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", 2651 | "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", 2652 | "dev": true 2653 | }, 2654 | "resolve": { 2655 | "version": "1.10.0", 2656 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", 2657 | "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", 2658 | "dev": true, 2659 | "requires": { 2660 | "path-parse": "^1.0.6" 2661 | } 2662 | }, 2663 | "resolve-url": { 2664 | "version": "0.2.1", 2665 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 2666 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", 2667 | "dev": true 2668 | }, 2669 | "ret": { 2670 | "version": "0.1.15", 2671 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", 2672 | "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 2673 | "dev": true 2674 | }, 2675 | "rimraf": { 2676 | "version": "2.6.3", 2677 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 2678 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 2679 | "dev": true, 2680 | "requires": { 2681 | "glob": "^7.1.3" 2682 | } 2683 | }, 2684 | "safe-buffer": { 2685 | "version": "5.1.2", 2686 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2687 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2688 | "dev": true 2689 | }, 2690 | "safe-regex": { 2691 | "version": "1.1.0", 2692 | "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", 2693 | "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", 2694 | "dev": true, 2695 | "requires": { 2696 | "ret": "~0.1.10" 2697 | } 2698 | }, 2699 | "semver": { 2700 | "version": "5.7.0", 2701 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 2702 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", 2703 | "dev": true 2704 | }, 2705 | "set-value": { 2706 | "version": "2.0.0", 2707 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", 2708 | "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", 2709 | "dev": true, 2710 | "requires": { 2711 | "extend-shallow": "^2.0.1", 2712 | "is-extendable": "^0.1.1", 2713 | "is-plain-object": "^2.0.3", 2714 | "split-string": "^3.0.1" 2715 | }, 2716 | "dependencies": { 2717 | "extend-shallow": { 2718 | "version": "2.0.1", 2719 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 2720 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 2721 | "dev": true, 2722 | "requires": { 2723 | "is-extendable": "^0.1.0" 2724 | } 2725 | } 2726 | } 2727 | }, 2728 | "slash": { 2729 | "version": "2.0.0", 2730 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", 2731 | "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", 2732 | "dev": true 2733 | }, 2734 | "snapdragon": { 2735 | "version": "0.8.2", 2736 | "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", 2737 | "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", 2738 | "dev": true, 2739 | "requires": { 2740 | "base": "^0.11.1", 2741 | "debug": "^2.2.0", 2742 | "define-property": "^0.2.5", 2743 | "extend-shallow": "^2.0.1", 2744 | "map-cache": "^0.2.2", 2745 | "source-map": "^0.5.6", 2746 | "source-map-resolve": "^0.5.0", 2747 | "use": "^3.1.0" 2748 | }, 2749 | "dependencies": { 2750 | "define-property": { 2751 | "version": "0.2.5", 2752 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 2753 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 2754 | "dev": true, 2755 | "requires": { 2756 | "is-descriptor": "^0.1.0" 2757 | } 2758 | }, 2759 | "extend-shallow": { 2760 | "version": "2.0.1", 2761 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 2762 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 2763 | "dev": true, 2764 | "requires": { 2765 | "is-extendable": "^0.1.0" 2766 | } 2767 | } 2768 | } 2769 | }, 2770 | "snapdragon-node": { 2771 | "version": "2.1.1", 2772 | "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", 2773 | "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", 2774 | "dev": true, 2775 | "requires": { 2776 | "define-property": "^1.0.0", 2777 | "isobject": "^3.0.0", 2778 | "snapdragon-util": "^3.0.1" 2779 | }, 2780 | "dependencies": { 2781 | "define-property": { 2782 | "version": "1.0.0", 2783 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 2784 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 2785 | "dev": true, 2786 | "requires": { 2787 | "is-descriptor": "^1.0.0" 2788 | } 2789 | }, 2790 | "is-accessor-descriptor": { 2791 | "version": "1.0.0", 2792 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 2793 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 2794 | "dev": true, 2795 | "requires": { 2796 | "kind-of": "^6.0.0" 2797 | } 2798 | }, 2799 | "is-data-descriptor": { 2800 | "version": "1.0.0", 2801 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 2802 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 2803 | "dev": true, 2804 | "requires": { 2805 | "kind-of": "^6.0.0" 2806 | } 2807 | }, 2808 | "is-descriptor": { 2809 | "version": "1.0.2", 2810 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 2811 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 2812 | "dev": true, 2813 | "requires": { 2814 | "is-accessor-descriptor": "^1.0.0", 2815 | "is-data-descriptor": "^1.0.0", 2816 | "kind-of": "^6.0.2" 2817 | } 2818 | } 2819 | } 2820 | }, 2821 | "snapdragon-util": { 2822 | "version": "3.0.1", 2823 | "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", 2824 | "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", 2825 | "dev": true, 2826 | "requires": { 2827 | "kind-of": "^3.2.0" 2828 | }, 2829 | "dependencies": { 2830 | "kind-of": { 2831 | "version": "3.2.2", 2832 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2833 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2834 | "dev": true, 2835 | "requires": { 2836 | "is-buffer": "^1.1.5" 2837 | } 2838 | } 2839 | } 2840 | }, 2841 | "source-map": { 2842 | "version": "0.5.7", 2843 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2844 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 2845 | "dev": true 2846 | }, 2847 | "source-map-resolve": { 2848 | "version": "0.5.2", 2849 | "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", 2850 | "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", 2851 | "dev": true, 2852 | "requires": { 2853 | "atob": "^2.1.1", 2854 | "decode-uri-component": "^0.2.0", 2855 | "resolve-url": "^0.2.1", 2856 | "source-map-url": "^0.4.0", 2857 | "urix": "^0.1.0" 2858 | } 2859 | }, 2860 | "source-map-url": { 2861 | "version": "0.4.0", 2862 | "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", 2863 | "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", 2864 | "dev": true 2865 | }, 2866 | "split-string": { 2867 | "version": "3.1.0", 2868 | "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", 2869 | "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", 2870 | "dev": true, 2871 | "requires": { 2872 | "extend-shallow": "^3.0.0" 2873 | } 2874 | }, 2875 | "static-extend": { 2876 | "version": "0.1.2", 2877 | "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", 2878 | "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", 2879 | "dev": true, 2880 | "requires": { 2881 | "define-property": "^0.2.5", 2882 | "object-copy": "^0.1.0" 2883 | }, 2884 | "dependencies": { 2885 | "define-property": { 2886 | "version": "0.2.5", 2887 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", 2888 | "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", 2889 | "dev": true, 2890 | "requires": { 2891 | "is-descriptor": "^0.1.0" 2892 | } 2893 | } 2894 | } 2895 | }, 2896 | "string_decoder": { 2897 | "version": "1.1.1", 2898 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2899 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2900 | "dev": true, 2901 | "optional": true, 2902 | "requires": { 2903 | "safe-buffer": "~5.1.0" 2904 | } 2905 | }, 2906 | "supports-color": { 2907 | "version": "5.5.0", 2908 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2909 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2910 | "dev": true, 2911 | "requires": { 2912 | "has-flag": "^3.0.0" 2913 | } 2914 | }, 2915 | "to-fast-properties": { 2916 | "version": "2.0.0", 2917 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2918 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 2919 | "dev": true 2920 | }, 2921 | "to-object-path": { 2922 | "version": "0.3.0", 2923 | "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", 2924 | "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", 2925 | "dev": true, 2926 | "requires": { 2927 | "kind-of": "^3.0.2" 2928 | }, 2929 | "dependencies": { 2930 | "kind-of": { 2931 | "version": "3.2.2", 2932 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 2933 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 2934 | "dev": true, 2935 | "requires": { 2936 | "is-buffer": "^1.1.5" 2937 | } 2938 | } 2939 | } 2940 | }, 2941 | "to-regex": { 2942 | "version": "3.0.2", 2943 | "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", 2944 | "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", 2945 | "dev": true, 2946 | "requires": { 2947 | "define-property": "^2.0.2", 2948 | "extend-shallow": "^3.0.2", 2949 | "regex-not": "^1.0.2", 2950 | "safe-regex": "^1.1.0" 2951 | } 2952 | }, 2953 | "to-regex-range": { 2954 | "version": "2.1.1", 2955 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", 2956 | "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", 2957 | "dev": true, 2958 | "requires": { 2959 | "is-number": "^3.0.0", 2960 | "repeat-string": "^1.6.1" 2961 | } 2962 | }, 2963 | "trim-right": { 2964 | "version": "1.0.1", 2965 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 2966 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", 2967 | "dev": true 2968 | }, 2969 | "unicode-canonical-property-names-ecmascript": { 2970 | "version": "1.0.4", 2971 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", 2972 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", 2973 | "dev": true 2974 | }, 2975 | "unicode-match-property-ecmascript": { 2976 | "version": "1.0.4", 2977 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", 2978 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", 2979 | "dev": true, 2980 | "requires": { 2981 | "unicode-canonical-property-names-ecmascript": "^1.0.4", 2982 | "unicode-property-aliases-ecmascript": "^1.0.4" 2983 | } 2984 | }, 2985 | "unicode-match-property-value-ecmascript": { 2986 | "version": "1.1.0", 2987 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", 2988 | "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", 2989 | "dev": true 2990 | }, 2991 | "unicode-property-aliases-ecmascript": { 2992 | "version": "1.0.5", 2993 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", 2994 | "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", 2995 | "dev": true 2996 | }, 2997 | "union-value": { 2998 | "version": "1.0.0", 2999 | "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", 3000 | "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", 3001 | "dev": true, 3002 | "requires": { 3003 | "arr-union": "^3.1.0", 3004 | "get-value": "^2.0.6", 3005 | "is-extendable": "^0.1.1", 3006 | "set-value": "^0.4.3" 3007 | }, 3008 | "dependencies": { 3009 | "extend-shallow": { 3010 | "version": "2.0.1", 3011 | "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", 3012 | "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 3013 | "dev": true, 3014 | "requires": { 3015 | "is-extendable": "^0.1.0" 3016 | } 3017 | }, 3018 | "set-value": { 3019 | "version": "0.4.3", 3020 | "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", 3021 | "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", 3022 | "dev": true, 3023 | "requires": { 3024 | "extend-shallow": "^2.0.1", 3025 | "is-extendable": "^0.1.1", 3026 | "is-plain-object": "^2.0.1", 3027 | "to-object-path": "^0.3.0" 3028 | } 3029 | } 3030 | } 3031 | }, 3032 | "unset-value": { 3033 | "version": "1.0.0", 3034 | "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", 3035 | "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", 3036 | "dev": true, 3037 | "requires": { 3038 | "has-value": "^0.3.1", 3039 | "isobject": "^3.0.0" 3040 | }, 3041 | "dependencies": { 3042 | "has-value": { 3043 | "version": "0.3.1", 3044 | "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", 3045 | "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", 3046 | "dev": true, 3047 | "requires": { 3048 | "get-value": "^2.0.3", 3049 | "has-values": "^0.1.4", 3050 | "isobject": "^2.0.0" 3051 | }, 3052 | "dependencies": { 3053 | "isobject": { 3054 | "version": "2.1.0", 3055 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", 3056 | "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", 3057 | "dev": true, 3058 | "requires": { 3059 | "isarray": "1.0.0" 3060 | } 3061 | } 3062 | } 3063 | }, 3064 | "has-values": { 3065 | "version": "0.1.4", 3066 | "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", 3067 | "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", 3068 | "dev": true 3069 | } 3070 | } 3071 | }, 3072 | "upath": { 3073 | "version": "1.1.2", 3074 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", 3075 | "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", 3076 | "dev": true, 3077 | "optional": true 3078 | }, 3079 | "urix": { 3080 | "version": "0.1.0", 3081 | "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", 3082 | "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", 3083 | "dev": true 3084 | }, 3085 | "use": { 3086 | "version": "3.1.1", 3087 | "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", 3088 | "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", 3089 | "dev": true 3090 | }, 3091 | "util-deprecate": { 3092 | "version": "1.0.2", 3093 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3094 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 3095 | "dev": true, 3096 | "optional": true 3097 | }, 3098 | "wrappy": { 3099 | "version": "1.0.2", 3100 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3101 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 3102 | "dev": true 3103 | } 3104 | } 3105 | } 3106 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cli-select", 3 | "version": "1.1.2", 4 | "description": "Simple and interactive solution to provide a list of selectable items on the command line", 5 | "author": "Cyril Wanner ", 6 | "license": "MIT", 7 | "repository": "cyrilwanner/cli-select", 8 | "main": "dist/index.js", 9 | "types": "typings/index.d.ts", 10 | "scripts": { 11 | "prebuild": "rimraf dist", 12 | "build": "babel src --out-dir dist --copy-files", 13 | "watch": "npm run build -- --watch", 14 | "test": "echo \"Error: no test specified\" && exit 1" 15 | }, 16 | "keywords": [ 17 | "cli", 18 | "shell", 19 | "select", 20 | "list", 21 | "choose", 22 | "checkbox", 23 | "radio", 24 | "radiobutton", 25 | "dropdown" 26 | ], 27 | "dependencies": { 28 | "ansi-escapes": "^3.2.0" 29 | }, 30 | "devDependencies": { 31 | "@babel/cli": "^7.4.3", 32 | "@babel/core": "^7.4.3", 33 | "@babel/plugin-proposal-object-rest-spread": "^7.4.3", 34 | "@babel/preset-env": "^7.4.3", 35 | "@types/node": "^11.13.6", 36 | "rimraf": "^2.6.3" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/callback-mappers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Open the input with a normal callback function 3 | * 4 | * @param {Input} input - input object 5 | * @param {function} valueMapper - function which maps the resulting id and value back to the expected format 6 | * @param {function} callback - callback function 7 | */ 8 | export const withCallback = (input, valueMapper, callback) => { 9 | input.open(); 10 | input.onSelect((id, value) => callback(valueMapper(id, value))); 11 | }; 12 | 13 | /** 14 | * Open the input with a promise 15 | * 16 | * @param {Input} input - input object 17 | * @param {function} valueMapper - function which maps the resulting id and value back to the expected format 18 | */ 19 | export const withPromise = (input, valueMapper) => { 20 | return new Promise((resolve, reject) => { 21 | input.open(); 22 | input.onSelect((id, value) => { 23 | if (id === null) { 24 | reject(); 25 | } else { 26 | resolve(valueMapper(id, value)); 27 | } 28 | }); 29 | }); 30 | }; 31 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import Input from './input'; 2 | import Renderer from './renderer'; 3 | import { withCallback, withPromise } from './callback-mappers'; 4 | import { withArrayValues, withObjectValues } from './value-mappers'; 5 | 6 | /** 7 | * Default options 8 | */ 9 | const defaultOptions = { 10 | outputStream: process.stdout, 11 | inputStream: process.stdin, 12 | values: [], 13 | defaultValue: 0, 14 | selected: '(x)', 15 | unselected: '( )', 16 | indentation: 0, 17 | cleanup: true, 18 | valueRenderer: (value) => value, 19 | }; 20 | 21 | /** 22 | * Create an instance of cli-select with the given options 23 | * 24 | * @param {object} options - options for cli-select 25 | * @param {function} callback - if specified, a callback will be used, otherwise a promise gets returned (optional) 26 | */ 27 | const creator = (options, callback) => { 28 | // merge options with default options 29 | options = { 30 | ...defaultOptions, 31 | ...options, 32 | }; 33 | 34 | // create renderer and input instances 35 | const renderer = new Renderer(options, options.outputStream); 36 | const input = new Input(options.inputStream); 37 | input.setDefaultValue(options.defaultValue); 38 | input.attachRenderer(renderer); 39 | 40 | // handle array and object values 41 | let valueMapper; 42 | if (Array.isArray(options.values)) { 43 | valueMapper = withArrayValues(options); 44 | } else { 45 | valueMapper = withObjectValues(options); 46 | } 47 | 48 | // map values 49 | options.values = valueMapper.input; 50 | input.setValues(options.values); 51 | 52 | // handle different callback methods 53 | if (typeof callback === 'function') { 54 | return withCallback(input, valueMapper.output, callback); 55 | } else { 56 | return withPromise(input, valueMapper.output); 57 | } 58 | }; 59 | 60 | exports = module.exports = creator; 61 | Object.defineProperty(exports, "__esModule", { 62 | value: true 63 | }); 64 | export default creator; 65 | -------------------------------------------------------------------------------- /src/input.js: -------------------------------------------------------------------------------- 1 | import readline from 'readline'; 2 | 3 | /** 4 | * Handle cli input 5 | */ 6 | export default class Input { 7 | 8 | /** 9 | * Input constructor 10 | * 11 | * @param {any} stream - stream to catch (optional) 12 | */ 13 | constructor(stream = process.stdin) { 14 | // set default values 15 | this.stream = stream; 16 | this.values = []; 17 | this.selectedValue = 0; 18 | this.onSelectListener = () => {}; 19 | 20 | this.onKeyPress = this.onKeyPress.bind(this); 21 | } 22 | 23 | /** 24 | * Set the available values 25 | * 26 | * @param {array} values - all available values 27 | */ 28 | setValues(values) { 29 | this.values = values; 30 | 31 | if (this.renderer) { 32 | this.renderer.setValues(values); 33 | } 34 | } 35 | 36 | /** 37 | * Set the default value 38 | * 39 | * @param {number} defaultValue - default value id 40 | */ 41 | setDefaultValue(defaultValue) { 42 | this.selectedValue = defaultValue; 43 | } 44 | 45 | /** 46 | * Attach a renderer to the input catcher 47 | * 48 | * @param {Renderer} renderer - renderer to use for rendering responses 49 | */ 50 | attachRenderer(renderer) { 51 | this.renderer = renderer; 52 | this.renderer.setValues(this.values); 53 | } 54 | 55 | /** 56 | * Register an on select listener 57 | * 58 | * @param {function} listener - listener function which receives two parameters: valueId and value 59 | */ 60 | onSelect(listener) { 61 | this.onSelectListener = listener; 62 | } 63 | 64 | /** 65 | * Open the stream and listen for input 66 | */ 67 | open() { 68 | // register keypress event 69 | readline.emitKeypressEvents(this.stream); 70 | 71 | // handle keypress 72 | this.stream.on('keypress', this.onKeyPress); 73 | 74 | // initially render the response 75 | if (this.renderer) { 76 | this.renderer.render(this.selectedValue); 77 | } 78 | 79 | // hide pressed keys and start listening on input 80 | this.stream.setRawMode(true); 81 | this.stream.resume(); 82 | } 83 | 84 | /** 85 | * Close the stream 86 | * 87 | * @param {boolean} cancelled - true if no value was selected (optional) 88 | */ 89 | close(cancelled = false) { 90 | // reset stream properties 91 | this.stream.setRawMode(false); 92 | this.stream.pause(); 93 | 94 | // cleanup the output 95 | if (this.renderer) { 96 | this.renderer.cleanup(); 97 | } 98 | 99 | // call the on select listener 100 | if (cancelled) { 101 | this.onSelectListener(null); 102 | } else { 103 | this.onSelectListener(this.selectedValue, this.values[this.selectedValue]); 104 | } 105 | 106 | this.stream.removeListener('keypress', this.onKeyPress); 107 | } 108 | 109 | /** 110 | * Render the response 111 | */ 112 | render() { 113 | if (!this.renderer) { 114 | return; 115 | } 116 | 117 | this.renderer.render(this.selectedValue); 118 | } 119 | 120 | /** 121 | * Handle key press event 122 | * 123 | * @param {string} string - input string 124 | * @param {object} key - object containing information about the pressed key 125 | */ 126 | onKeyPress(string, key) { 127 | if (key) { 128 | if (key.name === 'up' && this.selectedValue > 0) { 129 | this.selectedValue--; 130 | this.render(); 131 | } else if (key.name === 'down' && this.selectedValue + 1 < this.values.length) { 132 | this.selectedValue++; 133 | this.render(); 134 | } else if (key.name === 'return') { 135 | this.close(); 136 | } else if (key.name === 'escape' || (key.name === 'c' && key.ctrl)) { 137 | this.close(true); 138 | } 139 | } 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /src/renderer.js: -------------------------------------------------------------------------------- 1 | import readline from 'readline'; 2 | import { eraseLines, cursorHide, cursorShow } from 'ansi-escapes'; 3 | 4 | /** 5 | * Response renderer 6 | */ 7 | export default class Renderer { 8 | 9 | /** 10 | * Renderer constructor 11 | * 12 | * @param {object} options - renderer options 13 | * @param {any} stream - stream to write to (optional) 14 | */ 15 | constructor(options, stream = process.stdout) { 16 | this.options = options; 17 | this.stream = stream; 18 | this.values = []; 19 | this.initialRender = true; 20 | } 21 | 22 | /** 23 | * Set the available values 24 | * 25 | * @param {array} values - all available values 26 | */ 27 | setValues(values) { 28 | this.values = values; 29 | } 30 | 31 | /** 32 | * Render the values 33 | * 34 | * @param {number} selectedValue - selected value (optional) 35 | */ 36 | render(selectedValue = 0) { 37 | if (this.initialRender) { 38 | // hide the cursor initially 39 | this.initialRender = false; 40 | this.stream.write(cursorHide); 41 | } else { 42 | // remove previous lines and values 43 | this.stream.write(eraseLines(this.values.length)); 44 | } 45 | 46 | // output the current values 47 | this.values.forEach((value, index) => { 48 | const symbol = selectedValue === index ? this.options.selected : this.options.unselected; 49 | const indentation = ' '.repeat(this.options.indentation); 50 | const renderedValue = this.options.valueRenderer(value, selectedValue === index); 51 | const end = index !== this.values.length - 1 ? '\n' : ''; 52 | this.stream.write(indentation + symbol + ' ' + renderedValue + end); 53 | }); 54 | } 55 | 56 | /** 57 | * Cleanup the console at the end 58 | */ 59 | cleanup() { 60 | this.stream.write(eraseLines(this.values.length)); 61 | this.stream.write(cursorShow); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/value-mappers.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Map incoming and outgoing values if the initial values are an array 3 | * 4 | * @param {object} options - cli-select options 5 | */ 6 | export const withArrayValues = (options) => { 7 | return { 8 | input: options.values, 9 | output: (id, value) => { 10 | return { 11 | id, 12 | value, 13 | }; 14 | }, 15 | }; 16 | }; 17 | 18 | /** 19 | * Map incoming and outgoing values if the initial values are an object 20 | * 21 | * @param {object} options - cli-select options 22 | */ 23 | export const withObjectValues = (options) => { 24 | const originalValues = options.values; 25 | 26 | return { 27 | input: Object.values(originalValues), 28 | output: (id, value) => { 29 | return { 30 | id: Object.keys(originalValues)[id], 31 | value, 32 | }; 33 | }, 34 | }; 35 | }; 36 | -------------------------------------------------------------------------------- /typings/index.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare type Index = number|string 4 | 5 | interface ValueRenderer { 6 | (value: T, selected: boolean): string 7 | } 8 | 9 | interface ResolvedValue { 10 | id: Index, 11 | value: T 12 | } 13 | 14 | interface Callback { 15 | (valueId: Index, value: T): any 16 | } 17 | 18 | interface ValuesObject { 19 | [s: string]: T; 20 | } 21 | 22 | interface ValuesArray extends Array {} 23 | 24 | interface Options { 25 | outputStream?: NodeJS.WriteStream, 26 | inputStream?: NodeJS.WriteStream, 27 | values: ValuesObject | ValuesArray, 28 | defaultValue?: Index, 29 | selected?: string, 30 | unselected?: string, 31 | indentation?: number, 32 | cleanup?: boolean, 33 | valueRenderer?: ValueRenderer 34 | } 35 | 36 | type creatorPromise = (options: Options) => Promise>; 37 | type creatorCallback = (options: Options, callback: Callback) => void; 38 | type creator = creatorPromise & creatorCallback; 39 | 40 | interface creatorStatic { 41 | default: creator 42 | } 43 | 44 | declare const cliSelect: creator & creatorStatic; 45 | 46 | export = cliSelect; 47 | --------------------------------------------------------------------------------