aboutsummaryrefslogtreecommitdiff
path: root/code
diff options
context:
space:
mode:
Diffstat (limited to 'code')
-rw-r--r--code/.gitignore4
-rw-r--r--code/.vscode/launch.json36
-rw-r--r--code/.vscode/settings.json11
-rw-r--r--code/.vscode/tasks.json20
-rw-r--r--code/.vscodeignore9
-rw-r--r--code/package-lock.json2402
-rw-r--r--code/package.json149
-rw-r--r--code/src/extension.ts402
-rw-r--r--code/tsconfig.json17
9 files changed, 0 insertions, 3050 deletions
diff --git a/code/.gitignore b/code/.gitignore
deleted file mode 100644
index 5fe00fea8..000000000
--- a/code/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
1out
2node_modules
3.vscode-test/
4*.vsix
diff --git a/code/.vscode/launch.json b/code/.vscode/launch.json
deleted file mode 100644
index c174db304..000000000
--- a/code/.vscode/launch.json
+++ /dev/null
@@ -1,36 +0,0 @@
1// A launch configuration that compiles the extension and then opens it inside a new window
2// Use IntelliSense to learn about possible attributes.
3// Hover to view descriptions of existing attributes.
4// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5{
6 "version": "0.2.0",
7 "configurations": [
8 {
9 "name": "Extension",
10 "type": "extensionHost",
11 "request": "launch",
12 "runtimeExecutable": "${execPath}",
13 "args": [
14 "--extensionDevelopmentPath=${workspaceFolder}"
15 ],
16 "outFiles": [
17 "${workspaceFolder}/out/**/*.js"
18 ],
19 "preLaunchTask": "npm: watch"
20 },
21 {
22 "name": "Extension Tests",
23 "type": "extensionHost",
24 "request": "launch",
25 "runtimeExecutable": "${execPath}",
26 "args": [
27 "--extensionDevelopmentPath=${workspaceFolder}",
28 "--extensionTestsPath=${workspaceFolder}/out/test"
29 ],
30 "outFiles": [
31 "${workspaceFolder}/out/test/**/*.js"
32 ],
33 "preLaunchTask": "npm: watch"
34 }
35 ]
36}
diff --git a/code/.vscode/settings.json b/code/.vscode/settings.json
deleted file mode 100644
index 30bf8c2d3..000000000
--- a/code/.vscode/settings.json
+++ /dev/null
@@ -1,11 +0,0 @@
1// Place your settings in this file to overwrite default and user settings.
2{
3 "files.exclude": {
4 "out": false // set this to true to hide the "out" folder with the compiled JS files
5 },
6 "search.exclude": {
7 "out": true // set this to false to include "out" folder in search results
8 },
9 // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 "typescript.tsc.autoDetect": "off"
11} \ No newline at end of file
diff --git a/code/.vscode/tasks.json b/code/.vscode/tasks.json
deleted file mode 100644
index 604e38f5a..000000000
--- a/code/.vscode/tasks.json
+++ /dev/null
@@ -1,20 +0,0 @@
1// See https://go.microsoft.com/fwlink/?LinkId=733558
2// for the documentation about the tasks.json format
3{
4 "version": "2.0.0",
5 "tasks": [
6 {
7 "type": "npm",
8 "script": "watch",
9 "problemMatcher": "$tsc-watch",
10 "isBackground": true,
11 "presentation": {
12 "reveal": "never"
13 },
14 "group": {
15 "kind": "build",
16 "isDefault": true
17 }
18 }
19 ]
20} \ No newline at end of file
diff --git a/code/.vscodeignore b/code/.vscodeignore
deleted file mode 100644
index 855717896..000000000
--- a/code/.vscodeignore
+++ /dev/null
@@ -1,9 +0,0 @@
1.vscode/**
2.vscode-test/**
3out/test/**
4out/**/*.map
5src/**
6.gitignore
7tsconfig.json
8vsc-extension-quickstart.md
9tslint.json \ No newline at end of file
diff --git a/code/package-lock.json b/code/package-lock.json
deleted file mode 100644
index d9084b1b3..000000000
--- a/code/package-lock.json
+++ /dev/null
@@ -1,2402 +0,0 @@
1{
2 "name": "rcf-lsp",
3 "version": "0.0.1",
4 "lockfileVersion": 1,
5 "requires": true,
6 "dependencies": {
7 "@types/mocha": {
8 "version": "2.2.48",
9 "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
10 "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
11 "dev": true
12 },
13 "@types/node": {
14 "version": "8.10.28",
15 "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.28.tgz",
16 "integrity": "sha512-iHsAzDg3OLH7JP+wipniUULHoDSWLgEDYOvsar6/mpAkTJd9/n23Ap8ikruMlvRTqMv/LXrflH9v/AfiEqaBGg==",
17 "dev": true
18 },
19 "ajv": {
20 "version": "5.5.2",
21 "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
22 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
23 "dev": true,
24 "requires": {
25 "co": "4.6.0",
26 "fast-deep-equal": "1.1.0",
27 "fast-json-stable-stringify": "2.0.0",
28 "json-schema-traverse": "0.3.1"
29 }
30 },
31 "ansi-cyan": {
32 "version": "0.1.1",
33 "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
34 "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
35 "dev": true,
36 "requires": {
37 "ansi-wrap": "0.1.0"
38 }
39 },
40 "ansi-red": {
41 "version": "0.1.1",
42 "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
43 "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
44 "dev": true,
45 "requires": {
46 "ansi-wrap": "0.1.0"
47 }
48 },
49 "ansi-wrap": {
50 "version": "0.1.0",
51 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
52 "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
53 "dev": true
54 },
55 "argparse": {
56 "version": "1.0.10",
57 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
58 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
59 "dev": true,
60 "requires": {
61 "sprintf-js": "1.0.3"
62 }
63 },
64 "arr-diff": {
65 "version": "1.1.0",
66 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
67 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
68 "dev": true,
69 "requires": {
70 "arr-flatten": "1.1.0",
71 "array-slice": "0.2.3"
72 }
73 },
74 "arr-flatten": {
75 "version": "1.1.0",
76 "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
77 "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
78 "dev": true
79 },
80 "arr-union": {
81 "version": "2.1.0",
82 "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
83 "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
84 "dev": true
85 },
86 "array-differ": {
87 "version": "1.0.0",
88 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
89 "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
90 "dev": true
91 },
92 "array-slice": {
93 "version": "0.2.3",
94 "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
95 "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
96 "dev": true
97 },
98 "array-union": {
99 "version": "1.0.2",
100 "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
101 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
102 "dev": true,
103 "requires": {
104 "array-uniq": "1.0.3"
105 }
106 },
107 "array-uniq": {
108 "version": "1.0.3",
109 "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
110 "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
111 "dev": true
112 },
113 "array-unique": {
114 "version": "0.2.1",
115 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
116 "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
117 "dev": true
118 },
119 "arrify": {
120 "version": "1.0.1",
121 "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
122 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
123 "dev": true
124 },
125 "asn1": {
126 "version": "0.2.4",
127 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
128 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
129 "dev": true,
130 "requires": {
131 "safer-buffer": "2.1.2"
132 }
133 },
134 "assert-plus": {
135 "version": "1.0.0",
136 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
137 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
138 "dev": true
139 },
140 "asynckit": {
141 "version": "0.4.0",
142 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
143 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
144 "dev": true
145 },
146 "aws-sign2": {
147 "version": "0.7.0",
148 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
149 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
150 "dev": true
151 },
152 "aws4": {
153 "version": "1.8.0",
154 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
155 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
156 "dev": true
157 },
158 "balanced-match": {
159 "version": "1.0.0",
160 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
161 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
162 "dev": true
163 },
164 "bcrypt-pbkdf": {
165 "version": "1.0.2",
166 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
167 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
168 "dev": true,
169 "optional": true,
170 "requires": {
171 "tweetnacl": "0.14.5"
172 }
173 },
174 "block-stream": {
175 "version": "0.0.9",
176 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
177 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
178 "dev": true,
179 "requires": {
180 "inherits": "2.0.3"
181 }
182 },
183 "boolbase": {
184 "version": "1.0.0",
185 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
186 "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
187 "dev": true
188 },
189 "brace-expansion": {
190 "version": "1.1.11",
191 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
192 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
193 "dev": true,
194 "requires": {
195 "balanced-match": "1.0.0",
196 "concat-map": "0.0.1"
197 }
198 },
199 "braces": {
200 "version": "1.8.5",
201 "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
202 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
203 "dev": true,
204 "requires": {
205 "expand-range": "1.8.2",
206 "preserve": "0.2.0",
207 "repeat-element": "1.1.3"
208 }
209 },
210 "browser-stdout": {
211 "version": "1.3.0",
212 "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
213 "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
214 "dev": true
215 },
216 "buffer-crc32": {
217 "version": "0.2.13",
218 "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
219 "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
220 "dev": true
221 },
222 "buffer-from": {
223 "version": "1.1.1",
224 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
225 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
226 "dev": true
227 },
228 "caseless": {
229 "version": "0.12.0",
230 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
231 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
232 "dev": true
233 },
234 "cheerio": {
235 "version": "1.0.0-rc.2",
236 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
237 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
238 "dev": true,
239 "requires": {
240 "css-select": "1.2.0",
241 "dom-serializer": "0.1.0",
242 "entities": "1.1.1",
243 "htmlparser2": "3.9.2",
244 "lodash": "4.17.10",
245 "parse5": "3.0.3"
246 }
247 },
248 "clone": {
249 "version": "0.2.0",
250 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
251 "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
252 "dev": true
253 },
254 "clone-buffer": {
255 "version": "1.0.0",
256 "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
257 "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
258 "dev": true
259 },
260 "clone-stats": {
261 "version": "0.0.1",
262 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
263 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
264 "dev": true
265 },
266 "cloneable-readable": {
267 "version": "1.1.2",
268 "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
269 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
270 "dev": true,
271 "requires": {
272 "inherits": "2.0.3",
273 "process-nextick-args": "2.0.0",
274 "readable-stream": "2.3.6"
275 }
276 },
277 "co": {
278 "version": "4.6.0",
279 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
280 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
281 "dev": true
282 },
283 "combined-stream": {
284 "version": "1.0.6",
285 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
286 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
287 "dev": true,
288 "requires": {
289 "delayed-stream": "1.0.0"
290 }
291 },
292 "commander": {
293 "version": "2.11.0",
294 "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
295 "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
296 "dev": true
297 },
298 "concat-map": {
299 "version": "0.0.1",
300 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
301 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
302 "dev": true
303 },
304 "convert-source-map": {
305 "version": "1.5.1",
306 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
307 "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
308 "dev": true
309 },
310 "core-util-is": {
311 "version": "1.0.2",
312 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
313 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
314 "dev": true
315 },
316 "css-select": {
317 "version": "1.2.0",
318 "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
319 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
320 "dev": true,
321 "requires": {
322 "boolbase": "1.0.0",
323 "css-what": "2.1.0",
324 "domutils": "1.5.1",
325 "nth-check": "1.0.1"
326 }
327 },
328 "css-what": {
329 "version": "2.1.0",
330 "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
331 "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
332 "dev": true
333 },
334 "dashdash": {
335 "version": "1.14.1",
336 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
337 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
338 "dev": true,
339 "requires": {
340 "assert-plus": "1.0.0"
341 }
342 },
343 "debug": {
344 "version": "3.1.0",
345 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
346 "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
347 "dev": true,
348 "requires": {
349 "ms": "2.0.0"
350 }
351 },
352 "deep-assign": {
353 "version": "1.0.0",
354 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz",
355 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=",
356 "dev": true,
357 "requires": {
358 "is-obj": "1.0.1"
359 }
360 },
361 "delayed-stream": {
362 "version": "1.0.0",
363 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
364 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
365 "dev": true
366 },
367 "denodeify": {
368 "version": "1.2.1",
369 "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
370 "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=",
371 "dev": true
372 },
373 "diff": {
374 "version": "3.3.1",
375 "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
376 "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
377 "dev": true
378 },
379 "dom-serializer": {
380 "version": "0.1.0",
381 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
382 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
383 "dev": true,
384 "requires": {
385 "domelementtype": "1.1.3",
386 "entities": "1.1.1"
387 },
388 "dependencies": {
389 "domelementtype": {
390 "version": "1.1.3",
391 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
392 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
393 "dev": true
394 }
395 }
396 },
397 "domelementtype": {
398 "version": "1.3.0",
399 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
400 "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
401 "dev": true
402 },
403 "domhandler": {
404 "version": "2.4.2",
405 "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
406 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
407 "dev": true,
408 "requires": {
409 "domelementtype": "1.3.0"
410 }
411 },
412 "domutils": {
413 "version": "1.5.1",
414 "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
415 "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
416 "dev": true,
417 "requires": {
418 "dom-serializer": "0.1.0",
419 "domelementtype": "1.3.0"
420 }
421 },
422 "duplexer": {
423 "version": "0.1.1",
424 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
425 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
426 "dev": true
427 },
428 "duplexify": {
429 "version": "3.6.0",
430 "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
431 "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
432 "dev": true,
433 "requires": {
434 "end-of-stream": "1.4.1",
435 "inherits": "2.0.3",
436 "readable-stream": "2.3.6",
437 "stream-shift": "1.0.0"
438 }
439 },
440 "ecc-jsbn": {
441 "version": "0.1.2",
442 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
443 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
444 "dev": true,
445 "optional": true,
446 "requires": {
447 "jsbn": "0.1.1",
448 "safer-buffer": "2.1.2"
449 }
450 },
451 "end-of-stream": {
452 "version": "1.4.1",
453 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
454 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
455 "dev": true,
456 "requires": {
457 "once": "1.4.0"
458 }
459 },
460 "entities": {
461 "version": "1.1.1",
462 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
463 "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
464 "dev": true
465 },
466 "escape-string-regexp": {
467 "version": "1.0.5",
468 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
469 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
470 "dev": true
471 },
472 "event-stream": {
473 "version": "3.3.4",
474 "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
475 "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
476 "dev": true,
477 "requires": {
478 "duplexer": "0.1.1",
479 "from": "0.1.7",
480 "map-stream": "0.1.0",
481 "pause-stream": "0.0.11",
482 "split": "0.3.3",
483 "stream-combiner": "0.0.4",
484 "through": "2.3.8"
485 }
486 },
487 "expand-brackets": {
488 "version": "0.1.5",
489 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
490 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
491 "dev": true,
492 "requires": {
493 "is-posix-bracket": "0.1.1"
494 }
495 },
496 "expand-range": {
497 "version": "1.8.2",
498 "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
499 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
500 "dev": true,
501 "requires": {
502 "fill-range": "2.2.4"
503 }
504 },
505 "extend": {
506 "version": "3.0.2",
507 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
508 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
509 "dev": true
510 },
511 "extend-shallow": {
512 "version": "1.1.4",
513 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
514 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
515 "dev": true,
516 "requires": {
517 "kind-of": "1.1.0"
518 }
519 },
520 "extglob": {
521 "version": "0.3.2",
522 "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
523 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
524 "dev": true,
525 "requires": {
526 "is-extglob": "1.0.0"
527 },
528 "dependencies": {
529 "is-extglob": {
530 "version": "1.0.0",
531 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
532 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
533 "dev": true
534 }
535 }
536 },
537 "extsprintf": {
538 "version": "1.3.0",
539 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
540 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
541 "dev": true
542 },
543 "fast-deep-equal": {
544 "version": "1.1.0",
545 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
546 "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
547 "dev": true
548 },
549 "fast-json-stable-stringify": {
550 "version": "2.0.0",
551 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
552 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
553 "dev": true
554 },
555 "fd-slicer": {
556 "version": "1.1.0",
557 "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
558 "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
559 "dev": true,
560 "requires": {
561 "pend": "1.2.0"
562 }
563 },
564 "filename-regex": {
565 "version": "2.0.1",
566 "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
567 "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
568 "dev": true
569 },
570 "fill-range": {
571 "version": "2.2.4",
572 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
573 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
574 "dev": true,
575 "requires": {
576 "is-number": "2.1.0",
577 "isobject": "2.1.0",
578 "randomatic": "3.1.0",
579 "repeat-element": "1.1.3",
580 "repeat-string": "1.6.1"
581 }
582 },
583 "first-chunk-stream": {
584 "version": "1.0.0",
585 "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
586 "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
587 "dev": true
588 },
589 "for-in": {
590 "version": "1.0.2",
591 "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
592 "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
593 "dev": true
594 },
595 "for-own": {
596 "version": "0.1.5",
597 "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
598 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
599 "dev": true,
600 "requires": {
601 "for-in": "1.0.2"
602 }
603 },
604 "forever-agent": {
605 "version": "0.6.1",
606 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
607 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
608 "dev": true
609 },
610 "form-data": {
611 "version": "2.3.2",
612 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
613 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
614 "dev": true,
615 "requires": {
616 "asynckit": "0.4.0",
617 "combined-stream": "1.0.6",
618 "mime-types": "2.1.20"
619 }
620 },
621 "from": {
622 "version": "0.1.7",
623 "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
624 "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
625 "dev": true
626 },
627 "fs.realpath": {
628 "version": "1.0.0",
629 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
630 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
631 "dev": true
632 },
633 "fstream": {
634 "version": "1.0.11",
635 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
636 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
637 "dev": true,
638 "requires": {
639 "graceful-fs": "4.1.11",
640 "inherits": "2.0.3",
641 "mkdirp": "0.5.1",
642 "rimraf": "2.6.2"
643 }
644 },
645 "getpass": {
646 "version": "0.1.7",
647 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
648 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
649 "dev": true,
650 "requires": {
651 "assert-plus": "1.0.0"
652 }
653 },
654 "glob": {
655 "version": "7.1.3",
656 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
657 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
658 "dev": true,
659 "requires": {
660 "fs.realpath": "1.0.0",
661 "inflight": "1.0.6",
662 "inherits": "2.0.3",
663 "minimatch": "3.0.4",
664 "once": "1.4.0",
665 "path-is-absolute": "1.0.1"
666 }
667 },
668 "glob-base": {
669 "version": "0.3.0",
670 "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
671 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
672 "dev": true,
673 "requires": {
674 "glob-parent": "2.0.0",
675 "is-glob": "2.0.1"
676 },
677 "dependencies": {
678 "glob-parent": {
679 "version": "2.0.0",
680 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
681 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
682 "dev": true,
683 "requires": {
684 "is-glob": "2.0.1"
685 }
686 },
687 "is-extglob": {
688 "version": "1.0.0",
689 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
690 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
691 "dev": true
692 },
693 "is-glob": {
694 "version": "2.0.1",
695 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
696 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
697 "dev": true,
698 "requires": {
699 "is-extglob": "1.0.0"
700 }
701 }
702 }
703 },
704 "glob-parent": {
705 "version": "3.1.0",
706 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
707 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
708 "dev": true,
709 "requires": {
710 "is-glob": "3.1.0",
711 "path-dirname": "1.0.2"
712 }
713 },
714 "glob-stream": {
715 "version": "5.3.5",
716 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
717 "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
718 "dev": true,
719 "requires": {
720 "extend": "3.0.2",
721 "glob": "5.0.15",
722 "glob-parent": "3.1.0",
723 "micromatch": "2.3.11",
724 "ordered-read-streams": "0.3.0",
725 "through2": "0.6.5",
726 "to-absolute-glob": "0.1.1",
727 "unique-stream": "2.2.1"
728 },
729 "dependencies": {
730 "glob": {
731 "version": "5.0.15",
732 "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
733 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
734 "dev": true,
735 "requires": {
736 "inflight": "1.0.6",
737 "inherits": "2.0.3",
738 "minimatch": "3.0.4",
739 "once": "1.4.0",
740 "path-is-absolute": "1.0.1"
741 }
742 },
743 "isarray": {
744 "version": "0.0.1",
745 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
746 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
747 "dev": true
748 },
749 "readable-stream": {
750 "version": "1.0.34",
751 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
752 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
753 "dev": true,
754 "requires": {
755 "core-util-is": "1.0.2",
756 "inherits": "2.0.3",
757 "isarray": "0.0.1",
758 "string_decoder": "0.10.31"
759 }
760 },
761 "string_decoder": {
762 "version": "0.10.31",
763 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
764 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
765 "dev": true
766 },
767 "through2": {
768 "version": "0.6.5",
769 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
770 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
771 "dev": true,
772 "requires": {
773 "readable-stream": "1.0.34",
774 "xtend": "4.0.1"
775 }
776 }
777 }
778 },
779 "graceful-fs": {
780 "version": "4.1.11",
781 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
782 "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
783 "dev": true
784 },
785 "growl": {
786 "version": "1.10.3",
787 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
788 "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
789 "dev": true
790 },
791 "gulp-chmod": {
792 "version": "2.0.0",
793 "resolved": "https://registry.npmjs.org/gulp-chmod/-/gulp-chmod-2.0.0.tgz",
794 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=",
795 "dev": true,
796 "requires": {
797 "deep-assign": "1.0.0",
798 "stat-mode": "0.2.2",
799 "through2": "2.0.3"
800 }
801 },
802 "gulp-filter": {
803 "version": "5.1.0",
804 "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz",
805 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=",
806 "dev": true,
807 "requires": {
808 "multimatch": "2.1.0",
809 "plugin-error": "0.1.2",
810 "streamfilter": "1.0.7"
811 }
812 },
813 "gulp-gunzip": {
814 "version": "1.0.0",
815 "resolved": "https://registry.npmjs.org/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz",
816 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=",
817 "dev": true,
818 "requires": {
819 "through2": "0.6.5",
820 "vinyl": "0.4.6"
821 },
822 "dependencies": {
823 "isarray": {
824 "version": "0.0.1",
825 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
826 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
827 "dev": true
828 },
829 "readable-stream": {
830 "version": "1.0.34",
831 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
832 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
833 "dev": true,
834 "requires": {
835 "core-util-is": "1.0.2",
836 "inherits": "2.0.3",
837 "isarray": "0.0.1",
838 "string_decoder": "0.10.31"
839 }
840 },
841 "string_decoder": {
842 "version": "0.10.31",
843 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
844 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
845 "dev": true
846 },
847 "through2": {
848 "version": "0.6.5",
849 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
850 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
851 "dev": true,
852 "requires": {
853 "readable-stream": "1.0.34",
854 "xtend": "4.0.1"
855 }
856 }
857 }
858 },
859 "gulp-remote-src-vscode": {
860 "version": "0.5.0",
861 "resolved": "https://registry.npmjs.org/gulp-remote-src-vscode/-/gulp-remote-src-vscode-0.5.0.tgz",
862 "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==",
863 "dev": true,
864 "requires": {
865 "event-stream": "3.3.4",
866 "node.extend": "1.1.6",
867 "request": "2.88.0",
868 "through2": "2.0.3",
869 "vinyl": "2.2.0"
870 },
871 "dependencies": {
872 "clone": {
873 "version": "2.1.2",
874 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
875 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
876 "dev": true
877 },
878 "clone-stats": {
879 "version": "1.0.0",
880 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
881 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
882 "dev": true
883 },
884 "vinyl": {
885 "version": "2.2.0",
886 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
887 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
888 "dev": true,
889 "requires": {
890 "clone": "2.1.2",
891 "clone-buffer": "1.0.0",
892 "clone-stats": "1.0.0",
893 "cloneable-readable": "1.1.2",
894 "remove-trailing-separator": "1.1.0",
895 "replace-ext": "1.0.0"
896 }
897 }
898 }
899 },
900 "gulp-sourcemaps": {
901 "version": "1.6.0",
902 "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
903 "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
904 "dev": true,
905 "requires": {
906 "convert-source-map": "1.5.1",
907 "graceful-fs": "4.1.11",
908 "strip-bom": "2.0.0",
909 "through2": "2.0.3",
910 "vinyl": "1.2.0"
911 },
912 "dependencies": {
913 "clone": {
914 "version": "1.0.4",
915 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
916 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
917 "dev": true
918 },
919 "replace-ext": {
920 "version": "0.0.1",
921 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
922 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
923 "dev": true
924 },
925 "vinyl": {
926 "version": "1.2.0",
927 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
928 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
929 "dev": true,
930 "requires": {
931 "clone": "1.0.4",
932 "clone-stats": "0.0.1",
933 "replace-ext": "0.0.1"
934 }
935 }
936 }
937 },
938 "gulp-symdest": {
939 "version": "1.1.0",
940 "resolved": "https://registry.npmjs.org/gulp-symdest/-/gulp-symdest-1.1.0.tgz",
941 "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=",
942 "dev": true,
943 "requires": {
944 "event-stream": "3.3.4",
945 "mkdirp": "0.5.1",
946 "queue": "3.1.0",
947 "vinyl-fs": "2.4.4"
948 }
949 },
950 "gulp-untar": {
951 "version": "0.0.7",
952 "resolved": "https://registry.npmjs.org/gulp-untar/-/gulp-untar-0.0.7.tgz",
953 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==",
954 "dev": true,
955 "requires": {
956 "event-stream": "3.3.4",
957 "streamifier": "0.1.1",
958 "tar": "2.2.1",
959 "through2": "2.0.3",
960 "vinyl": "1.2.0"
961 },
962 "dependencies": {
963 "clone": {
964 "version": "1.0.4",
965 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
966 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
967 "dev": true
968 },
969 "replace-ext": {
970 "version": "0.0.1",
971 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
972 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
973 "dev": true
974 },
975 "vinyl": {
976 "version": "1.2.0",
977 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
978 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
979 "dev": true,
980 "requires": {
981 "clone": "1.0.4",
982 "clone-stats": "0.0.1",
983 "replace-ext": "0.0.1"
984 }
985 }
986 }
987 },
988 "gulp-vinyl-zip": {
989 "version": "2.1.0",
990 "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz",
991 "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=",
992 "dev": true,
993 "requires": {
994 "event-stream": "3.3.4",
995 "queue": "4.5.0",
996 "through2": "2.0.3",
997 "vinyl": "2.2.0",
998 "vinyl-fs": "2.4.4",
999 "yauzl": "2.10.0",
1000 "yazl": "2.4.3"
1001 },
1002 "dependencies": {
1003 "clone": {
1004 "version": "2.1.2",
1005 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
1006 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
1007 "dev": true
1008 },
1009 "clone-stats": {
1010 "version": "1.0.0",
1011 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
1012 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
1013 "dev": true
1014 },
1015 "queue": {
1016 "version": "4.5.0",
1017 "resolved": "https://registry.npmjs.org/queue/-/queue-4.5.0.tgz",
1018 "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==",
1019 "dev": true,
1020 "requires": {
1021 "inherits": "2.0.3"
1022 }
1023 },
1024 "vinyl": {
1025 "version": "2.2.0",
1026 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
1027 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1028 "dev": true,
1029 "requires": {
1030 "clone": "2.1.2",
1031 "clone-buffer": "1.0.0",
1032 "clone-stats": "1.0.0",
1033 "cloneable-readable": "1.1.2",
1034 "remove-trailing-separator": "1.1.0",
1035 "replace-ext": "1.0.0"
1036 }
1037 }
1038 }
1039 },
1040 "har-schema": {
1041 "version": "2.0.0",
1042 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1043 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
1044 "dev": true
1045 },
1046 "har-validator": {
1047 "version": "5.1.0",
1048 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
1049 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
1050 "dev": true,
1051 "requires": {
1052 "ajv": "5.5.2",
1053 "har-schema": "2.0.0"
1054 }
1055 },
1056 "has-flag": {
1057 "version": "2.0.0",
1058 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
1059 "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
1060 "dev": true
1061 },
1062 "he": {
1063 "version": "1.1.1",
1064 "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
1065 "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
1066 "dev": true
1067 },
1068 "htmlparser2": {
1069 "version": "3.9.2",
1070 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
1071 "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
1072 "dev": true,
1073 "requires": {
1074 "domelementtype": "1.3.0",
1075 "domhandler": "2.4.2",
1076 "domutils": "1.5.1",
1077 "entities": "1.1.1",
1078 "inherits": "2.0.3",
1079 "readable-stream": "2.3.6"
1080 }
1081 },
1082 "http-signature": {
1083 "version": "1.2.0",
1084 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1085 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1086 "dev": true,
1087 "requires": {
1088 "assert-plus": "1.0.0",
1089 "jsprim": "1.4.1",
1090 "sshpk": "1.14.2"
1091 }
1092 },
1093 "inflight": {
1094 "version": "1.0.6",
1095 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1096 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1097 "dev": true,
1098 "requires": {
1099 "once": "1.4.0",
1100 "wrappy": "1.0.2"
1101 }
1102 },
1103 "inherits": {
1104 "version": "2.0.3",
1105 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1106 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1107 "dev": true
1108 },
1109 "is": {
1110 "version": "3.2.1",
1111 "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
1112 "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=",
1113 "dev": true
1114 },
1115 "is-buffer": {
1116 "version": "1.1.6",
1117 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1118 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1119 "dev": true
1120 },
1121 "is-dotfile": {
1122 "version": "1.0.3",
1123 "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
1124 "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
1125 "dev": true
1126 },
1127 "is-equal-shallow": {
1128 "version": "0.1.3",
1129 "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
1130 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1131 "dev": true,
1132 "requires": {
1133 "is-primitive": "2.0.0"
1134 }
1135 },
1136 "is-extendable": {
1137 "version": "0.1.1",
1138 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1139 "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1140 "dev": true
1141 },
1142 "is-extglob": {
1143 "version": "2.1.1",
1144 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1145 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1146 "dev": true
1147 },
1148 "is-glob": {
1149 "version": "3.1.0",
1150 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1151 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1152 "dev": true,
1153 "requires": {
1154 "is-extglob": "2.1.1"
1155 }
1156 },
1157 "is-number": {
1158 "version": "2.1.0",
1159 "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1160 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1161 "dev": true,
1162 "requires": {
1163 "kind-of": "3.2.2"
1164 },
1165 "dependencies": {
1166 "kind-of": {
1167 "version": "3.2.2",
1168 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1169 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1170 "dev": true,
1171 "requires": {
1172 "is-buffer": "1.1.6"
1173 }
1174 }
1175 }
1176 },
1177 "is-obj": {
1178 "version": "1.0.1",
1179 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1180 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1181 "dev": true
1182 },
1183 "is-posix-bracket": {
1184 "version": "0.1.1",
1185 "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
1186 "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
1187 "dev": true
1188 },
1189 "is-primitive": {
1190 "version": "2.0.0",
1191 "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
1192 "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
1193 "dev": true
1194 },
1195 "is-stream": {
1196 "version": "1.1.0",
1197 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1198 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1199 "dev": true
1200 },
1201 "is-typedarray": {
1202 "version": "1.0.0",
1203 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1204 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1205 "dev": true
1206 },
1207 "is-utf8": {
1208 "version": "0.2.1",
1209 "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1210 "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
1211 "dev": true
1212 },
1213 "is-valid-glob": {
1214 "version": "0.3.0",
1215 "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
1216 "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
1217 "dev": true
1218 },
1219 "isarray": {
1220 "version": "1.0.0",
1221 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1222 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1223 "dev": true
1224 },
1225 "isobject": {
1226 "version": "2.1.0",
1227 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1228 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1229 "dev": true,
1230 "requires": {
1231 "isarray": "1.0.0"
1232 }
1233 },
1234 "isstream": {
1235 "version": "0.1.2",
1236 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1237 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
1238 "dev": true
1239 },
1240 "jsbn": {
1241 "version": "0.1.1",
1242 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1243 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1244 "dev": true,
1245 "optional": true
1246 },
1247 "json-schema": {
1248 "version": "0.2.3",
1249 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1250 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
1251 "dev": true
1252 },
1253 "json-schema-traverse": {
1254 "version": "0.3.1",
1255 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
1256 "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
1257 "dev": true
1258 },
1259 "json-stable-stringify": {
1260 "version": "1.0.1",
1261 "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
1262 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
1263 "dev": true,
1264 "requires": {
1265 "jsonify": "0.0.0"
1266 }
1267 },
1268 "json-stringify-safe": {
1269 "version": "5.0.1",
1270 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1271 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1272 "dev": true
1273 },
1274 "jsonify": {
1275 "version": "0.0.0",
1276 "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
1277 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
1278 "dev": true
1279 },
1280 "jsprim": {
1281 "version": "1.4.1",
1282 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1283 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1284 "dev": true,
1285 "requires": {
1286 "assert-plus": "1.0.0",
1287 "extsprintf": "1.3.0",
1288 "json-schema": "0.2.3",
1289 "verror": "1.10.0"
1290 }
1291 },
1292 "kind-of": {
1293 "version": "1.1.0",
1294 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
1295 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
1296 "dev": true
1297 },
1298 "lazystream": {
1299 "version": "1.0.0",
1300 "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
1301 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
1302 "dev": true,
1303 "requires": {
1304 "readable-stream": "2.3.6"
1305 }
1306 },
1307 "linkify-it": {
1308 "version": "2.0.3",
1309 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
1310 "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
1311 "dev": true,
1312 "requires": {
1313 "uc.micro": "1.0.5"
1314 }
1315 },
1316 "lodash": {
1317 "version": "4.17.10",
1318 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
1319 "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
1320 "dev": true
1321 },
1322 "lodash.isequal": {
1323 "version": "4.5.0",
1324 "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
1325 "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
1326 "dev": true
1327 },
1328 "map-stream": {
1329 "version": "0.1.0",
1330 "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
1331 "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
1332 "dev": true
1333 },
1334 "markdown-it": {
1335 "version": "8.4.2",
1336 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
1337 "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
1338 "dev": true,
1339 "requires": {
1340 "argparse": "1.0.10",
1341 "entities": "1.1.1",
1342 "linkify-it": "2.0.3",
1343 "mdurl": "1.0.1",
1344 "uc.micro": "1.0.5"
1345 }
1346 },
1347 "math-random": {
1348 "version": "1.0.1",
1349 "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
1350 "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
1351 "dev": true
1352 },
1353 "mdurl": {
1354 "version": "1.0.1",
1355 "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
1356 "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
1357 "dev": true
1358 },
1359 "merge-stream": {
1360 "version": "1.0.1",
1361 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
1362 "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
1363 "dev": true,
1364 "requires": {
1365 "readable-stream": "2.3.6"
1366 }
1367 },
1368 "micromatch": {
1369 "version": "2.3.11",
1370 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
1371 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1372 "dev": true,
1373 "requires": {
1374 "arr-diff": "2.0.0",
1375 "array-unique": "0.2.1",
1376 "braces": "1.8.5",
1377 "expand-brackets": "0.1.5",
1378 "extglob": "0.3.2",
1379 "filename-regex": "2.0.1",
1380 "is-extglob": "1.0.0",
1381 "is-glob": "2.0.1",
1382 "kind-of": "3.2.2",
1383 "normalize-path": "2.1.1",
1384 "object.omit": "2.0.1",
1385 "parse-glob": "3.0.4",
1386 "regex-cache": "0.4.4"
1387 },
1388 "dependencies": {
1389 "arr-diff": {
1390 "version": "2.0.0",
1391 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
1392 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
1393 "dev": true,
1394 "requires": {
1395 "arr-flatten": "1.1.0"
1396 }
1397 },
1398 "is-extglob": {
1399 "version": "1.0.0",
1400 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1401 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1402 "dev": true
1403 },
1404 "is-glob": {
1405 "version": "2.0.1",
1406 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1407 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1408 "dev": true,
1409 "requires": {
1410 "is-extglob": "1.0.0"
1411 }
1412 },
1413 "kind-of": {
1414 "version": "3.2.2",
1415 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1416 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1417 "dev": true,
1418 "requires": {
1419 "is-buffer": "1.1.6"
1420 }
1421 }
1422 }
1423 },
1424 "mime": {
1425 "version": "1.6.0",
1426 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1427 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1428 "dev": true
1429 },
1430 "mime-db": {
1431 "version": "1.36.0",
1432 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
1433 "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
1434 "dev": true
1435 },
1436 "mime-types": {
1437 "version": "2.1.20",
1438 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
1439 "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
1440 "dev": true,
1441 "requires": {
1442 "mime-db": "1.36.0"
1443 }
1444 },
1445 "minimatch": {
1446 "version": "3.0.4",
1447 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1448 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1449 "dev": true,
1450 "requires": {
1451 "brace-expansion": "1.1.11"
1452 }
1453 },
1454 "minimist": {
1455 "version": "0.0.8",
1456 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1457 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1458 "dev": true
1459 },
1460 "mkdirp": {
1461 "version": "0.5.1",
1462 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1463 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1464 "dev": true,
1465 "requires": {
1466 "minimist": "0.0.8"
1467 }
1468 },
1469 "mocha": {
1470 "version": "4.1.0",
1471 "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
1472 "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
1473 "dev": true,
1474 "requires": {
1475 "browser-stdout": "1.3.0",
1476 "commander": "2.11.0",
1477 "debug": "3.1.0",
1478 "diff": "3.3.1",
1479 "escape-string-regexp": "1.0.5",
1480 "glob": "7.1.2",
1481 "growl": "1.10.3",
1482 "he": "1.1.1",
1483 "mkdirp": "0.5.1",
1484 "supports-color": "4.4.0"
1485 },
1486 "dependencies": {
1487 "glob": {
1488 "version": "7.1.2",
1489 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
1490 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1491 "dev": true,
1492 "requires": {
1493 "fs.realpath": "1.0.0",
1494 "inflight": "1.0.6",
1495 "inherits": "2.0.3",
1496 "minimatch": "3.0.4",
1497 "once": "1.4.0",
1498 "path-is-absolute": "1.0.1"
1499 }
1500 }
1501 }
1502 },
1503 "ms": {
1504 "version": "2.0.0",
1505 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1506 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1507 "dev": true
1508 },
1509 "multimatch": {
1510 "version": "2.1.0",
1511 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
1512 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
1513 "dev": true,
1514 "requires": {
1515 "array-differ": "1.0.0",
1516 "array-union": "1.0.2",
1517 "arrify": "1.0.1",
1518 "minimatch": "3.0.4"
1519 }
1520 },
1521 "mute-stream": {
1522 "version": "0.0.7",
1523 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
1524 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
1525 "dev": true
1526 },
1527 "node.extend": {
1528 "version": "1.1.6",
1529 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz",
1530 "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=",
1531 "dev": true,
1532 "requires": {
1533 "is": "3.2.1"
1534 }
1535 },
1536 "normalize-path": {
1537 "version": "2.1.1",
1538 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1539 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1540 "dev": true,
1541 "requires": {
1542 "remove-trailing-separator": "1.1.0"
1543 }
1544 },
1545 "nth-check": {
1546 "version": "1.0.1",
1547 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
1548 "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
1549 "dev": true,
1550 "requires": {
1551 "boolbase": "1.0.0"
1552 }
1553 },
1554 "oauth-sign": {
1555 "version": "0.9.0",
1556 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1557 "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1558 "dev": true
1559 },
1560 "object-assign": {
1561 "version": "4.1.1",
1562 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1563 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1564 "dev": true
1565 },
1566 "object.omit": {
1567 "version": "2.0.1",
1568 "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
1569 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
1570 "dev": true,
1571 "requires": {
1572 "for-own": "0.1.5",
1573 "is-extendable": "0.1.1"
1574 }
1575 },
1576 "once": {
1577 "version": "1.4.0",
1578 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1579 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1580 "dev": true,
1581 "requires": {
1582 "wrappy": "1.0.2"
1583 }
1584 },
1585 "ordered-read-streams": {
1586 "version": "0.3.0",
1587 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
1588 "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
1589 "dev": true,
1590 "requires": {
1591 "is-stream": "1.1.0",
1592 "readable-stream": "2.3.6"
1593 }
1594 },
1595 "os-homedir": {
1596 "version": "1.0.2",
1597 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1598 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
1599 "dev": true
1600 },
1601 "os-tmpdir": {
1602 "version": "1.0.2",
1603 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1604 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1605 "dev": true
1606 },
1607 "osenv": {
1608 "version": "0.1.5",
1609 "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
1610 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1611 "dev": true,
1612 "requires": {
1613 "os-homedir": "1.0.2",
1614 "os-tmpdir": "1.0.2"
1615 }
1616 },
1617 "parse-glob": {
1618 "version": "3.0.4",
1619 "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
1620 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
1621 "dev": true,
1622 "requires": {
1623 "glob-base": "0.3.0",
1624 "is-dotfile": "1.0.3",
1625 "is-extglob": "1.0.0",
1626 "is-glob": "2.0.1"
1627 },
1628 "dependencies": {
1629 "is-extglob": {
1630 "version": "1.0.0",
1631 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1632 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1633 "dev": true
1634 },
1635 "is-glob": {
1636 "version": "2.0.1",
1637 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1638 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1639 "dev": true,
1640 "requires": {
1641 "is-extglob": "1.0.0"
1642 }
1643 }
1644 }
1645 },
1646 "parse-semver": {
1647 "version": "1.1.1",
1648 "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz",
1649 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=",
1650 "dev": true,
1651 "requires": {
1652 "semver": "5.5.1"
1653 }
1654 },
1655 "parse5": {
1656 "version": "3.0.3",
1657 "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
1658 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
1659 "dev": true,
1660 "requires": {
1661 "@types/node": "8.10.28"
1662 }
1663 },
1664 "path-dirname": {
1665 "version": "1.0.2",
1666 "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
1667 "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
1668 "dev": true
1669 },
1670 "path-is-absolute": {
1671 "version": "1.0.1",
1672 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1673 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1674 "dev": true
1675 },
1676 "pause-stream": {
1677 "version": "0.0.11",
1678 "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1679 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1680 "dev": true,
1681 "requires": {
1682 "through": "2.3.8"
1683 }
1684 },
1685 "pend": {
1686 "version": "1.2.0",
1687 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1688 "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
1689 "dev": true
1690 },
1691 "performance-now": {
1692 "version": "2.1.0",
1693 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1694 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
1695 "dev": true
1696 },
1697 "plugin-error": {
1698 "version": "0.1.2",
1699 "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
1700 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
1701 "dev": true,
1702 "requires": {
1703 "ansi-cyan": "0.1.1",
1704 "ansi-red": "0.1.1",
1705 "arr-diff": "1.1.0",
1706 "arr-union": "2.1.0",
1707 "extend-shallow": "1.1.4"
1708 }
1709 },
1710 "preserve": {
1711 "version": "0.2.0",
1712 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
1713 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
1714 "dev": true
1715 },
1716 "process-nextick-args": {
1717 "version": "2.0.0",
1718 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1719 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
1720 "dev": true
1721 },
1722 "psl": {
1723 "version": "1.1.29",
1724 "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
1725 "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
1726 "dev": true
1727 },
1728 "punycode": {
1729 "version": "1.4.1",
1730 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1731 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
1732 "dev": true
1733 },
1734 "q": {
1735 "version": "1.5.1",
1736 "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
1737 "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
1738 "dev": true
1739 },
1740 "qs": {
1741 "version": "6.5.2",
1742 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1743 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
1744 "dev": true
1745 },
1746 "querystringify": {
1747 "version": "2.0.0",
1748 "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
1749 "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
1750 "dev": true
1751 },
1752 "queue": {
1753 "version": "3.1.0",
1754 "resolved": "https://registry.npmjs.org/queue/-/queue-3.1.0.tgz",
1755 "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=",
1756 "dev": true,
1757 "requires": {
1758 "inherits": "2.0.3"
1759 }
1760 },
1761 "randomatic": {
1762 "version": "3.1.0",
1763 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
1764 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
1765 "dev": true,
1766 "requires": {
1767 "is-number": "4.0.0",
1768 "kind-of": "6.0.2",
1769 "math-random": "1.0.1"
1770 },
1771 "dependencies": {
1772 "is-number": {
1773 "version": "4.0.0",
1774 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
1775 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
1776 "dev": true
1777 },
1778 "kind-of": {
1779 "version": "6.0.2",
1780 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1781 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1782 "dev": true
1783 }
1784 }
1785 },
1786 "read": {
1787 "version": "1.0.7",
1788 "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
1789 "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
1790 "dev": true,
1791 "requires": {
1792 "mute-stream": "0.0.7"
1793 }
1794 },
1795 "readable-stream": {
1796 "version": "2.3.6",
1797 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1798 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1799 "dev": true,
1800 "requires": {
1801 "core-util-is": "1.0.2",
1802 "inherits": "2.0.3",
1803 "isarray": "1.0.0",
1804 "process-nextick-args": "2.0.0",
1805 "safe-buffer": "5.1.2",
1806 "string_decoder": "1.1.1",
1807 "util-deprecate": "1.0.2"
1808 }
1809 },
1810 "regex-cache": {
1811 "version": "0.4.4",
1812 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
1813 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
1814 "dev": true,
1815 "requires": {
1816 "is-equal-shallow": "0.1.3"
1817 }
1818 },
1819 "remove-trailing-separator": {
1820 "version": "1.1.0",
1821 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
1822 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
1823 "dev": true
1824 },
1825 "repeat-element": {
1826 "version": "1.1.3",
1827 "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
1828 "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
1829 "dev": true
1830 },
1831 "repeat-string": {
1832 "version": "1.6.1",
1833 "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1834 "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
1835 "dev": true
1836 },
1837 "replace-ext": {
1838 "version": "1.0.0",
1839 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
1840 "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
1841 "dev": true
1842 },
1843 "request": {
1844 "version": "2.88.0",
1845 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
1846 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
1847 "dev": true,
1848 "requires": {
1849 "aws-sign2": "0.7.0",
1850 "aws4": "1.8.0",
1851 "caseless": "0.12.0",
1852 "combined-stream": "1.0.6",
1853 "extend": "3.0.2",
1854 "forever-agent": "0.6.1",
1855 "form-data": "2.3.2",
1856 "har-validator": "5.1.0",
1857 "http-signature": "1.2.0",
1858 "is-typedarray": "1.0.0",
1859 "isstream": "0.1.2",
1860 "json-stringify-safe": "5.0.1",
1861 "mime-types": "2.1.20",
1862 "oauth-sign": "0.9.0",
1863 "performance-now": "2.1.0",
1864 "qs": "6.5.2",
1865 "safe-buffer": "5.1.2",
1866 "tough-cookie": "2.4.3",
1867 "tunnel-agent": "0.6.0",
1868 "uuid": "3.3.2"
1869 }
1870 },
1871 "requires-port": {
1872 "version": "1.0.0",
1873 "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
1874 "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
1875 "dev": true
1876 },
1877 "rimraf": {
1878 "version": "2.6.2",
1879 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1880 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
1881 "dev": true,
1882 "requires": {
1883 "glob": "7.1.3"
1884 }
1885 },
1886 "safe-buffer": {
1887 "version": "5.1.2",
1888 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1889 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1890 "dev": true
1891 },
1892 "safer-buffer": {
1893 "version": "2.1.2",
1894 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1895 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1896 "dev": true
1897 },
1898 "semver": {
1899 "version": "5.5.1",
1900 "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
1901 "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
1902 "dev": true
1903 },
1904 "source-map": {
1905 "version": "0.6.1",
1906 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1907 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1908 "dev": true
1909 },
1910 "source-map-support": {
1911 "version": "0.5.9",
1912 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
1913 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
1914 "dev": true,
1915 "requires": {
1916 "buffer-from": "1.1.1",
1917 "source-map": "0.6.1"
1918 }
1919 },
1920 "split": {
1921 "version": "0.3.3",
1922 "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
1923 "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
1924 "dev": true,
1925 "requires": {
1926 "through": "2.3.8"
1927 }
1928 },
1929 "sprintf-js": {
1930 "version": "1.0.3",
1931 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1932 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1933 "dev": true
1934 },
1935 "sshpk": {
1936 "version": "1.14.2",
1937 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
1938 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
1939 "dev": true,
1940 "requires": {
1941 "asn1": "0.2.4",
1942 "assert-plus": "1.0.0",
1943 "bcrypt-pbkdf": "1.0.2",
1944 "dashdash": "1.14.1",
1945 "ecc-jsbn": "0.1.2",
1946 "getpass": "0.1.7",
1947 "jsbn": "0.1.1",
1948 "safer-buffer": "2.1.2",
1949 "tweetnacl": "0.14.5"
1950 }
1951 },
1952 "stat-mode": {
1953 "version": "0.2.2",
1954 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
1955 "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
1956 "dev": true
1957 },
1958 "stream-combiner": {
1959 "version": "0.0.4",
1960 "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
1961 "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
1962 "dev": true,
1963 "requires": {
1964 "duplexer": "0.1.1"
1965 }
1966 },
1967 "stream-shift": {
1968 "version": "1.0.0",
1969 "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
1970 "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
1971 "dev": true
1972 },
1973 "streamfilter": {
1974 "version": "1.0.7",
1975 "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz",
1976 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==",
1977 "dev": true,
1978 "requires": {
1979 "readable-stream": "2.3.6"
1980 }
1981 },
1982 "streamifier": {
1983 "version": "0.1.1",
1984 "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz",
1985 "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=",
1986 "dev": true
1987 },
1988 "string_decoder": {
1989 "version": "1.1.1",
1990 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1991 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1992 "dev": true,
1993 "requires": {
1994 "safe-buffer": "5.1.2"
1995 }
1996 },
1997 "strip-bom": {
1998 "version": "2.0.0",
1999 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
2000 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
2001 "dev": true,
2002 "requires": {
2003 "is-utf8": "0.2.1"
2004 }
2005 },
2006 "strip-bom-stream": {
2007 "version": "1.0.0",
2008 "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
2009 "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
2010 "dev": true,
2011 "requires": {
2012 "first-chunk-stream": "1.0.0",
2013 "strip-bom": "2.0.0"
2014 }
2015 },
2016 "supports-color": {
2017 "version": "4.4.0",
2018 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
2019 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2020 "dev": true,
2021 "requires": {
2022 "has-flag": "2.0.0"
2023 }
2024 },
2025 "tar": {
2026 "version": "2.2.1",
2027 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
2028 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2029 "dev": true,
2030 "requires": {
2031 "block-stream": "0.0.9",
2032 "fstream": "1.0.11",
2033 "inherits": "2.0.3"
2034 }
2035 },
2036 "through": {
2037 "version": "2.3.8",
2038 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2039 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2040 "dev": true
2041 },
2042 "through2": {
2043 "version": "2.0.3",
2044 "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
2045 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
2046 "dev": true,
2047 "requires": {
2048 "readable-stream": "2.3.6",
2049 "xtend": "4.0.1"
2050 }
2051 },
2052 "through2-filter": {
2053 "version": "2.0.0",
2054 "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
2055 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
2056 "dev": true,
2057 "requires": {
2058 "through2": "2.0.3",
2059 "xtend": "4.0.1"
2060 }
2061 },
2062 "tmp": {
2063 "version": "0.0.29",
2064 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
2065 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
2066 "dev": true,
2067 "requires": {
2068 "os-tmpdir": "1.0.2"
2069 }
2070 },
2071 "to-absolute-glob": {
2072 "version": "0.1.1",
2073 "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
2074 "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
2075 "dev": true,
2076 "requires": {
2077 "extend-shallow": "2.0.1"
2078 },
2079 "dependencies": {
2080 "extend-shallow": {
2081 "version": "2.0.1",
2082 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2083 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2084 "dev": true,
2085 "requires": {
2086 "is-extendable": "0.1.1"
2087 }
2088 }
2089 }
2090 },
2091 "tough-cookie": {
2092 "version": "2.4.3",
2093 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
2094 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
2095 "dev": true,
2096 "requires": {
2097 "psl": "1.1.29",
2098 "punycode": "1.4.1"
2099 }
2100 },
2101 "tunnel": {
2102 "version": "0.0.4",
2103 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz",
2104 "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=",
2105 "dev": true
2106 },
2107 "tunnel-agent": {
2108 "version": "0.6.0",
2109 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2110 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2111 "dev": true,
2112 "requires": {
2113 "safe-buffer": "5.1.2"
2114 }
2115 },
2116 "tweetnacl": {
2117 "version": "0.14.5",
2118 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2119 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
2120 "dev": true,
2121 "optional": true
2122 },
2123 "typed-rest-client": {
2124 "version": "0.9.0",
2125 "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-0.9.0.tgz",
2126 "integrity": "sha1-92jMDcP06VDwbgSCXDaz54NKofI=",
2127 "dev": true,
2128 "requires": {
2129 "tunnel": "0.0.4",
2130 "underscore": "1.8.3"
2131 },
2132 "dependencies": {
2133 "underscore": {
2134 "version": "1.8.3",
2135 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
2136 "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
2137 "dev": true
2138 }
2139 }
2140 },
2141 "typescript": {
2142 "version": "2.9.2",
2143 "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
2144 "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
2145 "dev": true
2146 },
2147 "uc.micro": {
2148 "version": "1.0.5",
2149 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
2150 "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==",
2151 "dev": true
2152 },
2153 "underscore": {
2154 "version": "1.9.1",
2155 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
2156 "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
2157 "dev": true
2158 },
2159 "unique-stream": {
2160 "version": "2.2.1",
2161 "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
2162 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
2163 "dev": true,
2164 "requires": {
2165 "json-stable-stringify": "1.0.1",
2166 "through2-filter": "2.0.0"
2167 }
2168 },
2169 "url-join": {
2170 "version": "1.1.0",
2171 "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz",
2172 "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=",
2173 "dev": true
2174 },
2175 "url-parse": {
2176 "version": "1.4.3",
2177 "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz",
2178 "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==",
2179 "dev": true,
2180 "requires": {
2181 "querystringify": "2.0.0",
2182 "requires-port": "1.0.0"
2183 }
2184 },
2185 "util-deprecate": {
2186 "version": "1.0.2",
2187 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2188 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2189 "dev": true
2190 },
2191 "uuid": {
2192 "version": "3.3.2",
2193 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
2194 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
2195 "dev": true
2196 },
2197 "vali-date": {
2198 "version": "1.0.0",
2199 "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
2200 "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
2201 "dev": true
2202 },
2203 "verror": {
2204 "version": "1.10.0",
2205 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2206 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2207 "dev": true,
2208 "requires": {
2209 "assert-plus": "1.0.0",
2210 "core-util-is": "1.0.2",
2211 "extsprintf": "1.3.0"
2212 }
2213 },
2214 "vinyl": {
2215 "version": "0.4.6",
2216 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
2217 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
2218 "dev": true,
2219 "requires": {
2220 "clone": "0.2.0",
2221 "clone-stats": "0.0.1"
2222 }
2223 },
2224 "vinyl-fs": {
2225 "version": "2.4.4",
2226 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
2227 "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
2228 "dev": true,
2229 "requires": {
2230 "duplexify": "3.6.0",
2231 "glob-stream": "5.3.5",
2232 "graceful-fs": "4.1.11",
2233 "gulp-sourcemaps": "1.6.0",
2234 "is-valid-glob": "0.3.0",
2235 "lazystream": "1.0.0",
2236 "lodash.isequal": "4.5.0",
2237 "merge-stream": "1.0.1",
2238 "mkdirp": "0.5.1",
2239 "object-assign": "4.1.1",
2240 "readable-stream": "2.3.6",
2241 "strip-bom": "2.0.0",
2242 "strip-bom-stream": "1.0.0",
2243 "through2": "2.0.3",
2244 "through2-filter": "2.0.0",
2245 "vali-date": "1.0.0",
2246 "vinyl": "1.2.0"
2247 },
2248 "dependencies": {
2249 "clone": {
2250 "version": "1.0.4",
2251 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
2252 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
2253 "dev": true
2254 },
2255 "replace-ext": {
2256 "version": "0.0.1",
2257 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
2258 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
2259 "dev": true
2260 },
2261 "vinyl": {
2262 "version": "1.2.0",
2263 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
2264 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
2265 "dev": true,
2266 "requires": {
2267 "clone": "1.0.4",
2268 "clone-stats": "0.0.1",
2269 "replace-ext": "0.0.1"
2270 }
2271 }
2272 }
2273 },
2274 "vinyl-source-stream": {
2275 "version": "1.1.2",
2276 "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz",
2277 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=",
2278 "dev": true,
2279 "requires": {
2280 "through2": "2.0.3",
2281 "vinyl": "0.4.6"
2282 }
2283 },
2284 "vsce": {
2285 "version": "1.46.0",
2286 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.46.0.tgz",
2287 "integrity": "sha512-cNQru5mXBPUtMDgwRNoespaR0gjdL09hV1KWktT5wkmTZfv0dSaAqqGAfr+2UI0aJTGttCcO3xKFQqtIcJpczA==",
2288 "dev": true,
2289 "requires": {
2290 "cheerio": "1.0.0-rc.2",
2291 "commander": "2.11.0",
2292 "denodeify": "1.2.1",
2293 "glob": "7.1.3",
2294 "lodash": "4.17.10",
2295 "markdown-it": "8.4.2",
2296 "mime": "1.6.0",
2297 "minimatch": "3.0.4",
2298 "osenv": "0.1.5",
2299 "parse-semver": "1.1.1",
2300 "read": "1.0.7",
2301 "semver": "5.5.1",
2302 "tmp": "0.0.29",
2303 "url-join": "1.1.0",
2304 "vso-node-api": "6.1.2-preview",
2305 "yauzl": "2.10.0",
2306 "yazl": "2.4.3"
2307 }
2308 },
2309 "vscode": {
2310 "version": "1.1.21",
2311 "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.21.tgz",
2312 "integrity": "sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A==",
2313 "dev": true,
2314 "requires": {
2315 "glob": "7.1.3",
2316 "gulp-chmod": "2.0.0",
2317 "gulp-filter": "5.1.0",
2318 "gulp-gunzip": "1.0.0",
2319 "gulp-remote-src-vscode": "0.5.0",
2320 "gulp-symdest": "1.1.0",
2321 "gulp-untar": "0.0.7",
2322 "gulp-vinyl-zip": "2.1.0",
2323 "mocha": "4.1.0",
2324 "request": "2.88.0",
2325 "semver": "5.5.1",
2326 "source-map-support": "0.5.9",
2327 "url-parse": "1.4.3",
2328 "vinyl-source-stream": "1.1.2"
2329 }
2330 },
2331 "vscode-jsonrpc": {
2332 "version": "3.6.2",
2333 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz",
2334 "integrity": "sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA=="
2335 },
2336 "vscode-languageclient": {
2337 "version": "4.4.2",
2338 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.2.tgz",
2339 "integrity": "sha512-9TUzsg1UM6n1UEyPlWbDf7tK1wJAK7UGFRmGDN8sz4KmbbDiVRh6YicaB/5oRSVTpuV47PdJpYlOl3SJ0RiK1Q==",
2340 "requires": {
2341 "vscode-languageserver-protocol": "3.12.0"
2342 }
2343 },
2344 "vscode-languageserver-protocol": {
2345 "version": "3.12.0",
2346 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.12.0.tgz",
2347 "integrity": "sha512-evY6hmyzLnwQrqlQWPrNBq1z8wrSNjLesmgPzeS6Zv11mVS5UJRel26hbM/DH5tHdn45huNzRW0eFHRmIm8LpA==",
2348 "requires": {
2349 "vscode-jsonrpc": "3.6.2",
2350 "vscode-languageserver-types": "3.12.0"
2351 }
2352 },
2353 "vscode-languageserver-types": {
2354 "version": "3.12.0",
2355 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.12.0.tgz",
2356 "integrity": "sha512-UxqnpzBToPO7Mi2tr/s5JeyPOSKSJtLB8lIdxCg9ZNdvP2cU8wS7iTDtwQKz91Ne4CUmTdf85ddR5SIZKXmMjQ=="
2357 },
2358 "vso-node-api": {
2359 "version": "6.1.2-preview",
2360 "resolved": "https://registry.npmjs.org/vso-node-api/-/vso-node-api-6.1.2-preview.tgz",
2361 "integrity": "sha1-qrNUbfJFHs2JTgcbuZtd8Zxfp48=",
2362 "dev": true,
2363 "requires": {
2364 "q": "1.5.1",
2365 "tunnel": "0.0.4",
2366 "typed-rest-client": "0.9.0",
2367 "underscore": "1.9.1"
2368 }
2369 },
2370 "wrappy": {
2371 "version": "1.0.2",
2372 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2373 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2374 "dev": true
2375 },
2376 "xtend": {
2377 "version": "4.0.1",
2378 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
2379 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
2380 "dev": true
2381 },
2382 "yauzl": {
2383 "version": "2.10.0",
2384 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
2385 "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
2386 "dev": true,
2387 "requires": {
2388 "buffer-crc32": "0.2.13",
2389 "fd-slicer": "1.1.0"
2390 }
2391 },
2392 "yazl": {
2393 "version": "2.4.3",
2394 "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.4.3.tgz",
2395 "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=",
2396 "dev": true,
2397 "requires": {
2398 "buffer-crc32": "0.2.13"
2399 }
2400 }
2401 }
2402}
diff --git a/code/package.json b/code/package.json
deleted file mode 100644
index 87e715c44..000000000
--- a/code/package.json
+++ /dev/null
@@ -1,149 +0,0 @@
1{
2 "name": "rcf-lsp",
3 "displayName": "rcf-lsp",
4 "description": "",
5 "version": "0.0.1",
6 "publisher": "matklad",
7 "repository": {
8 "url": "https://github.com/matklad/libsyntax2/"
9 },
10 "categories": [
11 "Other"
12 ],
13 "engines": {
14 "vscode": "^1.26.0"
15 },
16 "scripts": {
17 "vscode:prepublish": "npm run compile",
18 "compile": "tsc -p ./",
19 "watch": "tsc -watch -p ./",
20 "postinstall": "node ./node_modules/vscode/bin/install"
21 },
22 "dependencies": {
23 "vscode-languageclient": "^4.4.0"
24 },
25 "devDependencies": {
26 "typescript": "^2.6.1",
27 "vscode": "^1.1.21",
28 "vsce": "^1.42.0",
29 "@types/node": "^8.10.25",
30 "@types/mocha": "^2.2.42"
31 },
32 "activationEvents": [
33 "onLanguage:rust"
34 ],
35 "main": "./out/extension",
36 "contributes": {
37 "taskDefinitions": [
38 {
39 "type": "cargo",
40 "required": [
41 "command"
42 ],
43 "properties": {
44 "label": {
45 "type": "string"
46 },
47 "command": {
48 "type": "string"
49 },
50 "args": {
51 "type": "array"
52 },
53 "env": {
54 "type": "object"
55 }
56 }
57 }
58 ],
59 "commands": [
60 {
61 "command": "libsyntax-rust.createFile",
62 "title": "Show Rust syntax tree"
63 },
64 {
65 "command": "libsyntax-rust.syntaxTree",
66 "title": "Show Rust syntax tree"
67 },
68 {
69 "command": "libsyntax-rust.extendSelection",
70 "title": "Rust Extend Selection"
71 },
72 {
73 "command": "libsyntax-rust.matchingBrace",
74 "title": "Rust Matching Brace"
75 },
76 {
77 "command": "libsyntax-rust.parentModule",
78 "title": "Rust Parent Module"
79 },
80 {
81 "command": "libsyntax-rust.joinLines",
82 "title": "Rust Join Lines"
83 },
84 {
85 "command": "libsyntax-rust.run",
86 "title": "Rust Run"
87 }
88 ],
89 "keybindings": [
90 {
91 "command": "libsyntax-rust.parentModule",
92 "key": "ctrl+u",
93 "when": "editorTextFocus && editorLangId == rust"
94 },
95 {
96 "command": "libsyntax-rust.matchingBrace",
97 "key": "ctrl+shift+m",
98 "when": "editorTextFocus && editorLangId == rust"
99 },
100 {
101 "command": "libsyntax-rust.extendSelection",
102 "key": "ctrl+w",
103 "when": "editorTextFocus && editorLangId == rust"
104 },
105 {
106 "command": "libsyntax-rust.joinLines",
107 "key": "ctrl+shift+j",
108 "when": "editorTextFocus && editorLangId == rust"
109 },
110 {
111 "command": "libsyntax-rust.run",
112 "key": "ctrl+r",
113 "when": "editorTextFocus && editorLangId == rust"
114 }
115 ],
116 "problemMatchers": [
117 {
118 "name": "rustc",
119 "fileLocation": [
120 "relative",
121 "${workspaceRoot}"
122 ],
123 "pattern": [
124 {
125 "regexp": "^(warning|warn|error)(\\[(.*)\\])?: (.*)$",
126 "severity": 1,
127 "message": 4,
128 "code": 3
129 },
130 {
131 "regexp": "^([\\s->=]*(.*):(\\d*):(\\d*)|.*)$",
132 "file": 2,
133 "line": 3,
134 "column": 4
135 },
136 {
137 "regexp": "^.*$"
138 },
139 {
140 "regexp": "^([\\s->=]*(.*):(\\d*):(\\d*)|.*)$",
141 "file": 2,
142 "line": 3,
143 "column": 4
144 }
145 ]
146 }
147 ]
148 }
149}
diff --git a/code/src/extension.ts b/code/src/extension.ts
deleted file mode 100644
index 53ef83aab..000000000
--- a/code/src/extension.ts
+++ /dev/null
@@ -1,402 +0,0 @@
1'use strict';
2import * as vscode from 'vscode';
3import * as lc from 'vscode-languageclient'
4import { DH_UNABLE_TO_CHECK_GENERATOR } from 'constants';
5
6
7let client: lc.LanguageClient;
8
9let uris = {
10 syntaxTree: vscode.Uri.parse('libsyntax-rust://syntaxtree')
11}
12
13
14export function activate(context: vscode.ExtensionContext) {
15 let textDocumentContentProvider = new TextDocumentContentProvider()
16 let dispose = (disposable: vscode.Disposable) => {
17 context.subscriptions.push(disposable);
18 }
19 let registerCommand = (name: string, f: any) => {
20 dispose(vscode.commands.registerCommand(name, f))
21 }
22
23 registerCommand('libsyntax-rust.syntaxTree', () => openDoc(uris.syntaxTree))
24 registerCommand('libsyntax-rust.extendSelection', async () => {
25 let editor = vscode.window.activeTextEditor
26 if (editor == null || editor.document.languageId != "rust") return
27 let request: ExtendSelectionParams = {
28 textDocument: { uri: editor.document.uri.toString() },
29 selections: editor.selections.map((s) => {
30 return client.code2ProtocolConverter.asRange(s)
31 })
32 }
33 let response = await client.sendRequest<ExtendSelectionResult>("m/extendSelection", request)
34 editor.selections = response.selections.map((range) => {
35 let r = client.protocol2CodeConverter.asRange(range)
36 return new vscode.Selection(r.start, r.end)
37 })
38 })
39 registerCommand('libsyntax-rust.matchingBrace', async () => {
40 let editor = vscode.window.activeTextEditor
41 if (editor == null || editor.document.languageId != "rust") return
42 let request: FindMatchingBraceParams = {
43 textDocument: { uri: editor.document.uri.toString() },
44 offsets: editor.selections.map((s) => {
45 return client.code2ProtocolConverter.asPosition(s.active)
46 })
47 }
48 let response = await client.sendRequest<lc.Position[]>("m/findMatchingBrace", request)
49 editor.selections = editor.selections.map((sel, idx) => {
50 let active = client.protocol2CodeConverter.asPosition(response[idx])
51 let anchor = sel.isEmpty ? active : sel.anchor
52 return new vscode.Selection(anchor, active)
53 })
54 editor.revealRange(editor.selection)
55 })
56 registerCommand('libsyntax-rust.joinLines', async () => {
57 let editor = vscode.window.activeTextEditor
58 if (editor == null || editor.document.languageId != "rust") return
59 let request: JoinLinesParams = {
60 textDocument: { uri: editor.document.uri.toString() },
61 range: client.code2ProtocolConverter.asRange(editor.selection),
62 }
63 let change = await client.sendRequest<SourceChange>("m/joinLines", request)
64 await applySourceChange(change)
65 })
66 registerCommand('libsyntax-rust.parentModule', async () => {
67 let editor = vscode.window.activeTextEditor
68 if (editor == null || editor.document.languageId != "rust") return
69 let request: lc.TextDocumentIdentifier = {
70 uri: editor.document.uri.toString()
71 }
72 let response = await client.sendRequest<lc.Location[]>("m/parentModule", request)
73 let loc = response[0]
74 if (loc == null) return
75 let uri = client.protocol2CodeConverter.asUri(loc.uri)
76 let range = client.protocol2CodeConverter.asRange(loc.range)
77
78 let doc = await vscode.workspace.openTextDocument(uri)
79 let e = await vscode.window.showTextDocument(doc)
80 e.revealRange(range, vscode.TextEditorRevealType.InCenter)
81 })
82
83 let prevRunnable: RunnableQuickPick | undefined = undefined
84 registerCommand('libsyntax-rust.run', async () => {
85 let editor = vscode.window.activeTextEditor
86 if (editor == null || editor.document.languageId != "rust") return
87 let textDocument: lc.TextDocumentIdentifier = {
88 uri: editor.document.uri.toString()
89 }
90 let params: RunnablesParams = {
91 textDocument,
92 position: client.code2ProtocolConverter.asPosition(editor.selection.active)
93 }
94 let runnables = await client.sendRequest<Runnable[]>('m/runnables', params)
95 let items: RunnableQuickPick[] = []
96 if (prevRunnable) {
97 items.push(prevRunnable)
98 }
99 for (let r of runnables) {
100 if (prevRunnable && JSON.stringify(prevRunnable.runnable) == JSON.stringify(r)) {
101 continue
102 }
103 items.push(new RunnableQuickPick(r))
104 }
105 let item = await vscode.window.showQuickPick(items)
106 if (item) {
107 item.detail = "rerun"
108 prevRunnable = item
109 let task = createTask(item.runnable)
110 return await vscode.tasks.executeTask(task)
111 }
112 })
113 registerCommand('libsyntax-rust.applySourceChange', applySourceChange)
114
115 dispose(vscode.workspace.registerTextDocumentContentProvider(
116 'libsyntax-rust',
117 textDocumentContentProvider
118 ))
119 startServer()
120 vscode.workspace.onDidChangeTextDocument((event: vscode.TextDocumentChangeEvent) => {
121 let doc = event.document
122 if (doc.languageId != "rust") return
123 afterLs(() => {
124 textDocumentContentProvider.eventEmitter.fire(uris.syntaxTree)
125 })
126 }, null, context.subscriptions)
127 vscode.window.onDidChangeActiveTextEditor(async (editor) => {
128 if (!editor || editor.document.languageId != 'rust') return
129 let params: lc.TextDocumentIdentifier = {
130 uri: editor.document.uri.toString()
131 }
132 let decorations = await client.sendRequest<Decoration[]>("m/decorationsRequest", params)
133 setHighlights(editor, decorations)
134 })
135}
136
137// We need to order this after LS updates, but there's no API for that.
138// Hence, good old setTimeout.
139function afterLs(f: () => any) {
140 setTimeout(f, 10)
141}
142
143export function deactivate(): Thenable<void> {
144 if (!client) {
145 return Promise.resolve();
146 }
147 return client.stop();
148}
149
150function startServer() {
151 let run: lc.Executable = {
152 // command: "cargo",
153 // args: ["run", "--package", "m"],
154 command: "m",
155 options: { cwd: "." }
156 }
157 let serverOptions: lc.ServerOptions = {
158 run,
159 debug: run
160 };
161
162 let clientOptions: lc.LanguageClientOptions = {
163 documentSelector: [{ scheme: 'file', language: 'rust' }],
164 };
165
166 client = new lc.LanguageClient(
167 'm',
168 'm languge server',
169 serverOptions,
170 clientOptions,
171 );
172 client.onReady().then(() => {
173 client.onNotification(
174 "m/publishDecorations",
175 (params: PublishDecorationsParams) => {
176 let editor = vscode.window.visibleTextEditors.find(
177 (editor) => editor.document.uri.toString() == params.uri
178 )
179 if (editor == null) return;
180 setHighlights(
181 editor,
182 params.decorations,
183 )
184 }
185 )
186 })
187 client.start();
188}
189
190async function openDoc(uri: vscode.Uri) {
191 let document = await vscode.workspace.openTextDocument(uri)
192 return vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true)
193}
194
195class TextDocumentContentProvider implements vscode.TextDocumentContentProvider {
196 public eventEmitter = new vscode.EventEmitter<vscode.Uri>()
197 public syntaxTree: string = "Not available"
198
199 public provideTextDocumentContent(uri: vscode.Uri): vscode.ProviderResult<string> {
200 let editor = vscode.window.activeTextEditor;
201 if (editor == null) return ""
202 let request: SyntaxTreeParams = {
203 textDocument: { uri: editor.document.uri.toString() }
204 };
205 return client.sendRequest<SyntaxTreeResult>("m/syntaxTree", request);
206 }
207
208 get onDidChange(): vscode.Event<vscode.Uri> {
209 return this.eventEmitter.event
210 }
211}
212
213
214const decorations: { [index: string]: vscode.TextEditorDecorationType } = (() => {
215 const decor = (obj: any) => vscode.window.createTextEditorDecorationType({ color: obj })
216 return {
217 background: decor("#3F3F3F"),
218 error: vscode.window.createTextEditorDecorationType({
219 borderColor: "red",
220 borderStyle: "none none dashed none",
221 }),
222 comment: decor("#7F9F7F"),
223 string: decor("#CC9393"),
224 keyword: decor("#F0DFAF"),
225 function: decor("#93E0E3"),
226 parameter: decor("#94BFF3"),
227 builtin: decor("#DD6718"),
228 text: decor("#DCDCCC"),
229 attribute: decor("#BFEBBF"),
230 literal: decor("#DFAF8F"),
231 }
232})()
233
234function setHighlights(
235 editor: vscode.TextEditor,
236 highlihgs: Array<Decoration>
237) {
238 let byTag: Map<string, vscode.Range[]> = new Map()
239 for (let tag in decorations) {
240 byTag.set(tag, [])
241 }
242
243 for (let d of highlihgs) {
244 if (!byTag.get(d.tag)) {
245 console.log(`unknown tag ${d.tag}`)
246 continue
247 }
248 byTag.get(d.tag)!.push(
249 client.protocol2CodeConverter.asRange(d.range)
250 )
251 }
252
253 for (let tag of byTag.keys()) {
254 let dec: vscode.TextEditorDecorationType = decorations[tag]
255 let ranges = byTag.get(tag)!
256 editor.setDecorations(dec, ranges)
257 }
258}
259
260interface SyntaxTreeParams {
261 textDocument: lc.TextDocumentIdentifier;
262}
263
264type SyntaxTreeResult = string
265
266interface ExtendSelectionParams {
267 textDocument: lc.TextDocumentIdentifier;
268 selections: lc.Range[];
269}
270
271interface ExtendSelectionResult {
272 selections: lc.Range[];
273}
274
275interface FindMatchingBraceParams {
276 textDocument: lc.TextDocumentIdentifier;
277 offsets: lc.Position[];
278}
279
280interface JoinLinesParams {
281 textDocument: lc.TextDocumentIdentifier;
282 range: lc.Range;
283}
284
285interface PublishDecorationsParams {
286 uri: string,
287 decorations: Decoration[],
288}
289
290interface RunnablesParams {
291 textDocument: lc.TextDocumentIdentifier,
292 position?: lc.Position,
293}
294
295interface Runnable {
296 range: lc.Range;
297 label: string;
298 bin: string;
299 args: string[];
300 env: { [index: string]: string },
301}
302
303class RunnableQuickPick implements vscode.QuickPickItem {
304 label: string;
305 description?: string | undefined;
306 detail?: string | undefined;
307 picked?: boolean | undefined;
308
309 constructor(public runnable: Runnable) {
310 this.label = runnable.label
311 }
312}
313
314interface Decoration {
315 range: lc.Range,
316 tag: string,
317}
318
319
320interface CargoTaskDefinition extends vscode.TaskDefinition {
321 type: 'cargo';
322 label: string;
323 command: string;
324 args: Array<string>;
325 env?: { [key: string]: string };
326}
327
328function createTask(spec: Runnable): vscode.Task {
329 const TASK_SOURCE = 'Rust';
330 let definition: CargoTaskDefinition = {
331 type: 'cargo',
332 label: 'cargo',
333 command: spec.bin,
334 args: spec.args,
335 env: spec.env
336 }
337
338 let execCmd = `${definition.command} ${definition.args.join(' ')}`;
339 let execOption: vscode.ShellExecutionOptions = {
340 cwd: '.',
341 env: definition.env,
342 };
343 let exec = new vscode.ShellExecution(`clear; ${execCmd}`, execOption);
344
345 let f = vscode.workspace.workspaceFolders![0]
346 let t = new vscode.Task(definition, f, definition.label, TASK_SOURCE, exec, ['$rustc']);
347 return t;
348}
349
350interface FileSystemEdit {
351 type: string;
352 uri?: string;
353 src?: string;
354 dst?: string;
355}
356
357interface SourceChange {
358 label: string,
359 sourceFileEdits: lc.TextDocumentEdit[],
360 fileSystemEdits: FileSystemEdit[],
361 cursorPosition?: lc.TextDocumentPositionParams,
362}
363
364async function applySourceChange(change: SourceChange) {
365 console.log(`applySOurceChange ${JSON.stringify(change)}`)
366 let wsEdit = new vscode.WorkspaceEdit()
367 for (let sourceEdit of change.sourceFileEdits) {
368 let uri = client.protocol2CodeConverter.asUri(sourceEdit.textDocument.uri)
369 let edits = client.protocol2CodeConverter.asTextEdits(sourceEdit.edits)
370 wsEdit.set(uri, edits)
371 }
372 let created;
373 let moved;
374 for (let fsEdit of change.fileSystemEdits) {
375 if (fsEdit.type == "createFile") {
376 let uri = vscode.Uri.parse(fsEdit.uri!)
377 wsEdit.createFile(uri)
378 created = uri
379 } else if (fsEdit.type == "moveFile") {
380 let src = vscode.Uri.parse(fsEdit.src!)
381 let dst = vscode.Uri.parse(fsEdit.dst!)
382 wsEdit.renameFile(src, dst)
383 moved = dst
384 } else {
385 console.error(`unknown op: ${JSON.stringify(fsEdit)}`)
386 }
387 }
388 let toOpen = created || moved
389 let toReveal = change.cursorPosition
390 await vscode.workspace.applyEdit(wsEdit)
391 if (toOpen) {
392 let doc = await vscode.workspace.openTextDocument(toOpen)
393 await vscode.window.showTextDocument(doc)
394 } else if (toReveal) {
395 let uri = client.protocol2CodeConverter.asUri(toReveal.textDocument.uri)
396 let position = client.protocol2CodeConverter.asPosition(toReveal.position)
397 let editor = vscode.window.activeTextEditor;
398 if (!editor || editor.document.uri.toString() != uri.toString()) return
399 if (!editor.selection.isEmpty) return
400 editor!.selection = new vscode.Selection(position, position)
401 }
402}
diff --git a/code/tsconfig.json b/code/tsconfig.json
deleted file mode 100644
index ebec01624..000000000
--- a/code/tsconfig.json
+++ /dev/null
@@ -1,17 +0,0 @@
1{
2 "compilerOptions": {
3 "module": "commonjs",
4 "target": "es6",
5 "outDir": "out",
6 "lib": [
7 "es6"
8 ],
9 "sourceMap": true,
10 "rootDir": "src",
11 "strict": true
12 },
13 "exclude": [
14 "node_modules",
15 ".vscode-test"
16 ]
17}