├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── bin └── osnap ├── macos ├── pbcopyimg └── pbcopyimg.m ├── osnap-demo.gif ├── package-lock.json ├── package.json ├── src ├── android.ts ├── cli-parameters.ts ├── cli-usage.ts ├── cli.ts ├── copy-to-clipboard.ts ├── errors.ts ├── ios.ts └── which.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /bin/*.d.ts 3 | /bin/*.js 4 | /src/*.js 5 | /src/*.d.ts 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "src/*.{d.ts,js}": true 4 | }, 5 | // "prettier.parser": "typescript", 6 | "prettier.semi": false, 7 | "prettier.printWidth": 100, 8 | "prettier.singleQuote": true 9 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright © 2021 Steve Kellock, Joel Arvidsson 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # :camera: osnap! 2 | 3 | A CLI for grabbing ios/android screenshots and saving to your clipboard or filesystem. 4 | 5 | 6 | 7 | # :writing_hand: Usage 8 | 9 | ```sh 10 | osnap [ios|android] [-f filename.png] [-d android_device_id] 11 | ``` 12 | 13 | :apple: With iOS 14 | ```sh 15 | osnap ios 16 | osnap ios -f sweet.png 17 | ``` 18 | 19 | :robot: With Android 20 | ```sh 21 | osnap android 22 | osnap android -f cool.png 23 | osnap android -f omg.png -d emulator-5554 24 | ``` 25 | 26 | # :golfing_woman: Installing 27 | 28 | ```sh 29 | npm i -g osnap 30 | ``` 31 | 32 | # :baby_bottle: Requirements 33 | 34 | * macos 10.10 and up 35 | * node 6 and up 36 | * either android or xcode toolchains 37 | 38 | # :star2: Inspired By 39 | 40 | * http://www.alecjacobson.com/weblog/?p=3816 41 | * https://gist.github.com/mwender/49609a18be41b45b2ae4 42 | 43 | # :policeman: License 44 | 45 | MIT 46 | 47 | # :dizzy: Change Log 48 | 49 | See the [Releases](https://github.com/skellock/osnap/releases) section. 50 | -------------------------------------------------------------------------------- /bin/osnap: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('../src/cli').run() 4 | -------------------------------------------------------------------------------- /macos/pbcopyimg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skellock/osnap/688881e1587d2dc33fddb2e6dd776de25b91af60/macos/pbcopyimg -------------------------------------------------------------------------------- /macos/pbcopyimg.m: -------------------------------------------------------------------------------- 1 | // gcc -Wall -g -O3 -ObjC -framework Foundation -framework AppKit -o pbcopyimg pbcopyimg.m 2 | 3 | #import 4 | #import 5 | #import 6 | 7 | BOOL copyToClipboard(NSString *path) 8 | { 9 | // http://stackoverflow.com/questions/2681630/how-to-read-png-image-to-nsimage 10 | NSImage * image; 11 | if ([path isEqualToString:@"-"]) { 12 | // http://caiustheory.com/read-standard-input-using-objective-c 13 | NSFileHandle *input = [NSFileHandle fileHandleWithStandardInput]; 14 | image = [[NSImage alloc] initWithData:[input readDataToEndOfFile]]; 15 | } else { 16 | image = [[NSImage alloc] initWithContentsOfFile:path]; 17 | } 18 | 19 | // http://stackoverflow.com/a/18124824/148668 20 | BOOL copied = false; 21 | if (image != nil) 22 | { 23 | NSPasteboard *pasteboard = [NSPasteboard generalPasteboard]; 24 | [pasteboard clearContents]; 25 | NSArray *copiedObjects = [NSArray arrayWithObject:image]; 26 | copied = [pasteboard writeObjects:copiedObjects]; 27 | [pasteboard release]; 28 | } 29 | [image release]; 30 | return copied; 31 | } 32 | 33 | int main(int argc, char * const argv[]) 34 | { 35 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 36 | if (argc < 2) 37 | { 38 | printf( 39 | "Usage:\n\n" 40 | "Copy file to clipboard:\n ./pbcopyimg path/to/file\n\n" 41 | "Copy stdin to clipboard:\n cat /path/to/file | ./pbcopyimg -" 42 | ); 43 | return EXIT_FAILURE; 44 | } 45 | NSString *path = [NSString stringWithUTF8String:argv[1]]; 46 | BOOL success = copyToClipboard(path); 47 | [pool release]; 48 | return (success ? EXIT_SUCCESS : EXIT_FAILURE); 49 | } 50 | -------------------------------------------------------------------------------- /osnap-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/skellock/osnap/688881e1587d2dc33fddb2e6dd776de25b91af60/osnap-demo.gif -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "osnap", 3 | "version": "0.1.0", 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "@types/minimist": { 7 | "version": "1.2.0", 8 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", 9 | "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", 10 | "dev": true 11 | }, 12 | "@types/node": { 13 | "version": "7.0.27", 14 | "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.27.tgz", 15 | "integrity": "sha512-2QMiuVOEye2yKmMwE1V96C9HSShmT0WSm6dv2WjacvePEjQNNJGAerTO5hdYhj5lpdK5MW+FVxmyzDhr4omIdw==", 16 | "dev": true 17 | }, 18 | "@types/pify": { 19 | "version": "0.0.28", 20 | "resolved": "https://registry.npmjs.org/@types/pify/-/pify-0.0.28.tgz", 21 | "integrity": "sha1-aCtsM6HQV0i4bwKb2rb2Kqc/9QY=", 22 | "dev": true 23 | }, 24 | "@types/tempfile": { 25 | "version": "1.1.5", 26 | "resolved": "https://registry.npmjs.org/@types/tempfile/-/tempfile-1.1.5.tgz", 27 | "integrity": "sha1-Gmw5eYosWc3xHIkhC/MGfN1JBAw=", 28 | "dev": true 29 | }, 30 | "@types/which": { 31 | "version": "1.0.28", 32 | "resolved": "https://registry.npmjs.org/@types/which/-/which-1.0.28.tgz", 33 | "integrity": "sha1-AW44dim4gXvtZT/jLqtdESecjfY=", 34 | "dev": true 35 | }, 36 | "ansi-align": { 37 | "version": "2.0.0", 38 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", 39 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", 40 | "dev": true 41 | }, 42 | "ansi-escapes": { 43 | "version": "1.4.0", 44 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", 45 | "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", 46 | "dev": true 47 | }, 48 | "ansi-regex": { 49 | "version": "2.1.1", 50 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 51 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", 52 | "dev": true 53 | }, 54 | "ansi-styles": { 55 | "version": "2.2.1", 56 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 57 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 58 | "dev": true 59 | }, 60 | "any-observable": { 61 | "version": "0.2.0", 62 | "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", 63 | "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", 64 | "dev": true 65 | }, 66 | "array-find-index": { 67 | "version": "1.0.2", 68 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 69 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", 70 | "dev": true 71 | }, 72 | "array-union": { 73 | "version": "1.0.2", 74 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", 75 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 76 | "dev": true 77 | }, 78 | "array-uniq": { 79 | "version": "1.0.3", 80 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", 81 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", 82 | "dev": true 83 | }, 84 | "arrify": { 85 | "version": "1.0.1", 86 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", 87 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", 88 | "dev": true 89 | }, 90 | "babel-code-frame": { 91 | "version": "6.22.0", 92 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", 93 | "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", 94 | "dev": true 95 | }, 96 | "balanced-match": { 97 | "version": "0.4.2", 98 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", 99 | "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", 100 | "dev": true 101 | }, 102 | "boxen": { 103 | "version": "1.1.0", 104 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.1.0.tgz", 105 | "integrity": "sha1-sbad1SIwXoB6md7ud329blFnsQI=", 106 | "dev": true, 107 | "dependencies": { 108 | "camelcase": { 109 | "version": "4.1.0", 110 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", 111 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", 112 | "dev": true 113 | } 114 | } 115 | }, 116 | "brace-expansion": { 117 | "version": "1.1.7", 118 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", 119 | "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", 120 | "dev": true 121 | }, 122 | "builtin-modules": { 123 | "version": "1.1.1", 124 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 125 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 126 | "dev": true 127 | }, 128 | "camelcase": { 129 | "version": "2.1.1", 130 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", 131 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", 132 | "dev": true 133 | }, 134 | "camelcase-keys": { 135 | "version": "2.1.0", 136 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", 137 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", 138 | "dev": true 139 | }, 140 | "capture-stack-trace": { 141 | "version": "1.0.0", 142 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", 143 | "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", 144 | "dev": true 145 | }, 146 | "chalk": { 147 | "version": "1.1.3", 148 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 149 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 150 | "dev": true 151 | }, 152 | "cli-boxes": { 153 | "version": "1.0.0", 154 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", 155 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", 156 | "dev": true 157 | }, 158 | "cli-cursor": { 159 | "version": "2.1.0", 160 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 161 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 162 | "dev": true 163 | }, 164 | "cli-spinners": { 165 | "version": "0.1.2", 166 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", 167 | "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", 168 | "dev": true 169 | }, 170 | "cli-truncate": { 171 | "version": "0.2.1", 172 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", 173 | "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", 174 | "dev": true, 175 | "dependencies": { 176 | "is-fullwidth-code-point": { 177 | "version": "1.0.0", 178 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 179 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 180 | "dev": true 181 | }, 182 | "string-width": { 183 | "version": "1.0.2", 184 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 185 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 186 | "dev": true 187 | } 188 | } 189 | }, 190 | "cli-width": { 191 | "version": "2.1.0", 192 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", 193 | "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=", 194 | "dev": true 195 | }, 196 | "code-point-at": { 197 | "version": "1.1.0", 198 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 199 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", 200 | "dev": true 201 | }, 202 | "colors": { 203 | "version": "1.1.2", 204 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", 205 | "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", 206 | "dev": true 207 | }, 208 | "commander": { 209 | "version": "2.9.0", 210 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", 211 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", 212 | "dev": true 213 | }, 214 | "concat-map": { 215 | "version": "0.0.1", 216 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 217 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 218 | "dev": true 219 | }, 220 | "configstore": { 221 | "version": "3.1.0", 222 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.0.tgz", 223 | "integrity": "sha1-Rd+QcHPibfoc9LLVL1tgVF6qEdE=", 224 | "dev": true 225 | }, 226 | "create-error-class": { 227 | "version": "3.0.2", 228 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", 229 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", 230 | "dev": true 231 | }, 232 | "cross-spawn": { 233 | "version": "5.1.0", 234 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 235 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=" 236 | }, 237 | "cross-spawn-async": { 238 | "version": "2.2.5", 239 | "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz", 240 | "integrity": "sha1-hF/wwINKPe2dFg2sptOQkGuyiMw=", 241 | "dev": true 242 | }, 243 | "crypto-random-string": { 244 | "version": "1.0.0", 245 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", 246 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", 247 | "dev": true 248 | }, 249 | "currently-unhandled": { 250 | "version": "0.4.1", 251 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 252 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", 253 | "dev": true 254 | }, 255 | "date-fns": { 256 | "version": "1.28.5", 257 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.28.5.tgz", 258 | "integrity": "sha1-JXz8RdMi30XvVlhmWWfuhBzXP68=", 259 | "dev": true 260 | }, 261 | "decamelize": { 262 | "version": "1.2.0", 263 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 264 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 265 | "dev": true 266 | }, 267 | "deep-extend": { 268 | "version": "0.4.2", 269 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 270 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", 271 | "dev": true 272 | }, 273 | "del": { 274 | "version": "2.2.2", 275 | "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", 276 | "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", 277 | "dev": true, 278 | "dependencies": { 279 | "pify": { 280 | "version": "2.3.0", 281 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 282 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 283 | "dev": true 284 | } 285 | } 286 | }, 287 | "diff": { 288 | "version": "3.2.0", 289 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", 290 | "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", 291 | "dev": true 292 | }, 293 | "dot-prop": { 294 | "version": "4.1.1", 295 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.1.1.tgz", 296 | "integrity": "sha1-qEk/C3te7sglJbXHWH+n3nyoWcE=", 297 | "dev": true 298 | }, 299 | "duplexer3": { 300 | "version": "0.1.4", 301 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 302 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 303 | "dev": true 304 | }, 305 | "elegant-spinner": { 306 | "version": "1.0.1", 307 | "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", 308 | "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", 309 | "dev": true 310 | }, 311 | "error-ex": { 312 | "version": "1.3.1", 313 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 314 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 315 | "dev": true 316 | }, 317 | "escape-string-regexp": { 318 | "version": "1.0.5", 319 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 320 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 321 | "dev": true 322 | }, 323 | "esutils": { 324 | "version": "2.0.2", 325 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 326 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 327 | "dev": true 328 | }, 329 | "execa": { 330 | "version": "0.6.3", 331 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.6.3.tgz", 332 | "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=" 333 | }, 334 | "exit-hook": { 335 | "version": "1.1.1", 336 | "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", 337 | "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", 338 | "dev": true 339 | }, 340 | "external-editor": { 341 | "version": "2.0.4", 342 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", 343 | "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", 344 | "dev": true 345 | }, 346 | "figures": { 347 | "version": "2.0.0", 348 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 349 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 350 | "dev": true 351 | }, 352 | "find-up": { 353 | "version": "1.1.2", 354 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 355 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 356 | "dev": true 357 | }, 358 | "fs.realpath": { 359 | "version": "1.0.0", 360 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 361 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 362 | "dev": true 363 | }, 364 | "get-stdin": { 365 | "version": "4.0.1", 366 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", 367 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", 368 | "dev": true 369 | }, 370 | "get-stream": { 371 | "version": "3.0.0", 372 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", 373 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" 374 | }, 375 | "glob": { 376 | "version": "7.1.2", 377 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 378 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 379 | "dev": true 380 | }, 381 | "globby": { 382 | "version": "5.0.0", 383 | "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", 384 | "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", 385 | "dev": true, 386 | "dependencies": { 387 | "pify": { 388 | "version": "2.3.0", 389 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 390 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 391 | "dev": true 392 | } 393 | } 394 | }, 395 | "got": { 396 | "version": "6.7.1", 397 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", 398 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", 399 | "dev": true 400 | }, 401 | "graceful-fs": { 402 | "version": "4.1.11", 403 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 404 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", 405 | "dev": true 406 | }, 407 | "graceful-readlink": { 408 | "version": "1.0.1", 409 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 410 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", 411 | "dev": true 412 | }, 413 | "has-ansi": { 414 | "version": "2.0.0", 415 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 416 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 417 | "dev": true 418 | }, 419 | "has-yarn": { 420 | "version": "1.0.0", 421 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", 422 | "integrity": "sha1-ieJdtgS3Jcj1l2//Ct3JIbgopac=", 423 | "dev": true 424 | }, 425 | "hosted-git-info": { 426 | "version": "2.4.2", 427 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", 428 | "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", 429 | "dev": true 430 | }, 431 | "iconv-lite": { 432 | "version": "0.4.17", 433 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", 434 | "integrity": "sha1-T9qjs4rLwsAxsEXQ7c3+HsqxjI0=", 435 | "dev": true 436 | }, 437 | "imurmurhash": { 438 | "version": "0.1.4", 439 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 440 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 441 | "dev": true 442 | }, 443 | "indent-string": { 444 | "version": "2.1.0", 445 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", 446 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", 447 | "dev": true 448 | }, 449 | "inflight": { 450 | "version": "1.0.6", 451 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 452 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 453 | "dev": true 454 | }, 455 | "inherits": { 456 | "version": "2.0.3", 457 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 458 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 459 | "dev": true 460 | }, 461 | "ini": { 462 | "version": "1.3.4", 463 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 464 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", 465 | "dev": true 466 | }, 467 | "inquirer": { 468 | "version": "3.0.6", 469 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", 470 | "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", 471 | "dev": true 472 | }, 473 | "is-arrayish": { 474 | "version": "0.2.1", 475 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 476 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", 477 | "dev": true 478 | }, 479 | "is-builtin-module": { 480 | "version": "1.0.0", 481 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 482 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 483 | "dev": true 484 | }, 485 | "is-finite": { 486 | "version": "1.0.2", 487 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 488 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 489 | "dev": true 490 | }, 491 | "is-fullwidth-code-point": { 492 | "version": "2.0.0", 493 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 494 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 495 | "dev": true 496 | }, 497 | "is-npm": { 498 | "version": "1.0.0", 499 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", 500 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", 501 | "dev": true 502 | }, 503 | "is-obj": { 504 | "version": "1.0.1", 505 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 506 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 507 | "dev": true 508 | }, 509 | "is-path-cwd": { 510 | "version": "1.0.0", 511 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", 512 | "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", 513 | "dev": true 514 | }, 515 | "is-path-in-cwd": { 516 | "version": "1.0.0", 517 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", 518 | "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", 519 | "dev": true 520 | }, 521 | "is-path-inside": { 522 | "version": "1.0.0", 523 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", 524 | "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", 525 | "dev": true 526 | }, 527 | "is-promise": { 528 | "version": "2.1.0", 529 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 530 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 531 | "dev": true 532 | }, 533 | "is-redirect": { 534 | "version": "1.0.0", 535 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", 536 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", 537 | "dev": true 538 | }, 539 | "is-retry-allowed": { 540 | "version": "1.1.0", 541 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", 542 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", 543 | "dev": true 544 | }, 545 | "is-stream": { 546 | "version": "1.1.0", 547 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 548 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 549 | }, 550 | "is-utf8": { 551 | "version": "0.2.1", 552 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 553 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", 554 | "dev": true 555 | }, 556 | "isexe": { 557 | "version": "2.0.0", 558 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 559 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 560 | }, 561 | "js-tokens": { 562 | "version": "3.0.1", 563 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", 564 | "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", 565 | "dev": true 566 | }, 567 | "jschardet": { 568 | "version": "1.4.2", 569 | "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.4.2.tgz", 570 | "integrity": "sha1-KqEH8UKvQSHRRWWdRPUIMJYeaZo=", 571 | "dev": true 572 | }, 573 | "latest-version": { 574 | "version": "3.1.0", 575 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", 576 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", 577 | "dev": true 578 | }, 579 | "lazy-req": { 580 | "version": "2.0.0", 581 | "resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-2.0.0.tgz", 582 | "integrity": "sha1-yUUKNj7N2i5vDHATKtTzf48G8rQ=", 583 | "dev": true 584 | }, 585 | "listr": { 586 | "version": "0.11.0", 587 | "resolved": "https://registry.npmjs.org/listr/-/listr-0.11.0.tgz", 588 | "integrity": "sha1-XneLwjgGrDq5hO11VkRYFR85sD4=", 589 | "dev": true, 590 | "dependencies": { 591 | "figures": { 592 | "version": "1.7.0", 593 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 594 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 595 | "dev": true 596 | }, 597 | "stream-to-observable": { 598 | "version": "0.1.0", 599 | "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.1.0.tgz", 600 | "integrity": "sha1-Rb8dny19wJvtgfHDB8Qw5ouEz/4=", 601 | "dev": true 602 | } 603 | } 604 | }, 605 | "listr-silent-renderer": { 606 | "version": "1.1.1", 607 | "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", 608 | "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", 609 | "dev": true 610 | }, 611 | "listr-update-renderer": { 612 | "version": "0.2.0", 613 | "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz", 614 | "integrity": "sha1-yoDhd5tOcCZoB+ju0a1qvjmFUPk=", 615 | "dev": true, 616 | "dependencies": { 617 | "figures": { 618 | "version": "1.7.0", 619 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 620 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 621 | "dev": true 622 | }, 623 | "indent-string": { 624 | "version": "3.1.0", 625 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.1.0.tgz", 626 | "integrity": "sha1-CP9DNGAziDmbMp5rlTjcejz13n0=", 627 | "dev": true 628 | } 629 | } 630 | }, 631 | "listr-verbose-renderer": { 632 | "version": "0.4.0", 633 | "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz", 634 | "integrity": "sha1-RNwBuww0oDxXIVTU0Izemx3FYg8=", 635 | "dev": true, 636 | "dependencies": { 637 | "cli-cursor": { 638 | "version": "1.0.2", 639 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 640 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 641 | "dev": true 642 | }, 643 | "figures": { 644 | "version": "1.7.0", 645 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", 646 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", 647 | "dev": true 648 | }, 649 | "onetime": { 650 | "version": "1.1.0", 651 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 652 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 653 | "dev": true 654 | }, 655 | "restore-cursor": { 656 | "version": "1.0.1", 657 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 658 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 659 | "dev": true 660 | } 661 | } 662 | }, 663 | "load-json-file": { 664 | "version": "1.1.0", 665 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 666 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 667 | "dev": true, 668 | "dependencies": { 669 | "pify": { 670 | "version": "2.3.0", 671 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 672 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 673 | "dev": true 674 | } 675 | } 676 | }, 677 | "locate-path": { 678 | "version": "2.0.0", 679 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", 680 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", 681 | "dev": true, 682 | "dependencies": { 683 | "path-exists": { 684 | "version": "3.0.0", 685 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 686 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", 687 | "dev": true 688 | } 689 | } 690 | }, 691 | "lodash": { 692 | "version": "4.17.4", 693 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 694 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", 695 | "dev": true 696 | }, 697 | "log-symbols": { 698 | "version": "1.0.2", 699 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", 700 | "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", 701 | "dev": true 702 | }, 703 | "log-update": { 704 | "version": "1.0.2", 705 | "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", 706 | "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", 707 | "dev": true, 708 | "dependencies": { 709 | "cli-cursor": { 710 | "version": "1.0.2", 711 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 712 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 713 | "dev": true 714 | }, 715 | "onetime": { 716 | "version": "1.1.0", 717 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 718 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 719 | "dev": true 720 | }, 721 | "restore-cursor": { 722 | "version": "1.0.1", 723 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 724 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 725 | "dev": true 726 | } 727 | } 728 | }, 729 | "loud-rejection": { 730 | "version": "1.6.0", 731 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", 732 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", 733 | "dev": true 734 | }, 735 | "lowercase-keys": { 736 | "version": "1.0.0", 737 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", 738 | "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", 739 | "dev": true 740 | }, 741 | "lru-cache": { 742 | "version": "4.0.2", 743 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", 744 | "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=" 745 | }, 746 | "make-dir": { 747 | "version": "1.0.0", 748 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", 749 | "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", 750 | "dev": true, 751 | "dependencies": { 752 | "pify": { 753 | "version": "2.3.0", 754 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 755 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 756 | "dev": true 757 | } 758 | } 759 | }, 760 | "map-obj": { 761 | "version": "1.0.1", 762 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", 763 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", 764 | "dev": true 765 | }, 766 | "meow": { 767 | "version": "3.7.0", 768 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", 769 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", 770 | "dev": true, 771 | "dependencies": { 772 | "read-pkg-up": { 773 | "version": "1.0.1", 774 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 775 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 776 | "dev": true 777 | } 778 | } 779 | }, 780 | "mimic-fn": { 781 | "version": "1.1.0", 782 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", 783 | "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", 784 | "dev": true 785 | }, 786 | "minimatch": { 787 | "version": "3.0.4", 788 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 789 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 790 | "dev": true 791 | }, 792 | "minimist": { 793 | "version": "1.2.0", 794 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 795 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 796 | }, 797 | "mute-stream": { 798 | "version": "0.0.7", 799 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 800 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 801 | "dev": true 802 | }, 803 | "normalize-package-data": { 804 | "version": "2.3.8", 805 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", 806 | "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", 807 | "dev": true 808 | }, 809 | "np": { 810 | "version": "2.15.0", 811 | "resolved": "https://registry.npmjs.org/np/-/np-2.15.0.tgz", 812 | "integrity": "sha1-ZZGBFSP5qS96scR7Op5XlVocdRw=", 813 | "dev": true 814 | }, 815 | "npm-run-path": { 816 | "version": "2.0.2", 817 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 818 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=" 819 | }, 820 | "number-is-nan": { 821 | "version": "1.0.1", 822 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 823 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 824 | "dev": true 825 | }, 826 | "object-assign": { 827 | "version": "4.1.1", 828 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 829 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 830 | "dev": true 831 | }, 832 | "once": { 833 | "version": "1.4.0", 834 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 835 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 836 | "dev": true 837 | }, 838 | "onetime": { 839 | "version": "2.0.1", 840 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 841 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 842 | "dev": true 843 | }, 844 | "ora": { 845 | "version": "0.2.3", 846 | "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", 847 | "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", 848 | "dev": true, 849 | "dependencies": { 850 | "cli-cursor": { 851 | "version": "1.0.2", 852 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", 853 | "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", 854 | "dev": true 855 | }, 856 | "onetime": { 857 | "version": "1.1.0", 858 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", 859 | "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", 860 | "dev": true 861 | }, 862 | "restore-cursor": { 863 | "version": "1.0.1", 864 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", 865 | "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", 866 | "dev": true 867 | } 868 | } 869 | }, 870 | "os-tmpdir": { 871 | "version": "1.0.2", 872 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 873 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 874 | "dev": true 875 | }, 876 | "p-finally": { 877 | "version": "1.0.0", 878 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 879 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 880 | }, 881 | "p-limit": { 882 | "version": "1.1.0", 883 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", 884 | "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", 885 | "dev": true 886 | }, 887 | "p-locate": { 888 | "version": "2.0.0", 889 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", 890 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", 891 | "dev": true 892 | }, 893 | "package-json": { 894 | "version": "4.0.1", 895 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", 896 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", 897 | "dev": true 898 | }, 899 | "parse-json": { 900 | "version": "2.2.0", 901 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 902 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 903 | "dev": true 904 | }, 905 | "path-exists": { 906 | "version": "2.1.0", 907 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 908 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 909 | "dev": true 910 | }, 911 | "path-is-absolute": { 912 | "version": "1.0.1", 913 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 914 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 915 | "dev": true 916 | }, 917 | "path-is-inside": { 918 | "version": "1.0.2", 919 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 920 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 921 | "dev": true 922 | }, 923 | "path-key": { 924 | "version": "2.0.1", 925 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 926 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 927 | }, 928 | "path-parse": { 929 | "version": "1.0.5", 930 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 931 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", 932 | "dev": true 933 | }, 934 | "path-type": { 935 | "version": "1.1.0", 936 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 937 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 938 | "dev": true, 939 | "dependencies": { 940 | "pify": { 941 | "version": "2.3.0", 942 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 943 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 944 | "dev": true 945 | } 946 | } 947 | }, 948 | "pify": { 949 | "version": "3.0.0", 950 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 951 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" 952 | }, 953 | "pinkie": { 954 | "version": "2.0.4", 955 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 956 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", 957 | "dev": true 958 | }, 959 | "pinkie-promise": { 960 | "version": "2.0.1", 961 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 962 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 963 | "dev": true 964 | }, 965 | "prepend-http": { 966 | "version": "1.0.4", 967 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", 968 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", 969 | "dev": true 970 | }, 971 | "prettier": { 972 | "version": "1.4.2", 973 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.4.2.tgz", 974 | "integrity": "sha512-iJ8HPTHA/Amt9FDLrSRBWG+IWZo6Z4MJ/2oxJP4Rz6UWQUr4rM3MWYeFi6tG4d9kYGuvbnnZ/KYCGdTQ8sPubw==", 975 | "dev": true 976 | }, 977 | "pseudomap": { 978 | "version": "1.0.2", 979 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 980 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" 981 | }, 982 | "rc": { 983 | "version": "1.2.1", 984 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", 985 | "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", 986 | "dev": true 987 | }, 988 | "read-pkg": { 989 | "version": "1.1.0", 990 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 991 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 992 | "dev": true 993 | }, 994 | "read-pkg-up": { 995 | "version": "2.0.0", 996 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", 997 | "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", 998 | "dev": true, 999 | "dependencies": { 1000 | "find-up": { 1001 | "version": "2.1.0", 1002 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", 1003 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", 1004 | "dev": true 1005 | }, 1006 | "load-json-file": { 1007 | "version": "2.0.0", 1008 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", 1009 | "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", 1010 | "dev": true 1011 | }, 1012 | "path-type": { 1013 | "version": "2.0.0", 1014 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", 1015 | "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", 1016 | "dev": true 1017 | }, 1018 | "pify": { 1019 | "version": "2.3.0", 1020 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 1021 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 1022 | "dev": true 1023 | }, 1024 | "read-pkg": { 1025 | "version": "2.0.0", 1026 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", 1027 | "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", 1028 | "dev": true 1029 | }, 1030 | "strip-bom": { 1031 | "version": "3.0.0", 1032 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 1033 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", 1034 | "dev": true 1035 | } 1036 | } 1037 | }, 1038 | "redent": { 1039 | "version": "1.0.0", 1040 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", 1041 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", 1042 | "dev": true 1043 | }, 1044 | "registry-auth-token": { 1045 | "version": "3.3.1", 1046 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz", 1047 | "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", 1048 | "dev": true 1049 | }, 1050 | "registry-url": { 1051 | "version": "3.1.0", 1052 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", 1053 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", 1054 | "dev": true 1055 | }, 1056 | "repeating": { 1057 | "version": "2.0.1", 1058 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 1059 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 1060 | "dev": true 1061 | }, 1062 | "resolve": { 1063 | "version": "1.3.3", 1064 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", 1065 | "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", 1066 | "dev": true 1067 | }, 1068 | "restore-cursor": { 1069 | "version": "2.0.0", 1070 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 1071 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 1072 | "dev": true 1073 | }, 1074 | "rimraf": { 1075 | "version": "2.6.1", 1076 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", 1077 | "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", 1078 | "dev": true 1079 | }, 1080 | "run-async": { 1081 | "version": "2.3.0", 1082 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 1083 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 1084 | "dev": true 1085 | }, 1086 | "rx": { 1087 | "version": "4.1.0", 1088 | "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", 1089 | "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", 1090 | "dev": true 1091 | }, 1092 | "rxjs": { 1093 | "version": "5.4.0", 1094 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.0.tgz", 1095 | "integrity": "sha1-p9sUqxV/nXqsalbmVeejhg05vyY=", 1096 | "dev": true 1097 | }, 1098 | "safe-buffer": { 1099 | "version": "5.1.0", 1100 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.0.tgz", 1101 | "integrity": "sha512-aSLEDudu6OoRr/2rU609gRmnYboRLxgDG1z9o2Q0os7236FwvcqIOO8r8U5JUEwivZOhDaKlFO4SbPTJYyBEyQ==", 1102 | "dev": true 1103 | }, 1104 | "semver": { 1105 | "version": "5.3.0", 1106 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", 1107 | "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", 1108 | "dev": true 1109 | }, 1110 | "semver-diff": { 1111 | "version": "2.1.0", 1112 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", 1113 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", 1114 | "dev": true 1115 | }, 1116 | "shebang-command": { 1117 | "version": "1.2.0", 1118 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 1119 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" 1120 | }, 1121 | "shebang-regex": { 1122 | "version": "1.0.0", 1123 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 1124 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 1125 | }, 1126 | "signal-exit": { 1127 | "version": "3.0.2", 1128 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 1129 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 1130 | }, 1131 | "slice-ansi": { 1132 | "version": "0.0.4", 1133 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", 1134 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", 1135 | "dev": true 1136 | }, 1137 | "slide": { 1138 | "version": "1.1.6", 1139 | "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", 1140 | "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", 1141 | "dev": true 1142 | }, 1143 | "spdx-correct": { 1144 | "version": "1.0.2", 1145 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 1146 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 1147 | "dev": true 1148 | }, 1149 | "spdx-expression-parse": { 1150 | "version": "1.0.4", 1151 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 1152 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", 1153 | "dev": true 1154 | }, 1155 | "spdx-license-ids": { 1156 | "version": "1.2.2", 1157 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 1158 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", 1159 | "dev": true 1160 | }, 1161 | "split": { 1162 | "version": "1.0.0", 1163 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz", 1164 | "integrity": "sha1-xDlc5oOrzSVLwo/h2rtuXCfc/64=", 1165 | "dev": true 1166 | }, 1167 | "stream-to-observable": { 1168 | "version": "0.2.0", 1169 | "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", 1170 | "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", 1171 | "dev": true 1172 | }, 1173 | "string-width": { 1174 | "version": "2.0.0", 1175 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", 1176 | "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", 1177 | "dev": true 1178 | }, 1179 | "strip-ansi": { 1180 | "version": "3.0.1", 1181 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 1182 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 1183 | "dev": true 1184 | }, 1185 | "strip-bom": { 1186 | "version": "2.0.0", 1187 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1188 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 1189 | "dev": true 1190 | }, 1191 | "strip-eof": { 1192 | "version": "1.0.0", 1193 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 1194 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 1195 | }, 1196 | "strip-indent": { 1197 | "version": "1.0.1", 1198 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", 1199 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", 1200 | "dev": true 1201 | }, 1202 | "strip-json-comments": { 1203 | "version": "2.0.1", 1204 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 1205 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 1206 | "dev": true 1207 | }, 1208 | "supports-color": { 1209 | "version": "2.0.0", 1210 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1211 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1212 | "dev": true 1213 | }, 1214 | "symbol-observable": { 1215 | "version": "1.0.4", 1216 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", 1217 | "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=", 1218 | "dev": true 1219 | }, 1220 | "temp-dir": { 1221 | "version": "1.0.0", 1222 | "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", 1223 | "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" 1224 | }, 1225 | "tempfile": { 1226 | "version": "2.0.0", 1227 | "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", 1228 | "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=" 1229 | }, 1230 | "term-size": { 1231 | "version": "0.1.1", 1232 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-0.1.1.tgz", 1233 | "integrity": "sha1-hzYLljlsq1dgljcUzaDQy+7K2co=", 1234 | "dev": true, 1235 | "dependencies": { 1236 | "execa": { 1237 | "version": "0.4.0", 1238 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.4.0.tgz", 1239 | "integrity": "sha1-TrZGejaglfq7KXD/nV4/t7zm68M=", 1240 | "dev": true 1241 | }, 1242 | "npm-run-path": { 1243 | "version": "1.0.0", 1244 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz", 1245 | "integrity": "sha1-9cMr9ZX+ga6Sfa7FLoL4sACsPI8=", 1246 | "dev": true 1247 | }, 1248 | "path-key": { 1249 | "version": "1.0.0", 1250 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz", 1251 | "integrity": "sha1-XVPVeAGWRsDWiADbThRua9wqx68=", 1252 | "dev": true 1253 | } 1254 | } 1255 | }, 1256 | "through": { 1257 | "version": "2.3.8", 1258 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1259 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 1260 | "dev": true 1261 | }, 1262 | "timed-out": { 1263 | "version": "4.0.1", 1264 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", 1265 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", 1266 | "dev": true 1267 | }, 1268 | "tmp": { 1269 | "version": "0.0.31", 1270 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", 1271 | "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", 1272 | "dev": true 1273 | }, 1274 | "trim-newlines": { 1275 | "version": "1.0.0", 1276 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 1277 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", 1278 | "dev": true 1279 | }, 1280 | "tslib": { 1281 | "version": "1.7.1", 1282 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz", 1283 | "integrity": "sha1-vIAEFkaRkjp5/oN4u+s9ogF1OOw=", 1284 | "dev": true 1285 | }, 1286 | "tslint": { 1287 | "version": "5.4.2", 1288 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.4.2.tgz", 1289 | "integrity": "sha1-YJtmQMwEJPSjlamt9ow3VWPFScc=", 1290 | "dev": true 1291 | }, 1292 | "tsutils": { 1293 | "version": "2.3.0", 1294 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.3.0.tgz", 1295 | "integrity": "sha1-luZh18I2PzGtyJkqxnu+e3/BdeU=", 1296 | "dev": true 1297 | }, 1298 | "typescript": { 1299 | "version": "2.3.4", 1300 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", 1301 | "integrity": "sha1-PTgyGCgjHkNPKHUUlZw3qCtin0I=", 1302 | "dev": true 1303 | }, 1304 | "unique-string": { 1305 | "version": "1.0.0", 1306 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", 1307 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", 1308 | "dev": true 1309 | }, 1310 | "unzip-response": { 1311 | "version": "2.0.1", 1312 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", 1313 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", 1314 | "dev": true 1315 | }, 1316 | "update-notifier": { 1317 | "version": "2.1.0", 1318 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.1.0.tgz", 1319 | "integrity": "sha1-7AweU1NrdmR6JLd8uDlm2TFRI9k=", 1320 | "dev": true 1321 | }, 1322 | "url-parse-lax": { 1323 | "version": "1.0.0", 1324 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", 1325 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", 1326 | "dev": true 1327 | }, 1328 | "uuid": { 1329 | "version": "3.0.1", 1330 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", 1331 | "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" 1332 | }, 1333 | "validate-npm-package-license": { 1334 | "version": "3.0.1", 1335 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 1336 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 1337 | "dev": true 1338 | }, 1339 | "which": { 1340 | "version": "1.2.14", 1341 | "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", 1342 | "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=" 1343 | }, 1344 | "widest-line": { 1345 | "version": "1.0.0", 1346 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz", 1347 | "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", 1348 | "dev": true, 1349 | "dependencies": { 1350 | "is-fullwidth-code-point": { 1351 | "version": "1.0.0", 1352 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1353 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1354 | "dev": true 1355 | }, 1356 | "string-width": { 1357 | "version": "1.0.2", 1358 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 1359 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 1360 | "dev": true 1361 | } 1362 | } 1363 | }, 1364 | "wrappy": { 1365 | "version": "1.0.2", 1366 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1367 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1368 | "dev": true 1369 | }, 1370 | "write-file-atomic": { 1371 | "version": "2.1.0", 1372 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz", 1373 | "integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==", 1374 | "dev": true 1375 | }, 1376 | "xdg-basedir": { 1377 | "version": "3.0.0", 1378 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", 1379 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", 1380 | "dev": true 1381 | }, 1382 | "yallist": { 1383 | "version": "2.1.2", 1384 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 1385 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" 1386 | } 1387 | } 1388 | } 1389 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Steve Kellock", 3 | "bin": { 4 | "osnap": "bin/osnap" 5 | }, 6 | "dependencies": { 7 | "execa": "^0.6.3", 8 | "minimist": "^1.2.0", 9 | "pify": "^3.0.0", 10 | "tempfile": "^2.0.0", 11 | "which": "^1.2.14" 12 | }, 13 | "description": "A CLI for grabbing ios/android screenshots and saving to your clipboard or filesystem.", 14 | "devDependencies": { 15 | "@types/minimist": "^1.2.0", 16 | "@types/node": "^7.0.27", 17 | "@types/pify": "^0.0.28", 18 | "@types/tempfile": "^1.1.5", 19 | "@types/which": "^1.0.28", 20 | "np": "^2.15.0", 21 | "prettier": "^1.4.2", 22 | "rimraf": "^2.6.1", 23 | "tslint": "^5.4.2", 24 | "typescript": "^2.3.4" 25 | }, 26 | "files": [ 27 | "bin/osnap", 28 | "macos/pbcopyimg", 29 | "README.md", 30 | "src/*.js" 31 | ], 32 | "keywords": [ 33 | "ios", 34 | "android", 35 | "screenshot" 36 | ], 37 | "license": "MIT", 38 | "name": "osnap", 39 | "scripts": { 40 | "build": "tsc -p .", 41 | "build:mac": "gcc -Wall -O3 -ObjC -framework Foundation -framework AppKit -o macos/pbcopyimg macos/pbcopyimg.m", 42 | "clean": "rimraf {bin,src}/**/*.{d.ts,js}", 43 | "pretty": "prettier --no-semi --single-quote --print-width 100 --parser typescript --write src/**/*.ts", 44 | "watch": "tsc -p . -w" 45 | }, 46 | "version": "1.1.0" 47 | } 48 | -------------------------------------------------------------------------------- /src/android.ts: -------------------------------------------------------------------------------- 1 | import { CliParameters } from './cli-parameters' 2 | import { ErrorCode, createError } from './errors' 3 | import { which } from './which' 4 | import * as execa from 'execa' 5 | import { existsSync, createWriteStream } from 'fs' 6 | 7 | /** 8 | * Finds the path to adb or throws an error. 9 | */ 10 | export function getAdbPath() { 11 | const androidHome = process.env['ANDROID_HOME'] 12 | if (!androidHome) { 13 | throw createError(ErrorCode.MissingAndroidHome) 14 | } 15 | const adb = `${androidHome}/platform-tools/adb` 16 | if (!existsSync(adb)) { 17 | throw createError(ErrorCode.MissingAndroidAdb) 18 | } 19 | return adb 20 | } 21 | 22 | /** 23 | * Finds the path to perl or throws an error. 24 | */ 25 | export async function getPerlPath() { 26 | try { 27 | return await which('perl') 28 | } catch (err) { 29 | throw createError(ErrorCode.MissingPerl) 30 | } 31 | } 32 | 33 | /** 34 | * Checks to see if a simulator is booted and ready to ask for a screen shot. 35 | * 36 | * @param adb The path to adb 37 | * @param device An optional target android device id 38 | */ 39 | export async function checkEmulator(adb: string, device?: string) { 40 | // get the list of simulators 41 | const response = await execa(adb, ['devices']) 42 | const stdout = response.stdout as string 43 | 44 | const devices = stdout 45 | .split('\n') 46 | .filter(line => line.endsWith('\tdevice')) 47 | .map(line => line.replace('\tdevice', '')) 48 | 49 | // not enough devices? 50 | if (devices.length === 0) { 51 | throw createError(ErrorCode.NoRunningAndroidEmulators) 52 | } 53 | 54 | // only 1 and no preference? just pick that. 55 | if (devices.length === 1 && !device) { 56 | return devices[0] 57 | } 58 | 59 | // too many devices? 60 | if (devices.length > 1 && !device) { 61 | throw createError(ErrorCode.AmbiguousAndroidEmulator) 62 | } 63 | 64 | // can't find what the user is looking for? 65 | if (devices.indexOf(device) < 0) { 66 | throw createError(ErrorCode.MissingAndroidEmulator) 67 | } 68 | } 69 | 70 | /** 71 | * Takes a screenshot of the current running simulator and saves it to a file. 72 | * 73 | * @param adb The path to adb 74 | * @param device The android device id 75 | * @param filename The filename to save 76 | */ 77 | export async function saveScreenshot(adb: string, perl: string, device: string, filename: string) { 78 | return new Promise((resolve, reject) => { 79 | try { 80 | // up the max buffer size since these could be huge iamges 81 | const maxBuffer = 1024 * 1000 * 50 // 50 MB 82 | 83 | // create the processes needed in the chain 84 | const adbProcess = execa(adb, ['-s', device, 'exec-out', 'screencap', '-p'], { maxBuffer }) 85 | adbProcess.stdout.pipe(createWriteStream(filename)) 86 | 87 | // determine when we've ended 88 | adbProcess.on('exit', exitCode => { 89 | if (exitCode === 0) { 90 | resolve() 91 | } else { 92 | reject() 93 | } 94 | }) 95 | } catch (err) { 96 | throw createError(ErrorCode.ScreenshotFail) 97 | } 98 | }) 99 | } 100 | 101 | /** 102 | * Runs the Android snapshot. 103 | * 104 | * @param parameters The CLI parameters 105 | */ 106 | export async function saveToFile(parameters: CliParameters) { 107 | const adb = getAdbPath() 108 | const perl = await getPerlPath() 109 | const device = await checkEmulator(adb, parameters.device) 110 | await saveScreenshot(adb, perl, device, parameters.filename) 111 | } 112 | -------------------------------------------------------------------------------- /src/cli-parameters.ts: -------------------------------------------------------------------------------- 1 | import * as minimist from 'minimist' 2 | import { createError, ErrorCode } from './errors' 3 | import * as tempfile from 'tempfile' 4 | 5 | export type Platform = 'ios' | 'android' 6 | 7 | /** 8 | * The parameters passed in from the command line. 9 | */ 10 | export interface CliParameters { 11 | /** Will we be using ios or android? */ 12 | platform?: Platform 13 | /** A file name to save the image. */ 14 | filename: string 15 | /** An optional device name for android if more than 1 device is plugged in. */ 16 | device?: string 17 | /** Should we use the clipboard? */ 18 | useClipboard: boolean 19 | } 20 | 21 | /** 22 | * Grabs the platform or dies horribly. 23 | * 24 | * @param parsed The minimist parsed arguments. 25 | */ 26 | function getPlatform(parsed: minimist.ParsedArgs) { 27 | const platform = parsed._[0] as string 28 | 29 | // no platform? 30 | if (!platform) throw createError(ErrorCode.MissingPlatform) 31 | 32 | // bad platform? 33 | if (platform !== 'ios' && platform !== 'android') { 34 | throw createError(ErrorCode.InvalidPlatform) 35 | } 36 | 37 | return platform 38 | } 39 | 40 | /** 41 | * Parses and validates the CLI parameter. 42 | * 43 | * @param argv The parameters to use (default: reads from `process.argv`) 44 | */ 45 | export function parse(argv?: string[]): CliParameters { 46 | // use the default process args if nothing was passed in 47 | argv = argv || process.argv.slice(2) 48 | 49 | // parse the arguments with minimist 50 | const parsed = minimist(argv) 51 | 52 | // grab what we need 53 | const platform = getPlatform(parsed) 54 | const useClipboard = !parsed['f'] 55 | const filename = (parsed['f'] as string) || tempfile('.png') 56 | const device = parsed['d'] as string 57 | 58 | return { platform, filename, device, useClipboard } 59 | } 60 | -------------------------------------------------------------------------------- /src/cli-usage.ts: -------------------------------------------------------------------------------- 1 | import { readFileSync } from 'fs' 2 | 3 | const version = JSON.parse(readFileSync(`${__dirname}/../package.json`).toString()).version 4 | 5 | export const usage = `📸 OSNAP ${version} 6 | 7 | Screenshot your iOS/Android sim and save to a file or on your clipboard. 8 | 9 | ✍️ USAGE 10 | 11 | osnap [ios|android] [-f filename.png] [-d android_device_id] 12 | 13 | 🍎 EXAMPLE :: iOS 14 | 15 | osnap ios 16 | osnap ios -f sweet.png 17 | 18 | 🤖 EXAMPLE :: Android 19 | 20 | osnap android 21 | osnap android -f cool.png 22 | osnap android -f omg.png -d emulator-5554 23 | 24 | 💃 ABOUT 25 | 26 | https://github.com/skellock/osnap 27 | ` 28 | -------------------------------------------------------------------------------- /src/cli.ts: -------------------------------------------------------------------------------- 1 | import { parse } from './cli-parameters' 2 | import { OsnapError, ErrorCode } from './errors' 3 | import { usage } from './cli-usage' 4 | import { saveToFile as iosSave } from './ios' 5 | import { saveToFile as androidSave } from './android' 6 | import { copyToClipboard } from './copy-to-clipboard' 7 | 8 | /** 9 | * Runs the CLI and returns the exit code we should use. 10 | */ 11 | export async function run() { 12 | try { 13 | const parameters = parse() 14 | 15 | // save it to a file 16 | if (parameters.platform === 'ios') { 17 | await iosSave(parameters) 18 | } else if (parameters.platform === 'android') { 19 | await androidSave(parameters) 20 | } 21 | 22 | // copy it to the clipboard 23 | if (parameters.useClipboard) { 24 | await copyToClipboard(parameters.filename) 25 | } 26 | 27 | return 0 28 | } catch (err) { 29 | // typescript doesn't support typing the catch parameter 30 | if ((err as OsnapError).code === ErrorCode.MissingPlatform) { 31 | // print usage instead 32 | console.log(usage) 33 | return 0 34 | } else { 35 | console.error(err.message) 36 | return 1 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/copy-to-clipboard.ts: -------------------------------------------------------------------------------- 1 | import * as execa from 'execa' 2 | import { ErrorCode, createError } from './errors' 3 | import { resolve } from 'path' 4 | 5 | // TODO: support other platforms other than mac 6 | const pathToCopyApp = resolve(`${__dirname}/../macos/pbcopyimg`) 7 | 8 | export async function copyToClipboard(imagePath: string) { 9 | // verify the platform 10 | if (process.platform !== 'darwin') { 11 | throw createError(ErrorCode.ClipboardPlatformUnsupported) 12 | } 13 | 14 | // run the command to copy to the clipboard 15 | try { 16 | await execa(pathToCopyApp, [imagePath]) 17 | } catch (err) { 18 | // was there a horrible issue? 19 | throw createError(ErrorCode.CopyToClipboardFail) 20 | } 21 | 22 | return true 23 | } 24 | -------------------------------------------------------------------------------- /src/errors.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * The different types of errors that can happen. 3 | */ 4 | export enum ErrorCode { 5 | Unknown, 6 | MissingPlatform, 7 | InvalidPlatform, 8 | MissingXcrun, 9 | MissingAndroidHome, 10 | MissingAndroidAdb, 11 | MissingPerl, 12 | NoRunningiOSSimulators, 13 | NoRunningAndroidEmulators, 14 | AmbiguousAndroidEmulator, 15 | MissingAndroidEmulator, 16 | ScreenshotFail, 17 | CopyToClipboardFail, 18 | ClipboardPlatformUnsupported 19 | } 20 | 21 | export interface OsnapError extends Error { 22 | /** The error code */ 23 | code: ErrorCode 24 | /** Additional human-facing error message */ 25 | details?: string 26 | } 27 | 28 | const errorMap: { [code: number]: string } = { 29 | [ErrorCode.MissingPlatform]: `Platform is required. Must be 'ios' or 'android'.`, 30 | [ErrorCode.InvalidPlatform]: `Unrecognized platform. 'ios' or 'android' are supported.`, 31 | [ErrorCode.MissingXcrun]: `Unable to find 'xcrun' on your path.`, 32 | [ErrorCode.MissingAndroidHome]: `Unable to find ANDROID_HOME environment varilable.`, 33 | [ErrorCode.MissingAndroidAdb]: `Unable to find adb.`, 34 | [ErrorCode.MissingPerl]: `Unable to find perl which is used to clean up goofy output from adb.`, 35 | [ErrorCode.NoRunningiOSSimulators]: `No iOS simulators are running.`, 36 | [ErrorCode.NoRunningAndroidEmulators]: `No android emulators or devices connected.`, 37 | [ErrorCode.ScreenshotFail]: `Some horrible happened while taking a screenshot.`, 38 | [ErrorCode.CopyToClipboardFail]: `Unable to copy the image bytes to the clipboard. Sorry about that.`, 39 | [ErrorCode.ClipboardPlatformUnsupported]: `Unable to copy to the clipboard on this platform. PRs welcome.`, 40 | [ErrorCode.AmbiguousAndroidEmulator]: `Multiple android devices connected, please specify a device with -d.`, 41 | [ErrorCode.MissingAndroidEmulator]: `The specified device is currently not connected.` 42 | } 43 | 44 | /** 45 | * Creates an OSnapError. 46 | * 47 | * @param code The error code. 48 | * @param message An optional error message. 49 | */ 50 | export function createError(code: ErrorCode, details?: string) { 51 | const e = new Error() as OsnapError 52 | e.message = errorMap[code] 53 | e.details = details 54 | e.code = code 55 | return e 56 | } 57 | -------------------------------------------------------------------------------- /src/ios.ts: -------------------------------------------------------------------------------- 1 | import { CliParameters } from './cli-parameters' 2 | import { which } from './which' 3 | import { ErrorCode, createError } from './errors' 4 | import * as execa from 'execa' 5 | 6 | /** 7 | * Finds the path to xcrun or throws an error. 8 | */ 9 | export async function getXcrunPath() { 10 | try { 11 | return await which('xcrun') 12 | } catch (err) { 13 | throw createError(ErrorCode.MissingXcrun) 14 | } 15 | } 16 | 17 | /** 18 | * Checks to see if a simulator is booted and ready to ask for a screen shot. 19 | * 20 | * @param xcrunPath The path to xcrun 21 | */ 22 | export async function checkSimulator(xcrunPath: string) { 23 | // get the list of simulators 24 | const response = await execa(xcrunPath, ['simctl', 'list']) 25 | const stdout = response.stdout as string 26 | 27 | // count the number of ones started 28 | const reducer = (acc, line) => (line.indexOf('Booted') >= 0 ? acc + 1 : acc) 29 | const count = stdout.split('\n').reduce(reducer, 0) 30 | 31 | if (count === 0) throw createError(ErrorCode.NoRunningiOSSimulators) 32 | } 33 | 34 | /** 35 | * Takes a screenshot of the current running simulator and saves it to a file. 36 | * 37 | * @param xcrunPath The path to xcrun 38 | * @param filename The filename to save 39 | */ 40 | export async function saveScreenshot(xcrunPath: string, filename: string) { 41 | try { 42 | const response = await execa(xcrunPath, ['simctl', 'io', 'booted', 'screenshot', filename]) 43 | if (response.code !== 0) { 44 | throw createError(ErrorCode.ScreenshotFail) 45 | } 46 | } catch (err) { 47 | throw createError(ErrorCode.ScreenshotFail) 48 | } 49 | } 50 | 51 | /** 52 | * Runs the iOS snapshot. 53 | * 54 | * @param parameters The CLI parameters 55 | */ 56 | export async function saveToFile(parameters: CliParameters) { 57 | const xcrun = await getXcrunPath() 58 | await checkSimulator(xcrun) 59 | await saveScreenshot(xcrun, parameters.filename) 60 | } 61 | -------------------------------------------------------------------------------- /src/which.ts: -------------------------------------------------------------------------------- 1 | import * as pify from 'pify' 2 | import * as whichLib from 'which' 3 | 4 | const pwhich = pify(whichLib) 5 | 6 | /** 7 | * Returns the path to a program, or throws an Error if we can't find it. 8 | * 9 | * @param program The program to search for. 10 | */ 11 | export async function which(program: string): Promise { 12 | const path: string = await pwhich(program) 13 | return path 14 | } 15 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "moduleResolution": "node", 5 | "declaration": true, 6 | "noImplicitAny": false, 7 | "noImplicitThis": true, 8 | "noUnusedLocals": true, 9 | "pretty": true, 10 | "target": "es5", 11 | "lib": ["es2015"], 12 | "typeRoots": [ 13 | "node_modules/@types" 14 | ] 15 | } 16 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | } 4 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/minimist@^1.2.0": 6 | version "1.2.0" 7 | resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" 8 | 9 | "@types/node@^7.0.27": 10 | version "7.0.27" 11 | resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.27.tgz#ba5e1a87aca2b4f5817289615ffe56472927687e" 12 | 13 | "@types/pify@^0.0.28": 14 | version "0.0.28" 15 | resolved "https://registry.yarnpkg.com/@types/pify/-/pify-0.0.28.tgz#682b6c33a1d05748b86f029bdab6f62aa73ff506" 16 | 17 | "@types/tempfile@^1.1.5": 18 | version "1.1.5" 19 | resolved "https://registry.yarnpkg.com/@types/tempfile/-/tempfile-1.1.5.tgz#1a6c39798a2c59cdf11c89210bf3067cdd49040c" 20 | 21 | "@types/which@^1.0.28": 22 | version "1.0.28" 23 | resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6" 24 | 25 | ansi-align@^2.0.0: 26 | version "2.0.0" 27 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 28 | dependencies: 29 | string-width "^2.0.0" 30 | 31 | ansi-escapes@^1.0.0, ansi-escapes@^1.1.0: 32 | version "1.4.0" 33 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 34 | 35 | ansi-regex@^2.0.0: 36 | version "2.1.1" 37 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 38 | 39 | ansi-styles@^2.2.1: 40 | version "2.2.1" 41 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 42 | 43 | any-observable@^0.2.0: 44 | version "0.2.0" 45 | resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" 46 | 47 | array-find-index@^1.0.1: 48 | version "1.0.2" 49 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 50 | 51 | array-union@^1.0.1: 52 | version "1.0.2" 53 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 54 | dependencies: 55 | array-uniq "^1.0.1" 56 | 57 | array-uniq@^1.0.1: 58 | version "1.0.3" 59 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 60 | 61 | arrify@^1.0.0: 62 | version "1.0.1" 63 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 64 | 65 | babel-code-frame@^6.22.0: 66 | version "6.22.0" 67 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 68 | dependencies: 69 | chalk "^1.1.0" 70 | esutils "^2.0.2" 71 | js-tokens "^3.0.0" 72 | 73 | balanced-match@^0.4.1: 74 | version "0.4.2" 75 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 76 | 77 | boxen@^1.0.0: 78 | version "1.1.0" 79 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.1.0.tgz#b1b69dd522305e807a99deee777dbd6e5167b102" 80 | dependencies: 81 | ansi-align "^2.0.0" 82 | camelcase "^4.0.0" 83 | chalk "^1.1.1" 84 | cli-boxes "^1.0.0" 85 | string-width "^2.0.0" 86 | term-size "^0.1.0" 87 | widest-line "^1.0.0" 88 | 89 | brace-expansion@^1.1.7: 90 | version "1.1.7" 91 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" 92 | dependencies: 93 | balanced-match "^0.4.1" 94 | concat-map "0.0.1" 95 | 96 | builtin-modules@^1.0.0: 97 | version "1.1.1" 98 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 99 | 100 | camelcase-keys@^2.0.0: 101 | version "2.1.0" 102 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 103 | dependencies: 104 | camelcase "^2.0.0" 105 | map-obj "^1.0.0" 106 | 107 | camelcase@^2.0.0: 108 | version "2.1.1" 109 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 110 | 111 | camelcase@^4.0.0: 112 | version "4.1.0" 113 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 114 | 115 | capture-stack-trace@^1.0.0: 116 | version "1.0.0" 117 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 118 | 119 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 120 | version "1.1.3" 121 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 122 | dependencies: 123 | ansi-styles "^2.2.1" 124 | escape-string-regexp "^1.0.2" 125 | has-ansi "^2.0.0" 126 | strip-ansi "^3.0.0" 127 | supports-color "^2.0.0" 128 | 129 | cli-boxes@^1.0.0: 130 | version "1.0.0" 131 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 132 | 133 | cli-cursor@^1.0.2: 134 | version "1.0.2" 135 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 136 | dependencies: 137 | restore-cursor "^1.0.1" 138 | 139 | cli-cursor@^2.1.0: 140 | version "2.1.0" 141 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 142 | dependencies: 143 | restore-cursor "^2.0.0" 144 | 145 | cli-spinners@^0.1.2: 146 | version "0.1.2" 147 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" 148 | 149 | cli-truncate@^0.2.1: 150 | version "0.2.1" 151 | resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" 152 | dependencies: 153 | slice-ansi "0.0.4" 154 | string-width "^1.0.1" 155 | 156 | cli-width@^2.0.0: 157 | version "2.1.0" 158 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 159 | 160 | code-point-at@^1.0.0: 161 | version "1.1.0" 162 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 163 | 164 | colors@^1.1.2: 165 | version "1.1.2" 166 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 167 | 168 | commander@^2.9.0: 169 | version "2.9.0" 170 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 171 | dependencies: 172 | graceful-readlink ">= 1.0.0" 173 | 174 | concat-map@0.0.1: 175 | version "0.0.1" 176 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 177 | 178 | configstore@^3.0.0: 179 | version "3.1.0" 180 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1" 181 | dependencies: 182 | dot-prop "^4.1.0" 183 | graceful-fs "^4.1.2" 184 | make-dir "^1.0.0" 185 | unique-string "^1.0.0" 186 | write-file-atomic "^2.0.0" 187 | xdg-basedir "^3.0.0" 188 | 189 | create-error-class@^3.0.0: 190 | version "3.0.2" 191 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 192 | dependencies: 193 | capture-stack-trace "^1.0.0" 194 | 195 | cross-spawn-async@^2.1.1: 196 | version "2.2.5" 197 | resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" 198 | dependencies: 199 | lru-cache "^4.0.0" 200 | which "^1.2.8" 201 | 202 | cross-spawn@^5.0.1: 203 | version "5.1.0" 204 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 205 | dependencies: 206 | lru-cache "^4.0.1" 207 | shebang-command "^1.2.0" 208 | which "^1.2.9" 209 | 210 | crypto-random-string@^1.0.0: 211 | version "1.0.0" 212 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 213 | 214 | currently-unhandled@^0.4.1: 215 | version "0.4.1" 216 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 217 | dependencies: 218 | array-find-index "^1.0.1" 219 | 220 | date-fns@^1.27.2: 221 | version "1.28.5" 222 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf" 223 | 224 | decamelize@^1.1.2: 225 | version "1.2.0" 226 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 227 | 228 | deep-extend@~0.4.0: 229 | version "0.4.2" 230 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 231 | 232 | del@^2.2.0: 233 | version "2.2.2" 234 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 235 | dependencies: 236 | globby "^5.0.0" 237 | is-path-cwd "^1.0.0" 238 | is-path-in-cwd "^1.0.0" 239 | object-assign "^4.0.1" 240 | pify "^2.0.0" 241 | pinkie-promise "^2.0.0" 242 | rimraf "^2.2.8" 243 | 244 | diff@^3.2.0: 245 | version "3.2.0" 246 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" 247 | 248 | dot-prop@^4.1.0: 249 | version "4.1.1" 250 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" 251 | dependencies: 252 | is-obj "^1.0.0" 253 | 254 | duplexer3@^0.1.4: 255 | version "0.1.4" 256 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 257 | 258 | elegant-spinner@^1.0.1: 259 | version "1.0.1" 260 | resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" 261 | 262 | error-ex@^1.2.0: 263 | version "1.3.1" 264 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 265 | dependencies: 266 | is-arrayish "^0.2.1" 267 | 268 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 269 | version "1.0.5" 270 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 271 | 272 | esutils@^2.0.2: 273 | version "2.0.2" 274 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 275 | 276 | execa@^0.4.0: 277 | version "0.4.0" 278 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.4.0.tgz#4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3" 279 | dependencies: 280 | cross-spawn-async "^2.1.1" 281 | is-stream "^1.1.0" 282 | npm-run-path "^1.0.0" 283 | object-assign "^4.0.1" 284 | path-key "^1.0.0" 285 | strip-eof "^1.0.0" 286 | 287 | execa@^0.6.3: 288 | version "0.6.3" 289 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.6.3.tgz#57b69a594f081759c69e5370f0d17b9cb11658fe" 290 | dependencies: 291 | cross-spawn "^5.0.1" 292 | get-stream "^3.0.0" 293 | is-stream "^1.1.0" 294 | npm-run-path "^2.0.0" 295 | p-finally "^1.0.0" 296 | signal-exit "^3.0.0" 297 | strip-eof "^1.0.0" 298 | 299 | exit-hook@^1.0.0: 300 | version "1.1.1" 301 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 302 | 303 | external-editor@^2.0.1: 304 | version "2.0.4" 305 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" 306 | dependencies: 307 | iconv-lite "^0.4.17" 308 | jschardet "^1.4.2" 309 | tmp "^0.0.31" 310 | 311 | figures@^1.7.0: 312 | version "1.7.0" 313 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 314 | dependencies: 315 | escape-string-regexp "^1.0.5" 316 | object-assign "^4.1.0" 317 | 318 | figures@^2.0.0: 319 | version "2.0.0" 320 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 321 | dependencies: 322 | escape-string-regexp "^1.0.5" 323 | 324 | find-up@^1.0.0: 325 | version "1.1.2" 326 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 327 | dependencies: 328 | path-exists "^2.0.0" 329 | pinkie-promise "^2.0.0" 330 | 331 | find-up@^2.0.0: 332 | version "2.1.0" 333 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 334 | dependencies: 335 | locate-path "^2.0.0" 336 | 337 | fs.realpath@^1.0.0: 338 | version "1.0.0" 339 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 340 | 341 | get-stdin@^4.0.1: 342 | version "4.0.1" 343 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 344 | 345 | get-stream@^3.0.0: 346 | version "3.0.0" 347 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 348 | 349 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: 350 | version "7.1.2" 351 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 352 | dependencies: 353 | fs.realpath "^1.0.0" 354 | inflight "^1.0.4" 355 | inherits "2" 356 | minimatch "^3.0.4" 357 | once "^1.3.0" 358 | path-is-absolute "^1.0.0" 359 | 360 | globby@^5.0.0: 361 | version "5.0.0" 362 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 363 | dependencies: 364 | array-union "^1.0.1" 365 | arrify "^1.0.0" 366 | glob "^7.0.3" 367 | object-assign "^4.0.1" 368 | pify "^2.0.0" 369 | pinkie-promise "^2.0.0" 370 | 371 | got@^6.7.1: 372 | version "6.7.1" 373 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 374 | dependencies: 375 | create-error-class "^3.0.0" 376 | duplexer3 "^0.1.4" 377 | get-stream "^3.0.0" 378 | is-redirect "^1.0.0" 379 | is-retry-allowed "^1.0.0" 380 | is-stream "^1.0.0" 381 | lowercase-keys "^1.0.0" 382 | safe-buffer "^5.0.1" 383 | timed-out "^4.0.0" 384 | unzip-response "^2.0.1" 385 | url-parse-lax "^1.0.0" 386 | 387 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 388 | version "4.1.11" 389 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 390 | 391 | "graceful-readlink@>= 1.0.0": 392 | version "1.0.1" 393 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 394 | 395 | has-ansi@^2.0.0: 396 | version "2.0.0" 397 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 398 | dependencies: 399 | ansi-regex "^2.0.0" 400 | 401 | has-yarn@^1.0.0: 402 | version "1.0.0" 403 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7" 404 | 405 | hosted-git-info@^2.1.4: 406 | version "2.4.2" 407 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" 408 | 409 | iconv-lite@^0.4.17: 410 | version "0.4.17" 411 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" 412 | 413 | imurmurhash@^0.1.4: 414 | version "0.1.4" 415 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 416 | 417 | indent-string@^2.1.0: 418 | version "2.1.0" 419 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 420 | dependencies: 421 | repeating "^2.0.0" 422 | 423 | indent-string@^3.0.0: 424 | version "3.1.0" 425 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" 426 | 427 | inflight@^1.0.4: 428 | version "1.0.6" 429 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 430 | dependencies: 431 | once "^1.3.0" 432 | wrappy "1" 433 | 434 | inherits@2: 435 | version "2.0.3" 436 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 437 | 438 | ini@~1.3.0: 439 | version "1.3.4" 440 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 441 | 442 | inquirer@^3.0.6: 443 | version "3.0.6" 444 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" 445 | dependencies: 446 | ansi-escapes "^1.1.0" 447 | chalk "^1.0.0" 448 | cli-cursor "^2.1.0" 449 | cli-width "^2.0.0" 450 | external-editor "^2.0.1" 451 | figures "^2.0.0" 452 | lodash "^4.3.0" 453 | mute-stream "0.0.7" 454 | run-async "^2.2.0" 455 | rx "^4.1.0" 456 | string-width "^2.0.0" 457 | strip-ansi "^3.0.0" 458 | through "^2.3.6" 459 | 460 | is-arrayish@^0.2.1: 461 | version "0.2.1" 462 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 463 | 464 | is-builtin-module@^1.0.0: 465 | version "1.0.0" 466 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 467 | dependencies: 468 | builtin-modules "^1.0.0" 469 | 470 | is-finite@^1.0.0: 471 | version "1.0.2" 472 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 473 | dependencies: 474 | number-is-nan "^1.0.0" 475 | 476 | is-fullwidth-code-point@^1.0.0: 477 | version "1.0.0" 478 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 479 | dependencies: 480 | number-is-nan "^1.0.0" 481 | 482 | is-fullwidth-code-point@^2.0.0: 483 | version "2.0.0" 484 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 485 | 486 | is-npm@^1.0.0: 487 | version "1.0.0" 488 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 489 | 490 | is-obj@^1.0.0: 491 | version "1.0.1" 492 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 493 | 494 | is-path-cwd@^1.0.0: 495 | version "1.0.0" 496 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 497 | 498 | is-path-in-cwd@^1.0.0: 499 | version "1.0.0" 500 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 501 | dependencies: 502 | is-path-inside "^1.0.0" 503 | 504 | is-path-inside@^1.0.0: 505 | version "1.0.0" 506 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 507 | dependencies: 508 | path-is-inside "^1.0.1" 509 | 510 | is-promise@^2.1.0: 511 | version "2.1.0" 512 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 513 | 514 | is-redirect@^1.0.0: 515 | version "1.0.0" 516 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 517 | 518 | is-retry-allowed@^1.0.0: 519 | version "1.1.0" 520 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 521 | 522 | is-stream@^1.0.0, is-stream@^1.1.0: 523 | version "1.1.0" 524 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 525 | 526 | is-utf8@^0.2.0: 527 | version "0.2.1" 528 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 529 | 530 | isexe@^2.0.0: 531 | version "2.0.0" 532 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 533 | 534 | js-tokens@^3.0.0: 535 | version "3.0.1" 536 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 537 | 538 | jschardet@^1.4.2: 539 | version "1.4.2" 540 | resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a" 541 | 542 | latest-version@^3.0.0: 543 | version "3.1.0" 544 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 545 | dependencies: 546 | package-json "^4.0.0" 547 | 548 | lazy-req@^2.0.0: 549 | version "2.0.0" 550 | resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-2.0.0.tgz#c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4" 551 | 552 | listr-silent-renderer@^1.1.1: 553 | version "1.1.1" 554 | resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" 555 | 556 | listr-update-renderer@^0.2.0: 557 | version "0.2.0" 558 | resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9" 559 | dependencies: 560 | chalk "^1.1.3" 561 | cli-truncate "^0.2.1" 562 | elegant-spinner "^1.0.1" 563 | figures "^1.7.0" 564 | indent-string "^3.0.0" 565 | log-symbols "^1.0.2" 566 | log-update "^1.0.2" 567 | strip-ansi "^3.0.1" 568 | 569 | listr-verbose-renderer@^0.4.0: 570 | version "0.4.0" 571 | resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f" 572 | dependencies: 573 | chalk "^1.1.3" 574 | cli-cursor "^1.0.2" 575 | date-fns "^1.27.2" 576 | figures "^1.7.0" 577 | 578 | listr@^0.11.0: 579 | version "0.11.0" 580 | resolved "https://registry.yarnpkg.com/listr/-/listr-0.11.0.tgz#5e778bc23806ac3ab984ed75564458151f39b03e" 581 | dependencies: 582 | chalk "^1.1.3" 583 | cli-truncate "^0.2.1" 584 | figures "^1.7.0" 585 | indent-string "^2.1.0" 586 | is-promise "^2.1.0" 587 | is-stream "^1.1.0" 588 | listr-silent-renderer "^1.1.1" 589 | listr-update-renderer "^0.2.0" 590 | listr-verbose-renderer "^0.4.0" 591 | log-symbols "^1.0.2" 592 | log-update "^1.0.2" 593 | ora "^0.2.3" 594 | rxjs "^5.0.0-beta.11" 595 | stream-to-observable "^0.1.0" 596 | strip-ansi "^3.0.1" 597 | 598 | load-json-file@^1.0.0: 599 | version "1.1.0" 600 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 601 | dependencies: 602 | graceful-fs "^4.1.2" 603 | parse-json "^2.2.0" 604 | pify "^2.0.0" 605 | pinkie-promise "^2.0.0" 606 | strip-bom "^2.0.0" 607 | 608 | load-json-file@^2.0.0: 609 | version "2.0.0" 610 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 611 | dependencies: 612 | graceful-fs "^4.1.2" 613 | parse-json "^2.2.0" 614 | pify "^2.0.0" 615 | strip-bom "^3.0.0" 616 | 617 | locate-path@^2.0.0: 618 | version "2.0.0" 619 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 620 | dependencies: 621 | p-locate "^2.0.0" 622 | path-exists "^3.0.0" 623 | 624 | lodash@^4.3.0: 625 | version "4.17.4" 626 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 627 | 628 | log-symbols@^1.0.2: 629 | version "1.0.2" 630 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" 631 | dependencies: 632 | chalk "^1.0.0" 633 | 634 | log-update@^1.0.2: 635 | version "1.0.2" 636 | resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" 637 | dependencies: 638 | ansi-escapes "^1.0.0" 639 | cli-cursor "^1.0.2" 640 | 641 | loud-rejection@^1.0.0: 642 | version "1.6.0" 643 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 644 | dependencies: 645 | currently-unhandled "^0.4.1" 646 | signal-exit "^3.0.0" 647 | 648 | lowercase-keys@^1.0.0: 649 | version "1.0.0" 650 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 651 | 652 | lru-cache@^4.0.0, lru-cache@^4.0.1: 653 | version "4.0.2" 654 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" 655 | dependencies: 656 | pseudomap "^1.0.1" 657 | yallist "^2.0.0" 658 | 659 | make-dir@^1.0.0: 660 | version "1.0.0" 661 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" 662 | dependencies: 663 | pify "^2.3.0" 664 | 665 | map-obj@^1.0.0, map-obj@^1.0.1: 666 | version "1.0.1" 667 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 668 | 669 | meow@^3.7.0: 670 | version "3.7.0" 671 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 672 | dependencies: 673 | camelcase-keys "^2.0.0" 674 | decamelize "^1.1.2" 675 | loud-rejection "^1.0.0" 676 | map-obj "^1.0.1" 677 | minimist "^1.1.3" 678 | normalize-package-data "^2.3.4" 679 | object-assign "^4.0.1" 680 | read-pkg-up "^1.0.1" 681 | redent "^1.0.0" 682 | trim-newlines "^1.0.0" 683 | 684 | mimic-fn@^1.0.0: 685 | version "1.1.0" 686 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" 687 | 688 | minimatch@^3.0.4: 689 | version "3.0.4" 690 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 691 | dependencies: 692 | brace-expansion "^1.1.7" 693 | 694 | minimist@^1.1.3, minimist@^1.2.0: 695 | version "1.2.0" 696 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 697 | 698 | mute-stream@0.0.7: 699 | version "0.0.7" 700 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 701 | 702 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 703 | version "2.3.8" 704 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" 705 | dependencies: 706 | hosted-git-info "^2.1.4" 707 | is-builtin-module "^1.0.0" 708 | semver "2 || 3 || 4 || 5" 709 | validate-npm-package-license "^3.0.1" 710 | 711 | np@^2.15.0: 712 | version "2.15.0" 713 | resolved "https://registry.yarnpkg.com/np/-/np-2.15.0.tgz#6591811523f9a92f7ab1c47b3a9e57955a1c751c" 714 | dependencies: 715 | any-observable "^0.2.0" 716 | chalk "^1.1.3" 717 | del "^2.2.0" 718 | execa "^0.6.3" 719 | has-yarn "^1.0.0" 720 | inquirer "^3.0.6" 721 | listr "^0.11.0" 722 | log-symbols "^1.0.2" 723 | meow "^3.7.0" 724 | read-pkg-up "^2.0.0" 725 | rxjs "^5.0.0-beta.9" 726 | semver "^5.2.0" 727 | split "^1.0.0" 728 | stream-to-observable "^0.2.0" 729 | update-notifier "^2.1.0" 730 | 731 | npm-run-path@^1.0.0: 732 | version "1.0.0" 733 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f" 734 | dependencies: 735 | path-key "^1.0.0" 736 | 737 | npm-run-path@^2.0.0: 738 | version "2.0.2" 739 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 740 | dependencies: 741 | path-key "^2.0.0" 742 | 743 | number-is-nan@^1.0.0: 744 | version "1.0.1" 745 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 746 | 747 | object-assign@^4.0.1, object-assign@^4.1.0: 748 | version "4.1.1" 749 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 750 | 751 | once@^1.3.0: 752 | version "1.4.0" 753 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 754 | dependencies: 755 | wrappy "1" 756 | 757 | onetime@^1.0.0: 758 | version "1.1.0" 759 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 760 | 761 | onetime@^2.0.0: 762 | version "2.0.1" 763 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 764 | dependencies: 765 | mimic-fn "^1.0.0" 766 | 767 | ora@^0.2.3: 768 | version "0.2.3" 769 | resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" 770 | dependencies: 771 | chalk "^1.1.1" 772 | cli-cursor "^1.0.2" 773 | cli-spinners "^0.1.2" 774 | object-assign "^4.0.1" 775 | 776 | os-tmpdir@~1.0.1: 777 | version "1.0.2" 778 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 779 | 780 | p-finally@^1.0.0: 781 | version "1.0.0" 782 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 783 | 784 | p-limit@^1.1.0: 785 | version "1.1.0" 786 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" 787 | 788 | p-locate@^2.0.0: 789 | version "2.0.0" 790 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 791 | dependencies: 792 | p-limit "^1.1.0" 793 | 794 | package-json@^4.0.0: 795 | version "4.0.1" 796 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 797 | dependencies: 798 | got "^6.7.1" 799 | registry-auth-token "^3.0.1" 800 | registry-url "^3.0.3" 801 | semver "^5.1.0" 802 | 803 | parse-json@^2.2.0: 804 | version "2.2.0" 805 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 806 | dependencies: 807 | error-ex "^1.2.0" 808 | 809 | path-exists@^2.0.0: 810 | version "2.1.0" 811 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 812 | dependencies: 813 | pinkie-promise "^2.0.0" 814 | 815 | path-exists@^3.0.0: 816 | version "3.0.0" 817 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 818 | 819 | path-is-absolute@^1.0.0: 820 | version "1.0.1" 821 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 822 | 823 | path-is-inside@^1.0.1: 824 | version "1.0.2" 825 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 826 | 827 | path-key@^1.0.0: 828 | version "1.0.0" 829 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-1.0.0.tgz#5d53d578019646c0d68800db4e146e6bdc2ac7af" 830 | 831 | path-key@^2.0.0: 832 | version "2.0.1" 833 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 834 | 835 | path-parse@^1.0.5: 836 | version "1.0.5" 837 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 838 | 839 | path-type@^1.0.0: 840 | version "1.1.0" 841 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 842 | dependencies: 843 | graceful-fs "^4.1.2" 844 | pify "^2.0.0" 845 | pinkie-promise "^2.0.0" 846 | 847 | path-type@^2.0.0: 848 | version "2.0.0" 849 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 850 | dependencies: 851 | pify "^2.0.0" 852 | 853 | pify@^2.0.0, pify@^2.3.0: 854 | version "2.3.0" 855 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 856 | 857 | pify@^3.0.0: 858 | version "3.0.0" 859 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 860 | 861 | pinkie-promise@^2.0.0: 862 | version "2.0.1" 863 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 864 | dependencies: 865 | pinkie "^2.0.0" 866 | 867 | pinkie@^2.0.0: 868 | version "2.0.4" 869 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 870 | 871 | prepend-http@^1.0.1: 872 | version "1.0.4" 873 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 874 | 875 | prettier@^1.4.2: 876 | version "1.4.2" 877 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.4.2.tgz#bcdd95ed1eca434ac7f98ca26ea4d25a2af6a2ac" 878 | 879 | pseudomap@^1.0.1: 880 | version "1.0.2" 881 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 882 | 883 | rc@^1.0.1, rc@^1.1.6: 884 | version "1.2.1" 885 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 886 | dependencies: 887 | deep-extend "~0.4.0" 888 | ini "~1.3.0" 889 | minimist "^1.2.0" 890 | strip-json-comments "~2.0.1" 891 | 892 | read-pkg-up@^1.0.1: 893 | version "1.0.1" 894 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 895 | dependencies: 896 | find-up "^1.0.0" 897 | read-pkg "^1.0.0" 898 | 899 | read-pkg-up@^2.0.0: 900 | version "2.0.0" 901 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 902 | dependencies: 903 | find-up "^2.0.0" 904 | read-pkg "^2.0.0" 905 | 906 | read-pkg@^1.0.0: 907 | version "1.1.0" 908 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 909 | dependencies: 910 | load-json-file "^1.0.0" 911 | normalize-package-data "^2.3.2" 912 | path-type "^1.0.0" 913 | 914 | read-pkg@^2.0.0: 915 | version "2.0.0" 916 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 917 | dependencies: 918 | load-json-file "^2.0.0" 919 | normalize-package-data "^2.3.2" 920 | path-type "^2.0.0" 921 | 922 | redent@^1.0.0: 923 | version "1.0.0" 924 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 925 | dependencies: 926 | indent-string "^2.1.0" 927 | strip-indent "^1.0.1" 928 | 929 | registry-auth-token@^3.0.1: 930 | version "3.3.1" 931 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" 932 | dependencies: 933 | rc "^1.1.6" 934 | safe-buffer "^5.0.1" 935 | 936 | registry-url@^3.0.3: 937 | version "3.1.0" 938 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 939 | dependencies: 940 | rc "^1.0.1" 941 | 942 | repeating@^2.0.0: 943 | version "2.0.1" 944 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 945 | dependencies: 946 | is-finite "^1.0.0" 947 | 948 | resolve@^1.3.2: 949 | version "1.3.3" 950 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" 951 | dependencies: 952 | path-parse "^1.0.5" 953 | 954 | restore-cursor@^1.0.1: 955 | version "1.0.1" 956 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 957 | dependencies: 958 | exit-hook "^1.0.0" 959 | onetime "^1.0.0" 960 | 961 | restore-cursor@^2.0.0: 962 | version "2.0.0" 963 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 964 | dependencies: 965 | onetime "^2.0.0" 966 | signal-exit "^3.0.2" 967 | 968 | rimraf@^2.2.8, rimraf@^2.6.1: 969 | version "2.6.1" 970 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 971 | dependencies: 972 | glob "^7.0.5" 973 | 974 | run-async@^2.2.0: 975 | version "2.3.0" 976 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 977 | dependencies: 978 | is-promise "^2.1.0" 979 | 980 | rx@^4.1.0: 981 | version "4.1.0" 982 | resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" 983 | 984 | rxjs@^5.0.0-beta.11, rxjs@^5.0.0-beta.9: 985 | version "5.4.0" 986 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.0.tgz#a7db14ab157f9d7aac6a56e655e7a3860d39bf26" 987 | dependencies: 988 | symbol-observable "^1.0.1" 989 | 990 | safe-buffer@^5.0.1: 991 | version "5.0.1" 992 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" 993 | 994 | semver-diff@^2.0.0: 995 | version "2.1.0" 996 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 997 | dependencies: 998 | semver "^5.0.3" 999 | 1000 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.2.0, semver@^5.3.0: 1001 | version "5.3.0" 1002 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 1003 | 1004 | shebang-command@^1.2.0: 1005 | version "1.2.0" 1006 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1007 | dependencies: 1008 | shebang-regex "^1.0.0" 1009 | 1010 | shebang-regex@^1.0.0: 1011 | version "1.0.0" 1012 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1013 | 1014 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1015 | version "3.0.2" 1016 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1017 | 1018 | slice-ansi@0.0.4: 1019 | version "0.0.4" 1020 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 1021 | 1022 | slide@^1.1.5: 1023 | version "1.1.6" 1024 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 1025 | 1026 | spdx-correct@~1.0.0: 1027 | version "1.0.2" 1028 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 1029 | dependencies: 1030 | spdx-license-ids "^1.0.2" 1031 | 1032 | spdx-expression-parse@~1.0.0: 1033 | version "1.0.4" 1034 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 1035 | 1036 | spdx-license-ids@^1.0.2: 1037 | version "1.2.2" 1038 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 1039 | 1040 | split@^1.0.0: 1041 | version "1.0.0" 1042 | resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" 1043 | dependencies: 1044 | through "2" 1045 | 1046 | stream-to-observable@^0.1.0: 1047 | version "0.1.0" 1048 | resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe" 1049 | 1050 | stream-to-observable@^0.2.0: 1051 | version "0.2.0" 1052 | resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10" 1053 | dependencies: 1054 | any-observable "^0.2.0" 1055 | 1056 | string-width@^1.0.1: 1057 | version "1.0.2" 1058 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1059 | dependencies: 1060 | code-point-at "^1.0.0" 1061 | is-fullwidth-code-point "^1.0.0" 1062 | strip-ansi "^3.0.0" 1063 | 1064 | string-width@^2.0.0: 1065 | version "2.0.0" 1066 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 1067 | dependencies: 1068 | is-fullwidth-code-point "^2.0.0" 1069 | strip-ansi "^3.0.0" 1070 | 1071 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1072 | version "3.0.1" 1073 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1074 | dependencies: 1075 | ansi-regex "^2.0.0" 1076 | 1077 | strip-bom@^2.0.0: 1078 | version "2.0.0" 1079 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1080 | dependencies: 1081 | is-utf8 "^0.2.0" 1082 | 1083 | strip-bom@^3.0.0: 1084 | version "3.0.0" 1085 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1086 | 1087 | strip-eof@^1.0.0: 1088 | version "1.0.0" 1089 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1090 | 1091 | strip-indent@^1.0.1: 1092 | version "1.0.1" 1093 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 1094 | dependencies: 1095 | get-stdin "^4.0.1" 1096 | 1097 | strip-json-comments@~2.0.1: 1098 | version "2.0.1" 1099 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1100 | 1101 | supports-color@^2.0.0: 1102 | version "2.0.0" 1103 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1104 | 1105 | symbol-observable@^1.0.1: 1106 | version "1.0.4" 1107 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" 1108 | 1109 | temp-dir@^1.0.0: 1110 | version "1.0.0" 1111 | resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" 1112 | 1113 | tempfile@^2.0.0: 1114 | version "2.0.0" 1115 | resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" 1116 | dependencies: 1117 | temp-dir "^1.0.0" 1118 | uuid "^3.0.1" 1119 | 1120 | term-size@^0.1.0: 1121 | version "0.1.1" 1122 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" 1123 | dependencies: 1124 | execa "^0.4.0" 1125 | 1126 | through@2, through@^2.3.6: 1127 | version "2.3.8" 1128 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1129 | 1130 | timed-out@^4.0.0: 1131 | version "4.0.1" 1132 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 1133 | 1134 | tmp@^0.0.31: 1135 | version "0.0.31" 1136 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" 1137 | dependencies: 1138 | os-tmpdir "~1.0.1" 1139 | 1140 | trim-newlines@^1.0.0: 1141 | version "1.0.0" 1142 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 1143 | 1144 | tslib@^1.7.1: 1145 | version "1.7.1" 1146 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" 1147 | 1148 | tslint@^5.4.2: 1149 | version "5.4.2" 1150 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.4.2.tgz#609b6640cc0424f4a395a9adf68c375563c549c7" 1151 | dependencies: 1152 | babel-code-frame "^6.22.0" 1153 | colors "^1.1.2" 1154 | commander "^2.9.0" 1155 | diff "^3.2.0" 1156 | glob "^7.1.1" 1157 | minimatch "^3.0.4" 1158 | resolve "^1.3.2" 1159 | semver "^5.3.0" 1160 | tslib "^1.7.1" 1161 | tsutils "^2.3.0" 1162 | 1163 | tsutils@^2.3.0: 1164 | version "2.3.0" 1165 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.3.0.tgz#96e661d7c2363f31adc8992ac67bbe7b7fc175e5" 1166 | 1167 | typescript@^2.3.4: 1168 | version "2.3.4" 1169 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.4.tgz#3d38321828231e434f287514959c37a82b629f42" 1170 | 1171 | unique-string@^1.0.0: 1172 | version "1.0.0" 1173 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 1174 | dependencies: 1175 | crypto-random-string "^1.0.0" 1176 | 1177 | unzip-response@^2.0.1: 1178 | version "2.0.1" 1179 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 1180 | 1181 | update-notifier@^2.1.0: 1182 | version "2.1.0" 1183 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.1.0.tgz#ec0c1e53536b76647a24b77cb83966d9315123d9" 1184 | dependencies: 1185 | boxen "^1.0.0" 1186 | chalk "^1.0.0" 1187 | configstore "^3.0.0" 1188 | is-npm "^1.0.0" 1189 | latest-version "^3.0.0" 1190 | lazy-req "^2.0.0" 1191 | semver-diff "^2.0.0" 1192 | xdg-basedir "^3.0.0" 1193 | 1194 | url-parse-lax@^1.0.0: 1195 | version "1.0.0" 1196 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 1197 | dependencies: 1198 | prepend-http "^1.0.1" 1199 | 1200 | uuid@^3.0.1: 1201 | version "3.0.1" 1202 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" 1203 | 1204 | validate-npm-package-license@^3.0.1: 1205 | version "3.0.1" 1206 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 1207 | dependencies: 1208 | spdx-correct "~1.0.0" 1209 | spdx-expression-parse "~1.0.0" 1210 | 1211 | which@^1.2.14, which@^1.2.8, which@^1.2.9: 1212 | version "1.2.14" 1213 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" 1214 | dependencies: 1215 | isexe "^2.0.0" 1216 | 1217 | widest-line@^1.0.0: 1218 | version "1.0.0" 1219 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" 1220 | dependencies: 1221 | string-width "^1.0.1" 1222 | 1223 | wrappy@1: 1224 | version "1.0.2" 1225 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1226 | 1227 | write-file-atomic@^2.0.0: 1228 | version "2.1.0" 1229 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37" 1230 | dependencies: 1231 | graceful-fs "^4.1.11" 1232 | imurmurhash "^0.1.4" 1233 | slide "^1.1.5" 1234 | 1235 | xdg-basedir@^3.0.0: 1236 | version "3.0.0" 1237 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 1238 | 1239 | yallist@^2.0.0: 1240 | version "2.1.2" 1241 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1242 | --------------------------------------------------------------------------------