aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--code/.gitignore1
-rw-r--r--code/common.ts278
-rw-r--r--code/package-lock.json860
-rw-r--r--code/package.json98
-rw-r--r--code/src/extension.ts (renamed from codeless/src/extension.ts)9
-rw-r--r--code/src/main.ts208
-rw-r--r--code/tsconfig.json5
-rw-r--r--codeless/.gitignore7
-rw-r--r--codeless/.npmrc4
-rw-r--r--codeless/.vscode/launch.json19
-rw-r--r--codeless/.vscode/settings.json10
-rw-r--r--codeless/.vscode/tasks.json31
-rw-r--r--codeless/package-lock.json2381
-rw-r--r--codeless/package.json48
-rw-r--r--codeless/tsconfig.json12
-rw-r--r--crates/server/src/main.rs2
16 files changed, 159 insertions, 3814 deletions
diff --git a/code/.gitignore b/code/.gitignore
index c3f44bc49..7a3b76693 100644
--- a/code/.gitignore
+++ b/code/.gitignore
@@ -4,3 +4,4 @@ artifacts.json
4*.vsix 4*.vsix
5out/* 5out/*
6node_modules/* 6node_modules/*
7log/*
diff --git a/code/common.ts b/code/common.ts
deleted file mode 100644
index dfd49833d..000000000
--- a/code/common.ts
+++ /dev/null
@@ -1,278 +0,0 @@
1import * as vscode from 'vscode'
2import { log } from 'util'
3
4export function createPlugin(
5 backend,
6 fileExtension: string,
7 disposables: vscode.Disposable[],
8 doHighlighting: boolean = false,
9 diganosticCollection: vscode.DiagnosticCollection | null = null
10) {
11 let uris = {
12 syntaxTree: vscode.Uri.parse(`fall-${fileExtension}://syntaxtree`),
13 metrics: vscode.Uri.parse(`fall-${fileExtension}://metrics`)
14 }
15
16 function updateActiveEditor() {
17 let editor = vscode.window.activeTextEditor
18 if (editor == null) return
19 let file = currentFile()
20 if (file == null) return
21 if (doHighlighting) {
22 setHighlights(editor, file.highlight())
23 }
24 if (diganosticCollection != null) {
25 diganosticCollection.clear()
26 diganosticCollection.set(
27 editor.document.uri,
28 file.diagnostics()
29 )
30 }
31 }
32
33
34 function currentFile(): EditorFile | null {
35 let editor = vscode.window.activeTextEditor
36 if (editor == null) return
37 let doc = editor.document
38 return getFile(doc)
39 }
40
41 vscode.window.onDidChangeActiveTextEditor(updateActiveEditor)
42 let cmd = vscode.commands.registerCommand(`fall-${fileExtension}.applyContextAction`, (range, id) => {
43 let file = currentFile()
44 if (file == null) return
45 return file.applyContextAction(range, id)
46 })
47 disposables.push(cmd)
48
49 return {
50 getFile: getFile,
51 showSyntaxTree: () => {
52 let file = currentFile()
53 if (file == null) return
54 return openDoc(uris.syntaxTree)
55 },
56 metrics: () => {
57 let file = currentFile()
58 if (file == null) return
59 return openDoc(uris.metrics)
60 },
61 extendSelection: () => {
62 let editor = vscode.window.activeTextEditor
63 let file = currentFile()
64 if (editor == null || file == null) return
65 editor.selections = editor.selections.map((s) => {
66 let range = file.extendSelection(s)
67 return new vscode.Selection(range.start, range.end)
68 })
69 },
70 documentSymbolsProvider: new DocumentSymbolProvider(getFile),
71 documentFormattingEditProvider: new DocumentFormattingEditProvider(getFile),
72 codeActionProvider: new CodeActionProvider(getFile, fileExtension)
73 }
74}
75
76
77export interface FileStructureNode {
78 name: string
79 range: [number, number]
80 children: [FileStructureNode]
81}
82
83export interface FallDiagnostic {
84 range: [number, number]
85 severity: string
86 message: string
87}
88
89export class EditorFile {
90 backend;
91 imp;
92 doc: vscode.TextDocument;
93
94 constructor(backend, imp, doc: vscode.TextDocument) {
95 this.backend = backend
96 this.imp = imp
97 this.doc = doc
98 }
99
100 metrics(): string { return this.call("metrics") }
101 syntaxTree(): string { return this.call("syntaxTree") }
102 extendSelection(range_: vscode.Range): vscode.Range | null {
103 let range = fromVsRange(this.doc, range_)
104 let exp = this.call("extendSelection", range)
105 if (exp == null) return null
106 return toVsRange(this.doc, exp)
107 }
108
109 structure(): Array<FileStructureNode> { return this.call("structure") }
110 reformat(): Array<vscode.TextEdit> {
111 let edits = this.call("reformat")
112 return toVsEdits(this.doc, edits)
113 }
114
115 highlight(): Array<[[number, number], string]> { return this.call("highlight") }
116 diagnostics(): Array<vscode.Diagnostic> {
117 return this.call("diagnostics").map((d) => {
118 let range = toVsRange(this.doc, d.range)
119 let severity = d.severity == "Error"
120 ? vscode.DiagnosticSeverity.Error
121 : vscode.DiagnosticSeverity.Warning
122
123 return new vscode.Diagnostic(range, d.message, severity)
124 })
125 }
126
127 contextActions(range_: vscode.Range): Array<string> {
128 let range = fromVsRange(this.doc, range_)
129 let result = this.call("contextActions", range)
130 return result
131 }
132
133 applyContextAction(range_: vscode.Range, id: string) {
134 let range = fromVsRange(this.doc, range_)
135 let edits = this.call("applyContextAction", range, id)
136 let editor = vscode.window.activeTextEditor
137 return editor.edit((builder) => {
138 for (let op of edits) {
139 builder.replace(toVsRange(this.doc, op.delete), op.insert)
140 }
141 })
142 }
143
144 call(method: string, ...args) {
145 let result = this.backend[method](this.imp, ...args)
146 return result
147 }
148}
149
150function documentToFile(backend, fileExtension: string, disposables: vscode.Disposable[], onChange) {
151 let docs = {}
152 function update(doc: vscode.TextDocument, file) {
153 let key = doc.uri.toString()
154 if (file == null) {
155 delete docs[key]
156 } else {
157 docs[key] = file
158 }
159 onChange(doc)
160 }
161 function get(doc: vscode.TextDocument) {
162 return docs[doc.uri.toString()]
163 }
164
165 function isKnownDoc(doc: vscode.TextDocument) {
166 return doc.fileName.endsWith(`.${fileExtension}`)
167 }
168
169 vscode.workspace.onDidChangeTextDocument((event: vscode.TextDocumentChangeEvent) => {
170 let doc = event.document
171 if (!isKnownDoc(event.document)) return
172 let tree = get(doc)
173 if (event.contentChanges.length == 1 && tree) {
174 let edits = event.contentChanges.map((change) => {
175 let start = doc.offsetAt(change.range.start)
176 return {
177 "delete": [start, start + change.rangeLength],
178 "insert": change.text
179 }
180 })
181 update(doc, backend.edit(tree, edits))
182 return
183 }
184 update(doc, null)
185 }, null, disposables)
186
187 vscode.workspace.onDidOpenTextDocument((doc: vscode.TextDocument) => {
188 if (!isKnownDoc(doc)) return
189 update(doc, backend.parse(doc.getText()))
190 }, null, disposables)
191
192 vscode.workspace.onDidCloseTextDocument((doc: vscode.TextDocument) => {
193 update(doc, null)
194 }, null, disposables)
195
196 return (doc: vscode.TextDocument) => {
197 if (!isKnownDoc(doc)) return null
198
199 if (!get(doc)) {
200 update(doc, backend.parse(doc.getText()))
201 }
202 let imp = get(doc)
203 return new EditorFile(backend, imp, doc)
204 }
205}
206
207export class DocumentSymbolProvider implements vscode.DocumentSymbolProvider {
208 getFile: (doc: vscode.TextDocument) => EditorFile | null;
209 constructor(getFile) {
210 this.getFile = getFile
211 }
212
213 provideDocumentSymbols(document: vscode.TextDocument, token: vscode.CancellationToken) {
214 let file = this.getFile(document)
215 if (file == null) return null
216 return file.structure().map((node) => {
217 return new vscode.SymbolInformation(
218 node.name,
219 vscode.SymbolKind.Function,
220 toVsRange(document, node.range),
221 null,
222 null
223 )
224 })
225 }
226}
227
228export class DocumentFormattingEditProvider implements vscode.DocumentFormattingEditProvider {
229 getFile: (doc: vscode.TextDocument) => EditorFile | null;
230 constructor(getFile) { this.getFile = getFile }
231
232 provideDocumentFormattingEdits(
233 document: vscode.TextDocument,
234 options: vscode.FormattingOptions,
235 token: vscode.CancellationToken
236 ): vscode.TextEdit[] {
237 let file = this.getFile(document)
238 if (file == null) return []
239 return file.reformat()
240 }
241}
242
243export class CodeActionProvider implements vscode.CodeActionProvider {
244 fileExtension: string
245 getFile: (doc: vscode.TextDocument) => EditorFile | null;
246 constructor(getFile, fileExtension) {
247 this.getFile = getFile
248 this.fileExtension = fileExtension
249 }
250
251 provideCodeActions(
252 document: vscode.TextDocument,
253 range: vscode.Range,
254 context: vscode.CodeActionContext,
255 token: vscode.CancellationToken
256 ): vscode.Command[] {
257 let file = this.getFile(document)
258 if (file == null) return
259 let actions = file.contextActions(range)
260 return actions.map((id) => {
261 return {
262 title: id,
263 command: `fall-${this.fileExtension}.applyContextAction`,
264 arguments: [range, id]
265 }
266 })
267 }
268}
269
270
271export function toVsEdits(doc: vscode.TextDocument, edits): Array<vscode.TextEdit> {
272 return edits.map((op) => vscode.TextEdit.replace(toVsRange(doc, op.delete), op.insert))
273}
274
275async function openDoc(uri: vscode.Uri) {
276 let document = await vscode.workspace.openTextDocument(uri)
277 vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true)
278}
diff --git a/code/package-lock.json b/code/package-lock.json
index 1c9a815d8..4f0d14bdf 100644
--- a/code/package-lock.json
+++ b/code/package-lock.json
@@ -5,9 +5,9 @@
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
7 "@types/node": { 7 "@types/node": {
8 "version": "6.0.114", 8 "version": "7.0.69",
9 "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.114.tgz", 9 "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.69.tgz",
10 "integrity": "sha512-5ViC9dwf1VIAtrOFTvOuN04lJgw28eKjuy0Vg2Bd/fSlxKP2feCSkIw04ZgOENL2ywdWrtbkthp1XVLEjJmouw==", 10 "integrity": "sha512-S5NC8HV6HnRipg8nC0j30TPl7ktXjRTKqgyINLNe8K/64UJUI8Lq0sRopXC0hProsV2F5ibj8IqPkl1xpGggrw==",
11 "dev": true 11 "dev": true
12 }, 12 },
13 "ajv": { 13 "ajv": {
@@ -22,23 +22,6 @@
22 "json-schema-traverse": "0.3.1" 22 "json-schema-traverse": "0.3.1"
23 } 23 }
24 }, 24 },
25 "align-text": {
26 "version": "0.1.4",
27 "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
28 "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
29 "dev": true,
30 "requires": {
31 "kind-of": "3.2.2",
32 "longest": "1.0.1",
33 "repeat-string": "1.6.1"
34 }
35 },
36 "amdefine": {
37 "version": "1.0.1",
38 "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
39 "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
40 "dev": true
41 },
42 "ansi-cyan": { 25 "ansi-cyan": {
43 "version": "0.1.1", 26 "version": "0.1.1",
44 "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", 27 "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
@@ -48,21 +31,6 @@
48 "ansi-wrap": "0.1.0" 31 "ansi-wrap": "0.1.0"
49 } 32 }
50 }, 33 },
51 "ansi-escape-sequences": {
52 "version": "4.0.0",
53 "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz",
54 "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==",
55 "dev": true,
56 "requires": {
57 "array-back": "2.0.0"
58 }
59 },
60 "ansi-escapes": {
61 "version": "3.1.0",
62 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
63 "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
64 "dev": true
65 },
66 "ansi-red": { 34 "ansi-red": {
67 "version": "0.1.1", 35 "version": "0.1.1",
68 "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", 36 "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
@@ -72,21 +40,6 @@
72 "ansi-wrap": "0.1.0" 40 "ansi-wrap": "0.1.0"
73 } 41 }
74 }, 42 },
75 "ansi-regex": {
76 "version": "3.0.0",
77 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
78 "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
79 "dev": true
80 },
81 "ansi-styles": {
82 "version": "3.2.1",
83 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
84 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
85 "dev": true,
86 "requires": {
87 "color-convert": "1.9.2"
88 }
89 },
90 "ansi-wrap": { 43 "ansi-wrap": {
91 "version": "0.1.0", 44 "version": "0.1.0",
92 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", 45 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
@@ -124,15 +77,6 @@
124 "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", 77 "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
125 "dev": true 78 "dev": true
126 }, 79 },
127 "array-back": {
128 "version": "2.0.0",
129 "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
130 "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
131 "dev": true,
132 "requires": {
133 "typical": "2.6.1"
134 }
135 },
136 "array-differ": { 80 "array-differ": {
137 "version": "1.0.0", 81 "version": "1.0.0",
138 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", 82 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
@@ -173,10 +117,13 @@
173 "dev": true 117 "dev": true
174 }, 118 },
175 "asn1": { 119 "asn1": {
176 "version": "0.2.3", 120 "version": "0.2.4",
177 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 121 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
178 "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", 122 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
179 "dev": true 123 "dev": true,
124 "requires": {
125 "safer-buffer": "2.1.2"
126 }
180 }, 127 },
181 "assert-plus": { 128 "assert-plus": {
182 "version": "1.0.0", 129 "version": "1.0.0",
@@ -184,12 +131,6 @@
184 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 131 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
185 "dev": true 132 "dev": true
186 }, 133 },
187 "async": {
188 "version": "1.5.2",
189 "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
190 "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
191 "dev": true
192 },
193 "asynckit": { 134 "asynckit": {
194 "version": "0.4.0", 135 "version": "0.4.0",
195 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 136 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -203,9 +144,9 @@
203 "dev": true 144 "dev": true
204 }, 145 },
205 "aws4": { 146 "aws4": {
206 "version": "1.7.0", 147 "version": "1.8.0",
207 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", 148 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
208 "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", 149 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
209 "dev": true 150 "dev": true
210 }, 151 },
211 "balanced-match": { 152 "balanced-match": {
@@ -273,58 +214,17 @@
273 "dev": true 214 "dev": true
274 }, 215 },
275 "buffer-from": { 216 "buffer-from": {
276 "version": "1.1.0", 217 "version": "1.1.1",
277 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", 218 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
278 "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", 219 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
279 "dev": true
280 },
281 "builtins": {
282 "version": "1.0.3",
283 "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
284 "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
285 "dev": true 220 "dev": true
286 }, 221 },
287 "camelcase": {
288 "version": "1.2.1",
289 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
290 "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
291 "dev": true,
292 "optional": true
293 },
294 "caseless": { 222 "caseless": {
295 "version": "0.12.0", 223 "version": "0.12.0",
296 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 224 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
297 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 225 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
298 "dev": true 226 "dev": true
299 }, 227 },
300 "center-align": {
301 "version": "0.1.3",
302 "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
303 "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
304 "dev": true,
305 "optional": true,
306 "requires": {
307 "align-text": "0.1.4",
308 "lazy-cache": "1.0.4"
309 }
310 },
311 "chalk": {
312 "version": "2.1.0",
313 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
314 "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
315 "dev": true,
316 "requires": {
317 "ansi-styles": "3.2.1",
318 "escape-string-regexp": "1.0.5",
319 "supports-color": "4.5.0"
320 }
321 },
322 "chardet": {
323 "version": "0.4.2",
324 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
325 "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
326 "dev": true
327 },
328 "cheerio": { 228 "cheerio": {
329 "version": "1.0.0-rc.2", 229 "version": "1.0.0-rc.2",
330 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", 230 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
@@ -339,42 +239,6 @@
339 "parse5": "3.0.3" 239 "parse5": "3.0.3"
340 } 240 }
341 }, 241 },
342 "cli-cursor": {
343 "version": "2.1.0",
344 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
345 "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
346 "dev": true,
347 "requires": {
348 "restore-cursor": "2.0.0"
349 }
350 },
351 "cli-width": {
352 "version": "2.2.0",
353 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
354 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
355 "dev": true
356 },
357 "cliui": {
358 "version": "2.1.0",
359 "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
360 "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
361 "dev": true,
362 "optional": true,
363 "requires": {
364 "center-align": "0.1.3",
365 "right-align": "0.1.3",
366 "wordwrap": "0.0.2"
367 },
368 "dependencies": {
369 "wordwrap": {
370 "version": "0.0.2",
371 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
372 "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
373 "dev": true,
374 "optional": true
375 }
376 }
377 },
378 "clone": { 242 "clone": {
379 "version": "0.2.0", 243 "version": "0.2.0",
380 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", 244 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
@@ -410,21 +274,6 @@
410 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", 274 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
411 "dev": true 275 "dev": true
412 }, 276 },
413 "color-convert": {
414 "version": "1.9.2",
415 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
416 "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
417 "dev": true,
418 "requires": {
419 "color-name": "1.1.1"
420 }
421 },
422 "color-name": {
423 "version": "1.1.1",
424 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
425 "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
426 "dev": true
427 },
428 "combined-stream": { 277 "combined-stream": {
429 "version": "1.0.6", 278 "version": "1.0.6",
430 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", 279 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
@@ -434,42 +283,10 @@
434 "delayed-stream": "1.0.0" 283 "delayed-stream": "1.0.0"
435 } 284 }
436 }, 285 },
437 "command-line-args": {
438 "version": "4.0.7",
439 "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz",
440 "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==",
441 "dev": true,
442 "requires": {
443 "array-back": "2.0.0",
444 "find-replace": "1.0.3",
445 "typical": "2.6.1"
446 }
447 },
448 "command-line-commands": {
449 "version": "2.0.1",
450 "resolved": "https://registry.npmjs.org/command-line-commands/-/command-line-commands-2.0.1.tgz",
451 "integrity": "sha512-m8c2p1DrNd2ruIAggxd/y6DgygQayf6r8RHwchhXryaLF8I6koYjoYroVP+emeROE9DXN5b9sP1Gh+WtvTTdtQ==",
452 "dev": true,
453 "requires": {
454 "array-back": "2.0.0"
455 }
456 },
457 "command-line-usage": {
458 "version": "4.1.0",
459 "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz",
460 "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==",
461 "dev": true,
462 "requires": {
463 "ansi-escape-sequences": "4.0.0",
464 "array-back": "2.0.0",
465 "table-layout": "0.4.4",
466 "typical": "2.6.1"
467 }
468 },
469 "commander": { 286 "commander": {
470 "version": "2.16.0", 287 "version": "2.17.1",
471 "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", 288 "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
472 "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", 289 "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
473 "dev": true 290 "dev": true
474 }, 291 },
475 "concat-map": { 292 "concat-map": {
@@ -526,13 +343,6 @@
526 "ms": "2.0.0" 343 "ms": "2.0.0"
527 } 344 }
528 }, 345 },
529 "decamelize": {
530 "version": "1.2.0",
531 "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
532 "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
533 "dev": true,
534 "optional": true
535 },
536 "deep-assign": { 346 "deep-assign": {
537 "version": "1.0.0", 347 "version": "1.0.0",
538 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz", 348 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz",
@@ -542,12 +352,6 @@
542 "is-obj": "1.0.1" 352 "is-obj": "1.0.1"
543 } 353 }
544 }, 354 },
545 "deep-extend": {
546 "version": "0.6.0",
547 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
548 "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
549 "dev": true
550 },
551 "delayed-stream": { 355 "delayed-stream": {
552 "version": "1.0.0", 356 "version": "1.0.0",
553 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 357 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -705,25 +509,6 @@
705 "dev": true, 509 "dev": true,
706 "requires": { 510 "requires": {
707 "kind-of": "1.1.0" 511 "kind-of": "1.1.0"
708 },
709 "dependencies": {
710 "kind-of": {
711 "version": "1.1.0",
712 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
713 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
714 "dev": true
715 }
716 }
717 },
718 "external-editor": {
719 "version": "2.2.0",
720 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
721 "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
722 "dev": true,
723 "requires": {
724 "chardet": "0.4.2",
725 "iconv-lite": "0.4.23",
726 "tmp": "0.0.33"
727 } 512 }
728 }, 513 },
729 "extglob": { 514 "extglob": {
@@ -770,15 +555,6 @@
770 "pend": "1.2.0" 555 "pend": "1.2.0"
771 } 556 }
772 }, 557 },
773 "figures": {
774 "version": "2.0.0",
775 "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
776 "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
777 "dev": true,
778 "requires": {
779 "escape-string-regexp": "1.0.5"
780 }
781 },
782 "filename-regex": { 558 "filename-regex": {
783 "version": "2.0.1", 559 "version": "2.0.1",
784 "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", 560 "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
@@ -793,32 +569,11 @@
793 "requires": { 569 "requires": {
794 "is-number": "2.1.0", 570 "is-number": "2.1.0",
795 "isobject": "2.1.0", 571 "isobject": "2.1.0",
796 "randomatic": "3.0.0", 572 "randomatic": "3.1.0",
797 "repeat-element": "1.1.2", 573 "repeat-element": "1.1.2",
798 "repeat-string": "1.6.1" 574 "repeat-string": "1.6.1"
799 } 575 }
800 }, 576 },
801 "find-replace": {
802 "version": "1.0.3",
803 "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz",
804 "integrity": "sha1-uI5zZNLZyVlVnziMZmcNYTBEH6A=",
805 "dev": true,
806 "requires": {
807 "array-back": "1.0.4",
808 "test-value": "2.1.0"
809 },
810 "dependencies": {
811 "array-back": {
812 "version": "1.0.4",
813 "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
814 "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
815 "dev": true,
816 "requires": {
817 "typical": "2.6.1"
818 }
819 }
820 }
821 },
822 "first-chunk-stream": { 577 "first-chunk-stream": {
823 "version": "1.0.0", 578 "version": "1.0.0",
824 "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", 579 "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
@@ -890,15 +645,6 @@
890 "assert-plus": "1.0.0" 645 "assert-plus": "1.0.0"
891 } 646 }
892 }, 647 },
893 "git-config": {
894 "version": "0.0.7",
895 "resolved": "https://registry.npmjs.org/git-config/-/git-config-0.0.7.tgz",
896 "integrity": "sha1-qcij7wendsPXImE1bYtye2IgKyg=",
897 "dev": true,
898 "requires": {
899 "iniparser": "1.0.5"
900 }
901 },
902 "glob": { 648 "glob": {
903 "version": "7.1.2", 649 "version": "7.1.2",
904 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 650 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -1118,9 +864,9 @@
1118 }, 864 },
1119 "dependencies": { 865 "dependencies": {
1120 "clone": { 866 "clone": {
1121 "version": "2.1.1", 867 "version": "2.1.2",
1122 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", 868 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
1123 "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", 869 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
1124 "dev": true 870 "dev": true
1125 }, 871 },
1126 "clone-stats": { 872 "clone-stats": {
@@ -1135,7 +881,7 @@
1135 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 881 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1136 "dev": true, 882 "dev": true,
1137 "requires": { 883 "requires": {
1138 "clone": "2.1.1", 884 "clone": "2.1.2",
1139 "clone-buffer": "1.0.0", 885 "clone-buffer": "1.0.0",
1140 "clone-stats": "1.0.0", 886 "clone-stats": "1.0.0",
1141 "cloneable-readable": "1.1.2", 887 "cloneable-readable": "1.1.2",
@@ -1249,9 +995,9 @@
1249 }, 995 },
1250 "dependencies": { 996 "dependencies": {
1251 "clone": { 997 "clone": {
1252 "version": "2.1.1", 998 "version": "2.1.2",
1253 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", 999 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
1254 "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", 1000 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
1255 "dev": true 1001 "dev": true
1256 }, 1002 },
1257 "clone-stats": { 1003 "clone-stats": {
@@ -1275,7 +1021,7 @@
1275 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 1021 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1276 "dev": true, 1022 "dev": true,
1277 "requires": { 1023 "requires": {
1278 "clone": "2.1.1", 1024 "clone": "2.1.2",
1279 "clone-buffer": "1.0.0", 1025 "clone-buffer": "1.0.0",
1280 "clone-stats": "1.0.0", 1026 "clone-stats": "1.0.0",
1281 "cloneable-readable": "1.1.2", 1027 "cloneable-readable": "1.1.2",
@@ -1285,18 +1031,6 @@
1285 } 1031 }
1286 } 1032 }
1287 }, 1033 },
1288 "handlebars": {
1289 "version": "4.0.11",
1290 "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
1291 "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=",
1292 "dev": true,
1293 "requires": {
1294 "async": "1.5.2",
1295 "optimist": "0.6.1",
1296 "source-map": "0.4.4",
1297 "uglify-js": "2.8.29"
1298 }
1299 },
1300 "har-schema": { 1034 "har-schema": {
1301 "version": "2.0.0", 1035 "version": "2.0.0",
1302 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1036 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@@ -1350,15 +1084,6 @@
1350 "sshpk": "1.14.2" 1084 "sshpk": "1.14.2"
1351 } 1085 }
1352 }, 1086 },
1353 "iconv-lite": {
1354 "version": "0.4.23",
1355 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
1356 "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
1357 "dev": true,
1358 "requires": {
1359 "safer-buffer": "2.1.2"
1360 }
1361 },
1362 "inflight": { 1087 "inflight": {
1363 "version": "1.0.6", 1088 "version": "1.0.6",
1364 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1089 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -1375,34 +1100,6 @@
1375 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 1100 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1376 "dev": true 1101 "dev": true
1377 }, 1102 },
1378 "iniparser": {
1379 "version": "1.0.5",
1380 "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz",
1381 "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=",
1382 "dev": true
1383 },
1384 "inquirer": {
1385 "version": "3.3.0",
1386 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
1387 "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
1388 "dev": true,
1389 "requires": {
1390 "ansi-escapes": "3.1.0",
1391 "chalk": "2.1.0",
1392 "cli-cursor": "2.1.0",
1393 "cli-width": "2.2.0",
1394 "external-editor": "2.2.0",
1395 "figures": "2.0.0",
1396 "lodash": "4.17.10",
1397 "mute-stream": "0.0.7",
1398 "run-async": "2.3.0",
1399 "rx-lite": "4.0.8",
1400 "rx-lite-aggregates": "4.0.8",
1401 "string-width": "2.1.1",
1402 "strip-ansi": "4.0.0",
1403 "through": "2.3.8"
1404 }
1405 },
1406 "is": { 1103 "is": {
1407 "version": "3.2.1", 1104 "version": "3.2.1",
1408 "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", 1105 "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
@@ -1442,12 +1139,6 @@
1442 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1139 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1443 "dev": true 1140 "dev": true
1444 }, 1141 },
1445 "is-fullwidth-code-point": {
1446 "version": "2.0.0",
1447 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1448 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1449 "dev": true
1450 },
1451 "is-glob": { 1142 "is-glob": {
1452 "version": "3.1.0", 1143 "version": "3.1.0",
1453 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", 1144 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
@@ -1464,6 +1155,17 @@
1464 "dev": true, 1155 "dev": true,
1465 "requires": { 1156 "requires": {
1466 "kind-of": "3.2.2" 1157 "kind-of": "3.2.2"
1158 },
1159 "dependencies": {
1160 "kind-of": {
1161 "version": "3.2.2",
1162 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1163 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1164 "dev": true,
1165 "requires": {
1166 "is-buffer": "1.1.6"
1167 }
1168 }
1467 } 1169 }
1468 }, 1170 },
1469 "is-obj": { 1171 "is-obj": {
@@ -1484,12 +1186,6 @@
1484 "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", 1186 "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
1485 "dev": true 1187 "dev": true
1486 }, 1188 },
1487 "is-promise": {
1488 "version": "2.1.0",
1489 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
1490 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
1491 "dev": true
1492 },
1493 "is-stream": { 1189 "is-stream": {
1494 "version": "1.1.0", 1190 "version": "1.1.0",
1495 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1191 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -1588,20 +1284,10 @@
1588 } 1284 }
1589 }, 1285 },
1590 "kind-of": { 1286 "kind-of": {
1591 "version": "3.2.2", 1287 "version": "1.1.0",
1592 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1288 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
1593 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1289 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
1594 "dev": true, 1290 "dev": true
1595 "requires": {
1596 "is-buffer": "1.1.6"
1597 }
1598 },
1599 "lazy-cache": {
1600 "version": "1.0.4",
1601 "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
1602 "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
1603 "dev": true,
1604 "optional": true
1605 }, 1291 },
1606 "lazystream": { 1292 "lazystream": {
1607 "version": "1.0.0", 1293 "version": "1.0.0",
@@ -1633,18 +1319,6 @@
1633 "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", 1319 "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
1634 "dev": true 1320 "dev": true
1635 }, 1321 },
1636 "lodash.padend": {
1637 "version": "4.6.1",
1638 "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
1639 "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=",
1640 "dev": true
1641 },
1642 "longest": {
1643 "version": "1.0.1",
1644 "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
1645 "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
1646 "dev": true
1647 },
1648 "map-stream": { 1322 "map-stream": {
1649 "version": "0.1.0", 1323 "version": "0.1.0",
1650 "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", 1324 "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
@@ -1729,6 +1403,15 @@
1729 "requires": { 1403 "requires": {
1730 "is-extglob": "1.0.0" 1404 "is-extglob": "1.0.0"
1731 } 1405 }
1406 },
1407 "kind-of": {
1408 "version": "3.2.2",
1409 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1410 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1411 "dev": true,
1412 "requires": {
1413 "is-buffer": "1.1.6"
1414 }
1732 } 1415 }
1733 } 1416 }
1734 }, 1417 },
@@ -1753,12 +1436,6 @@
1753 "mime-db": "1.35.0" 1436 "mime-db": "1.35.0"
1754 } 1437 }
1755 }, 1438 },
1756 "mimic-fn": {
1757 "version": "1.2.0",
1758 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
1759 "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
1760 "dev": true
1761 },
1762 "minimatch": { 1439 "minimatch": {
1763 "version": "3.0.4", 1440 "version": "3.0.4",
1764 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1441 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -1769,9 +1446,9 @@
1769 } 1446 }
1770 }, 1447 },
1771 "minimist": { 1448 "minimist": {
1772 "version": "0.0.10", 1449 "version": "0.0.8",
1773 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", 1450 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1774 "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", 1451 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1775 "dev": true 1452 "dev": true
1776 }, 1453 },
1777 "mkdirp": { 1454 "mkdirp": {
@@ -1781,14 +1458,6 @@
1781 "dev": true, 1458 "dev": true,
1782 "requires": { 1459 "requires": {
1783 "minimist": "0.0.8" 1460 "minimist": "0.0.8"
1784 },
1785 "dependencies": {
1786 "minimist": {
1787 "version": "0.0.8",
1788 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1789 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1790 "dev": true
1791 }
1792 } 1461 }
1793 }, 1462 },
1794 "mocha": { 1463 "mocha": {
@@ -1814,15 +1483,6 @@
1814 "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", 1483 "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
1815 "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", 1484 "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
1816 "dev": true 1485 "dev": true
1817 },
1818 "supports-color": {
1819 "version": "4.4.0",
1820 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
1821 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
1822 "dev": true,
1823 "requires": {
1824 "has-flag": "2.0.0"
1825 }
1826 } 1486 }
1827 } 1487 }
1828 }, 1488 },
@@ -1850,30 +1510,6 @@
1850 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 1510 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
1851 "dev": true 1511 "dev": true
1852 }, 1512 },
1853 "neon-cli": {
1854 "version": "0.2.0",
1855 "resolved": "https://registry.npmjs.org/neon-cli/-/neon-cli-0.2.0.tgz",
1856 "integrity": "sha512-IsrxCyUcuAyWiq4Z+JnTXrjurj2SAL2VtWnCXS8iBYGJeIs1NIhFuLaM6fe7+rOyFfDcqUUTWGxZmkvUqwweRA==",
1857 "dev": true,
1858 "requires": {
1859 "chalk": "2.1.0",
1860 "command-line-args": "4.0.7",
1861 "command-line-commands": "2.0.1",
1862 "command-line-usage": "4.1.0",
1863 "git-config": "0.0.7",
1864 "handlebars": "4.0.11",
1865 "inquirer": "3.3.0",
1866 "mkdirp": "0.5.1",
1867 "quickly-copy-file": "1.0.0",
1868 "rimraf": "2.6.2",
1869 "rsvp": "4.8.3",
1870 "semver": "5.5.0",
1871 "toml": "2.3.3",
1872 "ts-typed-json": "0.2.2",
1873 "validate-npm-package-license": "3.0.3",
1874 "validate-npm-package-name": "3.0.0"
1875 }
1876 },
1877 "node.extend": { 1513 "node.extend": {
1878 "version": "1.1.6", 1514 "version": "1.1.6",
1879 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz", 1515 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz",
@@ -1932,25 +1568,6 @@
1932 "wrappy": "1.0.2" 1568 "wrappy": "1.0.2"
1933 } 1569 }
1934 }, 1570 },
1935 "onetime": {
1936 "version": "2.0.1",
1937 "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
1938 "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
1939 "dev": true,
1940 "requires": {
1941 "mimic-fn": "1.2.0"
1942 }
1943 },
1944 "optimist": {
1945 "version": "0.6.1",
1946 "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
1947 "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
1948 "dev": true,
1949 "requires": {
1950 "minimist": "0.0.10",
1951 "wordwrap": "0.0.3"
1952 }
1953 },
1954 "ordered-read-streams": { 1571 "ordered-read-streams": {
1955 "version": "0.3.0", 1572 "version": "0.3.0",
1956 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", 1573 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
@@ -2027,7 +1644,7 @@
2027 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", 1644 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
2028 "dev": true, 1645 "dev": true,
2029 "requires": { 1646 "requires": {
2030 "@types/node": "6.0.114" 1647 "@types/node": "7.0.69"
2031 } 1648 }
2032 }, 1649 },
2033 "path-dirname": { 1650 "path-dirname": {
@@ -2121,19 +1738,10 @@
2121 "inherits": "2.0.3" 1738 "inherits": "2.0.3"
2122 } 1739 }
2123 }, 1740 },
2124 "quickly-copy-file": {
2125 "version": "1.0.0",
2126 "resolved": "https://registry.npmjs.org/quickly-copy-file/-/quickly-copy-file-1.0.0.tgz",
2127 "integrity": "sha1-n4/wZiMFEO50IrASFHKwk6hpCFk=",
2128 "dev": true,
2129 "requires": {
2130 "mkdirp": "0.5.1"
2131 }
2132 },
2133 "randomatic": { 1741 "randomatic": {
2134 "version": "3.0.0", 1742 "version": "3.1.0",
2135 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", 1743 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
2136 "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", 1744 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
2137 "dev": true, 1745 "dev": true,
2138 "requires": { 1746 "requires": {
2139 "is-number": "4.0.0", 1747 "is-number": "4.0.0",
@@ -2179,12 +1787,6 @@
2179 "util-deprecate": "1.0.2" 1787 "util-deprecate": "1.0.2"
2180 } 1788 }
2181 }, 1789 },
2182 "reduce-flatten": {
2183 "version": "1.0.1",
2184 "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
2185 "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=",
2186 "dev": true
2187 },
2188 "regex-cache": { 1790 "regex-cache": {
2189 "version": "0.4.4", 1791 "version": "0.4.4",
2190 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", 1792 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
@@ -2225,7 +1827,7 @@
2225 "dev": true, 1827 "dev": true,
2226 "requires": { 1828 "requires": {
2227 "aws-sign2": "0.7.0", 1829 "aws-sign2": "0.7.0",
2228 "aws4": "1.7.0", 1830 "aws4": "1.8.0",
2229 "caseless": "0.12.0", 1831 "caseless": "0.12.0",
2230 "combined-stream": "1.0.6", 1832 "combined-stream": "1.0.6",
2231 "extend": "3.0.2", 1833 "extend": "3.0.2",
@@ -2252,26 +1854,6 @@
2252 "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", 1854 "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
2253 "dev": true 1855 "dev": true
2254 }, 1856 },
2255 "restore-cursor": {
2256 "version": "2.0.0",
2257 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
2258 "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
2259 "dev": true,
2260 "requires": {
2261 "onetime": "2.0.1",
2262 "signal-exit": "3.0.2"
2263 }
2264 },
2265 "right-align": {
2266 "version": "0.1.3",
2267 "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
2268 "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
2269 "dev": true,
2270 "optional": true,
2271 "requires": {
2272 "align-text": "0.1.4"
2273 }
2274 },
2275 "rimraf": { 1857 "rimraf": {
2276 "version": "2.6.2", 1858 "version": "2.6.2",
2277 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 1859 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
@@ -2281,36 +1863,6 @@
2281 "glob": "7.1.2" 1863 "glob": "7.1.2"
2282 } 1864 }
2283 }, 1865 },
2284 "rsvp": {
2285 "version": "4.8.3",
2286 "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.3.tgz",
2287 "integrity": "sha512-/OlbK31XtkPnLD2ktmZXj4g/v6q1boTDr6/3lFuDTgxVsrA3h7PH5eYyAxIvDMjRHr/DoOlzNicqDwBEo9xU7g==",
2288 "dev": true
2289 },
2290 "run-async": {
2291 "version": "2.3.0",
2292 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
2293 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
2294 "dev": true,
2295 "requires": {
2296 "is-promise": "2.1.0"
2297 }
2298 },
2299 "rx-lite": {
2300 "version": "4.0.8",
2301 "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
2302 "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
2303 "dev": true
2304 },
2305 "rx-lite-aggregates": {
2306 "version": "4.0.8",
2307 "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
2308 "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
2309 "dev": true,
2310 "requires": {
2311 "rx-lite": "4.0.8"
2312 }
2313 },
2314 "safe-buffer": { 1866 "safe-buffer": {
2315 "version": "5.1.2", 1867 "version": "5.1.2",
2316 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1868 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@@ -2329,71 +1881,22 @@
2329 "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", 1881 "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
2330 "dev": true 1882 "dev": true
2331 }, 1883 },
2332 "signal-exit": {
2333 "version": "3.0.2",
2334 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2335 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2336 "dev": true
2337 },
2338 "source-map": { 1884 "source-map": {
2339 "version": "0.4.4", 1885 "version": "0.6.1",
2340 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", 1886 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2341 "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", 1887 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2342 "dev": true, 1888 "dev": true
2343 "requires": {
2344 "amdefine": "1.0.1"
2345 }
2346 }, 1889 },
2347 "source-map-support": { 1890 "source-map-support": {
2348 "version": "0.5.6", 1891 "version": "0.5.8",
2349 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", 1892 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.8.tgz",
2350 "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", 1893 "integrity": "sha512-WqAEWPdb78u25RfKzOF0swBpY0dKrNdjc4GvLwm7ScX/o9bj8Eh/YL8mcMhBHYDGl87UkkSXDOFnW4G7GhWhGg==",
2351 "dev": true, 1894 "dev": true,
2352 "requires": { 1895 "requires": {
2353 "buffer-from": "1.1.0", 1896 "buffer-from": "1.1.1",
2354 "source-map": "0.6.1" 1897 "source-map": "0.6.1"
2355 },
2356 "dependencies": {
2357 "source-map": {
2358 "version": "0.6.1",
2359 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2360 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2361 "dev": true
2362 }
2363 }
2364 },
2365 "spdx-correct": {
2366 "version": "3.0.0",
2367 "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
2368 "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
2369 "dev": true,
2370 "requires": {
2371 "spdx-expression-parse": "3.0.0",
2372 "spdx-license-ids": "3.0.0"
2373 }
2374 },
2375 "spdx-exceptions": {
2376 "version": "2.1.0",
2377 "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
2378 "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
2379 "dev": true
2380 },
2381 "spdx-expression-parse": {
2382 "version": "3.0.0",
2383 "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
2384 "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
2385 "dev": true,
2386 "requires": {
2387 "spdx-exceptions": "2.1.0",
2388 "spdx-license-ids": "3.0.0"
2389 } 1898 }
2390 }, 1899 },
2391 "spdx-license-ids": {
2392 "version": "3.0.0",
2393 "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
2394 "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
2395 "dev": true
2396 },
2397 "split": { 1900 "split": {
2398 "version": "0.3.3", 1901 "version": "0.3.3",
2399 "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", 1902 "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
@@ -2415,7 +1918,7 @@
2415 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", 1918 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
2416 "dev": true, 1919 "dev": true,
2417 "requires": { 1920 "requires": {
2418 "asn1": "0.2.3", 1921 "asn1": "0.2.4",
2419 "assert-plus": "1.0.0", 1922 "assert-plus": "1.0.0",
2420 "bcrypt-pbkdf": "1.0.2", 1923 "bcrypt-pbkdf": "1.0.2",
2421 "dashdash": "1.14.1", 1924 "dashdash": "1.14.1",
@@ -2462,16 +1965,6 @@
2462 "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=", 1965 "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=",
2463 "dev": true 1966 "dev": true
2464 }, 1967 },
2465 "string-width": {
2466 "version": "2.1.1",
2467 "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2468 "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2469 "dev": true,
2470 "requires": {
2471 "is-fullwidth-code-point": "2.0.0",
2472 "strip-ansi": "4.0.0"
2473 }
2474 },
2475 "string_decoder": { 1968 "string_decoder": {
2476 "version": "1.1.1", 1969 "version": "1.1.1",
2477 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1970 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -2481,15 +1974,6 @@
2481 "safe-buffer": "5.1.2" 1974 "safe-buffer": "5.1.2"
2482 } 1975 }
2483 }, 1976 },
2484 "strip-ansi": {
2485 "version": "4.0.0",
2486 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2487 "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2488 "dev": true,
2489 "requires": {
2490 "ansi-regex": "3.0.0"
2491 }
2492 },
2493 "strip-bom": { 1977 "strip-bom": {
2494 "version": "2.0.0", 1978 "version": "2.0.0",
2495 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 1979 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
@@ -2510,27 +1994,14 @@
2510 } 1994 }
2511 }, 1995 },
2512 "supports-color": { 1996 "supports-color": {
2513 "version": "4.5.0", 1997 "version": "4.4.0",
2514 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", 1998 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
2515 "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", 1999 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2516 "dev": true, 2000 "dev": true,
2517 "requires": { 2001 "requires": {
2518 "has-flag": "2.0.0" 2002 "has-flag": "2.0.0"
2519 } 2003 }
2520 }, 2004 },
2521 "table-layout": {
2522 "version": "0.4.4",
2523 "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.4.tgz",
2524 "integrity": "sha512-uNaR3SRMJwfdp9OUr36eyEi6LLsbcTqTO/hfTsNviKsNeyMBPICJCC7QXRF3+07bAP6FRwA8rczJPBqXDc0CkQ==",
2525 "dev": true,
2526 "requires": {
2527 "array-back": "2.0.0",
2528 "deep-extend": "0.6.0",
2529 "lodash.padend": "4.6.1",
2530 "typical": "2.6.1",
2531 "wordwrapjs": "3.0.0"
2532 }
2533 },
2534 "tar": { 2005 "tar": {
2535 "version": "2.2.1", 2006 "version": "2.2.1",
2536 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", 2007 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
@@ -2542,27 +2013,6 @@
2542 "inherits": "2.0.3" 2013 "inherits": "2.0.3"
2543 } 2014 }
2544 }, 2015 },
2545 "test-value": {
2546 "version": "2.1.0",
2547 "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
2548 "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=",
2549 "dev": true,
2550 "requires": {
2551 "array-back": "1.0.4",
2552 "typical": "2.6.1"
2553 },
2554 "dependencies": {
2555 "array-back": {
2556 "version": "1.0.4",
2557 "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
2558 "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=",
2559 "dev": true,
2560 "requires": {
2561 "typical": "2.6.1"
2562 }
2563 }
2564 }
2565 },
2566 "through": { 2016 "through": {
2567 "version": "2.3.8", 2017 "version": "2.3.8",
2568 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2018 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@@ -2590,9 +2040,9 @@
2590 } 2040 }
2591 }, 2041 },
2592 "tmp": { 2042 "tmp": {
2593 "version": "0.0.33", 2043 "version": "0.0.29",
2594 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 2044 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
2595 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 2045 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
2596 "dev": true, 2046 "dev": true,
2597 "requires": { 2047 "requires": {
2598 "os-tmpdir": "1.0.2" 2048 "os-tmpdir": "1.0.2"
@@ -2618,12 +2068,6 @@
2618 } 2068 }
2619 } 2069 }
2620 }, 2070 },
2621 "toml": {
2622 "version": "2.3.3",
2623 "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.3.tgz",
2624 "integrity": "sha512-O7L5hhSQHxuufWUdcTRPfuTh3phKfAZ/dqfxZFoxPCj2RYmpaSGLEIs016FCXItQwNr08yefUB5TSjzRYnajTA==",
2625 "dev": true
2626 },
2627 "tough-cookie": { 2071 "tough-cookie": {
2628 "version": "2.3.4", 2072 "version": "2.3.4",
2629 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", 2073 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
@@ -2633,23 +2077,6 @@
2633 "punycode": "1.4.1" 2077 "punycode": "1.4.1"
2634 } 2078 }
2635 }, 2079 },
2636 "ts-typed-json": {
2637 "version": "0.2.2",
2638 "resolved": "https://registry.npmjs.org/ts-typed-json/-/ts-typed-json-0.2.2.tgz",
2639 "integrity": "sha1-UxhL7ok+RZkbc8jEY6OLWeJ81H4=",
2640 "dev": true,
2641 "requires": {
2642 "rsvp": "3.6.2"
2643 },
2644 "dependencies": {
2645 "rsvp": {
2646 "version": "3.6.2",
2647 "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
2648 "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==",
2649 "dev": true
2650 }
2651 }
2652 },
2653 "tunnel": { 2080 "tunnel": {
2654 "version": "0.0.4", 2081 "version": "0.0.4",
2655 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", 2082 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz",
@@ -2696,46 +2123,12 @@
2696 "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", 2123 "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
2697 "dev": true 2124 "dev": true
2698 }, 2125 },
2699 "typical": {
2700 "version": "2.6.1",
2701 "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
2702 "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=",
2703 "dev": true
2704 },
2705 "uc.micro": { 2126 "uc.micro": {
2706 "version": "1.0.5", 2127 "version": "1.0.5",
2707 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz", 2128 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
2708 "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==", 2129 "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==",
2709 "dev": true 2130 "dev": true
2710 }, 2131 },
2711 "uglify-js": {
2712 "version": "2.8.29",
2713 "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
2714 "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
2715 "dev": true,
2716 "optional": true,
2717 "requires": {
2718 "source-map": "0.5.7",
2719 "uglify-to-browserify": "1.0.2",
2720 "yargs": "3.10.0"
2721 },
2722 "dependencies": {
2723 "source-map": {
2724 "version": "0.5.7",
2725 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2726 "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2727 "dev": true,
2728 "optional": true
2729 }
2730 }
2731 },
2732 "uglify-to-browserify": {
2733 "version": "1.0.2",
2734 "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
2735 "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
2736 "dev": true,
2737 "optional": true
2738 },
2739 "underscore": { 2132 "underscore": {
2740 "version": "1.9.1", 2133 "version": "1.9.1",
2741 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", 2134 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
@@ -2786,25 +2179,6 @@
2786 "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", 2179 "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
2787 "dev": true 2180 "dev": true
2788 }, 2181 },
2789 "validate-npm-package-license": {
2790 "version": "3.0.3",
2791 "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
2792 "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
2793 "dev": true,
2794 "requires": {
2795 "spdx-correct": "3.0.0",
2796 "spdx-expression-parse": "3.0.0"
2797 }
2798 },
2799 "validate-npm-package-name": {
2800 "version": "3.0.0",
2801 "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
2802 "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
2803 "dev": true,
2804 "requires": {
2805 "builtins": "1.0.3"
2806 }
2807 },
2808 "verror": { 2182 "verror": {
2809 "version": "1.10.0", 2183 "version": "1.10.0",
2810 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2184 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
@@ -2887,13 +2261,13 @@
2887 } 2261 }
2888 }, 2262 },
2889 "vsce": { 2263 "vsce": {
2890 "version": "1.44.0", 2264 "version": "1.46.0",
2891 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.44.0.tgz", 2265 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.46.0.tgz",
2892 "integrity": "sha512-JK8jLwXgfcxo9aNBKBLNbCF4tEOiB8QdhVaXaGiqpadXLgqKBRNsq24KUzBYlmqZEIq0kdW5n2CtXLBozVPCrg==", 2266 "integrity": "sha512-cNQru5mXBPUtMDgwRNoespaR0gjdL09hV1KWktT5wkmTZfv0dSaAqqGAfr+2UI0aJTGttCcO3xKFQqtIcJpczA==",
2893 "dev": true, 2267 "dev": true,
2894 "requires": { 2268 "requires": {
2895 "cheerio": "1.0.0-rc.2", 2269 "cheerio": "1.0.0-rc.2",
2896 "commander": "2.16.0", 2270 "commander": "2.17.1",
2897 "denodeify": "1.2.1", 2271 "denodeify": "1.2.1",
2898 "glob": "7.1.2", 2272 "glob": "7.1.2",
2899 "lodash": "4.17.10", 2273 "lodash": "4.17.10",
@@ -2909,17 +2283,6 @@
2909 "vso-node-api": "6.1.2-preview", 2283 "vso-node-api": "6.1.2-preview",
2910 "yauzl": "2.10.0", 2284 "yauzl": "2.10.0",
2911 "yazl": "2.4.3" 2285 "yazl": "2.4.3"
2912 },
2913 "dependencies": {
2914 "tmp": {
2915 "version": "0.0.29",
2916 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
2917 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
2918 "dev": true,
2919 "requires": {
2920 "os-tmpdir": "1.0.2"
2921 }
2922 }
2923 } 2286 }
2924 }, 2287 },
2925 "vscode": { 2288 "vscode": {
@@ -2939,11 +2302,38 @@
2939 "mocha": "4.1.0", 2302 "mocha": "4.1.0",
2940 "request": "2.87.0", 2303 "request": "2.87.0",
2941 "semver": "5.5.0", 2304 "semver": "5.5.0",
2942 "source-map-support": "0.5.6", 2305 "source-map-support": "0.5.8",
2943 "url-parse": "1.4.3", 2306 "url-parse": "1.4.3",
2944 "vinyl-source-stream": "1.1.2" 2307 "vinyl-source-stream": "1.1.2"
2945 } 2308 }
2946 }, 2309 },
2310 "vscode-jsonrpc": {
2311 "version": "3.6.2",
2312 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz",
2313 "integrity": "sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA=="
2314 },
2315 "vscode-languageclient": {
2316 "version": "4.4.0",
2317 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.0.tgz",
2318 "integrity": "sha512-sXBwIcwG4W5MjnDAfXf0hM5ErOcXxEBlix6QJb5ijf0gtecYygrMAqv8hag7sEg/jCCOKQdXJ4K1iZL3GZcJZg==",
2319 "requires": {
2320 "vscode-languageserver-protocol": "3.10.0"
2321 }
2322 },
2323 "vscode-languageserver-protocol": {
2324 "version": "3.10.0",
2325 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz",
2326 "integrity": "sha512-PNNmKM0IcQPRiY1oUIxfwseBvxS5Sa5aZUpTcq/qsXWclnl8FFNs8oCCoAtyLhBXnuJvybWUNafiA78y0unJDA==",
2327 "requires": {
2328 "vscode-jsonrpc": "3.6.2",
2329 "vscode-languageserver-types": "3.10.0"
2330 }
2331 },
2332 "vscode-languageserver-types": {
2333 "version": "3.10.0",
2334 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz",
2335 "integrity": "sha512-vxmCsVZGwq8X40SuLP8Ix7V0rq5V/7iQUjRVe2Oxm+TbmjxtjK4dpHHXQCUawjA4fhPA9FwjSRbDhbvQmYCfMw=="
2336 },
2947 "vso-node-api": { 2337 "vso-node-api": {
2948 "version": "6.1.2-preview", 2338 "version": "6.1.2-preview",
2949 "resolved": "https://registry.npmjs.org/vso-node-api/-/vso-node-api-6.1.2-preview.tgz", 2339 "resolved": "https://registry.npmjs.org/vso-node-api/-/vso-node-api-6.1.2-preview.tgz",
@@ -2956,29 +2346,6 @@
2956 "underscore": "1.9.1" 2346 "underscore": "1.9.1"
2957 } 2347 }
2958 }, 2348 },
2959 "window-size": {
2960 "version": "0.1.0",
2961 "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
2962 "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
2963 "dev": true,
2964 "optional": true
2965 },
2966 "wordwrap": {
2967 "version": "0.0.3",
2968 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
2969 "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
2970 "dev": true
2971 },
2972 "wordwrapjs": {
2973 "version": "3.0.0",
2974 "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
2975 "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
2976 "dev": true,
2977 "requires": {
2978 "reduce-flatten": "1.0.1",
2979 "typical": "2.6.1"
2980 }
2981 },
2982 "wrappy": { 2349 "wrappy": {
2983 "version": "1.0.2", 2350 "version": "1.0.2",
2984 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2351 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -2991,19 +2358,6 @@
2991 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", 2358 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
2992 "dev": true 2359 "dev": true
2993 }, 2360 },
2994 "yargs": {
2995 "version": "3.10.0",
2996 "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
2997 "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
2998 "dev": true,
2999 "optional": true,
3000 "requires": {
3001 "camelcase": "1.2.1",
3002 "cliui": "2.1.0",
3003 "decamelize": "1.2.0",
3004 "window-size": "0.1.0"
3005 }
3006 },
3007 "yauzl": { 2361 "yauzl": {
3008 "version": "2.10.0", 2362 "version": "2.10.0",
3009 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 2363 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
diff --git a/code/package.json b/code/package.json
index 66c4f266f..1df932db1 100644
--- a/code/package.json
+++ b/code/package.json
@@ -1,56 +1,48 @@
1{ 1{
2 "name": "libsyntax-rust", 2 "name": "libsyntax-rust",
3 "displayName": "libsyntax-rust", 3 "displayName": "libsyntax-rust",
4 "description": "An experimental Rust plugin for VS Code based on libsyntax2", 4 "description": "An experimental Rust plugin for VS Code based on libsyntax2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "http://github.com/matklad/libsyntax2/", 6 "repository": "http://github.com/matklad/libsyntax2/",
7 "version": "0.0.1", 7 "version": "0.0.1",
8 "publisher": "matklad", 8 "publisher": "matklad",
9 "engines": { 9 "engines": {
10 "vscode": "^1.18.0" 10 "vscode": "^1.25.0"
11 }, 11 },
12 "devDependencies": { 12 "scripts": {
13 "@types/node": "^6.0.112", 13 "compile": "tsc -p ./",
14 "neon-cli": "^0.2.0", 14 "postinstall": "node ./node_modules/vscode/bin/install"
15 "typescript": "^2.9.1", 15 },
16 "vsce": "^1.42.0", 16 "dependencies": {
17 "vscode": "^1.1.18" 17 "vscode-languageclient": "^4.3.0"
18 }, 18 },
19 "scripts": { 19 "devDependencies": {
20 "vscode:prepublish": "tsc -p ./", 20 "@types/node": "^7.0.56",
21 "compile": "tsc -watch -p ./", 21 "typescript": "^2.9.1",
22 "install": "neon build", 22 "vsce": "^1.42.0",
23 "postinstall": "node ./node_modules/vscode/bin/install" 23 "vscode": "^1.1.18"
24 }, 24 },
25 "main": "./out/src/main", 25 "main": "./out/src/extension",
26 "contributes": { 26 "activationEvents": [
27 "languages": [ 27 "onLanguage:rust"
28 { 28 ],
29 "id": "rust", 29 "contributes": {
30 "extensions": [ 30 "commands": [
31 ".rs" 31 {
32 ] 32 "command": "libsyntax-rust.syntaxTree",
33 } 33 "title": "Show Rust syntax tree"
34 ], 34 },
35 "commands": [ 35 {
36 { 36 "command": "libsyntax-rust.extendSelection",
37 "command": "libsyntax-rust.syntaxTree", 37 "title": "Rust Extend Selection"
38 "title": "Show Rust syntax tree" 38 }
39 }, 39 ],
40 { 40 "keybindings": [
41 "command": "libsyntax-rust.extendSelection", 41 {
42 "title": "Rust Extend Selection" 42 "command": "libsyntax-rust.extendSelection",
43 } 43 "key": "ctrl+w",
44 ], 44 "when": "editorTextFocus && editorLangId == rust"
45 "keybindings": [ 45 }
46 {
47 "command": "libsyntax-rust.extendSelection",
48 "key": "ctrl+w",
49 "when": "editorTextFocus && editorLangId == rust"
50 }
51 ]
52 },
53 "activationEvents": [
54 "onLanguage:rust"
55 ] 46 ]
47 }
56} 48}
diff --git a/codeless/src/extension.ts b/code/src/extension.ts
index 99cbfc78e..bdad1568a 100644
--- a/codeless/src/extension.ts
+++ b/code/src/extension.ts
@@ -63,8 +63,8 @@ export function deactivate(): Thenable<void> {
63 63
64function startServer() { 64function startServer() {
65 let run: lc.Executable = { 65 let run: lc.Executable = {
66 command: "cargo", 66 command: "m",
67 args: ["run", "--package", "m"], 67 // args: ["run", "--package", "m"],
68 options: { cwd: "." } 68 options: { cwd: "." }
69 } 69 }
70 let serverOptions: lc.ServerOptions = { 70 let serverOptions: lc.ServerOptions = {
@@ -86,11 +86,6 @@ function startServer() {
86 client.onNotification( 86 client.onNotification(
87 new lc.NotificationType("m/publishDecorations"), 87 new lc.NotificationType("m/publishDecorations"),
88 (params: PublishDecorationsParams) => { 88 (params: PublishDecorationsParams) => {
89 console.log("A");
90 console.log(params.uri);
91 console.log(vscode.window.activeTextEditor.document.uri.toString());
92 console.log("B");
93
94 let editor = vscode.window.visibleTextEditors.find( 89 let editor = vscode.window.visibleTextEditors.find(
95 (editor) => editor.document.uri.toString() == params.uri 90 (editor) => editor.document.uri.toString() == params.uri
96 ) 91 )
diff --git a/code/src/main.ts b/code/src/main.ts
deleted file mode 100644
index 72bef7061..000000000
--- a/code/src/main.ts
+++ /dev/null
@@ -1,208 +0,0 @@
1'use strict'
2import * as vscode from 'vscode'
3
4const backend = require("../../native")
5
6let docToSyntax;
7
8let uris = {
9 syntaxTree: vscode.Uri.parse('libsyntax-rust://syntaxtree')
10}
11
12
13export function activate(context: vscode.ExtensionContext) {
14 let textDocumentContentProvider = new TextDocumentContentProvider()
15 let dispose = (disposable) => {
16 context.subscriptions.push(disposable);
17 }
18
19 let registerCommand = (name, f) => {
20 dispose(vscode.commands.registerCommand(name, f))
21 }
22
23 docToSyntax = documentToFile(context.subscriptions, () => {
24 let emitter = textDocumentContentProvider.eventEmitter
25 emitter.fire(uris.syntaxTree)
26 let syntax = activeSyntax()
27 setHighlights(vscode.window.activeTextEditor, syntax.highlight())
28 })
29
30
31 dispose(vscode.workspace.registerTextDocumentContentProvider(
32 'libsyntax-rust',
33 textDocumentContentProvider
34 ))
35
36 registerCommand('libsyntax-rust.syntaxTree', () => openDoc(uris.syntaxTree))
37 registerCommand('libsyntax-rust.extendSelection', () => {
38 let editor = vscode.window.activeTextEditor
39 let file = activeSyntax()
40 if (editor == null || file == null) return
41 editor.selections = editor.selections.map((s) => {
42 let range = file.extendSelection(s)
43 if (range == null) return null
44 return new vscode.Selection(range.start, range.end)
45 })
46 })
47}
48
49export function deactivate() { }
50
51export class Syntax {
52 imp;
53 doc: vscode.TextDocument;
54
55 constructor(imp, doc: vscode.TextDocument) {
56 this.imp = imp
57 this.doc = doc
58 }
59
60 syntaxTree(): string { return this.imp.syntaxTree() }
61 highlight(): Array<[number, number, string]> { return this.imp.highlight() }
62 extendSelection(range: vscode.Range): vscode.Range {
63 let range_ = fromVsRange(this.doc, range);
64 let extRange = this.imp.extendSelection(range_[0], range_[1]);
65 return toVsRange(this.doc, extRange);
66 }
67}
68
69
70function activeDoc() {
71 return vscode.window.activeTextEditor.document
72}
73
74function activeSyntax(): Syntax {
75 let doc = activeDoc()
76 if (doc == null) return null
77 return docToSyntax(doc)
78}
79
80async function openDoc(uri: vscode.Uri) {
81 let document = await vscode.workspace.openTextDocument(uri)
82 return vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true)
83}
84
85function documentToFile(disposables: vscode.Disposable[], onChange) {
86 let docs = {}
87 function update(doc: vscode.TextDocument, file) {
88 let key = doc.uri.toString()
89 if (file == null) {
90 delete docs[key]
91 } else {
92 docs[key] = file
93 }
94 onChange(doc)
95 }
96 function get(doc: vscode.TextDocument) {
97 return docs[doc.uri.toString()]
98 }
99
100 function isKnownDoc(doc: vscode.TextDocument) {
101 return doc.fileName.endsWith('.rs')
102 }
103
104 function createFile(text: String) {
105 console.time("parsing")
106 let res = new backend.RustFile(text);
107 console.timeEnd("parsing")
108 return res
109 }
110
111 vscode.workspace.onDidChangeTextDocument((event: vscode.TextDocumentChangeEvent) => {
112 let doc = event.document
113 if (!isKnownDoc(event.document)) return
114 update(doc, null)
115 }, null, disposables)
116
117 vscode.workspace.onDidOpenTextDocument((doc: vscode.TextDocument) => {
118 if (!isKnownDoc(doc)) return
119 update(doc, createFile(doc.getText()))
120 }, null, disposables)
121
122 vscode.workspace.onDidCloseTextDocument((doc: vscode.TextDocument) => {
123 update(doc, null)
124 }, null, disposables)
125
126 return (doc: vscode.TextDocument) => {
127 if (!isKnownDoc(doc)) return null
128
129 if (!get(doc)) {
130 update(doc, createFile(doc.getText()))
131 }
132 let imp = get(doc)
133 return new Syntax(imp, doc)
134 }
135}
136
137export class TextDocumentContentProvider implements vscode.TextDocumentContentProvider {
138 public eventEmitter = new vscode.EventEmitter<vscode.Uri>()
139 public syntaxTree: string = "Not available"
140
141 public provideTextDocumentContent(uri: vscode.Uri): vscode.ProviderResult<string> {
142 let syntax = activeSyntax()
143 if (syntax == null) return
144 if (uri.toString() == uris.syntaxTree.toString()) {
145 return syntax.syntaxTree()
146 }
147 }
148
149 get onDidChange(): vscode.Event<vscode.Uri> {
150 return this.eventEmitter.event
151 }
152}
153
154const decorations = (() => {
155 const decor = (obj) => vscode.window.createTextEditorDecorationType({ color: obj })
156 return {
157 background: decor("#3F3F3F"),
158 error: vscode.window.createTextEditorDecorationType({
159 borderColor: "red",
160 borderStyle: "none none dashed none",
161 }),
162 comment: decor("#7F9F7F"),
163 string: decor("#CC9393"),
164 keyword: decor("#F0DFAF"),
165 function: decor("#93E0E3"),
166 parameter: decor("#94BFF3"),
167 builtin: decor("#DD6718"),
168 text: decor("#DCDCCC"),
169 attribute: decor("#BFEBBF"),
170 literal: decor("#DFAF8F"),
171 }
172})()
173
174function setHighlights(
175 editor: vscode.TextEditor,
176 highlihgs: Array<[number, number, string]>
177) {
178 let byTag = {}
179 for (let tag in decorations) {
180 byTag[tag] = []
181 }
182
183 for (let [start, end, tag] of highlihgs) {
184 if (!byTag[tag]) {
185 console.log(`unknown tag ${tag}`)
186 continue
187 }
188 let range = toVsRange(editor.document, [start, end])
189 byTag[tag].push(range)
190 }
191
192 for (let tag in byTag) {
193 let dec = decorations[tag]
194 let ranges = byTag[tag]
195 editor.setDecorations(dec, ranges)
196 }
197}
198
199export function toVsRange(doc: vscode.TextDocument, range: [number, number]): vscode.Range {
200 return new vscode.Range(
201 doc.positionAt(range[0]),
202 doc.positionAt(range[1]),
203 )
204}
205
206function fromVsRange(doc: vscode.TextDocument, range: vscode.Range): [number, number] {
207 return [doc.offsetAt(range.start), doc.offsetAt(range.end)]
208}
diff --git a/code/tsconfig.json b/code/tsconfig.json
index 053bd1c70..11c3126e0 100644
--- a/code/tsconfig.json
+++ b/code/tsconfig.json
@@ -7,5 +7,6 @@
7 "sourceMap": true, 7 "sourceMap": true,
8 "rootDir": "." 8 "rootDir": "."
9 }, 9 },
10 "include": [ "src/*.ts" ] 10 "include": [ "src" ],
11} \ No newline at end of file 11 "exclude": [ "node_modules" ]
12}
diff --git a/codeless/.gitignore b/codeless/.gitignore
deleted file mode 100644
index 7a3b76693..000000000
--- a/codeless/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
1target
2index.node
3artifacts.json
4*.vsix
5out/*
6node_modules/*
7log/*
diff --git a/codeless/.npmrc b/codeless/.npmrc
deleted file mode 100644
index ac8f24bde..000000000
--- a/codeless/.npmrc
+++ /dev/null
@@ -1,4 +0,0 @@
1runtime = electron
2target = 1.7.9
3target_arch = x64
4disturl = https://atom.io/download/atom-shell
diff --git a/codeless/.vscode/launch.json b/codeless/.vscode/launch.json
deleted file mode 100644
index 64f2c3693..000000000
--- a/codeless/.vscode/launch.json
+++ /dev/null
@@ -1,19 +0,0 @@
1{
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 "version": "0.2.0",
6 "configurations": [
7 {
8 "name": "Launch Extension",
9 "type": "extensionHost",
10 "request": "launch",
11 "runtimeExecutable": "${execPath}",
12 "args": ["--extensionDevelopmentPath=${workspaceRoot}"],
13 "stopOnEntry": false,
14 "sourceMaps": true,
15 "outFiles": [ "${workspaceRoot}/out/src/**/*.js" ],
16 "preLaunchTask": "npm"
17 },
18 ]
19}
diff --git a/codeless/.vscode/settings.json b/codeless/.vscode/settings.json
deleted file mode 100644
index 580db9c6a..000000000
--- a/codeless/.vscode/settings.json
+++ /dev/null
@@ -1,10 +0,0 @@
1// Place your settings in this file to overwrite default and user settings.
2{
3 "files.exclude": {
4 "out": true,
5 "node_modules": true
6 },
7 "search.exclude": {
8 "out": true // set this to false to include "out" folder in search results
9 }
10} \ No newline at end of file
diff --git a/codeless/.vscode/tasks.json b/codeless/.vscode/tasks.json
deleted file mode 100644
index 8e5a8b9ef..000000000
--- a/codeless/.vscode/tasks.json
+++ /dev/null
@@ -1,31 +0,0 @@
1
2// Available variables which can be used inside of strings.
3// ${workspaceRoot}: the root folder of the team
4// ${file}: the current opened file
5// ${fileBasename}: the current opened file's basename
6// ${fileDirname}: the current opened file's dirname
7// ${fileExtname}: the current opened file's extension
8// ${cwd}: the current working directory of the spawned process
9
10// A task runner that calls a custom npm script that compiles the extension.
11{
12 "version": "0.2.0",
13
14 // we want to run npm
15 "command": "npm",
16
17 // the command is a shell script
18 "isShellCommand": true,
19
20 // show the output window only if unrecognized errors occur.
21 "showOutput": "silent",
22
23 // we run the custom script "compile" as defined in package.json
24 "args": ["run", "compile", "--loglevel", "silent"],
25
26 // The tsc compiler is started in watching mode
27 "isBackground": true,
28
29 // use the standard tsc in watch mode problem matcher to find compile problems in the output.
30 "problemMatcher": "$tsc-watch"
31}
diff --git a/codeless/package-lock.json b/codeless/package-lock.json
deleted file mode 100644
index 4f0d14bdf..000000000
--- a/codeless/package-lock.json
+++ /dev/null
@@ -1,2381 +0,0 @@
1{
2 "name": "libsyntax-rust",
3 "version": "0.0.1",
4 "lockfileVersion": 1,
5 "requires": true,
6 "dependencies": {
7 "@types/node": {
8 "version": "7.0.69",
9 "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.69.tgz",
10 "integrity": "sha512-S5NC8HV6HnRipg8nC0j30TPl7ktXjRTKqgyINLNe8K/64UJUI8Lq0sRopXC0hProsV2F5ibj8IqPkl1xpGggrw==",
11 "dev": true
12 },
13 "ajv": {
14 "version": "5.5.2",
15 "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
16 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
17 "dev": true,
18 "requires": {
19 "co": "4.6.0",
20 "fast-deep-equal": "1.1.0",
21 "fast-json-stable-stringify": "2.0.0",
22 "json-schema-traverse": "0.3.1"
23 }
24 },
25 "ansi-cyan": {
26 "version": "0.1.1",
27 "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz",
28 "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=",
29 "dev": true,
30 "requires": {
31 "ansi-wrap": "0.1.0"
32 }
33 },
34 "ansi-red": {
35 "version": "0.1.1",
36 "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz",
37 "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=",
38 "dev": true,
39 "requires": {
40 "ansi-wrap": "0.1.0"
41 }
42 },
43 "ansi-wrap": {
44 "version": "0.1.0",
45 "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
46 "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
47 "dev": true
48 },
49 "argparse": {
50 "version": "1.0.10",
51 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
52 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
53 "dev": true,
54 "requires": {
55 "sprintf-js": "1.0.3"
56 }
57 },
58 "arr-diff": {
59 "version": "1.1.0",
60 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz",
61 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
62 "dev": true,
63 "requires": {
64 "arr-flatten": "1.1.0",
65 "array-slice": "0.2.3"
66 }
67 },
68 "arr-flatten": {
69 "version": "1.1.0",
70 "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
71 "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
72 "dev": true
73 },
74 "arr-union": {
75 "version": "2.1.0",
76 "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz",
77 "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=",
78 "dev": true
79 },
80 "array-differ": {
81 "version": "1.0.0",
82 "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
83 "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
84 "dev": true
85 },
86 "array-slice": {
87 "version": "0.2.3",
88 "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
89 "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
90 "dev": true
91 },
92 "array-union": {
93 "version": "1.0.2",
94 "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
95 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
96 "dev": true,
97 "requires": {
98 "array-uniq": "1.0.3"
99 }
100 },
101 "array-uniq": {
102 "version": "1.0.3",
103 "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
104 "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
105 "dev": true
106 },
107 "array-unique": {
108 "version": "0.2.1",
109 "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
110 "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
111 "dev": true
112 },
113 "arrify": {
114 "version": "1.0.1",
115 "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
116 "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
117 "dev": true
118 },
119 "asn1": {
120 "version": "0.2.4",
121 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
122 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
123 "dev": true,
124 "requires": {
125 "safer-buffer": "2.1.2"
126 }
127 },
128 "assert-plus": {
129 "version": "1.0.0",
130 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
131 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
132 "dev": true
133 },
134 "asynckit": {
135 "version": "0.4.0",
136 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
137 "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
138 "dev": true
139 },
140 "aws-sign2": {
141 "version": "0.7.0",
142 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
143 "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
144 "dev": true
145 },
146 "aws4": {
147 "version": "1.8.0",
148 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
149 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
150 "dev": true
151 },
152 "balanced-match": {
153 "version": "1.0.0",
154 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
155 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
156 "dev": true
157 },
158 "bcrypt-pbkdf": {
159 "version": "1.0.2",
160 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
161 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
162 "dev": true,
163 "optional": true,
164 "requires": {
165 "tweetnacl": "0.14.5"
166 }
167 },
168 "block-stream": {
169 "version": "0.0.9",
170 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
171 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
172 "dev": true,
173 "requires": {
174 "inherits": "2.0.3"
175 }
176 },
177 "boolbase": {
178 "version": "1.0.0",
179 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
180 "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
181 "dev": true
182 },
183 "brace-expansion": {
184 "version": "1.1.11",
185 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
186 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
187 "dev": true,
188 "requires": {
189 "balanced-match": "1.0.0",
190 "concat-map": "0.0.1"
191 }
192 },
193 "braces": {
194 "version": "1.8.5",
195 "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
196 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
197 "dev": true,
198 "requires": {
199 "expand-range": "1.8.2",
200 "preserve": "0.2.0",
201 "repeat-element": "1.1.2"
202 }
203 },
204 "browser-stdout": {
205 "version": "1.3.0",
206 "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
207 "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
208 "dev": true
209 },
210 "buffer-crc32": {
211 "version": "0.2.13",
212 "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
213 "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
214 "dev": true
215 },
216 "buffer-from": {
217 "version": "1.1.1",
218 "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
219 "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
220 "dev": true
221 },
222 "caseless": {
223 "version": "0.12.0",
224 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
225 "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
226 "dev": true
227 },
228 "cheerio": {
229 "version": "1.0.0-rc.2",
230 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
231 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
232 "dev": true,
233 "requires": {
234 "css-select": "1.2.0",
235 "dom-serializer": "0.1.0",
236 "entities": "1.1.1",
237 "htmlparser2": "3.9.2",
238 "lodash": "4.17.10",
239 "parse5": "3.0.3"
240 }
241 },
242 "clone": {
243 "version": "0.2.0",
244 "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
245 "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
246 "dev": true
247 },
248 "clone-buffer": {
249 "version": "1.0.0",
250 "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz",
251 "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=",
252 "dev": true
253 },
254 "clone-stats": {
255 "version": "0.0.1",
256 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
257 "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
258 "dev": true
259 },
260 "cloneable-readable": {
261 "version": "1.1.2",
262 "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz",
263 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
264 "dev": true,
265 "requires": {
266 "inherits": "2.0.3",
267 "process-nextick-args": "2.0.0",
268 "readable-stream": "2.3.6"
269 }
270 },
271 "co": {
272 "version": "4.6.0",
273 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
274 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
275 "dev": true
276 },
277 "combined-stream": {
278 "version": "1.0.6",
279 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
280 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
281 "dev": true,
282 "requires": {
283 "delayed-stream": "1.0.0"
284 }
285 },
286 "commander": {
287 "version": "2.17.1",
288 "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
289 "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
290 "dev": true
291 },
292 "concat-map": {
293 "version": "0.0.1",
294 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
295 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
296 "dev": true
297 },
298 "convert-source-map": {
299 "version": "1.5.1",
300 "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
301 "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
302 "dev": true
303 },
304 "core-util-is": {
305 "version": "1.0.2",
306 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
307 "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
308 "dev": true
309 },
310 "css-select": {
311 "version": "1.2.0",
312 "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
313 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
314 "dev": true,
315 "requires": {
316 "boolbase": "1.0.0",
317 "css-what": "2.1.0",
318 "domutils": "1.5.1",
319 "nth-check": "1.0.1"
320 }
321 },
322 "css-what": {
323 "version": "2.1.0",
324 "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
325 "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
326 "dev": true
327 },
328 "dashdash": {
329 "version": "1.14.1",
330 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
331 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
332 "dev": true,
333 "requires": {
334 "assert-plus": "1.0.0"
335 }
336 },
337 "debug": {
338 "version": "3.1.0",
339 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
340 "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
341 "dev": true,
342 "requires": {
343 "ms": "2.0.0"
344 }
345 },
346 "deep-assign": {
347 "version": "1.0.0",
348 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz",
349 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=",
350 "dev": true,
351 "requires": {
352 "is-obj": "1.0.1"
353 }
354 },
355 "delayed-stream": {
356 "version": "1.0.0",
357 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
358 "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
359 "dev": true
360 },
361 "denodeify": {
362 "version": "1.2.1",
363 "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz",
364 "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=",
365 "dev": true
366 },
367 "diff": {
368 "version": "3.3.1",
369 "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
370 "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
371 "dev": true
372 },
373 "dom-serializer": {
374 "version": "0.1.0",
375 "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
376 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
377 "dev": true,
378 "requires": {
379 "domelementtype": "1.1.3",
380 "entities": "1.1.1"
381 },
382 "dependencies": {
383 "domelementtype": {
384 "version": "1.1.3",
385 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
386 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
387 "dev": true
388 }
389 }
390 },
391 "domelementtype": {
392 "version": "1.3.0",
393 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
394 "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
395 "dev": true
396 },
397 "domhandler": {
398 "version": "2.4.2",
399 "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
400 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
401 "dev": true,
402 "requires": {
403 "domelementtype": "1.3.0"
404 }
405 },
406 "domutils": {
407 "version": "1.5.1",
408 "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
409 "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
410 "dev": true,
411 "requires": {
412 "dom-serializer": "0.1.0",
413 "domelementtype": "1.3.0"
414 }
415 },
416 "duplexer": {
417 "version": "0.1.1",
418 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
419 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
420 "dev": true
421 },
422 "duplexify": {
423 "version": "3.6.0",
424 "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
425 "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
426 "dev": true,
427 "requires": {
428 "end-of-stream": "1.4.1",
429 "inherits": "2.0.3",
430 "readable-stream": "2.3.6",
431 "stream-shift": "1.0.0"
432 }
433 },
434 "ecc-jsbn": {
435 "version": "0.1.2",
436 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
437 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
438 "dev": true,
439 "optional": true,
440 "requires": {
441 "jsbn": "0.1.1",
442 "safer-buffer": "2.1.2"
443 }
444 },
445 "end-of-stream": {
446 "version": "1.4.1",
447 "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
448 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
449 "dev": true,
450 "requires": {
451 "once": "1.4.0"
452 }
453 },
454 "entities": {
455 "version": "1.1.1",
456 "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
457 "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
458 "dev": true
459 },
460 "escape-string-regexp": {
461 "version": "1.0.5",
462 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
463 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
464 "dev": true
465 },
466 "event-stream": {
467 "version": "3.3.4",
468 "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
469 "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
470 "dev": true,
471 "requires": {
472 "duplexer": "0.1.1",
473 "from": "0.1.7",
474 "map-stream": "0.1.0",
475 "pause-stream": "0.0.11",
476 "split": "0.3.3",
477 "stream-combiner": "0.0.4",
478 "through": "2.3.8"
479 }
480 },
481 "expand-brackets": {
482 "version": "0.1.5",
483 "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
484 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
485 "dev": true,
486 "requires": {
487 "is-posix-bracket": "0.1.1"
488 }
489 },
490 "expand-range": {
491 "version": "1.8.2",
492 "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
493 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
494 "dev": true,
495 "requires": {
496 "fill-range": "2.2.4"
497 }
498 },
499 "extend": {
500 "version": "3.0.2",
501 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
502 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
503 "dev": true
504 },
505 "extend-shallow": {
506 "version": "1.1.4",
507 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz",
508 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
509 "dev": true,
510 "requires": {
511 "kind-of": "1.1.0"
512 }
513 },
514 "extglob": {
515 "version": "0.3.2",
516 "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
517 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
518 "dev": true,
519 "requires": {
520 "is-extglob": "1.0.0"
521 },
522 "dependencies": {
523 "is-extglob": {
524 "version": "1.0.0",
525 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
526 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
527 "dev": true
528 }
529 }
530 },
531 "extsprintf": {
532 "version": "1.3.0",
533 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
534 "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
535 "dev": true
536 },
537 "fast-deep-equal": {
538 "version": "1.1.0",
539 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
540 "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
541 "dev": true
542 },
543 "fast-json-stable-stringify": {
544 "version": "2.0.0",
545 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
546 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
547 "dev": true
548 },
549 "fd-slicer": {
550 "version": "1.1.0",
551 "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
552 "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
553 "dev": true,
554 "requires": {
555 "pend": "1.2.0"
556 }
557 },
558 "filename-regex": {
559 "version": "2.0.1",
560 "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
561 "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
562 "dev": true
563 },
564 "fill-range": {
565 "version": "2.2.4",
566 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
567 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
568 "dev": true,
569 "requires": {
570 "is-number": "2.1.0",
571 "isobject": "2.1.0",
572 "randomatic": "3.1.0",
573 "repeat-element": "1.1.2",
574 "repeat-string": "1.6.1"
575 }
576 },
577 "first-chunk-stream": {
578 "version": "1.0.0",
579 "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
580 "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
581 "dev": true
582 },
583 "for-in": {
584 "version": "1.0.2",
585 "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
586 "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
587 "dev": true
588 },
589 "for-own": {
590 "version": "0.1.5",
591 "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
592 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
593 "dev": true,
594 "requires": {
595 "for-in": "1.0.2"
596 }
597 },
598 "forever-agent": {
599 "version": "0.6.1",
600 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
601 "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
602 "dev": true
603 },
604 "form-data": {
605 "version": "2.3.2",
606 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
607 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
608 "dev": true,
609 "requires": {
610 "asynckit": "0.4.0",
611 "combined-stream": "1.0.6",
612 "mime-types": "2.1.19"
613 }
614 },
615 "from": {
616 "version": "0.1.7",
617 "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
618 "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
619 "dev": true
620 },
621 "fs.realpath": {
622 "version": "1.0.0",
623 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
624 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
625 "dev": true
626 },
627 "fstream": {
628 "version": "1.0.11",
629 "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
630 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
631 "dev": true,
632 "requires": {
633 "graceful-fs": "4.1.11",
634 "inherits": "2.0.3",
635 "mkdirp": "0.5.1",
636 "rimraf": "2.6.2"
637 }
638 },
639 "getpass": {
640 "version": "0.1.7",
641 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
642 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
643 "dev": true,
644 "requires": {
645 "assert-plus": "1.0.0"
646 }
647 },
648 "glob": {
649 "version": "7.1.2",
650 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
651 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
652 "dev": true,
653 "requires": {
654 "fs.realpath": "1.0.0",
655 "inflight": "1.0.6",
656 "inherits": "2.0.3",
657 "minimatch": "3.0.4",
658 "once": "1.4.0",
659 "path-is-absolute": "1.0.1"
660 }
661 },
662 "glob-base": {
663 "version": "0.3.0",
664 "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
665 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
666 "dev": true,
667 "requires": {
668 "glob-parent": "2.0.0",
669 "is-glob": "2.0.1"
670 },
671 "dependencies": {
672 "glob-parent": {
673 "version": "2.0.0",
674 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
675 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
676 "dev": true,
677 "requires": {
678 "is-glob": "2.0.1"
679 }
680 },
681 "is-extglob": {
682 "version": "1.0.0",
683 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
684 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
685 "dev": true
686 },
687 "is-glob": {
688 "version": "2.0.1",
689 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
690 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
691 "dev": true,
692 "requires": {
693 "is-extglob": "1.0.0"
694 }
695 }
696 }
697 },
698 "glob-parent": {
699 "version": "3.1.0",
700 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
701 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
702 "dev": true,
703 "requires": {
704 "is-glob": "3.1.0",
705 "path-dirname": "1.0.2"
706 }
707 },
708 "glob-stream": {
709 "version": "5.3.5",
710 "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
711 "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
712 "dev": true,
713 "requires": {
714 "extend": "3.0.2",
715 "glob": "5.0.15",
716 "glob-parent": "3.1.0",
717 "micromatch": "2.3.11",
718 "ordered-read-streams": "0.3.0",
719 "through2": "0.6.5",
720 "to-absolute-glob": "0.1.1",
721 "unique-stream": "2.2.1"
722 },
723 "dependencies": {
724 "glob": {
725 "version": "5.0.15",
726 "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
727 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
728 "dev": true,
729 "requires": {
730 "inflight": "1.0.6",
731 "inherits": "2.0.3",
732 "minimatch": "3.0.4",
733 "once": "1.4.0",
734 "path-is-absolute": "1.0.1"
735 }
736 },
737 "isarray": {
738 "version": "0.0.1",
739 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
740 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
741 "dev": true
742 },
743 "readable-stream": {
744 "version": "1.0.34",
745 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
746 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
747 "dev": true,
748 "requires": {
749 "core-util-is": "1.0.2",
750 "inherits": "2.0.3",
751 "isarray": "0.0.1",
752 "string_decoder": "0.10.31"
753 }
754 },
755 "string_decoder": {
756 "version": "0.10.31",
757 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
758 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
759 "dev": true
760 },
761 "through2": {
762 "version": "0.6.5",
763 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
764 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
765 "dev": true,
766 "requires": {
767 "readable-stream": "1.0.34",
768 "xtend": "4.0.1"
769 }
770 }
771 }
772 },
773 "graceful-fs": {
774 "version": "4.1.11",
775 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
776 "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
777 "dev": true
778 },
779 "growl": {
780 "version": "1.10.3",
781 "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
782 "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
783 "dev": true
784 },
785 "gulp-chmod": {
786 "version": "2.0.0",
787 "resolved": "https://registry.npmjs.org/gulp-chmod/-/gulp-chmod-2.0.0.tgz",
788 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=",
789 "dev": true,
790 "requires": {
791 "deep-assign": "1.0.0",
792 "stat-mode": "0.2.2",
793 "through2": "2.0.3"
794 }
795 },
796 "gulp-filter": {
797 "version": "5.1.0",
798 "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz",
799 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=",
800 "dev": true,
801 "requires": {
802 "multimatch": "2.1.0",
803 "plugin-error": "0.1.2",
804 "streamfilter": "1.0.7"
805 }
806 },
807 "gulp-gunzip": {
808 "version": "1.0.0",
809 "resolved": "https://registry.npmjs.org/gulp-gunzip/-/gulp-gunzip-1.0.0.tgz",
810 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=",
811 "dev": true,
812 "requires": {
813 "through2": "0.6.5",
814 "vinyl": "0.4.6"
815 },
816 "dependencies": {
817 "isarray": {
818 "version": "0.0.1",
819 "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
820 "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
821 "dev": true
822 },
823 "readable-stream": {
824 "version": "1.0.34",
825 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
826 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
827 "dev": true,
828 "requires": {
829 "core-util-is": "1.0.2",
830 "inherits": "2.0.3",
831 "isarray": "0.0.1",
832 "string_decoder": "0.10.31"
833 }
834 },
835 "string_decoder": {
836 "version": "0.10.31",
837 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
838 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
839 "dev": true
840 },
841 "through2": {
842 "version": "0.6.5",
843 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
844 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
845 "dev": true,
846 "requires": {
847 "readable-stream": "1.0.34",
848 "xtend": "4.0.1"
849 }
850 }
851 }
852 },
853 "gulp-remote-src-vscode": {
854 "version": "0.5.0",
855 "resolved": "https://registry.npmjs.org/gulp-remote-src-vscode/-/gulp-remote-src-vscode-0.5.0.tgz",
856 "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==",
857 "dev": true,
858 "requires": {
859 "event-stream": "3.3.4",
860 "node.extend": "1.1.6",
861 "request": "2.87.0",
862 "through2": "2.0.3",
863 "vinyl": "2.2.0"
864 },
865 "dependencies": {
866 "clone": {
867 "version": "2.1.2",
868 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
869 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
870 "dev": true
871 },
872 "clone-stats": {
873 "version": "1.0.0",
874 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
875 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
876 "dev": true
877 },
878 "vinyl": {
879 "version": "2.2.0",
880 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
881 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
882 "dev": true,
883 "requires": {
884 "clone": "2.1.2",
885 "clone-buffer": "1.0.0",
886 "clone-stats": "1.0.0",
887 "cloneable-readable": "1.1.2",
888 "remove-trailing-separator": "1.1.0",
889 "replace-ext": "1.0.0"
890 }
891 }
892 }
893 },
894 "gulp-sourcemaps": {
895 "version": "1.6.0",
896 "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
897 "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
898 "dev": true,
899 "requires": {
900 "convert-source-map": "1.5.1",
901 "graceful-fs": "4.1.11",
902 "strip-bom": "2.0.0",
903 "through2": "2.0.3",
904 "vinyl": "1.2.0"
905 },
906 "dependencies": {
907 "clone": {
908 "version": "1.0.4",
909 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
910 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
911 "dev": true
912 },
913 "replace-ext": {
914 "version": "0.0.1",
915 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
916 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
917 "dev": true
918 },
919 "vinyl": {
920 "version": "1.2.0",
921 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
922 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
923 "dev": true,
924 "requires": {
925 "clone": "1.0.4",
926 "clone-stats": "0.0.1",
927 "replace-ext": "0.0.1"
928 }
929 }
930 }
931 },
932 "gulp-symdest": {
933 "version": "1.1.0",
934 "resolved": "https://registry.npmjs.org/gulp-symdest/-/gulp-symdest-1.1.0.tgz",
935 "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=",
936 "dev": true,
937 "requires": {
938 "event-stream": "3.3.4",
939 "mkdirp": "0.5.1",
940 "queue": "3.1.0",
941 "vinyl-fs": "2.4.4"
942 }
943 },
944 "gulp-untar": {
945 "version": "0.0.7",
946 "resolved": "https://registry.npmjs.org/gulp-untar/-/gulp-untar-0.0.7.tgz",
947 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==",
948 "dev": true,
949 "requires": {
950 "event-stream": "3.3.4",
951 "streamifier": "0.1.1",
952 "tar": "2.2.1",
953 "through2": "2.0.3",
954 "vinyl": "1.2.0"
955 },
956 "dependencies": {
957 "clone": {
958 "version": "1.0.4",
959 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
960 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
961 "dev": true
962 },
963 "replace-ext": {
964 "version": "0.0.1",
965 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
966 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
967 "dev": true
968 },
969 "vinyl": {
970 "version": "1.2.0",
971 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
972 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
973 "dev": true,
974 "requires": {
975 "clone": "1.0.4",
976 "clone-stats": "0.0.1",
977 "replace-ext": "0.0.1"
978 }
979 }
980 }
981 },
982 "gulp-vinyl-zip": {
983 "version": "2.1.0",
984 "resolved": "https://registry.npmjs.org/gulp-vinyl-zip/-/gulp-vinyl-zip-2.1.0.tgz",
985 "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=",
986 "dev": true,
987 "requires": {
988 "event-stream": "3.3.4",
989 "queue": "4.4.2",
990 "through2": "2.0.3",
991 "vinyl": "2.2.0",
992 "vinyl-fs": "2.4.4",
993 "yauzl": "2.10.0",
994 "yazl": "2.4.3"
995 },
996 "dependencies": {
997 "clone": {
998 "version": "2.1.2",
999 "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
1000 "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
1001 "dev": true
1002 },
1003 "clone-stats": {
1004 "version": "1.0.0",
1005 "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz",
1006 "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=",
1007 "dev": true
1008 },
1009 "queue": {
1010 "version": "4.4.2",
1011 "resolved": "https://registry.npmjs.org/queue/-/queue-4.4.2.tgz",
1012 "integrity": "sha512-fSMRXbwhMwipcDZ08enW2vl+YDmAmhcNcr43sCJL8DIg+CFOsoRLG23ctxA+fwNk1w55SePSiS7oqQQSgQoVJQ==",
1013 "dev": true,
1014 "requires": {
1015 "inherits": "2.0.3"
1016 }
1017 },
1018 "vinyl": {
1019 "version": "2.2.0",
1020 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz",
1021 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1022 "dev": true,
1023 "requires": {
1024 "clone": "2.1.2",
1025 "clone-buffer": "1.0.0",
1026 "clone-stats": "1.0.0",
1027 "cloneable-readable": "1.1.2",
1028 "remove-trailing-separator": "1.1.0",
1029 "replace-ext": "1.0.0"
1030 }
1031 }
1032 }
1033 },
1034 "har-schema": {
1035 "version": "2.0.0",
1036 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
1037 "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
1038 "dev": true
1039 },
1040 "har-validator": {
1041 "version": "5.0.3",
1042 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
1043 "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
1044 "dev": true,
1045 "requires": {
1046 "ajv": "5.5.2",
1047 "har-schema": "2.0.0"
1048 }
1049 },
1050 "has-flag": {
1051 "version": "2.0.0",
1052 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
1053 "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
1054 "dev": true
1055 },
1056 "he": {
1057 "version": "1.1.1",
1058 "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
1059 "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
1060 "dev": true
1061 },
1062 "htmlparser2": {
1063 "version": "3.9.2",
1064 "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
1065 "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
1066 "dev": true,
1067 "requires": {
1068 "domelementtype": "1.3.0",
1069 "domhandler": "2.4.2",
1070 "domutils": "1.5.1",
1071 "entities": "1.1.1",
1072 "inherits": "2.0.3",
1073 "readable-stream": "2.3.6"
1074 }
1075 },
1076 "http-signature": {
1077 "version": "1.2.0",
1078 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
1079 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1080 "dev": true,
1081 "requires": {
1082 "assert-plus": "1.0.0",
1083 "jsprim": "1.4.1",
1084 "sshpk": "1.14.2"
1085 }
1086 },
1087 "inflight": {
1088 "version": "1.0.6",
1089 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1090 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1091 "dev": true,
1092 "requires": {
1093 "once": "1.4.0",
1094 "wrappy": "1.0.2"
1095 }
1096 },
1097 "inherits": {
1098 "version": "2.0.3",
1099 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1100 "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1101 "dev": true
1102 },
1103 "is": {
1104 "version": "3.2.1",
1105 "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz",
1106 "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=",
1107 "dev": true
1108 },
1109 "is-buffer": {
1110 "version": "1.1.6",
1111 "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1112 "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1113 "dev": true
1114 },
1115 "is-dotfile": {
1116 "version": "1.0.3",
1117 "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
1118 "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
1119 "dev": true
1120 },
1121 "is-equal-shallow": {
1122 "version": "0.1.3",
1123 "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
1124 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1125 "dev": true,
1126 "requires": {
1127 "is-primitive": "2.0.0"
1128 }
1129 },
1130 "is-extendable": {
1131 "version": "0.1.1",
1132 "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
1133 "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
1134 "dev": true
1135 },
1136 "is-extglob": {
1137 "version": "2.1.1",
1138 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1139 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1140 "dev": true
1141 },
1142 "is-glob": {
1143 "version": "3.1.0",
1144 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1145 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1146 "dev": true,
1147 "requires": {
1148 "is-extglob": "2.1.1"
1149 }
1150 },
1151 "is-number": {
1152 "version": "2.1.0",
1153 "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1154 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1155 "dev": true,
1156 "requires": {
1157 "kind-of": "3.2.2"
1158 },
1159 "dependencies": {
1160 "kind-of": {
1161 "version": "3.2.2",
1162 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1163 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1164 "dev": true,
1165 "requires": {
1166 "is-buffer": "1.1.6"
1167 }
1168 }
1169 }
1170 },
1171 "is-obj": {
1172 "version": "1.0.1",
1173 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1174 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1175 "dev": true
1176 },
1177 "is-posix-bracket": {
1178 "version": "0.1.1",
1179 "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
1180 "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
1181 "dev": true
1182 },
1183 "is-primitive": {
1184 "version": "2.0.0",
1185 "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
1186 "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
1187 "dev": true
1188 },
1189 "is-stream": {
1190 "version": "1.1.0",
1191 "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1192 "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1193 "dev": true
1194 },
1195 "is-typedarray": {
1196 "version": "1.0.0",
1197 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
1198 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
1199 "dev": true
1200 },
1201 "is-utf8": {
1202 "version": "0.2.1",
1203 "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1204 "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
1205 "dev": true
1206 },
1207 "is-valid-glob": {
1208 "version": "0.3.0",
1209 "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
1210 "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
1211 "dev": true
1212 },
1213 "isarray": {
1214 "version": "1.0.0",
1215 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1216 "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1217 "dev": true
1218 },
1219 "isobject": {
1220 "version": "2.1.0",
1221 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1222 "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1223 "dev": true,
1224 "requires": {
1225 "isarray": "1.0.0"
1226 }
1227 },
1228 "isstream": {
1229 "version": "0.1.2",
1230 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1231 "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
1232 "dev": true
1233 },
1234 "jsbn": {
1235 "version": "0.1.1",
1236 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1237 "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1238 "dev": true,
1239 "optional": true
1240 },
1241 "json-schema": {
1242 "version": "0.2.3",
1243 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1244 "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
1245 "dev": true
1246 },
1247 "json-schema-traverse": {
1248 "version": "0.3.1",
1249 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
1250 "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
1251 "dev": true
1252 },
1253 "json-stable-stringify": {
1254 "version": "1.0.1",
1255 "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
1256 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
1257 "dev": true,
1258 "requires": {
1259 "jsonify": "0.0.0"
1260 }
1261 },
1262 "json-stringify-safe": {
1263 "version": "5.0.1",
1264 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1265 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1266 "dev": true
1267 },
1268 "jsonify": {
1269 "version": "0.0.0",
1270 "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
1271 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
1272 "dev": true
1273 },
1274 "jsprim": {
1275 "version": "1.4.1",
1276 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1277 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1278 "dev": true,
1279 "requires": {
1280 "assert-plus": "1.0.0",
1281 "extsprintf": "1.3.0",
1282 "json-schema": "0.2.3",
1283 "verror": "1.10.0"
1284 }
1285 },
1286 "kind-of": {
1287 "version": "1.1.0",
1288 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
1289 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
1290 "dev": true
1291 },
1292 "lazystream": {
1293 "version": "1.0.0",
1294 "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
1295 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
1296 "dev": true,
1297 "requires": {
1298 "readable-stream": "2.3.6"
1299 }
1300 },
1301 "linkify-it": {
1302 "version": "2.0.3",
1303 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
1304 "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
1305 "dev": true,
1306 "requires": {
1307 "uc.micro": "1.0.5"
1308 }
1309 },
1310 "lodash": {
1311 "version": "4.17.10",
1312 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
1313 "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
1314 "dev": true
1315 },
1316 "lodash.isequal": {
1317 "version": "4.5.0",
1318 "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
1319 "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
1320 "dev": true
1321 },
1322 "map-stream": {
1323 "version": "0.1.0",
1324 "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
1325 "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
1326 "dev": true
1327 },
1328 "markdown-it": {
1329 "version": "8.4.2",
1330 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
1331 "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
1332 "dev": true,
1333 "requires": {
1334 "argparse": "1.0.10",
1335 "entities": "1.1.1",
1336 "linkify-it": "2.0.3",
1337 "mdurl": "1.0.1",
1338 "uc.micro": "1.0.5"
1339 }
1340 },
1341 "math-random": {
1342 "version": "1.0.1",
1343 "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
1344 "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
1345 "dev": true
1346 },
1347 "mdurl": {
1348 "version": "1.0.1",
1349 "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
1350 "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
1351 "dev": true
1352 },
1353 "merge-stream": {
1354 "version": "1.0.1",
1355 "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
1356 "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
1357 "dev": true,
1358 "requires": {
1359 "readable-stream": "2.3.6"
1360 }
1361 },
1362 "micromatch": {
1363 "version": "2.3.11",
1364 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
1365 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1366 "dev": true,
1367 "requires": {
1368 "arr-diff": "2.0.0",
1369 "array-unique": "0.2.1",
1370 "braces": "1.8.5",
1371 "expand-brackets": "0.1.5",
1372 "extglob": "0.3.2",
1373 "filename-regex": "2.0.1",
1374 "is-extglob": "1.0.0",
1375 "is-glob": "2.0.1",
1376 "kind-of": "3.2.2",
1377 "normalize-path": "2.1.1",
1378 "object.omit": "2.0.1",
1379 "parse-glob": "3.0.4",
1380 "regex-cache": "0.4.4"
1381 },
1382 "dependencies": {
1383 "arr-diff": {
1384 "version": "2.0.0",
1385 "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
1386 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
1387 "dev": true,
1388 "requires": {
1389 "arr-flatten": "1.1.0"
1390 }
1391 },
1392 "is-extglob": {
1393 "version": "1.0.0",
1394 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1395 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1396 "dev": true
1397 },
1398 "is-glob": {
1399 "version": "2.0.1",
1400 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1401 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1402 "dev": true,
1403 "requires": {
1404 "is-extglob": "1.0.0"
1405 }
1406 },
1407 "kind-of": {
1408 "version": "3.2.2",
1409 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1410 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1411 "dev": true,
1412 "requires": {
1413 "is-buffer": "1.1.6"
1414 }
1415 }
1416 }
1417 },
1418 "mime": {
1419 "version": "1.6.0",
1420 "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1421 "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1422 "dev": true
1423 },
1424 "mime-db": {
1425 "version": "1.35.0",
1426 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz",
1427 "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==",
1428 "dev": true
1429 },
1430 "mime-types": {
1431 "version": "2.1.19",
1432 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz",
1433 "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==",
1434 "dev": true,
1435 "requires": {
1436 "mime-db": "1.35.0"
1437 }
1438 },
1439 "minimatch": {
1440 "version": "3.0.4",
1441 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1442 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1443 "dev": true,
1444 "requires": {
1445 "brace-expansion": "1.1.11"
1446 }
1447 },
1448 "minimist": {
1449 "version": "0.0.8",
1450 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1451 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1452 "dev": true
1453 },
1454 "mkdirp": {
1455 "version": "0.5.1",
1456 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1457 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1458 "dev": true,
1459 "requires": {
1460 "minimist": "0.0.8"
1461 }
1462 },
1463 "mocha": {
1464 "version": "4.1.0",
1465 "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
1466 "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
1467 "dev": true,
1468 "requires": {
1469 "browser-stdout": "1.3.0",
1470 "commander": "2.11.0",
1471 "debug": "3.1.0",
1472 "diff": "3.3.1",
1473 "escape-string-regexp": "1.0.5",
1474 "glob": "7.1.2",
1475 "growl": "1.10.3",
1476 "he": "1.1.1",
1477 "mkdirp": "0.5.1",
1478 "supports-color": "4.4.0"
1479 },
1480 "dependencies": {
1481 "commander": {
1482 "version": "2.11.0",
1483 "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
1484 "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
1485 "dev": true
1486 }
1487 }
1488 },
1489 "ms": {
1490 "version": "2.0.0",
1491 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1492 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1493 "dev": true
1494 },
1495 "multimatch": {
1496 "version": "2.1.0",
1497 "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
1498 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
1499 "dev": true,
1500 "requires": {
1501 "array-differ": "1.0.0",
1502 "array-union": "1.0.2",
1503 "arrify": "1.0.1",
1504 "minimatch": "3.0.4"
1505 }
1506 },
1507 "mute-stream": {
1508 "version": "0.0.7",
1509 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
1510 "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
1511 "dev": true
1512 },
1513 "node.extend": {
1514 "version": "1.1.6",
1515 "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz",
1516 "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=",
1517 "dev": true,
1518 "requires": {
1519 "is": "3.2.1"
1520 }
1521 },
1522 "normalize-path": {
1523 "version": "2.1.1",
1524 "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1525 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1526 "dev": true,
1527 "requires": {
1528 "remove-trailing-separator": "1.1.0"
1529 }
1530 },
1531 "nth-check": {
1532 "version": "1.0.1",
1533 "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
1534 "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
1535 "dev": true,
1536 "requires": {
1537 "boolbase": "1.0.0"
1538 }
1539 },
1540 "oauth-sign": {
1541 "version": "0.8.2",
1542 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
1543 "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
1544 "dev": true
1545 },
1546 "object-assign": {
1547 "version": "4.1.1",
1548 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1549 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1550 "dev": true
1551 },
1552 "object.omit": {
1553 "version": "2.0.1",
1554 "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
1555 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
1556 "dev": true,
1557 "requires": {
1558 "for-own": "0.1.5",
1559 "is-extendable": "0.1.1"
1560 }
1561 },
1562 "once": {
1563 "version": "1.4.0",
1564 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1565 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1566 "dev": true,
1567 "requires": {
1568 "wrappy": "1.0.2"
1569 }
1570 },
1571 "ordered-read-streams": {
1572 "version": "0.3.0",
1573 "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
1574 "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
1575 "dev": true,
1576 "requires": {
1577 "is-stream": "1.1.0",
1578 "readable-stream": "2.3.6"
1579 }
1580 },
1581 "os-homedir": {
1582 "version": "1.0.2",
1583 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1584 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
1585 "dev": true
1586 },
1587 "os-tmpdir": {
1588 "version": "1.0.2",
1589 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1590 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1591 "dev": true
1592 },
1593 "osenv": {
1594 "version": "0.1.5",
1595 "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
1596 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1597 "dev": true,
1598 "requires": {
1599 "os-homedir": "1.0.2",
1600 "os-tmpdir": "1.0.2"
1601 }
1602 },
1603 "parse-glob": {
1604 "version": "3.0.4",
1605 "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
1606 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
1607 "dev": true,
1608 "requires": {
1609 "glob-base": "0.3.0",
1610 "is-dotfile": "1.0.3",
1611 "is-extglob": "1.0.0",
1612 "is-glob": "2.0.1"
1613 },
1614 "dependencies": {
1615 "is-extglob": {
1616 "version": "1.0.0",
1617 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
1618 "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
1619 "dev": true
1620 },
1621 "is-glob": {
1622 "version": "2.0.1",
1623 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1624 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1625 "dev": true,
1626 "requires": {
1627 "is-extglob": "1.0.0"
1628 }
1629 }
1630 }
1631 },
1632 "parse-semver": {
1633 "version": "1.1.1",
1634 "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz",
1635 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=",
1636 "dev": true,
1637 "requires": {
1638 "semver": "5.5.0"
1639 }
1640 },
1641 "parse5": {
1642 "version": "3.0.3",
1643 "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
1644 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
1645 "dev": true,
1646 "requires": {
1647 "@types/node": "7.0.69"
1648 }
1649 },
1650 "path-dirname": {
1651 "version": "1.0.2",
1652 "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
1653 "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
1654 "dev": true
1655 },
1656 "path-is-absolute": {
1657 "version": "1.0.1",
1658 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1659 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1660 "dev": true
1661 },
1662 "pause-stream": {
1663 "version": "0.0.11",
1664 "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1665 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1666 "dev": true,
1667 "requires": {
1668 "through": "2.3.8"
1669 }
1670 },
1671 "pend": {
1672 "version": "1.2.0",
1673 "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1674 "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
1675 "dev": true
1676 },
1677 "performance-now": {
1678 "version": "2.1.0",
1679 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1680 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
1681 "dev": true
1682 },
1683 "plugin-error": {
1684 "version": "0.1.2",
1685 "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
1686 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
1687 "dev": true,
1688 "requires": {
1689 "ansi-cyan": "0.1.1",
1690 "ansi-red": "0.1.1",
1691 "arr-diff": "1.1.0",
1692 "arr-union": "2.1.0",
1693 "extend-shallow": "1.1.4"
1694 }
1695 },
1696 "preserve": {
1697 "version": "0.2.0",
1698 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
1699 "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
1700 "dev": true
1701 },
1702 "process-nextick-args": {
1703 "version": "2.0.0",
1704 "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
1705 "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
1706 "dev": true
1707 },
1708 "punycode": {
1709 "version": "1.4.1",
1710 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1711 "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
1712 "dev": true
1713 },
1714 "q": {
1715 "version": "1.5.1",
1716 "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
1717 "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
1718 "dev": true
1719 },
1720 "qs": {
1721 "version": "6.5.2",
1722 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1723 "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
1724 "dev": true
1725 },
1726 "querystringify": {
1727 "version": "2.0.0",
1728 "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
1729 "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
1730 "dev": true
1731 },
1732 "queue": {
1733 "version": "3.1.0",
1734 "resolved": "https://registry.npmjs.org/queue/-/queue-3.1.0.tgz",
1735 "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=",
1736 "dev": true,
1737 "requires": {
1738 "inherits": "2.0.3"
1739 }
1740 },
1741 "randomatic": {
1742 "version": "3.1.0",
1743 "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
1744 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
1745 "dev": true,
1746 "requires": {
1747 "is-number": "4.0.0",
1748 "kind-of": "6.0.2",
1749 "math-random": "1.0.1"
1750 },
1751 "dependencies": {
1752 "is-number": {
1753 "version": "4.0.0",
1754 "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
1755 "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
1756 "dev": true
1757 },
1758 "kind-of": {
1759 "version": "6.0.2",
1760 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1761 "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1762 "dev": true
1763 }
1764 }
1765 },
1766 "read": {
1767 "version": "1.0.7",
1768 "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
1769 "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
1770 "dev": true,
1771 "requires": {
1772 "mute-stream": "0.0.7"
1773 }
1774 },
1775 "readable-stream": {
1776 "version": "2.3.6",
1777 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1778 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1779 "dev": true,
1780 "requires": {
1781 "core-util-is": "1.0.2",
1782 "inherits": "2.0.3",
1783 "isarray": "1.0.0",
1784 "process-nextick-args": "2.0.0",
1785 "safe-buffer": "5.1.2",
1786 "string_decoder": "1.1.1",
1787 "util-deprecate": "1.0.2"
1788 }
1789 },
1790 "regex-cache": {
1791 "version": "0.4.4",
1792 "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
1793 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
1794 "dev": true,
1795 "requires": {
1796 "is-equal-shallow": "0.1.3"
1797 }
1798 },
1799 "remove-trailing-separator": {
1800 "version": "1.1.0",
1801 "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
1802 "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
1803 "dev": true
1804 },
1805 "repeat-element": {
1806 "version": "1.1.2",
1807 "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
1808 "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
1809 "dev": true
1810 },
1811 "repeat-string": {
1812 "version": "1.6.1",
1813 "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1814 "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
1815 "dev": true
1816 },
1817 "replace-ext": {
1818 "version": "1.0.0",
1819 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
1820 "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
1821 "dev": true
1822 },
1823 "request": {
1824 "version": "2.87.0",
1825 "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
1826 "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
1827 "dev": true,
1828 "requires": {
1829 "aws-sign2": "0.7.0",
1830 "aws4": "1.8.0",
1831 "caseless": "0.12.0",
1832 "combined-stream": "1.0.6",
1833 "extend": "3.0.2",
1834 "forever-agent": "0.6.1",
1835 "form-data": "2.3.2",
1836 "har-validator": "5.0.3",
1837 "http-signature": "1.2.0",
1838 "is-typedarray": "1.0.0",
1839 "isstream": "0.1.2",
1840 "json-stringify-safe": "5.0.1",
1841 "mime-types": "2.1.19",
1842 "oauth-sign": "0.8.2",
1843 "performance-now": "2.1.0",
1844 "qs": "6.5.2",
1845 "safe-buffer": "5.1.2",
1846 "tough-cookie": "2.3.4",
1847 "tunnel-agent": "0.6.0",
1848 "uuid": "3.3.2"
1849 }
1850 },
1851 "requires-port": {
1852 "version": "1.0.0",
1853 "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
1854 "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
1855 "dev": true
1856 },
1857 "rimraf": {
1858 "version": "2.6.2",
1859 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1860 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
1861 "dev": true,
1862 "requires": {
1863 "glob": "7.1.2"
1864 }
1865 },
1866 "safe-buffer": {
1867 "version": "5.1.2",
1868 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1869 "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1870 "dev": true
1871 },
1872 "safer-buffer": {
1873 "version": "2.1.2",
1874 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1875 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1876 "dev": true
1877 },
1878 "semver": {
1879 "version": "5.5.0",
1880 "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
1881 "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
1882 "dev": true
1883 },
1884 "source-map": {
1885 "version": "0.6.1",
1886 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1887 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1888 "dev": true
1889 },
1890 "source-map-support": {
1891 "version": "0.5.8",
1892 "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.8.tgz",
1893 "integrity": "sha512-WqAEWPdb78u25RfKzOF0swBpY0dKrNdjc4GvLwm7ScX/o9bj8Eh/YL8mcMhBHYDGl87UkkSXDOFnW4G7GhWhGg==",
1894 "dev": true,
1895 "requires": {
1896 "buffer-from": "1.1.1",
1897 "source-map": "0.6.1"
1898 }
1899 },
1900 "split": {
1901 "version": "0.3.3",
1902 "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
1903 "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
1904 "dev": true,
1905 "requires": {
1906 "through": "2.3.8"
1907 }
1908 },
1909 "sprintf-js": {
1910 "version": "1.0.3",
1911 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1912 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1913 "dev": true
1914 },
1915 "sshpk": {
1916 "version": "1.14.2",
1917 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
1918 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
1919 "dev": true,
1920 "requires": {
1921 "asn1": "0.2.4",
1922 "assert-plus": "1.0.0",
1923 "bcrypt-pbkdf": "1.0.2",
1924 "dashdash": "1.14.1",
1925 "ecc-jsbn": "0.1.2",
1926 "getpass": "0.1.7",
1927 "jsbn": "0.1.1",
1928 "safer-buffer": "2.1.2",
1929 "tweetnacl": "0.14.5"
1930 }
1931 },
1932 "stat-mode": {
1933 "version": "0.2.2",
1934 "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
1935 "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
1936 "dev": true
1937 },
1938 "stream-combiner": {
1939 "version": "0.0.4",
1940 "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
1941 "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
1942 "dev": true,
1943 "requires": {
1944 "duplexer": "0.1.1"
1945 }
1946 },
1947 "stream-shift": {
1948 "version": "1.0.0",
1949 "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
1950 "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
1951 "dev": true
1952 },
1953 "streamfilter": {
1954 "version": "1.0.7",
1955 "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz",
1956 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==",
1957 "dev": true,
1958 "requires": {
1959 "readable-stream": "2.3.6"
1960 }
1961 },
1962 "streamifier": {
1963 "version": "0.1.1",
1964 "resolved": "https://registry.npmjs.org/streamifier/-/streamifier-0.1.1.tgz",
1965 "integrity": "sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=",
1966 "dev": true
1967 },
1968 "string_decoder": {
1969 "version": "1.1.1",
1970 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1971 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1972 "dev": true,
1973 "requires": {
1974 "safe-buffer": "5.1.2"
1975 }
1976 },
1977 "strip-bom": {
1978 "version": "2.0.0",
1979 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
1980 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
1981 "dev": true,
1982 "requires": {
1983 "is-utf8": "0.2.1"
1984 }
1985 },
1986 "strip-bom-stream": {
1987 "version": "1.0.0",
1988 "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
1989 "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
1990 "dev": true,
1991 "requires": {
1992 "first-chunk-stream": "1.0.0",
1993 "strip-bom": "2.0.0"
1994 }
1995 },
1996 "supports-color": {
1997 "version": "4.4.0",
1998 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
1999 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2000 "dev": true,
2001 "requires": {
2002 "has-flag": "2.0.0"
2003 }
2004 },
2005 "tar": {
2006 "version": "2.2.1",
2007 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
2008 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2009 "dev": true,
2010 "requires": {
2011 "block-stream": "0.0.9",
2012 "fstream": "1.0.11",
2013 "inherits": "2.0.3"
2014 }
2015 },
2016 "through": {
2017 "version": "2.3.8",
2018 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2019 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2020 "dev": true
2021 },
2022 "through2": {
2023 "version": "2.0.3",
2024 "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
2025 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
2026 "dev": true,
2027 "requires": {
2028 "readable-stream": "2.3.6",
2029 "xtend": "4.0.1"
2030 }
2031 },
2032 "through2-filter": {
2033 "version": "2.0.0",
2034 "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
2035 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
2036 "dev": true,
2037 "requires": {
2038 "through2": "2.0.3",
2039 "xtend": "4.0.1"
2040 }
2041 },
2042 "tmp": {
2043 "version": "0.0.29",
2044 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz",
2045 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
2046 "dev": true,
2047 "requires": {
2048 "os-tmpdir": "1.0.2"
2049 }
2050 },
2051 "to-absolute-glob": {
2052 "version": "0.1.1",
2053 "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
2054 "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
2055 "dev": true,
2056 "requires": {
2057 "extend-shallow": "2.0.1"
2058 },
2059 "dependencies": {
2060 "extend-shallow": {
2061 "version": "2.0.1",
2062 "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2063 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2064 "dev": true,
2065 "requires": {
2066 "is-extendable": "0.1.1"
2067 }
2068 }
2069 }
2070 },
2071 "tough-cookie": {
2072 "version": "2.3.4",
2073 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
2074 "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
2075 "dev": true,
2076 "requires": {
2077 "punycode": "1.4.1"
2078 }
2079 },
2080 "tunnel": {
2081 "version": "0.0.4",
2082 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz",
2083 "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=",
2084 "dev": true
2085 },
2086 "tunnel-agent": {
2087 "version": "0.6.0",
2088 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
2089 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2090 "dev": true,
2091 "requires": {
2092 "safe-buffer": "5.1.2"
2093 }
2094 },
2095 "tweetnacl": {
2096 "version": "0.14.5",
2097 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
2098 "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
2099 "dev": true,
2100 "optional": true
2101 },
2102 "typed-rest-client": {
2103 "version": "0.9.0",
2104 "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-0.9.0.tgz",
2105 "integrity": "sha1-92jMDcP06VDwbgSCXDaz54NKofI=",
2106 "dev": true,
2107 "requires": {
2108 "tunnel": "0.0.4",
2109 "underscore": "1.8.3"
2110 },
2111 "dependencies": {
2112 "underscore": {
2113 "version": "1.8.3",
2114 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
2115 "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
2116 "dev": true
2117 }
2118 }
2119 },
2120 "typescript": {
2121 "version": "2.9.2",
2122 "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
2123 "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
2124 "dev": true
2125 },
2126 "uc.micro": {
2127 "version": "1.0.5",
2128 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
2129 "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg==",
2130 "dev": true
2131 },
2132 "underscore": {
2133 "version": "1.9.1",
2134 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
2135 "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==",
2136 "dev": true
2137 },
2138 "unique-stream": {
2139 "version": "2.2.1",
2140 "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
2141 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
2142 "dev": true,
2143 "requires": {
2144 "json-stable-stringify": "1.0.1",
2145 "through2-filter": "2.0.0"
2146 }
2147 },
2148 "url-join": {
2149 "version": "1.1.0",
2150 "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz",
2151 "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=",
2152 "dev": true
2153 },
2154 "url-parse": {
2155 "version": "1.4.3",
2156 "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz",
2157 "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==",
2158 "dev": true,
2159 "requires": {
2160 "querystringify": "2.0.0",
2161 "requires-port": "1.0.0"
2162 }
2163 },
2164 "util-deprecate": {
2165 "version": "1.0.2",
2166 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2167 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2168 "dev": true
2169 },
2170 "uuid": {
2171 "version": "3.3.2",
2172 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
2173 "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
2174 "dev": true
2175 },
2176 "vali-date": {
2177 "version": "1.0.0",
2178 "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
2179 "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
2180 "dev": true
2181 },
2182 "verror": {
2183 "version": "1.10.0",
2184 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2185 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2186 "dev": true,
2187 "requires": {
2188 "assert-plus": "1.0.0",
2189 "core-util-is": "1.0.2",
2190 "extsprintf": "1.3.0"
2191 }
2192 },
2193 "vinyl": {
2194 "version": "0.4.6",
2195 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
2196 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
2197 "dev": true,
2198 "requires": {
2199 "clone": "0.2.0",
2200 "clone-stats": "0.0.1"
2201 }
2202 },
2203 "vinyl-fs": {
2204 "version": "2.4.4",
2205 "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
2206 "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
2207 "dev": true,
2208 "requires": {
2209 "duplexify": "3.6.0",
2210 "glob-stream": "5.3.5",
2211 "graceful-fs": "4.1.11",
2212 "gulp-sourcemaps": "1.6.0",
2213 "is-valid-glob": "0.3.0",
2214 "lazystream": "1.0.0",
2215 "lodash.isequal": "4.5.0",
2216 "merge-stream": "1.0.1",
2217 "mkdirp": "0.5.1",
2218 "object-assign": "4.1.1",
2219 "readable-stream": "2.3.6",
2220 "strip-bom": "2.0.0",
2221 "strip-bom-stream": "1.0.0",
2222 "through2": "2.0.3",
2223 "through2-filter": "2.0.0",
2224 "vali-date": "1.0.0",
2225 "vinyl": "1.2.0"
2226 },
2227 "dependencies": {
2228 "clone": {
2229 "version": "1.0.4",
2230 "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
2231 "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
2232 "dev": true
2233 },
2234 "replace-ext": {
2235 "version": "0.0.1",
2236 "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
2237 "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
2238 "dev": true
2239 },
2240 "vinyl": {
2241 "version": "1.2.0",
2242 "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
2243 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
2244 "dev": true,
2245 "requires": {
2246 "clone": "1.0.4",
2247 "clone-stats": "0.0.1",
2248 "replace-ext": "0.0.1"
2249 }
2250 }
2251 }
2252 },
2253 "vinyl-source-stream": {
2254 "version": "1.1.2",
2255 "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz",
2256 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=",
2257 "dev": true,
2258 "requires": {
2259 "through2": "2.0.3",
2260 "vinyl": "0.4.6"
2261 }
2262 },
2263 "vsce": {
2264 "version": "1.46.0",
2265 "resolved": "https://registry.npmjs.org/vsce/-/vsce-1.46.0.tgz",
2266 "integrity": "sha512-cNQru5mXBPUtMDgwRNoespaR0gjdL09hV1KWktT5wkmTZfv0dSaAqqGAfr+2UI0aJTGttCcO3xKFQqtIcJpczA==",
2267 "dev": true,
2268 "requires": {
2269 "cheerio": "1.0.0-rc.2",
2270 "commander": "2.17.1",
2271 "denodeify": "1.2.1",
2272 "glob": "7.1.2",
2273 "lodash": "4.17.10",
2274 "markdown-it": "8.4.2",
2275 "mime": "1.6.0",
2276 "minimatch": "3.0.4",
2277 "osenv": "0.1.5",
2278 "parse-semver": "1.1.1",
2279 "read": "1.0.7",
2280 "semver": "5.5.0",
2281 "tmp": "0.0.29",
2282 "url-join": "1.1.0",
2283 "vso-node-api": "6.1.2-preview",
2284 "yauzl": "2.10.0",
2285 "yazl": "2.4.3"
2286 }
2287 },
2288 "vscode": {
2289 "version": "1.1.18",
2290 "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.18.tgz",
2291 "integrity": "sha512-SyDw4qFwZ+WthZX7RWp71PNiWLF7VhpM65j2oryY/6jtSORd8qH6J8vclwWZJ6Jvu0EH7JamO2RWNfBfsMR9Zw==",
2292 "dev": true,
2293 "requires": {
2294 "glob": "7.1.2",
2295 "gulp-chmod": "2.0.0",
2296 "gulp-filter": "5.1.0",
2297 "gulp-gunzip": "1.0.0",
2298 "gulp-remote-src-vscode": "0.5.0",
2299 "gulp-symdest": "1.1.0",
2300 "gulp-untar": "0.0.7",
2301 "gulp-vinyl-zip": "2.1.0",
2302 "mocha": "4.1.0",
2303 "request": "2.87.0",
2304 "semver": "5.5.0",
2305 "source-map-support": "0.5.8",
2306 "url-parse": "1.4.3",
2307 "vinyl-source-stream": "1.1.2"
2308 }
2309 },
2310 "vscode-jsonrpc": {
2311 "version": "3.6.2",
2312 "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.6.2.tgz",
2313 "integrity": "sha512-T24Jb5V48e4VgYliUXMnZ379ItbrXgOimweKaJshD84z+8q7ZOZjJan0MeDe+Ugb+uqERDVV8SBmemaGMSMugA=="
2314 },
2315 "vscode-languageclient": {
2316 "version": "4.4.0",
2317 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.0.tgz",
2318 "integrity": "sha512-sXBwIcwG4W5MjnDAfXf0hM5ErOcXxEBlix6QJb5ijf0gtecYygrMAqv8hag7sEg/jCCOKQdXJ4K1iZL3GZcJZg==",
2319 "requires": {
2320 "vscode-languageserver-protocol": "3.10.0"
2321 }
2322 },
2323 "vscode-languageserver-protocol": {
2324 "version": "3.10.0",
2325 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.10.0.tgz",
2326 "integrity": "sha512-PNNmKM0IcQPRiY1oUIxfwseBvxS5Sa5aZUpTcq/qsXWclnl8FFNs8oCCoAtyLhBXnuJvybWUNafiA78y0unJDA==",
2327 "requires": {
2328 "vscode-jsonrpc": "3.6.2",
2329 "vscode-languageserver-types": "3.10.0"
2330 }
2331 },
2332 "vscode-languageserver-types": {
2333 "version": "3.10.0",
2334 "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.10.0.tgz",
2335 "integrity": "sha512-vxmCsVZGwq8X40SuLP8Ix7V0rq5V/7iQUjRVe2Oxm+TbmjxtjK4dpHHXQCUawjA4fhPA9FwjSRbDhbvQmYCfMw=="
2336 },
2337 "vso-node-api": {
2338 "version": "6.1.2-preview",
2339 "resolved": "https://registry.npmjs.org/vso-node-api/-/vso-node-api-6.1.2-preview.tgz",
2340 "integrity": "sha1-qrNUbfJFHs2JTgcbuZtd8Zxfp48=",
2341 "dev": true,
2342 "requires": {
2343 "q": "1.5.1",
2344 "tunnel": "0.0.4",
2345 "typed-rest-client": "0.9.0",
2346 "underscore": "1.9.1"
2347 }
2348 },
2349 "wrappy": {
2350 "version": "1.0.2",
2351 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2352 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2353 "dev": true
2354 },
2355 "xtend": {
2356 "version": "4.0.1",
2357 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
2358 "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
2359 "dev": true
2360 },
2361 "yauzl": {
2362 "version": "2.10.0",
2363 "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
2364 "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
2365 "dev": true,
2366 "requires": {
2367 "buffer-crc32": "0.2.13",
2368 "fd-slicer": "1.1.0"
2369 }
2370 },
2371 "yazl": {
2372 "version": "2.4.3",
2373 "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.4.3.tgz",
2374 "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=",
2375 "dev": true,
2376 "requires": {
2377 "buffer-crc32": "0.2.13"
2378 }
2379 }
2380 }
2381}
diff --git a/codeless/package.json b/codeless/package.json
deleted file mode 100644
index 1df932db1..000000000
--- a/codeless/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
1{
2 "name": "libsyntax-rust",
3 "displayName": "libsyntax-rust",
4 "description": "An experimental Rust plugin for VS Code based on libsyntax2",
5 "license": "MIT",
6 "repository": "http://github.com/matklad/libsyntax2/",
7 "version": "0.0.1",
8 "publisher": "matklad",
9 "engines": {
10 "vscode": "^1.25.0"
11 },
12 "scripts": {
13 "compile": "tsc -p ./",
14 "postinstall": "node ./node_modules/vscode/bin/install"
15 },
16 "dependencies": {
17 "vscode-languageclient": "^4.3.0"
18 },
19 "devDependencies": {
20 "@types/node": "^7.0.56",
21 "typescript": "^2.9.1",
22 "vsce": "^1.42.0",
23 "vscode": "^1.1.18"
24 },
25 "main": "./out/src/extension",
26 "activationEvents": [
27 "onLanguage:rust"
28 ],
29 "contributes": {
30 "commands": [
31 {
32 "command": "libsyntax-rust.syntaxTree",
33 "title": "Show Rust syntax tree"
34 },
35 {
36 "command": "libsyntax-rust.extendSelection",
37 "title": "Rust Extend Selection"
38 }
39 ],
40 "keybindings": [
41 {
42 "command": "libsyntax-rust.extendSelection",
43 "key": "ctrl+w",
44 "when": "editorTextFocus && editorLangId == rust"
45 }
46 ]
47 }
48}
diff --git a/codeless/tsconfig.json b/codeless/tsconfig.json
deleted file mode 100644
index 11c3126e0..000000000
--- a/codeless/tsconfig.json
+++ /dev/null
@@ -1,12 +0,0 @@
1{
2 "compilerOptions": {
3 "module": "commonjs",
4 "target": "es6",
5 "outDir": "out",
6 "lib": [ "es6" ],
7 "sourceMap": true,
8 "rootDir": "."
9 },
10 "include": [ "src" ],
11 "exclude": [ "node_modules" ]
12}
diff --git a/crates/server/src/main.rs b/crates/server/src/main.rs
index 900ee555f..aeb4f807b 100644
--- a/crates/server/src/main.rs
+++ b/crates/server/src/main.rs
@@ -39,7 +39,7 @@ use ::{
39pub type Result<T> = ::std::result::Result<T, ::failure::Error>; 39pub type Result<T> = ::std::result::Result<T, ::failure::Error>;
40 40
41fn main() -> Result<()> { 41fn main() -> Result<()> {
42 Logger::with_env_or_str("m=trace, libanalysis=trace") 42 Logger::with_env()
43 .log_to_file() 43 .log_to_file()
44 .directory("log") 44 .directory("log")
45 .start()?; 45 .start()?;