aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_analysis/src/lib.rs6
-rw-r--r--crates/ra_editor/src/lib.rs2
-rw-r--r--crates/ra_editor/src/typing.rs101
-rw-r--r--crates/ra_lsp_server/src/conv.rs41
-rw-r--r--crates/ra_lsp_server/src/main_loop/handlers.rs14
-rw-r--r--crates/ra_lsp_server/src/main_loop/mod.rs1
-rw-r--r--crates/ra_lsp_server/src/req.rs8
-rw-r--r--editors/README.md19
-rw-r--r--editors/code/package-lock.json786
-rw-r--r--editors/code/src/commands/index.ts4
-rw-r--r--editors/code/src/commands/on_enter.ts29
-rw-r--r--editors/code/src/extension.ts20
12 files changed, 630 insertions, 401 deletions
diff --git a/crates/ra_analysis/src/lib.rs b/crates/ra_analysis/src/lib.rs
index b4c7db476..f6ceb7eb2 100644
--- a/crates/ra_analysis/src/lib.rs
+++ b/crates/ra_analysis/src/lib.rs
@@ -184,6 +184,12 @@ impl Analysis {
184 let file = self.imp.file_syntax(file_id); 184 let file = self.imp.file_syntax(file_id);
185 SourceChange::from_local_edit(file_id, "join lines", ra_editor::join_lines(&file, range)) 185 SourceChange::from_local_edit(file_id, "join lines", ra_editor::join_lines(&file, range))
186 } 186 }
187 pub fn on_enter(&self, file_id: FileId, offset: TextUnit) -> Option<SourceChange> {
188 let file = self.imp.file_syntax(file_id);
189 let edit = ra_editor::on_enter(&file, offset)?;
190 let res = SourceChange::from_local_edit(file_id, "on enter", edit);
191 Some(res)
192 }
187 pub fn on_eq_typed(&self, file_id: FileId, offset: TextUnit) -> Option<SourceChange> { 193 pub fn on_eq_typed(&self, file_id: FileId, offset: TextUnit) -> Option<SourceChange> {
188 let file = self.imp.file_syntax(file_id); 194 let file = self.imp.file_syntax(file_id);
189 Some(SourceChange::from_local_edit(file_id, "add semicolon", ra_editor::on_eq_typed(&file, offset)?)) 195 Some(SourceChange::from_local_edit(file_id, "add semicolon", ra_editor::on_eq_typed(&file, offset)?))
diff --git a/crates/ra_editor/src/lib.rs b/crates/ra_editor/src/lib.rs
index 2a801f7da..fe0045378 100644
--- a/crates/ra_editor/src/lib.rs
+++ b/crates/ra_editor/src/lib.rs
@@ -35,7 +35,7 @@ pub use self::{
35 flip_comma, add_derive, add_impl, 35 flip_comma, add_derive, add_impl,
36 introduce_variable, 36 introduce_variable,
37 }, 37 },
38 typing::{join_lines, on_eq_typed}, 38 typing::{join_lines, on_eq_typed, on_enter},
39 completion::{scope_completion, CompletionItem}, 39 completion::{scope_completion, CompletionItem},
40 folding_ranges::{Fold, FoldKind, folding_ranges} 40 folding_ranges::{Fold, FoldKind, folding_ranges}
41}; 41};
diff --git a/crates/ra_editor/src/typing.rs b/crates/ra_editor/src/typing.rs
index 512076941..3384389d1 100644
--- a/crates/ra_editor/src/typing.rs
+++ b/crates/ra_editor/src/typing.rs
@@ -4,7 +4,7 @@ use ra_syntax::{
4 TextUnit, TextRange, SyntaxNodeRef, File, AstNode, SyntaxKind, 4 TextUnit, TextRange, SyntaxNodeRef, File, AstNode, SyntaxKind,
5 ast, 5 ast,
6 algo::{ 6 algo::{
7 find_covering_node, 7 find_covering_node, find_leaf_at_offset, LeafAtOffset,
8 }, 8 },
9 text_utils::{intersect, contains_offset_nonstrict}, 9 text_utils::{intersect, contains_offset_nonstrict},
10 SyntaxKind::*, 10 SyntaxKind::*,
@@ -56,6 +56,58 @@ pub fn join_lines(file: &File, range: TextRange) -> LocalEdit {
56 } 56 }
57} 57}
58 58
59pub fn on_enter(file: &File, offset: TextUnit) -> Option<LocalEdit> {
60 let comment = find_leaf_at_offset(file.syntax(), offset).left_biased().filter(|it| it.kind() == COMMENT)?;
61 let prefix = comment_preffix(comment)?;
62 if offset < comment.range().start() + TextUnit::of_str(prefix) {
63 return None;
64 }
65
66 let indent = node_indent(file, comment)?;
67 let inserted = format!("\n{}{}", indent, prefix);
68 let cursor_position = offset + TextUnit::of_str(&inserted);
69 let mut edit = EditBuilder::new();
70 edit.insert(offset, inserted);
71 Some(LocalEdit {
72 edit: edit.finish(),
73 cursor_position: Some(cursor_position),
74 })
75}
76
77fn comment_preffix(comment: SyntaxNodeRef) -> Option<&'static str> {
78 let text = comment.leaf_text().unwrap();
79 let res = if text.starts_with("///") {
80 "/// "
81 } else if text.starts_with("//!") {
82 "//! "
83 } else if text.starts_with("//") {
84 "// "
85 } else {
86 return None;
87 };
88 Some(res)
89}
90
91fn node_indent<'a>(file: &'a File, node: SyntaxNodeRef) -> Option<&'a str> {
92 let ws = match find_leaf_at_offset(file.syntax(), node.range().start()) {
93 LeafAtOffset::Between(l, r) => {
94 assert!(r == node);
95 l
96 }
97 LeafAtOffset::Single(n) => {
98 assert!(n == node);
99 return Some("")
100 }
101 LeafAtOffset::None => unreachable!(),
102 };
103 if ws.kind() != WHITESPACE {
104 return None;
105 }
106 let text = ws.leaf_text().unwrap();
107 let pos = text.as_str().rfind('\n').map(|it| it + 1).unwrap_or(0);
108 Some(&text[pos..])
109}
110
59pub fn on_eq_typed(file: &File, offset: TextUnit) -> Option<LocalEdit> { 111pub fn on_eq_typed(file: &File, offset: TextUnit) -> Option<LocalEdit> {
60 let let_stmt: ast::LetStmt = find_node_at_offset(file.syntax(), offset)?; 112 let let_stmt: ast::LetStmt = find_node_at_offset(file.syntax(), offset)?;
61 if let_stmt.has_semi() { 113 if let_stmt.has_semi() {
@@ -187,7 +239,7 @@ fn compute_ws(left: SyntaxNodeRef, right: SyntaxNodeRef) -> &'static str {
187#[cfg(test)] 239#[cfg(test)]
188mod tests { 240mod tests {
189 use super::*; 241 use super::*;
190 use test_utils::{check_action, extract_range, extract_offset}; 242 use test_utils::{check_action, extract_range, extract_offset, add_cursor};
191 243
192 fn check_join_lines(before: &str, after: &str) { 244 fn check_join_lines(before: &str, after: &str) {
193 check_action(before, after, |file, offset| { 245 check_action(before, after, |file, offset| {
@@ -344,4 +396,49 @@ fn foo() {
344 // } 396 // }
345 // "); 397 // ");
346 } 398 }
399
400 #[test]
401 fn test_on_enter() {
402 fn apply_on_enter(before: &str) -> Option<String> {
403 let (offset, before) = extract_offset(before);
404 let file = File::parse(&before);
405 let result = on_enter(&file, offset)?;
406 let actual = result.edit.apply(&before);
407 let actual = add_cursor(&actual, result.cursor_position.unwrap());
408 Some(actual)
409 }
410
411 fn do_check(before: &str, after: &str) {
412 let actual = apply_on_enter(before).unwrap();
413 assert_eq_text!(after, &actual);
414 }
415
416 fn do_check_noop(text: &str) {
417 assert!(apply_on_enter(text).is_none())
418 }
419
420 do_check(r"
421/// Some docs<|>
422fn foo() {
423}
424", r"
425/// Some docs
426/// <|>
427fn foo() {
428}
429");
430 do_check(r"
431impl S {
432 /// Some<|> docs.
433 fn foo() {}
434}
435", r"
436impl S {
437 /// Some
438 /// <|> docs.
439 fn foo() {}
440}
441");
442 do_check_noop(r"<|>//! docz");
443 }
347} 444}
diff --git a/crates/ra_lsp_server/src/conv.rs b/crates/ra_lsp_server/src/conv.rs
index 759e5e914..08a656569 100644
--- a/crates/ra_lsp_server/src/conv.rs
+++ b/crates/ra_lsp_server/src/conv.rs
@@ -190,9 +190,13 @@ impl TryConvWith for SourceChange {
190 None => None, 190 None => None,
191 Some(pos) => { 191 Some(pos) => {
192 let line_index = world.analysis().file_line_index(pos.file_id); 192 let line_index = world.analysis().file_line_index(pos.file_id);
193 let edits = self.source_file_edits.iter().find(|it| it.file_id == pos.file_id)
194 .map(|it| it.edits.as_slice()).unwrap_or(&[]);
195 let line_col = translate_offset_with_edit(&*line_index, pos.offset, edits);
196 let position = Position::new(line_col.line as u64, u32::from(line_col.col) as u64);
193 Some(TextDocumentPositionParams { 197 Some(TextDocumentPositionParams {
194 text_document: TextDocumentIdentifier::new(pos.file_id.try_conv_with(world)?), 198 text_document: TextDocumentIdentifier::new(pos.file_id.try_conv_with(world)?),
195 position: pos.offset.conv_with(&line_index), 199 position,
196 }) 200 })
197 } 201 }
198 }; 202 };
@@ -207,6 +211,41 @@ impl TryConvWith for SourceChange {
207 } 211 }
208} 212}
209 213
214// HACK: we should translate offset to line/column using linde_index *with edits applied*.
215// A naive version of this function would be to apply `edits` to the original text,
216// construct a new line index and use that, but it would be slow.
217//
218// Writing fast & correct version is issue #105, let's use a quick hack in the meantime
219fn translate_offset_with_edit(
220 pre_edit_index: &LineIndex,
221 offset: TextUnit,
222 edits: &[AtomEdit],
223) -> LineCol {
224 let fallback = pre_edit_index.line_col(offset);
225 let edit = match edits.first() {
226 None => return fallback,
227 Some(edit) => edit
228 };
229 let end_offset = edit.delete.start() + TextUnit::of_str(&edit.insert);
230 if !(edit.delete.start() <= offset && offset <= end_offset) {
231 return fallback
232 }
233 let rel_offset = offset - edit.delete.start();
234 let in_edit_line_col = LineIndex::new(&edit.insert).line_col(rel_offset);
235 let edit_line_col = pre_edit_index.line_col(edit.delete.start());
236 if in_edit_line_col.line == 0 {
237 LineCol {
238 line: edit_line_col.line,
239 col: edit_line_col.col + in_edit_line_col.col,
240 }
241 } else {
242 LineCol {
243 line: edit_line_col.line + in_edit_line_col.line,
244 col: in_edit_line_col.col,
245 }
246 }
247}
248
210impl TryConvWith for SourceFileEdit { 249impl TryConvWith for SourceFileEdit {
211 type Ctx = ServerWorld; 250 type Ctx = ServerWorld;
212 type Output = TextDocumentEdit; 251 type Output = TextDocumentEdit;
diff --git a/crates/ra_lsp_server/src/main_loop/handlers.rs b/crates/ra_lsp_server/src/main_loop/handlers.rs
index 79a54183e..725036cc7 100644
--- a/crates/ra_lsp_server/src/main_loop/handlers.rs
+++ b/crates/ra_lsp_server/src/main_loop/handlers.rs
@@ -77,6 +77,20 @@ pub fn handle_join_lines(
77 .try_conv_with(&world) 77 .try_conv_with(&world)
78} 78}
79 79
80pub fn handle_on_enter(
81 world: ServerWorld,
82 params: req::TextDocumentPositionParams,
83 _token: JobToken,
84) -> Result<Option<req::SourceChange>> {
85 let file_id = params.text_document.try_conv_with(&world)?;
86 let line_index = world.analysis().file_line_index(file_id);
87 let offset = params.position.conv_with(&line_index);
88 match world.analysis().on_enter(file_id, offset) {
89 None => Ok(None),
90 Some(edit) => Ok(Some(edit.try_conv_with(&world)?))
91 }
92}
93
80pub fn handle_on_type_formatting( 94pub fn handle_on_type_formatting(
81 world: ServerWorld, 95 world: ServerWorld,
82 params: req::DocumentOnTypeFormattingParams, 96 params: req::DocumentOnTypeFormattingParams,
diff --git a/crates/ra_lsp_server/src/main_loop/mod.rs b/crates/ra_lsp_server/src/main_loop/mod.rs
index 47a9b202e..53c6f1dff 100644
--- a/crates/ra_lsp_server/src/main_loop/mod.rs
+++ b/crates/ra_lsp_server/src/main_loop/mod.rs
@@ -244,6 +244,7 @@ fn on_request(
244 .on::<req::ExtendSelection>(handlers::handle_extend_selection)? 244 .on::<req::ExtendSelection>(handlers::handle_extend_selection)?
245 .on::<req::FindMatchingBrace>(handlers::handle_find_matching_brace)? 245 .on::<req::FindMatchingBrace>(handlers::handle_find_matching_brace)?
246 .on::<req::JoinLines>(handlers::handle_join_lines)? 246 .on::<req::JoinLines>(handlers::handle_join_lines)?
247 .on::<req::OnEnter>(handlers::handle_on_enter)?
247 .on::<req::OnTypeFormatting>(handlers::handle_on_type_formatting)? 248 .on::<req::OnTypeFormatting>(handlers::handle_on_type_formatting)?
248 .on::<req::DocumentSymbolRequest>(handlers::handle_document_symbol)? 249 .on::<req::DocumentSymbolRequest>(handlers::handle_document_symbol)?
249 .on::<req::WorkspaceSymbol>(handlers::handle_workspace_symbol)? 250 .on::<req::WorkspaceSymbol>(handlers::handle_workspace_symbol)?
diff --git a/crates/ra_lsp_server/src/req.rs b/crates/ra_lsp_server/src/req.rs
index 4af61dbbd..458c79ea9 100644
--- a/crates/ra_lsp_server/src/req.rs
+++ b/crates/ra_lsp_server/src/req.rs
@@ -119,6 +119,14 @@ pub struct JoinLinesParams {
119 pub range: Range, 119 pub range: Range,
120} 120}
121 121
122pub enum OnEnter {}
123
124impl Request for OnEnter {
125 type Params = TextDocumentPositionParams;
126 type Result = Option<SourceChange>;
127 const METHOD: &'static str = "m/onEnter";
128}
129
122pub enum Runnables {} 130pub enum Runnables {}
123 131
124impl Request for Runnables { 132impl Request for Runnables {
diff --git a/editors/README.md b/editors/README.md
index 798c08581..a39ec62b0 100644
--- a/editors/README.md
+++ b/editors/README.md
@@ -16,7 +16,7 @@ It's better to remove existing Rust plugins to avoid interference.
16 16
17* syntax highlighting (LSP does not have API for it, so impl is hacky 17* syntax highlighting (LSP does not have API for it, so impl is hacky
18 and sometimes fall-backs to the horrible built-in highlighting) 18 and sometimes fall-backs to the horrible built-in highlighting)
19 19
20* **Go to symbol in workspace** (`ctrl+t`) 20* **Go to symbol in workspace** (`ctrl+t`)
21 - `#Foo` searches for `Foo` type in the current workspace 21 - `#Foo` searches for `Foo` type in the current workspace
22 - `#foo#` searches for `foo` function in the current workspace 22 - `#foo#` searches for `foo` function in the current workspace
@@ -44,9 +44,24 @@ It's better to remove existing Rust plugins to avoid interference.
44 outside of the test function, this re-runs the last test. Do bind 44 outside of the test function, this re-runs the last test. Do bind
45 this to a shortcut! 45 this to a shortcut!
46 46
47* Typing assists
48 - typing `let =` tries to smartly add `;` if `=` is followed by an existing expression.
49 - Enter inside comments continues comment (`<|>` signifies cursor position):
50
51```
52/// Docs<|>
53fn foo() {}
54```
55
56```
57/// Docs
58/// <|>
59fn foo() {}
60```
61
47* code actions (use `ctrl+.` to activate). 62* code actions (use `ctrl+.` to activate).
48 63
49`<|>` signifies cursor position 64
50 65
51- Flip `,` 66- Flip `,`
52 67
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json
index eb5990a85..33c5203b2 100644
--- a/editors/code/package-lock.json
+++ b/editors/code/package-lock.json
@@ -22,10 +22,10 @@
22 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", 22 "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
23 "dev": true, 23 "dev": true,
24 "requires": { 24 "requires": {
25 "co": "^4.6.0", 25 "co": "4.6.0",
26 "fast-deep-equal": "^1.0.0", 26 "fast-deep-equal": "1.1.0",
27 "fast-json-stable-stringify": "^2.0.0", 27 "fast-json-stable-stringify": "2.0.0",
28 "json-schema-traverse": "^0.3.0" 28 "json-schema-traverse": "0.3.1"
29 } 29 }
30 }, 30 },
31 "ansi-cyan": { 31 "ansi-cyan": {
@@ -70,7 +70,7 @@
70 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 70 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
71 "dev": true, 71 "dev": true,
72 "requires": { 72 "requires": {
73 "sprintf-js": "~1.0.2" 73 "sprintf-js": "1.0.3"
74 } 74 }
75 }, 75 },
76 "arr-diff": { 76 "arr-diff": {
@@ -79,8 +79,8 @@
79 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", 79 "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=",
80 "dev": true, 80 "dev": true,
81 "requires": { 81 "requires": {
82 "arr-flatten": "^1.0.1", 82 "arr-flatten": "1.1.0",
83 "array-slice": "^0.2.3" 83 "array-slice": "0.2.3"
84 } 84 }
85 }, 85 },
86 "arr-flatten": { 86 "arr-flatten": {
@@ -113,7 +113,7 @@
113 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", 113 "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
114 "dev": true, 114 "dev": true,
115 "requires": { 115 "requires": {
116 "array-uniq": "^1.0.1" 116 "array-uniq": "1.0.3"
117 } 117 }
118 }, 118 },
119 "array-uniq": { 119 "array-uniq": {
@@ -140,7 +140,7 @@
140 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 140 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
141 "dev": true, 141 "dev": true,
142 "requires": { 142 "requires": {
143 "safer-buffer": "~2.1.0" 143 "safer-buffer": "2.1.2"
144 } 144 }
145 }, 145 },
146 "assert-plus": { 146 "assert-plus": {
@@ -173,9 +173,9 @@
173 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 173 "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
174 "dev": true, 174 "dev": true,
175 "requires": { 175 "requires": {
176 "chalk": "^1.1.3", 176 "chalk": "1.1.3",
177 "esutils": "^2.0.2", 177 "esutils": "2.0.2",
178 "js-tokens": "^3.0.2" 178 "js-tokens": "3.0.2"
179 }, 179 },
180 "dependencies": { 180 "dependencies": {
181 "chalk": { 181 "chalk": {
@@ -184,11 +184,11 @@
184 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 184 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
185 "dev": true, 185 "dev": true,
186 "requires": { 186 "requires": {
187 "ansi-styles": "^2.2.1", 187 "ansi-styles": "2.2.1",
188 "escape-string-regexp": "^1.0.2", 188 "escape-string-regexp": "1.0.5",
189 "has-ansi": "^2.0.0", 189 "has-ansi": "2.0.0",
190 "strip-ansi": "^3.0.0", 190 "strip-ansi": "3.0.1",
191 "supports-color": "^2.0.0" 191 "supports-color": "2.0.0"
192 } 192 }
193 }, 193 },
194 "supports-color": { 194 "supports-color": {
@@ -212,7 +212,7 @@
212 "dev": true, 212 "dev": true,
213 "optional": true, 213 "optional": true,
214 "requires": { 214 "requires": {
215 "tweetnacl": "^0.14.3" 215 "tweetnacl": "0.14.5"
216 } 216 }
217 }, 217 },
218 "block-stream": { 218 "block-stream": {
@@ -221,7 +221,7 @@
221 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", 221 "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
222 "dev": true, 222 "dev": true,
223 "requires": { 223 "requires": {
224 "inherits": "~2.0.0" 224 "inherits": "2.0.3"
225 } 225 }
226 }, 226 },
227 "boolbase": { 227 "boolbase": {
@@ -236,7 +236,7 @@
236 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 236 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
237 "dev": true, 237 "dev": true,
238 "requires": { 238 "requires": {
239 "balanced-match": "^1.0.0", 239 "balanced-match": "1.0.0",
240 "concat-map": "0.0.1" 240 "concat-map": "0.0.1"
241 } 241 }
242 }, 242 },
@@ -246,9 +246,9 @@
246 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", 246 "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
247 "dev": true, 247 "dev": true,
248 "requires": { 248 "requires": {
249 "expand-range": "^1.8.1", 249 "expand-range": "1.8.2",
250 "preserve": "^0.2.0", 250 "preserve": "0.2.0",
251 "repeat-element": "^1.1.2" 251 "repeat-element": "1.1.3"
252 } 252 }
253 }, 253 },
254 "browser-stdout": { 254 "browser-stdout": {
@@ -287,9 +287,9 @@
287 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", 287 "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
288 "dev": true, 288 "dev": true,
289 "requires": { 289 "requires": {
290 "ansi-styles": "^3.2.1", 290 "ansi-styles": "3.2.1",
291 "escape-string-regexp": "^1.0.5", 291 "escape-string-regexp": "1.0.5",
292 "supports-color": "^5.3.0" 292 "supports-color": "5.5.0"
293 }, 293 },
294 "dependencies": { 294 "dependencies": {
295 "ansi-styles": { 295 "ansi-styles": {
@@ -298,7 +298,7 @@
298 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 298 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
299 "dev": true, 299 "dev": true,
300 "requires": { 300 "requires": {
301 "color-convert": "^1.9.0" 301 "color-convert": "1.9.3"
302 } 302 }
303 }, 303 },
304 "has-flag": { 304 "has-flag": {
@@ -313,7 +313,7 @@
313 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 313 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
314 "dev": true, 314 "dev": true,
315 "requires": { 315 "requires": {
316 "has-flag": "^3.0.0" 316 "has-flag": "3.0.0"
317 } 317 }
318 } 318 }
319 } 319 }
@@ -324,12 +324,12 @@
324 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", 324 "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
325 "dev": true, 325 "dev": true,
326 "requires": { 326 "requires": {
327 "css-select": "~1.2.0", 327 "css-select": "1.2.0",
328 "dom-serializer": "~0.1.0", 328 "dom-serializer": "0.1.0",
329 "entities": "~1.1.1", 329 "entities": "1.1.1",
330 "htmlparser2": "^3.9.1", 330 "htmlparser2": "3.9.2",
331 "lodash": "^4.15.0", 331 "lodash": "4.17.11",
332 "parse5": "^3.0.1" 332 "parse5": "3.0.3"
333 } 333 }
334 }, 334 },
335 "clone": { 335 "clone": {
@@ -356,9 +356,9 @@
356 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", 356 "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==",
357 "dev": true, 357 "dev": true,
358 "requires": { 358 "requires": {
359 "inherits": "^2.0.1", 359 "inherits": "2.0.3",
360 "process-nextick-args": "^2.0.0", 360 "process-nextick-args": "2.0.0",
361 "readable-stream": "^2.3.5" 361 "readable-stream": "2.3.6"
362 } 362 }
363 }, 363 },
364 "co": { 364 "co": {
@@ -388,7 +388,7 @@
388 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", 388 "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
389 "dev": true, 389 "dev": true,
390 "requires": { 390 "requires": {
391 "delayed-stream": "~1.0.0" 391 "delayed-stream": "1.0.0"
392 } 392 }
393 }, 393 },
394 "commander": { 394 "commander": {
@@ -409,7 +409,7 @@
409 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", 409 "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
410 "dev": true, 410 "dev": true,
411 "requires": { 411 "requires": {
412 "safe-buffer": "~5.1.1" 412 "safe-buffer": "5.1.2"
413 } 413 }
414 }, 414 },
415 "core-util-is": { 415 "core-util-is": {
@@ -424,10 +424,10 @@
424 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", 424 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
425 "dev": true, 425 "dev": true,
426 "requires": { 426 "requires": {
427 "boolbase": "~1.0.0", 427 "boolbase": "1.0.0",
428 "css-what": "2.1", 428 "css-what": "2.1.0",
429 "domutils": "1.5.1", 429 "domutils": "1.5.1",
430 "nth-check": "~1.0.1" 430 "nth-check": "1.0.1"
431 } 431 }
432 }, 432 },
433 "css-what": { 433 "css-what": {
@@ -442,7 +442,7 @@
442 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 442 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
443 "dev": true, 443 "dev": true,
444 "requires": { 444 "requires": {
445 "assert-plus": "^1.0.0" 445 "assert-plus": "1.0.0"
446 } 446 }
447 }, 447 },
448 "debug": { 448 "debug": {
@@ -460,7 +460,7 @@
460 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=", 460 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=",
461 "dev": true, 461 "dev": true,
462 "requires": { 462 "requires": {
463 "is-obj": "^1.0.0" 463 "is-obj": "1.0.1"
464 } 464 }
465 }, 465 },
466 "delayed-stream": { 466 "delayed-stream": {
@@ -487,8 +487,8 @@
487 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", 487 "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
488 "dev": true, 488 "dev": true,
489 "requires": { 489 "requires": {
490 "domelementtype": "~1.1.1", 490 "domelementtype": "1.1.3",
491 "entities": "~1.1.1" 491 "entities": "1.1.1"
492 }, 492 },
493 "dependencies": { 493 "dependencies": {
494 "domelementtype": { 494 "domelementtype": {
@@ -511,7 +511,7 @@
511 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", 511 "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
512 "dev": true, 512 "dev": true,
513 "requires": { 513 "requires": {
514 "domelementtype": "1" 514 "domelementtype": "1.3.0"
515 } 515 }
516 }, 516 },
517 "domutils": { 517 "domutils": {
@@ -520,8 +520,8 @@
520 "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", 520 "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
521 "dev": true, 521 "dev": true,
522 "requires": { 522 "requires": {
523 "dom-serializer": "0", 523 "dom-serializer": "0.1.0",
524 "domelementtype": "1" 524 "domelementtype": "1.3.0"
525 } 525 }
526 }, 526 },
527 "duplexer": { 527 "duplexer": {
@@ -536,10 +536,10 @@
536 "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", 536 "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
537 "dev": true, 537 "dev": true,
538 "requires": { 538 "requires": {
539 "end-of-stream": "^1.0.0", 539 "end-of-stream": "1.4.1",
540 "inherits": "^2.0.1", 540 "inherits": "2.0.3",
541 "readable-stream": "^2.0.0", 541 "readable-stream": "2.3.6",
542 "stream-shift": "^1.0.0" 542 "stream-shift": "1.0.0"
543 } 543 }
544 }, 544 },
545 "ecc-jsbn": { 545 "ecc-jsbn": {
@@ -549,8 +549,8 @@
549 "dev": true, 549 "dev": true,
550 "optional": true, 550 "optional": true,
551 "requires": { 551 "requires": {
552 "jsbn": "~0.1.0", 552 "jsbn": "0.1.1",
553 "safer-buffer": "^2.1.0" 553 "safer-buffer": "2.1.2"
554 } 554 }
555 }, 555 },
556 "end-of-stream": { 556 "end-of-stream": {
@@ -559,7 +559,7 @@
559 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", 559 "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
560 "dev": true, 560 "dev": true,
561 "requires": { 561 "requires": {
562 "once": "^1.4.0" 562 "once": "1.4.0"
563 } 563 }
564 }, 564 },
565 "entities": { 565 "entities": {
@@ -592,14 +592,14 @@
592 "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==", 592 "integrity": "sha512-dGXNg4F/FgVzlApjzItL+7naHutA3fDqbV/zAZqDDlXTjiMnQmZKu+prImWKszeBM5UQeGvAl3u1wBiKeDh61g==",
593 "dev": true, 593 "dev": true,
594 "requires": { 594 "requires": {
595 "duplexer": "^0.1.1", 595 "duplexer": "0.1.1",
596 "flatmap-stream": "^0.1.0", 596 "flatmap-stream": "0.1.0",
597 "from": "^0.1.7", 597 "from": "0.1.7",
598 "map-stream": "0.0.7", 598 "map-stream": "0.0.7",
599 "pause-stream": "^0.0.11", 599 "pause-stream": "0.0.11",
600 "split": "^1.0.1", 600 "split": "1.0.1",
601 "stream-combiner": "^0.2.2", 601 "stream-combiner": "0.2.2",
602 "through": "^2.3.8" 602 "through": "2.3.8"
603 } 603 }
604 }, 604 },
605 "expand-brackets": { 605 "expand-brackets": {
@@ -608,7 +608,7 @@
608 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", 608 "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
609 "dev": true, 609 "dev": true,
610 "requires": { 610 "requires": {
611 "is-posix-bracket": "^0.1.0" 611 "is-posix-bracket": "0.1.1"
612 } 612 }
613 }, 613 },
614 "expand-range": { 614 "expand-range": {
@@ -617,7 +617,7 @@
617 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", 617 "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
618 "dev": true, 618 "dev": true,
619 "requires": { 619 "requires": {
620 "fill-range": "^2.1.0" 620 "fill-range": "2.2.4"
621 } 621 }
622 }, 622 },
623 "extend": { 623 "extend": {
@@ -632,7 +632,7 @@
632 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", 632 "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=",
633 "dev": true, 633 "dev": true,
634 "requires": { 634 "requires": {
635 "kind-of": "^1.1.0" 635 "kind-of": "1.1.0"
636 } 636 }
637 }, 637 },
638 "extglob": { 638 "extglob": {
@@ -641,7 +641,7 @@
641 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", 641 "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
642 "dev": true, 642 "dev": true,
643 "requires": { 643 "requires": {
644 "is-extglob": "^1.0.0" 644 "is-extglob": "1.0.0"
645 }, 645 },
646 "dependencies": { 646 "dependencies": {
647 "is-extglob": { 647 "is-extglob": {
@@ -676,7 +676,7 @@
676 "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 676 "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
677 "dev": true, 677 "dev": true,
678 "requires": { 678 "requires": {
679 "pend": "~1.2.0" 679 "pend": "1.2.0"
680 } 680 }
681 }, 681 },
682 "filename-regex": { 682 "filename-regex": {
@@ -691,11 +691,11 @@
691 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", 691 "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
692 "dev": true, 692 "dev": true,
693 "requires": { 693 "requires": {
694 "is-number": "^2.1.0", 694 "is-number": "2.1.0",
695 "isobject": "^2.0.0", 695 "isobject": "2.1.0",
696 "randomatic": "^3.0.0", 696 "randomatic": "3.1.0",
697 "repeat-element": "^1.1.2", 697 "repeat-element": "1.1.3",
698 "repeat-string": "^1.5.2" 698 "repeat-string": "1.6.1"
699 } 699 }
700 }, 700 },
701 "first-chunk-stream": { 701 "first-chunk-stream": {
@@ -722,7 +722,7 @@
722 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", 722 "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
723 "dev": true, 723 "dev": true,
724 "requires": { 724 "requires": {
725 "for-in": "^1.0.1" 725 "for-in": "1.0.2"
726 } 726 }
727 }, 727 },
728 "forever-agent": { 728 "forever-agent": {
@@ -737,9 +737,9 @@
737 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", 737 "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
738 "dev": true, 738 "dev": true,
739 "requires": { 739 "requires": {
740 "asynckit": "^0.4.0", 740 "asynckit": "0.4.0",
741 "combined-stream": "1.0.6", 741 "combined-stream": "1.0.6",
742 "mime-types": "^2.1.12" 742 "mime-types": "2.1.20"
743 } 743 }
744 }, 744 },
745 "from": { 745 "from": {
@@ -760,10 +760,10 @@
760 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", 760 "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
761 "dev": true, 761 "dev": true,
762 "requires": { 762 "requires": {
763 "graceful-fs": "^4.1.2", 763 "graceful-fs": "4.1.11",
764 "inherits": "~2.0.0", 764 "inherits": "2.0.3",
765 "mkdirp": ">=0.5 0", 765 "mkdirp": "0.5.1",
766 "rimraf": "2" 766 "rimraf": "2.6.2"
767 } 767 }
768 }, 768 },
769 "getpass": { 769 "getpass": {
@@ -772,7 +772,7 @@
772 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 772 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
773 "dev": true, 773 "dev": true,
774 "requires": { 774 "requires": {
775 "assert-plus": "^1.0.0" 775 "assert-plus": "1.0.0"
776 } 776 }
777 }, 777 },
778 "glob": { 778 "glob": {
@@ -781,12 +781,12 @@
781 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", 781 "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
782 "dev": true, 782 "dev": true,
783 "requires": { 783 "requires": {
784 "fs.realpath": "^1.0.0", 784 "fs.realpath": "1.0.0",
785 "inflight": "^1.0.4", 785 "inflight": "1.0.6",
786 "inherits": "2", 786 "inherits": "2.0.3",
787 "minimatch": "^3.0.4", 787 "minimatch": "3.0.4",
788 "once": "^1.3.0", 788 "once": "1.4.0",
789 "path-is-absolute": "^1.0.0" 789 "path-is-absolute": "1.0.1"
790 } 790 }
791 }, 791 },
792 "glob-base": { 792 "glob-base": {
@@ -795,8 +795,8 @@
795 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", 795 "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
796 "dev": true, 796 "dev": true,
797 "requires": { 797 "requires": {
798 "glob-parent": "^2.0.0", 798 "glob-parent": "2.0.0",
799 "is-glob": "^2.0.0" 799 "is-glob": "2.0.1"
800 }, 800 },
801 "dependencies": { 801 "dependencies": {
802 "glob-parent": { 802 "glob-parent": {
@@ -805,7 +805,7 @@
805 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", 805 "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
806 "dev": true, 806 "dev": true,
807 "requires": { 807 "requires": {
808 "is-glob": "^2.0.0" 808 "is-glob": "2.0.1"
809 } 809 }
810 }, 810 },
811 "is-extglob": { 811 "is-extglob": {
@@ -820,7 +820,7 @@
820 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 820 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
821 "dev": true, 821 "dev": true,
822 "requires": { 822 "requires": {
823 "is-extglob": "^1.0.0" 823 "is-extglob": "1.0.0"
824 } 824 }
825 } 825 }
826 } 826 }
@@ -831,8 +831,8 @@
831 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", 831 "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
832 "dev": true, 832 "dev": true,
833 "requires": { 833 "requires": {
834 "is-glob": "^3.1.0", 834 "is-glob": "3.1.0",
835 "path-dirname": "^1.0.0" 835 "path-dirname": "1.0.2"
836 } 836 }
837 }, 837 },
838 "glob-stream": { 838 "glob-stream": {
@@ -841,14 +841,14 @@
841 "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", 841 "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
842 "dev": true, 842 "dev": true,
843 "requires": { 843 "requires": {
844 "extend": "^3.0.0", 844 "extend": "3.0.2",
845 "glob": "^5.0.3", 845 "glob": "5.0.15",
846 "glob-parent": "^3.0.0", 846 "glob-parent": "3.1.0",
847 "micromatch": "^2.3.7", 847 "micromatch": "2.3.11",
848 "ordered-read-streams": "^0.3.0", 848 "ordered-read-streams": "0.3.0",
849 "through2": "^0.6.0", 849 "through2": "0.6.5",
850 "to-absolute-glob": "^0.1.1", 850 "to-absolute-glob": "0.1.1",
851 "unique-stream": "^2.0.2" 851 "unique-stream": "2.2.1"
852 }, 852 },
853 "dependencies": { 853 "dependencies": {
854 "glob": { 854 "glob": {
@@ -857,11 +857,11 @@
857 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", 857 "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
858 "dev": true, 858 "dev": true,
859 "requires": { 859 "requires": {
860 "inflight": "^1.0.4", 860 "inflight": "1.0.6",
861 "inherits": "2", 861 "inherits": "2.0.3",
862 "minimatch": "2 || 3", 862 "minimatch": "3.0.4",
863 "once": "^1.3.0", 863 "once": "1.4.0",
864 "path-is-absolute": "^1.0.0" 864 "path-is-absolute": "1.0.1"
865 } 865 }
866 }, 866 },
867 "isarray": { 867 "isarray": {
@@ -876,10 +876,10 @@
876 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 876 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
877 "dev": true, 877 "dev": true,
878 "requires": { 878 "requires": {
879 "core-util-is": "~1.0.0", 879 "core-util-is": "1.0.2",
880 "inherits": "~2.0.1", 880 "inherits": "2.0.3",
881 "isarray": "0.0.1", 881 "isarray": "0.0.1",
882 "string_decoder": "~0.10.x" 882 "string_decoder": "0.10.31"
883 } 883 }
884 }, 884 },
885 "string_decoder": { 885 "string_decoder": {
@@ -894,8 +894,8 @@
894 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", 894 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
895 "dev": true, 895 "dev": true,
896 "requires": { 896 "requires": {
897 "readable-stream": ">=1.0.33-1 <1.1.0-0", 897 "readable-stream": "1.0.34",
898 "xtend": ">=4.0.0 <4.1.0-0" 898 "xtend": "4.0.1"
899 } 899 }
900 } 900 }
901 } 901 }
@@ -918,9 +918,9 @@
918 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=", 918 "integrity": "sha1-AMOQuSigeZslGsz2MaoJ4BzGKZw=",
919 "dev": true, 919 "dev": true,
920 "requires": { 920 "requires": {
921 "deep-assign": "^1.0.0", 921 "deep-assign": "1.0.0",
922 "stat-mode": "^0.2.0", 922 "stat-mode": "0.2.2",
923 "through2": "^2.0.0" 923 "through2": "2.0.3"
924 } 924 }
925 }, 925 },
926 "gulp-filter": { 926 "gulp-filter": {
@@ -929,9 +929,9 @@
929 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=", 929 "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=",
930 "dev": true, 930 "dev": true,
931 "requires": { 931 "requires": {
932 "multimatch": "^2.0.0", 932 "multimatch": "2.1.0",
933 "plugin-error": "^0.1.2", 933 "plugin-error": "0.1.2",
934 "streamfilter": "^1.0.5" 934 "streamfilter": "1.0.7"
935 } 935 }
936 }, 936 },
937 "gulp-gunzip": { 937 "gulp-gunzip": {
@@ -940,8 +940,8 @@
940 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=", 940 "integrity": "sha1-FbdBFF6Dqcb1CIYkG1fMWHHxUak=",
941 "dev": true, 941 "dev": true,
942 "requires": { 942 "requires": {
943 "through2": "~0.6.5", 943 "through2": "0.6.5",
944 "vinyl": "~0.4.6" 944 "vinyl": "0.4.6"
945 }, 945 },
946 "dependencies": { 946 "dependencies": {
947 "isarray": { 947 "isarray": {
@@ -956,10 +956,10 @@
956 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 956 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
957 "dev": true, 957 "dev": true,
958 "requires": { 958 "requires": {
959 "core-util-is": "~1.0.0", 959 "core-util-is": "1.0.2",
960 "inherits": "~2.0.1", 960 "inherits": "2.0.3",
961 "isarray": "0.0.1", 961 "isarray": "0.0.1",
962 "string_decoder": "~0.10.x" 962 "string_decoder": "0.10.31"
963 } 963 }
964 }, 964 },
965 "string_decoder": { 965 "string_decoder": {
@@ -974,8 +974,8 @@
974 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", 974 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
975 "dev": true, 975 "dev": true,
976 "requires": { 976 "requires": {
977 "readable-stream": ">=1.0.33-1 <1.1.0-0", 977 "readable-stream": "1.0.34",
978 "xtend": ">=4.0.0 <4.1.0-0" 978 "xtend": "4.0.1"
979 } 979 }
980 } 980 }
981 } 981 }
@@ -986,11 +986,11 @@
986 "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==", 986 "integrity": "sha512-/9vtSk9eI9DEWCqzGieglPqmx0WUQ9pwPHyHFpKmfxqdgqGJC2l0vFMdYs54hLdDsMDEZFLDL2J4ikjc4hQ5HQ==",
987 "dev": true, 987 "dev": true,
988 "requires": { 988 "requires": {
989 "event-stream": "^3.3.4", 989 "event-stream": "3.3.6",
990 "node.extend": "^1.1.2", 990 "node.extend": "1.1.6",
991 "request": "^2.79.0", 991 "request": "2.88.0",
992 "through2": "^2.0.3", 992 "through2": "2.0.3",
993 "vinyl": "^2.0.1" 993 "vinyl": "2.2.0"
994 }, 994 },
995 "dependencies": { 995 "dependencies": {
996 "clone": { 996 "clone": {
@@ -1011,12 +1011,12 @@
1011 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 1011 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1012 "dev": true, 1012 "dev": true,
1013 "requires": { 1013 "requires": {
1014 "clone": "^2.1.1", 1014 "clone": "2.1.2",
1015 "clone-buffer": "^1.0.0", 1015 "clone-buffer": "1.0.0",
1016 "clone-stats": "^1.0.0", 1016 "clone-stats": "1.0.0",
1017 "cloneable-readable": "^1.0.0", 1017 "cloneable-readable": "1.1.2",
1018 "remove-trailing-separator": "^1.0.1", 1018 "remove-trailing-separator": "1.1.0",
1019 "replace-ext": "^1.0.0" 1019 "replace-ext": "1.0.0"
1020 } 1020 }
1021 } 1021 }
1022 } 1022 }
@@ -1027,11 +1027,11 @@
1027 "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", 1027 "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
1028 "dev": true, 1028 "dev": true,
1029 "requires": { 1029 "requires": {
1030 "convert-source-map": "^1.1.1", 1030 "convert-source-map": "1.6.0",
1031 "graceful-fs": "^4.1.2", 1031 "graceful-fs": "4.1.11",
1032 "strip-bom": "^2.0.0", 1032 "strip-bom": "2.0.0",
1033 "through2": "^2.0.0", 1033 "through2": "2.0.3",
1034 "vinyl": "^1.0.0" 1034 "vinyl": "1.2.0"
1035 }, 1035 },
1036 "dependencies": { 1036 "dependencies": {
1037 "clone": { 1037 "clone": {
@@ -1052,8 +1052,8 @@
1052 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", 1052 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
1053 "dev": true, 1053 "dev": true,
1054 "requires": { 1054 "requires": {
1055 "clone": "^1.0.0", 1055 "clone": "1.0.4",
1056 "clone-stats": "^0.0.1", 1056 "clone-stats": "0.0.1",
1057 "replace-ext": "0.0.1" 1057 "replace-ext": "0.0.1"
1058 } 1058 }
1059 } 1059 }
@@ -1065,10 +1065,10 @@
1065 "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=", 1065 "integrity": "sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=",
1066 "dev": true, 1066 "dev": true,
1067 "requires": { 1067 "requires": {
1068 "event-stream": "^3.3.1", 1068 "event-stream": "3.3.6",
1069 "mkdirp": "^0.5.1", 1069 "mkdirp": "0.5.1",
1070 "queue": "^3.1.0", 1070 "queue": "3.1.0",
1071 "vinyl-fs": "^2.4.3" 1071 "vinyl-fs": "2.4.4"
1072 } 1072 }
1073 }, 1073 },
1074 "gulp-untar": { 1074 "gulp-untar": {
@@ -1077,11 +1077,11 @@
1077 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==", 1077 "integrity": "sha512-0QfbCH2a1k2qkTLWPqTX+QO4qNsHn3kC546YhAP3/n0h+nvtyGITDuDrYBMDZeW4WnFijmkOvBWa5HshTic1tw==",
1078 "dev": true, 1078 "dev": true,
1079 "requires": { 1079 "requires": {
1080 "event-stream": "~3.3.4", 1080 "event-stream": "3.3.6",
1081 "streamifier": "~0.1.1", 1081 "streamifier": "0.1.1",
1082 "tar": "^2.2.1", 1082 "tar": "2.2.1",
1083 "through2": "~2.0.3", 1083 "through2": "2.0.3",
1084 "vinyl": "^1.2.0" 1084 "vinyl": "1.2.0"
1085 }, 1085 },
1086 "dependencies": { 1086 "dependencies": {
1087 "clone": { 1087 "clone": {
@@ -1102,8 +1102,8 @@
1102 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", 1102 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
1103 "dev": true, 1103 "dev": true,
1104 "requires": { 1104 "requires": {
1105 "clone": "^1.0.0", 1105 "clone": "1.0.4",
1106 "clone-stats": "^0.0.1", 1106 "clone-stats": "0.0.1",
1107 "replace-ext": "0.0.1" 1107 "replace-ext": "0.0.1"
1108 } 1108 }
1109 } 1109 }
@@ -1115,13 +1115,13 @@
1115 "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=", 1115 "integrity": "sha1-JOQGhdwFtxSZlSRQmeBZAmO+ja0=",
1116 "dev": true, 1116 "dev": true,
1117 "requires": { 1117 "requires": {
1118 "event-stream": "^3.3.1", 1118 "event-stream": "3.3.6",
1119 "queue": "^4.2.1", 1119 "queue": "4.5.0",
1120 "through2": "^2.0.3", 1120 "through2": "2.0.3",
1121 "vinyl": "^2.0.2", 1121 "vinyl": "2.2.0",
1122 "vinyl-fs": "^2.0.0", 1122 "vinyl-fs": "2.4.4",
1123 "yauzl": "^2.2.1", 1123 "yauzl": "2.10.0",
1124 "yazl": "^2.2.1" 1124 "yazl": "2.4.3"
1125 }, 1125 },
1126 "dependencies": { 1126 "dependencies": {
1127 "clone": { 1127 "clone": {
@@ -1142,7 +1142,7 @@
1142 "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==", 1142 "integrity": "sha512-DwxpAnqJuoQa+wyDgQuwkSshkhlqIlWEvwvdAY27fDPunZ2cVJzXU4JyjY+5l7zs7oGLaYAQm4MbLOVFAHFBzA==",
1143 "dev": true, 1143 "dev": true,
1144 "requires": { 1144 "requires": {
1145 "inherits": "~2.0.0" 1145 "inherits": "2.0.3"
1146 } 1146 }
1147 }, 1147 },
1148 "vinyl": { 1148 "vinyl": {
@@ -1151,12 +1151,12 @@
1151 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", 1151 "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==",
1152 "dev": true, 1152 "dev": true,
1153 "requires": { 1153 "requires": {
1154 "clone": "^2.1.1", 1154 "clone": "2.1.2",
1155 "clone-buffer": "^1.0.0", 1155 "clone-buffer": "1.0.0",
1156 "clone-stats": "^1.0.0", 1156 "clone-stats": "1.0.0",
1157 "cloneable-readable": "^1.0.0", 1157 "cloneable-readable": "1.1.2",
1158 "remove-trailing-separator": "^1.0.1", 1158 "remove-trailing-separator": "1.1.0",
1159 "replace-ext": "^1.0.0" 1159 "replace-ext": "1.0.0"
1160 } 1160 }
1161 } 1161 }
1162 } 1162 }
@@ -1173,8 +1173,8 @@
1173 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", 1173 "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
1174 "dev": true, 1174 "dev": true,
1175 "requires": { 1175 "requires": {
1176 "ajv": "^5.3.0", 1176 "ajv": "5.5.2",
1177 "har-schema": "^2.0.0" 1177 "har-schema": "2.0.0"
1178 } 1178 }
1179 }, 1179 },
1180 "has-ansi": { 1180 "has-ansi": {
@@ -1183,7 +1183,7 @@
1183 "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1183 "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1184 "dev": true, 1184 "dev": true,
1185 "requires": { 1185 "requires": {
1186 "ansi-regex": "^2.0.0" 1186 "ansi-regex": "2.1.1"
1187 } 1187 }
1188 }, 1188 },
1189 "has-flag": { 1189 "has-flag": {
@@ -1204,12 +1204,12 @@
1204 "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", 1204 "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
1205 "dev": true, 1205 "dev": true,
1206 "requires": { 1206 "requires": {
1207 "domelementtype": "^1.3.0", 1207 "domelementtype": "1.3.0",
1208 "domhandler": "^2.3.0", 1208 "domhandler": "2.4.2",
1209 "domutils": "^1.5.1", 1209 "domutils": "1.5.1",
1210 "entities": "^1.1.1", 1210 "entities": "1.1.1",
1211 "inherits": "^2.0.1", 1211 "inherits": "2.0.3",
1212 "readable-stream": "^2.0.2" 1212 "readable-stream": "2.3.6"
1213 } 1213 }
1214 }, 1214 },
1215 "http-signature": { 1215 "http-signature": {
@@ -1218,9 +1218,9 @@
1218 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1218 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
1219 "dev": true, 1219 "dev": true,
1220 "requires": { 1220 "requires": {
1221 "assert-plus": "^1.0.0", 1221 "assert-plus": "1.0.0",
1222 "jsprim": "^1.2.2", 1222 "jsprim": "1.4.1",
1223 "sshpk": "^1.7.0" 1223 "sshpk": "1.14.2"
1224 } 1224 }
1225 }, 1225 },
1226 "inflight": { 1226 "inflight": {
@@ -1229,8 +1229,8 @@
1229 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1229 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1230 "dev": true, 1230 "dev": true,
1231 "requires": { 1231 "requires": {
1232 "once": "^1.3.0", 1232 "once": "1.4.0",
1233 "wrappy": "1" 1233 "wrappy": "1.0.2"
1234 } 1234 }
1235 }, 1235 },
1236 "inherits": { 1236 "inherits": {
@@ -1263,7 +1263,7 @@
1263 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", 1263 "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1264 "dev": true, 1264 "dev": true,
1265 "requires": { 1265 "requires": {
1266 "is-primitive": "^2.0.0" 1266 "is-primitive": "2.0.0"
1267 } 1267 }
1268 }, 1268 },
1269 "is-extendable": { 1269 "is-extendable": {
@@ -1284,7 +1284,7 @@
1284 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", 1284 "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1285 "dev": true, 1285 "dev": true,
1286 "requires": { 1286 "requires": {
1287 "is-extglob": "^2.1.0" 1287 "is-extglob": "2.1.1"
1288 } 1288 }
1289 }, 1289 },
1290 "is-number": { 1290 "is-number": {
@@ -1293,7 +1293,7 @@
1293 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", 1293 "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1294 "dev": true, 1294 "dev": true,
1295 "requires": { 1295 "requires": {
1296 "kind-of": "^3.0.2" 1296 "kind-of": "3.2.2"
1297 }, 1297 },
1298 "dependencies": { 1298 "dependencies": {
1299 "kind-of": { 1299 "kind-of": {
@@ -1302,7 +1302,7 @@
1302 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1302 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1303 "dev": true, 1303 "dev": true,
1304 "requires": { 1304 "requires": {
1305 "is-buffer": "^1.1.5" 1305 "is-buffer": "1.1.6"
1306 } 1306 }
1307 } 1307 }
1308 } 1308 }
@@ -1382,8 +1382,8 @@
1382 "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", 1382 "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
1383 "dev": true, 1383 "dev": true,
1384 "requires": { 1384 "requires": {
1385 "argparse": "^1.0.7", 1385 "argparse": "1.0.10",
1386 "esprima": "^4.0.0" 1386 "esprima": "4.0.1"
1387 } 1387 }
1388 }, 1388 },
1389 "jsbn": { 1389 "jsbn": {
@@ -1411,7 +1411,7 @@
1411 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 1411 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
1412 "dev": true, 1412 "dev": true,
1413 "requires": { 1413 "requires": {
1414 "jsonify": "~0.0.0" 1414 "jsonify": "0.0.0"
1415 } 1415 }
1416 }, 1416 },
1417 "json-stringify-safe": { 1417 "json-stringify-safe": {
@@ -1450,7 +1450,7 @@
1450 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", 1450 "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
1451 "dev": true, 1451 "dev": true,
1452 "requires": { 1452 "requires": {
1453 "readable-stream": "^2.0.5" 1453 "readable-stream": "2.3.6"
1454 } 1454 }
1455 }, 1455 },
1456 "linkify-it": { 1456 "linkify-it": {
@@ -1459,7 +1459,7 @@
1459 "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=", 1459 "integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
1460 "dev": true, 1460 "dev": true,
1461 "requires": { 1461 "requires": {
1462 "uc.micro": "^1.0.1" 1462 "uc.micro": "1.0.5"
1463 } 1463 }
1464 }, 1464 },
1465 "lodash": { 1465 "lodash": {
@@ -1486,11 +1486,11 @@
1486 "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", 1486 "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
1487 "dev": true, 1487 "dev": true,
1488 "requires": { 1488 "requires": {
1489 "argparse": "^1.0.7", 1489 "argparse": "1.0.10",
1490 "entities": "~1.1.1", 1490 "entities": "1.1.1",
1491 "linkify-it": "^2.0.0", 1491 "linkify-it": "2.0.3",
1492 "mdurl": "^1.0.1", 1492 "mdurl": "1.0.1",
1493 "uc.micro": "^1.0.5" 1493 "uc.micro": "1.0.5"
1494 } 1494 }
1495 }, 1495 },
1496 "math-random": { 1496 "math-random": {
@@ -1511,7 +1511,7 @@
1511 "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", 1511 "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
1512 "dev": true, 1512 "dev": true,
1513 "requires": { 1513 "requires": {
1514 "readable-stream": "^2.0.1" 1514 "readable-stream": "2.3.6"
1515 } 1515 }
1516 }, 1516 },
1517 "micromatch": { 1517 "micromatch": {
@@ -1520,19 +1520,19 @@
1520 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", 1520 "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1521 "dev": true, 1521 "dev": true,
1522 "requires": { 1522 "requires": {
1523 "arr-diff": "^2.0.0", 1523 "arr-diff": "2.0.0",
1524 "array-unique": "^0.2.1", 1524 "array-unique": "0.2.1",
1525 "braces": "^1.8.2", 1525 "braces": "1.8.5",
1526 "expand-brackets": "^0.1.4", 1526 "expand-brackets": "0.1.5",
1527 "extglob": "^0.3.1", 1527 "extglob": "0.3.2",
1528 "filename-regex": "^2.0.0", 1528 "filename-regex": "2.0.1",
1529 "is-extglob": "^1.0.0", 1529 "is-extglob": "1.0.0",
1530 "is-glob": "^2.0.1", 1530 "is-glob": "2.0.1",
1531 "kind-of": "^3.0.2", 1531 "kind-of": "3.2.2",
1532 "normalize-path": "^2.0.1", 1532 "normalize-path": "2.1.1",
1533 "object.omit": "^2.0.0", 1533 "object.omit": "2.0.1",
1534 "parse-glob": "^3.0.4", 1534 "parse-glob": "3.0.4",
1535 "regex-cache": "^0.4.2" 1535 "regex-cache": "0.4.4"
1536 }, 1536 },
1537 "dependencies": { 1537 "dependencies": {
1538 "arr-diff": { 1538 "arr-diff": {
@@ -1541,7 +1541,7 @@
1541 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", 1541 "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
1542 "dev": true, 1542 "dev": true,
1543 "requires": { 1543 "requires": {
1544 "arr-flatten": "^1.0.1" 1544 "arr-flatten": "1.1.0"
1545 } 1545 }
1546 }, 1546 },
1547 "is-extglob": { 1547 "is-extglob": {
@@ -1556,7 +1556,7 @@
1556 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1556 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1557 "dev": true, 1557 "dev": true,
1558 "requires": { 1558 "requires": {
1559 "is-extglob": "^1.0.0" 1559 "is-extglob": "1.0.0"
1560 } 1560 }
1561 }, 1561 },
1562 "kind-of": { 1562 "kind-of": {
@@ -1565,7 +1565,7 @@
1565 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1565 "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1566 "dev": true, 1566 "dev": true,
1567 "requires": { 1567 "requires": {
1568 "is-buffer": "^1.1.5" 1568 "is-buffer": "1.1.6"
1569 } 1569 }
1570 } 1570 }
1571 } 1571 }
@@ -1588,7 +1588,7 @@
1588 "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", 1588 "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
1589 "dev": true, 1589 "dev": true,
1590 "requires": { 1590 "requires": {
1591 "mime-db": "~1.36.0" 1591 "mime-db": "1.36.0"
1592 } 1592 }
1593 }, 1593 },
1594 "minimatch": { 1594 "minimatch": {
@@ -1597,7 +1597,7 @@
1597 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1597 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1598 "dev": true, 1598 "dev": true,
1599 "requires": { 1599 "requires": {
1600 "brace-expansion": "^1.1.7" 1600 "brace-expansion": "1.1.11"
1601 } 1601 }
1602 }, 1602 },
1603 "minimist": { 1603 "minimist": {
@@ -1645,12 +1645,12 @@
1645 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 1645 "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
1646 "dev": true, 1646 "dev": true,
1647 "requires": { 1647 "requires": {
1648 "fs.realpath": "^1.0.0", 1648 "fs.realpath": "1.0.0",
1649 "inflight": "^1.0.4", 1649 "inflight": "1.0.6",
1650 "inherits": "2", 1650 "inherits": "2.0.3",
1651 "minimatch": "^3.0.4", 1651 "minimatch": "3.0.4",
1652 "once": "^1.3.0", 1652 "once": "1.4.0",
1653 "path-is-absolute": "^1.0.0" 1653 "path-is-absolute": "1.0.1"
1654 } 1654 }
1655 } 1655 }
1656 } 1656 }
@@ -1667,10 +1667,10 @@
1667 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", 1667 "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
1668 "dev": true, 1668 "dev": true,
1669 "requires": { 1669 "requires": {
1670 "array-differ": "^1.0.0", 1670 "array-differ": "1.0.0",
1671 "array-union": "^1.0.1", 1671 "array-union": "1.0.2",
1672 "arrify": "^1.0.0", 1672 "arrify": "1.0.1",
1673 "minimatch": "^3.0.0" 1673 "minimatch": "3.0.4"
1674 } 1674 }
1675 }, 1675 },
1676 "mute-stream": { 1676 "mute-stream": {
@@ -1685,7 +1685,7 @@
1685 "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", 1685 "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=",
1686 "dev": true, 1686 "dev": true,
1687 "requires": { 1687 "requires": {
1688 "is": "^3.1.0" 1688 "is": "3.2.1"
1689 } 1689 }
1690 }, 1690 },
1691 "normalize-path": { 1691 "normalize-path": {
@@ -1694,7 +1694,7 @@
1694 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", 1694 "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1695 "dev": true, 1695 "dev": true,
1696 "requires": { 1696 "requires": {
1697 "remove-trailing-separator": "^1.0.1" 1697 "remove-trailing-separator": "1.1.0"
1698 } 1698 }
1699 }, 1699 },
1700 "nth-check": { 1700 "nth-check": {
@@ -1703,7 +1703,7 @@
1703 "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", 1703 "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
1704 "dev": true, 1704 "dev": true,
1705 "requires": { 1705 "requires": {
1706 "boolbase": "~1.0.0" 1706 "boolbase": "1.0.0"
1707 } 1707 }
1708 }, 1708 },
1709 "oauth-sign": { 1709 "oauth-sign": {
@@ -1724,8 +1724,8 @@
1724 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", 1724 "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
1725 "dev": true, 1725 "dev": true,
1726 "requires": { 1726 "requires": {
1727 "for-own": "^0.1.4", 1727 "for-own": "0.1.5",
1728 "is-extendable": "^0.1.1" 1728 "is-extendable": "0.1.1"
1729 } 1729 }
1730 }, 1730 },
1731 "once": { 1731 "once": {
@@ -1734,7 +1734,7 @@
1734 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1734 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1735 "dev": true, 1735 "dev": true,
1736 "requires": { 1736 "requires": {
1737 "wrappy": "1" 1737 "wrappy": "1.0.2"
1738 } 1738 }
1739 }, 1739 },
1740 "ordered-read-streams": { 1740 "ordered-read-streams": {
@@ -1743,8 +1743,8 @@
1743 "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", 1743 "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
1744 "dev": true, 1744 "dev": true,
1745 "requires": { 1745 "requires": {
1746 "is-stream": "^1.0.1", 1746 "is-stream": "1.1.0",
1747 "readable-stream": "^2.0.1" 1747 "readable-stream": "2.3.6"
1748 } 1748 }
1749 }, 1749 },
1750 "os-homedir": { 1750 "os-homedir": {
@@ -1765,8 +1765,8 @@
1765 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", 1765 "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1766 "dev": true, 1766 "dev": true,
1767 "requires": { 1767 "requires": {
1768 "os-homedir": "^1.0.0", 1768 "os-homedir": "1.0.2",
1769 "os-tmpdir": "^1.0.0" 1769 "os-tmpdir": "1.0.2"
1770 } 1770 }
1771 }, 1771 },
1772 "parse-glob": { 1772 "parse-glob": {
@@ -1775,10 +1775,10 @@
1775 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", 1775 "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
1776 "dev": true, 1776 "dev": true,
1777 "requires": { 1777 "requires": {
1778 "glob-base": "^0.3.0", 1778 "glob-base": "0.3.0",
1779 "is-dotfile": "^1.0.0", 1779 "is-dotfile": "1.0.3",
1780 "is-extglob": "^1.0.0", 1780 "is-extglob": "1.0.0",
1781 "is-glob": "^2.0.0" 1781 "is-glob": "2.0.1"
1782 }, 1782 },
1783 "dependencies": { 1783 "dependencies": {
1784 "is-extglob": { 1784 "is-extglob": {
@@ -1793,7 +1793,7 @@
1793 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", 1793 "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1794 "dev": true, 1794 "dev": true,
1795 "requires": { 1795 "requires": {
1796 "is-extglob": "^1.0.0" 1796 "is-extglob": "1.0.0"
1797 } 1797 }
1798 } 1798 }
1799 } 1799 }
@@ -1804,7 +1804,7 @@
1804 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", 1804 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=",
1805 "dev": true, 1805 "dev": true,
1806 "requires": { 1806 "requires": {
1807 "semver": "^5.1.0" 1807 "semver": "5.5.1"
1808 } 1808 }
1809 }, 1809 },
1810 "parse5": { 1810 "parse5": {
@@ -1813,7 +1813,7 @@
1813 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", 1813 "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
1814 "dev": true, 1814 "dev": true,
1815 "requires": { 1815 "requires": {
1816 "@types/node": "*" 1816 "@types/node": "8.10.34"
1817 } 1817 }
1818 }, 1818 },
1819 "path-dirname": { 1819 "path-dirname": {
@@ -1840,7 +1840,7 @@
1840 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 1840 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1841 "dev": true, 1841 "dev": true,
1842 "requires": { 1842 "requires": {
1843 "through": "~2.3" 1843 "through": "2.3.8"
1844 } 1844 }
1845 }, 1845 },
1846 "pend": { 1846 "pend": {
@@ -1861,11 +1861,11 @@
1861 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", 1861 "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=",
1862 "dev": true, 1862 "dev": true,
1863 "requires": { 1863 "requires": {
1864 "ansi-cyan": "^0.1.1", 1864 "ansi-cyan": "0.1.1",
1865 "ansi-red": "^0.1.1", 1865 "ansi-red": "0.1.1",
1866 "arr-diff": "^1.0.1", 1866 "arr-diff": "1.1.0",
1867 "arr-union": "^2.0.1", 1867 "arr-union": "2.1.0",
1868 "extend-shallow": "^1.1.2" 1868 "extend-shallow": "1.1.4"
1869 } 1869 }
1870 }, 1870 },
1871 "preserve": { 1871 "preserve": {
@@ -1922,7 +1922,7 @@
1922 "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=", 1922 "integrity": "sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=",
1923 "dev": true, 1923 "dev": true,
1924 "requires": { 1924 "requires": {
1925 "inherits": "~2.0.0" 1925 "inherits": "2.0.3"
1926 } 1926 }
1927 }, 1927 },
1928 "randomatic": { 1928 "randomatic": {
@@ -1931,9 +1931,9 @@
1931 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", 1931 "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
1932 "dev": true, 1932 "dev": true,
1933 "requires": { 1933 "requires": {
1934 "is-number": "^4.0.0", 1934 "is-number": "4.0.0",
1935 "kind-of": "^6.0.0", 1935 "kind-of": "6.0.2",
1936 "math-random": "^1.0.1" 1936 "math-random": "1.0.1"
1937 }, 1937 },
1938 "dependencies": { 1938 "dependencies": {
1939 "is-number": { 1939 "is-number": {
@@ -1956,7 +1956,7 @@
1956 "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", 1956 "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
1957 "dev": true, 1957 "dev": true,
1958 "requires": { 1958 "requires": {
1959 "mute-stream": "~0.0.4" 1959 "mute-stream": "0.0.7"
1960 } 1960 }
1961 }, 1961 },
1962 "readable-stream": { 1962 "readable-stream": {
@@ -1965,13 +1965,13 @@
1965 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1965 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1966 "dev": true, 1966 "dev": true,
1967 "requires": { 1967 "requires": {
1968 "core-util-is": "~1.0.0", 1968 "core-util-is": "1.0.2",
1969 "inherits": "~2.0.3", 1969 "inherits": "2.0.3",
1970 "isarray": "~1.0.0", 1970 "isarray": "1.0.0",
1971 "process-nextick-args": "~2.0.0", 1971 "process-nextick-args": "2.0.0",
1972 "safe-buffer": "~5.1.1", 1972 "safe-buffer": "5.1.2",
1973 "string_decoder": "~1.1.1", 1973 "string_decoder": "1.1.1",
1974 "util-deprecate": "~1.0.1" 1974 "util-deprecate": "1.0.2"
1975 } 1975 }
1976 }, 1976 },
1977 "regex-cache": { 1977 "regex-cache": {
@@ -1980,7 +1980,7 @@
1980 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", 1980 "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
1981 "dev": true, 1981 "dev": true,
1982 "requires": { 1982 "requires": {
1983 "is-equal-shallow": "^0.1.3" 1983 "is-equal-shallow": "0.1.3"
1984 } 1984 }
1985 }, 1985 },
1986 "remove-trailing-separator": { 1986 "remove-trailing-separator": {
@@ -2013,26 +2013,26 @@
2013 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 2013 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
2014 "dev": true, 2014 "dev": true,
2015 "requires": { 2015 "requires": {
2016 "aws-sign2": "~0.7.0", 2016 "aws-sign2": "0.7.0",
2017 "aws4": "^1.8.0", 2017 "aws4": "1.8.0",
2018 "caseless": "~0.12.0", 2018 "caseless": "0.12.0",
2019 "combined-stream": "~1.0.6", 2019 "combined-stream": "1.0.6",
2020 "extend": "~3.0.2", 2020 "extend": "3.0.2",
2021 "forever-agent": "~0.6.1", 2021 "forever-agent": "0.6.1",
2022 "form-data": "~2.3.2", 2022 "form-data": "2.3.2",
2023 "har-validator": "~5.1.0", 2023 "har-validator": "5.1.0",
2024 "http-signature": "~1.2.0", 2024 "http-signature": "1.2.0",
2025 "is-typedarray": "~1.0.0", 2025 "is-typedarray": "1.0.0",
2026 "isstream": "~0.1.2", 2026 "isstream": "0.1.2",
2027 "json-stringify-safe": "~5.0.1", 2027 "json-stringify-safe": "5.0.1",
2028 "mime-types": "~2.1.19", 2028 "mime-types": "2.1.20",
2029 "oauth-sign": "~0.9.0", 2029 "oauth-sign": "0.9.0",
2030 "performance-now": "^2.1.0", 2030 "performance-now": "2.1.0",
2031 "qs": "~6.5.2", 2031 "qs": "6.5.2",
2032 "safe-buffer": "^5.1.2", 2032 "safe-buffer": "5.1.2",
2033 "tough-cookie": "~2.4.3", 2033 "tough-cookie": "2.4.3",
2034 "tunnel-agent": "^0.6.0", 2034 "tunnel-agent": "0.6.0",
2035 "uuid": "^3.3.2" 2035 "uuid": "3.3.2"
2036 } 2036 }
2037 }, 2037 },
2038 "requires-port": { 2038 "requires-port": {
@@ -2047,7 +2047,7 @@
2047 "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", 2047 "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
2048 "dev": true, 2048 "dev": true,
2049 "requires": { 2049 "requires": {
2050 "path-parse": "^1.0.5" 2050 "path-parse": "1.0.6"
2051 } 2051 }
2052 }, 2052 },
2053 "rimraf": { 2053 "rimraf": {
@@ -2056,7 +2056,7 @@
2056 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 2056 "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
2057 "dev": true, 2057 "dev": true,
2058 "requires": { 2058 "requires": {
2059 "glob": "^7.0.5" 2059 "glob": "7.1.3"
2060 } 2060 }
2061 }, 2061 },
2062 "safe-buffer": { 2062 "safe-buffer": {
@@ -2089,8 +2089,8 @@
2089 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", 2089 "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
2090 "dev": true, 2090 "dev": true,
2091 "requires": { 2091 "requires": {
2092 "buffer-from": "^1.0.0", 2092 "buffer-from": "1.1.1",
2093 "source-map": "^0.6.0" 2093 "source-map": "0.6.1"
2094 } 2094 }
2095 }, 2095 },
2096 "split": { 2096 "split": {
@@ -2099,7 +2099,7 @@
2099 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", 2099 "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
2100 "dev": true, 2100 "dev": true,
2101 "requires": { 2101 "requires": {
2102 "through": "2" 2102 "through": "2.3.8"
2103 } 2103 }
2104 }, 2104 },
2105 "sprintf-js": { 2105 "sprintf-js": {
@@ -2114,15 +2114,15 @@
2114 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", 2114 "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
2115 "dev": true, 2115 "dev": true,
2116 "requires": { 2116 "requires": {
2117 "asn1": "~0.2.3", 2117 "asn1": "0.2.4",
2118 "assert-plus": "^1.0.0", 2118 "assert-plus": "1.0.0",
2119 "bcrypt-pbkdf": "^1.0.0", 2119 "bcrypt-pbkdf": "1.0.2",
2120 "dashdash": "^1.12.0", 2120 "dashdash": "1.14.1",
2121 "ecc-jsbn": "~0.1.1", 2121 "ecc-jsbn": "0.1.2",
2122 "getpass": "^0.1.1", 2122 "getpass": "0.1.7",
2123 "jsbn": "~0.1.0", 2123 "jsbn": "0.1.1",
2124 "safer-buffer": "^2.0.2", 2124 "safer-buffer": "2.1.2",
2125 "tweetnacl": "~0.14.0" 2125 "tweetnacl": "0.14.5"
2126 } 2126 }
2127 }, 2127 },
2128 "stat-mode": { 2128 "stat-mode": {
@@ -2137,8 +2137,8 @@
2137 "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", 2137 "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
2138 "dev": true, 2138 "dev": true,
2139 "requires": { 2139 "requires": {
2140 "duplexer": "~0.1.1", 2140 "duplexer": "0.1.1",
2141 "through": "~2.3.4" 2141 "through": "2.3.8"
2142 } 2142 }
2143 }, 2143 },
2144 "stream-shift": { 2144 "stream-shift": {
@@ -2153,7 +2153,7 @@
2153 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==", 2153 "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==",
2154 "dev": true, 2154 "dev": true,
2155 "requires": { 2155 "requires": {
2156 "readable-stream": "^2.0.2" 2156 "readable-stream": "2.3.6"
2157 } 2157 }
2158 }, 2158 },
2159 "streamifier": { 2159 "streamifier": {
@@ -2168,7 +2168,7 @@
2168 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2168 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2169 "dev": true, 2169 "dev": true,
2170 "requires": { 2170 "requires": {
2171 "safe-buffer": "~5.1.0" 2171 "safe-buffer": "5.1.2"
2172 } 2172 }
2173 }, 2173 },
2174 "strip-ansi": { 2174 "strip-ansi": {
@@ -2177,7 +2177,7 @@
2177 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2177 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2178 "dev": true, 2178 "dev": true,
2179 "requires": { 2179 "requires": {
2180 "ansi-regex": "^2.0.0" 2180 "ansi-regex": "2.1.1"
2181 } 2181 }
2182 }, 2182 },
2183 "strip-bom": { 2183 "strip-bom": {
@@ -2186,7 +2186,7 @@
2186 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 2186 "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
2187 "dev": true, 2187 "dev": true,
2188 "requires": { 2188 "requires": {
2189 "is-utf8": "^0.2.0" 2189 "is-utf8": "0.2.1"
2190 } 2190 }
2191 }, 2191 },
2192 "strip-bom-stream": { 2192 "strip-bom-stream": {
@@ -2195,8 +2195,8 @@
2195 "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", 2195 "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
2196 "dev": true, 2196 "dev": true,
2197 "requires": { 2197 "requires": {
2198 "first-chunk-stream": "^1.0.0", 2198 "first-chunk-stream": "1.0.0",
2199 "strip-bom": "^2.0.0" 2199 "strip-bom": "2.0.0"
2200 } 2200 }
2201 }, 2201 },
2202 "supports-color": { 2202 "supports-color": {
@@ -2205,7 +2205,7 @@
2205 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", 2205 "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2206 "dev": true, 2206 "dev": true,
2207 "requires": { 2207 "requires": {
2208 "has-flag": "^2.0.0" 2208 "has-flag": "2.0.0"
2209 } 2209 }
2210 }, 2210 },
2211 "tar": { 2211 "tar": {
@@ -2214,9 +2214,9 @@
2214 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", 2214 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2215 "dev": true, 2215 "dev": true,
2216 "requires": { 2216 "requires": {
2217 "block-stream": "*", 2217 "block-stream": "0.0.9",
2218 "fstream": "^1.0.2", 2218 "fstream": "1.0.11",
2219 "inherits": "2" 2219 "inherits": "2.0.3"
2220 } 2220 }
2221 }, 2221 },
2222 "through": { 2222 "through": {
@@ -2231,8 +2231,8 @@
2231 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", 2231 "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
2232 "dev": true, 2232 "dev": true,
2233 "requires": { 2233 "requires": {
2234 "readable-stream": "^2.1.5", 2234 "readable-stream": "2.3.6",
2235 "xtend": "~4.0.1" 2235 "xtend": "4.0.1"
2236 } 2236 }
2237 }, 2237 },
2238 "through2-filter": { 2238 "through2-filter": {
@@ -2241,8 +2241,8 @@
2241 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", 2241 "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
2242 "dev": true, 2242 "dev": true,
2243 "requires": { 2243 "requires": {
2244 "through2": "~2.0.0", 2244 "through2": "2.0.3",
2245 "xtend": "~4.0.0" 2245 "xtend": "4.0.1"
2246 } 2246 }
2247 }, 2247 },
2248 "tmp": { 2248 "tmp": {
@@ -2251,7 +2251,7 @@
2251 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", 2251 "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=",
2252 "dev": true, 2252 "dev": true,
2253 "requires": { 2253 "requires": {
2254 "os-tmpdir": "~1.0.1" 2254 "os-tmpdir": "1.0.2"
2255 } 2255 }
2256 }, 2256 },
2257 "to-absolute-glob": { 2257 "to-absolute-glob": {
@@ -2260,7 +2260,7 @@
2260 "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", 2260 "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
2261 "dev": true, 2261 "dev": true,
2262 "requires": { 2262 "requires": {
2263 "extend-shallow": "^2.0.1" 2263 "extend-shallow": "2.0.1"
2264 }, 2264 },
2265 "dependencies": { 2265 "dependencies": {
2266 "extend-shallow": { 2266 "extend-shallow": {
@@ -2269,7 +2269,7 @@
2269 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", 2269 "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2270 "dev": true, 2270 "dev": true,
2271 "requires": { 2271 "requires": {
2272 "is-extendable": "^0.1.0" 2272 "is-extendable": "0.1.1"
2273 } 2273 }
2274 } 2274 }
2275 } 2275 }
@@ -2280,8 +2280,8 @@
2280 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 2280 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
2281 "dev": true, 2281 "dev": true,
2282 "requires": { 2282 "requires": {
2283 "psl": "^1.1.24", 2283 "psl": "1.1.29",
2284 "punycode": "^1.4.1" 2284 "punycode": "1.4.1"
2285 } 2285 }
2286 }, 2286 },
2287 "tslib": { 2287 "tslib": {
@@ -2296,18 +2296,18 @@
2296 "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=", 2296 "integrity": "sha1-mPMMAurjzecAYgHkwzywi0hYHu0=",
2297 "dev": true, 2297 "dev": true,
2298 "requires": { 2298 "requires": {
2299 "babel-code-frame": "^6.22.0", 2299 "babel-code-frame": "6.26.0",
2300 "builtin-modules": "^1.1.1", 2300 "builtin-modules": "1.1.1",
2301 "chalk": "^2.3.0", 2301 "chalk": "2.4.1",
2302 "commander": "^2.12.1", 2302 "commander": "2.18.0",
2303 "diff": "^3.2.0", 2303 "diff": "3.3.1",
2304 "glob": "^7.1.1", 2304 "glob": "7.1.3",
2305 "js-yaml": "^3.7.0", 2305 "js-yaml": "3.12.0",
2306 "minimatch": "^3.0.4", 2306 "minimatch": "3.0.4",
2307 "resolve": "^1.3.2", 2307 "resolve": "1.8.1",
2308 "semver": "^5.3.0", 2308 "semver": "5.5.1",
2309 "tslib": "^1.8.0", 2309 "tslib": "1.9.3",
2310 "tsutils": "^2.27.2" 2310 "tsutils": "2.29.0"
2311 } 2311 }
2312 }, 2312 },
2313 "tslint-config-prettier": { 2313 "tslint-config-prettier": {
@@ -2322,7 +2322,7 @@
2322 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", 2322 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
2323 "dev": true, 2323 "dev": true,
2324 "requires": { 2324 "requires": {
2325 "tslib": "^1.8.1" 2325 "tslib": "1.9.3"
2326 } 2326 }
2327 }, 2327 },
2328 "tunnel": { 2328 "tunnel": {
@@ -2337,7 +2337,7 @@
2337 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2337 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
2338 "dev": true, 2338 "dev": true,
2339 "requires": { 2339 "requires": {
2340 "safe-buffer": "^5.0.1" 2340 "safe-buffer": "5.1.2"
2341 } 2341 }
2342 }, 2342 },
2343 "tweetnacl": { 2343 "tweetnacl": {
@@ -2389,8 +2389,8 @@
2389 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", 2389 "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
2390 "dev": true, 2390 "dev": true,
2391 "requires": { 2391 "requires": {
2392 "json-stable-stringify": "^1.0.0", 2392 "json-stable-stringify": "1.0.1",
2393 "through2-filter": "^2.0.0" 2393 "through2-filter": "2.0.0"
2394 } 2394 }
2395 }, 2395 },
2396 "url-join": { 2396 "url-join": {
@@ -2405,8 +2405,8 @@
2405 "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", 2405 "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==",
2406 "dev": true, 2406 "dev": true,
2407 "requires": { 2407 "requires": {
2408 "querystringify": "^2.0.0", 2408 "querystringify": "2.0.0",
2409 "requires-port": "^1.0.0" 2409 "requires-port": "1.0.0"
2410 } 2410 }
2411 }, 2411 },
2412 "util-deprecate": { 2412 "util-deprecate": {
@@ -2433,9 +2433,9 @@
2433 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2433 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2434 "dev": true, 2434 "dev": true,
2435 "requires": { 2435 "requires": {
2436 "assert-plus": "^1.0.0", 2436 "assert-plus": "1.0.0",
2437 "core-util-is": "1.0.2", 2437 "core-util-is": "1.0.2",
2438 "extsprintf": "^1.2.0" 2438 "extsprintf": "1.3.0"
2439 } 2439 }
2440 }, 2440 },
2441 "vinyl": { 2441 "vinyl": {
@@ -2444,8 +2444,8 @@
2444 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", 2444 "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
2445 "dev": true, 2445 "dev": true,
2446 "requires": { 2446 "requires": {
2447 "clone": "^0.2.0", 2447 "clone": "0.2.0",
2448 "clone-stats": "^0.0.1" 2448 "clone-stats": "0.0.1"
2449 } 2449 }
2450 }, 2450 },
2451 "vinyl-fs": { 2451 "vinyl-fs": {
@@ -2454,23 +2454,23 @@
2454 "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", 2454 "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
2455 "dev": true, 2455 "dev": true,
2456 "requires": { 2456 "requires": {
2457 "duplexify": "^3.2.0", 2457 "duplexify": "3.6.0",
2458 "glob-stream": "^5.3.2", 2458 "glob-stream": "5.3.5",
2459 "graceful-fs": "^4.0.0", 2459 "graceful-fs": "4.1.11",
2460 "gulp-sourcemaps": "1.6.0", 2460 "gulp-sourcemaps": "1.6.0",
2461 "is-valid-glob": "^0.3.0", 2461 "is-valid-glob": "0.3.0",
2462 "lazystream": "^1.0.0", 2462 "lazystream": "1.0.0",
2463 "lodash.isequal": "^4.0.0", 2463 "lodash.isequal": "4.5.0",
2464 "merge-stream": "^1.0.0", 2464 "merge-stream": "1.0.1",
2465 "mkdirp": "^0.5.0", 2465 "mkdirp": "0.5.1",
2466 "object-assign": "^4.0.0", 2466 "object-assign": "4.1.1",
2467 "readable-stream": "^2.0.4", 2467 "readable-stream": "2.3.6",
2468 "strip-bom": "^2.0.0", 2468 "strip-bom": "2.0.0",
2469 "strip-bom-stream": "^1.0.0", 2469 "strip-bom-stream": "1.0.0",
2470 "through2": "^2.0.0", 2470 "through2": "2.0.3",
2471 "through2-filter": "^2.0.0", 2471 "through2-filter": "2.0.0",
2472 "vali-date": "^1.0.0", 2472 "vali-date": "1.0.0",
2473 "vinyl": "^1.0.0" 2473 "vinyl": "1.2.0"
2474 }, 2474 },
2475 "dependencies": { 2475 "dependencies": {
2476 "clone": { 2476 "clone": {
@@ -2491,8 +2491,8 @@
2491 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", 2491 "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
2492 "dev": true, 2492 "dev": true,
2493 "requires": { 2493 "requires": {
2494 "clone": "^1.0.0", 2494 "clone": "1.0.4",
2495 "clone-stats": "^0.0.1", 2495 "clone-stats": "0.0.1",
2496 "replace-ext": "0.0.1" 2496 "replace-ext": "0.0.1"
2497 } 2497 }
2498 } 2498 }
@@ -2504,8 +2504,8 @@
2504 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=", 2504 "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=",
2505 "dev": true, 2505 "dev": true,
2506 "requires": { 2506 "requires": {
2507 "through2": "^2.0.3", 2507 "through2": "2.0.3",
2508 "vinyl": "^0.4.3" 2508 "vinyl": "0.4.6"
2509 } 2509 }
2510 }, 2510 },
2511 "vsce": { 2511 "vsce": {
@@ -2514,23 +2514,23 @@
2514 "integrity": "sha512-Hf2HE9O/MRQHxUUgWHAm7mOkz0K5swuF2smaE/sP7+OWp/5DdIPFwmLEYCCZHxG25l3GBRoO0dAL8S5w//et+g==", 2514 "integrity": "sha512-Hf2HE9O/MRQHxUUgWHAm7mOkz0K5swuF2smaE/sP7+OWp/5DdIPFwmLEYCCZHxG25l3GBRoO0dAL8S5w//et+g==",
2515 "dev": true, 2515 "dev": true,
2516 "requires": { 2516 "requires": {
2517 "cheerio": "^1.0.0-rc.1", 2517 "cheerio": "1.0.0-rc.2",
2518 "commander": "^2.8.1", 2518 "commander": "2.18.0",
2519 "denodeify": "^1.2.1", 2519 "denodeify": "1.2.1",
2520 "glob": "^7.0.6", 2520 "glob": "7.1.3",
2521 "lodash": "^4.17.10", 2521 "lodash": "4.17.11",
2522 "markdown-it": "^8.3.1", 2522 "markdown-it": "8.4.2",
2523 "mime": "^1.3.4", 2523 "mime": "1.6.0",
2524 "minimatch": "^3.0.3", 2524 "minimatch": "3.0.4",
2525 "osenv": "^0.1.3", 2525 "osenv": "0.1.5",
2526 "parse-semver": "^1.1.1", 2526 "parse-semver": "1.1.1",
2527 "read": "^1.0.7", 2527 "read": "1.0.7",
2528 "semver": "^5.1.0", 2528 "semver": "5.5.1",
2529 "tmp": "0.0.29", 2529 "tmp": "0.0.29",
2530 "url-join": "^1.1.0", 2530 "url-join": "1.1.0",
2531 "vso-node-api": "6.1.2-preview", 2531 "vso-node-api": "6.1.2-preview",
2532 "yauzl": "^2.3.1", 2532 "yauzl": "2.10.0",
2533 "yazl": "^2.2.2" 2533 "yazl": "2.4.3"
2534 } 2534 }
2535 }, 2535 },
2536 "vscode": { 2536 "vscode": {
@@ -2539,20 +2539,20 @@
2539 "integrity": "sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A==", 2539 "integrity": "sha512-tJl9eL15ZMm6vzCYYeQ26sSYRuXGMGPsaeIAmG2rOOYRn01jdaDg6I4b9G5Ed6FISdmn6egpKThk4o4om8Ax/A==",
2540 "dev": true, 2540 "dev": true,
2541 "requires": { 2541 "requires": {
2542 "glob": "^7.1.2", 2542 "glob": "7.1.3",
2543 "gulp-chmod": "^2.0.0", 2543 "gulp-chmod": "2.0.0",
2544 "gulp-filter": "^5.0.1", 2544 "gulp-filter": "5.1.0",
2545 "gulp-gunzip": "1.0.0", 2545 "gulp-gunzip": "1.0.0",
2546 "gulp-remote-src-vscode": "^0.5.0", 2546 "gulp-remote-src-vscode": "0.5.0",
2547 "gulp-symdest": "^1.1.0", 2547 "gulp-symdest": "1.1.0",
2548 "gulp-untar": "^0.0.7", 2548 "gulp-untar": "0.0.7",
2549 "gulp-vinyl-zip": "^2.1.0", 2549 "gulp-vinyl-zip": "2.1.0",
2550 "mocha": "^4.0.1", 2550 "mocha": "4.1.0",
2551 "request": "^2.83.0", 2551 "request": "2.88.0",
2552 "semver": "^5.4.1", 2552 "semver": "5.5.1",
2553 "source-map-support": "^0.5.0", 2553 "source-map-support": "0.5.9",
2554 "url-parse": "^1.4.3", 2554 "url-parse": "1.4.3",
2555 "vinyl-source-stream": "^1.1.0" 2555 "vinyl-source-stream": "1.1.2"
2556 } 2556 }
2557 }, 2557 },
2558 "vscode-jsonrpc": { 2558 "vscode-jsonrpc": {
@@ -2565,7 +2565,7 @@
2565 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.2.tgz", 2565 "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-4.4.2.tgz",
2566 "integrity": "sha512-9TUzsg1UM6n1UEyPlWbDf7tK1wJAK7UGFRmGDN8sz4KmbbDiVRh6YicaB/5oRSVTpuV47PdJpYlOl3SJ0RiK1Q==", 2566 "integrity": "sha512-9TUzsg1UM6n1UEyPlWbDf7tK1wJAK7UGFRmGDN8sz4KmbbDiVRh6YicaB/5oRSVTpuV47PdJpYlOl3SJ0RiK1Q==",
2567 "requires": { 2567 "requires": {
2568 "vscode-languageserver-protocol": "^3.10.3" 2568 "vscode-languageserver-protocol": "3.13.0"
2569 } 2569 }
2570 }, 2570 },
2571 "vscode-languageserver-protocol": { 2571 "vscode-languageserver-protocol": {
@@ -2573,7 +2573,7 @@
2573 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.13.0.tgz", 2573 "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.13.0.tgz",
2574 "integrity": "sha512-2ZGKwI+P2ovQll2PGAp+2UfJH+FK9eait86VBUdkPd9HRlm8e58aYT9pV/NYanHOcp3pL6x2yTLVCFMcTer0mg==", 2574 "integrity": "sha512-2ZGKwI+P2ovQll2PGAp+2UfJH+FK9eait86VBUdkPd9HRlm8e58aYT9pV/NYanHOcp3pL6x2yTLVCFMcTer0mg==",
2575 "requires": { 2575 "requires": {
2576 "vscode-jsonrpc": "^4.0.0", 2576 "vscode-jsonrpc": "4.0.0",
2577 "vscode-languageserver-types": "3.13.0" 2577 "vscode-languageserver-types": "3.13.0"
2578 } 2578 }
2579 }, 2579 },
@@ -2588,10 +2588,10 @@
2588 "integrity": "sha1-qrNUbfJFHs2JTgcbuZtd8Zxfp48=", 2588 "integrity": "sha1-qrNUbfJFHs2JTgcbuZtd8Zxfp48=",
2589 "dev": true, 2589 "dev": true,
2590 "requires": { 2590 "requires": {
2591 "q": "^1.0.1", 2591 "q": "1.5.1",
2592 "tunnel": "0.0.4", 2592 "tunnel": "0.0.4",
2593 "typed-rest-client": "^0.9.0", 2593 "typed-rest-client": "0.9.0",
2594 "underscore": "^1.8.3" 2594 "underscore": "1.9.1"
2595 } 2595 }
2596 }, 2596 },
2597 "wrappy": { 2597 "wrappy": {
@@ -2612,8 +2612,8 @@
2612 "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 2612 "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
2613 "dev": true, 2613 "dev": true,
2614 "requires": { 2614 "requires": {
2615 "buffer-crc32": "~0.2.3", 2615 "buffer-crc32": "0.2.13",
2616 "fd-slicer": "~1.1.0" 2616 "fd-slicer": "1.1.0"
2617 } 2617 }
2618 }, 2618 },
2619 "yazl": { 2619 "yazl": {
@@ -2622,7 +2622,7 @@
2622 "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=", 2622 "integrity": "sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=",
2623 "dev": true, 2623 "dev": true,
2624 "requires": { 2624 "requires": {
2625 "buffer-crc32": "~0.2.3" 2625 "buffer-crc32": "0.2.13"
2626 } 2626 }
2627 } 2627 }
2628 } 2628 }
diff --git a/editors/code/src/commands/index.ts b/editors/code/src/commands/index.ts
index 2496c7ff8..d78a64c3e 100644
--- a/editors/code/src/commands/index.ts
+++ b/editors/code/src/commands/index.ts
@@ -2,6 +2,7 @@ import * as applySourceChange from './apply_source_change';
2import * as extendSelection from './extend_selection'; 2import * as extendSelection from './extend_selection';
3import * as joinLines from './join_lines'; 3import * as joinLines from './join_lines';
4import * as matchingBrace from './matching_brace'; 4import * as matchingBrace from './matching_brace';
5import * as on_enter from './on_enter';
5import * as parentModule from './parent_module'; 6import * as parentModule from './parent_module';
6import * as runnables from './runnables'; 7import * as runnables from './runnables';
7import * as syntaxTree from './syntaxTree'; 8import * as syntaxTree from './syntaxTree';
@@ -13,5 +14,6 @@ export {
13 matchingBrace, 14 matchingBrace,
14 parentModule, 15 parentModule,
15 runnables, 16 runnables,
16 syntaxTree 17 syntaxTree,
18 on_enter,
17}; 19};
diff --git a/editors/code/src/commands/on_enter.ts b/editors/code/src/commands/on_enter.ts
new file mode 100644
index 000000000..2666797fe
--- /dev/null
+++ b/editors/code/src/commands/on_enter.ts
@@ -0,0 +1,29 @@
1import * as vscode from 'vscode';
2import * as lc from 'vscode-languageclient';
3import { Server } from '../server';
4import { handle as applySourceChange, SourceChange } from './apply_source_change';
5
6interface OnEnterParams {
7 textDocument: lc.TextDocumentIdentifier;
8 position: lc.Position;
9}
10
11export async function handle(event: { text: string }): Promise<boolean> {
12 const editor = vscode.window.activeTextEditor;
13 if (editor == null || editor.document.languageId !== 'rust' || event.text !== '\n') {
14 return false;
15 }
16 const request: OnEnterParams = {
17 textDocument: { uri: editor.document.uri.toString() },
18 position: Server.client.code2ProtocolConverter.asPosition(editor.selection.active),
19 };
20 const change = await Server.client.sendRequest<undefined | SourceChange>(
21 'm/onEnter',
22 request
23 );
24 if (!change) {
25 return false;
26 }
27 await applySourceChange(change);
28 return true
29}
diff --git a/editors/code/src/extension.ts b/editors/code/src/extension.ts
index 81e1107a0..3e5767535 100644
--- a/editors/code/src/extension.ts
+++ b/editors/code/src/extension.ts
@@ -15,6 +15,23 @@ export function activate(context: vscode.ExtensionContext) {
15 function registerCommand(name: string, f: any) { 15 function registerCommand(name: string, f: any) {
16 disposeOnDeactivation(vscode.commands.registerCommand(name, f)); 16 disposeOnDeactivation(vscode.commands.registerCommand(name, f));
17 } 17 }
18 function overrideCommand(
19
20 name: string,
21 f: (...args: any[]) => Promise<boolean>,
22 ) {
23 const defaultCmd = `default:${name}`;
24 const original = async (...args: any[]) => await vscode.commands.executeCommand(defaultCmd, ...args);
25 registerCommand(name, async (...args: any[]) => {
26 const editor = vscode.window.activeTextEditor;
27 if (!editor || !editor.document || editor.document.languageId !== 'rust') {
28 return await original(...args);
29 }
30 if (!await f(...args)) {
31 return await original(...args);
32 }
33 })
34 }
18 35
19 // Commands are requests from vscode to the language server 36 // Commands are requests from vscode to the language server
20 registerCommand('ra-lsp.syntaxTree', commands.syntaxTree.handle); 37 registerCommand('ra-lsp.syntaxTree', commands.syntaxTree.handle);
@@ -27,11 +44,12 @@ export function activate(context: vscode.ExtensionContext) {
27 'ra-lsp.applySourceChange', 44 'ra-lsp.applySourceChange',
28 commands.applySourceChange.handle 45 commands.applySourceChange.handle
29 ); 46 );
47 overrideCommand('type', commands.on_enter.handle)
30 48
31 // Notifications are events triggered by the language server 49 // Notifications are events triggered by the language server
32 const allNotifications: Iterable< 50 const allNotifications: Iterable<
33 [string, lc.GenericNotificationHandler] 51 [string, lc.GenericNotificationHandler]
34 > = [['m/publishDecorations', notifications.publishDecorations.handle]]; 52 > = [['m/publishDecorations', notifications.publishDecorations.handle]];
35 53
36 // The events below are plain old javascript events, triggered and handled by vscode 54 // The events below are plain old javascript events, triggered and handled by vscode
37 vscode.window.onDidChangeActiveTextEditor( 55 vscode.window.onDidChangeActiveTextEditor(