├── .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 | Cosmic 3 |

4 |

5 | 📖 View Docs 6 |

7 |

8 | npm version 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 | --------------------------------------------------------------------------------