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