aboutsummaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2018-10-09 07:16:36 +0100
committerbors[bot] <bors[bot]@users.noreply.github.com>2018-10-09 07:16:36 +0100
commitc9798c0e6da53c132021f03ac7a50ccd8714b371 (patch)
tree0d6d49b2eb40ad161a72adbfbf9874b64540bf74 /editors
parentf4ad36e972989c3feed8671d6d6fca0aed37cd8f (diff)
parente26071d96e1ff56289213dbe78415f836de8a70e (diff)
Merge #104
104: Add vscode extension to CI r=aochagavia a=DJMcNab Note that this testing is only done on travis - we are only running formatting and linting, so feature parity on appveyor is not required. CC @aochagavia. Fixes? #100 Co-authored-by: Daniel McNab <[email protected]>
Diffstat (limited to 'editors')
-rw-r--r--editors/code/.vscode/launch.json14
-rw-r--r--editors/code/.vscode/settings.json2
-rw-r--r--editors/code/.vscode/tasks.json2
-rw-r--r--editors/code/package-lock.json950
-rw-r--r--editors/code/package.json20
-rw-r--r--editors/code/src/commands/apply_source_change.ts24
-rw-r--r--editors/code/src/commands/extend_selection.ts13
-rw-r--r--editors/code/src/commands/index.ts2
-rw-r--r--editors/code/src/commands/join_lines.ts16
-rw-r--r--editors/code/src/commands/matching_brace.ts17
-rw-r--r--editors/code/src/commands/parent_module.ts15
-rw-r--r--editors/code/src/commands/runnables.ts33
-rw-r--r--editors/code/src/commands/syntaxTree.ts24
-rw-r--r--editors/code/src/config.ts4
-rw-r--r--editors/code/src/events/change_active_text_editor.ts15
-rw-r--r--editors/code/src/events/change_text_document.ts13
-rw-r--r--editors/code/src/events/index.ts5
-rw-r--r--editors/code/src/extension.ts28
-rw-r--r--editors/code/src/highlighting.ts45
-rw-r--r--editors/code/src/notifications/index.ts4
-rw-r--r--editors/code/src/notifications/publish_decorations.ts11
-rw-r--r--editors/code/src/server.ts12
-rw-r--r--editors/code/tsconfig.json9
-rw-r--r--editors/code/tslint.json8
24 files changed, 796 insertions, 490 deletions
diff --git a/editors/code/.vscode/launch.json b/editors/code/.vscode/launch.json
index c174db304..b9d14dddd 100644
--- a/editors/code/.vscode/launch.json
+++ b/editors/code/.vscode/launch.json
@@ -3,19 +3,15 @@
3// Hover to view descriptions of existing attributes. 3// Hover to view descriptions of existing attributes.
4// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 4// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5{ 5{
6 "version": "0.2.0", 6 "version": "0.2.0",
7 "configurations": [ 7 "configurations": [
8 { 8 {
9 "name": "Extension", 9 "name": "Extension",
10 "type": "extensionHost", 10 "type": "extensionHost",
11 "request": "launch", 11 "request": "launch",
12 "runtimeExecutable": "${execPath}", 12 "runtimeExecutable": "${execPath}",
13 "args": [ 13 "args": ["--extensionDevelopmentPath=${workspaceFolder}"],
14 "--extensionDevelopmentPath=${workspaceFolder}" 14 "outFiles": ["${workspaceFolder}/out/**/*.js"],
15 ],
16 "outFiles": [
17 "${workspaceFolder}/out/**/*.js"
18 ],
19 "preLaunchTask": "npm: watch" 15 "preLaunchTask": "npm: watch"
20 }, 16 },
21 { 17 {
@@ -27,9 +23,7 @@
27 "--extensionDevelopmentPath=${workspaceFolder}", 23 "--extensionDevelopmentPath=${workspaceFolder}",
28 "--extensionTestsPath=${workspaceFolder}/out/test" 24 "--extensionTestsPath=${workspaceFolder}/out/test"
29 ], 25 ],
30 "outFiles": [ 26 "outFiles": ["${workspaceFolder}/out/test/**/*.js"],
31 "${workspaceFolder}/out/test/**/*.js"
32 ],
33 "preLaunchTask": "npm: watch" 27 "preLaunchTask": "npm: watch"
34 } 28 }
35 ] 29 ]
diff --git a/editors/code/.vscode/settings.json b/editors/code/.vscode/settings.json
index 30bf8c2d3..fa0a10487 100644
--- a/editors/code/.vscode/settings.json
+++ b/editors/code/.vscode/settings.json
@@ -8,4 +8,4 @@
8 }, 8 },
9 // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 9 // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 "typescript.tsc.autoDetect": "off" 10 "typescript.tsc.autoDetect": "off"
11} \ No newline at end of file 11}
diff --git a/editors/code/.vscode/tasks.json b/editors/code/.vscode/tasks.json
index 604e38f5a..5deb2bccd 100644
--- a/editors/code/.vscode/tasks.json
+++ b/editors/code/.vscode/tasks.json
@@ -17,4 +17,4 @@
17 } 17 }
18 } 18 }
19 ] 19 ]
20} \ No newline at end of file 20}
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json
index 594a10b51..eb5990a85 100644
--- a/editors/code/package-lock.json
+++ b/editors/code/package-lock.json
@@ -11,9 +11,9 @@
11 "dev": true 11 "dev": true
12 }, 12 },
13 "@types/node": { 13 "@types/node": {
14 "version": "8.10.29", 14 "version": "8.10.34",
15 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.29.tgz", 15 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.34.tgz",
16 "integrity": "sha512-zbteaWZ2mdduacm0byELwtRyhYE40aK+pAanQk415gr1eRuu67x7QGOLmn8jz5zI8LDK7d0WI/oT6r5Trz4rzQ==", 16 "integrity": "sha512-alypNiaAEd0RBGXoWehJ2gchPYCITmw4CYBoB5nDlji8l8on7FsklfdfIs4DDmgpKLSX3OF3ha6SV+0W7cTzUA==",
17 "dev": true 17 "dev": true
18 }, 18 },
19 "ajv": { 19 "ajv": {
@@ -22,10 +22,10 @@
22 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 22 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
23 "dev": true, 23 "dev": true,
24 "requires": { 24 "requires": {
25 "co": "4.6.0", 25 "co": "^4.6.0",
26 "fast-deep-equal": "1.1.0", 26 "fast-deep-equal": "^1.0.0",
27 "fast-json-stable-stringify": "2.0.0", 27 "fast-json-stable-stringify": "^2.0.0",
28 "json-schema-traverse": "0.3.1" 28 "json-schema-traverse": "^0.3.0"
29 } 29 }
30 }, 30 },
31 "ansi-cyan": { 31 "ansi-cyan": {
@@ -46,6 +46,18 @@
46 "ansi-wrap": "0.1.0" 46 "ansi-wrap": "0.1.0"
47 } 47 }
48 }, 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": {
56 "version": "2.2.1",
57 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
58 "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
59 "dev": true
60 },
49 "ansi-wrap": { 61 "ansi-wrap": {
50 "version": "0.1.0", 62 "version": "0.1.0",
51 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", 63 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
@@ -58,7 +70,7 @@
58 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 70 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
59 "dev": true, 71 "dev": true,
60 "requires": { 72 "requires": {
61 "sprintf-js": "1.0.3" 73 "sprintf-js": "~1.0.2"
62 } 74 }
63 }, 75 },
64 "arr-diff": { 76 "arr-diff": {
@@ -67,8 +79,8 @@
67 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", 79 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
68 "dev": true, 80 "dev": true,
69 "requires": { 81 "requires": {
70 "arr-flatten": "1.1.0", 82 "arr-flatten": "^1.0.1",
71 "array-slice": "0.2.3" 83 "array-slice": "^0.2.3"
72 } 84 }
73 }, 85 },
74 "arr-flatten": { 86 "arr-flatten": {
@@ -101,7 +113,7 @@
101 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 113 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
102 "dev": true, 114 "dev": true,
103 "requires": { 115 "requires": {
104 "array-uniq": "1.0.3" 116 "array-uniq": "^1.0.1"
105 } 117 }
106 }, 118 },
107 "array-uniq": { 119 "array-uniq": {
@@ -128,7 +140,7 @@
128 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 140 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
129 "dev": true, 141 "dev": true,
130 "requires": { 142 "requires": {
131 "safer-buffer": "2.1.2" 143 "safer-buffer": "~2.1.0"
132 } 144 }
133 }, 145 },
134 "assert-plus": { 146 "assert-plus": {
@@ -155,6 +167,38 @@
155 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", 167 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
156 "dev": true 168 "dev": true
157 }, 169 },
170 "babel-code-frame": {
171 "version": "6.26.0",
172 "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
173 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
174 "dev": true,
175 "requires": {
176 "chalk": "^1.1.3",
177 "esutils": "^2.0.2",
178 "js-tokens": "^3.0.2"
179 },
180 "dependencies": {
181 "chalk": {
182 "version": "1.1.3",
183 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
184 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
185 "dev": true,
186 "requires": {
187 "ansi-styles": "^2.2.1",
188 "escape-string-regexp": "^1.0.2",
189 "has-ansi": "^2.0.0",
190 "strip-ansi": "^3.0.0",
191 "supports-color": "^2.0.0"
192 }
193 },
194 "supports-color": {
195 "version": "2.0.0",
196 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
197 "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
198 "dev": true
199 }
200 }
201 },
158 "balanced-match": { 202 "balanced-match": {
159 "version": "1.0.0", 203 "version": "1.0.0",
160 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 204 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -168,7 +212,7 @@
168 "dev": true, 212 "dev": true,
169 "optional": true, 213 "optional": true,
170 "requires": { 214 "requires": {
171 "tweetnacl": "0.14.5" 215 "tweetnacl": "^0.14.3"
172 } 216 }
173 }, 217 },
174 "block-stream": { 218 "block-stream": {
@@ -177,7 +221,7 @@
177 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", 221 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
178 "dev": true, 222 "dev": true,
179 "requires": { 223 "requires": {
180 "inherits": "2.0.3" 224 "inherits": "~2.0.0"
181 } 225 }
182 }, 226 },
183 "boolbase": { 227 "boolbase": {
@@ -192,7 +236,7 @@
192 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 236 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
193 "dev": true, 237 "dev": true,
194 "requires": { 238 "requires": {
195 "balanced-match": "1.0.0", 239 "balanced-match": "^1.0.0",
196 "concat-map": "0.0.1" 240 "concat-map": "0.0.1"
197 } 241 }
198 }, 242 },
@@ -202,9 +246,9 @@
202 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 246 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
203 "dev": true, 247 "dev": true,
204 "requires": { 248 "requires": {
205 "expand-range": "1.8.2", 249 "expand-range": "^1.8.1",
206 "preserve": "0.2.0", 250 "preserve": "^0.2.0",
207 "repeat-element": "1.1.3" 251 "repeat-element": "^1.1.2"
208 } 252 }
209 }, 253 },
210 "browser-stdout": { 254 "browser-stdout": {
@@ -225,24 +269,67 @@
225 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 269 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
226 "dev": true 270 "dev": true
227 }, 271 },
272 "builtin-modules": {
273 "version": "1.1.1",
274 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
275 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
276 "dev": true
277 },
228 "caseless": { 278 "caseless": {
229 "version": "0.12.0", 279 "version": "0.12.0",
230 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 280 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
231 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 281 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
232 "dev": true 282 "dev": true
233 }, 283 },
284 "chalk": {
285 "version": "2.4.1",
286 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
287 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
288 "dev": true,
289 "requires": {
290 "ansi-styles": "^3.2.1",
291 "escape-string-regexp": "^1.0.5",
292 "supports-color": "^5.3.0"
293 },
294 "dependencies": {
295 "ansi-styles": {
296 "version": "3.2.1",
297 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
298 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
299 "dev": true,
300 "requires": {
301 "color-convert": "^1.9.0"
302 }
303 },
304 "has-flag": {
305 "version": "3.0.0",
306 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
307 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
308 "dev": true
309 },
310 "supports-color": {
311 "version": "5.5.0",
312 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
313 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
314 "dev": true,
315 "requires": {
316 "has-flag": "^3.0.0"
317 }
318 }
319 }
320 },
234 "cheerio": { 321 "cheerio": {
235 "version": "1.0.0-rc.2", 322 "version": "1.0.0-rc.2",
236 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", 323 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
237 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", 324 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
238 "dev": true, 325 "dev": true,
239 "requires": { 326 "requires": {
240 "css-select": "1.2.0", 327 "css-select": "~1.2.0",
241 "dom-serializer": "0.1.0", 328 "dom-serializer": "~0.1.0",
242 "entities": "1.1.1", 329 "entities": "~1.1.1",
243 "htmlparser2": "3.9.2", 330 "htmlparser2": "^3.9.1",
244 "lodash": "4.17.11", 331 "lodash": "^4.15.0",
245 "parse5": "3.0.3" 332 "parse5": "^3.0.1"
246 } 333 }
247 }, 334 },
248 "clone": { 335 "clone": {
@@ -269,9 +356,9 @@
269 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", 356 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
270 "dev": true, 357 "dev": true,
271 "requires": { 358 "requires": {
272 "inherits": "2.0.3", 359 "inherits": "^2.0.1",
273 "process-nextick-args": "2.0.0", 360 "process-nextick-args": "^2.0.0",
274 "readable-stream": "2.3.6" 361 "readable-stream": "^2.3.5"
275 } 362 }
276 }, 363 },
277 "co": { 364 "co": {
@@ -280,13 +367,28 @@
280 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 367 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
281 "dev": true 368 "dev": true
282 }, 369 },
370 "color-convert": {
371 "version": "1.9.3",
372 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
373 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
374 "dev": true,
375 "requires": {
376 "color-name": "1.1.3"
377 }
378 },
379 "color-name": {
380 "version": "1.1.3",
381 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
382 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
383 "dev": true
384 },
283 "combined-stream": { 385 "combined-stream": {
284 "version": "1.0.6", 386 "version": "1.0.6",
285 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", 387 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
286 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", 388 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
287 "dev": true, 389 "dev": true,
288 "requires": { 390 "requires": {
289 "delayed-stream": "1.0.0" 391 "delayed-stream": "~1.0.0"
290 } 392 }
291 }, 393 },
292 "commander": { 394 "commander": {
@@ -307,7 +409,7 @@
307 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", 409 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
308 "dev": true, 410 "dev": true,
309 "requires": { 411 "requires": {
310 "safe-buffer": "5.1.2" 412 "safe-buffer": "~5.1.1"
311 } 413 }
312 }, 414 },
313 "core-util-is": { 415 "core-util-is": {
@@ -322,10 +424,10 @@
322 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", 424 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
323 "dev": true, 425 "dev": true,
324 "requires": { 426 "requires": {
325 "boolbase": "1.0.0", 427 "boolbase": "~1.0.0",
326 "css-what": "2.1.0", 428 "css-what": "2.1",
327 "domutils": "1.5.1", 429 "domutils": "1.5.1",
328 "nth-check": "1.0.1" 430 "nth-check": "~1.0.1"
329 } 431 }
330 }, 432 },
331 "css-what": { 433 "css-what": {
@@ -340,7 +442,7 @@
340 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 442 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
341 "dev": true, 443 "dev": true,
342 "requires": { 444 "requires": {
343 "assert-plus": "1.0.0" 445 "assert-plus": "^1.0.0"
344 } 446 }
345 }, 447 },
346 "debug": { 448 "debug": {
@@ -358,7 +460,7 @@
358 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=", 460 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=",
359 "dev": true, 461 "dev": true,
360 "requires": { 462 "requires": {
361 "is-obj": "1.0.1" 463 "is-obj": "^1.0.0"
362 } 464 }
363 }, 465 },
364 "delayed-stream": { 466 "delayed-stream": {
@@ -385,8 +487,8 @@
385 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", 487 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
386 "dev": true, 488 "dev": true,
387 "requires": { 489 "requires": {
388 "domelementtype": "1.1.3", 490 "domelementtype": "~1.1.1",
389 "entities": "1.1.1" 491 "entities": "~1.1.1"
390 }, 492 },
391 "dependencies": { 493 "dependencies": {
392 "domelementtype": { 494 "domelementtype": {
@@ -409,7 +511,7 @@
409 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", 511 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
410 "dev": true, 512 "dev": true,
411 "requires": { 513 "requires": {
412 "domelementtype": "1.3.0" 514 "domelementtype": "1"
413 } 515 }
414 }, 516 },
415 "domutils": { 517 "domutils": {
@@ -418,8 +520,8 @@
418 "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 520 "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
419 "dev": true, 521 "dev": true,
420 "requires": { 522 "requires": {
421 "dom-serializer": "0.1.0", 523 "dom-serializer": "0",
422 "domelementtype": "1.3.0" 524 "domelementtype": "1"
423 } 525 }
424 }, 526 },
425 "duplexer": { 527 "duplexer": {
@@ -434,10 +536,10 @@
434 "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", 536 "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
435 "dev": true, 537 "dev": true,
436 "requires": { 538 "requires": {
437 "end-of-stream": "1.4.1", 539 "end-of-stream": "^1.0.0",
438 "inherits": "2.0.3", 540 "inherits": "^2.0.1",
439 "readable-stream": "2.3.6", 541 "readable-stream": "^2.0.0",
440 "stream-shift": "1.0.0" 542 "stream-shift": "^1.0.0"
441 } 543 }
442 }, 544 },
443 "ecc-jsbn": { 545 "ecc-jsbn": {
@@ -447,8 +549,8 @@
447 "dev": true, 549 "dev": true,
448 "optional": true, 550 "optional": true,
449 "requires": { 551 "requires": {
450 "jsbn": "0.1.1", 552 "jsbn": "~0.1.0",
451 "safer-buffer": "2.1.2" 553 "safer-buffer": "^2.1.0"
452 } 554 }
453 }, 555 },
454 "end-of-stream": { 556 "end-of-stream": {
@@ -457,7 +559,7 @@
457 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", 559 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
458 "dev": true, 560 "dev": true,
459 "requires": { 561 "requires": {
460 "once": "1.4.0" 562 "once": "^1.4.0"
461 } 563 }
462 }, 564 },
463 "entities": { 565 "entities": {
@@ -472,20 +574,32 @@
472 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 574 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
473 "dev": true 575 "dev": true
474 }, 576 },
577 "esprima": {
578 "version": "4.0.1",
579 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
580 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
581 "dev": true
582 },
583 "esutils": {
584 "version": "2.0.2",
585 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
586 "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
587 "dev": true
588 },
475 "event-stream": { 589 "event-stream": {
476 "version": "3.3.6", 590 "version": "3.3.6",
477 "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz", 591 "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz",
478 "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", 592 "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==",
479 "dev": true, 593 "dev": true,
480 "requires": { 594 "requires": {
481 "duplexer": "0.1.1", 595 "duplexer": "^0.1.1",
482 "flatmap-stream": "0.1.0", 596 "flatmap-stream": "^0.1.0",
483 "from": "0.1.7", 597 "from": "^0.1.7",
484 "map-stream": "0.0.7", 598 "map-stream": "0.0.7",
485 "pause-stream": "0.0.11", 599 "pause-stream": "^0.0.11",
486 "split": "1.0.1", 600 "split": "^1.0.1",
487 "stream-combiner": "0.2.2", 601 "stream-combiner": "^0.2.2",
488 "through": "2.3.8" 602 "through": "^2.3.8"
489 } 603 }
490 }, 604 },
491 "expand-brackets": { 605 "expand-brackets": {
@@ -494,7 +608,7 @@
494 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 608 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
495 "dev": true, 609 "dev": true,
496 "requires": { 610 "requires": {
497 "is-posix-bracket": "0.1.1" 611 "is-posix-bracket": "^0.1.0"
498 } 612 }
499 }, 613 },
500 "expand-range": { 614 "expand-range": {
@@ -503,7 +617,7 @@
503 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 617 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
504 "dev": true, 618 "dev": true,
505 "requires": { 619 "requires": {
506 "fill-range": "2.2.4" 620 "fill-range": "^2.1.0"
507 } 621 }
508 }, 622 },
509 "extend": { 623 "extend": {
@@ -518,7 +632,7 @@
518 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", 632 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
519 "dev": true, 633 "dev": true,
520 "requires": { 634 "requires": {
521 "kind-of": "1.1.0" 635 "kind-of": "^1.1.0"
522 } 636 }
523 }, 637 },
524 "extglob": { 638 "extglob": {
@@ -527,7 +641,7 @@
527 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 641 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
528 "dev": true, 642 "dev": true,
529 "requires": { 643 "requires": {
530 "is-extglob": "1.0.0" 644 "is-extglob": "^1.0.0"
531 }, 645 },
532 "dependencies": { 646 "dependencies": {
533 "is-extglob": { 647 "is-extglob": {
@@ -562,7 +676,7 @@
562 "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 676 "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
563 "dev": true, 677 "dev": true,
564 "requires": { 678 "requires": {
565 "pend": "1.2.0" 679 "pend": "~1.2.0"
566 } 680 }
567 }, 681 },
568 "filename-regex": { 682 "filename-regex": {
@@ -577,11 +691,11 @@
577 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", 691 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
578 "dev": true, 692 "dev": true,
579 "requires": { 693 "requires": {
580 "is-number": "2.1.0", 694 "is-number": "^2.1.0",
581 "isobject": "2.1.0", 695 "isobject": "^2.0.0",
582 "randomatic": "3.1.0", 696 "randomatic": "^3.0.0",
583 "repeat-element": "1.1.3", 697 "repeat-element": "^1.1.2",
584 "repeat-string": "1.6.1" 698 "repeat-string": "^1.5.2"
585 } 699 }
586 }, 700 },
587 "first-chunk-stream": { 701 "first-chunk-stream": {
@@ -608,7 +722,7 @@
608 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 722 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
609 "dev": true, 723 "dev": true,
610 "requires": { 724 "requires": {
611 "for-in": "1.0.2" 725 "for-in": "^1.0.1"
612 } 726 }
613 }, 727 },
614 "forever-agent": { 728 "forever-agent": {
@@ -623,9 +737,9 @@
623 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", 737 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
624 "dev": true, 738 "dev": true,
625 "requires": { 739 "requires": {
626 "asynckit": "0.4.0", 740 "asynckit": "^0.4.0",
627 "combined-stream": "1.0.6", 741 "combined-stream": "1.0.6",
628 "mime-types": "2.1.20" 742 "mime-types": "^2.1.12"
629 } 743 }
630 }, 744 },
631 "from": { 745 "from": {
@@ -646,10 +760,10 @@
646 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", 760 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
647 "dev": true, 761 "dev": true,
648 "requires": { 762 "requires": {
649 "graceful-fs": "4.1.11", 763 "graceful-fs": "^4.1.2",
650 "inherits": "2.0.3", 764 "inherits": "~2.0.0",
651 "mkdirp": "0.5.1", 765 "mkdirp": ">=0.5 0",
652 "rimraf": "2.6.2" 766 "rimraf": "2"
653 } 767 }
654 }, 768 },
655 "getpass": { 769 "getpass": {
@@ -658,7 +772,7 @@
658 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 772 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
659 "dev": true, 773 "dev": true,
660 "requires": { 774 "requires": {
661 "assert-plus": "1.0.0" 775 "assert-plus": "^1.0.0"
662 } 776 }
663 }, 777 },
664 "glob": { 778 "glob": {
@@ -667,12 +781,12 @@
667 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 781 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
668 "dev": true, 782 "dev": true,
669 "requires": { 783 "requires": {
670 "fs.realpath": "1.0.0", 784 "fs.realpath": "^1.0.0",
671 "inflight": "1.0.6", 785 "inflight": "^1.0.4",
672 "inherits": "2.0.3", 786 "inherits": "2",
673 "minimatch": "3.0.4", 787 "minimatch": "^3.0.4",
674 "once": "1.4.0", 788 "once": "^1.3.0",
675 "path-is-absolute": "1.0.1" 789 "path-is-absolute": "^1.0.0"
676 } 790 }
677 }, 791 },
678 "glob-base": { 792 "glob-base": {
@@ -681,8 +795,8 @@
681 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 795 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
682 "dev": true, 796 "dev": true,
683 "requires": { 797 "requires": {
684 "glob-parent": "2.0.0", 798 "glob-parent": "^2.0.0",
685 "is-glob": "2.0.1" 799 "is-glob": "^2.0.0"
686 }, 800 },
687 "dependencies": { 801 "dependencies": {
688 "glob-parent": { 802 "glob-parent": {
@@ -691,7 +805,7 @@
691 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 805 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
692 "dev": true, 806 "dev": true,
693 "requires": { 807 "requires": {
694 "is-glob": "2.0.1" 808 "is-glob": "^2.0.0"
695 } 809 }
696 }, 810 },
697 "is-extglob": { 811 "is-extglob": {
@@ -706,7 +820,7 @@
706 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 820 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
707 "dev": true, 821 "dev": true,
708 "requires": { 822 "requires": {
709 "is-extglob": "1.0.0" 823 "is-extglob": "^1.0.0"
710 } 824 }
711 } 825 }
712 } 826 }
@@ -717,8 +831,8 @@
717 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 831 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
718 "dev": true, 832 "dev": true,
719 "requires": { 833 "requires": {
720 "is-glob": "3.1.0", 834 "is-glob": "^3.1.0",
721 "path-dirname": "1.0.2" 835 "path-dirname": "^1.0.0"
722 } 836 }
723 }, 837 },
724 "glob-stream": { 838 "glob-stream": {
@@ -727,14 +841,14 @@
727 "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", 841 "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
728 "dev": true, 842 "dev": true,
729 "requires": { 843 "requires": {
730 "extend": "3.0.2", 844 "extend": "^3.0.0",
731 "glob": "5.0.15", 845 "glob": "^5.0.3",
732 "glob-parent": "3.1.0", 846 "glob-parent": "^3.0.0",
733 "micromatch": "2.3.11", 847 "micromatch": "^2.3.7",
734 "ordered-read-streams": "0.3.0", 848 "ordered-read-streams": "^0.3.0",
735 "through2": "0.6.5", 849 "through2": "^0.6.0",
736 "to-absolute-glob": "0.1.1", 850 "to-absolute-glob": "^0.1.1",
737 "unique-stream": "2.2.1" 851 "unique-stream": "^2.0.2"
738 }, 852 },
739 "dependencies": { 853 "dependencies": {
740 "glob": { 854 "glob": {
@@ -743,11 +857,11 @@
743 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 857 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
744 "dev": true, 858 "dev": true,
745 "requires": { 859 "requires": {
746 "inflight": "1.0.6", 860 "inflight": "^1.0.4",
747 "inherits": "2.0.3", 861 "inherits": "2",
748 "minimatch": "3.0.4", 862 "minimatch": "2 || 3",
749 "once": "1.4.0", 863 "once": "^1.3.0",
750 "path-is-absolute": "1.0.1" 864 "path-is-absolute": "^1.0.0"
751 } 865 }
752 }, 866 },
753 "isarray": { 867 "isarray": {
@@ -762,10 +876,10 @@
762 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 876 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
763 "dev": true, 877 "dev": true,
764 "requires": { 878 "requires": {
765 "core-util-is": "1.0.2", 879 "core-util-is": "~1.0.0",
766 "inherits": "2.0.3", 880 "inherits": "~2.0.1",
767 "isarray": "0.0.1", 881 "isarray": "0.0.1",
768 "string_decoder": "0.10.31" 882 "string_decoder": "~0.10.x"
769 } 883 }
770 }, 884 },
771 "string_decoder": { 885 "string_decoder": {
@@ -780,8 +894,8 @@
780 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", 894 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
781 "dev": true, 895 "dev": true,
782 "requires": { 896 "requires": {
783 "readable-stream": "1.0.34", 897 "readable-stream": ">=1.0.33-1 <1.1.0-0",
784 "xtend": "4.0.1" 898 "xtend": ">=4.0.0 <4.1.0-0"
785 } 899 }
786 } 900 }
787 } 901 }
@@ -804,9 +918,9 @@
804 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=", 918 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=",
805 "dev": true, 919 "dev": true,
806 "requires": { 920 "requires": {
807 "deep-assign": "1.0.0", 921 "deep-assign": "^1.0.0",
808 "stat-mode": "0.2.2", 922 "stat-mode": "^0.2.0",
809 "through2": "2.0.3" 923 "through2": "^2.0.0"
810 } 924 }
811 }, 925 },
812 "gulp-filter": { 926 "gulp-filter": {
@@ -815,9 +929,9 @@
815 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=", 929 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=",
816 "dev": true, 930 "dev": true,
817 "requires": { 931 "requires": {
818 "multimatch": "2.1.0", 932 "multimatch": "^2.0.0",
819 "plugin-error": "0.1.2", 933 "plugin-error": "^0.1.2",
820 "streamfilter": "1.0.7" 934 "streamfilter": "^1.0.5"
821 } 935 }
822 }, 936 },
823 "gulp-gunzip": { 937 "gulp-gunzip": {
@@ -826,8 +940,8 @@
826 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=", 940 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=",
827 "dev": true, 941 "dev": true,
828 "requires": { 942 "requires": {
829 "through2": "0.6.5", 943 "through2": "~0.6.5",
830 "vinyl": "0.4.6" 944 "vinyl": "~0.4.6"
831 }, 945 },
832 "dependencies": { 946 "dependencies": {
833 "isarray": { 947 "isarray": {
@@ -842,10 +956,10 @@
842 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 956 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
843 "dev": true, 957 "dev": true,
844 "requires": { 958 "requires": {
845 "core-util-is": "1.0.2", 959 "core-util-is": "~1.0.0",
846 "inherits": "2.0.3", 960 "inherits": "~2.0.1",
847 "isarray": "0.0.1", 961 "isarray": "0.0.1",
848 "string_decoder": "0.10.31" 962 "string_decoder": "~0.10.x"
849 } 963 }
850 }, 964 },
851 "string_decoder": { 965 "string_decoder": {
@@ -860,8 +974,8 @@
860 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", 974 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
861 "dev": true, 975 "dev": true,
862 "requires": { 976 "requires": {
863 "readable-stream": "1.0.34", 977 "readable-stream": ">=1.0.33-1 <1.1.0-0",
864 "xtend": "4.0.1" 978 "xtend": ">=4.0.0 <4.1.0-0"
865 } 979 }
866 } 980 }
867 } 981 }
@@ -872,11 +986,11 @@
872 "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==", 986 "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==",
873 "dev": true, 987 "dev": true,
874 "requires": { 988 "requires": {
875 "event-stream": "3.3.6", 989 "event-stream": "^3.3.4",
876 "node.extend": "1.1.6", 990 "node.extend": "^1.1.2",
877 "request": "2.88.0", 991 "request": "^2.79.0",
878 "through2": "2.0.3", 992 "through2": "^2.0.3",
879 "vinyl": "2.2.0" 993 "vinyl": "^2.0.1"
880 }, 994 },
881 "dependencies": { 995 "dependencies": {
882 "clone": { 996 "clone": {
@@ -897,12 +1011,12 @@
897 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 1011 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
898 "dev": true, 1012 "dev": true,
899 "requires": { 1013 "requires": {
900 "clone": "2.1.2", 1014 "clone": "^2.1.1",
901 "clone-buffer": "1.0.0", 1015 "clone-buffer": "^1.0.0",
902 "clone-stats": "1.0.0", 1016 "clone-stats": "^1.0.0",
903 "cloneable-readable": "1.1.2", 1017 "cloneable-readable": "^1.0.0",
904 "remove-trailing-separator": "1.1.0", 1018 "remove-trailing-separator": "^1.0.1",
905 "replace-ext": "1.0.0" 1019 "replace-ext": "^1.0.0"
906 } 1020 }
907 } 1021 }
908 } 1022 }
@@ -913,11 +1027,11 @@
913 "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", 1027 "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
914 "dev": true, 1028 "dev": true,
915 "requires": { 1029 "requires": {
916 "convert-source-map": "1.6.0", 1030 "convert-source-map": "^1.1.1",
917 "graceful-fs": "4.1.11", 1031 "graceful-fs": "^4.1.2",
918 "strip-bom": "2.0.0", 1032 "strip-bom": "^2.0.0",
919 "through2": "2.0.3", 1033 "through2": "^2.0.0",
920 "vinyl": "1.2.0" 1034 "vinyl": "^1.0.0"
921 }, 1035 },
922 "dependencies": { 1036 "dependencies": {
923 "clone": { 1037 "clone": {
@@ -938,8 +1052,8 @@
938 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", 1052 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
939 "dev": true, 1053 "dev": true,
940 "requires": { 1054 "requires": {
941 "clone": "1.0.4", 1055 "clone": "^1.0.0",
942 "clone-stats": "0.0.1", 1056 "clone-stats": "^0.0.1",
943 "replace-ext": "0.0.1" 1057 "replace-ext": "0.0.1"
944 } 1058 }
945 } 1059 }
@@ -951,10 +1065,10 @@
951 "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=", 1065 "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=",
952 "dev": true, 1066 "dev": true,
953 "requires": { 1067 "requires": {
954 "event-stream": "3.3.6", 1068 "event-stream": "^3.3.1",
955 "mkdirp": "0.5.1", 1069 "mkdirp": "^0.5.1",
956 "queue": "3.1.0", 1070 "queue": "^3.1.0",
957 "vinyl-fs": "2.4.4" 1071 "vinyl-fs": "^2.4.3"
958 } 1072 }
959 }, 1073 },
960 "gulp-untar": { 1074 "gulp-untar": {
@@ -963,11 +1077,11 @@
963 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==", 1077 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==",
964 "dev": true, 1078 "dev": true,
965 "requires": { 1079 "requires": {
966 "event-stream": "3.3.6", 1080 "event-stream": "~3.3.4",
967 "streamifier": "0.1.1", 1081 "streamifier": "~0.1.1",
968 "tar": "2.2.1", 1082 "tar": "^2.2.1",
969 "through2": "2.0.3", 1083 "through2": "~2.0.3",
970 "vinyl": "1.2.0" 1084 "vinyl": "^1.2.0"
971 }, 1085 },
972 "dependencies": { 1086 "dependencies": {
973 "clone": { 1087 "clone": {
@@ -988,8 +1102,8 @@
988 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", 1102 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
989 "dev": true, 1103 "dev": true,
990 "requires": { 1104 "requires": {
991 "clone": "1.0.4", 1105 "clone": "^1.0.0",
992 "clone-stats": "0.0.1", 1106 "clone-stats": "^0.0.1",
993 "replace-ext": "0.0.1" 1107 "replace-ext": "0.0.1"
994 } 1108 }
995 } 1109 }
@@ -1001,13 +1115,13 @@
1001 "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=", 1115 "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=",
1002 "dev": true, 1116 "dev": true,
1003 "requires": { 1117 "requires": {
1004 "event-stream": "3.3.6", 1118 "event-stream": "^3.3.1",
1005 "queue": "4.5.0", 1119 "queue": "^4.2.1",
1006 "through2": "2.0.3", 1120 "through2": "^2.0.3",
1007 "vinyl": "2.2.0", 1121 "vinyl": "^2.0.2",
1008 "vinyl-fs": "2.4.4", 1122 "vinyl-fs": "^2.0.0",
1009 "yauzl": "2.10.0", 1123 "yauzl": "^2.2.1",
1010 "yazl": "2.4.3" 1124 "yazl": "^2.2.1"
1011 }, 1125 },
1012 "dependencies": { 1126 "dependencies": {
1013 "clone": { 1127 "clone": {
@@ -1028,7 +1142,7 @@
1028 "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==", 1142 "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==",
1029 "dev": true, 1143 "dev": true,
1030 "requires": { 1144 "requires": {
1031 "inherits": "2.0.3" 1145 "inherits": "~2.0.0"
1032 } 1146 }
1033 }, 1147 },
1034 "vinyl": { 1148 "vinyl": {
@@ -1037,12 +1151,12 @@
1037 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 1151 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1038 "dev": true, 1152 "dev": true,
1039 "requires": { 1153 "requires": {
1040 "clone": "2.1.2", 1154 "clone": "^2.1.1",
1041 "clone-buffer": "1.0.0", 1155 "clone-buffer": "^1.0.0",
1042 "clone-stats": "1.0.0", 1156 "clone-stats": "^1.0.0",
1043 "cloneable-readable": "1.1.2", 1157 "cloneable-readable": "^1.0.0",
1044 "remove-trailing-separator": "1.1.0", 1158 "remove-trailing-separator": "^1.0.1",
1045 "replace-ext": "1.0.0" 1159 "replace-ext": "^1.0.0"
1046 } 1160 }
1047 } 1161 }
1048 } 1162 }
@@ -1059,8 +1173,17 @@
1059 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", 1173 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
1060 "dev": true, 1174 "dev": true,
1061 "requires": { 1175 "requires": {
1062 "ajv": "5.5.2", 1176 "ajv": "^5.3.0",
1063 "har-schema": "2.0.0" 1177 "har-schema": "^2.0.0"
1178 }
1179 },
1180 "has-ansi": {
1181 "version": "2.0.0",
1182 "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1183 "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1184 "dev": true,
1185 "requires": {
1186 "ansi-regex": "^2.0.0"
1064 } 1187 }
1065 }, 1188 },
1066 "has-flag": { 1189 "has-flag": {
@@ -1081,12 +1204,12 @@
1081 "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", 1204 "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
1082 "dev": true, 1205 "dev": true,
1083 "requires": { 1206 "requires": {
1084 "domelementtype": "1.3.0", 1207 "domelementtype": "^1.3.0",
1085 "domhandler": "2.4.2", 1208 "domhandler": "^2.3.0",
1086 "domutils": "1.5.1", 1209 "domutils": "^1.5.1",
1087 "entities": "1.1.1", 1210 "entities": "^1.1.1",
1088 "inherits": "2.0.3", 1211 "inherits": "^2.0.1",
1089 "readable-stream": "2.3.6" 1212 "readable-stream": "^2.0.2"
1090 } 1213 }
1091 }, 1214 },
1092 "http-signature": { 1215 "http-signature": {
@@ -1095,9 +1218,9 @@
1095 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1218 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1096 "dev": true, 1219 "dev": true,
1097 "requires": { 1220 "requires": {
1098 "assert-plus": "1.0.0", 1221 "assert-plus": "^1.0.0",
1099 "jsprim": "1.4.1", 1222 "jsprim": "^1.2.2",
1100 "sshpk": "1.14.2" 1223 "sshpk": "^1.7.0"
1101 } 1224 }
1102 }, 1225 },
1103 "inflight": { 1226 "inflight": {
@@ -1106,8 +1229,8 @@
1106 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1229 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1107 "dev": true, 1230 "dev": true,
1108 "requires": { 1231 "requires": {
1109 "once": "1.4.0", 1232 "once": "^1.3.0",
1110 "wrappy": "1.0.2" 1233 "wrappy": "1"
1111 } 1234 }
1112 }, 1235 },
1113 "inherits": { 1236 "inherits": {
@@ -1140,7 +1263,7 @@
1140 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1263 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1141 "dev": true, 1264 "dev": true,
1142 "requires": { 1265 "requires": {
1143 "is-primitive": "2.0.0" 1266 "is-primitive": "^2.0.0"
1144 } 1267 }
1145 }, 1268 },
1146 "is-extendable": { 1269 "is-extendable": {
@@ -1161,7 +1284,7 @@
1161 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 1284 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1162 "dev": true, 1285 "dev": true,
1163 "requires": { 1286 "requires": {
1164 "is-extglob": "2.1.1" 1287 "is-extglob": "^2.1.0"
1165 } 1288 }
1166 }, 1289 },
1167 "is-number": { 1290 "is-number": {
@@ -1170,7 +1293,7 @@
1170 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1293 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1171 "dev": true, 1294 "dev": true,
1172 "requires": { 1295 "requires": {
1173 "kind-of": "3.2.2" 1296 "kind-of": "^3.0.2"
1174 }, 1297 },
1175 "dependencies": { 1298 "dependencies": {
1176 "kind-of": { 1299 "kind-of": {
@@ -1179,7 +1302,7 @@
1179 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1302 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1180 "dev": true, 1303 "dev": true,
1181 "requires": { 1304 "requires": {
1182 "is-buffer": "1.1.6" 1305 "is-buffer": "^1.1.5"
1183 } 1306 }
1184 } 1307 }
1185 } 1308 }
@@ -1247,6 +1370,22 @@
1247 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1370 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
1248 "dev": true 1371 "dev": true
1249 }, 1372 },
1373 "js-tokens": {
1374 "version": "3.0.2",
1375 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
1376 "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
1377 "dev": true
1378 },
1379 "js-yaml": {
1380 "version": "3.12.0",
1381 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
1382 "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
1383 "dev": true,
1384 "requires": {
1385 "argparse": "^1.0.7",
1386 "esprima": "^4.0.0"
1387 }
1388 },
1250 "jsbn": { 1389 "jsbn": {
1251 "version": "0.1.1", 1390 "version": "0.1.1",
1252 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1391 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
@@ -1272,7 +1411,7 @@
1272 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1411 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
1273 "dev": true, 1412 "dev": true,
1274 "requires": { 1413 "requires": {
1275 "jsonify": "0.0.0" 1414 "jsonify": "~0.0.0"
1276 } 1415 }
1277 }, 1416 },
1278 "json-stringify-safe": { 1417 "json-stringify-safe": {
@@ -1311,7 +1450,7 @@
1311 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", 1450 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
1312 "dev": true, 1451 "dev": true,
1313 "requires": { 1452 "requires": {
1314 "readable-stream": "2.3.6" 1453 "readable-stream": "^2.0.5"
1315 } 1454 }
1316 }, 1455 },
1317 "linkify-it": { 1456 "linkify-it": {
@@ -1320,7 +1459,7 @@
1320 "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=", 1459 "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
1321 "dev": true, 1460 "dev": true,
1322 "requires": { 1461 "requires": {
1323 "uc.micro": "1.0.5" 1462 "uc.micro": "^1.0.1"
1324 } 1463 }
1325 }, 1464 },
1326 "lodash": { 1465 "lodash": {
@@ -1347,11 +1486,11 @@
1347 "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", 1486 "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
1348 "dev": true, 1487 "dev": true,
1349 "requires": { 1488 "requires": {
1350 "argparse": "1.0.10", 1489 "argparse": "^1.0.7",
1351 "entities": "1.1.1", 1490 "entities": "~1.1.1",
1352 "linkify-it": "2.0.3", 1491 "linkify-it": "^2.0.0",
1353 "mdurl": "1.0.1", 1492 "mdurl": "^1.0.1",
1354 "uc.micro": "1.0.5" 1493 "uc.micro": "^1.0.5"
1355 } 1494 }
1356 }, 1495 },
1357 "math-random": { 1496 "math-random": {
@@ -1372,7 +1511,7 @@
1372 "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", 1511 "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
1373 "dev": true, 1512 "dev": true,
1374 "requires": { 1513 "requires": {
1375 "readable-stream": "2.3.6" 1514 "readable-stream": "^2.0.1"
1376 } 1515 }
1377 }, 1516 },
1378 "micromatch": { 1517 "micromatch": {
@@ -1381,19 +1520,19 @@
1381 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1520 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1382 "dev": true, 1521 "dev": true,
1383 "requires": { 1522 "requires": {
1384 "arr-diff": "2.0.0", 1523 "arr-diff": "^2.0.0",
1385 "array-unique": "0.2.1", 1524 "array-unique": "^0.2.1",
1386 "braces": "1.8.5", 1525 "braces": "^1.8.2",
1387 "expand-brackets": "0.1.5", 1526 "expand-brackets": "^0.1.4",
1388 "extglob": "0.3.2", 1527 "extglob": "^0.3.1",
1389 "filename-regex": "2.0.1", 1528 "filename-regex": "^2.0.0",
1390 "is-extglob": "1.0.0", 1529 "is-extglob": "^1.0.0",
1391 "is-glob": "2.0.1", 1530 "is-glob": "^2.0.1",
1392 "kind-of": "3.2.2", 1531 "kind-of": "^3.0.2",
1393 "normalize-path": "2.1.1", 1532 "normalize-path": "^2.0.1",
1394 "object.omit": "2.0.1", 1533 "object.omit": "^2.0.0",
1395 "parse-glob": "3.0.4", 1534 "parse-glob": "^3.0.4",
1396 "regex-cache": "0.4.4" 1535 "regex-cache": "^0.4.2"
1397 }, 1536 },
1398 "dependencies": { 1537 "dependencies": {
1399 "arr-diff": { 1538 "arr-diff": {
@@ -1402,7 +1541,7 @@
1402 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 1541 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
1403 "dev": true, 1542 "dev": true,
1404 "requires": { 1543 "requires": {
1405 "arr-flatten": "1.1.0" 1544 "arr-flatten": "^1.0.1"
1406 } 1545 }
1407 }, 1546 },
1408 "is-extglob": { 1547 "is-extglob": {
@@ -1417,7 +1556,7 @@
1417 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1556 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1418 "dev": true, 1557 "dev": true,
1419 "requires": { 1558 "requires": {
1420 "is-extglob": "1.0.0" 1559 "is-extglob": "^1.0.0"
1421 } 1560 }
1422 }, 1561 },
1423 "kind-of": { 1562 "kind-of": {
@@ -1426,7 +1565,7 @@
1426 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1565 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1427 "dev": true, 1566 "dev": true,
1428 "requires": { 1567 "requires": {
1429 "is-buffer": "1.1.6" 1568 "is-buffer": "^1.1.5"
1430 } 1569 }
1431 } 1570 }
1432 } 1571 }
@@ -1449,7 +1588,7 @@
1449 "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", 1588 "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
1450 "dev": true, 1589 "dev": true,
1451 "requires": { 1590 "requires": {
1452 "mime-db": "1.36.0" 1591 "mime-db": "~1.36.0"
1453 } 1592 }
1454 }, 1593 },
1455 "minimatch": { 1594 "minimatch": {
@@ -1458,7 +1597,7 @@
1458 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1597 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1459 "dev": true, 1598 "dev": true,
1460 "requires": { 1599 "requires": {
1461 "brace-expansion": "1.1.11" 1600 "brace-expansion": "^1.1.7"
1462 } 1601 }
1463 }, 1602 },
1464 "minimist": { 1603 "minimist": {
@@ -1506,12 +1645,12 @@
1506 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1645 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1507 "dev": true, 1646 "dev": true,
1508 "requires": { 1647 "requires": {
1509 "fs.realpath": "1.0.0", 1648 "fs.realpath": "^1.0.0",
1510 "inflight": "1.0.6", 1649 "inflight": "^1.0.4",
1511 "inherits": "2.0.3", 1650 "inherits": "2",
1512 "minimatch": "3.0.4", 1651 "minimatch": "^3.0.4",
1513 "once": "1.4.0", 1652 "once": "^1.3.0",
1514 "path-is-absolute": "1.0.1" 1653 "path-is-absolute": "^1.0.0"
1515 } 1654 }
1516 } 1655 }
1517 } 1656 }
@@ -1528,10 +1667,10 @@
1528 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", 1667 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
1529 "dev": true, 1668 "dev": true,
1530 "requires": { 1669 "requires": {
1531 "array-differ": "1.0.0", 1670 "array-differ": "^1.0.0",
1532 "array-union": "1.0.2", 1671 "array-union": "^1.0.1",
1533 "arrify": "1.0.1", 1672 "arrify": "^1.0.0",
1534 "minimatch": "3.0.4" 1673 "minimatch": "^3.0.0"
1535 } 1674 }
1536 }, 1675 },
1537 "mute-stream": { 1676 "mute-stream": {
@@ -1546,7 +1685,7 @@
1546 "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", 1685 "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=",
1547 "dev": true, 1686 "dev": true,
1548 "requires": { 1687 "requires": {
1549 "is": "3.2.1" 1688 "is": "^3.1.0"
1550 } 1689 }
1551 }, 1690 },
1552 "normalize-path": { 1691 "normalize-path": {
@@ -1555,7 +1694,7 @@
1555 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1694 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1556 "dev": true, 1695 "dev": true,
1557 "requires": { 1696 "requires": {
1558 "remove-trailing-separator": "1.1.0" 1697 "remove-trailing-separator": "^1.0.1"
1559 } 1698 }
1560 }, 1699 },
1561 "nth-check": { 1700 "nth-check": {
@@ -1564,7 +1703,7 @@
1564 "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", 1703 "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
1565 "dev": true, 1704 "dev": true,
1566 "requires": { 1705 "requires": {
1567 "boolbase": "1.0.0" 1706 "boolbase": "~1.0.0"
1568 } 1707 }
1569 }, 1708 },
1570 "oauth-sign": { 1709 "oauth-sign": {
@@ -1585,8 +1724,8 @@
1585 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1724 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
1586 "dev": true, 1725 "dev": true,
1587 "requires": { 1726 "requires": {
1588 "for-own": "0.1.5", 1727 "for-own": "^0.1.4",
1589 "is-extendable": "0.1.1" 1728 "is-extendable": "^0.1.1"
1590 } 1729 }
1591 }, 1730 },
1592 "once": { 1731 "once": {
@@ -1595,7 +1734,7 @@
1595 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1734 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1596 "dev": true, 1735 "dev": true,
1597 "requires": { 1736 "requires": {
1598 "wrappy": "1.0.2" 1737 "wrappy": "1"
1599 } 1738 }
1600 }, 1739 },
1601 "ordered-read-streams": { 1740 "ordered-read-streams": {
@@ -1604,8 +1743,8 @@
1604 "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", 1743 "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
1605 "dev": true, 1744 "dev": true,
1606 "requires": { 1745 "requires": {
1607 "is-stream": "1.1.0", 1746 "is-stream": "^1.0.1",
1608 "readable-stream": "2.3.6" 1747 "readable-stream": "^2.0.1"
1609 } 1748 }
1610 }, 1749 },
1611 "os-homedir": { 1750 "os-homedir": {
@@ -1626,8 +1765,8 @@
1626 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 1765 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1627 "dev": true, 1766 "dev": true,
1628 "requires": { 1767 "requires": {
1629 "os-homedir": "1.0.2", 1768 "os-homedir": "^1.0.0",
1630 "os-tmpdir": "1.0.2" 1769 "os-tmpdir": "^1.0.0"
1631 } 1770 }
1632 }, 1771 },
1633 "parse-glob": { 1772 "parse-glob": {
@@ -1636,10 +1775,10 @@
1636 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1775 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
1637 "dev": true, 1776 "dev": true,
1638 "requires": { 1777 "requires": {
1639 "glob-base": "0.3.0", 1778 "glob-base": "^0.3.0",
1640 "is-dotfile": "1.0.3", 1779 "is-dotfile": "^1.0.0",
1641 "is-extglob": "1.0.0", 1780 "is-extglob": "^1.0.0",
1642 "is-glob": "2.0.1" 1781 "is-glob": "^2.0.0"
1643 }, 1782 },
1644 "dependencies": { 1783 "dependencies": {
1645 "is-extglob": { 1784 "is-extglob": {
@@ -1654,7 +1793,7 @@
1654 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1793 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1655 "dev": true, 1794 "dev": true,
1656 "requires": { 1795 "requires": {
1657 "is-extglob": "1.0.0" 1796 "is-extglob": "^1.0.0"
1658 } 1797 }
1659 } 1798 }
1660 } 1799 }
@@ -1665,7 +1804,7 @@
1665 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", 1804 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=",
1666 "dev": true, 1805 "dev": true,
1667 "requires": { 1806 "requires": {
1668 "semver": "5.5.1" 1807 "semver": "^5.1.0"
1669 } 1808 }
1670 }, 1809 },
1671 "parse5": { 1810 "parse5": {
@@ -1674,7 +1813,7 @@
1674 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", 1813 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
1675 "dev": true, 1814 "dev": true,
1676 "requires": { 1815 "requires": {
1677 "@types/node": "8.10.29" 1816 "@types/node": "*"
1678 } 1817 }
1679 }, 1818 },
1680 "path-dirname": { 1819 "path-dirname": {
@@ -1689,13 +1828,19 @@
1689 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1828 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1690 "dev": true 1829 "dev": true
1691 }, 1830 },
1831 "path-parse": {
1832 "version": "1.0.6",
1833 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1834 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1835 "dev": true
1836 },
1692 "pause-stream": { 1837 "pause-stream": {
1693 "version": "0.0.11", 1838 "version": "0.0.11",
1694 "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 1839 "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1695 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 1840 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1696 "dev": true, 1841 "dev": true,
1697 "requires": { 1842 "requires": {
1698 "through": "2.3.8" 1843 "through": "~2.3"
1699 } 1844 }
1700 }, 1845 },
1701 "pend": { 1846 "pend": {
@@ -1716,11 +1861,11 @@
1716 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", 1861 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
1717 "dev": true, 1862 "dev": true,
1718 "requires": { 1863 "requires": {
1719 "ansi-cyan": "0.1.1", 1864 "ansi-cyan": "^0.1.1",
1720 "ansi-red": "0.1.1", 1865 "ansi-red": "^0.1.1",
1721 "arr-diff": "1.1.0", 1866 "arr-diff": "^1.0.1",
1722 "arr-union": "2.1.0", 1867 "arr-union": "^2.0.1",
1723 "extend-shallow": "1.1.4" 1868 "extend-shallow": "^1.1.2"
1724 } 1869 }
1725 }, 1870 },
1726 "preserve": { 1871 "preserve": {
@@ -1729,6 +1874,12 @@
1729 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", 1874 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
1730 "dev": true 1875 "dev": true
1731 }, 1876 },
1877 "prettier": {
1878 "version": "1.14.3",
1879 "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.14.3.tgz",
1880 "integrity": "sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg==",
1881 "dev": true
1882 },
1732 "process-nextick-args": { 1883 "process-nextick-args": {
1733 "version": "2.0.0", 1884 "version": "2.0.0",
1734 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", 1885 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
@@ -1771,7 +1922,7 @@
1771 "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=", 1922 "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=",
1772 "dev": true, 1923 "dev": true,
1773 "requires": { 1924 "requires": {
1774 "inherits": "2.0.3" 1925 "inherits": "~2.0.0"
1775 } 1926 }
1776 }, 1927 },
1777 "randomatic": { 1928 "randomatic": {
@@ -1780,9 +1931,9 @@
1780 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", 1931 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
1781 "dev": true, 1932 "dev": true,
1782 "requires": { 1933 "requires": {
1783 "is-number": "4.0.0", 1934 "is-number": "^4.0.0",
1784 "kind-of": "6.0.2", 1935 "kind-of": "^6.0.0",
1785 "math-random": "1.0.1" 1936 "math-random": "^1.0.1"
1786 }, 1937 },
1787 "dependencies": { 1938 "dependencies": {
1788 "is-number": { 1939 "is-number": {
@@ -1805,7 +1956,7 @@
1805 "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", 1956 "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
1806 "dev": true, 1957 "dev": true,
1807 "requires": { 1958 "requires": {
1808 "mute-stream": "0.0.7" 1959 "mute-stream": "~0.0.4"
1809 } 1960 }
1810 }, 1961 },
1811 "readable-stream": { 1962 "readable-stream": {
@@ -1814,13 +1965,13 @@
1814 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1965 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1815 "dev": true, 1966 "dev": true,
1816 "requires": { 1967 "requires": {
1817 "core-util-is": "1.0.2", 1968 "core-util-is": "~1.0.0",
1818 "inherits": "2.0.3", 1969 "inherits": "~2.0.3",
1819 "isarray": "1.0.0", 1970 "isarray": "~1.0.0",
1820 "process-nextick-args": "2.0.0", 1971 "process-nextick-args": "~2.0.0",
1821 "safe-buffer": "5.1.2", 1972 "safe-buffer": "~5.1.1",
1822 "string_decoder": "1.1.1", 1973 "string_decoder": "~1.1.1",
1823 "util-deprecate": "1.0.2" 1974 "util-deprecate": "~1.0.1"
1824 } 1975 }
1825 }, 1976 },
1826 "regex-cache": { 1977 "regex-cache": {
@@ -1829,7 +1980,7 @@
1829 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 1980 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
1830 "dev": true, 1981 "dev": true,
1831 "requires": { 1982 "requires": {
1832 "is-equal-shallow": "0.1.3" 1983 "is-equal-shallow": "^0.1.3"
1833 } 1984 }
1834 }, 1985 },
1835 "remove-trailing-separator": { 1986 "remove-trailing-separator": {
@@ -1862,26 +2013,26 @@
1862 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 2013 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
1863 "dev": true, 2014 "dev": true,
1864 "requires": { 2015 "requires": {
1865 "aws-sign2": "0.7.0", 2016 "aws-sign2": "~0.7.0",
1866 "aws4": "1.8.0", 2017 "aws4": "^1.8.0",
1867 "caseless": "0.12.0", 2018 "caseless": "~0.12.0",
1868 "combined-stream": "1.0.6", 2019 "combined-stream": "~1.0.6",
1869 "extend": "3.0.2", 2020 "extend": "~3.0.2",
1870 "forever-agent": "0.6.1", 2021 "forever-agent": "~0.6.1",
1871 "form-data": "2.3.2", 2022 "form-data": "~2.3.2",
1872 "har-validator": "5.1.0", 2023 "har-validator": "~5.1.0",
1873 "http-signature": "1.2.0", 2024 "http-signature": "~1.2.0",
1874 "is-typedarray": "1.0.0", 2025 "is-typedarray": "~1.0.0",
1875 "isstream": "0.1.2", 2026 "isstream": "~0.1.2",
1876 "json-stringify-safe": "5.0.1", 2027 "json-stringify-safe": "~5.0.1",
1877 "mime-types": "2.1.20", 2028 "mime-types": "~2.1.19",
1878 "oauth-sign": "0.9.0", 2029 "oauth-sign": "~0.9.0",
1879 "performance-now": "2.1.0", 2030 "performance-now": "^2.1.0",
1880 "qs": "6.5.2", 2031 "qs": "~6.5.2",
1881 "safe-buffer": "5.1.2", 2032 "safe-buffer": "^5.1.2",
1882 "tough-cookie": "2.4.3", 2033 "tough-cookie": "~2.4.3",
1883 "tunnel-agent": "0.6.0", 2034 "tunnel-agent": "^0.6.0",
1884 "uuid": "3.3.2" 2035 "uuid": "^3.3.2"
1885 } 2036 }
1886 }, 2037 },
1887 "requires-port": { 2038 "requires-port": {
@@ -1890,13 +2041,22 @@
1890 "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 2041 "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
1891 "dev": true 2042 "dev": true
1892 }, 2043 },
2044 "resolve": {
2045 "version": "1.8.1",
2046 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
2047 "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
2048 "dev": true,
2049 "requires": {
2050 "path-parse": "^1.0.5"
2051 }
2052 },
1893 "rimraf": { 2053 "rimraf": {
1894 "version": "2.6.2", 2054 "version": "2.6.2",
1895 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 2055 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1896 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 2056 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
1897 "dev": true, 2057 "dev": true,
1898 "requires": { 2058 "requires": {
1899 "glob": "7.1.3" 2059 "glob": "^7.0.5"
1900 } 2060 }
1901 }, 2061 },
1902 "safe-buffer": { 2062 "safe-buffer": {
@@ -1929,8 +2089,8 @@
1929 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", 2089 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
1930 "dev": true, 2090 "dev": true,
1931 "requires": { 2091 "requires": {
1932 "buffer-from": "1.1.1", 2092 "buffer-from": "^1.0.0",
1933 "source-map": "0.6.1" 2093 "source-map": "^0.6.0"
1934 } 2094 }
1935 }, 2095 },
1936 "split": { 2096 "split": {
@@ -1939,7 +2099,7 @@
1939 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 2099 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
1940 "dev": true, 2100 "dev": true,
1941 "requires": { 2101 "requires": {
1942 "through": "2.3.8" 2102 "through": "2"
1943 } 2103 }
1944 }, 2104 },
1945 "sprintf-js": { 2105 "sprintf-js": {
@@ -1954,15 +2114,15 @@
1954 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", 2114 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
1955 "dev": true, 2115 "dev": true,
1956 "requires": { 2116 "requires": {
1957 "asn1": "0.2.4", 2117 "asn1": "~0.2.3",
1958 "assert-plus": "1.0.0", 2118 "assert-plus": "^1.0.0",
1959 "bcrypt-pbkdf": "1.0.2", 2119 "bcrypt-pbkdf": "^1.0.0",
1960 "dashdash": "1.14.1", 2120 "dashdash": "^1.12.0",
1961 "ecc-jsbn": "0.1.2", 2121 "ecc-jsbn": "~0.1.1",
1962 "getpass": "0.1.7", 2122 "getpass": "^0.1.1",
1963 "jsbn": "0.1.1", 2123 "jsbn": "~0.1.0",
1964 "safer-buffer": "2.1.2", 2124 "safer-buffer": "^2.0.2",
1965 "tweetnacl": "0.14.5" 2125 "tweetnacl": "~0.14.0"
1966 } 2126 }
1967 }, 2127 },
1968 "stat-mode": { 2128 "stat-mode": {
@@ -1977,8 +2137,8 @@
1977 "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", 2137 "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
1978 "dev": true, 2138 "dev": true,
1979 "requires": { 2139 "requires": {
1980 "duplexer": "0.1.1", 2140 "duplexer": "~0.1.1",
1981 "through": "2.3.8" 2141 "through": "~2.3.4"
1982 } 2142 }
1983 }, 2143 },
1984 "stream-shift": { 2144 "stream-shift": {
@@ -1993,7 +2153,7 @@
1993 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==", 2153 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==",
1994 "dev": true, 2154 "dev": true,
1995 "requires": { 2155 "requires": {
1996 "readable-stream": "2.3.6" 2156 "readable-stream": "^2.0.2"
1997 } 2157 }
1998 }, 2158 },
1999 "streamifier": { 2159 "streamifier": {
@@ -2008,7 +2168,16 @@
2008 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2168 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2009 "dev": true, 2169 "dev": true,
2010 "requires": { 2170 "requires": {
2011 "safe-buffer": "5.1.2" 2171 "safe-buffer": "~5.1.0"
2172 }
2173 },
2174 "strip-ansi": {
2175 "version": "3.0.1",
2176 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2177 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2178 "dev": true,
2179 "requires": {
2180 "ansi-regex": "^2.0.0"
2012 } 2181 }
2013 }, 2182 },
2014 "strip-bom": { 2183 "strip-bom": {
@@ -2017,7 +2186,7 @@
2017 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 2186 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
2018 "dev": true, 2187 "dev": true,
2019 "requires": { 2188 "requires": {
2020 "is-utf8": "0.2.1" 2189 "is-utf8": "^0.2.0"
2021 } 2190 }
2022 }, 2191 },
2023 "strip-bom-stream": { 2192 "strip-bom-stream": {
@@ -2026,8 +2195,8 @@
2026 "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", 2195 "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
2027 "dev": true, 2196 "dev": true,
2028 "requires": { 2197 "requires": {
2029 "first-chunk-stream": "1.0.0", 2198 "first-chunk-stream": "^1.0.0",
2030 "strip-bom": "2.0.0" 2199 "strip-bom": "^2.0.0"
2031 } 2200 }
2032 }, 2201 },
2033 "supports-color": { 2202 "supports-color": {
@@ -2036,7 +2205,7 @@
2036 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", 2205 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2037 "dev": true, 2206 "dev": true,
2038 "requires": { 2207 "requires": {
2039 "has-flag": "2.0.0" 2208 "has-flag": "^2.0.0"
2040 } 2209 }
2041 }, 2210 },
2042 "tar": { 2211 "tar": {
@@ -2045,9 +2214,9 @@
2045 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", 2214 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2046 "dev": true, 2215 "dev": true,
2047 "requires": { 2216 "requires": {
2048 "block-stream": "0.0.9", 2217 "block-stream": "*",
2049 "fstream": "1.0.11", 2218 "fstream": "^1.0.2",
2050 "inherits": "2.0.3" 2219 "inherits": "2"
2051 } 2220 }
2052 }, 2221 },
2053 "through": { 2222 "through": {
@@ -2062,8 +2231,8 @@
2062 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 2231 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
2063 "dev": true, 2232 "dev": true,
2064 "requires": { 2233 "requires": {
2065 "readable-stream": "2.3.6", 2234 "readable-stream": "^2.1.5",
2066 "xtend": "4.0.1" 2235 "xtend": "~4.0.1"
2067 } 2236 }
2068 }, 2237 },
2069 "through2-filter": { 2238 "through2-filter": {
@@ -2072,8 +2241,8 @@
2072 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", 2241 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
2073 "dev": true, 2242 "dev": true,
2074 "requires": { 2243 "requires": {
2075 "through2": "2.0.3", 2244 "through2": "~2.0.0",
2076 "xtend": "4.0.1" 2245 "xtend": "~4.0.0"
2077 } 2246 }
2078 }, 2247 },
2079 "tmp": { 2248 "tmp": {
@@ -2082,7 +2251,7 @@
2082 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", 2251 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
2083 "dev": true, 2252 "dev": true,
2084 "requires": { 2253 "requires": {
2085 "os-tmpdir": "1.0.2" 2254 "os-tmpdir": "~1.0.1"
2086 } 2255 }
2087 }, 2256 },
2088 "to-absolute-glob": { 2257 "to-absolute-glob": {
@@ -2091,7 +2260,7 @@
2091 "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", 2260 "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
2092 "dev": true, 2261 "dev": true,
2093 "requires": { 2262 "requires": {
2094 "extend-shallow": "2.0.1" 2263 "extend-shallow": "^2.0.1"
2095 }, 2264 },
2096 "dependencies": { 2265 "dependencies": {
2097 "extend-shallow": { 2266 "extend-shallow": {
@@ -2100,7 +2269,7 @@
2100 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 2269 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2101 "dev": true, 2270 "dev": true,
2102 "requires": { 2271 "requires": {
2103 "is-extendable": "0.1.1" 2272 "is-extendable": "^0.1.0"
2104 } 2273 }
2105 } 2274 }
2106 } 2275 }
@@ -2111,8 +2280,49 @@
2111 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 2280 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
2112 "dev": true, 2281 "dev": true,
2113 "requires": { 2282 "requires": {
2114 "psl": "1.1.29", 2283 "psl": "^1.1.24",
2115 "punycode": "1.4.1" 2284 "punycode": "^1.4.1"
2285 }
2286 },
2287 "tslib": {
2288 "version": "1.9.3",
2289 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
2290 "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
2291 "dev": true
2292 },
2293 "tslint": {
2294 "version": "5.11.0",
2295 "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.11.0.tgz",
2296 "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
2297 "dev": true,
2298 "requires": {
2299 "babel-code-frame": "^6.22.0",
2300 "builtin-modules": "^1.1.1",
2301 "chalk": "^2.3.0",
2302 "commander": "^2.12.1",
2303 "diff": "^3.2.0",
2304 "glob": "^7.1.1",
2305 "js-yaml": "^3.7.0",
2306 "minimatch": "^3.0.4",
2307 "resolve": "^1.3.2",
2308 "semver": "^5.3.0",
2309 "tslib": "^1.8.0",
2310 "tsutils": "^2.27.2"
2311 }
2312 },
2313 "tslint-config-prettier": {
2314 "version": "1.15.0",
2315 "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.15.0.tgz",
2316 "integrity": "sha512-06CgrHJxJmNYVgsmeMoa1KXzQRoOdvfkqnJth6XUkNeOz707qxN0WfxfhYwhL5kXHHbYJRby2bqAPKwThlZPhw==",
2317 "dev": true
2318 },
2319 "tsutils": {
2320 "version": "2.29.0",
2321 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
2322 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
2323 "dev": true,
2324 "requires": {
2325 "tslib": "^1.8.1"
2116 } 2326 }
2117 }, 2327 },
2118 "tunnel": { 2328 "tunnel": {
@@ -2127,7 +2337,7 @@
2127 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2337 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2128 "dev": true, 2338 "dev": true,
2129 "requires": { 2339 "requires": {
2130 "safe-buffer": "5.1.2" 2340 "safe-buffer": "^5.0.1"
2131 } 2341 }
2132 }, 2342 },
2133 "tweetnacl": { 2343 "tweetnacl": {
@@ -2179,8 +2389,8 @@
2179 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", 2389 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
2180 "dev": true, 2390 "dev": true,
2181 "requires": { 2391 "requires": {
2182 "json-stable-stringify": "1.0.1", 2392 "json-stable-stringify": "^1.0.0",
2183 "through2-filter": "2.0.0" 2393 "through2-filter": "^2.0.0"
2184 } 2394 }
2185 }, 2395 },
2186 "url-join": { 2396 "url-join": {
@@ -2195,8 +2405,8 @@
2195 "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", 2405 "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==",
2196 "dev": true, 2406 "dev": true,
2197 "requires": { 2407 "requires": {
2198 "querystringify": "2.0.0", 2408 "querystringify": "^2.0.0",
2199 "requires-port": "1.0.0" 2409 "requires-port": "^1.0.0"
2200 } 2410 }
2201 }, 2411 },
2202 "util-deprecate": { 2412 "util-deprecate": {
@@ -2223,9 +2433,9 @@
2223 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2433 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2224 "dev": true, 2434 "dev": true,
2225 "requires": { 2435 "requires": {
2226 "assert-plus": "1.0.0", 2436 "assert-plus": "^1.0.0",
2227 "core-util-is": "1.0.2", 2437 "core-util-is": "1.0.2",
2228 "extsprintf": "1.3.0" 2438 "extsprintf": "^1.2.0"
2229 } 2439 }
2230 }, 2440 },
2231 "vinyl": { 2441 "vinyl": {
@@ -2234,8 +2444,8 @@
2234 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", 2444 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
2235 "dev": true, 2445 "dev": true,
2236 "requires": { 2446 "requires": {
2237 "clone": "0.2.0", 2447 "clone": "^0.2.0",
2238 "clone-stats": "0.0.1" 2448 "clone-stats": "^0.0.1"
2239 } 2449 }
2240 }, 2450 },
2241 "vinyl-fs": { 2451 "vinyl-fs": {
@@ -2244,23 +2454,23 @@
2244 "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", 2454 "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
2245 "dev": true, 2455 "dev": true,
2246 "requires": { 2456 "requires": {
2247 "duplexify": "3.6.0", 2457 "duplexify": "^3.2.0",
2248 "glob-stream": "5.3.5", 2458 "glob-stream": "^5.3.2",
2249 "graceful-fs": "4.1.11", 2459 "graceful-fs": "^4.0.0",
2250 "gulp-sourcemaps": "1.6.0", 2460 "gulp-sourcemaps": "1.6.0",
2251 "is-valid-glob": "0.3.0", 2461 "is-valid-glob": "^0.3.0",
2252 "lazystream": "1.0.0", 2462 "lazystream": "^1.0.0",
2253 "lodash.isequal": "4.5.0", 2463 "lodash.isequal": "^4.0.0",
2254 "merge-stream": "1.0.1", 2464 "merge-stream": "^1.0.0",
2255 "mkdirp": "0.5.1", 2465 "mkdirp": "^0.5.0",
2256 "object-assign": "4.1.1", 2466 "object-assign": "^4.0.0",
2257 "readable-stream": "2.3.6", 2467 "readable-stream": "^2.0.4",
2258 "strip-bom": "2.0.0", 2468 "strip-bom": "^2.0.0",
2259 "strip-bom-stream": "1.0.0", 2469 "strip-bom-stream": "^1.0.0",
2260 "through2": "2.0.3", 2470 "through2": "^2.0.0",
2261 "through2-filter": "2.0.0", 2471 "through2-filter": "^2.0.0",
2262 "vali-date": "1.0.0", 2472 "vali-date": "^1.0.0",
2263 "vinyl": "1.2.0" 2473 "vinyl": "^1.0.0"
2264 }, 2474 },
2265 "dependencies": { 2475 "dependencies": {
2266 "clone": { 2476 "clone": {
@@ -2281,8 +2491,8 @@
2281 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", 2491 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
2282 "dev": true, 2492 "dev": true,
2283 "requires": { 2493 "requires": {
2284 "clone": "1.0.4", 2494 "clone": "^1.0.0",
2285 "clone-stats": "0.0.1", 2495 "clone-stats": "^0.0.1",
2286 "replace-ext": "0.0.1" 2496 "replace-ext": "0.0.1"
2287 } 2497 }
2288 } 2498 }
@@ -2294,33 +2504,33 @@
2294 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=", 2504 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=",
2295 "dev": true, 2505 "dev": true,
2296 "requires": { 2506 "requires": {
2297 "through2": "2.0.3", 2507 "through2": "^2.0.3",
2298 "vinyl": "0.4.6" 2508 "vinyl": "^0.4.3"
2299 } 2509 }
2300 }, 2510 },
2301 "vsce": { 2511 "vsce": {
2302 "version": "1.48.0", 2512 "version": "1.51.1",
2303 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.48.0.tgz", 2513 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.51.1.tgz",
2304 "integrity": "sha512-1qJn6QLRTu26FIvvMbK/gzHLLdxJVTg9CUTSnCjJHObCCF5CQ0F3FUv7t+5cT7i0J5v5YljrsRY09u7dPBcEnA==", 2514 "integrity": "sha512-Hf2HE9O/MRQHxUUgWHAm7mOkz0K5swuF2smaE/sP7+OWp/5DdIPFwmLEYCCZHxG25l3GBRoO0dAL8S5w//et+g==",
2305 "dev": true, 2515 "dev": true,
2306 "requires": { 2516 "requires": {
2307 "cheerio": "1.0.0-rc.2", 2517 "cheerio": "^1.0.0-rc.1",
2308 "commander": "2.18.0", 2518 "commander": "^2.8.1",
2309 "denodeify": "1.2.1", 2519 "denodeify": "^1.2.1",
2310 "glob": "7.1.3", 2520 "glob": "^7.0.6",
2311 "lodash": "4.17.11", 2521 "lodash": "^4.17.10",
2312 "markdown-it": "8.4.2", 2522 "markdown-it": "^8.3.1",
2313 "mime": "1.6.0", 2523 "mime": "^1.3.4",
2314 "minimatch": "3.0.4", 2524 "minimatch": "^3.0.3",
2315 "osenv": "0.1.5", 2525 "osenv": "^0.1.3",
2316 "parse-semver": "1.1.1", 2526 "parse-semver": "^1.1.1",
2317 "read": "1.0.7", 2527 "read": "^1.0.7",
2318 "semver": "5.5.1", 2528 "semver": "^5.1.0",
2319 "tmp": "0.0.29", 2529 "tmp": "0.0.29",
2320 "url-join": "1.1.0", 2530 "url-join": "^1.1.0",
2321 "vso-node-api": "6.1.2-preview", 2531 "vso-node-api": "6.1.2-preview",
2322 "yauzl": "2.10.0", 2532 "yauzl": "^2.3.1",
2323 "yazl": "2.4.3" 2533 "yazl": "^2.2.2"
2324 } 2534 }
2325 }, 2535 },
2326 "vscode": { 2536 "vscode": {
@@ -2329,20 +2539,20 @@
2329 "integrity": "sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A==", 2539 "integrity": "sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A==",
2330 "dev": true, 2540 "dev": true,
2331 "requires": { 2541 "requires": {
2332 "glob": "7.1.3", 2542 "glob": "^7.1.2",
2333 "gulp-chmod": "2.0.0", 2543 "gulp-chmod": "^2.0.0",
2334 "gulp-filter": "5.1.0", 2544 "gulp-filter": "^5.0.1",
2335 "gulp-gunzip": "1.0.0", 2545 "gulp-gunzip": "1.0.0",
2336 "gulp-remote-src-vscode": "0.5.0", 2546 "gulp-remote-src-vscode": "^0.5.0",
2337 "gulp-symdest": "1.1.0", 2547 "gulp-symdest": "^1.1.0",
2338 "gulp-untar": "0.0.7", 2548 "gulp-untar": "^0.0.7",
2339 "gulp-vinyl-zip": "2.1.0", 2549 "gulp-vinyl-zip": "^2.1.0",
2340 "mocha": "4.1.0", 2550 "mocha": "^4.0.1",
2341 "request": "2.88.0", 2551 "request": "^2.83.0",
2342 "semver": "5.5.1", 2552 "semver": "^5.4.1",
2343 "source-map-support": "0.5.9", 2553 "source-map-support": "^0.5.0",
2344 "url-parse": "1.4.3", 2554 "url-parse": "^1.4.3",
2345 "vinyl-source-stream": "1.1.2" 2555 "vinyl-source-stream": "^1.1.0"
2346 } 2556 }
2347 }, 2557 },
2348 "vscode-jsonrpc": { 2558 "vscode-jsonrpc": {
@@ -2355,7 +2565,7 @@
2355 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.2.tgz", 2565 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.2.tgz",
2356 "integrity": "sha512-9TUzsg1UM6n1UEyPlWbDf7tK1wJAK7UGFRmGDN8sz4KmbbDiVRh6YicaB/5oRSVTpuV47PdJpYlOl3SJ0RiK1Q==", 2566 "integrity": "sha512-9TUzsg1UM6n1UEyPlWbDf7tK1wJAK7UGFRmGDN8sz4KmbbDiVRh6YicaB/5oRSVTpuV47PdJpYlOl3SJ0RiK1Q==",
2357 "requires": { 2567 "requires": {
2358 "vscode-languageserver-protocol": "3.13.0" 2568 "vscode-languageserver-protocol": "^3.10.3"
2359 } 2569 }
2360 }, 2570 },
2361 "vscode-languageserver-protocol": { 2571 "vscode-languageserver-protocol": {
@@ -2363,7 +2573,7 @@
2363 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.13.0.tgz", 2573 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.13.0.tgz",
2364 "integrity": "sha512-2ZGKwI+P2ovQll2PGAp+2UfJH+FK9eait86VBUdkPd9HRlm8e58aYT9pV/NYanHOcp3pL6x2yTLVCFMcTer0mg==", 2574 "integrity": "sha512-2ZGKwI+P2ovQll2PGAp+2UfJH+FK9eait86VBUdkPd9HRlm8e58aYT9pV/NYanHOcp3pL6x2yTLVCFMcTer0mg==",
2365 "requires": { 2575 "requires": {
2366 "vscode-jsonrpc": "4.0.0", 2576 "vscode-jsonrpc": "^4.0.0",
2367 "vscode-languageserver-types": "3.13.0" 2577 "vscode-languageserver-types": "3.13.0"
2368 } 2578 }
2369 }, 2579 },
@@ -2378,10 +2588,10 @@
2378 "integrity": "sha1-qrNUbfJFHs2JTgcbuZtd8Zxfp48=", 2588 "integrity": "sha1-qrNUbfJFHs2JTgcbuZtd8Zxfp48=",
2379 "dev": true, 2589 "dev": true,
2380 "requires": { 2590 "requires": {
2381 "q": "1.5.1", 2591 "q": "^1.0.1",
2382 "tunnel": "0.0.4", 2592 "tunnel": "0.0.4",
2383 "typed-rest-client": "0.9.0", 2593 "typed-rest-client": "^0.9.0",
2384 "underscore": "1.9.1" 2594 "underscore": "^1.8.3"
2385 } 2595 }
2386 }, 2596 },
2387 "wrappy": { 2597 "wrappy": {
@@ -2402,8 +2612,8 @@
2402 "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 2612 "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
2403 "dev": true, 2613 "dev": true,
2404 "requires": { 2614 "requires": {
2405 "buffer-crc32": "0.2.13", 2615 "buffer-crc32": "~0.2.3",
2406 "fd-slicer": "1.1.0" 2616 "fd-slicer": "~1.1.0"
2407 } 2617 }
2408 }, 2618 },
2409 "yazl": { 2619 "yazl": {
@@ -2412,7 +2622,7 @@
2412 "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=", 2622 "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=",
2413 "dev": true, 2623 "dev": true,
2414 "requires": { 2624 "requires": {
2415 "buffer-crc32": "0.2.13" 2625 "buffer-crc32": "~0.2.3"
2416 } 2626 }
2417 } 2627 }
2418 } 2628 }
diff --git a/editors/code/package.json b/editors/code/package.json
index 9f05fe91a..cd07e3be9 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -17,17 +17,27 @@
17 "vscode:prepublish": "npm run compile", 17 "vscode:prepublish": "npm run compile",
18 "compile": "tsc -p ./", 18 "compile": "tsc -p ./",
19 "watch": "tsc -watch -p ./", 19 "watch": "tsc -watch -p ./",
20 "postinstall": "node ./node_modules/vscode/bin/install" 20 "postinstall": "node ./node_modules/vscode/bin/install",
21 "lint": "tslint --project .",
22 "prettier": "prettier **/*.{json,ts}",
23 "travis": "npm run compile && npm run lint && npm run prettier --list-different"
24 },
25 "prettier": {
26 "tabWidth": 4,
27 "singleQuote": true
21 }, 28 },
22 "dependencies": { 29 "dependencies": {
23 "vscode-languageclient": "^4.4.0" 30 "vscode-languageclient": "^4.4.0"
24 }, 31 },
25 "devDependencies": { 32 "devDependencies": {
33 "@types/mocha": "^2.2.42",
34 "@types/node": "^8.10.34",
35 "prettier": "^1.14.3",
36 "tslint": "^5.11.0",
37 "tslint-config-prettier": "^1.15.0",
26 "typescript": "^2.6.1", 38 "typescript": "^2.6.1",
27 "vscode": "^1.1.21", 39 "vsce": "^1.51.1",
28 "vsce": "^1.42.0", 40 "vscode": "^1.1.21"
29 "@types/node": "^8.10.25",
30 "@types/mocha": "^2.2.42"
31 }, 41 },
32 "activationEvents": [ 42 "activationEvents": [
33 "onLanguage:rust" 43 "onLanguage:rust"
diff --git a/editors/code/src/commands/apply_source_change.ts b/editors/code/src/commands/apply_source_change.ts
index 67765e5a3..cf921e3ac 100644
--- a/editors/code/src/commands/apply_source_change.ts
+++ b/editors/code/src/commands/apply_source_change.ts
@@ -20,8 +20,12 @@ export interface SourceChange {
20export async function handle(change: SourceChange) { 20export async function handle(change: SourceChange) {
21 const wsEdit = new vscode.WorkspaceEdit(); 21 const wsEdit = new vscode.WorkspaceEdit();
22 for (const sourceEdit of change.sourceFileEdits) { 22 for (const sourceEdit of change.sourceFileEdits) {
23 const uri = Server.client.protocol2CodeConverter.asUri(sourceEdit.textDocument.uri); 23 const uri = Server.client.protocol2CodeConverter.asUri(
24 const edits = Server.client.protocol2CodeConverter.asTextEdits(sourceEdit.edits); 24 sourceEdit.textDocument.uri
25 );
26 const edits = Server.client.protocol2CodeConverter.asTextEdits(
27 sourceEdit.edits
28 );
25 wsEdit.set(uri, edits); 29 wsEdit.set(uri, edits);
26 } 30 }
27 let created; 31 let created;
@@ -48,11 +52,19 @@ export async function handle(change: SourceChange) {
48 const doc = await vscode.workspace.openTextDocument(toOpen); 52 const doc = await vscode.workspace.openTextDocument(toOpen);
49 await vscode.window.showTextDocument(doc); 53 await vscode.window.showTextDocument(doc);
50 } else if (toReveal) { 54 } else if (toReveal) {
51 const uri = Server.client.protocol2CodeConverter.asUri(toReveal.textDocument.uri); 55 const uri = Server.client.protocol2CodeConverter.asUri(
52 const position = Server.client.protocol2CodeConverter.asPosition(toReveal.position); 56 toReveal.textDocument.uri
57 );
58 const position = Server.client.protocol2CodeConverter.asPosition(
59 toReveal.position
60 );
53 const editor = vscode.window.activeTextEditor; 61 const editor = vscode.window.activeTextEditor;
54 if (!editor || editor.document.uri.toString() !== uri.toString()) { return; } 62 if (!editor || editor.document.uri.toString() !== uri.toString()) {
55 if (!editor.selection.isEmpty) { return; } 63 return;
64 }
65 if (!editor.selection.isEmpty) {
66 return;
67 }
56 editor!.selection = new vscode.Selection(position, position); 68 editor!.selection = new vscode.Selection(position, position);
57 } 69 }
58} 70}
diff --git a/editors/code/src/commands/extend_selection.ts b/editors/code/src/commands/extend_selection.ts
index cdc3d10fb..0ee6bd11d 100644
--- a/editors/code/src/commands/extend_selection.ts
+++ b/editors/code/src/commands/extend_selection.ts
@@ -14,14 +14,19 @@ interface ExtendSelectionResult {
14 14
15export async function handle() { 15export async function handle() {
16 const editor = vscode.window.activeTextEditor; 16 const editor = vscode.window.activeTextEditor;
17 if (editor == null || editor.document.languageId !== 'rust') { return; } 17 if (editor == null || editor.document.languageId !== 'rust') {
18 return;
19 }
18 const request: ExtendSelectionParams = { 20 const request: ExtendSelectionParams = {
19 selections: editor.selections.map((s) => { 21 selections: editor.selections.map(s => {
20 return Server.client.code2ProtocolConverter.asRange(s); 22 return Server.client.code2ProtocolConverter.asRange(s);
21 }), 23 }),
22 textDocument: { uri: editor.document.uri.toString() }, 24 textDocument: { uri: editor.document.uri.toString() }
23 }; 25 };
24 const response = await Server.client.sendRequest<ExtendSelectionResult>('m/extendSelection', request); 26 const response = await Server.client.sendRequest<ExtendSelectionResult>(
27 'm/extendSelection',
28 request
29 );
25 editor.selections = response.selections.map((range: Range) => { 30 editor.selections = response.selections.map((range: Range) => {
26 const r = Server.client.protocol2CodeConverter.asRange(range); 31 const r = Server.client.protocol2CodeConverter.asRange(range);
27 return new vscode.Selection(r.start, r.end); 32 return new vscode.Selection(r.start, r.end);
diff --git a/editors/code/src/commands/index.ts b/editors/code/src/commands/index.ts
index dfdcd6454..2496c7ff8 100644
--- a/editors/code/src/commands/index.ts
+++ b/editors/code/src/commands/index.ts
@@ -13,5 +13,5 @@ export {
13 matchingBrace, 13 matchingBrace,
14 parentModule, 14 parentModule,
15 runnables, 15 runnables,
16 syntaxTree, 16 syntaxTree
17}; 17};
diff --git a/editors/code/src/commands/join_lines.ts b/editors/code/src/commands/join_lines.ts
index 526b698cc..27d263b8a 100644
--- a/editors/code/src/commands/join_lines.ts
+++ b/editors/code/src/commands/join_lines.ts
@@ -2,7 +2,10 @@ import * as vscode from 'vscode';
2 2
3import { Range, TextDocumentIdentifier } from 'vscode-languageclient'; 3import { Range, TextDocumentIdentifier } from 'vscode-languageclient';
4import { Server } from '../server'; 4import { Server } from '../server';
5import { handle as applySourceChange, SourceChange } from './apply_source_change'; 5import {
6 handle as applySourceChange,
7 SourceChange
8} from './apply_source_change';
6 9
7interface JoinLinesParams { 10interface JoinLinesParams {
8 textDocument: TextDocumentIdentifier; 11 textDocument: TextDocumentIdentifier;
@@ -11,11 +14,16 @@ interface JoinLinesParams {
11 14
12export async function handle() { 15export async function handle() {
13 const editor = vscode.window.activeTextEditor; 16 const editor = vscode.window.activeTextEditor;
14 if (editor == null || editor.document.languageId !== 'rust') { return; } 17 if (editor == null || editor.document.languageId !== 'rust') {
18 return;
19 }
15 const request: JoinLinesParams = { 20 const request: JoinLinesParams = {
16 range: Server.client.code2ProtocolConverter.asRange(editor.selection), 21 range: Server.client.code2ProtocolConverter.asRange(editor.selection),
17 textDocument: { uri: editor.document.uri.toString() }, 22 textDocument: { uri: editor.document.uri.toString() }
18 }; 23 };
19 const change = await Server.client.sendRequest<SourceChange>('m/joinLines', request); 24 const change = await Server.client.sendRequest<SourceChange>(
25 'm/joinLines',
26 request
27 );
20 await applySourceChange(change); 28 await applySourceChange(change);
21} 29}
diff --git a/editors/code/src/commands/matching_brace.ts b/editors/code/src/commands/matching_brace.ts
index a80446a8f..5e6638e82 100644
--- a/editors/code/src/commands/matching_brace.ts
+++ b/editors/code/src/commands/matching_brace.ts
@@ -10,16 +10,23 @@ interface FindMatchingBraceParams {
10 10
11export async function handle() { 11export async function handle() {
12 const editor = vscode.window.activeTextEditor; 12 const editor = vscode.window.activeTextEditor;
13 if (editor == null || editor.document.languageId !== 'rust') { return; } 13 if (editor == null || editor.document.languageId !== 'rust') {
14 return;
15 }
14 const request: FindMatchingBraceParams = { 16 const request: FindMatchingBraceParams = {
15 textDocument: { uri: editor.document.uri.toString() }, 17 textDocument: { uri: editor.document.uri.toString() },
16 offsets: editor.selections.map((s) => { 18 offsets: editor.selections.map(s => {
17 return Server.client.code2ProtocolConverter.asPosition(s.active); 19 return Server.client.code2ProtocolConverter.asPosition(s.active);
18 }), 20 })
19 }; 21 };
20 const response = await Server.client.sendRequest<Position[]>('m/findMatchingBrace', request); 22 const response = await Server.client.sendRequest<Position[]>(
23 'm/findMatchingBrace',
24 request
25 );
21 editor.selections = editor.selections.map((sel, idx) => { 26 editor.selections = editor.selections.map((sel, idx) => {
22 const active = Server.client.protocol2CodeConverter.asPosition(response[idx]); 27 const active = Server.client.protocol2CodeConverter.asPosition(
28 response[idx]
29 );
23 const anchor = sel.isEmpty ? active : sel.anchor; 30 const anchor = sel.isEmpty ? active : sel.anchor;
24 return new vscode.Selection(anchor, active); 31 return new vscode.Selection(anchor, active);
25 }); 32 });
diff --git a/editors/code/src/commands/parent_module.ts b/editors/code/src/commands/parent_module.ts
index d66fb3026..4bb92eb96 100644
--- a/editors/code/src/commands/parent_module.ts
+++ b/editors/code/src/commands/parent_module.ts
@@ -5,13 +5,20 @@ import { Server } from '../server';
5 5
6export async function handle() { 6export async function handle() {
7 const editor = vscode.window.activeTextEditor; 7 const editor = vscode.window.activeTextEditor;
8 if (editor == null || editor.document.languageId !== 'rust') { return; } 8 if (editor == null || editor.document.languageId !== 'rust') {
9 return;
10 }
9 const request: TextDocumentIdentifier = { 11 const request: TextDocumentIdentifier = {
10 uri: editor.document.uri.toString(), 12 uri: editor.document.uri.toString()
11 }; 13 };
12 const response = await Server.client.sendRequest<Location[]>('m/parentModule', request); 14 const response = await Server.client.sendRequest<Location[]>(
15 'm/parentModule',
16 request
17 );
13 const loc = response[0]; 18 const loc = response[0];
14 if (loc == null) { return; } 19 if (loc == null) {
20 return;
21 }
15 const uri = Server.client.protocol2CodeConverter.asUri(loc.uri); 22 const uri = Server.client.protocol2CodeConverter.asUri(loc.uri);
16 const range = Server.client.protocol2CodeConverter.asRange(loc.range); 23 const range = Server.client.protocol2CodeConverter.asRange(loc.range);
17 24
diff --git a/editors/code/src/commands/runnables.ts b/editors/code/src/commands/runnables.ts
index 40f590dce..c234bfaec 100644
--- a/editors/code/src/commands/runnables.ts
+++ b/editors/code/src/commands/runnables.ts
@@ -41,39 +41,56 @@ function createTask(spec: Runnable): vscode.Task {
41 label: 'cargo', 41 label: 'cargo',
42 command: spec.bin, 42 command: spec.bin,
43 args: spec.args, 43 args: spec.args,
44 env: spec.env, 44 env: spec.env
45 }; 45 };
46 46
47 const execCmd = `${definition.command} ${definition.args.join(' ')}`; 47 const execCmd = `${definition.command} ${definition.args.join(' ')}`;
48 const execOption: vscode.ShellExecutionOptions = { 48 const execOption: vscode.ShellExecutionOptions = {
49 cwd: '.', 49 cwd: '.',
50 env: definition.env, 50 env: definition.env
51 }; 51 };
52 const exec = new vscode.ShellExecution(`clear; ${execCmd}`, execOption); 52 const exec = new vscode.ShellExecution(`clear; ${execCmd}`, execOption);
53 53
54 const f = vscode.workspace.workspaceFolders![0]; 54 const f = vscode.workspace.workspaceFolders![0];
55 const t = new vscode.Task(definition, f, definition.label, TASK_SOURCE, exec, ['$rustc']); 55 const t = new vscode.Task(
56 definition,
57 f,
58 definition.label,
59 TASK_SOURCE,
60 exec,
61 ['$rustc']
62 );
56 return t; 63 return t;
57} 64}
58 65
59let prevRunnable: RunnableQuickPick | undefined; 66let prevRunnable: RunnableQuickPick | undefined;
60export async function handle() { 67export async function handle() {
61 const editor = vscode.window.activeTextEditor; 68 const editor = vscode.window.activeTextEditor;
62 if (editor == null || editor.document.languageId !== 'rust') { return; } 69 if (editor == null || editor.document.languageId !== 'rust') {
70 return;
71 }
63 const textDocument: lc.TextDocumentIdentifier = { 72 const textDocument: lc.TextDocumentIdentifier = {
64 uri: editor.document.uri.toString(), 73 uri: editor.document.uri.toString()
65 }; 74 };
66 const params: RunnablesParams = { 75 const params: RunnablesParams = {
67 textDocument, 76 textDocument,
68 position: Server.client.code2ProtocolConverter.asPosition(editor.selection.active), 77 position: Server.client.code2ProtocolConverter.asPosition(
78 editor.selection.active
79 )
69 }; 80 };
70 const runnables = await Server.client.sendRequest<Runnable[]>('m/runnables', params); 81 const runnables = await Server.client.sendRequest<Runnable[]>(
82 'm/runnables',
83 params
84 );
71 const items: RunnableQuickPick[] = []; 85 const items: RunnableQuickPick[] = [];
72 if (prevRunnable) { 86 if (prevRunnable) {
73 items.push(prevRunnable); 87 items.push(prevRunnable);
74 } 88 }
75 for (const r of runnables) { 89 for (const r of runnables) {
76 if (prevRunnable && JSON.stringify(prevRunnable.runnable) === JSON.stringify(r)) { 90 if (
91 prevRunnable &&
92 JSON.stringify(prevRunnable.runnable) === JSON.stringify(r)
93 ) {
77 continue; 94 continue;
78 } 95 }
79 items.push(new RunnableQuickPick(r)); 96 items.push(new RunnableQuickPick(r));
diff --git a/editors/code/src/commands/syntaxTree.ts b/editors/code/src/commands/syntaxTree.ts
index dcb721eee..5d5cdd7a0 100644
--- a/editors/code/src/commands/syntaxTree.ts
+++ b/editors/code/src/commands/syntaxTree.ts
@@ -5,17 +5,25 @@ import { Server } from '../server';
5 5
6export const syntaxTreeUri = vscode.Uri.parse('ra-lsp://syntaxtree'); 6export const syntaxTreeUri = vscode.Uri.parse('ra-lsp://syntaxtree');
7 7
8export class TextDocumentContentProvider implements vscode.TextDocumentContentProvider { 8export class TextDocumentContentProvider
9 implements vscode.TextDocumentContentProvider {
9 public eventEmitter = new vscode.EventEmitter<vscode.Uri>(); 10 public eventEmitter = new vscode.EventEmitter<vscode.Uri>();
10 public syntaxTree: string = 'Not available'; 11 public syntaxTree: string = 'Not available';
11 12
12 public provideTextDocumentContent(uri: vscode.Uri): vscode.ProviderResult<string> { 13 public provideTextDocumentContent(
14 uri: vscode.Uri
15 ): vscode.ProviderResult<string> {
13 const editor = vscode.window.activeTextEditor; 16 const editor = vscode.window.activeTextEditor;
14 if (editor == null) { return ''; } 17 if (editor == null) {
18 return '';
19 }
15 const request: SyntaxTreeParams = { 20 const request: SyntaxTreeParams = {
16 textDocument: { uri: editor.document.uri.toString() }, 21 textDocument: { uri: editor.document.uri.toString() }
17 }; 22 };
18 return Server.client.sendRequest<SyntaxTreeResult>('m/syntaxTree', request); 23 return Server.client.sendRequest<SyntaxTreeResult>(
24 'm/syntaxTree',
25 request
26 );
19 } 27 }
20 28
21 get onDidChange(): vscode.Event<vscode.Uri> { 29 get onDidChange(): vscode.Event<vscode.Uri> {
@@ -34,5 +42,9 @@ type SyntaxTreeResult = string;
34// The contents of the file come from the `TextDocumentContentProvider` 42// The contents of the file come from the `TextDocumentContentProvider`
35export async function handle() { 43export async function handle() {
36 const document = await vscode.workspace.openTextDocument(syntaxTreeUri); 44 const document = await vscode.workspace.openTextDocument(syntaxTreeUri);
37 return vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true); 45 return vscode.window.showTextDocument(
46 document,
47 vscode.ViewColumn.Two,
48 true
49 );
38} 50}
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 740b5be20..7d05ea078 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -6,7 +6,9 @@ export class Config {
6 public highlightingOn = true; 6 public highlightingOn = true;
7 7
8 constructor() { 8 constructor() {
9 vscode.workspace.onDidChangeConfiguration((_) => this.userConfigChanged()); 9 vscode.workspace.onDidChangeConfiguration(_ =>
10 this.userConfigChanged()
11 );
10 this.userConfigChanged(); 12 this.userConfigChanged();
11 } 13 }
12 14
diff --git a/editors/code/src/events/change_active_text_editor.ts b/editors/code/src/events/change_active_text_editor.ts
index 3440aa0c3..0b7ceb65d 100644
--- a/editors/code/src/events/change_active_text_editor.ts
+++ b/editors/code/src/events/change_active_text_editor.ts
@@ -5,10 +5,19 @@ import { Decoration } from '../highlighting';
5import { Server } from '../server'; 5import { Server } from '../server';
6 6
7export async function handle(editor: TextEditor | undefined) { 7export async function handle(editor: TextEditor | undefined) {
8 if (!Server.config.highlightingOn || !editor || editor.document.languageId !== 'rust') { return; } 8 if (
9 !Server.config.highlightingOn ||
10 !editor ||
11 editor.document.languageId !== 'rust'
12 ) {
13 return;
14 }
9 const params: TextDocumentIdentifier = { 15 const params: TextDocumentIdentifier = {
10 uri: editor.document.uri.toString(), 16 uri: editor.document.uri.toString()
11 }; 17 };
12 const decorations = await Server.client.sendRequest<Decoration[]>('m/decorationsRequest', params); 18 const decorations = await Server.client.sendRequest<Decoration[]>(
19 'm/decorationsRequest',
20 params
21 );
13 Server.highlighter.setHighlights(editor, decorations); 22 Server.highlighter.setHighlights(editor, decorations);
14} 23}
diff --git a/editors/code/src/events/change_text_document.ts b/editors/code/src/events/change_text_document.ts
index b3000e026..6be057245 100644
--- a/editors/code/src/events/change_text_document.ts
+++ b/editors/code/src/events/change_text_document.ts
@@ -1,11 +1,18 @@
1import * as vscode from 'vscode'; 1import * as vscode from 'vscode';
2 2
3import { syntaxTreeUri, TextDocumentContentProvider } from '../commands/syntaxTree'; 3import {
4 syntaxTreeUri,
5 TextDocumentContentProvider
6} from '../commands/syntaxTree';
4 7
5export function createHandler(textDocumentContentProvider: TextDocumentContentProvider) { 8export function createHandler(
9 textDocumentContentProvider: TextDocumentContentProvider
10) {
6 return (event: vscode.TextDocumentChangeEvent) => { 11 return (event: vscode.TextDocumentChangeEvent) => {
7 const doc = event.document; 12 const doc = event.document;
8 if (doc.languageId !== 'rust') { return; } 13 if (doc.languageId !== 'rust') {
14 return;
15 }
9 afterLs(() => { 16 afterLs(() => {
10 textDocumentContentProvider.eventEmitter.fire(syntaxTreeUri); 17 textDocumentContentProvider.eventEmitter.fire(syntaxTreeUri);
11 }); 18 });
diff --git a/editors/code/src/events/index.ts b/editors/code/src/events/index.ts
index b570a7a92..4c154563f 100644
--- a/editors/code/src/events/index.ts
+++ b/editors/code/src/events/index.ts
@@ -1,7 +1,4 @@
1import * as changeActiveTextEditor from './change_active_text_editor'; 1import * as changeActiveTextEditor from './change_active_text_editor';
2import * as changeTextDocument from './change_text_document'; 2import * as changeTextDocument from './change_text_document';
3 3
4export { 4export { changeActiveTextEditor, changeTextDocument };
5 changeActiveTextEditor,
6 changeTextDocument,
7};
diff --git a/editors/code/src/extension.ts b/editors/code/src/extension.ts
index 44e74f4cc..81e1107a0 100644
--- a/editors/code/src/extension.ts
+++ b/editors/code/src/extension.ts
@@ -23,26 +23,34 @@ export function activate(context: vscode.ExtensionContext) {
23 registerCommand('ra-lsp.joinLines', commands.joinLines.handle); 23 registerCommand('ra-lsp.joinLines', commands.joinLines.handle);
24 registerCommand('ra-lsp.parentModule', commands.parentModule.handle); 24 registerCommand('ra-lsp.parentModule', commands.parentModule.handle);
25 registerCommand('ra-lsp.run', commands.runnables.handle); 25 registerCommand('ra-lsp.run', commands.runnables.handle);
26 registerCommand('ra-lsp.applySourceChange', commands.applySourceChange.handle); 26 registerCommand(
27 'ra-lsp.applySourceChange',
28 commands.applySourceChange.handle
29 );
27 30
28 // Notifications are events triggered by the language server 31 // Notifications are events triggered by the language server
29 const allNotifications: Iterable<[string, lc.GenericNotificationHandler]> = [ 32 const allNotifications: Iterable<
30 ['m/publishDecorations', notifications.publishDecorations.handle], 33 [string, lc.GenericNotificationHandler]
31 ]; 34 > = [['m/publishDecorations', notifications.publishDecorations.handle]];
32 35
33 // The events below are plain old javascript events, triggered and handled by vscode 36 // The events below are plain old javascript events, triggered and handled by vscode
34 vscode.window.onDidChangeActiveTextEditor(events.changeActiveTextEditor.handle); 37 vscode.window.onDidChangeActiveTextEditor(
38 events.changeActiveTextEditor.handle
39 );
35 40
36 const textDocumentContentProvider = new TextDocumentContentProvider(); 41 const textDocumentContentProvider = new TextDocumentContentProvider();
37 disposeOnDeactivation(vscode.workspace.registerTextDocumentContentProvider( 42 disposeOnDeactivation(
38 'ra-lsp', 43 vscode.workspace.registerTextDocumentContentProvider(
39 textDocumentContentProvider, 44 'ra-lsp',
40 )); 45 textDocumentContentProvider
46 )
47 );
41 48
42 vscode.workspace.onDidChangeTextDocument( 49 vscode.workspace.onDidChangeTextDocument(
43 events.changeTextDocument.createHandler(textDocumentContentProvider), 50 events.changeTextDocument.createHandler(textDocumentContentProvider),
44 null, 51 null,
45 context.subscriptions); 52 context.subscriptions
53 );
46 54
47 // Start the language server, finally! 55 // Start the language server, finally!
48 Server.start(allNotifications); 56 Server.start(allNotifications);
diff --git a/editors/code/src/highlighting.ts b/editors/code/src/highlighting.ts
index e2ac4d629..ceddffe0e 100644
--- a/editors/code/src/highlighting.ts
+++ b/editors/code/src/highlighting.ts
@@ -9,15 +9,24 @@ export interface Decoration {
9} 9}
10 10
11export class Highlighter { 11export class Highlighter {
12 private static initDecorations(): Map<string, vscode.TextEditorDecorationType> { 12 private static initDecorations(): Map<
13 const decor = (color: string) => vscode.window.createTextEditorDecorationType({ color }); 13 string,
14 vscode.TextEditorDecorationType
15 > {
16 const decor = (color: string) =>
17 vscode.window.createTextEditorDecorationType({ color });
14 18
15 const decorations: Iterable<[string, vscode.TextEditorDecorationType]> = [ 19 const decorations: Iterable<
20 [string, vscode.TextEditorDecorationType]
21 > = [
16 ['background', decor('#3F3F3F')], 22 ['background', decor('#3F3F3F')],
17 ['error', vscode.window.createTextEditorDecorationType({ 23 [
18 borderColor: 'red', 24 'error',
19 borderStyle: 'none none dashed none', 25 vscode.window.createTextEditorDecorationType({
20 })], 26 borderColor: 'red',
27 borderStyle: 'none none dashed none'
28 })
29 ],
21 ['comment', decor('#7F9F7F')], 30 ['comment', decor('#7F9F7F')],
22 ['string', decor('#CC9393')], 31 ['string', decor('#CC9393')],
23 ['keyword', decor('#F0DFAF')], 32 ['keyword', decor('#F0DFAF')],
@@ -26,13 +35,16 @@ export class Highlighter {
26 ['builtin', decor('#DD6718')], 35 ['builtin', decor('#DD6718')],
27 ['text', decor('#DCDCCC')], 36 ['text', decor('#DCDCCC')],
28 ['attribute', decor('#BFEBBF')], 37 ['attribute', decor('#BFEBBF')],
29 ['literal', decor('#DFAF8F')], 38 ['literal', decor('#DFAF8F')]
30 ]; 39 ];
31 40
32 return new Map<string, vscode.TextEditorDecorationType>(decorations); 41 return new Map<string, vscode.TextEditorDecorationType>(decorations);
33 } 42 }
34 43
35 private decorations: (Map<string, vscode.TextEditorDecorationType> | null) = null; 44 private decorations: Map<
45 string,
46 vscode.TextEditorDecorationType
47 > | null = null;
36 48
37 public removeHighlights() { 49 public removeHighlights() {
38 if (this.decorations == null) { 50 if (this.decorations == null) {
@@ -47,10 +59,7 @@ export class Highlighter {
47 this.decorations = null; 59 this.decorations = null;
48 } 60 }
49 61
50 public setHighlights( 62 public setHighlights(editor: vscode.TextEditor, highlights: Decoration[]) {
51 editor: vscode.TextEditor,
52 highlights: Decoration[],
53 ) {
54 // Initialize decorations if necessary 63 // Initialize decorations if necessary
55 // 64 //
56 // Note: decoration objects need to be kept around so we can dispose them 65 // Note: decoration objects need to be kept around so we can dispose them
@@ -68,13 +77,15 @@ export class Highlighter {
68 if (!byTag.get(d.tag)) { 77 if (!byTag.get(d.tag)) {
69 continue; 78 continue;
70 } 79 }
71 byTag.get(d.tag)!.push( 80 byTag
72 Server.client.protocol2CodeConverter.asRange(d.range), 81 .get(d.tag)!
73 ); 82 .push(Server.client.protocol2CodeConverter.asRange(d.range));
74 } 83 }
75 84
76 for (const tag of byTag.keys()) { 85 for (const tag of byTag.keys()) {
77 const dec = this.decorations.get(tag) as vscode.TextEditorDecorationType; 86 const dec = this.decorations.get(
87 tag
88 ) as vscode.TextEditorDecorationType;
78 const ranges = byTag.get(tag)!; 89 const ranges = byTag.get(tag)!;
79 editor.setDecorations(dec, ranges); 90 editor.setDecorations(dec, ranges);
80 } 91 }
diff --git a/editors/code/src/notifications/index.ts b/editors/code/src/notifications/index.ts
index c56576865..74c4c3563 100644
--- a/editors/code/src/notifications/index.ts
+++ b/editors/code/src/notifications/index.ts
@@ -1,5 +1,3 @@
1import * as publishDecorations from './publish_decorations'; 1import * as publishDecorations from './publish_decorations';
2 2
3export { 3export { publishDecorations };
4 publishDecorations,
5};
diff --git a/editors/code/src/notifications/publish_decorations.ts b/editors/code/src/notifications/publish_decorations.ts
index d8790386b..3180019b7 100644
--- a/editors/code/src/notifications/publish_decorations.ts
+++ b/editors/code/src/notifications/publish_decorations.ts
@@ -10,11 +10,10 @@ export interface PublishDecorationsParams {
10 10
11export function handle(params: PublishDecorationsParams) { 11export function handle(params: PublishDecorationsParams) {
12 const targetEditor = vscode.window.visibleTextEditors.find( 12 const targetEditor = vscode.window.visibleTextEditors.find(
13 (editor) => editor.document.uri.toString() === params.uri, 13 editor => editor.document.uri.toString() === params.uri
14 );
15 if (!Server.config.highlightingOn || !targetEditor) { return; }
16 Server.highlighter.setHighlights(
17 targetEditor,
18 params.decorations,
19 ); 14 );
15 if (!Server.config.highlightingOn || !targetEditor) {
16 return;
17 }
18 Server.highlighter.setHighlights(targetEditor, params.decorations);
20} 19}
diff --git a/editors/code/src/server.ts b/editors/code/src/server.ts
index 01fd80756..196fc3ebc 100644
--- a/editors/code/src/server.ts
+++ b/editors/code/src/server.ts
@@ -8,24 +8,26 @@ export class Server {
8 public static config = new Config(); 8 public static config = new Config();
9 public static client: lc.LanguageClient; 9 public static client: lc.LanguageClient;
10 10
11 public static start(notificationHandlers: Iterable<[string, lc.GenericNotificationHandler]>) { 11 public static start(
12 notificationHandlers: Iterable<[string, lc.GenericNotificationHandler]>
13 ) {
12 const run: lc.Executable = { 14 const run: lc.Executable = {
13 command: 'ra_lsp_server', 15 command: 'ra_lsp_server',
14 options: { cwd: '.' }, 16 options: { cwd: '.' }
15 }; 17 };
16 const serverOptions: lc.ServerOptions = { 18 const serverOptions: lc.ServerOptions = {
17 run, 19 run,
18 debug: run, 20 debug: run
19 }; 21 };
20 const clientOptions: lc.LanguageClientOptions = { 22 const clientOptions: lc.LanguageClientOptions = {
21 documentSelector: [{ scheme: 'file', language: 'rust' }], 23 documentSelector: [{ scheme: 'file', language: 'rust' }]
22 }; 24 };
23 25
24 Server.client = new lc.LanguageClient( 26 Server.client = new lc.LanguageClient(
25 'ra-lsp', 27 'ra-lsp',
26 'rust-analyzer languge server', 28 'rust-analyzer languge server',
27 serverOptions, 29 serverOptions,
28 clientOptions, 30 clientOptions
29 ); 31 );
30 Server.client.onReady().then(() => { 32 Server.client.onReady().then(() => {
31 for (const [type, handler] of notificationHandlers) { 33 for (const [type, handler] of notificationHandlers) {
diff --git a/editors/code/tsconfig.json b/editors/code/tsconfig.json
index ebec01624..ef93c52b7 100644
--- a/editors/code/tsconfig.json
+++ b/editors/code/tsconfig.json
@@ -3,15 +3,10 @@
3 "module": "commonjs", 3 "module": "commonjs",
4 "target": "es6", 4 "target": "es6",
5 "outDir": "out", 5 "outDir": "out",
6 "lib": [ 6 "lib": ["es6"],
7 "es6"
8 ],
9 "sourceMap": true, 7 "sourceMap": true,
10 "rootDir": "src", 8 "rootDir": "src",
11 "strict": true 9 "strict": true
12 }, 10 },
13 "exclude": [ 11 "exclude": ["node_modules", ".vscode-test"]
14 "node_modules",
15 ".vscode-test"
16 ]
17} 12}
diff --git a/editors/code/tslint.json b/editors/code/tslint.json
index ce48dfc95..bdeb4895e 100644
--- a/editors/code/tslint.json
+++ b/editors/code/tslint.json
@@ -1,13 +1,9 @@
1{ 1{
2 "defaultSeverity": "error", 2 "defaultSeverity": "error",
3 "extends": [ 3 "extends": ["tslint:recommended", "tslint-config-prettier"],
4 "tslint:recommended"
5 ],
6 "jsRules": {},
7 "rules": { 4 "rules": {
8 "quotemark": [true, "single"], 5 "quotemark": [true, "single"],
9 "interface-name": false, 6 "interface-name": false,
10 "object-literal-sort-keys": false 7 "object-literal-sort-keys": false
11 }, 8 }
12 "rulesDirectory": []
13} 9}