├── .eslintrc.json
├── .gitignore
├── LICENSE
├── README.md
├── commands.json
├── index.js
├── lib
├── app_config.js
├── bucket_config.js
├── cosmic_auth.js
├── create_bucket.js
└── output.js
├── non_standard_commands
├── add-bucket.js
├── add-media.js
├── begin.js
├── develop-command.js
├── get-buckets.js
├── get-projects.js
├── index.js
├── install-starter.js
├── login.js
├── start-command.js
├── use-bucket.js
├── which-bucket.js
└── which-user.js
├── package-lock.json
├── package.json
└── yarn.lock
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "node": true
4 | },
5 | "extends": "eslint:recommended",
6 | "rules": {
7 | "no-console": "off",
8 | "indent": [
9 | "error",
10 | 2
11 | ],
12 | "linebreak-style": [
13 | "error",
14 | "unix"
15 | ],
16 | "quotes": [
17 | "error",
18 | "single"
19 | ],
20 | "semi": [
21 | "error",
22 | "never"
23 | ]
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Cosmic JS Inc.
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 |
2 |
3 |
4 |
5 | 📖 View Docs
6 |
7 |
8 |
9 |
10 |
11 | This is the official command line tool for [Cosmic](https://www.cosmicjs.com). Use it to log in to your Cosmic account, manage Buckets, data, files and users within your Buckets, all from the comfort of your command line interface.
12 |
13 | ## 🛠️ Installation
14 |
15 | Install the CLI globally:
16 |
17 | ```bash
18 | npm i -g cosmic-cli
19 | ```
20 |
21 | To check that it installed properly, run `cosmic` on your command line and you should see a list of commands.
22 |
23 | ## 🏁 Getting Started
24 |
25 | Let's walk through the commands you need to get started. For an introduction to the Cosmic CLI run the `begin` command.
26 | ```bash
27 | cosmic begin
28 | ```
29 |
30 |
31 | ### 🔐 Login
32 |
33 | Use your credentials (from https://www.cosmicjs.com) to login on the command line. You will only have to do this once. If you used GitHub to sign up, you can also login via authentication token which you can find at https://www.cosmicjs.com/account/authentication
34 |
35 | ```bash
36 | $ cosmic login
37 | ? Email: starman@gmail.com
38 | ? Password: [hidden]
39 | Authenticated
40 | ```
41 |
42 | ## 🚀 Usage
43 |
44 | All Cosmic CLI commands are of the format:
45 |
46 | ```bash
47 | cosmic [command] [options]
48 | ```
49 |
50 |
51 | ### Use Bucket
52 |
53 | Now that you are logged in, you can connect to any of your Buckets on your account. To connect to the Bucket with slug 'simple-react-blog':
54 |
55 | ```bash
56 | $ cosmic use-bucket simple-react-blog
57 | Now using bucket simple-react-blog
58 | ```
59 |
60 | To test that we connected to the Bucket properly:
61 |
62 | ```bash
63 | $ cosmic get-objects --query '{"type":"authors"}' --limit 1
64 | Success
65 | { objects:
66 | [ { _id: '59df6dd5fd8d731b2100118d',
67 | bucket: '59df6dcbfd8d731b21001188',
68 | slug: 'jane-doe',
69 | title: 'Jane Doe',
70 | content: 'Something about Jane...
',
71 | metafields: [Array],
72 | type: 'authors',
73 | created: '2017-10-12T13:27:49.663Z',
74 | created_at: '2017-10-12T13:27:49.663Z',
75 | status: 'published',
76 | metadata: [Object] } ],
77 | limit: 1 }
78 | ```
79 |
80 | Now you are ready to use any of the commands to have full control over your Bucket!
81 |
82 |
83 | ### 🗺 Help
84 |
85 | Run `cosmic -h` for a list of all commands. The list is also included at the [bottom of this README](https://github.com/cosmicjs/cosmic-cli#commands).
86 |
87 | Run `cosmic [command] -h` for details on options for a specific command.
88 |
89 | ### Examples
90 |
91 | Below are a few examples of commands. Only a handful of the possible options are shown for the commands.
92 |
93 | **Creating an Object Type and then an Object**
94 |
95 | Creating a "Planets" Object Type and specifying default Metafields all Objects in this Object Type should have. For this example all planets will now include the Metafield titled "Radius". See the [REST API docs](https://docs.cosmicjs.com/rest-api/metafields.html) for all Metafield options.
96 | ```bash
97 | $ cosmic add-object-type --slug planets --title Planets --metafields '[{"title": "Radius","type":"text", "key": "radius"}]'
98 | ```
99 |
100 | Making an edit to the Object Type. This example adds another Metafield to the "Planets" Object Type.
101 | ```bash
102 | $ cosmic edit-object-type -s planets --metafields '[{"title": "Radius","type":"text", "key": "radius"},{"title": "Distance from Sun","type":"text", "key": "distance_from_sun"}]'
103 | ```
104 |
105 | Creating an Object in the "Planets" Object Type:
106 | ```bash
107 | $ cosmic add-object --type planets --title Venus --metafields '[{"title": "Radius","type":"text", "key": "radius", "value": "3,760 miles"},{"title": "Distance from Sun","type":"text", "key": "distance_from_sun", "value": "67.24 million miles"}]'
108 | ```
109 |
110 | 🏞 **Uploading Files to a Bucket**
111 |
112 | We upload any file from our computer to Cosmic with the name provided to -t, and into a specified folder (optional).
113 |
114 | Using shorthand params -f for --file and -t for --title
115 | ```bash
116 | $ cosmic add-media -f ./my-cat.png -t my-cat.png --folder cat-images
117 | ```
118 |
119 | ### JSON String Inputs
120 |
121 | Some commands allow for two types of input: argument based and json string based. This is best illustrated with an example:
122 |
123 | To add a new barebones Object with only a title that is of Object Type `planets`, there are two ways we could go about it, with equivalent results:
124 |
125 | ```bash
126 | $ cosmic add-object --type planets --title Venus
127 | ```
128 |
129 | or
130 |
131 | ```bash
132 | $ cosmic add-object --json '{"type":"planets","title":"Venus"}'
133 | ```
134 |
135 | The json string option is convenient in some use cases, and is included on the following commands:
136 |
137 | * add-object
138 | * add-object-type
139 | * edit-object
140 | * edit-object-type
141 |
142 |
143 | ### Commands
144 |
145 | For a list of the options for a command, use `cosmic [command] -h`
146 |
147 | * begin `Guide to Getting Started`
148 | * login
149 | * init `init starter app` See [list of starter apps](https://www.cosmicjs.com/getting-started#getting-started-quickstart)
150 | * which-user `outputs the email of the current user`
151 | * which-bucket `outputs the slug of the current Bucket`
152 | * get-buckets [options] `shows Buckets available to user`
153 | * use-bucket [options] [slug] `read_key and write_key options required`
154 | * add-bucket [options]
155 | * delete-bucket [options]
156 | * get-objects [options]
157 | * get-object [options]
158 | * get-object-types
159 | * add-object-type [options]
160 | * edit-object-type [options]
161 | * delete-object-type [options]
162 | * add-object [options]
163 | * edit-object [options]
164 | * delete-object [options]
165 | * add-media [options]
166 | * get-media [options]
167 | * delete-media [options]
168 | * add-user [options]
169 |
--------------------------------------------------------------------------------
/commands.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "cmd": "begin",
4 | "description": "Guide to Getting Started",
5 | "custom": true,
6 | "customScript": "begin",
7 | "options": [ ]
8 | },
9 | {
10 | "cmd": "login",
11 | "description": "",
12 | "requiresToken": false,
13 | "custom": true,
14 | "customScript": "login",
15 | "options": [ ]
16 | },
17 | {
18 | "cmd": "which-user",
19 | "description": "outputs the email of the current user",
20 | "requiresToken": false,
21 | "custom": true,
22 | "customScript": "whichUser",
23 | "options": [ ]
24 | },
25 | {
26 | "cmd": "which-bucket",
27 | "description": "outputs the slug of the current Bucket",
28 | "requiresToken": false,
29 | "custom": true,
30 | "customScript": "whichBucket",
31 | "options": [ ]
32 | },
33 | {
34 | "cmd": "get-buckets",
35 | "description": "shows Buckets available to user",
36 | "requiresToken": false,
37 | "custom": true,
38 | "customScript": "getBuckets",
39 | "options": [
40 | {
41 | "param": "json",
42 | "flags": "-j, --json",
43 | "description": "show Bucket info in JSON format"
44 | }
45 | ]
46 | },
47 | {
48 | "cmd": "get-projects",
49 | "description": "shows Projects available to user",
50 | "requiresToken": false,
51 | "custom": true,
52 | "customScript": "getProjects",
53 | "options": [
54 | {
55 | "param": "json",
56 | "flags": "-j, --json",
57 | "description": "show Projects info in JSON format"
58 | }
59 | ]
60 | },
61 | {
62 | "cmd": "init [name]",
63 | "description": "installs a starter app to your machine",
64 | "requiresToken": false,
65 | "custom": true,
66 | "customScript": "installStarter",
67 | "options": [
68 | {
69 | "param": "folder",
70 | "flags": "-f, --folder [value]",
71 | "description": "indicate folder to install starter"
72 | }
73 | ]
74 | },
75 | {
76 | "cmd": "develop",
77 | "description": "starts a starter app on your machine in development mode",
78 | "requiresToken": false,
79 | "custom": true,
80 | "customScript": "developCommand",
81 | "options": [ ]
82 | },
83 | {
84 | "cmd": "start",
85 | "description": "starts a starter app on your machine",
86 | "requiresToken": false,
87 | "custom": true,
88 | "customScript": "startCommand",
89 | "options": [ ]
90 | },
91 | {
92 | "cmd": "use-bucket [slug]",
93 | "description": "",
94 | "requiresToken": false,
95 | "custom": true,
96 | "customScript": "useBucket",
97 | "options": [
98 | {
99 | "param": "slug",
100 | "flags": "-s, --slug [value]",
101 | "description": "bucket slug"
102 | },
103 | {
104 | "param": "read_key",
105 | "flags": "-k, --read_key [value]",
106 | "description": "read key"
107 | },
108 | {
109 | "param": "write_key",
110 | "flags": "-w, --write_key [value]",
111 | "description": "write key"
112 | }
113 | ]
114 | },
115 | {
116 | "cmd": "add-bucket",
117 | "description": "",
118 | "requiresToken": true,
119 | "custom": true,
120 | "customScript": "addBucket",
121 | "options": [
122 | {
123 | "param": "slug",
124 | "flags": "-s, --slug [value]",
125 | "description": "bucket slug"
126 | },
127 | {
128 | "param": "title",
129 | "flags": "-t, --title [value]",
130 | "description": "bucket title"
131 | },
132 | {
133 | "param": "cluster",
134 | "flags": "-c, --cluster [value]",
135 | "description": "Add this Bucket to a Cluster. ID of existing Cluster"
136 | }
137 | ]
138 | },
139 | {
140 | "cmd": "delete-bucket",
141 | "description": "",
142 | "requiresToken": true,
143 | "cosmicMethod": {
144 | "useBucket": false,
145 | "method": "deleteBucket"
146 | },
147 | "options": [
148 | {
149 | "param": "slug",
150 | "flags": "--slug [value]",
151 | "description": "The Bucket slug found as 'slug'"
152 | }
153 | ]
154 | },
155 | {
156 | "cmd": "get-objects",
157 | "description": "",
158 | "requiresToken": false,
159 | "cosmicMethod": {
160 | "useBucket": true,
161 | "method": "getObjects"
162 | },
163 | "options": [
164 | {
165 | "param": "query",
166 | "cosmicParamName": "query",
167 | "flags": "-q, --query [value]",
168 | "description": "[optional] json value that limits fetch to a specific query properties",
169 | "switchToCommandIfPresent": {
170 | "method": "getObjects",
171 | "useBucket": true
172 | },
173 | "isJsonString": true
174 | },
175 | {
176 | "param": "limit",
177 | "flags": "-l, --limit [value]",
178 | "description": "[optional] limit on number of objects to return"
179 | },
180 | {
181 | "param": "skip",
182 | "flags": "-s, --skip [value]",
183 | "description": "[optional] # objects to skip"
184 | },
185 | {
186 | "param": "props",
187 | "flags": "-p, --props [value]",
188 | "description": "[optional] limit on properties returned from the response"
189 | },
190 | {
191 | "param": "locale",
192 | "flags": "--locale [value]",
193 | "description": "[optional] specify locale filter"
194 | },
195 | {
196 | "param": "status",
197 | "flags": "--status [value]",
198 | "description": "[optional] specify locale filter"
199 | }
200 | ]
201 | },
202 | {
203 | "cmd": "get-merge-request-objects",
204 | "description": "",
205 | "requiresToken": false,
206 | "cosmicMethod": {
207 | "useBucket": true,
208 | "method": "getMergeRequestObjects"
209 | },
210 | "options": [
211 | {
212 | "param": "id",
213 | "flags": "-id, --id [value]",
214 | "description": "Merge Request id"
215 | },
216 | {
217 | "param": "query",
218 | "cosmicParamName": "query",
219 | "flags": "-q, --query [value]",
220 | "description": "[optional] json value that limits fetch to a specific query properties",
221 | "switchToCommandIfPresent": {
222 | "method": "getMergeRequestObjects",
223 | "useBucket": true
224 | },
225 | "isJsonString": true
226 | },
227 | {
228 | "param": "limit",
229 | "flags": "-l, --limit [value]",
230 | "description": "[optional] limit on number of objects to return"
231 | },
232 | {
233 | "param": "skip",
234 | "flags": "-s, --skip [value]",
235 | "description": "[optional] # objects to skip"
236 | },
237 | {
238 | "param": "props",
239 | "flags": "-p, --props [value]",
240 | "description": "[optional] limit on properties returned from the response"
241 | },
242 | {
243 | "param": "locale",
244 | "flags": "--locale [value]",
245 | "description": "[optional] specify locale filter"
246 | },
247 | {
248 | "param": "status",
249 | "flags": "--status [value]",
250 | "description": "[optional] specify locale filter"
251 | }
252 | ]
253 | },
254 | {
255 | "cmd": "get-object",
256 | "description": "",
257 | "requiresToken": false,
258 | "cosmicMethod": {
259 | "useBucket": true,
260 | "method": "getObject"
261 | },
262 | "options": [
263 | {
264 | "param": "id",
265 | "flags": "-id, --id [value]",
266 | "description": "Object id"
267 | },
268 | {
269 | "param": "status",
270 | "flags": "--status [value]",
271 | "description": "[optional] specify status filter"
272 | },
273 | {
274 | "param": "props",
275 | "flags": "-p, --props [value]",
276 | "description": "[optional] limit on properties returned from the response"
277 | }
278 | ]
279 | },
280 | {
281 | "cmd": "get-object-types",
282 | "description": "",
283 | "requiresToken": false,
284 | "cosmicMethod": {
285 | "useBucket": true,
286 | "method": "getObjectTypes"
287 | },
288 | "options": [
289 | ]
290 | },
291 | {
292 | "cmd": "add-object-type",
293 | "description": "",
294 | "requiresToken": false,
295 | "cosmicMethod": {
296 | "useBucket": true,
297 | "method": "addObjectType"
298 | },
299 | "options": [
300 | {
301 | "param": "slug",
302 | "flags": "-s, --slug [value]",
303 | "description": "Object Type slug"
304 | },
305 | {
306 | "param": "title",
307 | "flags": "-t, --title [value]",
308 | "description": "plural title of your Object Type"
309 | },
310 | {
311 | "param": "singular",
312 | "flags": "--singular [value]",
313 | "description": "singular title of your Object Type"
314 | },
315 | {
316 | "param": "metafields",
317 | "flags": "-m, --metafields [value]",
318 | "description": "Default Metafields for each Object in this type",
319 | "isJsonString": true
320 | },
321 | {
322 | "param": "json",
323 | "flags": "-j, --json [value]",
324 | "description": "JSON string with specifications for the new Object Type. Ex: '[{\"slug\":\"my-slug\", \"title\": \"My awesome title\", \"metafields\": {...}}]'",
325 | "isJsonString": true,
326 | "isWrapperParameter": true
327 | }
328 | ]
329 | },
330 | {
331 | "cmd": "edit-object-type",
332 | "description": "",
333 | "requiresToken": false,
334 | "cosmicMethod": {
335 | "useBucket": true,
336 | "method": "editObjectType"
337 | },
338 | "options": [
339 | {
340 | "param": "slug",
341 | "flags": "-s, --slug [value]",
342 | "description": "Object Type slug"
343 | },
344 | {
345 | "param": "title",
346 | "flags": "-t, --title [value]",
347 | "description": "your Object Type title"
348 | },
349 | {
350 | "param": "singular",
351 | "flags": "--singular [value]",
352 | "description": "singular title of your Object Type"
353 | },
354 | {
355 | "param": "metafields",
356 | "flags": "-m, --metafields [value]",
357 | "description": "Default Metafields for each Object in this type",
358 | "isJsonString": true
359 | },
360 | {
361 | "param": "json",
362 | "flags": "-j, --json [value]",
363 | "description": "JSON string with specifications for the edits to the Object Type. Ex: '[{\"slug\":\"my-slug\", \"metafields\": {...}}]'",
364 | "isJsonString": true,
365 | "isWrapperParameter": true
366 | }
367 | ]
368 | },
369 | {
370 | "cmd": "delete-object-type",
371 | "description": "",
372 | "requiresToken": false,
373 | "cosmicMethod": {
374 | "useBucket": true,
375 | "method": "deleteObjectType"
376 | },
377 | "options": [
378 | {
379 | "param": "slug",
380 | "flags": "-s, --slug [value]",
381 | "description": "Object Type slug to delete"
382 | }
383 | ]
384 | },
385 | {
386 | "cmd": "add-object",
387 | "description": "",
388 | "requiresToken": false,
389 | "cosmicMethod": {
390 | "useBucket": true,
391 | "method": "addObject"
392 | },
393 | "options": [
394 | {
395 | "param": "type",
396 | "flags": "-type, --type [value]",
397 | "description": "Object Type slug"
398 | },
399 | {
400 | "param": "title",
401 | "flags": "-t, --title [value]",
402 | "description": "your Object title"
403 | },
404 | {
405 | "param": "slug",
406 | "flags": "-s, --slug [value]",
407 | "description": "Object slug"
408 | },
409 | {
410 | "param": "content",
411 | "flags": "-c, --content [value]",
412 | "description": "add content to your Object"
413 | },
414 | {
415 | "param": "status",
416 | "flags": "--status [value]",
417 | "description": "draft, published, defaults to published"
418 | },
419 | {
420 | "param": "locale",
421 | "flags": "--locale [value]",
422 | "description": "add localization to the Object"
423 | },
424 | {
425 | "param": "metafields",
426 | "flags": "-m, --metafields [value]",
427 | "description": "Default Metafields for each Object in this type",
428 | "isJsonString": true
429 | },
430 | {
431 | "param": "json",
432 | "flags": "-j, --json [value]",
433 | "description": "JSON string with specifications for the new Object. Ex: '[{\"type_slug\":\"my-obj-type\", \"slug\":\"my-slug\", \"title\": \"My new obj\"}]'",
434 | "isJsonString": true,
435 | "isWrapperParameter": true
436 | }
437 | ]
438 | },
439 | {
440 | "cmd": "add-object-revision",
441 | "description": "",
442 | "requiresToken": false,
443 | "cosmicMethod": {
444 | "useBucket": true,
445 | "method": "addObjectRevision"
446 | },
447 | "options": [
448 | {
449 | "param": "title",
450 | "flags": "-t, --title [value]",
451 | "description": "your Object title"
452 | },
453 | {
454 | "param": "id",
455 | "flags": "-id, --id [value]",
456 | "description": "Object id"
457 | },
458 | {
459 | "param": "slug",
460 | "flags": "-s, --slug [value]",
461 | "description": "Object slug"
462 | },
463 | {
464 | "param": "content",
465 | "flags": "-c, --content [value]",
466 | "description": "add content to your Object"
467 | },
468 | {
469 | "param": "status",
470 | "flags": "--status [value]",
471 | "description": "draft, published, defaults to published"
472 | },
473 | {
474 | "param": "locale",
475 | "flags": "--locale [value]",
476 | "description": "add localization to the Object"
477 | },
478 | {
479 | "param": "metafields",
480 | "flags": "-m, --metafields [value]",
481 | "description": "Default Metafields for each Object in this type",
482 | "isJsonString": true
483 | },
484 | {
485 | "param": "json",
486 | "flags": "-j, --json [value]",
487 | "description": "JSON string with specifications for the new Object. Ex: '[{\"type_slug\":\"my-obj-type\", \"slug\":\"my-slug\", \"title\": \"My new obj\"}]'",
488 | "isJsonString": true,
489 | "isWrapperParameter": true
490 | }
491 | ]
492 | },
493 | {
494 | "cmd": "edit-object",
495 | "description": "",
496 | "requiresToken": false,
497 | "cosmicMethod": {
498 | "useBucket": true,
499 | "method": "editObject"
500 | },
501 | "options": [
502 | {
503 | "param": "id",
504 | "flags": "-id, --id [value]",
505 | "description": "Object id"
506 | },
507 | {
508 | "param": "type",
509 | "flags": "-o, --type [value]",
510 | "description": "add Object to Object Type"
511 | },
512 | {
513 | "param": "title",
514 | "flags": "-t, --title [value]",
515 | "description": "your Object title"
516 | },
517 | {
518 | "param": "content",
519 | "flags": "-c, --content [value]",
520 | "description": "add content to your Object"
521 | },
522 | {
523 | "param": "status",
524 | "flags": "--status [value]",
525 | "description": "draft, published, defaults to published"
526 | },
527 | {
528 | "param": "locale",
529 | "flags": "--locale [value]",
530 | "description": "add localization to the Object"
531 | },
532 | {
533 | "param": "metafields",
534 | "flags": "-m, --metafields [value]",
535 | "description": "Default Metafields for each Object in this type",
536 | "isJsonString": true
537 | },
538 | {
539 | "param": "json",
540 | "flags": "-j, --json [value]",
541 | "description": "JSON string with specifications for the Object edits. Ex: '[{\"slug\":\"my-slug\", \"title\": \"Altered Title\"}]'",
542 | "isJsonString": true,
543 | "isWrapperParameter": true
544 | }
545 | ]
546 | },
547 | {
548 | "cmd": "delete-object",
549 | "description": "",
550 | "requiresToken": false,
551 | "cosmicMethod": {
552 | "useBucket": true,
553 | "method": "deleteObject"
554 | },
555 | "options": [
556 | {
557 | "param": "id",
558 | "flags": "-id, --id [value]",
559 | "description": "Object id to delete"
560 | }
561 | ]
562 | },
563 | {
564 | "cmd": "add-media",
565 | "description": "",
566 | "requiresToken": false,
567 | "custom": true,
568 | "customScript": "addMedia",
569 | "options": [
570 | {
571 | "param": "file",
572 | "flags": "-f, --file [value]",
573 | "description": "path to file of media"
574 | },
575 | {
576 | "param": "title",
577 | "flags": "-t, --title [value]",
578 | "description": "title to save media file under"
579 | },
580 | {
581 | "param": "folder",
582 | "flags": "--folder [value]",
583 | "description": "media folder slug"
584 | }
585 | ]
586 | },
587 | {
588 | "cmd": "get-media",
589 | "description": "",
590 | "requiresToken": false,
591 | "cosmicMethod": {
592 | "useBucket": true,
593 | "method": "getMedia"
594 | },
595 | "options": [
596 | {
597 | "param": "limit",
598 | "flags": "-l, --limit [value]",
599 | "description": "[optional] limit on number of media objects to return"
600 | },
601 | {
602 | "param": "skip",
603 | "flags": "-s, --skip [value]",
604 | "description": "[optional] # media objects to skip"
605 | },
606 | {
607 | "param": "props",
608 | "flags": "-p, --props [value]",
609 | "description": "[optional] limit on properties returned from the response"
610 | },
611 | {
612 | "param": "query",
613 | "cosmicParamName": "query",
614 | "flags": "-q, --query [value]",
615 | "description": "[optional] json value that limits fetch to a specific query properties",
616 | "switchToCommandIfPresent": {
617 | "method": "getMedia",
618 | "useBucket": true
619 | },
620 | "isJsonString": true
621 | }
622 | ]
623 | },
624 | {
625 | "cmd": "delete-media",
626 | "description": "",
627 | "requiresToken": false,
628 | "cosmicMethod": {
629 | "useBucket": true,
630 | "method": "deleteMedia"
631 | },
632 | "options": [
633 | {
634 | "param": "id",
635 | "flags": "--id [value]",
636 | "description": "id of media to delete"
637 | }
638 | ]
639 | },
640 | {
641 | "cmd": "add-user",
642 | "description": "",
643 | "requiresToken": false,
644 | "cosmicMethod": {
645 | "useBucket": true,
646 | "method": "addUser"
647 | },
648 | "options": [
649 | {
650 | "param": "email",
651 | "flags": "-e , --email [value]",
652 | "description": "The new user's email"
653 | },
654 | {
655 | "param": "role",
656 | "flags": "-r, --role [value]",
657 | "description": "admin, developer, editor or contributor"
658 | },
659 | {
660 | "param": "first_name",
661 | "flags": "--first_name [value]",
662 | "description": "The new user's first name"
663 | },
664 | {
665 | "param": "last_name",
666 | "flags": "--last_name [value]",
667 | "description": "The new user's last name"
668 | }
669 | ]
670 | }
671 | ]
672 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | var program = require('commander')
3 |
4 | var commands = require('./commands')
5 | var auth = require('./lib/cosmic_auth')
6 | var bucketConfig = require('./lib/bucket_config')
7 | var print = require('./lib/output')
8 | var colors = require('colors')
9 | var customScripts = require('./non_standard_commands')
10 | var packageInfo = require('./package.json')
11 |
12 |
13 | var token = auth.getCosmicToken()
14 | var Cosmic = require('cosmicjs')({
15 | token: token
16 | })
17 | var bucketOpts = bucketConfig.getCosmicBucketOptions()
18 | var bucket = Cosmic.bucket(bucketOpts)
19 |
20 | program
21 | .version(packageInfo.version)
22 |
23 | commands.forEach(function(command) {
24 |
25 | var buildUp = program
26 | .command(command.cmd)
27 | .description(command.description)
28 | if (command.options) {
29 | command.options.forEach(function(option) {
30 | buildUp.option(option.flags, option.description)
31 | })
32 | }
33 |
34 | var regExp = /\[([^\]]+)\]/
35 | var argumentParamName = regExp.exec(command.cmd)
36 | argumentParamName = argumentParamName ? argumentParamName[1] : null
37 |
38 | if (argumentParamName) {
39 | buildUp
40 | .action(handleArg)
41 | } else {
42 | buildUp
43 | .action(handleNoArg)
44 | }
45 |
46 | function handleNoArg(invokedCmd) {
47 | handleAction(null, invokedCmd)
48 | }
49 |
50 | function handleArg(arg, invokedCmd) {
51 | var argObj = {
52 | argumentParamName: argumentParamName,
53 | arg: arg
54 | }
55 | handleAction(argObj, invokedCmd)
56 | }
57 |
58 | function handleAction(argObj, invokedCmd){
59 | if (command.requiresToken && !token) {
60 | print.error('Authentication required! Please type `cosmic login` to authenticate.')
61 | process.exit(1)
62 | }
63 |
64 | if (command.custom) {
65 | runCustomScript(command, invokedCmd, argObj)
66 | } else {
67 | runCosmicCommand(command, invokedCmd, argObj)
68 | }
69 | }
70 | })
71 |
72 | program.parse(process.argv)
73 |
74 | if (!process.argv.slice(2).length) {
75 | program.outputHelp()
76 | } else {
77 | var receivedCmd = program.args[program.args.length - 1] || {}
78 | if (!receivedCmd._name) {
79 | print.error('Unrecognized command')
80 | }
81 | }
82 |
83 | function runCustomScript(command, invokedCmd, argObj) {
84 | if (!customScripts[command.customScript]) {
85 | print.error('Error with custom command ' + command.cmd + '. Please report this at ' + colors.blue('https://github.com/cosmicjs/cosmic-cli/issues/'))
86 | process.exit(1)
87 | }
88 |
89 | customScripts[command.customScript]({
90 | invokedCmd: invokedCmd,
91 | bucket: bucket,
92 | token: token,
93 | argObj: argObj,
94 | Cosmic: Cosmic,
95 | })
96 | }
97 |
98 | function runCosmicCommand(command, invokedCmd, argObj) {
99 | var params = parseCosmicParameters(command, invokedCmd, argObj)
100 | // some commands have flags that, if present, change the cosmic method we should use
101 | var overrideCommand
102 | command.options.forEach(function(option) {
103 | var cosmicParamName = option.cosmicParamName || option.param
104 | if (option.switchToCommandIfPresent && params[cosmicParamName]) {
105 | overrideCommand = option.switchToCommandIfPresent
106 | }
107 | })
108 |
109 | var cosmicMethod = overrideCommand || command.cosmicMethod || {}
110 |
111 | var scope = cosmicMethod.useBucket ? bucket : Cosmic
112 |
113 | if (!scope[cosmicMethod.method]) {
114 | var scopeStr = cosmicMethod.useBucket ? 'Cosmic.bucket' : 'Cosmic'
115 | print.error('Method ' + cosmicMethod.method + ' does not exist on ' + scopeStr + '. Please report this at ' + colors.blue('https://github.com/cosmicjs/cosmic-cli/issues/'))
116 | process.exit(1)
117 | }
118 |
119 | scope[cosmicMethod.method](params).then(function(res){
120 | if (res.status && res.status !== 200) {
121 | print.error('Error:')
122 | console.log(res)
123 | process.exit(1)
124 | }
125 | print.success('Success')
126 | console.log(res)
127 | process.exit(0)
128 | }).catch(function(err) {
129 | print.error('Error:')
130 | console.log(err)
131 | process.exit(1)
132 | })
133 | }
134 |
135 | function parseCosmicParameters(command, invokedCmd, argObj) {
136 | var params = {}
137 | command.options.forEach(function(option) {
138 | var paramValue = invokedCmd[option.param]
139 | var addToParams = true
140 | if (paramValue && option.isJsonString) {
141 | try {
142 | var jsonObj = JSON.parse(paramValue)
143 | paramValue = jsonObj
144 |
145 | if (option.isWrapperParameter) {
146 | params = Object.assign(params, paramValue) // if this a wrapper for real parameters (like --json) assign those
147 | addToParams = false
148 | }
149 |
150 | } catch (e) {
151 | print.error('Failed to parse json string for argument ' + option.param + '. Please verify the json is correctly structured and has quotes around both keys and values.')
152 | process.exit(1)
153 | }
154 | }
155 |
156 | var cosmicParamName = option.cosmicParamName || option.param
157 |
158 | if (addToParams) { // add the option directly to params unless a special case occurred that flipped addToParams to false
159 | params[cosmicParamName] = paramValue
160 | }
161 | })
162 |
163 | if (argObj && argObj.arg) {
164 | params[argObj.argumentParamName] = argObj.arg
165 | }
166 |
167 |
168 | return params
169 | }
170 |
--------------------------------------------------------------------------------
/lib/app_config.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | var Configstore = require('configstore')
3 | var pkg = require('../package.json')
4 |
5 | var Cosmic = require('cosmicjs')()
6 |
7 | var conf = new Configstore(pkg.name)
8 | var APP_KEY = 'cosmicApp'
9 |
10 | function getCosmicAppOptions() {
11 | var options = conf.get(APP_KEY)
12 | if (options) {
13 | return JSON.parse(options)
14 | } else {
15 | return {}
16 | }
17 | }
18 |
19 | function set(options) {
20 | conf.set(APP_KEY, JSON.stringify({
21 | slug: options.slug,
22 | title: options.title,
23 | }))
24 | }
25 |
26 | module.exports = {
27 | getCosmicAppOptions: getCosmicAppOptions,
28 | set: set,
29 | }
30 |
--------------------------------------------------------------------------------
/lib/bucket_config.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | var Configstore = require('configstore')
3 | var pkg = require('../package.json')
4 |
5 | var Cosmic = require('cosmicjs')()
6 |
7 | var conf = new Configstore(pkg.name)
8 | var BUCKET_KEY = 'bucket'
9 |
10 | function getCosmicBucketOptions() {
11 | var options = conf.get(BUCKET_KEY)
12 | if (options) {
13 | return JSON.parse(options)
14 | } else {
15 | return {}
16 | }
17 | }
18 |
19 | function setBucket(options) {
20 | return Cosmic.getBucket({ slug: options.slug }).then(function(body) {
21 | if (!body || !body.bucket) {
22 | return new Error('Unable to connect to bucket. Do you have the correct read_key?')
23 | }
24 | var title = body.bucket.title
25 | conf.set(BUCKET_KEY, JSON.stringify({
26 | slug: options.slug,
27 | title: title,
28 | read_key: options.read_key || '',
29 | write_key: options.write_key || '',
30 | }))
31 | return options
32 | })
33 | }
34 |
35 | module.exports = {
36 | getCosmicBucketOptions: getCosmicBucketOptions,
37 | setBucket: setBucket,
38 | }
39 |
--------------------------------------------------------------------------------
/lib/cosmic_auth.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | var Configstore = require('configstore')
3 | var pkg = require('../package.json')
4 | var request = require('request')
5 | var inquirer = require('inquirer')
6 | var async = require('async')
7 | var Cosmic = require('cosmicjs')
8 |
9 | var conf = new Configstore(pkg.name)
10 | var TOKEN_KEY = 'token'
11 | var EMAIL_KEY = 'email'
12 |
13 | function getCosmicToken() {
14 | return conf.get(TOKEN_KEY)
15 | }
16 |
17 | function getActiveEmail() {
18 | return conf.get(EMAIL_KEY)
19 | }
20 |
21 | function setToken(callback) {
22 | var locals = {}
23 | async.series([
24 | function(asyncCallback) {
25 | var questions = [
26 | {
27 | type: 'confirm',
28 | name: 'sso',
29 | message: 'Did you use GitHub, Gmail, or SSO to login?',
30 | }
31 | ]
32 | inquirer.prompt(questions).then(function(answers) {
33 | if(answers.sso)
34 | locals.sso = true
35 | return asyncCallback()
36 | })
37 | },
38 | function(asyncCallback) {
39 | if (!locals.sso)
40 | return asyncCallback()
41 | var questions = [
42 | {
43 | type: 'text',
44 | name: 'token',
45 | message: 'What is your authentication token? Find this at https://app.cosmicjs.com/account/authentication',
46 | }
47 | ]
48 | inquirer.prompt(questions).then(function(answers) {
49 | conf.set(TOKEN_KEY, answers.token)
50 | conf.set(EMAIL_KEY, locals.email)
51 | return callback(null, answers.token)
52 | })
53 | },
54 | function(asyncCallback) {
55 | var questions = [
56 | {
57 | type: 'text',
58 | name: 'email',
59 | message: 'Email:',
60 | },
61 | {
62 | type: 'password',
63 | name: 'password',
64 | message: 'Password:',
65 | },
66 | ]
67 | inquirer.prompt(questions).then(function(answers) {
68 | Cosmic().authenticate({
69 | email: answers.email,
70 | password: answers.password
71 | }).then(data => {
72 | var token = data.token
73 | if (!token) {
74 | return callback('Could not authenticate')
75 | }
76 | // save the token
77 | conf.set(TOKEN_KEY, token)
78 | conf.set(EMAIL_KEY, answers.email)
79 | return callback(null, token)
80 | }).catch(data => {
81 | if (err || !body) {
82 | return callback('Could not authenticate')
83 | }
84 | })
85 | })
86 | }
87 | ])
88 | }
89 |
90 | module.exports = {
91 | getCosmicToken: getCosmicToken,
92 | getActiveEmail: getActiveEmail,
93 | setToken: setToken,
94 | }
95 |
--------------------------------------------------------------------------------
/lib/create_bucket.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | var bucketConfig = require('./bucket_config')
4 | var inquirer = require('inquirer')
5 |
6 | var auth = require('./cosmic_auth')
7 | var token = auth.getCosmicToken()
8 | var Cosmic = require('cosmicjs')({
9 | token: token
10 | })
11 |
12 | function createNewBucket() {
13 | var questions = [
14 | {
15 | type: 'input',
16 | name: 'title',
17 | message: 'Title:'
18 | },
19 | {
20 | type: 'input',
21 | name: 'slug',
22 | message: 'Slug [optional]:'
23 | }
24 | ]
25 | return inquirer.prompt(questions)
26 | .then(function(answers) {
27 | return Cosmic.addBucket({
28 | title: answers.title,
29 | slug: answers.slug
30 | }).then(function(result) {
31 | if (result.bucket) {
32 | var read_key = result.bucket.api_access.read_key;
33 | var write_key = result.bucket.api_access.write_key;
34 | var bucket = {
35 | slug: result.bucket.slug,
36 | read_key: read_key,
37 | write_key: write_key
38 | }
39 | return bucketConfig.setBucket(bucket)
40 | .then(function() {
41 | return Object.assign(result.bucket, {
42 | read_key: read_key,
43 | write_key: write_key
44 | })
45 | })
46 | } else {
47 | throw new Error('Bucket not created successfully')
48 | }
49 | })
50 | })
51 | }
52 |
53 | module.exports = createNewBucket
54 |
--------------------------------------------------------------------------------
/lib/output.js:
--------------------------------------------------------------------------------
1 | var colors = require('colors/safe')
2 |
3 | module.exports.error = function(error) {
4 | console.log(colors.red(error))
5 | }
6 |
7 | module.exports.success = function(message) {
8 | console.log(colors.green(message))
9 | }
10 |
11 | module.exports.cosmic = function(message) {
12 | console.log(colors.cyan(message))
13 | }
14 |
15 | module.exports.underline = function(message) {
16 | console.log(colors.underline(message))
17 | }
18 |
19 | module.exports.bold = function(message) {
20 | console.log(colors.bold(message))
21 | }
22 |
23 | module.exports.cosmicCommand = function(message) {
24 | console.log(colors.bold(message))
25 | }
26 |
27 | module.exports.normal = function(message) {
28 | console.log(message)
29 | }
30 |
--------------------------------------------------------------------------------
/non_standard_commands/add-bucket.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var bucketConfig = require('../lib/bucket_config')
3 |
4 |
5 | function handler(options) {
6 | var invokedCmd = options.invokedCmd
7 | var Cosmic = options.Cosmic
8 |
9 |
10 | var params = {
11 | slug: invokedCmd.slug,
12 | title: invokedCmd.title,
13 | cluster: invokedCmd.cluster,
14 | media_folders: invokedCmd.media_folders,
15 | webhooks: invokedCmd.webhooks,
16 | extensions: invokedCmd.extensions
17 | }
18 |
19 | var res
20 | Cosmic.addBucket(params)
21 | .then(function(result) {
22 | res = result
23 | var bucket = {
24 | slug: result.bucket.slug,
25 | read_key: params.read_key,
26 | write_key: params.write_key
27 | }
28 | return bucketConfig.setBucket(bucket)
29 | })
30 | .then(function() {
31 | print.success('Success')
32 | console.log(res)
33 | process.exit()
34 | }).catch(function(err) {
35 | print.error('Error')
36 | console.log(err)
37 | process.exit(1)
38 | })
39 | }
40 |
41 | module.exports = handler
42 |
--------------------------------------------------------------------------------
/non_standard_commands/add-media.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var fs = require('fs')
3 | var upath = require('upath')
4 |
5 |
6 | function handler(options) {
7 | var invokedCmd = options.invokedCmd
8 | var bucket = options.bucket
9 |
10 | var buffer = fs.readFileSync(invokedCmd.file)
11 |
12 | var fileExt = upath.extname(invokedCmd.file)
13 | var originalname = upath.defaultExt(invokedCmd.title || 'media', fileExt)
14 | var media_object = { originalname: originalname, buffer: buffer }
15 |
16 | bucket.addMedia({
17 | media: media_object,
18 | folder: invokedCmd.folder,
19 | }).then(function(res) {
20 | print.success('Success')
21 | console.log(res)
22 | process.exit()
23 | }).catch(function(err) {
24 | print.error('Error')
25 | console.log(err)
26 | process.exit(1)
27 | })
28 | }
29 |
30 | module.exports = handler
31 |
--------------------------------------------------------------------------------
/non_standard_commands/begin.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 |
3 |
4 | function handler() {
5 | print.cosmic('Welcome to the Cosmic CLI! Everything you love about Cosmic, now at your fingertips on the command line!')
6 |
7 | print.underline('To get started, log in by issuing the command:')
8 |
9 | print.bold('cosmic login')
10 |
11 | console.log()
12 |
13 | print.normal('Then, connect to a bucket you want to work with:')
14 |
15 | print.bold('cosmic use-bucket')
16 |
17 | console.log()
18 |
19 | print.normal('Or create a new one!')
20 |
21 | print.bold('cosmic add-bucket')
22 |
23 | console.log()
24 |
25 | print.cosmic('And you\'re ready to go. Type `cosmic -h` to see the list of commands, and `cosmic [command] -h` to get details on a specific command.')
26 | }
27 |
28 | module.exports = handler
29 |
--------------------------------------------------------------------------------
/non_standard_commands/develop-command.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var request = require('request')
3 | var Cosmic = require('cosmicjs')
4 | var async = require('async')
5 | var exec = require('child_process').exec
6 | var bucketConfig = require('../lib/bucket_config')
7 | var bucket_opts = bucketConfig.getCosmicBucketOptions()
8 | var appConfig = require('../lib/app_config')
9 |
10 | function handler() {
11 |
12 | async.series([
13 | function() {
14 | var PORT = process.env.PORT || 3000
15 | console.log(bucket_opts.slug)
16 | var start_command = 'COSMIC_BUCKET=' + bucket_opts.slug + ' COSMIC_READ_KEY=' + bucket_opts.read_key + ' PORT=' + PORT + ' NODE_ENV=development npm run develop;'
17 | console.log(start_command)
18 | print.success('Starting app on port number ' + PORT + ' connected to Bucket ' + bucket_opts.slug + '. Open your browser to http://localhost:' + PORT)
19 | var child = exec(start_command, function(error, stdout, stderr) {
20 | if (error !== null) {
21 | console.log('exec error: ' + error)
22 | } else {
23 | print.success('App started!')
24 | }
25 | })
26 | child.stdout.on('data', function(data) {
27 | console.log(data)
28 | })
29 | }
30 | ])
31 | }
32 |
33 | module.exports = handler
34 |
--------------------------------------------------------------------------------
/non_standard_commands/get-buckets.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var Cosmic = require('cosmicjs')
3 |
4 | function handler(options) {
5 | var invokedCmd = options.invokedCmd
6 | Cosmic({
7 | token: options.token
8 | }).getBuckets().then(data => {
9 | if (!data) {
10 | print.error('Issue fetching buckets.')
11 | process.exit(1)
12 | }
13 | if (invokedCmd.json) {
14 | print.cosmic('Your Buckets (json format):')
15 | console.log(body.buckets)
16 | } else {
17 | print.cosmic('Your Buckets (title and slug):')
18 | console.log('')
19 | var buckets = data.buckets || []
20 | buckets.forEach(function(bucket) {
21 | console.log(bucket.title)
22 | print.cosmic(bucket.slug)
23 | console.log('')
24 | })
25 | }
26 | }).catch(err => {
27 | print.error(err)
28 | process.exit(1)
29 | })
30 | }
31 |
32 | module.exports = handler
33 |
--------------------------------------------------------------------------------
/non_standard_commands/get-projects.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var Cosmic = require('cosmicjs')
3 |
4 | function handler(options) {
5 | var invokedCmd = options.invokedCmd
6 | Cosmic({
7 | token: options.token
8 | }).getProjects().then(data => {
9 | if (!data) {
10 | print.error('Issue fetching buckets.')
11 | process.exit(1)
12 | }
13 | if (invokedCmd.json) {
14 | print.cosmic('Your Buckets (json format):')
15 | console.log(body.buckets)
16 | } else {
17 | print.cosmic('Your Buckets (title and slug):')
18 | console.log('')
19 | var buckets = data.buckets || []
20 | buckets.forEach(function(bucket) {
21 | console.log(bucket.title)
22 | print.cosmic(bucket.slug)
23 | console.log('')
24 | })
25 | }
26 | }).catch(err => {
27 | print.error(err)
28 | process.exit(1)
29 | })
30 | }
31 |
32 | module.exports = handler
33 |
--------------------------------------------------------------------------------
/non_standard_commands/index.js:
--------------------------------------------------------------------------------
1 | /*
2 | These scripts are for commands that are not part of the cosmic-node library
3 | and thus must be implemented by us
4 | */
5 |
6 | module.exports.login = require('./login')
7 | module.exports.whichUser = require('./which-user')
8 | module.exports.useBucket = require('./use-bucket')
9 | module.exports.whichBucket = require('./which-bucket')
10 | module.exports.addBucket = require('./add-bucket')
11 | module.exports.addMedia = require('./add-media')
12 | module.exports.begin = require('./begin')
13 | module.exports.getBuckets = require('./get-buckets')
14 | module.exports.getBuckets = require('./get-projects')
15 | module.exports.installStarter = require('./install-starter')
16 | module.exports.startCommand = require('./start-command')
17 | module.exports.developCommand = require('./develop-command')
18 |
--------------------------------------------------------------------------------
/non_standard_commands/install-starter.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var exec = require('child_process').exec
3 | var path = require('path')
4 | var inquirer = require('inquirer')
5 | var bucketConfig = require('../lib/bucket_config')
6 | var createNewBucketInquiry = require('../lib/create_bucket')
7 | function handler(options) {
8 | var invokedCmd = options.invokedCmd
9 | var argObj = options.argObj || {}
10 | var nameArg = argObj.argumentParamName === 'name' ? argObj.arg : null
11 | var repo_url = 'https://github.com/cosmicjs/' + nameArg
12 | var folder
13 | if (invokedCmd.folder)
14 | folder = invokedCmd.folder
15 | var bucketOpts = bucketConfig.getCosmicBucketOptions()
16 | if (!options.token) {
17 | print.normal('Error: User not set.')
18 | print.normal('Login to your Cosmic JS account by running the following command, or go to htps://cosmicjs.com to create a new account.')
19 | print.cosmic('cosmic login')
20 | return
21 | }
22 | var introQuestions
23 | if (!bucketOpts || !bucketOpts.slug) {
24 | introQuestions = handleNoBucketSet()
25 | } else {
26 | introQuestions = confirmCurrentOrNewBucket(bucketOpts)
27 | }
28 | introQuestions.then(function(bucketOpts) {
29 | if (!repo_url && !folder) {
30 | console.log('')
31 | print.error('Error. You must indicate a starter.')
32 | console.log('')
33 | console.log('For example:')
34 | console.log('cosmic init node-starter')
35 | console.log('')
36 | return
37 | }
38 | print.cosmic('Downloading...')
39 | exec('git clone ' + repo_url + (folder ? ' ' + folder : ''), function(error) {
40 | if (error !== null) {
41 | console.log('' + error)
42 | } else {
43 | print.success('Success!')
44 | var appPath = path.join(process.cwd(), (folder ? folder : nameArg))
45 | print.cosmic('Starter app code located at ' + appPath)
46 | print.cosmic('Installing...')
47 | const command = 'cd ./' + (folder ? folder : nameArg) + '; npm install; COSMIC_BUCKET=' + bucketOpts.slug + ' COSMIC_READ_KEY=' + bucketOpts.read_key + ' COSMIC_WRITE_KEY=' + bucketOpts.write_key + ' npm run import'
48 | exec(command, function(error) {
49 | print.success('Success! The starter content has been imported to your Bucket: ' + bucketOpts.slug)
50 | print.normal('')
51 | print.normal('Begin by typing the following commands:')
52 | print.normal('')
53 | print.cosmic('cd ' + (folder ? folder : nameArg))
54 | print.cosmic('cosmic start')
55 | print.normal(' Starts the app in production.')
56 | print.cosmic('cosmic develop')
57 | print.normal(' Starts the app in development.')
58 | }).stdout.on('data', function (data) {
59 | console.log(data.toString());
60 | })
61 | }
62 | })
63 | }).catch(function(err) {
64 | console.log(err)
65 | })
66 | }
67 |
68 | function confirmCurrentOrNewBucket(bucketOpts) {
69 | var questions = [
70 | {
71 | type: 'list',
72 | name: 'list',
73 | message: 'You are connected to ' + bucketOpts.slug + ' and will add default content from this starter. Would you like to keep using this bucket or create a new one?',
74 | choices: [
75 | {name: 'Use ' + bucketOpts.slug, value: 'old'},
76 | {name: 'Create new bucket', value: 'new'},
77 | {name: 'Cancel', value: 'cancel'}
78 | ]
79 | },
80 | ]
81 | return inquirer.prompt(questions)
82 | .then(function(answers) {
83 | switch (answers.list) {
84 | case 'old':
85 | return confirmOverwrite(bucketOpts)
86 | case 'new':
87 | return createNewBucketInquiry()
88 | case 'cancel':
89 | print.error('Install Cancelled')
90 | return process.exit(1)
91 | default:
92 | print.error('Unknown Option. Install cancelled')
93 | return process.exit(1)
94 | }
95 | })
96 | }
97 | function handleNoBucketSet() {
98 | var questions = [
99 | {
100 | type: 'list',
101 | name: 'list',
102 | message: 'You do not have a Bucket set. Please cancel and set one with the `use-bucket` command, or create a new Bucket. Would you like to:',
103 | choices: [
104 | {name: 'Create new Bucket', value: 'new'},
105 | {name: 'Cancel and connect to existing Bucket', value: 'cancel'}
106 | ]
107 | }
108 | ]
109 | return inquirer.prompt(questions).then(function(answers) {
110 | switch (answers.list) {
111 | case 'new':
112 | return createNewBucketInquiry()
113 | case 'cancel':
114 | print.normal('Select your Bucket using the `use-bucket` command. You can list your available Buckets using the `get-buckets` command.')
115 | print.cosmic('cosmic get-buckets')
116 | print.cosmic('cosmic use-bucket ')
117 | return process.exit(1)
118 | default:
119 | print.error('Unknown Option. Install cancelled')
120 | return process.exit(1)
121 | }
122 | })
123 | }
124 | function confirmOverwrite(bucketOpts) {
125 | var questions = [
126 | {
127 | type: 'confirm',
128 | name: 'confirm',
129 | message: 'Are you sure you want to import the starter content into the Bucket: ' + bucketOpts.slug + '?',
130 | },
131 | ]
132 | return inquirer.prompt(questions).then(function(answers) {
133 | if (!answers.confirm) {
134 | print.error('Install Cancelled')
135 | process.exit(1)
136 | return
137 | }
138 | return bucketOpts
139 | })
140 | }
141 | module.exports = handler
142 |
--------------------------------------------------------------------------------
/non_standard_commands/login.js:
--------------------------------------------------------------------------------
1 | var auth = require('../lib/cosmic_auth')
2 | var print = require('../lib/output')
3 |
4 |
5 | function handler() {
6 | auth.setToken(function(err, token) {
7 | if (err || !token) {
8 | print.error('Authentication Failed')
9 | process.exit(1)
10 | } else {
11 | print.success('Authenticated')
12 | process.exit()
13 | }
14 | })
15 | }
16 |
17 | module.exports = handler
18 |
--------------------------------------------------------------------------------
/non_standard_commands/start-command.js:
--------------------------------------------------------------------------------
1 | var print = require('../lib/output')
2 | var request = require('request')
3 | var Cosmic = require('cosmicjs')
4 | var async = require('async')
5 | var exec = require('child_process').exec
6 | var bucketConfig = require('../lib/bucket_config')
7 | var bucket_opts = bucketConfig.getCosmicBucketOptions()
8 | var appConfig = require('../lib/app_config')
9 |
10 | function handler() {
11 |
12 | async.series([
13 | function() {
14 | var PORT = process.env.PORT || 3000
15 | var start_command = __dirname + '/../node_modules/.bin/cross-env COSMIC_BUCKET=' + bucket_opts.slug + ' COSMIC_READ_KEY=' + bucket_opts.read_key + ' PORT=' + PORT + ' npm start;'
16 | console.log(start_command)
17 | print.success('Starting app on port number ' + PORT + ' connected to Bucket ' + bucket_opts.slug + '. Open your browser to http://localhost:' + PORT)
18 | var child = exec(start_command, function(error, stdout, stderr) {
19 | if (error !== null) {
20 | console.log('exec error: ' + error)
21 | } else {
22 | print.success('App started!')
23 | }
24 | })
25 | child.stdout.on('data', function(data) {
26 | console.log(data)
27 | })
28 | }
29 | ])
30 | }
31 |
32 | module.exports = handler
33 |
--------------------------------------------------------------------------------
/non_standard_commands/use-bucket.js:
--------------------------------------------------------------------------------
1 | var bucketConfig = require('../lib/bucket_config')
2 | var print = require('../lib/output')
3 |
4 | function handler(options) {
5 | var invokedCmd = options.invokedCmd
6 | var argObj = options.argObj || {}
7 |
8 | var slugArg = argObj.argumentParamName === 'slug' ? argObj.arg : null
9 |
10 | var bucket = {
11 | slug: slugArg || invokedCmd.slug || invokedCmd,
12 | read_key: invokedCmd.read_key,
13 | write_key: invokedCmd.write_key,
14 | }
15 | bucketConfig.setBucket(bucket)
16 | .then(function(options) {
17 | print.success('Now using Bucket ' + options.slug)
18 | process.exit()
19 | })
20 | .catch(function(err) {
21 | print.error(err.error)
22 | process.exit(1)
23 | })
24 | }
25 |
26 | module.exports = handler
27 |
--------------------------------------------------------------------------------
/non_standard_commands/which-bucket.js:
--------------------------------------------------------------------------------
1 | var bucketConfig = require('../lib/bucket_config')
2 | var print = require('../lib/output')
3 |
4 | function handler() {
5 | var bucket = bucketConfig.getCosmicBucketOptions()
6 | if (!bucket) {
7 | print.error('No active Bucket found')
8 | }
9 | print.cosmic('title: ' + bucket.title)
10 | print.cosmic('slug: ' + bucket.slug)
11 | }
12 |
13 | module.exports = handler
14 |
--------------------------------------------------------------------------------
/non_standard_commands/which-user.js:
--------------------------------------------------------------------------------
1 | var auth = require('../lib/cosmic_auth')
2 | var print = require('../lib/output')
3 |
4 |
5 | function handler() {
6 | var email = auth.getActiveEmail()
7 | if (!email) {
8 | print.error('No active user.')
9 | } else {
10 | print.cosmic(email)
11 | }
12 | }
13 |
14 | module.exports = handler
15 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cosmic-cli",
3 | "version": "2.1.2",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "acorn": {
8 | "version": "5.4.1",
9 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz",
10 | "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==",
11 | "dev": true
12 | },
13 | "acorn-jsx": {
14 | "version": "3.0.1",
15 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
16 | "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
17 | "dev": true,
18 | "requires": {
19 | "acorn": "^3.0.4"
20 | },
21 | "dependencies": {
22 | "acorn": {
23 | "version": "3.3.0",
24 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
25 | "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
26 | "dev": true
27 | }
28 | }
29 | },
30 | "ajv": {
31 | "version": "5.5.2",
32 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
33 | "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
34 | "requires": {
35 | "co": "^4.6.0",
36 | "fast-deep-equal": "^1.0.0",
37 | "fast-json-stable-stringify": "^2.0.0",
38 | "json-schema-traverse": "^0.3.0"
39 | }
40 | },
41 | "ajv-keywords": {
42 | "version": "3.1.0",
43 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz",
44 | "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=",
45 | "dev": true
46 | },
47 | "ansi-escapes": {
48 | "version": "3.2.0",
49 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
50 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
51 | },
52 | "ansi-regex": {
53 | "version": "3.0.0",
54 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
55 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
56 | },
57 | "ansi-styles": {
58 | "version": "3.2.0",
59 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
60 | "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
61 | "dev": true,
62 | "requires": {
63 | "color-convert": "^1.9.0"
64 | }
65 | },
66 | "argparse": {
67 | "version": "1.0.10",
68 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
69 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
70 | "dev": true,
71 | "requires": {
72 | "sprintf-js": "~1.0.2"
73 | }
74 | },
75 | "array-union": {
76 | "version": "1.0.2",
77 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
78 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
79 | "dev": true,
80 | "requires": {
81 | "array-uniq": "^1.0.1"
82 | }
83 | },
84 | "array-uniq": {
85 | "version": "1.0.3",
86 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
87 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
88 | "dev": true
89 | },
90 | "arrify": {
91 | "version": "1.0.1",
92 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
93 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
94 | "dev": true
95 | },
96 | "asn1": {
97 | "version": "0.2.3",
98 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
99 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
100 | },
101 | "assert-plus": {
102 | "version": "1.0.0",
103 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
104 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
105 | },
106 | "async": {
107 | "version": "2.6.0",
108 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
109 | "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
110 | "requires": {
111 | "lodash": "^4.14.0"
112 | }
113 | },
114 | "asynckit": {
115 | "version": "0.4.0",
116 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
117 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
118 | },
119 | "aws-sign2": {
120 | "version": "0.7.0",
121 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
122 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
123 | },
124 | "aws4": {
125 | "version": "1.6.0",
126 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
127 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
128 | },
129 | "axios": {
130 | "version": "0.21.1",
131 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
132 | "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
133 | "requires": {
134 | "follow-redirects": "^1.10.0"
135 | }
136 | },
137 | "babel-code-frame": {
138 | "version": "6.26.0",
139 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
140 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
141 | "dev": true,
142 | "requires": {
143 | "chalk": "^1.1.3",
144 | "esutils": "^2.0.2",
145 | "js-tokens": "^3.0.2"
146 | },
147 | "dependencies": {
148 | "ansi-regex": {
149 | "version": "2.1.1",
150 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
151 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
152 | "dev": true
153 | },
154 | "ansi-styles": {
155 | "version": "2.2.1",
156 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
157 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
158 | "dev": true
159 | },
160 | "chalk": {
161 | "version": "1.1.3",
162 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
163 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
164 | "dev": true,
165 | "requires": {
166 | "ansi-styles": "^2.2.1",
167 | "escape-string-regexp": "^1.0.2",
168 | "has-ansi": "^2.0.0",
169 | "strip-ansi": "^3.0.0",
170 | "supports-color": "^2.0.0"
171 | }
172 | },
173 | "strip-ansi": {
174 | "version": "3.0.1",
175 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
176 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
177 | "dev": true,
178 | "requires": {
179 | "ansi-regex": "^2.0.0"
180 | }
181 | },
182 | "supports-color": {
183 | "version": "2.0.0",
184 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
185 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
186 | "dev": true
187 | }
188 | }
189 | },
190 | "balanced-match": {
191 | "version": "1.0.0",
192 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
193 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
194 | "dev": true
195 | },
196 | "bcrypt-pbkdf": {
197 | "version": "1.0.1",
198 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
199 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
200 | "optional": true,
201 | "requires": {
202 | "tweetnacl": "^0.14.3"
203 | }
204 | },
205 | "boom": {
206 | "version": "4.3.1",
207 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
208 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
209 | "requires": {
210 | "hoek": "4.x.x"
211 | }
212 | },
213 | "brace-expansion": {
214 | "version": "1.1.11",
215 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
216 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
217 | "dev": true,
218 | "requires": {
219 | "balanced-match": "^1.0.0",
220 | "concat-map": "0.0.1"
221 | }
222 | },
223 | "builtin-modules": {
224 | "version": "1.1.1",
225 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
226 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
227 | "dev": true
228 | },
229 | "caller-path": {
230 | "version": "0.1.0",
231 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
232 | "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
233 | "dev": true,
234 | "requires": {
235 | "callsites": "^0.2.0"
236 | }
237 | },
238 | "callsites": {
239 | "version": "0.2.0",
240 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
241 | "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
242 | "dev": true
243 | },
244 | "caseless": {
245 | "version": "0.12.0",
246 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
247 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
248 | },
249 | "chalk": {
250 | "version": "2.3.1",
251 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz",
252 | "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==",
253 | "dev": true,
254 | "requires": {
255 | "ansi-styles": "^3.2.0",
256 | "escape-string-regexp": "^1.0.5",
257 | "supports-color": "^5.2.0"
258 | }
259 | },
260 | "chardet": {
261 | "version": "0.7.0",
262 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
263 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
264 | },
265 | "circular-json": {
266 | "version": "0.3.3",
267 | "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
268 | "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
269 | "dev": true
270 | },
271 | "cli-cursor": {
272 | "version": "2.1.0",
273 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
274 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
275 | "requires": {
276 | "restore-cursor": "^2.0.0"
277 | }
278 | },
279 | "cli-width": {
280 | "version": "2.2.0",
281 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
282 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
283 | },
284 | "co": {
285 | "version": "4.6.0",
286 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
287 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
288 | },
289 | "color-convert": {
290 | "version": "1.9.1",
291 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
292 | "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
293 | "requires": {
294 | "color-name": "^1.1.1"
295 | }
296 | },
297 | "color-name": {
298 | "version": "1.1.3",
299 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
300 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
301 | },
302 | "colors": {
303 | "version": "1.1.2",
304 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
305 | "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
306 | },
307 | "combined-stream": {
308 | "version": "1.0.6",
309 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
310 | "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
311 | "requires": {
312 | "delayed-stream": "~1.0.0"
313 | }
314 | },
315 | "commander": {
316 | "version": "2.9.0",
317 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
318 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
319 | "requires": {
320 | "graceful-readlink": ">= 1.0.0"
321 | }
322 | },
323 | "concat-map": {
324 | "version": "0.0.1",
325 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
326 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
327 | "dev": true
328 | },
329 | "concat-stream": {
330 | "version": "1.6.0",
331 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
332 | "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
333 | "dev": true,
334 | "requires": {
335 | "inherits": "^2.0.3",
336 | "readable-stream": "^2.2.2",
337 | "typedarray": "^0.0.6"
338 | }
339 | },
340 | "configstore": {
341 | "version": "3.1.1",
342 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz",
343 | "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==",
344 | "requires": {
345 | "dot-prop": "^4.1.0",
346 | "graceful-fs": "^4.1.2",
347 | "make-dir": "^1.0.0",
348 | "unique-string": "^1.0.0",
349 | "write-file-atomic": "^2.0.0",
350 | "xdg-basedir": "^3.0.0"
351 | }
352 | },
353 | "contains-path": {
354 | "version": "0.1.0",
355 | "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
356 | "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
357 | "dev": true
358 | },
359 | "core-util-is": {
360 | "version": "1.0.2",
361 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
362 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
363 | },
364 | "cosmicjs": {
365 | "version": "4.1.2",
366 | "resolved": "https://registry.npmjs.org/cosmicjs/-/cosmicjs-4.1.2.tgz",
367 | "integrity": "sha512-ngTcxWVkZ3h2G8MDosGHcss9Akzj0l+cyJ6h4aPWTqSlF0Yn5PaprBjv/mJVtwysCJjDgwYkXZTAtgADkPcj8w==",
368 | "requires": {
369 | "axios": "^0.21.1",
370 | "form-data": "^3.0.0"
371 | },
372 | "dependencies": {
373 | "combined-stream": {
374 | "version": "1.0.8",
375 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
376 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
377 | "requires": {
378 | "delayed-stream": "~1.0.0"
379 | }
380 | },
381 | "form-data": {
382 | "version": "3.0.1",
383 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
384 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
385 | "requires": {
386 | "asynckit": "^0.4.0",
387 | "combined-stream": "^1.0.8",
388 | "mime-types": "^2.1.12"
389 | }
390 | }
391 | }
392 | },
393 | "cross-env": {
394 | "version": "7.0.2",
395 | "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
396 | "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
397 | "requires": {
398 | "cross-spawn": "^7.0.1"
399 | },
400 | "dependencies": {
401 | "cross-spawn": {
402 | "version": "7.0.3",
403 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
404 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
405 | "requires": {
406 | "path-key": "^3.1.0",
407 | "shebang-command": "^2.0.0",
408 | "which": "^2.0.1"
409 | }
410 | },
411 | "shebang-command": {
412 | "version": "2.0.0",
413 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
414 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
415 | "requires": {
416 | "shebang-regex": "^3.0.0"
417 | }
418 | },
419 | "shebang-regex": {
420 | "version": "3.0.0",
421 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
422 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
423 | },
424 | "which": {
425 | "version": "2.0.2",
426 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
427 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
428 | "requires": {
429 | "isexe": "^2.0.0"
430 | }
431 | }
432 | }
433 | },
434 | "cross-spawn": {
435 | "version": "5.1.0",
436 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
437 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
438 | "dev": true,
439 | "requires": {
440 | "lru-cache": "^4.0.1",
441 | "shebang-command": "^1.2.0",
442 | "which": "^1.2.9"
443 | }
444 | },
445 | "cryptiles": {
446 | "version": "4.1.3",
447 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-4.1.3.tgz",
448 | "integrity": "sha512-gT9nyTMSUC1JnziQpPbxKGBbUg8VL7Zn2NB4E1cJYvuXdElHrwxrV9bmltZGDzet45zSDGyYceueke1TjynGzw==",
449 | "requires": {
450 | "boom": "7.x.x"
451 | },
452 | "dependencies": {
453 | "boom": {
454 | "version": "7.3.0",
455 | "resolved": "https://registry.npmjs.org/boom/-/boom-7.3.0.tgz",
456 | "integrity": "sha512-Swpoyi2t5+GhOEGw8rEsKvTxFLIDiiKoUc2gsoV6Lyr43LHBIzch3k2MvYUs8RTROrIkVJ3Al0TkaOGjnb+B6A==",
457 | "requires": {
458 | "hoek": "6.x.x"
459 | }
460 | },
461 | "hoek": {
462 | "version": "6.1.2",
463 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.2.tgz",
464 | "integrity": "sha512-6qhh/wahGYZHFSFw12tBbJw5fsAhhwrrG/y3Cs0YMTv2WzMnL0oLPnQJjv1QJvEfylRSOFuP+xCu+tdx0tD16Q=="
465 | }
466 | }
467 | },
468 | "crypto-random-string": {
469 | "version": "1.0.0",
470 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
471 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4="
472 | },
473 | "dashdash": {
474 | "version": "1.14.1",
475 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
476 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
477 | "requires": {
478 | "assert-plus": "^1.0.0"
479 | }
480 | },
481 | "debug": {
482 | "version": "3.1.0",
483 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
484 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
485 | "dev": true,
486 | "requires": {
487 | "ms": "2.0.0"
488 | }
489 | },
490 | "deep-is": {
491 | "version": "0.1.3",
492 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
493 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
494 | "dev": true
495 | },
496 | "del": {
497 | "version": "2.2.2",
498 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
499 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
500 | "dev": true,
501 | "requires": {
502 | "globby": "^5.0.0",
503 | "is-path-cwd": "^1.0.0",
504 | "is-path-in-cwd": "^1.0.0",
505 | "object-assign": "^4.0.1",
506 | "pify": "^2.0.0",
507 | "pinkie-promise": "^2.0.0",
508 | "rimraf": "^2.2.8"
509 | }
510 | },
511 | "delayed-stream": {
512 | "version": "1.0.0",
513 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
514 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
515 | },
516 | "doctrine": {
517 | "version": "2.1.0",
518 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
519 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
520 | "dev": true,
521 | "requires": {
522 | "esutils": "^2.0.2"
523 | }
524 | },
525 | "dot-prop": {
526 | "version": "4.2.0",
527 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
528 | "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
529 | "requires": {
530 | "is-obj": "^1.0.0"
531 | }
532 | },
533 | "ecc-jsbn": {
534 | "version": "0.1.1",
535 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
536 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
537 | "optional": true,
538 | "requires": {
539 | "jsbn": "~0.1.0"
540 | }
541 | },
542 | "error-ex": {
543 | "version": "1.3.1",
544 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
545 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
546 | "dev": true,
547 | "requires": {
548 | "is-arrayish": "^0.2.1"
549 | }
550 | },
551 | "escape-string-regexp": {
552 | "version": "1.0.5",
553 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
554 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
555 | },
556 | "eslint": {
557 | "version": "4.18.1",
558 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.1.tgz",
559 | "integrity": "sha512-gPSfpSRCHre1GLxGmO68tZNxOlL2y7xBd95VcLD+Eo4S2js31YoMum3CAQIOaxY24hqYOMksMvW38xuuWKQTgw==",
560 | "dev": true,
561 | "requires": {
562 | "ajv": "^5.3.0",
563 | "babel-code-frame": "^6.22.0",
564 | "chalk": "^2.1.0",
565 | "concat-stream": "^1.6.0",
566 | "cross-spawn": "^5.1.0",
567 | "debug": "^3.1.0",
568 | "doctrine": "^2.1.0",
569 | "eslint-scope": "^3.7.1",
570 | "eslint-visitor-keys": "^1.0.0",
571 | "espree": "^3.5.2",
572 | "esquery": "^1.0.0",
573 | "esutils": "^2.0.2",
574 | "file-entry-cache": "^2.0.0",
575 | "functional-red-black-tree": "^1.0.1",
576 | "glob": "^7.1.2",
577 | "globals": "^11.0.1",
578 | "ignore": "^3.3.3",
579 | "imurmurhash": "^0.1.4",
580 | "inquirer": "^3.0.6",
581 | "is-resolvable": "^1.0.0",
582 | "js-yaml": "^3.9.1",
583 | "json-stable-stringify-without-jsonify": "^1.0.1",
584 | "levn": "^0.3.0",
585 | "lodash": "^4.17.4",
586 | "minimatch": "^3.0.2",
587 | "mkdirp": "^0.5.1",
588 | "natural-compare": "^1.4.0",
589 | "optionator": "^0.8.2",
590 | "path-is-inside": "^1.0.2",
591 | "pluralize": "^7.0.0",
592 | "progress": "^2.0.0",
593 | "require-uncached": "^1.0.3",
594 | "semver": "^5.3.0",
595 | "strip-ansi": "^4.0.0",
596 | "strip-json-comments": "~2.0.1",
597 | "table": "^4.0.1",
598 | "text-table": "~0.2.0"
599 | },
600 | "dependencies": {
601 | "chardet": {
602 | "version": "0.4.2",
603 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
604 | "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
605 | "dev": true
606 | },
607 | "external-editor": {
608 | "version": "2.2.0",
609 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
610 | "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
611 | "dev": true,
612 | "requires": {
613 | "chardet": "^0.4.0",
614 | "iconv-lite": "^0.4.17",
615 | "tmp": "^0.0.33"
616 | }
617 | },
618 | "inquirer": {
619 | "version": "3.3.0",
620 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
621 | "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
622 | "dev": true,
623 | "requires": {
624 | "ansi-escapes": "^3.0.0",
625 | "chalk": "^2.0.0",
626 | "cli-cursor": "^2.1.0",
627 | "cli-width": "^2.0.0",
628 | "external-editor": "^2.0.4",
629 | "figures": "^2.0.0",
630 | "lodash": "^4.3.0",
631 | "mute-stream": "0.0.7",
632 | "run-async": "^2.2.0",
633 | "rx-lite": "^4.0.8",
634 | "rx-lite-aggregates": "^4.0.8",
635 | "string-width": "^2.1.0",
636 | "strip-ansi": "^4.0.0",
637 | "through": "^2.3.6"
638 | }
639 | }
640 | }
641 | },
642 | "eslint-config-airbnb-base": {
643 | "version": "12.1.0",
644 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz",
645 | "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==",
646 | "dev": true,
647 | "requires": {
648 | "eslint-restricted-globals": "^0.1.1"
649 | }
650 | },
651 | "eslint-import-resolver-node": {
652 | "version": "0.3.2",
653 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
654 | "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
655 | "dev": true,
656 | "requires": {
657 | "debug": "^2.6.9",
658 | "resolve": "^1.5.0"
659 | },
660 | "dependencies": {
661 | "debug": {
662 | "version": "2.6.9",
663 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
664 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
665 | "dev": true,
666 | "requires": {
667 | "ms": "2.0.0"
668 | }
669 | }
670 | }
671 | },
672 | "eslint-module-utils": {
673 | "version": "2.1.1",
674 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
675 | "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
676 | "dev": true,
677 | "requires": {
678 | "debug": "^2.6.8",
679 | "pkg-dir": "^1.0.0"
680 | },
681 | "dependencies": {
682 | "debug": {
683 | "version": "2.6.9",
684 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
685 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
686 | "dev": true,
687 | "requires": {
688 | "ms": "2.0.0"
689 | }
690 | }
691 | }
692 | },
693 | "eslint-plugin-import": {
694 | "version": "2.9.0",
695 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz",
696 | "integrity": "sha1-JgAu+/ylmJtyiKwEdQi9JPIXsWk=",
697 | "dev": true,
698 | "requires": {
699 | "builtin-modules": "^1.1.1",
700 | "contains-path": "^0.1.0",
701 | "debug": "^2.6.8",
702 | "doctrine": "1.5.0",
703 | "eslint-import-resolver-node": "^0.3.1",
704 | "eslint-module-utils": "^2.1.1",
705 | "has": "^1.0.1",
706 | "lodash": "^4.17.4",
707 | "minimatch": "^3.0.3",
708 | "read-pkg-up": "^2.0.0"
709 | },
710 | "dependencies": {
711 | "debug": {
712 | "version": "2.6.9",
713 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
714 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
715 | "dev": true,
716 | "requires": {
717 | "ms": "2.0.0"
718 | }
719 | },
720 | "doctrine": {
721 | "version": "1.5.0",
722 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
723 | "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
724 | "dev": true,
725 | "requires": {
726 | "esutils": "^2.0.2",
727 | "isarray": "^1.0.0"
728 | }
729 | }
730 | }
731 | },
732 | "eslint-restricted-globals": {
733 | "version": "0.1.1",
734 | "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
735 | "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
736 | "dev": true
737 | },
738 | "eslint-scope": {
739 | "version": "3.7.1",
740 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
741 | "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
742 | "dev": true,
743 | "requires": {
744 | "esrecurse": "^4.1.0",
745 | "estraverse": "^4.1.1"
746 | }
747 | },
748 | "eslint-visitor-keys": {
749 | "version": "1.0.0",
750 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
751 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
752 | "dev": true
753 | },
754 | "espree": {
755 | "version": "3.5.3",
756 | "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.3.tgz",
757 | "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==",
758 | "dev": true,
759 | "requires": {
760 | "acorn": "^5.4.0",
761 | "acorn-jsx": "^3.0.0"
762 | }
763 | },
764 | "esprima": {
765 | "version": "4.0.0",
766 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
767 | "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
768 | "dev": true
769 | },
770 | "esquery": {
771 | "version": "1.0.0",
772 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
773 | "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
774 | "dev": true,
775 | "requires": {
776 | "estraverse": "^4.0.0"
777 | }
778 | },
779 | "esrecurse": {
780 | "version": "4.2.0",
781 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
782 | "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
783 | "dev": true,
784 | "requires": {
785 | "estraverse": "^4.1.0",
786 | "object-assign": "^4.0.1"
787 | }
788 | },
789 | "estraverse": {
790 | "version": "4.2.0",
791 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
792 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
793 | "dev": true
794 | },
795 | "esutils": {
796 | "version": "2.0.2",
797 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
798 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
799 | "dev": true
800 | },
801 | "extend": {
802 | "version": "3.0.1",
803 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
804 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
805 | },
806 | "external-editor": {
807 | "version": "3.0.3",
808 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
809 | "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
810 | "requires": {
811 | "chardet": "^0.7.0",
812 | "iconv-lite": "^0.4.24",
813 | "tmp": "^0.0.33"
814 | },
815 | "dependencies": {
816 | "iconv-lite": {
817 | "version": "0.4.24",
818 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
819 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
820 | "requires": {
821 | "safer-buffer": ">= 2.1.2 < 3"
822 | }
823 | }
824 | }
825 | },
826 | "extsprintf": {
827 | "version": "1.3.0",
828 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
829 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
830 | },
831 | "fast-deep-equal": {
832 | "version": "1.0.0",
833 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
834 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
835 | },
836 | "fast-json-stable-stringify": {
837 | "version": "2.0.0",
838 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
839 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
840 | },
841 | "fast-levenshtein": {
842 | "version": "2.0.6",
843 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
844 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
845 | "dev": true
846 | },
847 | "figures": {
848 | "version": "2.0.0",
849 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
850 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
851 | "requires": {
852 | "escape-string-regexp": "^1.0.5"
853 | }
854 | },
855 | "file-entry-cache": {
856 | "version": "2.0.0",
857 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
858 | "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
859 | "dev": true,
860 | "requires": {
861 | "flat-cache": "^1.2.1",
862 | "object-assign": "^4.0.1"
863 | }
864 | },
865 | "find-up": {
866 | "version": "1.1.2",
867 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
868 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
869 | "dev": true,
870 | "requires": {
871 | "path-exists": "^2.0.0",
872 | "pinkie-promise": "^2.0.0"
873 | }
874 | },
875 | "flat-cache": {
876 | "version": "1.3.0",
877 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
878 | "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
879 | "dev": true,
880 | "requires": {
881 | "circular-json": "^0.3.1",
882 | "del": "^2.0.2",
883 | "graceful-fs": "^4.1.2",
884 | "write": "^0.2.1"
885 | }
886 | },
887 | "follow-redirects": {
888 | "version": "1.14.1",
889 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz",
890 | "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg=="
891 | },
892 | "forever-agent": {
893 | "version": "0.6.1",
894 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
895 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
896 | },
897 | "form-data": {
898 | "version": "2.3.2",
899 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
900 | "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
901 | "requires": {
902 | "asynckit": "^0.4.0",
903 | "combined-stream": "1.0.6",
904 | "mime-types": "^2.1.12"
905 | }
906 | },
907 | "fs.realpath": {
908 | "version": "1.0.0",
909 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
910 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
911 | "dev": true
912 | },
913 | "function-bind": {
914 | "version": "1.1.1",
915 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
916 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
917 | "dev": true
918 | },
919 | "functional-red-black-tree": {
920 | "version": "1.0.1",
921 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
922 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
923 | "dev": true
924 | },
925 | "getpass": {
926 | "version": "0.1.7",
927 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
928 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
929 | "requires": {
930 | "assert-plus": "^1.0.0"
931 | }
932 | },
933 | "glob": {
934 | "version": "7.1.2",
935 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
936 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
937 | "dev": true,
938 | "requires": {
939 | "fs.realpath": "^1.0.0",
940 | "inflight": "^1.0.4",
941 | "inherits": "2",
942 | "minimatch": "^3.0.4",
943 | "once": "^1.3.0",
944 | "path-is-absolute": "^1.0.0"
945 | }
946 | },
947 | "globals": {
948 | "version": "11.3.0",
949 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz",
950 | "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==",
951 | "dev": true
952 | },
953 | "globby": {
954 | "version": "5.0.0",
955 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
956 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
957 | "dev": true,
958 | "requires": {
959 | "array-union": "^1.0.1",
960 | "arrify": "^1.0.0",
961 | "glob": "^7.0.3",
962 | "object-assign": "^4.0.1",
963 | "pify": "^2.0.0",
964 | "pinkie-promise": "^2.0.0"
965 | }
966 | },
967 | "graceful-fs": {
968 | "version": "4.1.11",
969 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
970 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
971 | },
972 | "graceful-readlink": {
973 | "version": "1.0.1",
974 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
975 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
976 | },
977 | "har-schema": {
978 | "version": "2.0.0",
979 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
980 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
981 | },
982 | "har-validator": {
983 | "version": "5.0.3",
984 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
985 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
986 | "requires": {
987 | "ajv": "^5.1.0",
988 | "har-schema": "^2.0.0"
989 | }
990 | },
991 | "has": {
992 | "version": "1.0.1",
993 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
994 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
995 | "dev": true,
996 | "requires": {
997 | "function-bind": "^1.0.2"
998 | }
999 | },
1000 | "has-ansi": {
1001 | "version": "2.0.0",
1002 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1003 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1004 | "dev": true,
1005 | "requires": {
1006 | "ansi-regex": "^2.0.0"
1007 | },
1008 | "dependencies": {
1009 | "ansi-regex": {
1010 | "version": "2.1.1",
1011 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1012 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
1013 | "dev": true
1014 | }
1015 | }
1016 | },
1017 | "has-flag": {
1018 | "version": "3.0.0",
1019 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1020 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
1021 | },
1022 | "hawk": {
1023 | "version": "6.0.2",
1024 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
1025 | "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
1026 | "requires": {
1027 | "boom": "4.x.x",
1028 | "cryptiles": "3.x.x",
1029 | "hoek": "4.x.x",
1030 | "sntp": "2.x.x"
1031 | },
1032 | "dependencies": {
1033 | "cryptiles": {
1034 | "version": "3.1.4",
1035 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.4.tgz",
1036 | "integrity": "sha512-8I1sgZHfVwcSOY6mSGpVU3lw/GSIZvusg8dD2+OGehCJpOhQRLNcH0qb9upQnOH4XhgxxFJSg6E2kx95deb1Tw==",
1037 | "requires": {
1038 | "boom": "5.x.x"
1039 | },
1040 | "dependencies": {
1041 | "boom": {
1042 | "version": "5.2.0",
1043 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
1044 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
1045 | "requires": {
1046 | "hoek": "4.x.x"
1047 | }
1048 | }
1049 | }
1050 | }
1051 | }
1052 | },
1053 | "hoek": {
1054 | "version": "4.2.1",
1055 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
1056 | "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA=="
1057 | },
1058 | "hosted-git-info": {
1059 | "version": "2.5.0",
1060 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
1061 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
1062 | "dev": true
1063 | },
1064 | "http-signature": {
1065 | "version": "1.2.0",
1066 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1067 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1068 | "requires": {
1069 | "assert-plus": "^1.0.0",
1070 | "jsprim": "^1.2.2",
1071 | "sshpk": "^1.7.0"
1072 | }
1073 | },
1074 | "iconv-lite": {
1075 | "version": "0.4.19",
1076 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
1077 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
1078 | "dev": true
1079 | },
1080 | "ignore": {
1081 | "version": "3.3.7",
1082 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
1083 | "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
1084 | "dev": true
1085 | },
1086 | "imurmurhash": {
1087 | "version": "0.1.4",
1088 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1089 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
1090 | },
1091 | "inflight": {
1092 | "version": "1.0.6",
1093 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1094 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1095 | "dev": true,
1096 | "requires": {
1097 | "once": "^1.3.0",
1098 | "wrappy": "1"
1099 | }
1100 | },
1101 | "inherits": {
1102 | "version": "2.0.3",
1103 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1104 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1105 | "dev": true
1106 | },
1107 | "inquirer": {
1108 | "version": "6.2.2",
1109 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.2.tgz",
1110 | "integrity": "sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==",
1111 | "requires": {
1112 | "ansi-escapes": "^3.2.0",
1113 | "chalk": "^2.4.2",
1114 | "cli-cursor": "^2.1.0",
1115 | "cli-width": "^2.0.0",
1116 | "external-editor": "^3.0.3",
1117 | "figures": "^2.0.0",
1118 | "lodash": "^4.17.11",
1119 | "mute-stream": "0.0.7",
1120 | "run-async": "^2.2.0",
1121 | "rxjs": "^6.4.0",
1122 | "string-width": "^2.1.0",
1123 | "strip-ansi": "^5.0.0",
1124 | "through": "^2.3.6"
1125 | },
1126 | "dependencies": {
1127 | "ansi-regex": {
1128 | "version": "4.0.0",
1129 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
1130 | "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w=="
1131 | },
1132 | "ansi-styles": {
1133 | "version": "3.2.1",
1134 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1135 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1136 | "requires": {
1137 | "color-convert": "^1.9.0"
1138 | }
1139 | },
1140 | "chalk": {
1141 | "version": "2.4.2",
1142 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1143 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1144 | "requires": {
1145 | "ansi-styles": "^3.2.1",
1146 | "escape-string-regexp": "^1.0.5",
1147 | "supports-color": "^5.3.0"
1148 | }
1149 | },
1150 | "lodash": {
1151 | "version": "4.17.11",
1152 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
1153 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
1154 | },
1155 | "strip-ansi": {
1156 | "version": "5.0.0",
1157 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
1158 | "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
1159 | "requires": {
1160 | "ansi-regex": "^4.0.0"
1161 | }
1162 | },
1163 | "supports-color": {
1164 | "version": "5.5.0",
1165 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1166 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1167 | "requires": {
1168 | "has-flag": "^3.0.0"
1169 | }
1170 | }
1171 | }
1172 | },
1173 | "is-arrayish": {
1174 | "version": "0.2.1",
1175 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1176 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1177 | "dev": true
1178 | },
1179 | "is-builtin-module": {
1180 | "version": "1.0.0",
1181 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
1182 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
1183 | "dev": true,
1184 | "requires": {
1185 | "builtin-modules": "^1.0.0"
1186 | }
1187 | },
1188 | "is-fullwidth-code-point": {
1189 | "version": "2.0.0",
1190 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1191 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
1192 | },
1193 | "is-obj": {
1194 | "version": "1.0.1",
1195 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1196 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
1197 | },
1198 | "is-path-cwd": {
1199 | "version": "1.0.0",
1200 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
1201 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
1202 | "dev": true
1203 | },
1204 | "is-path-in-cwd": {
1205 | "version": "1.0.0",
1206 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
1207 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
1208 | "dev": true,
1209 | "requires": {
1210 | "is-path-inside": "^1.0.0"
1211 | }
1212 | },
1213 | "is-path-inside": {
1214 | "version": "1.0.1",
1215 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
1216 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
1217 | "dev": true,
1218 | "requires": {
1219 | "path-is-inside": "^1.0.1"
1220 | }
1221 | },
1222 | "is-promise": {
1223 | "version": "2.1.0",
1224 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
1225 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
1226 | },
1227 | "is-resolvable": {
1228 | "version": "1.1.0",
1229 | "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
1230 | "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
1231 | "dev": true
1232 | },
1233 | "is-typedarray": {
1234 | "version": "1.0.0",
1235 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1236 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
1237 | },
1238 | "is-wsl": {
1239 | "version": "1.1.0",
1240 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
1241 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0="
1242 | },
1243 | "isarray": {
1244 | "version": "1.0.0",
1245 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1246 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1247 | "dev": true
1248 | },
1249 | "isexe": {
1250 | "version": "2.0.0",
1251 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1252 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
1253 | },
1254 | "isstream": {
1255 | "version": "0.1.2",
1256 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1257 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
1258 | },
1259 | "js-tokens": {
1260 | "version": "3.0.2",
1261 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
1262 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
1263 | "dev": true
1264 | },
1265 | "js-yaml": {
1266 | "version": "3.10.0",
1267 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
1268 | "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
1269 | "dev": true,
1270 | "requires": {
1271 | "argparse": "^1.0.7",
1272 | "esprima": "^4.0.0"
1273 | }
1274 | },
1275 | "jsbn": {
1276 | "version": "0.1.1",
1277 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1278 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1279 | "optional": true
1280 | },
1281 | "json-schema": {
1282 | "version": "0.2.3",
1283 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1284 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
1285 | },
1286 | "json-schema-traverse": {
1287 | "version": "0.3.1",
1288 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
1289 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
1290 | },
1291 | "json-stable-stringify-without-jsonify": {
1292 | "version": "1.0.1",
1293 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1294 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1295 | "dev": true
1296 | },
1297 | "json-stringify-safe": {
1298 | "version": "5.0.1",
1299 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1300 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
1301 | },
1302 | "jsprim": {
1303 | "version": "1.4.1",
1304 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1305 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1306 | "requires": {
1307 | "assert-plus": "1.0.0",
1308 | "extsprintf": "1.3.0",
1309 | "json-schema": "0.2.3",
1310 | "verror": "1.10.0"
1311 | }
1312 | },
1313 | "levn": {
1314 | "version": "0.3.0",
1315 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1316 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
1317 | "dev": true,
1318 | "requires": {
1319 | "prelude-ls": "~1.1.2",
1320 | "type-check": "~0.3.2"
1321 | }
1322 | },
1323 | "load-json-file": {
1324 | "version": "2.0.0",
1325 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
1326 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
1327 | "dev": true,
1328 | "requires": {
1329 | "graceful-fs": "^4.1.2",
1330 | "parse-json": "^2.2.0",
1331 | "pify": "^2.0.0",
1332 | "strip-bom": "^3.0.0"
1333 | }
1334 | },
1335 | "locate-path": {
1336 | "version": "2.0.0",
1337 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1338 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1339 | "dev": true,
1340 | "requires": {
1341 | "p-locate": "^2.0.0",
1342 | "path-exists": "^3.0.0"
1343 | },
1344 | "dependencies": {
1345 | "path-exists": {
1346 | "version": "3.0.0",
1347 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1348 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1349 | "dev": true
1350 | }
1351 | }
1352 | },
1353 | "lodash": {
1354 | "version": "4.17.5",
1355 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
1356 | "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
1357 | },
1358 | "lru-cache": {
1359 | "version": "4.1.1",
1360 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
1361 | "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
1362 | "dev": true,
1363 | "requires": {
1364 | "pseudomap": "^1.0.2",
1365 | "yallist": "^2.1.2"
1366 | }
1367 | },
1368 | "make-dir": {
1369 | "version": "1.2.0",
1370 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz",
1371 | "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==",
1372 | "requires": {
1373 | "pify": "^3.0.0"
1374 | },
1375 | "dependencies": {
1376 | "pify": {
1377 | "version": "3.0.0",
1378 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1379 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
1380 | }
1381 | }
1382 | },
1383 | "mime-db": {
1384 | "version": "1.33.0",
1385 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
1386 | "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
1387 | },
1388 | "mime-types": {
1389 | "version": "2.1.18",
1390 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
1391 | "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
1392 | "requires": {
1393 | "mime-db": "~1.33.0"
1394 | }
1395 | },
1396 | "mimic-fn": {
1397 | "version": "1.2.0",
1398 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
1399 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
1400 | },
1401 | "minimatch": {
1402 | "version": "3.0.4",
1403 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1404 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1405 | "dev": true,
1406 | "requires": {
1407 | "brace-expansion": "^1.1.7"
1408 | }
1409 | },
1410 | "minimist": {
1411 | "version": "0.0.8",
1412 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1413 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1414 | "dev": true
1415 | },
1416 | "mkdirp": {
1417 | "version": "0.5.1",
1418 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1419 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1420 | "dev": true,
1421 | "requires": {
1422 | "minimist": "0.0.8"
1423 | }
1424 | },
1425 | "ms": {
1426 | "version": "2.0.0",
1427 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1428 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1429 | "dev": true
1430 | },
1431 | "mute-stream": {
1432 | "version": "0.0.7",
1433 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
1434 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
1435 | },
1436 | "natural-compare": {
1437 | "version": "1.4.0",
1438 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1439 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1440 | "dev": true
1441 | },
1442 | "normalize-package-data": {
1443 | "version": "2.4.0",
1444 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
1445 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
1446 | "dev": true,
1447 | "requires": {
1448 | "hosted-git-info": "^2.1.4",
1449 | "is-builtin-module": "^1.0.0",
1450 | "semver": "2 || 3 || 4 || 5",
1451 | "validate-npm-package-license": "^3.0.1"
1452 | }
1453 | },
1454 | "oauth-sign": {
1455 | "version": "0.8.2",
1456 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
1457 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM="
1458 | },
1459 | "object-assign": {
1460 | "version": "4.1.1",
1461 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1462 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1463 | "dev": true
1464 | },
1465 | "once": {
1466 | "version": "1.4.0",
1467 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1468 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1469 | "dev": true,
1470 | "requires": {
1471 | "wrappy": "1"
1472 | }
1473 | },
1474 | "onetime": {
1475 | "version": "2.0.1",
1476 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
1477 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
1478 | "requires": {
1479 | "mimic-fn": "^1.0.0"
1480 | }
1481 | },
1482 | "opn": {
1483 | "version": "5.3.0",
1484 | "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
1485 | "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
1486 | "requires": {
1487 | "is-wsl": "^1.1.0"
1488 | }
1489 | },
1490 | "optionator": {
1491 | "version": "0.8.2",
1492 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
1493 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
1494 | "dev": true,
1495 | "requires": {
1496 | "deep-is": "~0.1.3",
1497 | "fast-levenshtein": "~2.0.4",
1498 | "levn": "~0.3.0",
1499 | "prelude-ls": "~1.1.2",
1500 | "type-check": "~0.3.2",
1501 | "wordwrap": "~1.0.0"
1502 | }
1503 | },
1504 | "os-tmpdir": {
1505 | "version": "1.0.2",
1506 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1507 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
1508 | },
1509 | "p-limit": {
1510 | "version": "1.2.0",
1511 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
1512 | "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
1513 | "dev": true,
1514 | "requires": {
1515 | "p-try": "^1.0.0"
1516 | }
1517 | },
1518 | "p-locate": {
1519 | "version": "2.0.0",
1520 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1521 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
1522 | "dev": true,
1523 | "requires": {
1524 | "p-limit": "^1.1.0"
1525 | }
1526 | },
1527 | "p-try": {
1528 | "version": "1.0.0",
1529 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1530 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
1531 | "dev": true
1532 | },
1533 | "parse-json": {
1534 | "version": "2.2.0",
1535 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
1536 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
1537 | "dev": true,
1538 | "requires": {
1539 | "error-ex": "^1.2.0"
1540 | }
1541 | },
1542 | "path-exists": {
1543 | "version": "2.1.0",
1544 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
1545 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
1546 | "dev": true,
1547 | "requires": {
1548 | "pinkie-promise": "^2.0.0"
1549 | }
1550 | },
1551 | "path-is-absolute": {
1552 | "version": "1.0.1",
1553 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1554 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1555 | "dev": true
1556 | },
1557 | "path-is-inside": {
1558 | "version": "1.0.2",
1559 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1560 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1561 | "dev": true
1562 | },
1563 | "path-key": {
1564 | "version": "3.1.1",
1565 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1566 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
1567 | },
1568 | "path-parse": {
1569 | "version": "1.0.5",
1570 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
1571 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
1572 | "dev": true
1573 | },
1574 | "path-type": {
1575 | "version": "2.0.0",
1576 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
1577 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
1578 | "dev": true,
1579 | "requires": {
1580 | "pify": "^2.0.0"
1581 | }
1582 | },
1583 | "performance-now": {
1584 | "version": "2.1.0",
1585 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1586 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1587 | },
1588 | "pify": {
1589 | "version": "2.3.0",
1590 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1591 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
1592 | "dev": true
1593 | },
1594 | "pinkie": {
1595 | "version": "2.0.4",
1596 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1597 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1598 | "dev": true
1599 | },
1600 | "pinkie-promise": {
1601 | "version": "2.0.1",
1602 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1603 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1604 | "dev": true,
1605 | "requires": {
1606 | "pinkie": "^2.0.0"
1607 | }
1608 | },
1609 | "pkg-dir": {
1610 | "version": "1.0.0",
1611 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
1612 | "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
1613 | "dev": true,
1614 | "requires": {
1615 | "find-up": "^1.0.0"
1616 | }
1617 | },
1618 | "pluralize": {
1619 | "version": "7.0.0",
1620 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
1621 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
1622 | "dev": true
1623 | },
1624 | "prelude-ls": {
1625 | "version": "1.1.2",
1626 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1627 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1628 | "dev": true
1629 | },
1630 | "process-nextick-args": {
1631 | "version": "2.0.0",
1632 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1633 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
1634 | "dev": true
1635 | },
1636 | "progress": {
1637 | "version": "2.0.0",
1638 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
1639 | "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
1640 | "dev": true
1641 | },
1642 | "pseudomap": {
1643 | "version": "1.0.2",
1644 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
1645 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
1646 | "dev": true
1647 | },
1648 | "punycode": {
1649 | "version": "1.4.1",
1650 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1651 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
1652 | },
1653 | "qs": {
1654 | "version": "6.5.1",
1655 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
1656 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
1657 | },
1658 | "read-pkg": {
1659 | "version": "2.0.0",
1660 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
1661 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
1662 | "dev": true,
1663 | "requires": {
1664 | "load-json-file": "^2.0.0",
1665 | "normalize-package-data": "^2.3.2",
1666 | "path-type": "^2.0.0"
1667 | }
1668 | },
1669 | "read-pkg-up": {
1670 | "version": "2.0.0",
1671 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
1672 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
1673 | "dev": true,
1674 | "requires": {
1675 | "find-up": "^2.0.0",
1676 | "read-pkg": "^2.0.0"
1677 | },
1678 | "dependencies": {
1679 | "find-up": {
1680 | "version": "2.1.0",
1681 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1682 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1683 | "dev": true,
1684 | "requires": {
1685 | "locate-path": "^2.0.0"
1686 | }
1687 | }
1688 | }
1689 | },
1690 | "readable-stream": {
1691 | "version": "2.3.4",
1692 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz",
1693 | "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==",
1694 | "dev": true,
1695 | "requires": {
1696 | "core-util-is": "~1.0.0",
1697 | "inherits": "~2.0.3",
1698 | "isarray": "~1.0.0",
1699 | "process-nextick-args": "~2.0.0",
1700 | "safe-buffer": "~5.1.1",
1701 | "string_decoder": "~1.0.3",
1702 | "util-deprecate": "~1.0.1"
1703 | }
1704 | },
1705 | "request": {
1706 | "version": "2.83.0",
1707 | "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
1708 | "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
1709 | "requires": {
1710 | "aws-sign2": "~0.7.0",
1711 | "aws4": "^1.6.0",
1712 | "caseless": "~0.12.0",
1713 | "combined-stream": "~1.0.5",
1714 | "extend": "~3.0.1",
1715 | "forever-agent": "~0.6.1",
1716 | "form-data": "~2.3.1",
1717 | "har-validator": "~5.0.3",
1718 | "hawk": "~6.0.2",
1719 | "http-signature": "~1.2.0",
1720 | "is-typedarray": "~1.0.0",
1721 | "isstream": "~0.1.2",
1722 | "json-stringify-safe": "~5.0.1",
1723 | "mime-types": "~2.1.17",
1724 | "oauth-sign": "~0.8.2",
1725 | "performance-now": "^2.1.0",
1726 | "qs": "~6.5.1",
1727 | "safe-buffer": "^5.1.1",
1728 | "stringstream": "~0.0.5",
1729 | "tough-cookie": "~2.3.3",
1730 | "tunnel-agent": "^0.6.0",
1731 | "uuid": "^3.1.0"
1732 | }
1733 | },
1734 | "require-uncached": {
1735 | "version": "1.0.3",
1736 | "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
1737 | "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
1738 | "dev": true,
1739 | "requires": {
1740 | "caller-path": "^0.1.0",
1741 | "resolve-from": "^1.0.0"
1742 | }
1743 | },
1744 | "resolve": {
1745 | "version": "1.5.0",
1746 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
1747 | "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
1748 | "dev": true,
1749 | "requires": {
1750 | "path-parse": "^1.0.5"
1751 | }
1752 | },
1753 | "resolve-from": {
1754 | "version": "1.0.1",
1755 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
1756 | "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
1757 | "dev": true
1758 | },
1759 | "restore-cursor": {
1760 | "version": "2.0.0",
1761 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
1762 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
1763 | "requires": {
1764 | "onetime": "^2.0.0",
1765 | "signal-exit": "^3.0.2"
1766 | }
1767 | },
1768 | "rimraf": {
1769 | "version": "2.6.2",
1770 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1771 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
1772 | "dev": true,
1773 | "requires": {
1774 | "glob": "^7.0.5"
1775 | }
1776 | },
1777 | "run-async": {
1778 | "version": "2.3.0",
1779 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
1780 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
1781 | "requires": {
1782 | "is-promise": "^2.1.0"
1783 | }
1784 | },
1785 | "rx-lite": {
1786 | "version": "4.0.8",
1787 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
1788 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
1789 | "dev": true
1790 | },
1791 | "rx-lite-aggregates": {
1792 | "version": "4.0.8",
1793 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
1794 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
1795 | "dev": true,
1796 | "requires": {
1797 | "rx-lite": "*"
1798 | }
1799 | },
1800 | "rxjs": {
1801 | "version": "6.4.0",
1802 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
1803 | "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
1804 | "requires": {
1805 | "tslib": "^1.9.0"
1806 | }
1807 | },
1808 | "safe-buffer": {
1809 | "version": "5.1.1",
1810 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
1811 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
1812 | },
1813 | "safer-buffer": {
1814 | "version": "2.1.2",
1815 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1816 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1817 | },
1818 | "semver": {
1819 | "version": "5.5.0",
1820 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
1821 | "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
1822 | "dev": true
1823 | },
1824 | "shebang-command": {
1825 | "version": "1.2.0",
1826 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1827 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1828 | "dev": true,
1829 | "requires": {
1830 | "shebang-regex": "^1.0.0"
1831 | }
1832 | },
1833 | "shebang-regex": {
1834 | "version": "1.0.0",
1835 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1836 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1837 | "dev": true
1838 | },
1839 | "signal-exit": {
1840 | "version": "3.0.2",
1841 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1842 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
1843 | },
1844 | "slice-ansi": {
1845 | "version": "1.0.0",
1846 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
1847 | "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
1848 | "dev": true,
1849 | "requires": {
1850 | "is-fullwidth-code-point": "^2.0.0"
1851 | }
1852 | },
1853 | "sntp": {
1854 | "version": "2.1.0",
1855 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
1856 | "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
1857 | "requires": {
1858 | "hoek": "4.x.x"
1859 | }
1860 | },
1861 | "spdx-correct": {
1862 | "version": "1.0.2",
1863 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
1864 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
1865 | "dev": true,
1866 | "requires": {
1867 | "spdx-license-ids": "^1.0.2"
1868 | }
1869 | },
1870 | "spdx-expression-parse": {
1871 | "version": "1.0.4",
1872 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
1873 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
1874 | "dev": true
1875 | },
1876 | "spdx-license-ids": {
1877 | "version": "1.2.2",
1878 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
1879 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
1880 | "dev": true
1881 | },
1882 | "sprintf-js": {
1883 | "version": "1.0.3",
1884 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1885 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1886 | "dev": true
1887 | },
1888 | "sshpk": {
1889 | "version": "1.13.1",
1890 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
1891 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
1892 | "requires": {
1893 | "asn1": "~0.2.3",
1894 | "assert-plus": "^1.0.0",
1895 | "bcrypt-pbkdf": "^1.0.0",
1896 | "dashdash": "^1.12.0",
1897 | "ecc-jsbn": "~0.1.1",
1898 | "getpass": "^0.1.1",
1899 | "jsbn": "~0.1.0",
1900 | "tweetnacl": "~0.14.0"
1901 | }
1902 | },
1903 | "string-width": {
1904 | "version": "2.1.1",
1905 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1906 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1907 | "requires": {
1908 | "is-fullwidth-code-point": "^2.0.0",
1909 | "strip-ansi": "^4.0.0"
1910 | }
1911 | },
1912 | "string_decoder": {
1913 | "version": "1.0.3",
1914 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
1915 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
1916 | "dev": true,
1917 | "requires": {
1918 | "safe-buffer": "~5.1.0"
1919 | }
1920 | },
1921 | "stringstream": {
1922 | "version": "0.0.5",
1923 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
1924 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg="
1925 | },
1926 | "strip-ansi": {
1927 | "version": "4.0.0",
1928 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1929 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1930 | "requires": {
1931 | "ansi-regex": "^3.0.0"
1932 | }
1933 | },
1934 | "strip-bom": {
1935 | "version": "3.0.0",
1936 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
1937 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
1938 | "dev": true
1939 | },
1940 | "strip-json-comments": {
1941 | "version": "2.0.1",
1942 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
1943 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
1944 | "dev": true
1945 | },
1946 | "striptags": {
1947 | "version": "3.1.1",
1948 | "resolved": "https://registry.npmjs.org/striptags/-/striptags-3.1.1.tgz",
1949 | "integrity": "sha1-yMPn/db7S7OjKjt1LltePjgJPr0="
1950 | },
1951 | "supports-color": {
1952 | "version": "5.2.0",
1953 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz",
1954 | "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==",
1955 | "dev": true,
1956 | "requires": {
1957 | "has-flag": "^3.0.0"
1958 | }
1959 | },
1960 | "table": {
1961 | "version": "4.0.3",
1962 | "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz",
1963 | "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==",
1964 | "dev": true,
1965 | "requires": {
1966 | "ajv": "^6.0.1",
1967 | "ajv-keywords": "^3.0.0",
1968 | "chalk": "^2.1.0",
1969 | "lodash": "^4.17.4",
1970 | "slice-ansi": "1.0.0",
1971 | "string-width": "^2.1.1"
1972 | },
1973 | "dependencies": {
1974 | "ajv": {
1975 | "version": "6.1.1",
1976 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz",
1977 | "integrity": "sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=",
1978 | "dev": true,
1979 | "requires": {
1980 | "fast-deep-equal": "^1.0.0",
1981 | "fast-json-stable-stringify": "^2.0.0",
1982 | "json-schema-traverse": "^0.3.0"
1983 | }
1984 | }
1985 | }
1986 | },
1987 | "text-table": {
1988 | "version": "0.2.0",
1989 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1990 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1991 | "dev": true
1992 | },
1993 | "through": {
1994 | "version": "2.3.8",
1995 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1996 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
1997 | },
1998 | "tmp": {
1999 | "version": "0.0.33",
2000 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2001 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2002 | "requires": {
2003 | "os-tmpdir": "~1.0.2"
2004 | }
2005 | },
2006 | "tough-cookie": {
2007 | "version": "2.3.3",
2008 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
2009 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
2010 | "requires": {
2011 | "punycode": "^1.4.1"
2012 | }
2013 | },
2014 | "tslib": {
2015 | "version": "1.9.3",
2016 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
2017 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
2018 | },
2019 | "tunnel-agent": {
2020 | "version": "0.6.0",
2021 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2022 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2023 | "requires": {
2024 | "safe-buffer": "^5.0.1"
2025 | }
2026 | },
2027 | "tweetnacl": {
2028 | "version": "0.14.5",
2029 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2030 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
2031 | "optional": true
2032 | },
2033 | "type-check": {
2034 | "version": "0.3.2",
2035 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2036 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
2037 | "dev": true,
2038 | "requires": {
2039 | "prelude-ls": "~1.1.2"
2040 | }
2041 | },
2042 | "typedarray": {
2043 | "version": "0.0.6",
2044 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
2045 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
2046 | "dev": true
2047 | },
2048 | "unique-string": {
2049 | "version": "1.0.0",
2050 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
2051 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
2052 | "requires": {
2053 | "crypto-random-string": "^1.0.0"
2054 | }
2055 | },
2056 | "upath": {
2057 | "version": "1.0.4",
2058 | "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz",
2059 | "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw=="
2060 | },
2061 | "util-deprecate": {
2062 | "version": "1.0.2",
2063 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2064 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2065 | "dev": true
2066 | },
2067 | "uuid": {
2068 | "version": "3.2.1",
2069 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
2070 | "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
2071 | },
2072 | "validate-npm-package-license": {
2073 | "version": "3.0.1",
2074 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
2075 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
2076 | "dev": true,
2077 | "requires": {
2078 | "spdx-correct": "~1.0.0",
2079 | "spdx-expression-parse": "~1.0.0"
2080 | }
2081 | },
2082 | "verror": {
2083 | "version": "1.10.0",
2084 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2085 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2086 | "requires": {
2087 | "assert-plus": "^1.0.0",
2088 | "core-util-is": "1.0.2",
2089 | "extsprintf": "^1.2.0"
2090 | }
2091 | },
2092 | "which": {
2093 | "version": "1.3.0",
2094 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
2095 | "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
2096 | "dev": true,
2097 | "requires": {
2098 | "isexe": "^2.0.0"
2099 | }
2100 | },
2101 | "wordwrap": {
2102 | "version": "1.0.0",
2103 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
2104 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
2105 | "dev": true
2106 | },
2107 | "wrappy": {
2108 | "version": "1.0.2",
2109 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2110 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2111 | "dev": true
2112 | },
2113 | "write": {
2114 | "version": "0.2.1",
2115 | "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
2116 | "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
2117 | "dev": true,
2118 | "requires": {
2119 | "mkdirp": "^0.5.1"
2120 | }
2121 | },
2122 | "write-file-atomic": {
2123 | "version": "2.3.0",
2124 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
2125 | "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
2126 | "requires": {
2127 | "graceful-fs": "^4.1.11",
2128 | "imurmurhash": "^0.1.4",
2129 | "signal-exit": "^3.0.2"
2130 | }
2131 | },
2132 | "xdg-basedir": {
2133 | "version": "3.0.0",
2134 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
2135 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
2136 | },
2137 | "yallist": {
2138 | "version": "2.1.2",
2139 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
2140 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
2141 | "dev": true
2142 | }
2143 | }
2144 | }
2145 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cosmic-cli",
3 | "version": "2.1.2",
4 | "description": "The official command line tool for Cosmic. Use it to log in to your Cosmic JS account, manage your Buckets and manage data, files and users withing your Buckets.",
5 | "main": "index.js",
6 | "bin": {
7 | "cosmic": "./index.js"
8 | },
9 | "dependencies": {
10 | "async": "^2.6.0",
11 | "colors": "^1.1.2",
12 | "commander": "^2.9.0",
13 | "configstore": "^3.1.1",
14 | "cosmicjs": "^4.1.2",
15 | "cross-env": "^7.0.2",
16 | "cryptiles": ">=4.1.2",
17 | "inquirer": "^6.2.2",
18 | "opn": "^5.3.0",
19 | "request": "^2.81.0",
20 | "striptags": "^3.1.1",
21 | "upath": "^1.0.4"
22 | },
23 | "devDependencies": {
24 | "eslint": "^4.18.1",
25 | "eslint-config-airbnb-base": "^12.1.0",
26 | "eslint-plugin-import": "^2.9.0"
27 | },
28 | "keywords": [
29 | "cms",
30 | "node",
31 | "content",
32 | "api"
33 | ],
34 | "repository": {
35 | "type": "git",
36 | "url": "git+https://github.com/cosmicjs/cosmic-cli.git"
37 | },
38 | "scripts": {
39 | "test": "echo \"Error: no test specified\" && exit 1"
40 | },
41 | "author": "Tony Spiro (http://tonyspiro.com/)",
42 | "license": "MIT",
43 | "bugs": {
44 | "url": "https://github.com/cosmicjs/cosmic-cli/issues"
45 | },
46 | "homepage": "https://github.com/cosmicjs/cosmic-cli#readme"
47 | }
48 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | ajv@^4.9.1:
6 | version "4.11.8"
7 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
8 | dependencies:
9 | co "^4.6.0"
10 | json-stable-stringify "^1.0.1"
11 |
12 | ansi-escapes@^2.0.0:
13 | version "2.0.0"
14 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b"
15 |
16 | ansi-regex@^2.0.0:
17 | version "2.1.1"
18 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
19 |
20 | ansi-styles@^2.2.1:
21 | version "2.2.1"
22 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
23 |
24 | asn1@~0.2.3:
25 | version "0.2.3"
26 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
27 |
28 | assert-plus@1.0.0, assert-plus@^1.0.0:
29 | version "1.0.0"
30 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
31 |
32 | assert-plus@^0.2.0:
33 | version "0.2.0"
34 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
35 |
36 | asynckit@^0.4.0:
37 | version "0.4.0"
38 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
39 |
40 | aws-sign2@~0.6.0:
41 | version "0.6.0"
42 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
43 |
44 | aws4@^1.2.1:
45 | version "1.6.0"
46 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
47 |
48 | bcrypt-pbkdf@^1.0.0:
49 | version "1.0.1"
50 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
51 | dependencies:
52 | tweetnacl "^0.14.3"
53 |
54 | boom@2.x.x:
55 | version "2.10.1"
56 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
57 | dependencies:
58 | hoek "2.x.x"
59 |
60 | caseless@~0.12.0:
61 | version "0.12.0"
62 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
63 |
64 | chalk@^1.0.0:
65 | version "1.1.3"
66 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
67 | dependencies:
68 | ansi-styles "^2.2.1"
69 | escape-string-regexp "^1.0.2"
70 | has-ansi "^2.0.0"
71 | strip-ansi "^3.0.0"
72 | supports-color "^2.0.0"
73 |
74 | cli-cursor@^2.1.0:
75 | version "2.1.0"
76 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
77 | dependencies:
78 | restore-cursor "^2.0.0"
79 |
80 | cli-width@^2.0.0:
81 | version "2.1.0"
82 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
83 |
84 | co@^4.6.0:
85 | version "4.6.0"
86 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
87 |
88 | combined-stream@^1.0.5, combined-stream@~1.0.5:
89 | version "1.0.5"
90 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
91 | dependencies:
92 | delayed-stream "~1.0.0"
93 |
94 | commander@^2.9.0:
95 | version "2.9.0"
96 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
97 | dependencies:
98 | graceful-readlink ">= 1.0.0"
99 |
100 | cryptiles@2.x.x:
101 | version "2.0.5"
102 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
103 | dependencies:
104 | boom "2.x.x"
105 |
106 | dashdash@^1.12.0:
107 | version "1.14.1"
108 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
109 | dependencies:
110 | assert-plus "^1.0.0"
111 |
112 | delayed-stream@~1.0.0:
113 | version "1.0.0"
114 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
115 |
116 | ecc-jsbn@~0.1.1:
117 | version "0.1.1"
118 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
119 | dependencies:
120 | jsbn "~0.1.0"
121 |
122 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
123 | version "1.0.5"
124 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
125 |
126 | extend@~3.0.0:
127 | version "3.0.1"
128 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
129 |
130 | external-editor@^2.0.4:
131 | version "2.0.4"
132 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
133 | dependencies:
134 | iconv-lite "^0.4.17"
135 | jschardet "^1.4.2"
136 | tmp "^0.0.31"
137 |
138 | extsprintf@1.0.2:
139 | version "1.0.2"
140 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
141 |
142 | figures@^2.0.0:
143 | version "2.0.0"
144 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
145 | dependencies:
146 | escape-string-regexp "^1.0.5"
147 |
148 | forever-agent@~0.6.1:
149 | version "0.6.1"
150 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
151 |
152 | form-data@~2.1.1:
153 | version "2.1.4"
154 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
155 | dependencies:
156 | asynckit "^0.4.0"
157 | combined-stream "^1.0.5"
158 | mime-types "^2.1.12"
159 |
160 | getpass@^0.1.1:
161 | version "0.1.7"
162 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
163 | dependencies:
164 | assert-plus "^1.0.0"
165 |
166 | "graceful-readlink@>= 1.0.0":
167 | version "1.0.1"
168 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
169 |
170 | har-schema@^1.0.5:
171 | version "1.0.5"
172 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
173 |
174 | har-validator@~4.2.1:
175 | version "4.2.1"
176 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
177 | dependencies:
178 | ajv "^4.9.1"
179 | har-schema "^1.0.5"
180 |
181 | has-ansi@^2.0.0:
182 | version "2.0.0"
183 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
184 | dependencies:
185 | ansi-regex "^2.0.0"
186 |
187 | hawk@~3.1.3:
188 | version "3.1.3"
189 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
190 | dependencies:
191 | boom "2.x.x"
192 | cryptiles "2.x.x"
193 | hoek "2.x.x"
194 | sntp "1.x.x"
195 |
196 | hoek@2.x.x:
197 | version "2.16.3"
198 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
199 |
200 | http-signature@~1.1.0:
201 | version "1.1.1"
202 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
203 | dependencies:
204 | assert-plus "^0.2.0"
205 | jsprim "^1.2.2"
206 | sshpk "^1.7.0"
207 |
208 | iconv-lite@^0.4.17:
209 | version "0.4.17"
210 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d"
211 |
212 | inquirer@^3.1.0:
213 | version "3.1.0"
214 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.1.0.tgz#e05400d48b94937c2d3caa7038663ba9189aab01"
215 | dependencies:
216 | ansi-escapes "^2.0.0"
217 | chalk "^1.0.0"
218 | cli-cursor "^2.1.0"
219 | cli-width "^2.0.0"
220 | external-editor "^2.0.4"
221 | figures "^2.0.0"
222 | lodash "^4.3.0"
223 | mute-stream "0.0.7"
224 | run-async "^2.2.0"
225 | rx-lite "^4.0.8"
226 | rx-lite-aggregates "^4.0.8"
227 | string-width "^2.0.0"
228 | strip-ansi "^3.0.0"
229 | through "^2.3.6"
230 |
231 | is-fullwidth-code-point@^2.0.0:
232 | version "2.0.0"
233 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
234 |
235 | is-promise@^2.1.0:
236 | version "2.1.0"
237 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
238 |
239 | is-typedarray@~1.0.0:
240 | version "1.0.0"
241 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
242 |
243 | isstream@~0.1.2:
244 | version "0.1.2"
245 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
246 |
247 | jsbn@~0.1.0:
248 | version "0.1.1"
249 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
250 |
251 | jschardet@^1.4.2:
252 | version "1.4.2"
253 | resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a"
254 |
255 | json-schema@0.2.3:
256 | version "0.2.3"
257 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
258 |
259 | json-stable-stringify@^1.0.1:
260 | version "1.0.1"
261 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
262 | dependencies:
263 | jsonify "~0.0.0"
264 |
265 | json-stringify-safe@~5.0.1:
266 | version "5.0.1"
267 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
268 |
269 | jsonify@~0.0.0:
270 | version "0.0.0"
271 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
272 |
273 | jsprim@^1.2.2:
274 | version "1.4.0"
275 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
276 | dependencies:
277 | assert-plus "1.0.0"
278 | extsprintf "1.0.2"
279 | json-schema "0.2.3"
280 | verror "1.3.6"
281 |
282 | lodash@^4.3.0:
283 | version "4.17.4"
284 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
285 |
286 | mime-db@~1.27.0:
287 | version "1.27.0"
288 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
289 |
290 | mime-types@^2.1.12, mime-types@~2.1.7:
291 | version "2.1.15"
292 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
293 | dependencies:
294 | mime-db "~1.27.0"
295 |
296 | mimic-fn@^1.0.0:
297 | version "1.1.0"
298 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
299 |
300 | mute-stream@0.0.7:
301 | version "0.0.7"
302 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
303 |
304 | oauth-sign@~0.8.1:
305 | version "0.8.2"
306 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
307 |
308 | onetime@^2.0.0:
309 | version "2.0.1"
310 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
311 | dependencies:
312 | mimic-fn "^1.0.0"
313 |
314 | os-tmpdir@~1.0.1:
315 | version "1.0.2"
316 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
317 |
318 | performance-now@^0.2.0:
319 | version "0.2.0"
320 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
321 |
322 | punycode@^1.4.1:
323 | version "1.4.1"
324 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
325 |
326 | qs@~6.4.0:
327 | version "6.4.0"
328 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
329 |
330 | request@^2.81.0:
331 | version "2.81.0"
332 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
333 | dependencies:
334 | aws-sign2 "~0.6.0"
335 | aws4 "^1.2.1"
336 | caseless "~0.12.0"
337 | combined-stream "~1.0.5"
338 | extend "~3.0.0"
339 | forever-agent "~0.6.1"
340 | form-data "~2.1.1"
341 | har-validator "~4.2.1"
342 | hawk "~3.1.3"
343 | http-signature "~1.1.0"
344 | is-typedarray "~1.0.0"
345 | isstream "~0.1.2"
346 | json-stringify-safe "~5.0.1"
347 | mime-types "~2.1.7"
348 | oauth-sign "~0.8.1"
349 | performance-now "^0.2.0"
350 | qs "~6.4.0"
351 | safe-buffer "^5.0.1"
352 | stringstream "~0.0.4"
353 | tough-cookie "~2.3.0"
354 | tunnel-agent "^0.6.0"
355 | uuid "^3.0.0"
356 |
357 | restore-cursor@^2.0.0:
358 | version "2.0.0"
359 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
360 | dependencies:
361 | onetime "^2.0.0"
362 | signal-exit "^3.0.2"
363 |
364 | run-async@^2.2.0:
365 | version "2.3.0"
366 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
367 | dependencies:
368 | is-promise "^2.1.0"
369 |
370 | rx-lite-aggregates@^4.0.8:
371 | version "4.0.8"
372 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
373 | dependencies:
374 | rx-lite "*"
375 |
376 | rx-lite@*, rx-lite@^4.0.8:
377 | version "4.0.8"
378 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
379 |
380 | safe-buffer@^5.0.1:
381 | version "5.1.0"
382 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223"
383 |
384 | signal-exit@^3.0.2:
385 | version "3.0.2"
386 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
387 |
388 | sntp@1.x.x:
389 | version "1.0.9"
390 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
391 | dependencies:
392 | hoek "2.x.x"
393 |
394 | sshpk@^1.7.0:
395 | version "1.13.1"
396 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
397 | dependencies:
398 | asn1 "~0.2.3"
399 | assert-plus "^1.0.0"
400 | dashdash "^1.12.0"
401 | getpass "^0.1.1"
402 | optionalDependencies:
403 | bcrypt-pbkdf "^1.0.0"
404 | ecc-jsbn "~0.1.1"
405 | jsbn "~0.1.0"
406 | tweetnacl "~0.14.0"
407 |
408 | string-width@^2.0.0:
409 | version "2.0.0"
410 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
411 | dependencies:
412 | is-fullwidth-code-point "^2.0.0"
413 | strip-ansi "^3.0.0"
414 |
415 | stringstream@~0.0.4:
416 | version "0.0.5"
417 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
418 |
419 | strip-ansi@^3.0.0:
420 | version "3.0.1"
421 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
422 | dependencies:
423 | ansi-regex "^2.0.0"
424 |
425 | supports-color@^2.0.0:
426 | version "2.0.0"
427 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
428 |
429 | through@^2.3.6:
430 | version "2.3.8"
431 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
432 |
433 | tmp@^0.0.31:
434 | version "0.0.31"
435 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
436 | dependencies:
437 | os-tmpdir "~1.0.1"
438 |
439 | tough-cookie@~2.3.0:
440 | version "2.3.2"
441 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
442 | dependencies:
443 | punycode "^1.4.1"
444 |
445 | tunnel-agent@^0.6.0:
446 | version "0.6.0"
447 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
448 | dependencies:
449 | safe-buffer "^5.0.1"
450 |
451 | tweetnacl@^0.14.3, tweetnacl@~0.14.0:
452 | version "0.14.5"
453 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
454 |
455 | uuid@^3.0.0:
456 | version "3.0.1"
457 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
458 |
459 | verror@1.3.6:
460 | version "1.3.6"
461 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
462 | dependencies:
463 | extsprintf "1.0.2"
464 |
--------------------------------------------------------------------------------