diff options
Diffstat (limited to 'code')
-rw-r--r-- | code/.gitignore | 1 | ||||
-rw-r--r-- | code/common.ts | 278 | ||||
-rw-r--r-- | code/package-lock.json | 860 | ||||
-rw-r--r-- | code/package.json | 98 | ||||
-rw-r--r-- | code/src/extension.ts | 194 | ||||
-rw-r--r-- | code/src/main.ts | 208 | ||||
-rw-r--r-- | code/tsconfig.json | 5 |
7 files changed, 350 insertions, 1294 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 |
5 | out/* | 5 | out/* |
6 | node_modules/* | 6 | node_modules/* |
7 | log/* | ||
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 @@ | |||
1 | import * as vscode from 'vscode' | ||
2 | import { log } from 'util' | ||
3 | |||
4 | export 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 | |||
77 | export interface FileStructureNode { | ||
78 | name: string | ||
79 | range: [number, number] | ||
80 | children: [FileStructureNode] | ||
81 | } | ||
82 | |||
83 | export interface FallDiagnostic { | ||
84 | range: [number, number] | ||
85 | severity: string | ||
86 | message: string | ||
87 | } | ||
88 | |||
89 | export 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 | |||
150 | function 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 | |||
207 | export 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 | |||
228 | export 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 | |||
243 | export 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 | |||
271 | export 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 | |||
275 | async 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/code/src/extension.ts b/code/src/extension.ts new file mode 100644 index 000000000..bdad1568a --- /dev/null +++ b/code/src/extension.ts | |||
@@ -0,0 +1,194 @@ | |||
1 | 'use strict'; | ||
2 | import * as vscode from 'vscode'; | ||
3 | import * as lc from 'vscode-languageclient' | ||
4 | |||
5 | |||
6 | let client: lc.LanguageClient; | ||
7 | |||
8 | let uris = { | ||
9 | syntaxTree: vscode.Uri.parse('libsyntax-rust://syntaxtree') | ||
10 | } | ||
11 | |||
12 | |||
13 | export function activate(context: vscode.ExtensionContext) { | ||
14 | let textDocumentContentProvider = new TextDocumentContentProvider() | ||
15 | let dispose = (disposable) => { | ||
16 | context.subscriptions.push(disposable); | ||
17 | } | ||
18 | let registerCommand = (name, f) => { | ||
19 | dispose(vscode.commands.registerCommand(name, f)) | ||
20 | } | ||
21 | |||
22 | registerCommand('libsyntax-rust.syntaxTree', () => openDoc(uris.syntaxTree)) | ||
23 | registerCommand('libsyntax-rust.extendSelection', async () => { | ||
24 | let editor = vscode.window.activeTextEditor | ||
25 | if (editor == null || editor.document.languageId != "rust") return | ||
26 | let request: ExtendSelectionParams = { | ||
27 | textDocument: { uri: editor.document.uri.toString() }, | ||
28 | selections: editor.selections.map((s) => { | ||
29 | return { start: s.start, end: s.end }; | ||
30 | }) | ||
31 | } | ||
32 | let response = await client.sendRequest<ExtendSelectionResult>("m/extendSelection", request) | ||
33 | editor.selections = response.selections.map((range) => { | ||
34 | return new vscode.Selection( | ||
35 | new vscode.Position(range.start.line, range.start.character), | ||
36 | new vscode.Position(range.end.line, range.end.character), | ||
37 | ) | ||
38 | }) | ||
39 | }) | ||
40 | |||
41 | dispose(vscode.workspace.registerTextDocumentContentProvider( | ||
42 | 'libsyntax-rust', | ||
43 | textDocumentContentProvider | ||
44 | )) | ||
45 | startServer() | ||
46 | vscode.workspace.onDidChangeTextDocument((event: vscode.TextDocumentChangeEvent) => { | ||
47 | let doc = event.document | ||
48 | if (doc.languageId != "rust") return | ||
49 | // We need to order this after LS updates, but there's no API for that. | ||
50 | // Hence, good old setTimeout. | ||
51 | setTimeout(() => { | ||
52 | textDocumentContentProvider.eventEmitter.fire(uris.syntaxTree) | ||
53 | }, 10) | ||
54 | }, null, context.subscriptions) | ||
55 | } | ||
56 | |||
57 | export function deactivate(): Thenable<void> { | ||
58 | if (!client) { | ||
59 | return undefined; | ||
60 | } | ||
61 | return client.stop(); | ||
62 | } | ||
63 | |||
64 | function startServer() { | ||
65 | let run: lc.Executable = { | ||
66 | command: "m", | ||
67 | // args: ["run", "--package", "m"], | ||
68 | options: { cwd: "." } | ||
69 | } | ||
70 | let serverOptions: lc.ServerOptions = { | ||
71 | run, | ||
72 | debug: run | ||
73 | }; | ||
74 | |||
75 | let clientOptions: lc.LanguageClientOptions = { | ||
76 | documentSelector: [{ scheme: 'file', language: 'rust' }], | ||
77 | }; | ||
78 | |||
79 | client = new lc.LanguageClient( | ||
80 | 'm', | ||
81 | 'm languge server', | ||
82 | serverOptions, | ||
83 | clientOptions, | ||
84 | ); | ||
85 | client.onReady().then(() => { | ||
86 | client.onNotification( | ||
87 | new lc.NotificationType("m/publishDecorations"), | ||
88 | (params: PublishDecorationsParams) => { | ||
89 | let editor = vscode.window.visibleTextEditors.find( | ||
90 | (editor) => editor.document.uri.toString() == params.uri | ||
91 | ) | ||
92 | if (editor == null) return; | ||
93 | setHighlights( | ||
94 | editor, | ||
95 | params.decorations, | ||
96 | ) | ||
97 | } | ||
98 | ) | ||
99 | }) | ||
100 | client.start(); | ||
101 | } | ||
102 | |||
103 | async function openDoc(uri: vscode.Uri) { | ||
104 | let document = await vscode.workspace.openTextDocument(uri) | ||
105 | return vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true) | ||
106 | } | ||
107 | |||
108 | class TextDocumentContentProvider implements vscode.TextDocumentContentProvider { | ||
109 | public eventEmitter = new vscode.EventEmitter<vscode.Uri>() | ||
110 | public syntaxTree: string = "Not available" | ||
111 | |||
112 | public provideTextDocumentContent(uri: vscode.Uri): vscode.ProviderResult<string> { | ||
113 | let editor = vscode.window.activeTextEditor; | ||
114 | if (editor == null) return "" | ||
115 | let request: SyntaxTreeParams = { | ||
116 | textDocument: { uri: editor.document.uri.toString() } | ||
117 | }; | ||
118 | return client.sendRequest<SyntaxTreeResult>("m/syntaxTree", request); | ||
119 | } | ||
120 | |||
121 | get onDidChange(): vscode.Event<vscode.Uri> { | ||
122 | return this.eventEmitter.event | ||
123 | } | ||
124 | } | ||
125 | |||
126 | |||
127 | const decorations = (() => { | ||
128 | const decor = (obj) => vscode.window.createTextEditorDecorationType({ color: obj }) | ||
129 | return { | ||
130 | background: decor("#3F3F3F"), | ||
131 | error: vscode.window.createTextEditorDecorationType({ | ||
132 | borderColor: "red", | ||
133 | borderStyle: "none none dashed none", | ||
134 | }), | ||
135 | comment: decor("#7F9F7F"), | ||
136 | string: decor("#CC9393"), | ||
137 | keyword: decor("#F0DFAF"), | ||
138 | function: decor("#93E0E3"), | ||
139 | parameter: decor("#94BFF3"), | ||
140 | builtin: decor("#DD6718"), | ||
141 | text: decor("#DCDCCC"), | ||
142 | attribute: decor("#BFEBBF"), | ||
143 | literal: decor("#DFAF8F"), | ||
144 | } | ||
145 | })() | ||
146 | |||
147 | function setHighlights( | ||
148 | editor: vscode.TextEditor, | ||
149 | highlihgs: Array<Decoration> | ||
150 | ) { | ||
151 | let byTag = {} | ||
152 | for (let tag in decorations) { | ||
153 | byTag[tag] = [] | ||
154 | } | ||
155 | |||
156 | for (let d of highlihgs) { | ||
157 | if (!byTag[d.tag]) { | ||
158 | console.log(`unknown tag ${d.tag}`) | ||
159 | continue | ||
160 | } | ||
161 | byTag[d.tag].push(d.range) | ||
162 | } | ||
163 | |||
164 | for (let tag in byTag) { | ||
165 | let dec = decorations[tag] | ||
166 | let ranges = byTag[tag] | ||
167 | editor.setDecorations(dec, ranges) | ||
168 | } | ||
169 | } | ||
170 | |||
171 | interface SyntaxTreeParams { | ||
172 | textDocument: lc.TextDocumentIdentifier; | ||
173 | } | ||
174 | |||
175 | type SyntaxTreeResult = string | ||
176 | |||
177 | interface ExtendSelectionParams { | ||
178 | textDocument: lc.TextDocumentIdentifier; | ||
179 | selections: lc.Range[]; | ||
180 | } | ||
181 | |||
182 | interface ExtendSelectionResult { | ||
183 | selections: lc.Range[]; | ||
184 | } | ||
185 | |||
186 | interface PublishDecorationsParams { | ||
187 | uri: string, | ||
188 | decorations: Decoration[], | ||
189 | } | ||
190 | |||
191 | interface Decoration { | ||
192 | range: lc.Range, | ||
193 | tag: string, | ||
194 | } | ||
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' | ||
2 | import * as vscode from 'vscode' | ||
3 | |||
4 | const backend = require("../../native") | ||
5 | |||
6 | let docToSyntax; | ||
7 | |||
8 | let uris = { | ||
9 | syntaxTree: vscode.Uri.parse('libsyntax-rust://syntaxtree') | ||
10 | } | ||
11 | |||
12 | |||
13 | export 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 | |||
49 | export function deactivate() { } | ||
50 | |||
51 | export 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 | |||
70 | function activeDoc() { | ||
71 | return vscode.window.activeTextEditor.document | ||
72 | } | ||
73 | |||
74 | function activeSyntax(): Syntax { | ||
75 | let doc = activeDoc() | ||
76 | if (doc == null) return null | ||
77 | return docToSyntax(doc) | ||
78 | } | ||
79 | |||
80 | async 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 | |||
85 | function 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 | |||
137 | export 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 | |||
154 | const 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 | |||
174 | function 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 | |||
199 | export 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 | |||
206 | function 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 | } | ||