├── .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 |
5 |
6 |
7 |
8 |
9 | Simple and interactive solution to provide a list of selectable items on the command line.
10 |
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 |
--------------------------------------------------------------------------------