aboutsummaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
Diffstat (limited to 'editors')
-rw-r--r--editors/code/package-lock.json1607
-rw-r--r--editors/code/package.json47
-rw-r--r--editors/code/src/commands/cargo_watch.ts102
-rw-r--r--editors/code/src/commands/extend_selection.ts34
-rw-r--r--editors/code/src/commands/index.ts2
-rw-r--r--editors/code/src/commands/runnables.ts17
-rw-r--r--editors/code/src/commands/watch_status.ts18
-rw-r--r--editors/code/src/extension.ts29
-rw-r--r--editors/code/src/server.ts1
9 files changed, 315 insertions, 1542 deletions
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json
index 008df6f52..29cd260a4 100644
--- a/editors/code/package-lock.json
+++ b/editors/code/package-lock.json
@@ -4,22 +4,51 @@
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
7 "@babel/code-frame": {
8 "version": "7.0.0",
9 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
10 "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
11 "dev": true,
12 "requires": {
13 "@babel/highlight": "^7.0.0"
14 }
15 },
16 "@babel/highlight": {
17 "version": "7.0.0",
18 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
19 "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
20 "dev": true,
21 "requires": {
22 "chalk": "^2.0.0",
23 "esutils": "^2.0.2",
24 "js-tokens": "^4.0.0"
25 }
26 },
7 "@types/mocha": { 27 "@types/mocha": {
8 "version": "5.2.5", 28 "version": "5.2.6",
9 "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.5.tgz", 29 "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.6.tgz",
10 "integrity": "sha512-lAVp+Kj54ui/vLUFxsJTMtWvZraZxum3w3Nwkble2dNuV5VnPA+Mi2oGX9XYJAaIvZi3tn3cbjS/qcJXRb6Bww==", 30 "integrity": "sha512-1axi39YdtBI7z957vdqXI4Ac25e7YihYQtJa+Clnxg1zTJEaIRbndt71O3sP4GAMgiAm0pY26/b9BrY4MR/PMw==",
11 "dev": true 31 "dev": true
12 }, 32 },
13 "@types/node": { 33 "@types/node": {
14 "version": "10.12.24", 34 "version": "10.14.5",
15 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.24.tgz", 35 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.5.tgz",
16 "integrity": "sha512-GWWbvt+z9G5otRBW8rssOFgRY87J9N/qbhqfjMZ+gUuL6zoL+Hm6gP/8qQBG4jjimqdaNLCehcVapZ/Fs2WjCQ==", 36 "integrity": "sha512-Ja7d4s0qyGFxjGeDq5S7Si25OFibSAHUi6i17UWnwNnpitADN7hah9q0Tl25gxuV5R1u2Bx+np6w4LHXfHyj/g==",
17 "dev": true 37 "dev": true
18 }, 38 },
39 "agent-base": {
40 "version": "4.2.1",
41 "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
42 "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
43 "dev": true,
44 "requires": {
45 "es6-promisify": "^5.0.0"
46 }
47 },
19 "ajv": { 48 "ajv": {
20 "version": "6.8.1", 49 "version": "6.10.0",
21 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.8.1.tgz", 50 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
22 "integrity": "sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ==", 51 "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
23 "dev": true, 52 "dev": true,
24 "requires": { 53 "requires": {
25 "fast-deep-equal": "^2.0.1", 54 "fast-deep-equal": "^2.0.1",
@@ -28,49 +57,13 @@
28 "uri-js": "^4.2.2" 57 "uri-js": "^4.2.2"
29 } 58 }
30 }, 59 },
31 "ansi-cyan": {
32 "version": "0.1.1",
33 "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
34 "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
35 "dev": true,
36 "requires": {
37 "ansi-wrap": "0.1.0"
38 }
39 },
40 "ansi-red": {
41 "version": "0.1.1",
42 "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
43 "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
44 "dev": true,
45 "requires": {
46 "ansi-wrap": "0.1.0"
47 }
48 },
49 "ansi-regex": {
50 "version": "2.1.1",
51 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
52 "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
53 "dev": true
54 },
55 "ansi-styles": { 60 "ansi-styles": {
56 "version": "2.2.1", 61 "version": "3.2.1",
57 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 62 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
58 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", 63 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
59 "dev": true
60 },
61 "ansi-wrap": {
62 "version": "0.1.0",
63 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
64 "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
65 "dev": true
66 },
67 "append-buffer": {
68 "version": "1.0.2",
69 "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
70 "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=",
71 "dev": true, 64 "dev": true,
72 "requires": { 65 "requires": {
73 "buffer-equal": "^1.0.0" 66 "color-convert": "^1.9.0"
74 } 67 }
75 }, 68 },
76 "argparse": { 69 "argparse": {
@@ -82,61 +75,6 @@
82 "sprintf-js": "~1.0.2" 75 "sprintf-js": "~1.0.2"
83 } 76 }
84 }, 77 },
85 "arr-diff": {
86 "version": "1.1.0",
87 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
88 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
89 "dev": true,
90 "requires": {
91 "arr-flatten": "^1.0.1",
92 "array-slice": "^0.2.3"
93 }
94 },
95 "arr-flatten": {
96 "version": "1.1.0",
97 "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
98 "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
99 "dev": true
100 },
101 "arr-union": {
102 "version": "2.1.0",
103 "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
104 "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
105 "dev": true
106 },
107 "array-differ": {
108 "version": "1.0.0",
109 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
110 "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
111 "dev": true
112 },
113 "array-slice": {
114 "version": "0.2.3",
115 "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
116 "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
117 "dev": true
118 },
119 "array-union": {
120 "version": "1.0.2",
121 "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
122 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
123 "dev": true,
124 "requires": {
125 "array-uniq": "^1.0.1"
126 }
127 },
128 "array-uniq": {
129 "version": "1.0.3",
130 "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
131 "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
132 "dev": true
133 },
134 "arrify": {
135 "version": "1.0.1",
136 "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
137 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
138 "dev": true
139 },
140 "asn1": { 78 "asn1": {
141 "version": "0.2.4", 79 "version": "0.2.4",
142 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 80 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
@@ -170,32 +108,6 @@
170 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", 108 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
171 "dev": true 109 "dev": true
172 }, 110 },
173 "babel-code-frame": {
174 "version": "6.26.0",
175 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
176 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
177 "dev": true,
178 "requires": {
179 "chalk": "^1.1.3",
180 "esutils": "^2.0.2",
181 "js-tokens": "^3.0.2"
182 },
183 "dependencies": {
184 "chalk": {
185 "version": "1.1.3",
186 "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
187 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
188 "dev": true,
189 "requires": {
190 "ansi-styles": "^2.2.1",
191 "escape-string-regexp": "^1.0.2",
192 "has-ansi": "^2.0.0",
193 "strip-ansi": "^3.0.0",
194 "supports-color": "^2.0.0"
195 }
196 }
197 }
198 },
199 "balanced-match": { 111 "balanced-match": {
200 "version": "1.0.0", 112 "version": "1.0.0",
201 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 113 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -211,15 +123,6 @@
211 "tweetnacl": "^0.14.3" 123 "tweetnacl": "^0.14.3"
212 } 124 }
213 }, 125 },
214 "block-stream": {
215 "version": "0.0.9",
216 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
217 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
218 "dev": true,
219 "requires": {
220 "inherits": "~2.0.0"
221 }
222 },
223 "boolbase": { 126 "boolbase": {
224 "version": "1.0.0", 127 "version": "1.0.0",
225 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 128 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -248,12 +151,6 @@
248 "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 151 "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
249 "dev": true 152 "dev": true
250 }, 153 },
251 "buffer-equal": {
252 "version": "1.0.0",
253 "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz",
254 "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=",
255 "dev": true
256 },
257 "buffer-from": { 154 "buffer-from": {
258 "version": "1.1.1", 155 "version": "1.1.1",
259 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 156 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -281,97 +178,22 @@
281 "ansi-styles": "^3.2.1", 178 "ansi-styles": "^3.2.1",
282 "escape-string-regexp": "^1.0.5", 179 "escape-string-regexp": "^1.0.5",
283 "supports-color": "^5.3.0" 180 "supports-color": "^5.3.0"
284 },
285 "dependencies": {
286 "ansi-styles": {
287 "version": "3.2.1",
288 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
289 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
290 "dev": true,
291 "requires": {
292 "color-convert": "^1.9.0"
293 }
294 },
295 "supports-color": {
296 "version": "5.5.0",
297 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
298 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
299 "dev": true,
300 "requires": {
301 "has-flag": "^3.0.0"
302 }
303 }
304 } 181 }
305 }, 182 },
306 "cheerio": { 183 "cheerio": {
307 "version": "1.0.0-rc.2", 184 "version": "1.0.0-rc.3",
308 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", 185 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
309 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", 186 "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==",
310 "dev": true, 187 "dev": true,
311 "requires": { 188 "requires": {
312 "css-select": "~1.2.0", 189 "css-select": "~1.2.0",
313 "dom-serializer": "~0.1.0", 190 "dom-serializer": "~0.1.1",
314 "entities": "~1.1.1", 191 "entities": "~1.1.1",
315 "htmlparser2": "^3.9.1", 192 "htmlparser2": "^3.9.1",
316 "lodash": "^4.15.0", 193 "lodash": "^4.15.0",
317 "parse5": "^3.0.1" 194 "parse5": "^3.0.1"
318 } 195 }
319 }, 196 },
320 "clone": {
321 "version": "0.2.0",
322 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
323 "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
324 "dev": true
325 },
326 "clone-buffer": {
327 "version": "1.0.0",
328 "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
329 "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
330 "dev": true
331 },
332 "clone-stats": {
333 "version": "0.0.1",
334 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
335 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
336 "dev": true
337 },
338 "cloneable-readable": {
339 "version": "1.1.2",
340 "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
341 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
342 "dev": true,
343 "requires": {
344 "inherits": "^2.0.1",
345 "process-nextick-args": "^2.0.0",
346 "readable-stream": "^2.3.5"
347 },
348 "dependencies": {
349 "readable-stream": {
350 "version": "2.3.6",
351 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
352 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
353 "dev": true,
354 "requires": {
355 "core-util-is": "~1.0.0",
356 "inherits": "~2.0.3",
357 "isarray": "~1.0.0",
358 "process-nextick-args": "~2.0.0",
359 "safe-buffer": "~5.1.1",
360 "string_decoder": "~1.1.1",
361 "util-deprecate": "~1.0.1"
362 }
363 },
364 "string_decoder": {
365 "version": "1.1.1",
366 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
367 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
368 "dev": true,
369 "requires": {
370 "safe-buffer": "~5.1.0"
371 }
372 }
373 }
374 },
375 "color-convert": { 197 "color-convert": {
376 "version": "1.9.3", 198 "version": "1.9.3",
377 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 199 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -397,9 +219,9 @@
397 } 219 }
398 }, 220 },
399 "commander": { 221 "commander": {
400 "version": "2.19.0", 222 "version": "2.20.0",
401 "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", 223 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
402 "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", 224 "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
403 "dev": true 225 "dev": true
404 }, 226 },
405 "concat-map": { 227 "concat-map": {
@@ -408,15 +230,6 @@
408 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 230 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
409 "dev": true 231 "dev": true
410 }, 232 },
411 "convert-source-map": {
412 "version": "1.6.0",
413 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
414 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
415 "dev": true,
416 "requires": {
417 "safe-buffer": "~5.1.1"
418 }
419 },
420 "core-util-is": { 233 "core-util-is": {
421 "version": "1.0.2", 234 "version": "1.0.2",
422 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 235 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -436,9 +249,9 @@
436 } 249 }
437 }, 250 },
438 "css-what": { 251 "css-what": {
439 "version": "2.1.2", 252 "version": "2.1.3",
440 "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", 253 "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
441 "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", 254 "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
442 "dev": true 255 "dev": true
443 }, 256 },
444 "dashdash": { 257 "dashdash": {
@@ -459,24 +272,6 @@
459 "ms": "2.0.0" 272 "ms": "2.0.0"
460 } 273 }
461 }, 274 },
462 "deep-assign": {
463 "version": "1.0.0",
464 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz",
465 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=",
466 "dev": true,
467 "requires": {
468 "is-obj": "^1.0.0"
469 }
470 },
471 "define-properties": {
472 "version": "1.1.3",
473 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
474 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
475 "dev": true,
476 "requires": {
477 "object-keys": "^1.0.12"
478 }
479 },
480 "delayed-stream": { 275 "delayed-stream": {
481 "version": "1.0.0", 276 "version": "1.0.0",
482 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 277 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -496,21 +291,13 @@
496 "dev": true 291 "dev": true
497 }, 292 },
498 "dom-serializer": { 293 "dom-serializer": {
499 "version": "0.1.0", 294 "version": "0.1.1",
500 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", 295 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
501 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", 296 "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
502 "dev": true, 297 "dev": true,
503 "requires": { 298 "requires": {
504 "domelementtype": "~1.1.1", 299 "domelementtype": "^1.3.0",
505 "entities": "~1.1.1" 300 "entities": "^1.1.1"
506 },
507 "dependencies": {
508 "domelementtype": {
509 "version": "1.1.3",
510 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
511 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
512 "dev": true
513 }
514 } 301 }
515 }, 302 },
516 "domelementtype": { 303 "domelementtype": {
@@ -538,50 +325,6 @@
538 "domelementtype": "1" 325 "domelementtype": "1"
539 } 326 }
540 }, 327 },
541 "duplexer": {
542 "version": "0.1.1",
543 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
544 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
545 "dev": true
546 },
547 "duplexify": {
548 "version": "3.7.1",
549 "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
550 "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
551 "dev": true,
552 "requires": {
553 "end-of-stream": "^1.0.0",
554 "inherits": "^2.0.1",
555 "readable-stream": "^2.0.0",
556 "stream-shift": "^1.0.0"
557 },
558 "dependencies": {
559 "readable-stream": {
560 "version": "2.3.6",
561 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
562 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
563 "dev": true,
564 "requires": {
565 "core-util-is": "~1.0.0",
566 "inherits": "~2.0.3",
567 "isarray": "~1.0.0",
568 "process-nextick-args": "~2.0.0",
569 "safe-buffer": "~5.1.1",
570 "string_decoder": "~1.1.1",
571 "util-deprecate": "~1.0.1"
572 }
573 },
574 "string_decoder": {
575 "version": "1.1.1",
576 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
577 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
578 "dev": true,
579 "requires": {
580 "safe-buffer": "~5.1.0"
581 }
582 }
583 }
584 },
585 "ecc-jsbn": { 328 "ecc-jsbn": {
586 "version": "0.1.2", 329 "version": "0.1.2",
587 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 330 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
@@ -592,15 +335,6 @@
592 "safer-buffer": "^2.1.0" 335 "safer-buffer": "^2.1.0"
593 } 336 }
594 }, 337 },
595 "end-of-stream": {
596 "version": "1.4.1",
597 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
598 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
599 "dev": true,
600 "requires": {
601 "once": "^1.4.0"
602 }
603 },
604 "entities": { 338 "entities": {
605 "version": "1.1.2", 339 "version": "1.1.2",
606 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", 340 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
@@ -613,6 +347,21 @@
613 "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", 347 "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=",
614 "dev": true 348 "dev": true
615 }, 349 },
350 "es6-promise": {
351 "version": "4.2.6",
352 "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
353 "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==",
354 "dev": true
355 },
356 "es6-promisify": {
357 "version": "5.0.0",
358 "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
359 "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
360 "dev": true,
361 "requires": {
362 "es6-promise": "^4.0.3"
363 }
364 },
616 "escape-string-regexp": { 365 "escape-string-regexp": {
617 "version": "1.0.5", 366 "version": "1.0.5",
618 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 367 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -631,36 +380,12 @@
631 "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 380 "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
632 "dev": true 381 "dev": true
633 }, 382 },
634 "event-stream": {
635 "version": "3.3.4",
636 "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
637 "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
638 "dev": true,
639 "requires": {
640 "duplexer": "~0.1.1",
641 "from": "~0",
642 "map-stream": "~0.1.0",
643 "pause-stream": "0.0.11",
644 "split": "0.3",
645 "stream-combiner": "~0.0.4",
646 "through": "~2.3.1"
647 }
648 },
649 "extend": { 383 "extend": {
650 "version": "3.0.2", 384 "version": "3.0.2",
651 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 385 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
652 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 386 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
653 "dev": true 387 "dev": true
654 }, 388 },
655 "extend-shallow": {
656 "version": "1.1.4",
657 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
658 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
659 "dev": true,
660 "requires": {
661 "kind-of": "^1.1.0"
662 }
663 },
664 "extsprintf": { 389 "extsprintf": {
665 "version": "1.3.0", 390 "version": "1.3.0",
666 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 391 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
@@ -688,16 +413,6 @@
688 "pend": "~1.2.0" 413 "pend": "~1.2.0"
689 } 414 }
690 }, 415 },
691 "flush-write-stream": {
692 "version": "1.1.0",
693 "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.0.tgz",
694 "integrity": "sha512-6MHED/cmsyux1G4/Cek2Z776y9t7WCNd3h2h/HW91vFeU7pzMhA8XvAlDhHcanG5IWuIh/xcC7JASY4WQpG6xg==",
695 "dev": true,
696 "requires": {
697 "inherits": "^2.0.3",
698 "readable-stream": "^3.1.1"
699 }
700 },
701 "forever-agent": { 416 "forever-agent": {
702 "version": "0.6.1", 417 "version": "0.6.1",
703 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 418 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -715,46 +430,12 @@
715 "mime-types": "^2.1.12" 430 "mime-types": "^2.1.12"
716 } 431 }
717 }, 432 },
718 "from": {
719 "version": "0.1.7",
720 "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
721 "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
722 "dev": true
723 },
724 "fs-mkdirp-stream": {
725 "version": "1.0.0",
726 "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz",
727 "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=",
728 "dev": true,
729 "requires": {
730 "graceful-fs": "^4.1.11",
731 "through2": "^2.0.3"
732 }
733 },
734 "fs.realpath": { 433 "fs.realpath": {
735 "version": "1.0.0", 434 "version": "1.0.0",
736 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 435 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
737 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 436 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
738 "dev": true 437 "dev": true
739 }, 438 },
740 "fstream": {
741 "version": "1.0.11",
742 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
743 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
744 "dev": true,
745 "requires": {
746 "graceful-fs": "^4.1.2",
747 "inherits": "~2.0.0",
748 "mkdirp": ">=0.5 0",
749 "rimraf": "2"
750 }
751 },
752 "function-bind": {
753 "version": "1.1.1",
754 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
755 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
756 "dev": true
757 },
758 "getpass": { 439 "getpass": {
759 "version": "0.1.7", 440 "version": "0.1.7",
760 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 441 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
@@ -778,262 +459,12 @@
778 "path-is-absolute": "^1.0.0" 459 "path-is-absolute": "^1.0.0"
779 } 460 }
780 }, 461 },
781 "glob-parent": {
782 "version": "3.1.0",
783 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
784 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
785 "dev": true,
786 "requires": {
787 "is-glob": "^3.1.0",
788 "path-dirname": "^1.0.0"
789 }
790 },
791 "glob-stream": {
792 "version": "6.1.0",
793 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz",
794 "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=",
795 "dev": true,
796 "requires": {
797 "extend": "^3.0.0",
798 "glob": "^7.1.1",
799 "glob-parent": "^3.1.0",
800 "is-negated-glob": "^1.0.0",
801 "ordered-read-streams": "^1.0.0",
802 "pumpify": "^1.3.5",
803 "readable-stream": "^2.1.5",
804 "remove-trailing-separator": "^1.0.1",
805 "to-absolute-glob": "^2.0.0",
806 "unique-stream": "^2.0.2"
807 },
808 "dependencies": {
809 "readable-stream": {
810 "version": "2.3.6",
811 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
812 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
813 "dev": true,
814 "requires": {
815 "core-util-is": "~1.0.0",
816 "inherits": "~2.0.3",
817 "isarray": "~1.0.0",
818 "process-nextick-args": "~2.0.0",
819 "safe-buffer": "~5.1.1",
820 "string_decoder": "~1.1.1",
821 "util-deprecate": "~1.0.1"
822 }
823 },
824 "string_decoder": {
825 "version": "1.1.1",
826 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
827 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
828 "dev": true,
829 "requires": {
830 "safe-buffer": "~5.1.0"
831 }
832 }
833 }
834 },
835 "graceful-fs": {
836 "version": "4.1.15",
837 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
838 "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
839 "dev": true
840 },
841 "growl": { 462 "growl": {
842 "version": "1.10.3", 463 "version": "1.10.3",
843 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", 464 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
844 "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", 465 "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
845 "dev": true 466 "dev": true
846 }, 467 },
847 "gulp-chmod": {
848 "version": "2.0.0",
849 "resolved": "https://registry.npmjs.org/gulp-chmod/-/gulp-chmod-2.0.0.tgz",
850 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=",
851 "dev": true,
852 "requires": {
853 "deep-assign": "^1.0.0",
854 "stat-mode": "^0.2.0",
855 "through2": "^2.0.0"
856 }
857 },
858 "gulp-filter": {
859 "version": "5.1.0",
860 "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz",
861 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=",
862 "dev": true,
863 "requires": {
864 "multimatch": "^2.0.0",
865 "plugin-error": "^0.1.2",
866 "streamfilter": "^1.0.5"
867 }
868 },
869 "gulp-gunzip": {
870 "version": "1.0.0",
871 "resolved": "https://registry.npmjs.org/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz",
872 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=",
873 "dev": true,
874 "requires": {
875 "through2": "~0.6.5",
876 "vinyl": "~0.4.6"
877 },
878 "dependencies": {
879 "isarray": {
880 "version": "0.0.1",
881 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
882 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
883 "dev": true
884 },
885 "readable-stream": {
886 "version": "1.0.34",
887 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
888 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
889 "dev": true,
890 "requires": {
891 "core-util-is": "~1.0.0",
892 "inherits": "~2.0.1",
893 "isarray": "0.0.1",
894 "string_decoder": "~0.10.x"
895 }
896 },
897 "string_decoder": {
898 "version": "0.10.31",
899 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
900 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
901 "dev": true
902 },
903 "through2": {
904 "version": "0.6.5",
905 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
906 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
907 "dev": true,
908 "requires": {
909 "readable-stream": ">=1.0.33-1 <1.1.0-0",
910 "xtend": ">=4.0.0 <4.1.0-0"
911 }
912 }
913 }
914 },
915 "gulp-remote-src-vscode": {
916 "version": "0.5.1",
917 "resolved": "https://registry.npmjs.org/gulp-remote-src-vscode/-/gulp-remote-src-vscode-0.5.1.tgz",
918 "integrity": "sha512-mw4OGjtC/jlCWJFhbcAlel4YPvccChlpsl3JceNiB/DLJi24/UPxXt53/N26lgI3dknEqd4ErfdHrO8sJ5bATQ==",
919 "dev": true,
920 "requires": {
921 "event-stream": "3.3.4",
922 "node.extend": "^1.1.2",
923 "request": "^2.79.0",
924 "through2": "^2.0.3",
925 "vinyl": "^2.0.1"
926 },
927 "dependencies": {
928 "clone": {
929 "version": "2.1.2",
930 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
931 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
932 "dev": true
933 },
934 "clone-stats": {
935 "version": "1.0.0",
936 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
937 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
938 "dev": true
939 },
940 "vinyl": {
941 "version": "2.2.0",
942 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
943 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
944 "dev": true,
945 "requires": {
946 "clone": "^2.1.1",
947 "clone-buffer": "^1.0.0",
948 "clone-stats": "^1.0.0",
949 "cloneable-readable": "^1.0.0",
950 "remove-trailing-separator": "^1.0.1",
951 "replace-ext": "^1.0.0"
952 }
953 }
954 }
955 },
956 "gulp-untar": {
957 "version": "0.0.7",
958 "resolved": "https://registry.npmjs.org/gulp-untar/-/gulp-untar-0.0.7.tgz",
959 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==",
960 "dev": true,
961 "requires": {
962 "event-stream": "~3.3.4",
963 "streamifier": "~0.1.1",
964 "tar": "^2.2.1",
965 "through2": "~2.0.3",
966 "vinyl": "^1.2.0"
967 },
968 "dependencies": {
969 "clone": {
970 "version": "1.0.4",
971 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
972 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
973 "dev": true
974 },
975 "replace-ext": {
976 "version": "0.0.1",
977 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
978 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
979 "dev": true
980 },
981 "vinyl": {
982 "version": "1.2.0",
983 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
984 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
985 "dev": true,
986 "requires": {
987 "clone": "^1.0.0",
988 "clone-stats": "^0.0.1",
989 "replace-ext": "0.0.1"
990 }
991 }
992 }
993 },
994 "gulp-vinyl-zip": {
995 "version": "2.1.2",
996 "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.2.tgz",
997 "integrity": "sha512-wJn09jsb8PyvUeyFF7y7ImEJqJwYy40BqL9GKfJs6UGpaGW9A+N68Q+ajsIpb9AeR6lAdjMbIdDPclIGo1/b7Q==",
998 "dev": true,
999 "requires": {
1000 "event-stream": "3.3.4",
1001 "queue": "^4.2.1",
1002 "through2": "^2.0.3",
1003 "vinyl": "^2.0.2",
1004 "vinyl-fs": "^3.0.3",
1005 "yauzl": "^2.2.1",
1006 "yazl": "^2.2.1"
1007 },
1008 "dependencies": {
1009 "clone": {
1010 "version": "2.1.2",
1011 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
1012 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
1013 "dev": true
1014 },
1015 "clone-stats": {
1016 "version": "1.0.0",
1017 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
1018 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
1019 "dev": true
1020 },
1021 "vinyl": {
1022 "version": "2.2.0",
1023 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
1024 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1025 "dev": true,
1026 "requires": {
1027 "clone": "^2.1.1",
1028 "clone-buffer": "^1.0.0",
1029 "clone-stats": "^1.0.0",
1030 "cloneable-readable": "^1.0.0",
1031 "remove-trailing-separator": "^1.0.1",
1032 "replace-ext": "^1.0.0"
1033 }
1034 }
1035 }
1036 },
1037 "har-schema": { 468 "har-schema": {
1038 "version": "2.0.0", 469 "version": "2.0.0",
1039 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 470 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@@ -1050,36 +481,12 @@
1050 "har-schema": "^2.0.0" 481 "har-schema": "^2.0.0"
1051 } 482 }
1052 }, 483 },
1053 "has": {
1054 "version": "1.0.3",
1055 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1056 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1057 "dev": true,
1058 "requires": {
1059 "function-bind": "^1.1.1"
1060 }
1061 },
1062 "has-ansi": {
1063 "version": "2.0.0",
1064 "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1065 "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1066 "dev": true,
1067 "requires": {
1068 "ansi-regex": "^2.0.0"
1069 }
1070 },
1071 "has-flag": { 484 "has-flag": {
1072 "version": "3.0.0", 485 "version": "3.0.0",
1073 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 486 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1074 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 487 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1075 "dev": true 488 "dev": true
1076 }, 489 },
1077 "has-symbols": {
1078 "version": "1.0.0",
1079 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
1080 "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
1081 "dev": true
1082 },
1083 "he": { 490 "he": {
1084 "version": "1.1.1", 491 "version": "1.1.1",
1085 "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 492 "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
@@ -1087,17 +494,27 @@
1087 "dev": true 494 "dev": true
1088 }, 495 },
1089 "htmlparser2": { 496 "htmlparser2": {
1090 "version": "3.10.0", 497 "version": "3.10.1",
1091 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", 498 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
1092 "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", 499 "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
1093 "dev": true, 500 "dev": true,
1094 "requires": { 501 "requires": {
1095 "domelementtype": "^1.3.0", 502 "domelementtype": "^1.3.1",
1096 "domhandler": "^2.3.0", 503 "domhandler": "^2.3.0",
1097 "domutils": "^1.5.1", 504 "domutils": "^1.5.1",
1098 "entities": "^1.1.1", 505 "entities": "^1.1.1",
1099 "inherits": "^2.0.1", 506 "inherits": "^2.0.1",
1100 "readable-stream": "^3.0.6" 507 "readable-stream": "^3.1.1"
508 }
509 },
510 "http-proxy-agent": {
511 "version": "2.1.0",
512 "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
513 "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
514 "dev": true,
515 "requires": {
516 "agent-base": "4",
517 "debug": "3.1.0"
1101 } 518 }
1102 }, 519 },
1103 "http-signature": { 520 "http-signature": {
@@ -1111,6 +528,16 @@
1111 "sshpk": "^1.7.0" 528 "sshpk": "^1.7.0"
1112 } 529 }
1113 }, 530 },
531 "https-proxy-agent": {
532 "version": "2.2.1",
533 "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
534 "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
535 "dev": true,
536 "requires": {
537 "agent-base": "^4.1.0",
538 "debug": "^3.1.0"
539 }
540 },
1114 "inflight": { 541 "inflight": {
1115 "version": "1.0.6", 542 "version": "1.0.6",
1116 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 543 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -1133,103 +560,12 @@
1133 "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", 560 "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
1134 "dev": true 561 "dev": true
1135 }, 562 },
1136 "is": {
1137 "version": "3.3.0",
1138 "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz",
1139 "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==",
1140 "dev": true
1141 },
1142 "is-absolute": {
1143 "version": "1.0.0",
1144 "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
1145 "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
1146 "dev": true,
1147 "requires": {
1148 "is-relative": "^1.0.0",
1149 "is-windows": "^1.0.1"
1150 }
1151 },
1152 "is-buffer": {
1153 "version": "1.1.6",
1154 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1155 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1156 "dev": true
1157 },
1158 "is-extglob": {
1159 "version": "2.1.1",
1160 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1161 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1162 "dev": true
1163 },
1164 "is-glob": {
1165 "version": "3.1.0",
1166 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1167 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1168 "dev": true,
1169 "requires": {
1170 "is-extglob": "^2.1.0"
1171 }
1172 },
1173 "is-negated-glob": {
1174 "version": "1.0.0",
1175 "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
1176 "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=",
1177 "dev": true
1178 },
1179 "is-obj": {
1180 "version": "1.0.1",
1181 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1182 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1183 "dev": true
1184 },
1185 "is-relative": {
1186 "version": "1.0.0",
1187 "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
1188 "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
1189 "dev": true,
1190 "requires": {
1191 "is-unc-path": "^1.0.0"
1192 }
1193 },
1194 "is-typedarray": { 563 "is-typedarray": {
1195 "version": "1.0.0", 564 "version": "1.0.0",
1196 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 565 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1197 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 566 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1198 "dev": true 567 "dev": true
1199 }, 568 },
1200 "is-unc-path": {
1201 "version": "1.0.0",
1202 "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
1203 "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
1204 "dev": true,
1205 "requires": {
1206 "unc-path-regex": "^0.1.2"
1207 }
1208 },
1209 "is-utf8": {
1210 "version": "0.2.1",
1211 "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1212 "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
1213 "dev": true
1214 },
1215 "is-valid-glob": {
1216 "version": "1.0.0",
1217 "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz",
1218 "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=",
1219 "dev": true
1220 },
1221 "is-windows": {
1222 "version": "1.0.2",
1223 "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1224 "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
1225 "dev": true
1226 },
1227 "isarray": {
1228 "version": "1.0.0",
1229 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1230 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1231 "dev": true
1232 },
1233 "isstream": { 569 "isstream": {
1234 "version": "0.1.2", 570 "version": "0.1.2",
1235 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 571 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@@ -1237,15 +573,15 @@
1237 "dev": true 573 "dev": true
1238 }, 574 },
1239 "js-tokens": { 575 "js-tokens": {
1240 "version": "3.0.2", 576 "version": "4.0.0",
1241 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 577 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1242 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", 578 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1243 "dev": true 579 "dev": true
1244 }, 580 },
1245 "js-yaml": { 581 "js-yaml": {
1246 "version": "3.12.1", 582 "version": "3.13.1",
1247 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", 583 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
1248 "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", 584 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
1249 "dev": true, 585 "dev": true,
1250 "requires": { 586 "requires": {
1251 "argparse": "^1.0.7", 587 "argparse": "^1.0.7",
@@ -1270,12 +606,6 @@
1270 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 606 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1271 "dev": true 607 "dev": true
1272 }, 608 },
1273 "json-stable-stringify-without-jsonify": {
1274 "version": "1.0.1",
1275 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1276 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1277 "dev": true
1278 },
1279 "json-stringify-safe": { 609 "json-stringify-safe": {
1280 "version": "5.0.1", 610 "version": "5.0.1",
1281 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 611 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -1294,56 +624,6 @@
1294 "verror": "1.10.0" 624 "verror": "1.10.0"
1295 } 625 }
1296 }, 626 },
1297 "kind-of": {
1298 "version": "1.1.0",
1299 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
1300 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
1301 "dev": true
1302 },
1303 "lazystream": {
1304 "version": "1.0.0",
1305 "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
1306 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
1307 "dev": true,
1308 "requires": {
1309 "readable-stream": "^2.0.5"
1310 },
1311 "dependencies": {
1312 "readable-stream": {
1313 "version": "2.3.6",
1314 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1315 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1316 "dev": true,
1317 "requires": {
1318 "core-util-is": "~1.0.0",
1319 "inherits": "~2.0.3",
1320 "isarray": "~1.0.0",
1321 "process-nextick-args": "~2.0.0",
1322 "safe-buffer": "~5.1.1",
1323 "string_decoder": "~1.1.1",
1324 "util-deprecate": "~1.0.1"
1325 }
1326 },
1327 "string_decoder": {
1328 "version": "1.1.1",
1329 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1330 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1331 "dev": true,
1332 "requires": {
1333 "safe-buffer": "~5.1.0"
1334 }
1335 }
1336 }
1337 },
1338 "lead": {
1339 "version": "1.0.0",
1340 "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz",
1341 "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=",
1342 "dev": true,
1343 "requires": {
1344 "flush-write-stream": "^1.0.2"
1345 }
1346 },
1347 "linkify-it": { 627 "linkify-it": {
1348 "version": "2.1.0", 628 "version": "2.1.0",
1349 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", 629 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
@@ -1359,12 +639,6 @@
1359 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 639 "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
1360 "dev": true 640 "dev": true
1361 }, 641 },
1362 "map-stream": {
1363 "version": "0.1.0",
1364 "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
1365 "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
1366 "dev": true
1367 },
1368 "markdown-it": { 642 "markdown-it": {
1369 "version": "8.4.2", 643 "version": "8.4.2",
1370 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", 644 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
@@ -1391,18 +665,18 @@
1391 "dev": true 665 "dev": true
1392 }, 666 },
1393 "mime-db": { 667 "mime-db": {
1394 "version": "1.37.0", 668 "version": "1.40.0",
1395 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", 669 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
1396 "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", 670 "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
1397 "dev": true 671 "dev": true
1398 }, 672 },
1399 "mime-types": { 673 "mime-types": {
1400 "version": "2.1.21", 674 "version": "2.1.24",
1401 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", 675 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
1402 "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", 676 "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
1403 "dev": true, 677 "dev": true,
1404 "requires": { 678 "requires": {
1405 "mime-db": "~1.37.0" 679 "mime-db": "1.40.0"
1406 } 680 }
1407 }, 681 },
1408 "minimatch": { 682 "minimatch": {
@@ -1496,52 +770,12 @@
1496 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 770 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1497 "dev": true 771 "dev": true
1498 }, 772 },
1499 "multimatch": {
1500 "version": "2.1.0",
1501 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
1502 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
1503 "dev": true,
1504 "requires": {
1505 "array-differ": "^1.0.0",
1506 "array-union": "^1.0.1",
1507 "arrify": "^1.0.0",
1508 "minimatch": "^3.0.0"
1509 }
1510 },
1511 "mute-stream": { 773 "mute-stream": {
1512 "version": "0.0.8", 774 "version": "0.0.8",
1513 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 775 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
1514 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", 776 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
1515 "dev": true 777 "dev": true
1516 }, 778 },
1517 "node.extend": {
1518 "version": "1.1.8",
1519 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.8.tgz",
1520 "integrity": "sha512-L/dvEBwyg3UowwqOUTyDsGBU6kjBQOpOhshio9V3i3BMPv5YUb9+mWNN8MK0IbWqT0AqaTSONZf0aTuMMahWgA==",
1521 "dev": true,
1522 "requires": {
1523 "has": "^1.0.3",
1524 "is": "^3.2.1"
1525 }
1526 },
1527 "normalize-path": {
1528 "version": "2.1.1",
1529 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1530 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1531 "dev": true,
1532 "requires": {
1533 "remove-trailing-separator": "^1.0.1"
1534 }
1535 },
1536 "now-and-later": {
1537 "version": "2.0.0",
1538 "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz",
1539 "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=",
1540 "dev": true,
1541 "requires": {
1542 "once": "^1.3.2"
1543 }
1544 },
1545 "nth-check": { 779 "nth-check": {
1546 "version": "1.0.2", 780 "version": "1.0.2",
1547 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", 781 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
@@ -1557,24 +791,6 @@
1557 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", 791 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1558 "dev": true 792 "dev": true
1559 }, 793 },
1560 "object-keys": {
1561 "version": "1.0.12",
1562 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
1563 "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
1564 "dev": true
1565 },
1566 "object.assign": {
1567 "version": "4.1.0",
1568 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1569 "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
1570 "dev": true,
1571 "requires": {
1572 "define-properties": "^1.1.2",
1573 "function-bind": "^1.1.1",
1574 "has-symbols": "^1.0.0",
1575 "object-keys": "^1.0.11"
1576 }
1577 },
1578 "once": { 794 "once": {
1579 "version": "1.4.0", 795 "version": "1.4.0",
1580 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 796 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -1584,41 +800,6 @@
1584 "wrappy": "1" 800 "wrappy": "1"
1585 } 801 }
1586 }, 802 },
1587 "ordered-read-streams": {
1588 "version": "1.0.1",
1589 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz",
1590 "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=",
1591 "dev": true,
1592 "requires": {
1593 "readable-stream": "^2.0.1"
1594 },
1595 "dependencies": {
1596 "readable-stream": {
1597 "version": "2.3.6",
1598 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1599 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1600 "dev": true,
1601 "requires": {
1602 "core-util-is": "~1.0.0",
1603 "inherits": "~2.0.3",
1604 "isarray": "~1.0.0",
1605 "process-nextick-args": "~2.0.0",
1606 "safe-buffer": "~5.1.1",
1607 "string_decoder": "~1.1.1",
1608 "util-deprecate": "~1.0.1"
1609 }
1610 },
1611 "string_decoder": {
1612 "version": "1.1.1",
1613 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1614 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1615 "dev": true,
1616 "requires": {
1617 "safe-buffer": "~5.1.0"
1618 }
1619 }
1620 }
1621 },
1622 "os-homedir": { 803 "os-homedir": {
1623 "version": "1.0.2", 804 "version": "1.0.2",
1624 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 805 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
@@ -1659,12 +840,6 @@
1659 "@types/node": "*" 840 "@types/node": "*"
1660 } 841 }
1661 }, 842 },
1662 "path-dirname": {
1663 "version": "1.0.2",
1664 "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
1665 "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
1666 "dev": true
1667 },
1668 "path-is-absolute": { 843 "path-is-absolute": {
1669 "version": "1.0.1", 844 "version": "1.0.1",
1670 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 845 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -1677,15 +852,6 @@
1677 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 852 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1678 "dev": true 853 "dev": true
1679 }, 854 },
1680 "pause-stream": {
1681 "version": "0.0.11",
1682 "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1683 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1684 "dev": true,
1685 "requires": {
1686 "through": "~2.3"
1687 }
1688 },
1689 "pend": { 855 "pend": {
1690 "version": "1.2.0", 856 "version": "1.2.0",
1691 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 857 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -1698,29 +864,10 @@
1698 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 864 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
1699 "dev": true 865 "dev": true
1700 }, 866 },
1701 "plugin-error": {
1702 "version": "0.1.2",
1703 "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
1704 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
1705 "dev": true,
1706 "requires": {
1707 "ansi-cyan": "^0.1.1",
1708 "ansi-red": "^0.1.1",
1709 "arr-diff": "^1.0.1",
1710 "arr-union": "^2.0.1",
1711 "extend-shallow": "^1.1.2"
1712 }
1713 },
1714 "prettier": { 867 "prettier": {
1715 "version": "1.16.4", 868 "version": "1.17.0",
1716 "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", 869 "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.0.tgz",
1717 "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", 870 "integrity": "sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw==",
1718 "dev": true
1719 },
1720 "process-nextick-args": {
1721 "version": "2.0.0",
1722 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1723 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
1724 "dev": true 871 "dev": true
1725 }, 872 },
1726 "psl": { 873 "psl": {
@@ -1729,27 +876,6 @@
1729 "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", 876 "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
1730 "dev": true 877 "dev": true
1731 }, 878 },
1732 "pump": {
1733 "version": "2.0.1",
1734 "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
1735 "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
1736 "dev": true,
1737 "requires": {
1738 "end-of-stream": "^1.1.0",
1739 "once": "^1.3.1"
1740 }
1741 },
1742 "pumpify": {
1743 "version": "1.5.1",
1744 "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
1745 "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
1746 "dev": true,
1747 "requires": {
1748 "duplexify": "^3.6.0",
1749 "inherits": "^2.0.3",
1750 "pump": "^2.0.0"
1751 }
1752 },
1753 "punycode": { 879 "punycode": {
1754 "version": "2.1.1", 880 "version": "2.1.1",
1755 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 881 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@@ -1769,20 +895,11 @@
1769 "dev": true 895 "dev": true
1770 }, 896 },
1771 "querystringify": { 897 "querystringify": {
1772 "version": "2.1.0", 898 "version": "2.1.1",
1773 "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", 899 "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
1774 "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", 900 "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
1775 "dev": true 901 "dev": true
1776 }, 902 },
1777 "queue": {
1778 "version": "4.5.1",
1779 "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.1.tgz",
1780 "integrity": "sha512-AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==",
1781 "dev": true,
1782 "requires": {
1783 "inherits": "~2.0.0"
1784 }
1785 },
1786 "read": { 903 "read": {
1787 "version": "1.0.7", 904 "version": "1.0.7",
1788 "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", 905 "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
@@ -1793,9 +910,9 @@
1793 } 910 }
1794 }, 911 },
1795 "readable-stream": { 912 "readable-stream": {
1796 "version": "3.1.1", 913 "version": "3.3.0",
1797 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", 914 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
1798 "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", 915 "integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
1799 "dev": true, 916 "dev": true,
1800 "requires": { 917 "requires": {
1801 "inherits": "^2.0.3", 918 "inherits": "^2.0.3",
@@ -1812,39 +929,6 @@
1812 "resolve": "^1.1.6" 929 "resolve": "^1.1.6"
1813 } 930 }
1814 }, 931 },
1815 "remove-bom-buffer": {
1816 "version": "3.0.0",
1817 "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
1818 "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==",
1819 "dev": true,
1820 "requires": {
1821 "is-buffer": "^1.1.5",
1822 "is-utf8": "^0.2.1"
1823 }
1824 },
1825 "remove-bom-stream": {
1826 "version": "1.2.0",
1827 "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz",
1828 "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=",
1829 "dev": true,
1830 "requires": {
1831 "remove-bom-buffer": "^3.0.0",
1832 "safe-buffer": "^5.1.0",
1833 "through2": "^2.0.3"
1834 }
1835 },
1836 "remove-trailing-separator": {
1837 "version": "1.1.0",
1838 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
1839 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
1840 "dev": true
1841 },
1842 "replace-ext": {
1843 "version": "1.0.0",
1844 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
1845 "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
1846 "dev": true
1847 },
1848 "request": { 932 "request": {
1849 "version": "2.88.0", 933 "version": "2.88.0",
1850 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 934 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
@@ -1888,24 +972,6 @@
1888 "path-parse": "^1.0.6" 972 "path-parse": "^1.0.6"
1889 } 973 }
1890 }, 974 },
1891 "resolve-options": {
1892 "version": "1.1.0",
1893 "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz",
1894 "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=",
1895 "dev": true,
1896 "requires": {
1897 "value-or-function": "^3.0.0"
1898 }
1899 },
1900 "rimraf": {
1901 "version": "2.6.3",
1902 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1903 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1904 "dev": true,
1905 "requires": {
1906 "glob": "^7.1.3"
1907 }
1908 },
1909 "safe-buffer": { 975 "safe-buffer": {
1910 "version": "5.1.2", 976 "version": "5.1.2",
1911 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 977 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -1919,9 +985,9 @@
1919 "dev": true 985 "dev": true
1920 }, 986 },
1921 "semver": { 987 "semver": {
1922 "version": "5.6.0", 988 "version": "5.7.0",
1923 "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", 989 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
1924 "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" 990 "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
1925 }, 991 },
1926 "shelljs": { 992 "shelljs": {
1927 "version": "0.8.3", 993 "version": "0.8.3",
@@ -1960,24 +1026,15 @@
1960 "dev": true 1026 "dev": true
1961 }, 1027 },
1962 "source-map-support": { 1028 "source-map-support": {
1963 "version": "0.5.10", 1029 "version": "0.5.12",
1964 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", 1030 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
1965 "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", 1031 "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
1966 "dev": true, 1032 "dev": true,
1967 "requires": { 1033 "requires": {
1968 "buffer-from": "^1.0.0", 1034 "buffer-from": "^1.0.0",
1969 "source-map": "^0.6.0" 1035 "source-map": "^0.6.0"
1970 } 1036 }
1971 }, 1037 },
1972 "split": {
1973 "version": "0.3.3",
1974 "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
1975 "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
1976 "dev": true,
1977 "requires": {
1978 "through": "2"
1979 }
1980 },
1981 "sprintf-js": { 1038 "sprintf-js": {
1982 "version": "1.0.3", 1039 "version": "1.0.3",
1983 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1040 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
@@ -2001,68 +1058,6 @@
2001 "tweetnacl": "~0.14.0" 1058 "tweetnacl": "~0.14.0"
2002 } 1059 }
2003 }, 1060 },
2004 "stat-mode": {
2005 "version": "0.2.2",
2006 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
2007 "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
2008 "dev": true
2009 },
2010 "stream-combiner": {
2011 "version": "0.0.4",
2012 "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
2013 "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
2014 "dev": true,
2015 "requires": {
2016 "duplexer": "~0.1.1"
2017 }
2018 },
2019 "stream-shift": {
2020 "version": "1.0.0",
2021 "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
2022 "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
2023 "dev": true
2024 },
2025 "streamfilter": {
2026 "version": "1.0.7",
2027 "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz",
2028 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==",
2029 "dev": true,
2030 "requires": {
2031 "readable-stream": "^2.0.2"
2032 },
2033 "dependencies": {
2034 "readable-stream": {
2035 "version": "2.3.6",
2036 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2037 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2038 "dev": true,
2039 "requires": {
2040 "core-util-is": "~1.0.0",
2041 "inherits": "~2.0.3",
2042 "isarray": "~1.0.0",
2043 "process-nextick-args": "~2.0.0",
2044 "safe-buffer": "~5.1.1",
2045 "string_decoder": "~1.1.1",
2046 "util-deprecate": "~1.0.1"
2047 }
2048 },
2049 "string_decoder": {
2050 "version": "1.1.1",
2051 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2052 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2053 "dev": true,
2054 "requires": {
2055 "safe-buffer": "~5.1.0"
2056 }
2057 }
2058 }
2059 },
2060 "streamifier": {
2061 "version": "0.1.1",
2062 "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz",
2063 "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=",
2064 "dev": true
2065 },
2066 "string_decoder": { 1061 "string_decoder": {
2067 "version": "1.2.0", 1062 "version": "1.2.0",
2068 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", 1063 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
@@ -2072,82 +1067,13 @@
2072 "safe-buffer": "~5.1.0" 1067 "safe-buffer": "~5.1.0"
2073 } 1068 }
2074 }, 1069 },
2075 "strip-ansi": {
2076 "version": "3.0.1",
2077 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2078 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2079 "dev": true,
2080 "requires": {
2081 "ansi-regex": "^2.0.0"
2082 }
2083 },
2084 "supports-color": { 1070 "supports-color": {
2085 "version": "2.0.0", 1071 "version": "5.5.0",
2086 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 1072 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2087 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", 1073 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2088 "dev": true
2089 },
2090 "tar": {
2091 "version": "2.2.1",
2092 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
2093 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2094 "dev": true,
2095 "requires": {
2096 "block-stream": "*",
2097 "fstream": "^1.0.2",
2098 "inherits": "2"
2099 }
2100 },
2101 "through": {
2102 "version": "2.3.8",
2103 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2104 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2105 "dev": true
2106 },
2107 "through2": {
2108 "version": "2.0.5",
2109 "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
2110 "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
2111 "dev": true,
2112 "requires": {
2113 "readable-stream": "~2.3.6",
2114 "xtend": "~4.0.1"
2115 },
2116 "dependencies": {
2117 "readable-stream": {
2118 "version": "2.3.6",
2119 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2120 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2121 "dev": true,
2122 "requires": {
2123 "core-util-is": "~1.0.0",
2124 "inherits": "~2.0.3",
2125 "isarray": "~1.0.0",
2126 "process-nextick-args": "~2.0.0",
2127 "safe-buffer": "~5.1.1",
2128 "string_decoder": "~1.1.1",
2129 "util-deprecate": "~1.0.1"
2130 }
2131 },
2132 "string_decoder": {
2133 "version": "1.1.1",
2134 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2135 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2136 "dev": true,
2137 "requires": {
2138 "safe-buffer": "~5.1.0"
2139 }
2140 }
2141 }
2142 },
2143 "through2-filter": {
2144 "version": "3.0.0",
2145 "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz",
2146 "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==",
2147 "dev": true, 1074 "dev": true,
2148 "requires": { 1075 "requires": {
2149 "through2": "~2.0.0", 1076 "has-flag": "^3.0.0"
2150 "xtend": "~4.0.0"
2151 } 1077 }
2152 }, 1078 },
2153 "tmp": { 1079 "tmp": {
@@ -2159,25 +1085,6 @@
2159 "os-tmpdir": "~1.0.1" 1085 "os-tmpdir": "~1.0.1"
2160 } 1086 }
2161 }, 1087 },
2162 "to-absolute-glob": {
2163 "version": "2.0.2",
2164 "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
2165 "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=",
2166 "dev": true,
2167 "requires": {
2168 "is-absolute": "^1.0.0",
2169 "is-negated-glob": "^1.0.0"
2170 }
2171 },
2172 "to-through": {
2173 "version": "2.0.0",
2174 "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz",
2175 "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=",
2176 "dev": true,
2177 "requires": {
2178 "through2": "^2.0.3"
2179 }
2180 },
2181 "tough-cookie": { 1088 "tough-cookie": {
2182 "version": "2.4.3", 1089 "version": "2.4.3",
2183 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 1090 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
@@ -2203,23 +1110,24 @@
2203 "dev": true 1110 "dev": true
2204 }, 1111 },
2205 "tslint": { 1112 "tslint": {
2206 "version": "5.12.1", 1113 "version": "5.16.0",
2207 "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.1.tgz", 1114 "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.16.0.tgz",
2208 "integrity": "sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==", 1115 "integrity": "sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==",
2209 "dev": true, 1116 "dev": true,
2210 "requires": { 1117 "requires": {
2211 "babel-code-frame": "^6.22.0", 1118 "@babel/code-frame": "^7.0.0",
2212 "builtin-modules": "^1.1.1", 1119 "builtin-modules": "^1.1.1",
2213 "chalk": "^2.3.0", 1120 "chalk": "^2.3.0",
2214 "commander": "^2.12.1", 1121 "commander": "^2.12.1",
2215 "diff": "^3.2.0", 1122 "diff": "^3.2.0",
2216 "glob": "^7.1.1", 1123 "glob": "^7.1.1",
2217 "js-yaml": "^3.7.0", 1124 "js-yaml": "^3.13.0",
2218 "minimatch": "^3.0.4", 1125 "minimatch": "^3.0.4",
1126 "mkdirp": "^0.5.1",
2219 "resolve": "^1.3.2", 1127 "resolve": "^1.3.2",
2220 "semver": "^5.3.0", 1128 "semver": "^5.3.0",
2221 "tslib": "^1.8.0", 1129 "tslib": "^1.8.0",
2222 "tsutils": "^2.27.2" 1130 "tsutils": "^2.29.0"
2223 } 1131 }
2224 }, 1132 },
2225 "tslint-config-prettier": { 1133 "tslint-config-prettier": {
@@ -2277,9 +1185,9 @@
2277 } 1185 }
2278 }, 1186 },
2279 "typescript": { 1187 "typescript": {
2280 "version": "3.3.3", 1188 "version": "3.4.4",
2281 "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.3.tgz", 1189 "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.4.tgz",
2282 "integrity": "sha512-Y21Xqe54TBVp+VDSNbuDYdGw0BpoR/Q6wo/+35M8PAU0vipahnyduJWirxxdxjsAkS7hue53x2zp8gz7F05u0A==", 1190 "integrity": "sha512-xt5RsIRCEaf6+j9AyOBgvVuAec0i92rgCaS3S+UVf5Z/vF2Hvtsw08wtUTJqp4djwznoAgjSxeCcU4r+CcDBJA==",
2283 "dev": true 1191 "dev": true
2284 }, 1192 },
2285 "uc.micro": { 1193 "uc.micro": {
@@ -2288,28 +1196,12 @@
2288 "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", 1196 "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
2289 "dev": true 1197 "dev": true
2290 }, 1198 },
2291 "unc-path-regex": {
2292 "version": "0.1.2",
2293 "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
2294 "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
2295 "dev": true
2296 },
2297 "underscore": { 1199 "underscore": {
2298 "version": "1.9.1", 1200 "version": "1.9.1",
2299 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", 1201 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
2300 "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", 1202 "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
2301 "dev": true 1203 "dev": true
2302 }, 1204 },
2303 "unique-stream": {
2304 "version": "2.3.1",
2305 "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz",
2306 "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==",
2307 "dev": true,
2308 "requires": {
2309 "json-stable-stringify-without-jsonify": "^1.0.1",
2310 "through2-filter": "^3.0.0"
2311 }
2312 },
2313 "uri-js": { 1205 "uri-js": {
2314 "version": "4.2.2", 1206 "version": "4.2.2",
2315 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 1207 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -2326,9 +1218,9 @@
2326 "dev": true 1218 "dev": true
2327 }, 1219 },
2328 "url-parse": { 1220 "url-parse": {
2329 "version": "1.4.4", 1221 "version": "1.4.6",
2330 "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", 1222 "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.6.tgz",
2331 "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", 1223 "integrity": "sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew==",
2332 "dev": true, 1224 "dev": true,
2333 "requires": { 1225 "requires": {
2334 "querystringify": "^2.0.0", 1226 "querystringify": "^2.0.0",
@@ -2347,12 +1239,6 @@
2347 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", 1239 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
2348 "dev": true 1240 "dev": true
2349 }, 1241 },
2350 "value-or-function": {
2351 "version": "3.0.0",
2352 "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz",
2353 "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=",
2354 "dev": true
2355 },
2356 "verror": { 1242 "verror": {
2357 "version": "1.10.0", 1243 "version": "1.10.0",
2358 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1244 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
@@ -2364,150 +1250,10 @@
2364 "extsprintf": "^1.2.0" 1250 "extsprintf": "^1.2.0"
2365 } 1251 }
2366 }, 1252 },
2367 "vinyl": {
2368 "version": "0.4.6",
2369 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
2370 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
2371 "dev": true,
2372 "requires": {
2373 "clone": "^0.2.0",
2374 "clone-stats": "^0.0.1"
2375 }
2376 },
2377 "vinyl-fs": {
2378 "version": "3.0.3",
2379 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz",
2380 "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==",
2381 "dev": true,
2382 "requires": {
2383 "fs-mkdirp-stream": "^1.0.0",
2384 "glob-stream": "^6.1.0",
2385 "graceful-fs": "^4.0.0",
2386 "is-valid-glob": "^1.0.0",
2387 "lazystream": "^1.0.0",
2388 "lead": "^1.0.0",
2389 "object.assign": "^4.0.4",
2390 "pumpify": "^1.3.5",
2391 "readable-stream": "^2.3.3",
2392 "remove-bom-buffer": "^3.0.0",
2393 "remove-bom-stream": "^1.2.0",
2394 "resolve-options": "^1.1.0",
2395 "through2": "^2.0.0",
2396 "to-through": "^2.0.0",
2397 "value-or-function": "^3.0.0",
2398 "vinyl": "^2.0.0",
2399 "vinyl-sourcemap": "^1.1.0"
2400 },
2401 "dependencies": {
2402 "clone": {
2403 "version": "2.1.2",
2404 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
2405 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
2406 "dev": true
2407 },
2408 "clone-stats": {
2409 "version": "1.0.0",
2410 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
2411 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
2412 "dev": true
2413 },
2414 "readable-stream": {
2415 "version": "2.3.6",
2416 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2417 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2418 "dev": true,
2419 "requires": {
2420 "core-util-is": "~1.0.0",
2421 "inherits": "~2.0.3",
2422 "isarray": "~1.0.0",
2423 "process-nextick-args": "~2.0.0",
2424 "safe-buffer": "~5.1.1",
2425 "string_decoder": "~1.1.1",
2426 "util-deprecate": "~1.0.1"
2427 }
2428 },
2429 "string_decoder": {
2430 "version": "1.1.1",
2431 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2432 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2433 "dev": true,
2434 "requires": {
2435 "safe-buffer": "~5.1.0"
2436 }
2437 },
2438 "vinyl": {
2439 "version": "2.2.0",
2440 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
2441 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
2442 "dev": true,
2443 "requires": {
2444 "clone": "^2.1.1",
2445 "clone-buffer": "^1.0.0",
2446 "clone-stats": "^1.0.0",
2447 "cloneable-readable": "^1.0.0",
2448 "remove-trailing-separator": "^1.0.1",
2449 "replace-ext": "^1.0.0"
2450 }
2451 }
2452 }
2453 },
2454 "vinyl-source-stream": {
2455 "version": "1.1.2",
2456 "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz",
2457 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=",
2458 "dev": true,
2459 "requires": {
2460 "through2": "^2.0.3",
2461 "vinyl": "^0.4.3"
2462 }
2463 },
2464 "vinyl-sourcemap": {
2465 "version": "1.1.0",
2466 "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz",
2467 "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=",
2468 "dev": true,
2469 "requires": {
2470 "append-buffer": "^1.0.2",
2471 "convert-source-map": "^1.5.0",
2472 "graceful-fs": "^4.1.6",
2473 "normalize-path": "^2.1.1",
2474 "now-and-later": "^2.0.0",
2475 "remove-bom-buffer": "^3.0.0",
2476 "vinyl": "^2.0.0"
2477 },
2478 "dependencies": {
2479 "clone": {
2480 "version": "2.1.2",
2481 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
2482 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
2483 "dev": true
2484 },
2485 "clone-stats": {
2486 "version": "1.0.0",
2487 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
2488 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
2489 "dev": true
2490 },
2491 "vinyl": {
2492 "version": "2.2.0",
2493 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
2494 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
2495 "dev": true,
2496 "requires": {
2497 "clone": "^2.1.1",
2498 "clone-buffer": "^1.0.0",
2499 "clone-stats": "^1.0.0",
2500 "cloneable-readable": "^1.0.0",
2501 "remove-trailing-separator": "^1.0.1",
2502 "replace-ext": "^1.0.0"
2503 }
2504 }
2505 }
2506 },
2507 "vsce": { 1253 "vsce": {
2508 "version": "1.57.0", 1254 "version": "1.59.0",
2509 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.57.0.tgz", 1255 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.59.0.tgz",
2510 "integrity": "sha512-ULiWDQBt0XZAA5PI7XL0TxeKZ6cXk3e3ZH/lL9xk93WeckqWzR79D3xNsf0GRacOGYU+UmbhXWRtP8C6wnDNmg==", 1256 "integrity": "sha512-tkB97885k5ce25Brbe9AZTCAXAkBh7oa5EOzY0BCJQ51W/mfRaQuCluCd9gZpWdgiU4AbPvwxtoVKKsenlSt8w==",
2511 "dev": true, 1257 "dev": true,
2512 "requires": { 1258 "requires": {
2513 "chalk": "^2.4.2", 1259 "chalk": "^2.4.2",
@@ -2531,54 +1277,57 @@
2531 } 1277 }
2532 }, 1278 },
2533 "vscode": { 1279 "vscode": {
2534 "version": "1.1.29", 1280 "version": "1.1.33",
2535 "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.29.tgz", 1281 "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.33.tgz",
2536 "integrity": "sha512-E6hzqGtCD65BnBxdZzSIi8FPCM4seEEK/bbTeYdJntg+4D5R6GLbdYFySE9DNTtMJF4iB9UGoucKU/p8Guts1g==", 1282 "integrity": "sha512-sXedp2oF6y4ZvqrrFiZpeMzaCLSWV+PpYkIxjG/iYquNZ9KrLL2LujltGxPLvzn49xu2sZkyC+avVNFgcJD1Iw==",
2537 "dev": true, 1283 "dev": true,
2538 "requires": { 1284 "requires": {
2539 "glob": "^7.1.2", 1285 "glob": "^7.1.2",
2540 "gulp-chmod": "^2.0.0",
2541 "gulp-filter": "^5.0.1",
2542 "gulp-gunzip": "1.0.0",
2543 "gulp-remote-src-vscode": "^0.5.1",
2544 "gulp-untar": "^0.0.7",
2545 "gulp-vinyl-zip": "^2.1.2",
2546 "mocha": "^4.0.1", 1286 "mocha": "^4.0.1",
2547 "request": "^2.88.0", 1287 "request": "^2.88.0",
2548 "semver": "^5.4.1", 1288 "semver": "^5.4.1",
2549 "source-map-support": "^0.5.0", 1289 "source-map-support": "^0.5.0",
2550 "url-parse": "^1.4.3", 1290 "url-parse": "^1.4.4",
2551 "vinyl-fs": "^3.0.3", 1291 "vscode-test": "^0.1.4"
2552 "vinyl-source-stream": "^1.1.0"
2553 } 1292 }
2554 }, 1293 },
2555 "vscode-jsonrpc": { 1294 "vscode-jsonrpc": {
2556 "version": "4.0.0", 1295 "version": "4.1.0-next.1",
2557 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz", 1296 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-4.1.0-next.1.tgz",
2558 "integrity": "sha512-perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg==" 1297 "integrity": "sha512-FzNkvHmg3GXpzZAlnGnpdRbQQX6LDRb0bvc+oxxjMUwIJ66kTO/DyeE2bwU0fsiOEGfsJTCzvjESVl368jZ0/g=="
2559 }, 1298 },
2560 "vscode-languageclient": { 1299 "vscode-languageclient": {
2561 "version": "5.3.0-next.1", 1300 "version": "5.3.0-next.4",
2562 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-5.3.0-next.1.tgz", 1301 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-5.3.0-next.4.tgz",
2563 "integrity": "sha512-q5o6vHHDi+HjFOFUNC288Dee5jyAO4mEufoOaF2wKCjVP1qoJGbnBalTNGuakJThrdn0RDa0XdHZgXKFyZomCQ==", 1302 "integrity": "sha512-RODuzXErVpJRSgHv+Xei8fwQtZ/iZOWPCqlLl07NTtkzgTAepJf9r4EioZVuTviGJ5DEJ9xs0bjrit8shKtW6Q==",
2564 "requires": { 1303 "requires": {
2565 "semver": "^5.5.0", 1304 "semver": "^5.5.0",
2566 "vscode-languageserver-protocol": "3.15.0-next.1" 1305 "vscode-languageserver-protocol": "3.15.0-next.4"
2567 } 1306 }
2568 }, 1307 },
2569 "vscode-languageserver-protocol": { 1308 "vscode-languageserver-protocol": {
2570 "version": "3.15.0-next.1", 1309 "version": "3.15.0-next.4",
2571 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.0-next.1.tgz", 1310 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.0-next.4.tgz",
2572 "integrity": "sha512-LXF0d9s3vxFBxVQ4aKl/XghdEMAncGt3dh4urIYa9Is43g3MfIQL9fC44YZtP+XXOrI2rpZU8lRNN01U1V6CDg==", 1311 "integrity": "sha512-4AgisQ8GWa3irdRu3/UNr3brcSSm0oobmoV1eSOnV7JM32lYyXDnSKB7RuTTXvaAjD/0xQJLEGhkyGHS5gbywA==",
2573 "requires": { 1312 "requires": {
2574 "vscode-jsonrpc": "^4.0.0", 1313 "vscode-jsonrpc": "^4.1.0-next.1",
2575 "vscode-languageserver-types": "3.14.0" 1314 "vscode-languageserver-types": "3.15.0-next.1"
2576 } 1315 }
2577 }, 1316 },
2578 "vscode-languageserver-types": { 1317 "vscode-languageserver-types": {
2579 "version": "3.14.0", 1318 "version": "3.15.0-next.1",
2580 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz", 1319 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.1.tgz",
2581 "integrity": "sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==" 1320 "integrity": "sha512-R0kzmaI8gOGEoU7b9huYQAzgZzRQ/5Q8HKjsIUdfz0MjXcBZ4tr1ik1So1p1O5kGrI1VTCd22Fw/wI7ECGoIPw=="
1321 },
1322 "vscode-test": {
1323 "version": "0.1.5",
1324 "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.1.5.tgz",
1325 "integrity": "sha512-s+lbF1Dtasc0yXVB9iQTexBe2JK6HJAUJe3fWezHKIjq+xRw5ZwCMEMBaonFIPy7s95qg2HPTRDR5W4h4kbxGw==",
1326 "dev": true,
1327 "requires": {
1328 "http-proxy-agent": "^2.1.0",
1329 "https-proxy-agent": "^2.2.1"
1330 }
2582 }, 1331 },
2583 "vso-node-api": { 1332 "vso-node-api": {
2584 "version": "6.1.2-preview", 1333 "version": "6.1.2-preview",
@@ -2598,12 +1347,6 @@
2598 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 1347 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2599 "dev": true 1348 "dev": true
2600 }, 1349 },
2601 "xtend": {
2602 "version": "4.0.1",
2603 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
2604 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
2605 "dev": true
2606 },
2607 "yauzl": { 1350 "yauzl": {
2608 "version": "2.10.0", 1351 "version": "2.10.0",
2609 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 1352 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
diff --git a/editors/code/package.json b/editors/code/package.json
index a0454191a..015b912b3 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -13,7 +13,7 @@
13 "Other" 13 "Other"
14 ], 14 ],
15 "engines": { 15 "engines": {
16 "vscode": "^1.31.0" 16 "vscode": "^1.33.0"
17 }, 17 },
18 "scripts": { 18 "scripts": {
19 "vscode:prepublish": "npm run compile", 19 "vscode:prepublish": "npm run compile",
@@ -31,18 +31,18 @@
31 "singleQuote": true 31 "singleQuote": true
32 }, 32 },
33 "dependencies": { 33 "dependencies": {
34 "vscode-languageclient": "^5.3.0-next.1" 34 "vscode-languageclient": "^5.3.0-next.4"
35 }, 35 },
36 "devDependencies": { 36 "devDependencies": {
37 "@types/mocha": "^5.2.5", 37 "@types/mocha": "^5.2.6",
38 "@types/node": "^10.12.24", 38 "@types/node": "^10.14.5",
39 "prettier": "^1.16.4", 39 "prettier": "^1.17.0",
40 "tslint": "^5.12.1", 40 "shx": "^0.3.1",
41 "tslint": "^5.16.0",
41 "tslint-config-prettier": "^1.18.0", 42 "tslint-config-prettier": "^1.18.0",
42 "typescript": "^3.3.1", 43 "typescript": "^3.4.4",
43 "vsce": "^1.57.0", 44 "vsce": "^1.59.0",
44 "vscode": "^1.1.29", 45 "vscode": "^1.1.33"
45 "shx": "^0.3.1"
46 }, 46 },
47 "activationEvents": [ 47 "activationEvents": [
48 "onLanguage:rust", 48 "onLanguage:rust",
@@ -81,11 +81,6 @@
81 "category": "Rust Analyzer" 81 "category": "Rust Analyzer"
82 }, 82 },
83 { 83 {
84 "command": "rust-analyzer.extendSelection",
85 "title": "Extend selection",
86 "category": "Rust Analyzer"
87 },
88 {
89 "command": "rust-analyzer.matchingBrace", 84 "command": "rust-analyzer.matchingBrace",
90 "title": "Find matching brace", 85 "title": "Find matching brace",
91 "category": "Rust Analyzer" 86 "category": "Rust Analyzer"
@@ -119,6 +114,16 @@
119 "command": "rust-analyzer.reload", 114 "command": "rust-analyzer.reload",
120 "title": "Restart server", 115 "title": "Restart server",
121 "category": "Rust Analyzer" 116 "category": "Rust Analyzer"
117 },
118 {
119 "command": "rust-analyzer.startCargoWatch",
120 "title": "Start Cargo Watch",
121 "category": "Rust Analyzer"
122 },
123 {
124 "command": "rust-analyzer.stopCargoWatch",
125 "title": "Stop Cargo Watch",
126 "category": "Rust Analyzer"
122 } 127 }
123 ], 128 ],
124 "keybindings": [ 129 "keybindings": [
@@ -250,6 +255,18 @@
250 "${workspaceRoot}" 255 "${workspaceRoot}"
251 ], 256 ],
252 "pattern": "$rustc" 257 "pattern": "$rustc"
258 },
259 {
260 "name": "rustc-watch",
261 "fileLocation": [
262 "relative",
263 "${workspaceRoot}"
264 ],
265 "background": {
266 "beginsPattern": "^\\[Running\\b",
267 "endsPattern": "^\\[Finished running\\b"
268 },
269 "pattern": "$rustc"
253 } 270 }
254 ] 271 ]
255 } 272 }
diff --git a/editors/code/src/commands/cargo_watch.ts b/editors/code/src/commands/cargo_watch.ts
index 32bd38a1c..1d939e28c 100644
--- a/editors/code/src/commands/cargo_watch.ts
+++ b/editors/code/src/commands/cargo_watch.ts
@@ -7,44 +7,55 @@ import { terminate } from '../utils/processes';
7import { LineBuffer } from './line_buffer'; 7import { LineBuffer } from './line_buffer';
8import { StatusDisplay } from './watch_status'; 8import { StatusDisplay } from './watch_status';
9 9
10export class CargoWatchProvider { 10export function registerCargoWatchProvider(
11 private diagnosticCollection?: vscode.DiagnosticCollection; 11 subscriptions: vscode.Disposable[]
12 private cargoProcess?: child_process.ChildProcess; 12): CargoWatchProvider | undefined {
13 private outBuffer: string = ''; 13 let cargoExists = false;
14 private statusDisplay?: StatusDisplay; 14 const cargoTomlFile = path.join(vscode.workspace.rootPath!, 'Cargo.toml');
15 private outputChannel?: vscode.OutputChannel; 15 // Check if the working directory is valid cargo root path
16 16 try {
17 public activate(subscriptions: vscode.Disposable[]) { 17 if (fs.existsSync(cargoTomlFile)) {
18 let cargoExists = false; 18 cargoExists = true;
19 const cargoTomlFile = path.join( 19 }
20 vscode.workspace.rootPath!, 20 } catch (err) {
21 'Cargo.toml' 21 cargoExists = false;
22 }
23
24 if (!cargoExists) {
25 vscode.window.showErrorMessage(
26 `Couldn\'t find \'Cargo.toml\' in ${cargoTomlFile}`
22 ); 27 );
23 // Check if the working directory is valid cargo root path 28 return;
24 try { 29 }
25 if (fs.existsSync(cargoTomlFile)) {
26 cargoExists = true;
27 }
28 } catch (err) {
29 cargoExists = false;
30 }
31 30
32 if (!cargoExists) { 31 const provider = new CargoWatchProvider();
33 vscode.window.showErrorMessage( 32 subscriptions.push(provider);
34 `Couldn\'t find \'Cargo.toml\' in ${cargoTomlFile}` 33 return provider;
35 ); 34}
36 return;
37 }
38 35
39 subscriptions.push(this); 36export class CargoWatchProvider implements vscode.Disposable {
37 private readonly diagnosticCollection: vscode.DiagnosticCollection;
38 private readonly statusDisplay: StatusDisplay;
39 private readonly outputChannel: vscode.OutputChannel;
40 private cargoProcess?: child_process.ChildProcess;
41
42 constructor() {
40 this.diagnosticCollection = vscode.languages.createDiagnosticCollection( 43 this.diagnosticCollection = vscode.languages.createDiagnosticCollection(
41 'rustc' 44 'rustc'
42 ); 45 );
43 46 this.statusDisplay = new StatusDisplay();
44 this.statusDisplay = new StatusDisplay(subscriptions);
45 this.outputChannel = vscode.window.createOutputChannel( 47 this.outputChannel = vscode.window.createOutputChannel(
46 'Cargo Watch Trace' 48 'Cargo Watch Trace'
47 ); 49 );
50 }
51
52 public start() {
53 if (this.cargoProcess) {
54 vscode.window.showInformationMessage(
55 'Cargo Watch is already running'
56 );
57 return;
58 }
48 59
49 let args = 'check --message-format json'; 60 let args = 'check --message-format json';
50 if (Server.config.cargoWatchOptions.checkArguments.length > 0) { 61 if (Server.config.cargoWatchOptions.checkArguments.length > 0) {
@@ -95,25 +106,28 @@ export class CargoWatchProvider {
95 this.logInfo('cargo-watch started.'); 106 this.logInfo('cargo-watch started.');
96 } 107 }
97 108
98 public dispose(): void { 109 public stop() {
99 if (this.diagnosticCollection) {
100 this.diagnosticCollection.clear();
101 this.diagnosticCollection.dispose();
102 }
103
104 if (this.cargoProcess) { 110 if (this.cargoProcess) {
105 this.cargoProcess.kill(); 111 this.cargoProcess.kill();
106 terminate(this.cargoProcess); 112 terminate(this.cargoProcess);
113 this.cargoProcess = undefined;
114 } else {
115 vscode.window.showInformationMessage('Cargo Watch is not running');
107 } 116 }
117 }
108 118
109 if (this.outputChannel) { 119 public dispose(): void {
110 this.outputChannel.dispose(); 120 this.stop();
111 } 121
122 this.diagnosticCollection.clear();
123 this.diagnosticCollection.dispose();
124 this.outputChannel.dispose();
125 this.statusDisplay.dispose();
112 } 126 }
113 127
114 private logInfo(line: string) { 128 private logInfo(line: string) {
115 if (Server.config.cargoWatchOptions.trace === 'verbose') { 129 if (Server.config.cargoWatchOptions.trace === 'verbose') {
116 this.outputChannel!.append(line); 130 this.outputChannel.append(line);
117 } 131 }
118 } 132 }
119 133
@@ -122,18 +136,18 @@ export class CargoWatchProvider {
122 Server.config.cargoWatchOptions.trace === 'error' || 136 Server.config.cargoWatchOptions.trace === 'error' ||
123 Server.config.cargoWatchOptions.trace === 'verbose' 137 Server.config.cargoWatchOptions.trace === 'verbose'
124 ) { 138 ) {
125 this.outputChannel!.append(line); 139 this.outputChannel.append(line);
126 } 140 }
127 } 141 }
128 142
129 private parseLine(line: string) { 143 private parseLine(line: string) {
130 if (line.startsWith('[Running')) { 144 if (line.startsWith('[Running')) {
131 this.diagnosticCollection!.clear(); 145 this.diagnosticCollection.clear();
132 this.statusDisplay!.show(); 146 this.statusDisplay.show();
133 } 147 }
134 148
135 if (line.startsWith('[Finished running')) { 149 if (line.startsWith('[Finished running')) {
136 this.statusDisplay!.hide(); 150 this.statusDisplay.hide();
137 } 151 }
138 152
139 function getLevel(s: string): vscode.DiagnosticSeverity { 153 function getLevel(s: string): vscode.DiagnosticSeverity {
@@ -193,7 +207,7 @@ export class CargoWatchProvider {
193 207
194 // The format of the package_id is "{name} {version} ({source_id})", 208 // The format of the package_id is "{name} {version} ({source_id})",
195 // https://github.com/rust-lang/cargo/blob/37ad03f86e895bb80b474c1c088322634f4725f5/src/cargo/core/package_id.rs#L53 209 // https://github.com/rust-lang/cargo/blob/37ad03f86e895bb80b474c1c088322634f4725f5/src/cargo/core/package_id.rs#L53
196 this.statusDisplay!.packageName = msg.package_id.split(' ')[0]; 210 this.statusDisplay.packageName = msg.package_id.split(' ')[0];
197 } else if (data.reason === 'compiler-message') { 211 } else if (data.reason === 'compiler-message') {
198 const msg = data.message as RustDiagnostic; 212 const msg = data.message as RustDiagnostic;
199 213
diff --git a/editors/code/src/commands/extend_selection.ts b/editors/code/src/commands/extend_selection.ts
deleted file mode 100644
index 6f4187d15..000000000
--- a/editors/code/src/commands/extend_selection.ts
+++ /dev/null
@@ -1,34 +0,0 @@
1import * as vscode from 'vscode';
2
3import { Range, TextDocumentIdentifier } from 'vscode-languageclient';
4import { Server } from '../server';
5
6interface ExtendSelectionParams {
7 textDocument: TextDocumentIdentifier;
8 selections: Range[];
9}
10
11interface ExtendSelectionResult {
12 selections: Range[];
13}
14
15export async function handle() {
16 const editor = vscode.window.activeTextEditor;
17 if (editor == null || editor.document.languageId !== 'rust') {
18 return;
19 }
20 const request: ExtendSelectionParams = {
21 selections: editor.selections.map(s =>
22 Server.client.code2ProtocolConverter.asRange(s)
23 ),
24 textDocument: { uri: editor.document.uri.toString() }
25 };
26 const response = await Server.client.sendRequest<ExtendSelectionResult>(
27 'rust-analyzer/extendSelection',
28 request
29 );
30 editor.selections = response.selections.map((range: Range) => {
31 const r = Server.client.protocol2CodeConverter.asRange(range);
32 return new vscode.Selection(r.start, r.end);
33 });
34}
diff --git a/editors/code/src/commands/index.ts b/editors/code/src/commands/index.ts
index f36c4b040..194658497 100644
--- a/editors/code/src/commands/index.ts
+++ b/editors/code/src/commands/index.ts
@@ -1,6 +1,5 @@
1import * as analyzerStatus from './analyzer_status'; 1import * as analyzerStatus from './analyzer_status';
2import * as applySourceChange from './apply_source_change'; 2import * as applySourceChange from './apply_source_change';
3import * as extendSelection from './extend_selection';
4import * as joinLines from './join_lines'; 3import * as joinLines from './join_lines';
5import * as matchingBrace from './matching_brace'; 4import * as matchingBrace from './matching_brace';
6import * as onEnter from './on_enter'; 5import * as onEnter from './on_enter';
@@ -11,7 +10,6 @@ import * as syntaxTree from './syntaxTree';
11export { 10export {
12 analyzerStatus, 11 analyzerStatus,
13 applySourceChange, 12 applySourceChange,
14 extendSelection,
15 joinLines, 13 joinLines,
16 matchingBrace, 14 matchingBrace,
17 parentModule, 15 parentModule,
diff --git a/editors/code/src/commands/runnables.ts b/editors/code/src/commands/runnables.ts
index c4df24c79..26372c1e8 100644
--- a/editors/code/src/commands/runnables.ts
+++ b/editors/code/src/commands/runnables.ts
@@ -5,7 +5,7 @@ import * as vscode from 'vscode';
5import * as lc from 'vscode-languageclient'; 5import * as lc from 'vscode-languageclient';
6 6
7import { Server } from '../server'; 7import { Server } from '../server';
8import { CargoWatchProvider } from './cargo_watch'; 8import { CargoWatchProvider, registerCargoWatchProvider } from './cargo_watch';
9 9
10interface RunnablesParams { 10interface RunnablesParams {
11 textDocument: lc.TextDocumentIdentifier; 11 textDocument: lc.TextDocumentIdentifier;
@@ -137,7 +137,7 @@ export async function handleSingle(runnable: Runnable) {
137 */ 137 */
138export async function interactivelyStartCargoWatch( 138export async function interactivelyStartCargoWatch(
139 context: vscode.ExtensionContext 139 context: vscode.ExtensionContext
140) { 140): Promise<CargoWatchProvider | undefined> {
141 if (Server.config.cargoWatchOptions.enableOnStartup === 'disabled') { 141 if (Server.config.cargoWatchOptions.enableOnStartup === 'disabled') {
142 return; 142 return;
143 } 143 }
@@ -153,6 +153,12 @@ export async function interactivelyStartCargoWatch(
153 } 153 }
154 } 154 }
155 155
156 return startCargoWatch(context);
157}
158
159export async function startCargoWatch(
160 context: vscode.ExtensionContext
161): Promise<CargoWatchProvider | undefined> {
156 const execPromise = util.promisify(child_process.exec); 162 const execPromise = util.promisify(child_process.exec);
157 163
158 const { stderr } = await execPromise('cargo watch --version').catch(e => e); 164 const { stderr } = await execPromise('cargo watch --version').catch(e => e);
@@ -197,6 +203,9 @@ export async function interactivelyStartCargoWatch(
197 } 203 }
198 } 204 }
199 205
200 const validater = new CargoWatchProvider(); 206 const provider = await registerCargoWatchProvider(context.subscriptions);
201 validater.activate(context.subscriptions); 207 if (provider) {
208 provider.start();
209 }
210 return provider;
202} 211}
diff --git a/editors/code/src/commands/watch_status.ts b/editors/code/src/commands/watch_status.ts
index 86ae821de..a3b0178f2 100644
--- a/editors/code/src/commands/watch_status.ts
+++ b/editors/code/src/commands/watch_status.ts
@@ -2,19 +2,18 @@ import * as vscode from 'vscode';
2 2
3const spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']; 3const spinnerFrames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
4 4
5export class StatusDisplay { 5export class StatusDisplay implements vscode.Disposable {
6 public packageName?: string; 6 public packageName?: string;
7 7
8 private i = 0; 8 private i = 0;
9 private statusBarItem: vscode.StatusBarItem; 9 private statusBarItem: vscode.StatusBarItem;
10 private timer?: NodeJS.Timeout; 10 private timer?: NodeJS.Timeout;
11 11
12 constructor(subscriptions: vscode.Disposable[]) { 12 constructor() {
13 this.statusBarItem = vscode.window.createStatusBarItem( 13 this.statusBarItem = vscode.window.createStatusBarItem(
14 vscode.StatusBarAlignment.Left, 14 vscode.StatusBarAlignment.Left,
15 10 15 10
16 ); 16 );
17 subscriptions.push(this.statusBarItem);
18 this.statusBarItem.hide(); 17 this.statusBarItem.hide();
19 } 18 }
20 19
@@ -33,7 +32,7 @@ export class StatusDisplay {
33 } 32 }
34 }, 300); 33 }, 300);
35 34
36 this.statusBarItem!.show(); 35 this.statusBarItem.show();
37 } 36 }
38 37
39 public hide() { 38 public hide() {
@@ -42,7 +41,16 @@ export class StatusDisplay {
42 this.timer = undefined; 41 this.timer = undefined;
43 } 42 }
44 43
45 this.statusBarItem!.hide(); 44 this.statusBarItem.hide();
45 }
46
47 public dispose() {
48 if (this.timer) {
49 clearInterval(this.timer);
50 this.timer = undefined;
51 }
52
53 this.statusBarItem.dispose();
46 } 54 }
47 55
48 private frame() { 56 private frame() {
diff --git a/editors/code/src/extension.ts b/editors/code/src/extension.ts
index 1073a36a0..c8c3004a7 100644
--- a/editors/code/src/extension.ts
+++ b/editors/code/src/extension.ts
@@ -2,7 +2,11 @@ import * as vscode from 'vscode';
2import * as lc from 'vscode-languageclient'; 2import * as lc from 'vscode-languageclient';
3 3
4import * as commands from './commands'; 4import * as commands from './commands';
5import { interactivelyStartCargoWatch } from './commands/runnables'; 5import { CargoWatchProvider } from './commands/cargo_watch';
6import {
7 interactivelyStartCargoWatch,
8 startCargoWatch
9} from './commands/runnables';
6import { SyntaxTreeContentProvider } from './commands/syntaxTree'; 10import { SyntaxTreeContentProvider } from './commands/syntaxTree';
7import * as events from './events'; 11import * as events from './events';
8import * as notifications from './notifications'; 12import * as notifications from './notifications';
@@ -54,10 +58,6 @@ export function activate(context: vscode.ExtensionContext) {
54 Server.client.sendRequest<null>('rust-analyzer/collectGarbage', null) 58 Server.client.sendRequest<null>('rust-analyzer/collectGarbage', null)
55 ); 59 );
56 registerCommand( 60 registerCommand(
57 'rust-analyzer.extendSelection',
58 commands.extendSelection.handle
59 );
60 registerCommand(
61 'rust-analyzer.matchingBrace', 61 'rust-analyzer.matchingBrace',
62 commands.matchingBrace.handle 62 commands.matchingBrace.handle
63 ); 63 );
@@ -126,7 +126,24 @@ export function activate(context: vscode.ExtensionContext) {
126 vscode.commands.registerCommand('rust-analyzer.reload', reloadCommand); 126 vscode.commands.registerCommand('rust-analyzer.reload', reloadCommand);
127 127
128 // Executing `cargo watch` provides us with inline diagnostics on save 128 // Executing `cargo watch` provides us with inline diagnostics on save
129 interactivelyStartCargoWatch(context); 129 let provider: CargoWatchProvider | undefined;
130 interactivelyStartCargoWatch(context).then(p => {
131 provider = p;
132 });
133 registerCommand('rust-analyzer.startCargoWatch', () => {
134 if (provider) {
135 provider.start();
136 } else {
137 startCargoWatch(context).then(p => {
138 provider = p;
139 });
140 }
141 });
142 registerCommand('rust-analyzer.stopCargoWatch', () => {
143 if (provider) {
144 provider.stop();
145 }
146 });
130 147
131 // Start the language server, finally! 148 // Start the language server, finally!
132 startServer(); 149 startServer();
diff --git a/editors/code/src/server.ts b/editors/code/src/server.ts
index 5e9a19340..81c2b3fff 100644
--- a/editors/code/src/server.ts
+++ b/editors/code/src/server.ts
@@ -74,6 +74,7 @@ export class Server {
74 } 74 }
75 } 75 }
76 }; 76 };
77 Server.client.registerProposedFeatures();
77 Server.client.onReady().then(() => { 78 Server.client.onReady().then(() => {
78 for (const [type, handler] of notificationHandlers) { 79 for (const [type, handler] of notificationHandlers) {
79 Server.client.onNotification(type, handler); 80 Server.client.onNotification(type, handler);