diff options
-rw-r--r-- | crates/ra_assists/src/handlers/auto_import.rs | 12 | ||||
-rw-r--r-- | crates/ra_hir_expand/src/diagnostics.rs | 2 | ||||
-rw-r--r-- | crates/ra_hir_ty/src/diagnostics.rs | 10 | ||||
-rw-r--r-- | crates/ra_ide_db/src/imports_locator.rs | 88 | ||||
-rw-r--r-- | crates/ra_ssr/src/lib.rs | 162 | ||||
-rw-r--r-- | crates/ra_ssr/src/matching.rs | 10 | ||||
-rw-r--r-- | crates/ra_ssr/src/replacing.rs | 6 | ||||
-rw-r--r-- | crates/ra_ssr/src/tests.rs | 189 | ||||
-rw-r--r-- | crates/rust-analyzer/src/bin/args.rs | 36 | ||||
-rw-r--r-- | crates/rust-analyzer/src/bin/main.rs | 3 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli.rs | 2 | ||||
-rw-r--r-- | crates/rust-analyzer/src/cli/ssr.rs | 40 | ||||
-rw-r--r-- | editors/code/package-lock.json | 966 | ||||
-rw-r--r-- | editors/code/package.json | 22 | ||||
-rw-r--r-- | editors/code/rollup.config.js | 3 |
15 files changed, 729 insertions, 822 deletions
diff --git a/crates/ra_assists/src/handlers/auto_import.rs b/crates/ra_assists/src/handlers/auto_import.rs index e8060a491..7b6499a08 100644 --- a/crates/ra_assists/src/handlers/auto_import.rs +++ b/crates/ra_assists/src/handlers/auto_import.rs | |||
@@ -5,7 +5,7 @@ use hir::{ | |||
5 | AsAssocItem, AssocItemContainer, ModPath, Module, ModuleDef, PathResolution, Semantics, Trait, | 5 | AsAssocItem, AssocItemContainer, ModPath, Module, ModuleDef, PathResolution, Semantics, Trait, |
6 | Type, | 6 | Type, |
7 | }; | 7 | }; |
8 | use ra_ide_db::{imports_locator::ImportsLocator, RootDatabase}; | 8 | use ra_ide_db::{imports_locator, RootDatabase}; |
9 | use ra_prof::profile; | 9 | use ra_prof::profile; |
10 | use ra_syntax::{ | 10 | use ra_syntax::{ |
11 | ast::{self, AstNode}, | 11 | ast::{self, AstNode}, |
@@ -35,8 +35,8 @@ use crate::{utils::insert_use_statement, AssistContext, AssistId, Assists, Group | |||
35 | // # pub mod std { pub mod collections { pub struct HashMap { } } } | 35 | // # pub mod std { pub mod collections { pub struct HashMap { } } } |
36 | // ``` | 36 | // ``` |
37 | pub(crate) fn auto_import(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { | 37 | pub(crate) fn auto_import(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { |
38 | let auto_import_assets = AutoImportAssets::new(&ctx)?; | 38 | let auto_import_assets = AutoImportAssets::new(ctx)?; |
39 | let proposed_imports = auto_import_assets.search_for_imports(ctx.db()); | 39 | let proposed_imports = auto_import_assets.search_for_imports(ctx); |
40 | if proposed_imports.is_empty() { | 40 | if proposed_imports.is_empty() { |
41 | return None; | 41 | return None; |
42 | } | 42 | } |
@@ -127,11 +127,11 @@ impl AutoImportAssets { | |||
127 | GroupLabel(name) | 127 | GroupLabel(name) |
128 | } | 128 | } |
129 | 129 | ||
130 | fn search_for_imports(&self, db: &RootDatabase) -> BTreeSet<ModPath> { | 130 | fn search_for_imports(&self, ctx: &AssistContext) -> BTreeSet<ModPath> { |
131 | let _p = profile("auto_import::search_for_imports"); | 131 | let _p = profile("auto_import::search_for_imports"); |
132 | let db = ctx.db(); | ||
132 | let current_crate = self.module_with_name_to_import.krate(); | 133 | let current_crate = self.module_with_name_to_import.krate(); |
133 | ImportsLocator::new(db, current_crate) | 134 | imports_locator::find_imports(&ctx.sema, current_crate, &self.get_search_query()) |
134 | .find_imports(&self.get_search_query()) | ||
135 | .into_iter() | 135 | .into_iter() |
136 | .filter_map(|candidate| match &self.import_candidate { | 136 | .filter_map(|candidate| match &self.import_candidate { |
137 | ImportCandidate::TraitAssocItem(assoc_item_type, _) => { | 137 | ImportCandidate::TraitAssocItem(assoc_item_type, _) => { |
diff --git a/crates/ra_hir_expand/src/diagnostics.rs b/crates/ra_hir_expand/src/diagnostics.rs index 99209c6e8..545cff9bd 100644 --- a/crates/ra_hir_expand/src/diagnostics.rs +++ b/crates/ra_hir_expand/src/diagnostics.rs | |||
@@ -28,7 +28,7 @@ pub trait Diagnostic: Any + Send + Sync + fmt::Debug + 'static { | |||
28 | 28 | ||
29 | pub trait AstDiagnostic { | 29 | pub trait AstDiagnostic { |
30 | type AST; | 30 | type AST; |
31 | fn ast(&self, db: &impl AstDatabase) -> Self::AST; | 31 | fn ast(&self, db: &dyn AstDatabase) -> Self::AST; |
32 | } | 32 | } |
33 | 33 | ||
34 | impl dyn Diagnostic { | 34 | impl dyn Diagnostic { |
diff --git a/crates/ra_hir_ty/src/diagnostics.rs b/crates/ra_hir_ty/src/diagnostics.rs index a59efb347..0289911de 100644 --- a/crates/ra_hir_ty/src/diagnostics.rs +++ b/crates/ra_hir_ty/src/diagnostics.rs | |||
@@ -32,7 +32,7 @@ impl Diagnostic for NoSuchField { | |||
32 | impl AstDiagnostic for NoSuchField { | 32 | impl AstDiagnostic for NoSuchField { |
33 | type AST = ast::RecordField; | 33 | type AST = ast::RecordField; |
34 | 34 | ||
35 | fn ast(&self, db: &impl AstDatabase) -> Self::AST { | 35 | fn ast(&self, db: &dyn AstDatabase) -> Self::AST { |
36 | let root = db.parse_or_expand(self.source().file_id).unwrap(); | 36 | let root = db.parse_or_expand(self.source().file_id).unwrap(); |
37 | let node = self.source().value.to_node(&root); | 37 | let node = self.source().value.to_node(&root); |
38 | ast::RecordField::cast(node).unwrap() | 38 | ast::RecordField::cast(node).unwrap() |
@@ -65,7 +65,7 @@ impl Diagnostic for MissingFields { | |||
65 | impl AstDiagnostic for MissingFields { | 65 | impl AstDiagnostic for MissingFields { |
66 | type AST = ast::RecordFieldList; | 66 | type AST = ast::RecordFieldList; |
67 | 67 | ||
68 | fn ast(&self, db: &impl AstDatabase) -> Self::AST { | 68 | fn ast(&self, db: &dyn AstDatabase) -> Self::AST { |
69 | let root = db.parse_or_expand(self.source().file_id).unwrap(); | 69 | let root = db.parse_or_expand(self.source().file_id).unwrap(); |
70 | let node = self.source().value.to_node(&root); | 70 | let node = self.source().value.to_node(&root); |
71 | ast::RecordFieldList::cast(node).unwrap() | 71 | ast::RecordFieldList::cast(node).unwrap() |
@@ -135,7 +135,7 @@ impl Diagnostic for MissingOkInTailExpr { | |||
135 | impl AstDiagnostic for MissingOkInTailExpr { | 135 | impl AstDiagnostic for MissingOkInTailExpr { |
136 | type AST = ast::Expr; | 136 | type AST = ast::Expr; |
137 | 137 | ||
138 | fn ast(&self, db: &impl AstDatabase) -> Self::AST { | 138 | fn ast(&self, db: &dyn AstDatabase) -> Self::AST { |
139 | let root = db.parse_or_expand(self.file).unwrap(); | 139 | let root = db.parse_or_expand(self.file).unwrap(); |
140 | let node = self.source().value.to_node(&root); | 140 | let node = self.source().value.to_node(&root); |
141 | ast::Expr::cast(node).unwrap() | 141 | ast::Expr::cast(node).unwrap() |
@@ -163,7 +163,7 @@ impl Diagnostic for BreakOutsideOfLoop { | |||
163 | impl AstDiagnostic for BreakOutsideOfLoop { | 163 | impl AstDiagnostic for BreakOutsideOfLoop { |
164 | type AST = ast::Expr; | 164 | type AST = ast::Expr; |
165 | 165 | ||
166 | fn ast(&self, db: &impl AstDatabase) -> Self::AST { | 166 | fn ast(&self, db: &dyn AstDatabase) -> Self::AST { |
167 | let root = db.parse_or_expand(self.file).unwrap(); | 167 | let root = db.parse_or_expand(self.file).unwrap(); |
168 | let node = self.source().value.to_node(&root); | 168 | let node = self.source().value.to_node(&root); |
169 | ast::Expr::cast(node).unwrap() | 169 | ast::Expr::cast(node).unwrap() |
@@ -191,7 +191,7 @@ impl Diagnostic for MissingUnsafe { | |||
191 | impl AstDiagnostic for MissingUnsafe { | 191 | impl AstDiagnostic for MissingUnsafe { |
192 | type AST = ast::Expr; | 192 | type AST = ast::Expr; |
193 | 193 | ||
194 | fn ast(&self, db: &impl AstDatabase) -> Self::AST { | 194 | fn ast(&self, db: &dyn AstDatabase) -> Self::AST { |
195 | let root = db.parse_or_expand(self.source().file_id).unwrap(); | 195 | let root = db.parse_or_expand(self.source().file_id).unwrap(); |
196 | let node = self.source().value.to_node(&root); | 196 | let node = self.source().value.to_node(&root); |
197 | ast::Expr::cast(node).unwrap() | 197 | ast::Expr::cast(node).unwrap() |
diff --git a/crates/ra_ide_db/src/imports_locator.rs b/crates/ra_ide_db/src/imports_locator.rs index fff112e66..1fba71ff8 100644 --- a/crates/ra_ide_db/src/imports_locator.rs +++ b/crates/ra_ide_db/src/imports_locator.rs | |||
@@ -13,57 +13,53 @@ use crate::{ | |||
13 | use either::Either; | 13 | use either::Either; |
14 | use rustc_hash::FxHashSet; | 14 | use rustc_hash::FxHashSet; |
15 | 15 | ||
16 | pub struct ImportsLocator<'a> { | 16 | pub fn find_imports<'a>( |
17 | sema: Semantics<'a, RootDatabase>, | 17 | sema: &Semantics<'a, RootDatabase>, |
18 | krate: Crate, | 18 | krate: Crate, |
19 | } | 19 | name_to_import: &str, |
20 | 20 | ) -> Vec<Either<ModuleDef, MacroDef>> { | |
21 | impl<'a> ImportsLocator<'a> { | 21 | let _p = profile("search_for_imports"); |
22 | pub fn new(db: &'a RootDatabase, krate: Crate) -> Self { | 22 | let db = sema.db; |
23 | Self { sema: Semantics::new(db), krate } | ||
24 | } | ||
25 | 23 | ||
26 | pub fn find_imports(&mut self, name_to_import: &str) -> Vec<Either<ModuleDef, MacroDef>> { | 24 | // Query dependencies first. |
27 | let _p = profile("search_for_imports"); | 25 | let mut candidates: FxHashSet<_> = |
28 | let db = self.sema.db; | 26 | krate.query_external_importables(db, name_to_import).collect(); |
29 | 27 | ||
30 | // Query dependencies first. | 28 | // Query the local crate using the symbol index. |
31 | let mut candidates: FxHashSet<_> = | 29 | let local_results = { |
32 | self.krate.query_external_importables(db, name_to_import).collect(); | 30 | let mut query = Query::new(name_to_import.to_string()); |
31 | query.exact(); | ||
32 | query.limit(40); | ||
33 | symbol_index::crate_symbols(db, krate.into(), query) | ||
34 | }; | ||
33 | 35 | ||
34 | // Query the local crate using the symbol index. | 36 | candidates.extend( |
35 | let local_results = { | 37 | local_results |
36 | let mut query = Query::new(name_to_import.to_string()); | 38 | .into_iter() |
37 | query.exact(); | 39 | .filter_map(|import_candidate| get_name_definition(sema, &import_candidate)) |
38 | query.limit(40); | 40 | .filter_map(|name_definition_to_import| match name_definition_to_import { |
39 | symbol_index::crate_symbols(db, self.krate.into(), query) | 41 | Definition::ModuleDef(module_def) => Some(Either::Left(module_def)), |
40 | }; | 42 | Definition::Macro(macro_def) => Some(Either::Right(macro_def)), |
43 | _ => None, | ||
44 | }), | ||
45 | ); | ||
41 | 46 | ||
42 | candidates.extend( | 47 | candidates.into_iter().collect() |
43 | local_results | 48 | } |
44 | .into_iter() | ||
45 | .filter_map(|import_candidate| self.get_name_definition(&import_candidate)) | ||
46 | .filter_map(|name_definition_to_import| match name_definition_to_import { | ||
47 | Definition::ModuleDef(module_def) => Some(Either::Left(module_def)), | ||
48 | Definition::Macro(macro_def) => Some(Either::Right(macro_def)), | ||
49 | _ => None, | ||
50 | }), | ||
51 | ); | ||
52 | |||
53 | candidates.into_iter().collect() | ||
54 | } | ||
55 | 49 | ||
56 | fn get_name_definition(&mut self, import_candidate: &FileSymbol) -> Option<Definition> { | 50 | fn get_name_definition<'a>( |
57 | let _p = profile("get_name_definition"); | 51 | sema: &Semantics<'a, RootDatabase>, |
58 | let file_id = import_candidate.file_id; | 52 | import_candidate: &FileSymbol, |
53 | ) -> Option<Definition> { | ||
54 | let _p = profile("get_name_definition"); | ||
55 | let file_id = import_candidate.file_id; | ||
59 | 56 | ||
60 | let candidate_node = import_candidate.ptr.to_node(self.sema.parse(file_id).syntax()); | 57 | let candidate_node = import_candidate.ptr.to_node(sema.parse(file_id).syntax()); |
61 | let candidate_name_node = if candidate_node.kind() != NAME { | 58 | let candidate_name_node = if candidate_node.kind() != NAME { |
62 | candidate_node.children().find(|it| it.kind() == NAME)? | 59 | candidate_node.children().find(|it| it.kind() == NAME)? |
63 | } else { | 60 | } else { |
64 | candidate_node | 61 | candidate_node |
65 | }; | 62 | }; |
66 | let name = ast::Name::cast(candidate_name_node)?; | 63 | let name = ast::Name::cast(candidate_name_node)?; |
67 | classify_name(&self.sema, &name)?.into_definition() | 64 | classify_name(sema, &name)?.into_definition() |
68 | } | ||
69 | } | 65 | } |
diff --git a/crates/ra_ssr/src/lib.rs b/crates/ra_ssr/src/lib.rs index e148f4564..422e15ee6 100644 --- a/crates/ra_ssr/src/lib.rs +++ b/crates/ra_ssr/src/lib.rs | |||
@@ -9,10 +9,11 @@ mod replacing; | |||
9 | #[cfg(test)] | 9 | #[cfg(test)] |
10 | mod tests; | 10 | mod tests; |
11 | 11 | ||
12 | use crate::matching::Match; | 12 | pub use crate::matching::Match; |
13 | use crate::matching::{record_match_fails_reasons_scope, MatchFailureReason}; | ||
13 | use hir::Semantics; | 14 | use hir::Semantics; |
14 | use ra_db::{FileId, FileRange}; | 15 | use ra_db::{FileId, FileRange}; |
15 | use ra_syntax::{ast, AstNode, SmolStr, SyntaxNode}; | 16 | use ra_syntax::{ast, AstNode, SmolStr, SyntaxKind, SyntaxNode, TextRange}; |
16 | use ra_text_edit::TextEdit; | 17 | use ra_text_edit::TextEdit; |
17 | use rustc_hash::FxHashMap; | 18 | use rustc_hash::FxHashMap; |
18 | 19 | ||
@@ -26,7 +27,7 @@ pub struct SsrRule { | |||
26 | } | 27 | } |
27 | 28 | ||
28 | #[derive(Debug)] | 29 | #[derive(Debug)] |
29 | struct SsrPattern { | 30 | pub struct SsrPattern { |
30 | raw: parsing::RawSearchPattern, | 31 | raw: parsing::RawSearchPattern, |
31 | /// Placeholders keyed by the stand-in ident that we use in Rust source code. | 32 | /// Placeholders keyed by the stand-in ident that we use in Rust source code. |
32 | placeholders_by_stand_in: FxHashMap<SmolStr, parsing::Placeholder>, | 33 | placeholders_by_stand_in: FxHashMap<SmolStr, parsing::Placeholder>, |
@@ -45,7 +46,7 @@ pub struct SsrError(String); | |||
45 | 46 | ||
46 | #[derive(Debug, Default)] | 47 | #[derive(Debug, Default)] |
47 | pub struct SsrMatches { | 48 | pub struct SsrMatches { |
48 | matches: Vec<Match>, | 49 | pub matches: Vec<Match>, |
49 | } | 50 | } |
50 | 51 | ||
51 | /// Searches a crate for pattern matches and possibly replaces them with something else. | 52 | /// Searches a crate for pattern matches and possibly replaces them with something else. |
@@ -64,6 +65,12 @@ impl<'db> MatchFinder<'db> { | |||
64 | self.rules.push(rule); | 65 | self.rules.push(rule); |
65 | } | 66 | } |
66 | 67 | ||
68 | /// Adds a search pattern. For use if you intend to only call `find_matches_in_file`. If you | ||
69 | /// intend to do replacement, use `add_rule` instead. | ||
70 | pub fn add_search_pattern(&mut self, pattern: SsrPattern) { | ||
71 | self.add_rule(SsrRule { pattern, template: "()".parse().unwrap() }) | ||
72 | } | ||
73 | |||
67 | pub fn edits_for_file(&self, file_id: FileId) -> Option<TextEdit> { | 74 | pub fn edits_for_file(&self, file_id: FileId) -> Option<TextEdit> { |
68 | let matches = self.find_matches_in_file(file_id); | 75 | let matches = self.find_matches_in_file(file_id); |
69 | if matches.matches.is_empty() { | 76 | if matches.matches.is_empty() { |
@@ -74,7 +81,7 @@ impl<'db> MatchFinder<'db> { | |||
74 | } | 81 | } |
75 | } | 82 | } |
76 | 83 | ||
77 | fn find_matches_in_file(&self, file_id: FileId) -> SsrMatches { | 84 | pub fn find_matches_in_file(&self, file_id: FileId) -> SsrMatches { |
78 | let file = self.sema.parse(file_id); | 85 | let file = self.sema.parse(file_id); |
79 | let code = file.syntax(); | 86 | let code = file.syntax(); |
80 | let mut matches = SsrMatches::default(); | 87 | let mut matches = SsrMatches::default(); |
@@ -82,6 +89,32 @@ impl<'db> MatchFinder<'db> { | |||
82 | matches | 89 | matches |
83 | } | 90 | } |
84 | 91 | ||
92 | /// Finds all nodes in `file_id` whose text is exactly equal to `snippet` and attempts to match | ||
93 | /// them, while recording reasons why they don't match. This API is useful for command | ||
94 | /// line-based debugging where providing a range is difficult. | ||
95 | pub fn debug_where_text_equal(&self, file_id: FileId, snippet: &str) -> Vec<MatchDebugInfo> { | ||
96 | use ra_db::SourceDatabaseExt; | ||
97 | let file = self.sema.parse(file_id); | ||
98 | let mut res = Vec::new(); | ||
99 | let file_text = self.sema.db.file_text(file_id); | ||
100 | let mut remaining_text = file_text.as_str(); | ||
101 | let mut base = 0; | ||
102 | let len = snippet.len() as u32; | ||
103 | while let Some(offset) = remaining_text.find(snippet) { | ||
104 | let start = base + offset as u32; | ||
105 | let end = start + len; | ||
106 | self.output_debug_for_nodes_at_range( | ||
107 | file.syntax(), | ||
108 | FileRange { file_id, range: TextRange::new(start.into(), end.into()) }, | ||
109 | &None, | ||
110 | &mut res, | ||
111 | ); | ||
112 | remaining_text = &remaining_text[offset + snippet.len()..]; | ||
113 | base = end; | ||
114 | } | ||
115 | res | ||
116 | } | ||
117 | |||
85 | fn find_matches( | 118 | fn find_matches( |
86 | &self, | 119 | &self, |
87 | code: &SyntaxNode, | 120 | code: &SyntaxNode, |
@@ -128,6 +161,59 @@ impl<'db> MatchFinder<'db> { | |||
128 | self.find_matches(&child, restrict_range, matches_out); | 161 | self.find_matches(&child, restrict_range, matches_out); |
129 | } | 162 | } |
130 | } | 163 | } |
164 | |||
165 | fn output_debug_for_nodes_at_range( | ||
166 | &self, | ||
167 | node: &SyntaxNode, | ||
168 | range: FileRange, | ||
169 | restrict_range: &Option<FileRange>, | ||
170 | out: &mut Vec<MatchDebugInfo>, | ||
171 | ) { | ||
172 | for node in node.children() { | ||
173 | let node_range = self.sema.original_range(&node); | ||
174 | if node_range.file_id != range.file_id || !node_range.range.contains_range(range.range) | ||
175 | { | ||
176 | continue; | ||
177 | } | ||
178 | if node_range.range == range.range { | ||
179 | for rule in &self.rules { | ||
180 | let pattern = | ||
181 | rule.pattern.tree_for_kind_with_reason(node.kind()).map(|p| p.clone()); | ||
182 | out.push(MatchDebugInfo { | ||
183 | matched: matching::get_match(true, rule, &node, restrict_range, &self.sema) | ||
184 | .map_err(|e| MatchFailureReason { | ||
185 | reason: e.reason.unwrap_or_else(|| { | ||
186 | "Match failed, but no reason was given".to_owned() | ||
187 | }), | ||
188 | }), | ||
189 | pattern, | ||
190 | node: node.clone(), | ||
191 | }); | ||
192 | } | ||
193 | } else if let Some(macro_call) = ast::MacroCall::cast(node.clone()) { | ||
194 | if let Some(expanded) = self.sema.expand(¯o_call) { | ||
195 | if let Some(tt) = macro_call.token_tree() { | ||
196 | self.output_debug_for_nodes_at_range( | ||
197 | &expanded, | ||
198 | range, | ||
199 | &Some(self.sema.original_range(tt.syntax())), | ||
200 | out, | ||
201 | ); | ||
202 | } | ||
203 | } | ||
204 | } else { | ||
205 | self.output_debug_for_nodes_at_range(&node, range, restrict_range, out); | ||
206 | } | ||
207 | } | ||
208 | } | ||
209 | } | ||
210 | |||
211 | pub struct MatchDebugInfo { | ||
212 | node: SyntaxNode, | ||
213 | /// Our search pattern parsed as the same kind of syntax node as `node`. e.g. expression, item, | ||
214 | /// etc. Will be absent if the pattern can't be parsed as that kind. | ||
215 | pattern: Result<SyntaxNode, MatchFailureReason>, | ||
216 | matched: Result<Match, MatchFailureReason>, | ||
131 | } | 217 | } |
132 | 218 | ||
133 | impl std::fmt::Display for SsrError { | 219 | impl std::fmt::Display for SsrError { |
@@ -136,4 +222,70 @@ impl std::fmt::Display for SsrError { | |||
136 | } | 222 | } |
137 | } | 223 | } |
138 | 224 | ||
225 | impl std::fmt::Debug for MatchDebugInfo { | ||
226 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||
227 | write!(f, "========= PATTERN ==========\n")?; | ||
228 | match &self.pattern { | ||
229 | Ok(pattern) => { | ||
230 | write!(f, "{:#?}", pattern)?; | ||
231 | } | ||
232 | Err(err) => { | ||
233 | write!(f, "{}", err.reason)?; | ||
234 | } | ||
235 | } | ||
236 | write!( | ||
237 | f, | ||
238 | "\n============ AST ===========\n\ | ||
239 | {:#?}\n============================\n", | ||
240 | self.node | ||
241 | )?; | ||
242 | match &self.matched { | ||
243 | Ok(_) => write!(f, "Node matched")?, | ||
244 | Err(reason) => write!(f, "Node failed to match because: {}", reason.reason)?, | ||
245 | } | ||
246 | Ok(()) | ||
247 | } | ||
248 | } | ||
249 | |||
250 | impl SsrPattern { | ||
251 | fn tree_for_kind_with_reason( | ||
252 | &self, | ||
253 | kind: SyntaxKind, | ||
254 | ) -> Result<&SyntaxNode, MatchFailureReason> { | ||
255 | record_match_fails_reasons_scope(true, || self.tree_for_kind(kind)) | ||
256 | .map_err(|e| MatchFailureReason { reason: e.reason.unwrap() }) | ||
257 | } | ||
258 | } | ||
259 | |||
260 | impl SsrMatches { | ||
261 | /// Returns `self` with any nested matches removed and made into top-level matches. | ||
262 | pub fn flattened(self) -> SsrMatches { | ||
263 | let mut out = SsrMatches::default(); | ||
264 | self.flatten_into(&mut out); | ||
265 | out | ||
266 | } | ||
267 | |||
268 | fn flatten_into(self, out: &mut SsrMatches) { | ||
269 | for mut m in self.matches { | ||
270 | for p in m.placeholder_values.values_mut() { | ||
271 | std::mem::replace(&mut p.inner_matches, SsrMatches::default()).flatten_into(out); | ||
272 | } | ||
273 | out.matches.push(m); | ||
274 | } | ||
275 | } | ||
276 | } | ||
277 | |||
278 | impl Match { | ||
279 | pub fn matched_text(&self) -> String { | ||
280 | self.matched_node.text().to_string() | ||
281 | } | ||
282 | } | ||
283 | |||
139 | impl std::error::Error for SsrError {} | 284 | impl std::error::Error for SsrError {} |
285 | |||
286 | #[cfg(test)] | ||
287 | impl MatchDebugInfo { | ||
288 | pub(crate) fn match_failure_reason(&self) -> Option<&str> { | ||
289 | self.matched.as_ref().err().map(|r| r.reason.as_str()) | ||
290 | } | ||
291 | } | ||
diff --git a/crates/ra_ssr/src/matching.rs b/crates/ra_ssr/src/matching.rs index 54413a151..53d802e77 100644 --- a/crates/ra_ssr/src/matching.rs +++ b/crates/ra_ssr/src/matching.rs | |||
@@ -8,9 +8,7 @@ use crate::{ | |||
8 | use hir::Semantics; | 8 | use hir::Semantics; |
9 | use ra_db::FileRange; | 9 | use ra_db::FileRange; |
10 | use ra_syntax::ast::{AstNode, AstToken}; | 10 | use ra_syntax::ast::{AstNode, AstToken}; |
11 | use ra_syntax::{ | 11 | use ra_syntax::{ast, SyntaxElement, SyntaxElementChildren, SyntaxKind, SyntaxNode, SyntaxToken}; |
12 | ast, SyntaxElement, SyntaxElementChildren, SyntaxKind, SyntaxNode, SyntaxToken, TextRange, | ||
13 | }; | ||
14 | use rustc_hash::FxHashMap; | 12 | use rustc_hash::FxHashMap; |
15 | use std::{cell::Cell, iter::Peekable}; | 13 | use std::{cell::Cell, iter::Peekable}; |
16 | 14 | ||
@@ -44,8 +42,8 @@ macro_rules! fail_match { | |||
44 | 42 | ||
45 | /// Information about a match that was found. | 43 | /// Information about a match that was found. |
46 | #[derive(Debug)] | 44 | #[derive(Debug)] |
47 | pub(crate) struct Match { | 45 | pub struct Match { |
48 | pub(crate) range: TextRange, | 46 | pub(crate) range: FileRange, |
49 | pub(crate) matched_node: SyntaxNode, | 47 | pub(crate) matched_node: SyntaxNode, |
50 | pub(crate) placeholder_values: FxHashMap<Var, PlaceholderMatch>, | 48 | pub(crate) placeholder_values: FxHashMap<Var, PlaceholderMatch>, |
51 | pub(crate) ignored_comments: Vec<ast::Comment>, | 49 | pub(crate) ignored_comments: Vec<ast::Comment>, |
@@ -135,7 +133,7 @@ impl<'db, 'sema> MatchState<'db, 'sema> { | |||
135 | match_state.attempt_match_node(&match_inputs, &pattern_tree, code)?; | 133 | match_state.attempt_match_node(&match_inputs, &pattern_tree, code)?; |
136 | match_state.validate_range(&sema.original_range(code))?; | 134 | match_state.validate_range(&sema.original_range(code))?; |
137 | match_state.match_out = Some(Match { | 135 | match_state.match_out = Some(Match { |
138 | range: sema.original_range(code).range, | 136 | range: sema.original_range(code), |
139 | matched_node: code.clone(), | 137 | matched_node: code.clone(), |
140 | placeholder_values: FxHashMap::default(), | 138 | placeholder_values: FxHashMap::default(), |
141 | ignored_comments: Vec::new(), | 139 | ignored_comments: Vec::new(), |
diff --git a/crates/ra_ssr/src/replacing.rs b/crates/ra_ssr/src/replacing.rs index 70ce1c185..e43cc5167 100644 --- a/crates/ra_ssr/src/replacing.rs +++ b/crates/ra_ssr/src/replacing.rs | |||
@@ -21,8 +21,10 @@ fn matches_to_edit_at_offset( | |||
21 | ) -> TextEdit { | 21 | ) -> TextEdit { |
22 | let mut edit_builder = ra_text_edit::TextEditBuilder::default(); | 22 | let mut edit_builder = ra_text_edit::TextEditBuilder::default(); |
23 | for m in &matches.matches { | 23 | for m in &matches.matches { |
24 | edit_builder | 24 | edit_builder.replace( |
25 | .replace(m.range.checked_sub(relative_start).unwrap(), render_replace(m, file_src)); | 25 | m.range.range.checked_sub(relative_start).unwrap(), |
26 | render_replace(m, file_src), | ||
27 | ); | ||
26 | } | 28 | } |
27 | edit_builder.finish() | 29 | edit_builder.finish() |
28 | } | 30 | } |
diff --git a/crates/ra_ssr/src/tests.rs b/crates/ra_ssr/src/tests.rs index 57b2f50b2..c692c97e2 100644 --- a/crates/ra_ssr/src/tests.rs +++ b/crates/ra_ssr/src/tests.rs | |||
@@ -1,150 +1,5 @@ | |||
1 | use crate::matching::MatchFailureReason; | 1 | use crate::{MatchFinder, SsrRule}; |
2 | use crate::{matching, Match, MatchFinder, SsrMatches, SsrPattern, SsrRule}; | 2 | use ra_db::{FileId, SourceDatabaseExt}; |
3 | use matching::record_match_fails_reasons_scope; | ||
4 | use ra_db::{FileId, FileRange, SourceDatabaseExt}; | ||
5 | use ra_syntax::ast::AstNode; | ||
6 | use ra_syntax::{ast, SyntaxKind, SyntaxNode, TextRange}; | ||
7 | |||
8 | struct MatchDebugInfo { | ||
9 | node: SyntaxNode, | ||
10 | /// Our search pattern parsed as the same kind of syntax node as `node`. e.g. expression, item, | ||
11 | /// etc. Will be absent if the pattern can't be parsed as that kind. | ||
12 | pattern: Result<SyntaxNode, MatchFailureReason>, | ||
13 | matched: Result<Match, MatchFailureReason>, | ||
14 | } | ||
15 | |||
16 | impl SsrPattern { | ||
17 | pub(crate) fn tree_for_kind_with_reason( | ||
18 | &self, | ||
19 | kind: SyntaxKind, | ||
20 | ) -> Result<&SyntaxNode, MatchFailureReason> { | ||
21 | record_match_fails_reasons_scope(true, || self.tree_for_kind(kind)) | ||
22 | .map_err(|e| MatchFailureReason { reason: e.reason.unwrap() }) | ||
23 | } | ||
24 | } | ||
25 | |||
26 | impl std::fmt::Debug for MatchDebugInfo { | ||
27 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||
28 | write!(f, "========= PATTERN ==========\n")?; | ||
29 | match &self.pattern { | ||
30 | Ok(pattern) => { | ||
31 | write!(f, "{:#?}", pattern)?; | ||
32 | } | ||
33 | Err(err) => { | ||
34 | write!(f, "{}", err.reason)?; | ||
35 | } | ||
36 | } | ||
37 | write!( | ||
38 | f, | ||
39 | "\n============ AST ===========\n\ | ||
40 | {:#?}\n============================", | ||
41 | self.node | ||
42 | )?; | ||
43 | match &self.matched { | ||
44 | Ok(_) => write!(f, "Node matched")?, | ||
45 | Err(reason) => write!(f, "Node failed to match because: {}", reason.reason)?, | ||
46 | } | ||
47 | Ok(()) | ||
48 | } | ||
49 | } | ||
50 | |||
51 | impl SsrMatches { | ||
52 | /// Returns `self` with any nested matches removed and made into top-level matches. | ||
53 | pub(crate) fn flattened(self) -> SsrMatches { | ||
54 | let mut out = SsrMatches::default(); | ||
55 | self.flatten_into(&mut out); | ||
56 | out | ||
57 | } | ||
58 | |||
59 | fn flatten_into(self, out: &mut SsrMatches) { | ||
60 | for mut m in self.matches { | ||
61 | for p in m.placeholder_values.values_mut() { | ||
62 | std::mem::replace(&mut p.inner_matches, SsrMatches::default()).flatten_into(out); | ||
63 | } | ||
64 | out.matches.push(m); | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | |||
69 | impl Match { | ||
70 | pub(crate) fn matched_text(&self) -> String { | ||
71 | self.matched_node.text().to_string() | ||
72 | } | ||
73 | } | ||
74 | |||
75 | impl<'db> MatchFinder<'db> { | ||
76 | /// Adds a search pattern. For use if you intend to only call `find_matches_in_file`. If you | ||
77 | /// intend to do replacement, use `add_rule` instead. | ||
78 | fn add_search_pattern(&mut self, pattern: SsrPattern) { | ||
79 | self.add_rule(SsrRule { pattern, template: "()".parse().unwrap() }) | ||
80 | } | ||
81 | |||
82 | /// Finds all nodes in `file_id` whose text is exactly equal to `snippet` and attempts to match | ||
83 | /// them, while recording reasons why they don't match. This API is useful for command | ||
84 | /// line-based debugging where providing a range is difficult. | ||
85 | fn debug_where_text_equal(&self, file_id: FileId, snippet: &str) -> Vec<MatchDebugInfo> { | ||
86 | let file = self.sema.parse(file_id); | ||
87 | let mut res = Vec::new(); | ||
88 | let file_text = self.sema.db.file_text(file_id); | ||
89 | let mut remaining_text = file_text.as_str(); | ||
90 | let mut base = 0; | ||
91 | let len = snippet.len() as u32; | ||
92 | while let Some(offset) = remaining_text.find(snippet) { | ||
93 | let start = base + offset as u32; | ||
94 | let end = start + len; | ||
95 | self.output_debug_for_nodes_at_range( | ||
96 | file.syntax(), | ||
97 | TextRange::new(start.into(), end.into()), | ||
98 | &None, | ||
99 | &mut res, | ||
100 | ); | ||
101 | remaining_text = &remaining_text[offset + snippet.len()..]; | ||
102 | base = end; | ||
103 | } | ||
104 | res | ||
105 | } | ||
106 | |||
107 | fn output_debug_for_nodes_at_range( | ||
108 | &self, | ||
109 | node: &SyntaxNode, | ||
110 | range: TextRange, | ||
111 | restrict_range: &Option<FileRange>, | ||
112 | out: &mut Vec<MatchDebugInfo>, | ||
113 | ) { | ||
114 | for node in node.children() { | ||
115 | if !node.text_range().contains_range(range) { | ||
116 | continue; | ||
117 | } | ||
118 | if node.text_range() == range { | ||
119 | for rule in &self.rules { | ||
120 | let pattern = | ||
121 | rule.pattern.tree_for_kind_with_reason(node.kind()).map(|p| p.clone()); | ||
122 | out.push(MatchDebugInfo { | ||
123 | matched: matching::get_match(true, rule, &node, restrict_range, &self.sema) | ||
124 | .map_err(|e| MatchFailureReason { | ||
125 | reason: e.reason.unwrap_or_else(|| { | ||
126 | "Match failed, but no reason was given".to_owned() | ||
127 | }), | ||
128 | }), | ||
129 | pattern, | ||
130 | node: node.clone(), | ||
131 | }); | ||
132 | } | ||
133 | } else if let Some(macro_call) = ast::MacroCall::cast(node.clone()) { | ||
134 | if let Some(expanded) = self.sema.expand(¯o_call) { | ||
135 | if let Some(tt) = macro_call.token_tree() { | ||
136 | self.output_debug_for_nodes_at_range( | ||
137 | &expanded, | ||
138 | range, | ||
139 | &Some(self.sema.original_range(tt.syntax())), | ||
140 | out, | ||
141 | ); | ||
142 | } | ||
143 | } | ||
144 | } | ||
145 | } | ||
146 | } | ||
147 | } | ||
148 | 3 | ||
149 | fn parse_error_text(query: &str) -> String { | 4 | fn parse_error_text(query: &str) -> String { |
150 | format!("{}", query.parse::<SsrRule>().unwrap_err()) | 5 | format!("{}", query.parse::<SsrRule>().unwrap_err()) |
@@ -260,6 +115,19 @@ fn assert_no_match(pattern: &str, code: &str) { | |||
260 | assert_matches(pattern, code, &[]); | 115 | assert_matches(pattern, code, &[]); |
261 | } | 116 | } |
262 | 117 | ||
118 | fn assert_match_failure_reason(pattern: &str, code: &str, snippet: &str, expected_reason: &str) { | ||
119 | let (db, file_id) = single_file(code); | ||
120 | let mut match_finder = MatchFinder::new(&db); | ||
121 | match_finder.add_search_pattern(pattern.parse().unwrap()); | ||
122 | let mut reasons = Vec::new(); | ||
123 | for d in match_finder.debug_where_text_equal(file_id, snippet) { | ||
124 | if let Some(reason) = d.match_failure_reason() { | ||
125 | reasons.push(reason.to_owned()); | ||
126 | } | ||
127 | } | ||
128 | assert_eq!(reasons, vec![expected_reason]); | ||
129 | } | ||
130 | |||
263 | #[test] | 131 | #[test] |
264 | fn ssr_function_to_method() { | 132 | fn ssr_function_to_method() { |
265 | assert_ssr_transform( | 133 | assert_ssr_transform( |
@@ -623,3 +491,30 @@ fn preserves_whitespace_within_macro_expansion() { | |||
623 | fn f() {macro1!(4 - 3 - 1 * 2}"#, | 491 | fn f() {macro1!(4 - 3 - 1 * 2}"#, |
624 | ) | 492 | ) |
625 | } | 493 | } |
494 | |||
495 | #[test] | ||
496 | fn match_failure_reasons() { | ||
497 | let code = r#" | ||
498 | macro_rules! foo { | ||
499 | ($a:expr) => { | ||
500 | 1 + $a + 2 | ||
501 | }; | ||
502 | } | ||
503 | fn f1() { | ||
504 | bar(1, 2); | ||
505 | foo!(5 + 43.to_string() + 5); | ||
506 | } | ||
507 | "#; | ||
508 | assert_match_failure_reason( | ||
509 | "bar($a, 3)", | ||
510 | code, | ||
511 | "bar(1, 2)", | ||
512 | r#"Pattern wanted token '3' (INT_NUMBER), but code had token '2' (INT_NUMBER)"#, | ||
513 | ); | ||
514 | assert_match_failure_reason( | ||
515 | "42.to_string()", | ||
516 | code, | ||
517 | "43.to_string()", | ||
518 | r#"Pattern wanted token '42' (INT_NUMBER), but code had token '43' (INT_NUMBER)"#, | ||
519 | ); | ||
520 | } | ||
diff --git a/crates/rust-analyzer/src/bin/args.rs b/crates/rust-analyzer/src/bin/args.rs index 8a0b10117..8c0f4df8b 100644 --- a/crates/rust-analyzer/src/bin/args.rs +++ b/crates/rust-analyzer/src/bin/args.rs | |||
@@ -5,7 +5,7 @@ | |||
5 | 5 | ||
6 | use anyhow::{bail, Result}; | 6 | use anyhow::{bail, Result}; |
7 | use pico_args::Arguments; | 7 | use pico_args::Arguments; |
8 | use ra_ssr::SsrRule; | 8 | use ra_ssr::{SsrPattern, SsrRule}; |
9 | use rust_analyzer::cli::{BenchWhat, Position, Verbosity}; | 9 | use rust_analyzer::cli::{BenchWhat, Position, Verbosity}; |
10 | 10 | ||
11 | use std::{fmt::Write, path::PathBuf}; | 11 | use std::{fmt::Write, path::PathBuf}; |
@@ -50,6 +50,10 @@ pub(crate) enum Command { | |||
50 | Ssr { | 50 | Ssr { |
51 | rules: Vec<SsrRule>, | 51 | rules: Vec<SsrRule>, |
52 | }, | 52 | }, |
53 | StructuredSearch { | ||
54 | debug_snippet: Option<String>, | ||
55 | patterns: Vec<SsrPattern>, | ||
56 | }, | ||
53 | ProcMacro, | 57 | ProcMacro, |
54 | RunServer, | 58 | RunServer, |
55 | Version, | 59 | Version, |
@@ -294,6 +298,7 @@ EXAMPLE: | |||
294 | rust-analyzer ssr '$a.foo($b) ==> bar($a, $b)' | 298 | rust-analyzer ssr '$a.foo($b) ==> bar($a, $b)' |
295 | 299 | ||
296 | FLAGS: | 300 | FLAGS: |
301 | --debug <snippet> Prints debug information for any nodes with source exactly equal to <snippet> | ||
297 | -h, --help Prints help information | 302 | -h, --help Prints help information |
298 | 303 | ||
299 | ARGS: | 304 | ARGS: |
@@ -307,6 +312,34 @@ ARGS: | |||
307 | } | 312 | } |
308 | Command::Ssr { rules } | 313 | Command::Ssr { rules } |
309 | } | 314 | } |
315 | "search" => { | ||
316 | if matches.contains(["-h", "--help"]) { | ||
317 | eprintln!( | ||
318 | "\ | ||
319 | rust-analyzer search | ||
320 | |||
321 | USAGE: | ||
322 | rust-analyzer search [FLAGS] [PATTERN...] | ||
323 | |||
324 | EXAMPLE: | ||
325 | rust-analyzer search '$a.foo($b)' | ||
326 | |||
327 | FLAGS: | ||
328 | --debug <snippet> Prints debug information for any nodes with source exactly equal to <snippet> | ||
329 | -h, --help Prints help information | ||
330 | |||
331 | ARGS: | ||
332 | <PATTERN> A structured search pattern" | ||
333 | ); | ||
334 | return Ok(Err(HelpPrinted)); | ||
335 | } | ||
336 | let debug_snippet = matches.opt_value_from_str("--debug")?; | ||
337 | let mut patterns = Vec::new(); | ||
338 | while let Some(rule) = matches.free_from_str()? { | ||
339 | patterns.push(rule); | ||
340 | } | ||
341 | Command::StructuredSearch { patterns, debug_snippet } | ||
342 | } | ||
310 | _ => { | 343 | _ => { |
311 | print_subcommands(); | 344 | print_subcommands(); |
312 | return Ok(Err(HelpPrinted)); | 345 | return Ok(Err(HelpPrinted)); |
@@ -334,6 +367,7 @@ SUBCOMMANDS: | |||
334 | diagnostics | 367 | diagnostics |
335 | proc-macro | 368 | proc-macro |
336 | parse | 369 | parse |
370 | search | ||
337 | ssr | 371 | ssr |
338 | symbols" | 372 | symbols" |
339 | ) | 373 | ) |
diff --git a/crates/rust-analyzer/src/bin/main.rs b/crates/rust-analyzer/src/bin/main.rs index 0f55c3ee2..eec76d415 100644 --- a/crates/rust-analyzer/src/bin/main.rs +++ b/crates/rust-analyzer/src/bin/main.rs | |||
@@ -65,6 +65,9 @@ fn main() -> Result<()> { | |||
65 | args::Command::Ssr { rules } => { | 65 | args::Command::Ssr { rules } => { |
66 | cli::apply_ssr_rules(rules)?; | 66 | cli::apply_ssr_rules(rules)?; |
67 | } | 67 | } |
68 | args::Command::StructuredSearch { patterns, debug_snippet } => { | ||
69 | cli::search_for_patterns(patterns, debug_snippet)?; | ||
70 | } | ||
68 | args::Command::Version => println!("rust-analyzer {}", env!("REV")), | 71 | args::Command::Version => println!("rust-analyzer {}", env!("REV")), |
69 | } | 72 | } |
70 | Ok(()) | 73 | Ok(()) |
diff --git a/crates/rust-analyzer/src/cli.rs b/crates/rust-analyzer/src/cli.rs index 13e3d75be..6863f100b 100644 --- a/crates/rust-analyzer/src/cli.rs +++ b/crates/rust-analyzer/src/cli.rs | |||
@@ -18,7 +18,7 @@ pub use analysis_bench::{analysis_bench, BenchWhat, Position}; | |||
18 | pub use analysis_stats::analysis_stats; | 18 | pub use analysis_stats::analysis_stats; |
19 | pub use diagnostics::diagnostics; | 19 | pub use diagnostics::diagnostics; |
20 | pub use load_cargo::load_cargo; | 20 | pub use load_cargo::load_cargo; |
21 | pub use ssr::apply_ssr_rules; | 21 | pub use ssr::{apply_ssr_rules, search_for_patterns}; |
22 | 22 | ||
23 | #[derive(Clone, Copy)] | 23 | #[derive(Clone, Copy)] |
24 | pub enum Verbosity { | 24 | pub enum Verbosity { |
diff --git a/crates/rust-analyzer/src/cli/ssr.rs b/crates/rust-analyzer/src/cli/ssr.rs index a5265ac15..4fb829ea5 100644 --- a/crates/rust-analyzer/src/cli/ssr.rs +++ b/crates/rust-analyzer/src/cli/ssr.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | 2 | ||
3 | use crate::cli::{load_cargo::load_cargo, Result}; | 3 | use crate::cli::{load_cargo::load_cargo, Result}; |
4 | use ra_ide::SourceFileEdit; | 4 | use ra_ide::SourceFileEdit; |
5 | use ra_ssr::{MatchFinder, SsrRule}; | 5 | use ra_ssr::{MatchFinder, SsrPattern, SsrRule}; |
6 | 6 | ||
7 | pub fn apply_ssr_rules(rules: Vec<SsrRule>) -> Result<()> { | 7 | pub fn apply_ssr_rules(rules: Vec<SsrRule>) -> Result<()> { |
8 | use ra_db::SourceDatabaseExt; | 8 | use ra_db::SourceDatabaseExt; |
@@ -31,3 +31,41 @@ pub fn apply_ssr_rules(rules: Vec<SsrRule>) -> Result<()> { | |||
31 | } | 31 | } |
32 | Ok(()) | 32 | Ok(()) |
33 | } | 33 | } |
34 | |||
35 | /// Searches for `patterns`, printing debug information for any nodes whose text exactly matches | ||
36 | /// `debug_snippet`. This is intended for debugging and probably isn't in it's current form useful | ||
37 | /// for much else. | ||
38 | pub fn search_for_patterns(patterns: Vec<SsrPattern>, debug_snippet: Option<String>) -> Result<()> { | ||
39 | use ra_db::SourceDatabaseExt; | ||
40 | use ra_ide_db::symbol_index::SymbolsDatabase; | ||
41 | let (host, vfs) = load_cargo(&std::env::current_dir()?, true, true)?; | ||
42 | let db = host.raw_database(); | ||
43 | let mut match_finder = MatchFinder::new(db); | ||
44 | for pattern in patterns { | ||
45 | match_finder.add_search_pattern(pattern); | ||
46 | } | ||
47 | for &root in db.local_roots().iter() { | ||
48 | let sr = db.source_root(root); | ||
49 | for file_id in sr.iter() { | ||
50 | if let Some(debug_snippet) = &debug_snippet { | ||
51 | for debug_info in match_finder.debug_where_text_equal(file_id, debug_snippet) { | ||
52 | println!("{:#?}", debug_info); | ||
53 | } | ||
54 | } else { | ||
55 | let matches = match_finder.find_matches_in_file(file_id); | ||
56 | if !matches.matches.is_empty() { | ||
57 | let matches = matches.flattened().matches; | ||
58 | if let Some(path) = vfs.file_path(file_id).as_path() { | ||
59 | println!("{} matches in '{}'", matches.len(), path.to_string_lossy()); | ||
60 | } | ||
61 | // We could possibly at some point do something more useful than just printing | ||
62 | // the matched text. For now though, that's the easiest thing to do. | ||
63 | for m in matches { | ||
64 | println!("{}", m.matched_text()); | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | } | ||
69 | } | ||
70 | Ok(()) | ||
71 | } | ||
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json index 3b4a31682..4f94c2dc5 100644 --- a/editors/code/package-lock.json +++ b/editors/code/package-lock.json | |||
@@ -5,35 +5,35 @@ | |||
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
7 | "@babel/code-frame": { | 7 | "@babel/code-frame": { |
8 | "version": "7.8.3", | 8 | "version": "7.10.3", |
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", | 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz", |
10 | "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", | 10 | "integrity": "sha512-fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==", |
11 | "dev": true, | 11 | "dev": true, |
12 | "requires": { | 12 | "requires": { |
13 | "@babel/highlight": "^7.8.3" | 13 | "@babel/highlight": "^7.10.3" |
14 | } | 14 | } |
15 | }, | 15 | }, |
16 | "@babel/helper-validator-identifier": { | 16 | "@babel/helper-validator-identifier": { |
17 | "version": "7.9.5", | 17 | "version": "7.10.3", |
18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", | 18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz", |
19 | "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", | 19 | "integrity": "sha512-bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==", |
20 | "dev": true | 20 | "dev": true |
21 | }, | 21 | }, |
22 | "@babel/highlight": { | 22 | "@babel/highlight": { |
23 | "version": "7.9.0", | 23 | "version": "7.10.3", |
24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", | 24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz", |
25 | "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", | 25 | "integrity": "sha512-Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==", |
26 | "dev": true, | 26 | "dev": true, |
27 | "requires": { | 27 | "requires": { |
28 | "@babel/helper-validator-identifier": "^7.9.0", | 28 | "@babel/helper-validator-identifier": "^7.10.3", |
29 | "chalk": "^2.0.0", | 29 | "chalk": "^2.0.0", |
30 | "js-tokens": "^4.0.0" | 30 | "js-tokens": "^4.0.0" |
31 | } | 31 | } |
32 | }, | 32 | }, |
33 | "@rollup/plugin-commonjs": { | 33 | "@rollup/plugin-commonjs": { |
34 | "version": "12.0.0", | 34 | "version": "13.0.0", |
35 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz", | 35 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.0.tgz", |
36 | "integrity": "sha512-8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==", | 36 | "integrity": "sha512-Anxc3qgkAi7peAyesTqGYidG5GRim9jtg8xhmykNaZkImtvjA7Wsqep08D2mYsqw1IF7rA3lYfciLgzUSgRoqw==", |
37 | "dev": true, | 37 | "dev": true, |
38 | "requires": { | 38 | "requires": { |
39 | "@rollup/pluginutils": "^3.0.8", | 39 | "@rollup/pluginutils": "^3.0.8", |
@@ -46,9 +46,9 @@ | |||
46 | } | 46 | } |
47 | }, | 47 | }, |
48 | "@rollup/plugin-node-resolve": { | 48 | "@rollup/plugin-node-resolve": { |
49 | "version": "8.0.0", | 49 | "version": "8.1.0", |
50 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.0.tgz", | 50 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.1.0.tgz", |
51 | "integrity": "sha512-5poJCChrkVggXXND/sQ7yNqwjUNT4fP31gpRWCnSNnlXuUXTCMHT33xZrTGxgjm5Rl18MHj7iEzlCT8rYWwQSA==", | 51 | "integrity": "sha512-ovq7ZM3JJYUUmEjjO+H8tnUdmQmdQudJB7xruX8LFZ1W2q8jXdPUS6SsIYip8ByOApu4RR7729Am9WhCeCMiHA==", |
52 | "dev": true, | 52 | "dev": true, |
53 | "requires": { | 53 | "requires": { |
54 | "@rollup/pluginutils": "^3.0.8", | 54 | "@rollup/pluginutils": "^3.0.8", |
@@ -89,19 +89,12 @@ | |||
89 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", | 89 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", |
90 | "dev": true | 90 | "dev": true |
91 | }, | 91 | }, |
92 | "@types/events": { | ||
93 | "version": "3.0.0", | ||
94 | "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", | ||
95 | "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", | ||
96 | "dev": true | ||
97 | }, | ||
98 | "@types/glob": { | 92 | "@types/glob": { |
99 | "version": "7.1.1", | 93 | "version": "7.1.2", |
100 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", | 94 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", |
101 | "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", | 95 | "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==", |
102 | "dev": true, | 96 | "dev": true, |
103 | "requires": { | 97 | "requires": { |
104 | "@types/events": "*", | ||
105 | "@types/minimatch": "*", | 98 | "@types/minimatch": "*", |
106 | "@types/node": "*" | 99 | "@types/node": "*" |
107 | } | 100 | } |
@@ -125,9 +118,9 @@ | |||
125 | "dev": true | 118 | "dev": true |
126 | }, | 119 | }, |
127 | "@types/node": { | 120 | "@types/node": { |
128 | "version": "14.0.5", | 121 | "version": "12.7.12", |
129 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz", | 122 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz", |
130 | "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==", | 123 | "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==", |
131 | "dev": true | 124 | "dev": true |
132 | }, | 125 | }, |
133 | "@types/node-fetch": { | 126 | "@types/node-fetch": { |
@@ -156,18 +149,46 @@ | |||
156 | "dev": true | 149 | "dev": true |
157 | }, | 150 | }, |
158 | "@typescript-eslint/eslint-plugin": { | 151 | "@typescript-eslint/eslint-plugin": { |
159 | "version": "3.0.0", | 152 | "version": "3.4.0", |
160 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.0.tgz", | 153 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.4.0.tgz", |
161 | "integrity": "sha512-lcZ0M6jD4cqGccYOERKdMtg+VWpoq3NSnWVxpc/AwAy0zhkUYVioOUZmfNqiNH8/eBNGhCn6HXd6mKIGRgNc1Q==", | 154 | "integrity": "sha512-wfkpiqaEVhZIuQRmudDszc01jC/YR7gMSxa6ulhggAe/Hs0KVIuo9wzvFiDbG3JD5pRFQoqnf4m7REDsUvBnMQ==", |
162 | "dev": true, | 155 | "dev": true, |
163 | "requires": { | 156 | "requires": { |
164 | "@typescript-eslint/experimental-utils": "3.0.0", | 157 | "@typescript-eslint/experimental-utils": "3.4.0", |
158 | "debug": "^4.1.1", | ||
165 | "functional-red-black-tree": "^1.0.1", | 159 | "functional-red-black-tree": "^1.0.1", |
166 | "regexpp": "^3.0.0", | 160 | "regexpp": "^3.0.0", |
167 | "semver": "^7.3.2", | 161 | "semver": "^7.3.2", |
168 | "tsutils": "^3.17.1" | 162 | "tsutils": "^3.17.1" |
169 | }, | 163 | }, |
170 | "dependencies": { | 164 | "dependencies": { |
165 | "@typescript-eslint/experimental-utils": { | ||
166 | "version": "3.4.0", | ||
167 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.4.0.tgz", | ||
168 | "integrity": "sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw==", | ||
169 | "dev": true, | ||
170 | "requires": { | ||
171 | "@types/json-schema": "^7.0.3", | ||
172 | "@typescript-eslint/typescript-estree": "3.4.0", | ||
173 | "eslint-scope": "^5.0.0", | ||
174 | "eslint-utils": "^2.0.0" | ||
175 | } | ||
176 | }, | ||
177 | "@typescript-eslint/typescript-estree": { | ||
178 | "version": "3.4.0", | ||
179 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.4.0.tgz", | ||
180 | "integrity": "sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw==", | ||
181 | "dev": true, | ||
182 | "requires": { | ||
183 | "debug": "^4.1.1", | ||
184 | "eslint-visitor-keys": "^1.1.0", | ||
185 | "glob": "^7.1.6", | ||
186 | "is-glob": "^4.0.1", | ||
187 | "lodash": "^4.17.15", | ||
188 | "semver": "^7.3.2", | ||
189 | "tsutils": "^3.17.1" | ||
190 | } | ||
191 | }, | ||
171 | "semver": { | 192 | "semver": { |
172 | "version": "7.3.2", | 193 | "version": "7.3.2", |
173 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", | 194 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", |
@@ -177,33 +198,33 @@ | |||
177 | } | 198 | } |
178 | }, | 199 | }, |
179 | "@typescript-eslint/experimental-utils": { | 200 | "@typescript-eslint/experimental-utils": { |
180 | "version": "3.0.0", | 201 | "version": "3.4.0", |
181 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.0.tgz", | 202 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.4.0.tgz", |
182 | "integrity": "sha512-BN0vmr9N79M9s2ctITtChRuP1+Dls0x/wlg0RXW1yQ7WJKPurg6X3Xirv61J2sjPif4F8SLsFMs5Nzte0WYoTQ==", | 203 | "integrity": "sha512-rHPOjL43lOH1Opte4+dhC0a/+ks+8gOBwxXnyrZ/K4OTAChpSjP76fbI8Cglj7V5GouwVAGaK+xVwzqTyE/TPw==", |
183 | "dev": true, | 204 | "dev": true, |
184 | "requires": { | 205 | "requires": { |
185 | "@types/json-schema": "^7.0.3", | 206 | "@types/json-schema": "^7.0.3", |
186 | "@typescript-eslint/typescript-estree": "3.0.0", | 207 | "@typescript-eslint/typescript-estree": "3.4.0", |
187 | "eslint-scope": "^5.0.0", | 208 | "eslint-scope": "^5.0.0", |
188 | "eslint-utils": "^2.0.0" | 209 | "eslint-utils": "^2.0.0" |
189 | } | 210 | } |
190 | }, | 211 | }, |
191 | "@typescript-eslint/parser": { | 212 | "@typescript-eslint/parser": { |
192 | "version": "3.0.0", | 213 | "version": "3.4.0", |
193 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.0.0.tgz", | 214 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.4.0.tgz", |
194 | "integrity": "sha512-8RRCA9KLxoFNO0mQlrLZA0reGPd/MsobxZS/yPFj+0/XgMdS8+mO8mF3BDj2ZYQj03rkayhSJtF1HAohQ3iylw==", | 215 | "integrity": "sha512-ZUGI/de44L5x87uX5zM14UYcbn79HSXUR+kzcqU42gH0AgpdB/TjuJy3m4ezI7Q/jk3wTQd755mxSDLhQP79KA==", |
195 | "dev": true, | 216 | "dev": true, |
196 | "requires": { | 217 | "requires": { |
197 | "@types/eslint-visitor-keys": "^1.0.0", | 218 | "@types/eslint-visitor-keys": "^1.0.0", |
198 | "@typescript-eslint/experimental-utils": "3.0.0", | 219 | "@typescript-eslint/experimental-utils": "3.4.0", |
199 | "@typescript-eslint/typescript-estree": "3.0.0", | 220 | "@typescript-eslint/typescript-estree": "3.4.0", |
200 | "eslint-visitor-keys": "^1.1.0" | 221 | "eslint-visitor-keys": "^1.1.0" |
201 | } | 222 | } |
202 | }, | 223 | }, |
203 | "@typescript-eslint/typescript-estree": { | 224 | "@typescript-eslint/typescript-estree": { |
204 | "version": "3.0.0", | 225 | "version": "3.4.0", |
205 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.0.tgz", | 226 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.4.0.tgz", |
206 | "integrity": "sha512-nevQvHyNghsfLrrByzVIH4ZG3NROgJ8LZlfh3ddwPPH4CH7W4GAiSx5qu+xHuX5pWsq6q/eqMc1io840ZhAnUg==", | 227 | "integrity": "sha512-zKwLiybtt4uJb4mkG5q2t6+W7BuYx2IISiDNV+IY68VfoGwErDx/RfVI7SWL4gnZ2t1A1ytQQwZ+YOJbHHJ2rw==", |
207 | "dev": true, | 228 | "dev": true, |
208 | "requires": { | 229 | "requires": { |
209 | "debug": "^4.1.1", | 230 | "debug": "^4.1.1", |
@@ -224,9 +245,9 @@ | |||
224 | } | 245 | } |
225 | }, | 246 | }, |
226 | "acorn": { | 247 | "acorn": { |
227 | "version": "7.2.0", | 248 | "version": "7.3.1", |
228 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", | 249 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", |
229 | "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", | 250 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", |
230 | "dev": true | 251 | "dev": true |
231 | }, | 252 | }, |
232 | "acorn-jsx": { | 253 | "acorn-jsx": { |
@@ -262,23 +283,6 @@ | |||
262 | "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", | 283 | "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", |
263 | "dev": true | 284 | "dev": true |
264 | }, | 285 | }, |
265 | "ansi-escapes": { | ||
266 | "version": "4.3.1", | ||
267 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", | ||
268 | "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", | ||
269 | "dev": true, | ||
270 | "requires": { | ||
271 | "type-fest": "^0.11.0" | ||
272 | }, | ||
273 | "dependencies": { | ||
274 | "type-fest": { | ||
275 | "version": "0.11.0", | ||
276 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", | ||
277 | "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", | ||
278 | "dev": true | ||
279 | } | ||
280 | } | ||
281 | }, | ||
282 | "ansi-regex": { | 286 | "ansi-regex": { |
283 | "version": "5.0.0", | 287 | "version": "5.0.0", |
284 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | 288 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", |
@@ -313,6 +317,18 @@ | |||
313 | "sprintf-js": "~1.0.2" | 317 | "sprintf-js": "~1.0.2" |
314 | } | 318 | } |
315 | }, | 319 | }, |
320 | "array.prototype.map": { | ||
321 | "version": "1.0.2", | ||
322 | "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", | ||
323 | "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", | ||
324 | "dev": true, | ||
325 | "requires": { | ||
326 | "define-properties": "^1.1.3", | ||
327 | "es-abstract": "^1.17.0-next.1", | ||
328 | "es-array-method-boxes-properly": "^1.0.0", | ||
329 | "is-string": "^1.0.4" | ||
330 | } | ||
331 | }, | ||
316 | "astral-regex": { | 332 | "astral-regex": { |
317 | "version": "1.0.0", | 333 | "version": "1.0.0", |
318 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", | 334 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", |
@@ -344,9 +360,9 @@ | |||
344 | "dev": true | 360 | "dev": true |
345 | }, | 361 | }, |
346 | "binary-extensions": { | 362 | "binary-extensions": { |
347 | "version": "2.0.0", | 363 | "version": "2.1.0", |
348 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", | 364 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", |
349 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", | 365 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", |
350 | "dev": true | 366 | "dev": true |
351 | }, | 367 | }, |
352 | "boolbase": { | 368 | "boolbase": { |
@@ -415,12 +431,6 @@ | |||
415 | "supports-color": "^5.3.0" | 431 | "supports-color": "^5.3.0" |
416 | } | 432 | } |
417 | }, | 433 | }, |
418 | "chardet": { | ||
419 | "version": "0.7.0", | ||
420 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", | ||
421 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | ||
422 | "dev": true | ||
423 | }, | ||
424 | "cheerio": { | 434 | "cheerio": { |
425 | "version": "1.0.0-rc.3", | 435 | "version": "1.0.0-rc.3", |
426 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", | 436 | "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", |
@@ -436,36 +446,21 @@ | |||
436 | } | 446 | } |
437 | }, | 447 | }, |
438 | "chokidar": { | 448 | "chokidar": { |
439 | "version": "3.3.0", | 449 | "version": "3.3.1", |
440 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", | 450 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", |
441 | "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", | 451 | "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", |
442 | "dev": true, | 452 | "dev": true, |
443 | "requires": { | 453 | "requires": { |
444 | "anymatch": "~3.1.1", | 454 | "anymatch": "~3.1.1", |
445 | "braces": "~3.0.2", | 455 | "braces": "~3.0.2", |
446 | "fsevents": "~2.1.1", | 456 | "fsevents": "~2.1.2", |
447 | "glob-parent": "~5.1.0", | 457 | "glob-parent": "~5.1.0", |
448 | "is-binary-path": "~2.1.0", | 458 | "is-binary-path": "~2.1.0", |
449 | "is-glob": "~4.0.1", | 459 | "is-glob": "~4.0.1", |
450 | "normalize-path": "~3.0.0", | 460 | "normalize-path": "~3.0.0", |
451 | "readdirp": "~3.2.0" | 461 | "readdirp": "~3.3.0" |
452 | } | 462 | } |
453 | }, | 463 | }, |
454 | "cli-cursor": { | ||
455 | "version": "3.1.0", | ||
456 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | ||
457 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", | ||
458 | "dev": true, | ||
459 | "requires": { | ||
460 | "restore-cursor": "^3.1.0" | ||
461 | } | ||
462 | }, | ||
463 | "cli-width": { | ||
464 | "version": "2.2.1", | ||
465 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", | ||
466 | "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", | ||
467 | "dev": true | ||
468 | }, | ||
469 | "cliui": { | 464 | "cliui": { |
470 | "version": "5.0.0", | 465 | "version": "5.0.0", |
471 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", | 466 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", |
@@ -483,29 +478,6 @@ | |||
483 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 478 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", |
484 | "dev": true | 479 | "dev": true |
485 | }, | 480 | }, |
486 | "emoji-regex": { | ||
487 | "version": "7.0.3", | ||
488 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
489 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
490 | "dev": true | ||
491 | }, | ||
492 | "is-fullwidth-code-point": { | ||
493 | "version": "2.0.0", | ||
494 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
495 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
496 | "dev": true | ||
497 | }, | ||
498 | "string-width": { | ||
499 | "version": "3.1.0", | ||
500 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
501 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
502 | "dev": true, | ||
503 | "requires": { | ||
504 | "emoji-regex": "^7.0.1", | ||
505 | "is-fullwidth-code-point": "^2.0.0", | ||
506 | "strip-ansi": "^5.1.0" | ||
507 | } | ||
508 | }, | ||
509 | "strip-ansi": { | 481 | "strip-ansi": { |
510 | "version": "5.2.0", | 482 | "version": "5.2.0", |
511 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 483 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
@@ -566,9 +538,9 @@ | |||
566 | "dev": true | 538 | "dev": true |
567 | }, | 539 | }, |
568 | "cross-spawn": { | 540 | "cross-spawn": { |
569 | "version": "7.0.2", | 541 | "version": "7.0.3", |
570 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", | 542 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", |
571 | "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", | 543 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", |
572 | "dev": true, | 544 | "dev": true, |
573 | "requires": { | 545 | "requires": { |
574 | "path-key": "^3.1.0", | 546 | "path-key": "^3.1.0", |
@@ -649,9 +621,9 @@ | |||
649 | "dev": true | 621 | "dev": true |
650 | }, | 622 | }, |
651 | "diff": { | 623 | "diff": { |
652 | "version": "3.5.0", | 624 | "version": "4.0.2", |
653 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", | 625 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", |
654 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", | 626 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", |
655 | "dev": true | 627 | "dev": true |
656 | }, | 628 | }, |
657 | "doctrine": { | 629 | "doctrine": { |
@@ -719,11 +691,20 @@ | |||
719 | } | 691 | } |
720 | }, | 692 | }, |
721 | "emoji-regex": { | 693 | "emoji-regex": { |
722 | "version": "8.0.0", | 694 | "version": "7.0.3", |
723 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | 695 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", |
724 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", | 696 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", |
725 | "dev": true | 697 | "dev": true |
726 | }, | 698 | }, |
699 | "enquirer": { | ||
700 | "version": "2.3.5", | ||
701 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz", | ||
702 | "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==", | ||
703 | "dev": true, | ||
704 | "requires": { | ||
705 | "ansi-colors": "^3.2.1" | ||
706 | } | ||
707 | }, | ||
727 | "entities": { | 708 | "entities": { |
728 | "version": "1.1.2", | 709 | "version": "1.1.2", |
729 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", | 710 | "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", |
@@ -731,22 +712,43 @@ | |||
731 | "dev": true | 712 | "dev": true |
732 | }, | 713 | }, |
733 | "es-abstract": { | 714 | "es-abstract": { |
734 | "version": "1.17.5", | 715 | "version": "1.17.6", |
735 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", | 716 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", |
736 | "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", | 717 | "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", |
737 | "dev": true, | 718 | "dev": true, |
738 | "requires": { | 719 | "requires": { |
739 | "es-to-primitive": "^1.2.1", | 720 | "es-to-primitive": "^1.2.1", |
740 | "function-bind": "^1.1.1", | 721 | "function-bind": "^1.1.1", |
741 | "has": "^1.0.3", | 722 | "has": "^1.0.3", |
742 | "has-symbols": "^1.0.1", | 723 | "has-symbols": "^1.0.1", |
743 | "is-callable": "^1.1.5", | 724 | "is-callable": "^1.2.0", |
744 | "is-regex": "^1.0.5", | 725 | "is-regex": "^1.1.0", |
745 | "object-inspect": "^1.7.0", | 726 | "object-inspect": "^1.7.0", |
746 | "object-keys": "^1.1.1", | 727 | "object-keys": "^1.1.1", |
747 | "object.assign": "^4.1.0", | 728 | "object.assign": "^4.1.0", |
748 | "string.prototype.trimleft": "^2.1.1", | 729 | "string.prototype.trimend": "^1.0.1", |
749 | "string.prototype.trimright": "^2.1.1" | 730 | "string.prototype.trimstart": "^1.0.1" |
731 | } | ||
732 | }, | ||
733 | "es-array-method-boxes-properly": { | ||
734 | "version": "1.0.0", | ||
735 | "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", | ||
736 | "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", | ||
737 | "dev": true | ||
738 | }, | ||
739 | "es-get-iterator": { | ||
740 | "version": "1.1.0", | ||
741 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", | ||
742 | "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", | ||
743 | "dev": true, | ||
744 | "requires": { | ||
745 | "es-abstract": "^1.17.4", | ||
746 | "has-symbols": "^1.0.1", | ||
747 | "is-arguments": "^1.0.4", | ||
748 | "is-map": "^2.0.1", | ||
749 | "is-set": "^2.0.1", | ||
750 | "is-string": "^1.0.5", | ||
751 | "isarray": "^2.0.5" | ||
750 | } | 752 | } |
751 | }, | 753 | }, |
752 | "es-to-primitive": { | 754 | "es-to-primitive": { |
@@ -782,9 +784,9 @@ | |||
782 | "dev": true | 784 | "dev": true |
783 | }, | 785 | }, |
784 | "eslint": { | 786 | "eslint": { |
785 | "version": "7.1.0", | 787 | "version": "7.3.1", |
786 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.1.0.tgz", | 788 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.3.1.tgz", |
787 | "integrity": "sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA==", | 789 | "integrity": "sha512-cQC/xj9bhWUcyi/RuMbRtC3I0eW8MH0jhRELSvpKYkWep3C6YZ2OkvcvJVUeO6gcunABmzptbXBuDoXsjHmfTA==", |
788 | "dev": true, | 790 | "dev": true, |
789 | "requires": { | 791 | "requires": { |
790 | "@babel/code-frame": "^7.0.0", | 792 | "@babel/code-frame": "^7.0.0", |
@@ -793,10 +795,11 @@ | |||
793 | "cross-spawn": "^7.0.2", | 795 | "cross-spawn": "^7.0.2", |
794 | "debug": "^4.0.1", | 796 | "debug": "^4.0.1", |
795 | "doctrine": "^3.0.0", | 797 | "doctrine": "^3.0.0", |
796 | "eslint-scope": "^5.0.0", | 798 | "enquirer": "^2.3.5", |
799 | "eslint-scope": "^5.1.0", | ||
797 | "eslint-utils": "^2.0.0", | 800 | "eslint-utils": "^2.0.0", |
798 | "eslint-visitor-keys": "^1.1.0", | 801 | "eslint-visitor-keys": "^1.2.0", |
799 | "espree": "^7.0.0", | 802 | "espree": "^7.1.0", |
800 | "esquery": "^1.2.0", | 803 | "esquery": "^1.2.0", |
801 | "esutils": "^2.0.2", | 804 | "esutils": "^2.0.2", |
802 | "file-entry-cache": "^5.0.1", | 805 | "file-entry-cache": "^5.0.1", |
@@ -806,7 +809,6 @@ | |||
806 | "ignore": "^4.0.6", | 809 | "ignore": "^4.0.6", |
807 | "import-fresh": "^3.0.0", | 810 | "import-fresh": "^3.0.0", |
808 | "imurmurhash": "^0.1.4", | 811 | "imurmurhash": "^0.1.4", |
809 | "inquirer": "^7.0.0", | ||
810 | "is-glob": "^4.0.0", | 812 | "is-glob": "^4.0.0", |
811 | "js-yaml": "^3.13.1", | 813 | "js-yaml": "^3.13.1", |
812 | "json-stable-stringify-without-jsonify": "^1.0.1", | 814 | "json-stable-stringify-without-jsonify": "^1.0.1", |
@@ -836,9 +838,9 @@ | |||
836 | } | 838 | } |
837 | }, | 839 | }, |
838 | "chalk": { | 840 | "chalk": { |
839 | "version": "4.0.0", | 841 | "version": "4.1.0", |
840 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", | 842 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", |
841 | "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", | 843 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", |
842 | "dev": true, | 844 | "dev": true, |
843 | "requires": { | 845 | "requires": { |
844 | "ansi-styles": "^4.1.0", | 846 | "ansi-styles": "^4.1.0", |
@@ -860,6 +862,22 @@ | |||
860 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | 862 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
861 | "dev": true | 863 | "dev": true |
862 | }, | 864 | }, |
865 | "eslint-scope": { | ||
866 | "version": "5.1.0", | ||
867 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", | ||
868 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", | ||
869 | "dev": true, | ||
870 | "requires": { | ||
871 | "esrecurse": "^4.1.0", | ||
872 | "estraverse": "^4.1.1" | ||
873 | } | ||
874 | }, | ||
875 | "eslint-visitor-keys": { | ||
876 | "version": "1.3.0", | ||
877 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
878 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
879 | "dev": true | ||
880 | }, | ||
863 | "has-flag": { | 881 | "has-flag": { |
864 | "version": "4.0.0", | 882 | "version": "4.0.0", |
865 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | 883 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
@@ -909,14 +927,22 @@ | |||
909 | "dev": true | 927 | "dev": true |
910 | }, | 928 | }, |
911 | "espree": { | 929 | "espree": { |
912 | "version": "7.0.0", | 930 | "version": "7.1.0", |
913 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.0.0.tgz", | 931 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", |
914 | "integrity": "sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw==", | 932 | "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", |
915 | "dev": true, | 933 | "dev": true, |
916 | "requires": { | 934 | "requires": { |
917 | "acorn": "^7.1.1", | 935 | "acorn": "^7.2.0", |
918 | "acorn-jsx": "^5.2.0", | 936 | "acorn-jsx": "^5.2.0", |
919 | "eslint-visitor-keys": "^1.1.0" | 937 | "eslint-visitor-keys": "^1.2.0" |
938 | }, | ||
939 | "dependencies": { | ||
940 | "eslint-visitor-keys": { | ||
941 | "version": "1.3.0", | ||
942 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
943 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
944 | "dev": true | ||
945 | } | ||
920 | } | 946 | } |
921 | }, | 947 | }, |
922 | "esprima": { | 948 | "esprima": { |
@@ -969,21 +995,10 @@ | |||
969 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", | 995 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", |
970 | "dev": true | 996 | "dev": true |
971 | }, | 997 | }, |
972 | "external-editor": { | ||
973 | "version": "3.1.0", | ||
974 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", | ||
975 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", | ||
976 | "dev": true, | ||
977 | "requires": { | ||
978 | "chardet": "^0.7.0", | ||
979 | "iconv-lite": "^0.4.24", | ||
980 | "tmp": "^0.0.33" | ||
981 | } | ||
982 | }, | ||
983 | "fast-deep-equal": { | 998 | "fast-deep-equal": { |
984 | "version": "3.1.1", | 999 | "version": "3.1.3", |
985 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", | 1000 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", |
986 | "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", | 1001 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", |
987 | "dev": true | 1002 | "dev": true |
988 | }, | 1003 | }, |
989 | "fast-json-stable-stringify": { | 1004 | "fast-json-stable-stringify": { |
@@ -1007,15 +1022,6 @@ | |||
1007 | "pend": "~1.2.0" | 1022 | "pend": "~1.2.0" |
1008 | } | 1023 | } |
1009 | }, | 1024 | }, |
1010 | "figures": { | ||
1011 | "version": "3.2.0", | ||
1012 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", | ||
1013 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", | ||
1014 | "dev": true, | ||
1015 | "requires": { | ||
1016 | "escape-string-regexp": "^1.0.5" | ||
1017 | } | ||
1018 | }, | ||
1019 | "file-entry-cache": { | 1025 | "file-entry-cache": { |
1020 | "version": "5.0.1", | 1026 | "version": "5.0.1", |
1021 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", | 1027 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", |
@@ -1035,12 +1041,13 @@ | |||
1035 | } | 1041 | } |
1036 | }, | 1042 | }, |
1037 | "find-up": { | 1043 | "find-up": { |
1038 | "version": "3.0.0", | 1044 | "version": "4.1.0", |
1039 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", | 1045 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", |
1040 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", | 1046 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", |
1041 | "dev": true, | 1047 | "dev": true, |
1042 | "requires": { | 1048 | "requires": { |
1043 | "locate-path": "^3.0.0" | 1049 | "locate-path": "^5.0.0", |
1050 | "path-exists": "^4.0.0" | ||
1044 | } | 1051 | } |
1045 | }, | 1052 | }, |
1046 | "flat": { | 1053 | "flat": { |
@@ -1238,15 +1245,6 @@ | |||
1238 | } | 1245 | } |
1239 | } | 1246 | } |
1240 | }, | 1247 | }, |
1241 | "iconv-lite": { | ||
1242 | "version": "0.4.24", | ||
1243 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
1244 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
1245 | "dev": true, | ||
1246 | "requires": { | ||
1247 | "safer-buffer": ">= 2.1.2 < 3" | ||
1248 | } | ||
1249 | }, | ||
1250 | "ignore": { | 1248 | "ignore": { |
1251 | "version": "4.0.6", | 1249 | "version": "4.0.6", |
1252 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", | 1250 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", |
@@ -1285,78 +1283,11 @@ | |||
1285 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | 1283 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
1286 | "dev": true | 1284 | "dev": true |
1287 | }, | 1285 | }, |
1288 | "inquirer": { | 1286 | "is-arguments": { |
1289 | "version": "7.1.0", | 1287 | "version": "1.0.4", |
1290 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", | 1288 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", |
1291 | "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", | 1289 | "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", |
1292 | "dev": true, | 1290 | "dev": true |
1293 | "requires": { | ||
1294 | "ansi-escapes": "^4.2.1", | ||
1295 | "chalk": "^3.0.0", | ||
1296 | "cli-cursor": "^3.1.0", | ||
1297 | "cli-width": "^2.0.0", | ||
1298 | "external-editor": "^3.0.3", | ||
1299 | "figures": "^3.0.0", | ||
1300 | "lodash": "^4.17.15", | ||
1301 | "mute-stream": "0.0.8", | ||
1302 | "run-async": "^2.4.0", | ||
1303 | "rxjs": "^6.5.3", | ||
1304 | "string-width": "^4.1.0", | ||
1305 | "strip-ansi": "^6.0.0", | ||
1306 | "through": "^2.3.6" | ||
1307 | }, | ||
1308 | "dependencies": { | ||
1309 | "ansi-styles": { | ||
1310 | "version": "4.2.1", | ||
1311 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | ||
1312 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | ||
1313 | "dev": true, | ||
1314 | "requires": { | ||
1315 | "@types/color-name": "^1.1.1", | ||
1316 | "color-convert": "^2.0.1" | ||
1317 | } | ||
1318 | }, | ||
1319 | "chalk": { | ||
1320 | "version": "3.0.0", | ||
1321 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", | ||
1322 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", | ||
1323 | "dev": true, | ||
1324 | "requires": { | ||
1325 | "ansi-styles": "^4.1.0", | ||
1326 | "supports-color": "^7.1.0" | ||
1327 | } | ||
1328 | }, | ||
1329 | "color-convert": { | ||
1330 | "version": "2.0.1", | ||
1331 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
1332 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
1333 | "dev": true, | ||
1334 | "requires": { | ||
1335 | "color-name": "~1.1.4" | ||
1336 | } | ||
1337 | }, | ||
1338 | "color-name": { | ||
1339 | "version": "1.1.4", | ||
1340 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
1341 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
1342 | "dev": true | ||
1343 | }, | ||
1344 | "has-flag": { | ||
1345 | "version": "4.0.0", | ||
1346 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||
1347 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | ||
1348 | "dev": true | ||
1349 | }, | ||
1350 | "supports-color": { | ||
1351 | "version": "7.1.0", | ||
1352 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", | ||
1353 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", | ||
1354 | "dev": true, | ||
1355 | "requires": { | ||
1356 | "has-flag": "^4.0.0" | ||
1357 | } | ||
1358 | } | ||
1359 | } | ||
1360 | }, | 1291 | }, |
1361 | "is-binary-path": { | 1292 | "is-binary-path": { |
1362 | "version": "2.1.0", | 1293 | "version": "2.1.0", |
@@ -1374,9 +1305,9 @@ | |||
1374 | "dev": true | 1305 | "dev": true |
1375 | }, | 1306 | }, |
1376 | "is-callable": { | 1307 | "is-callable": { |
1377 | "version": "1.1.5", | 1308 | "version": "1.2.0", |
1378 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", | 1309 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", |
1379 | "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", | 1310 | "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", |
1380 | "dev": true | 1311 | "dev": true |
1381 | }, | 1312 | }, |
1382 | "is-date-object": { | 1313 | "is-date-object": { |
@@ -1392,9 +1323,9 @@ | |||
1392 | "dev": true | 1323 | "dev": true |
1393 | }, | 1324 | }, |
1394 | "is-fullwidth-code-point": { | 1325 | "is-fullwidth-code-point": { |
1395 | "version": "3.0.0", | 1326 | "version": "2.0.0", |
1396 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | 1327 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", |
1397 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | 1328 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", |
1398 | "dev": true | 1329 | "dev": true |
1399 | }, | 1330 | }, |
1400 | "is-glob": { | 1331 | "is-glob": { |
@@ -1406,6 +1337,12 @@ | |||
1406 | "is-extglob": "^2.1.1" | 1337 | "is-extglob": "^2.1.1" |
1407 | } | 1338 | } |
1408 | }, | 1339 | }, |
1340 | "is-map": { | ||
1341 | "version": "2.0.1", | ||
1342 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", | ||
1343 | "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", | ||
1344 | "dev": true | ||
1345 | }, | ||
1409 | "is-module": { | 1346 | "is-module": { |
1410 | "version": "1.0.0", | 1347 | "version": "1.0.0", |
1411 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", | 1348 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", |
@@ -1419,23 +1356,35 @@ | |||
1419 | "dev": true | 1356 | "dev": true |
1420 | }, | 1357 | }, |
1421 | "is-reference": { | 1358 | "is-reference": { |
1422 | "version": "1.1.4", | 1359 | "version": "1.2.1", |
1423 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz", | 1360 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", |
1424 | "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==", | 1361 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", |
1425 | "dev": true, | 1362 | "dev": true, |
1426 | "requires": { | 1363 | "requires": { |
1427 | "@types/estree": "0.0.39" | 1364 | "@types/estree": "*" |
1428 | } | 1365 | } |
1429 | }, | 1366 | }, |
1430 | "is-regex": { | 1367 | "is-regex": { |
1431 | "version": "1.0.5", | 1368 | "version": "1.1.0", |
1432 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", | 1369 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", |
1433 | "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", | 1370 | "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", |
1434 | "dev": true, | 1371 | "dev": true, |
1435 | "requires": { | 1372 | "requires": { |
1436 | "has": "^1.0.3" | 1373 | "has-symbols": "^1.0.1" |
1437 | } | 1374 | } |
1438 | }, | 1375 | }, |
1376 | "is-set": { | ||
1377 | "version": "2.0.1", | ||
1378 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", | ||
1379 | "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", | ||
1380 | "dev": true | ||
1381 | }, | ||
1382 | "is-string": { | ||
1383 | "version": "1.0.5", | ||
1384 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", | ||
1385 | "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", | ||
1386 | "dev": true | ||
1387 | }, | ||
1439 | "is-symbol": { | 1388 | "is-symbol": { |
1440 | "version": "1.0.3", | 1389 | "version": "1.0.3", |
1441 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", | 1390 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", |
@@ -1445,12 +1394,34 @@ | |||
1445 | "has-symbols": "^1.0.1" | 1394 | "has-symbols": "^1.0.1" |
1446 | } | 1395 | } |
1447 | }, | 1396 | }, |
1397 | "isarray": { | ||
1398 | "version": "2.0.5", | ||
1399 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | ||
1400 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | ||
1401 | "dev": true | ||
1402 | }, | ||
1448 | "isexe": { | 1403 | "isexe": { |
1449 | "version": "2.0.0", | 1404 | "version": "2.0.0", |
1450 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | 1405 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
1451 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", | 1406 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", |
1452 | "dev": true | 1407 | "dev": true |
1453 | }, | 1408 | }, |
1409 | "iterate-iterator": { | ||
1410 | "version": "1.0.1", | ||
1411 | "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", | ||
1412 | "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", | ||
1413 | "dev": true | ||
1414 | }, | ||
1415 | "iterate-value": { | ||
1416 | "version": "1.0.2", | ||
1417 | "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", | ||
1418 | "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", | ||
1419 | "dev": true, | ||
1420 | "requires": { | ||
1421 | "es-get-iterator": "^1.0.2", | ||
1422 | "iterate-iterator": "^1.0.1" | ||
1423 | } | ||
1424 | }, | ||
1454 | "js-tokens": { | 1425 | "js-tokens": { |
1455 | "version": "4.0.0", | 1426 | "version": "4.0.0", |
1456 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | 1427 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
@@ -1505,13 +1476,12 @@ | |||
1505 | } | 1476 | } |
1506 | }, | 1477 | }, |
1507 | "locate-path": { | 1478 | "locate-path": { |
1508 | "version": "3.0.0", | 1479 | "version": "5.0.0", |
1509 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", | 1480 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", |
1510 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", | 1481 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", |
1511 | "dev": true, | 1482 | "dev": true, |
1512 | "requires": { | 1483 | "requires": { |
1513 | "p-locate": "^3.0.0", | 1484 | "p-locate": "^4.1.0" |
1514 | "path-exists": "^3.0.0" | ||
1515 | } | 1485 | } |
1516 | }, | 1486 | }, |
1517 | "lodash": { | 1487 | "lodash": { |
@@ -1596,12 +1566,6 @@ | |||
1596 | "mime-db": "1.44.0" | 1566 | "mime-db": "1.44.0" |
1597 | } | 1567 | } |
1598 | }, | 1568 | }, |
1599 | "mimic-fn": { | ||
1600 | "version": "2.1.0", | ||
1601 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | ||
1602 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", | ||
1603 | "dev": true | ||
1604 | }, | ||
1605 | "minimatch": { | 1569 | "minimatch": { |
1606 | "version": "3.0.4", | 1570 | "version": "3.0.4", |
1607 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | 1571 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", |
@@ -1627,37 +1591,44 @@ | |||
1627 | } | 1591 | } |
1628 | }, | 1592 | }, |
1629 | "mocha": { | 1593 | "mocha": { |
1630 | "version": "7.2.0", | 1594 | "version": "8.0.1", |
1631 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", | 1595 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.0.1.tgz", |
1632 | "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", | 1596 | "integrity": "sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==", |
1633 | "dev": true, | 1597 | "dev": true, |
1634 | "requires": { | 1598 | "requires": { |
1635 | "ansi-colors": "3.2.3", | 1599 | "ansi-colors": "4.1.1", |
1636 | "browser-stdout": "1.3.1", | 1600 | "browser-stdout": "1.3.1", |
1637 | "chokidar": "3.3.0", | 1601 | "chokidar": "3.3.1", |
1638 | "debug": "3.2.6", | 1602 | "debug": "3.2.6", |
1639 | "diff": "3.5.0", | 1603 | "diff": "4.0.2", |
1640 | "escape-string-regexp": "1.0.5", | 1604 | "escape-string-regexp": "1.0.5", |
1641 | "find-up": "3.0.0", | 1605 | "find-up": "4.1.0", |
1642 | "glob": "7.1.3", | 1606 | "glob": "7.1.6", |
1643 | "growl": "1.10.5", | 1607 | "growl": "1.10.5", |
1644 | "he": "1.2.0", | 1608 | "he": "1.2.0", |
1645 | "js-yaml": "3.13.1", | 1609 | "js-yaml": "3.13.1", |
1646 | "log-symbols": "3.0.0", | 1610 | "log-symbols": "3.0.0", |
1647 | "minimatch": "3.0.4", | 1611 | "minimatch": "3.0.4", |
1648 | "mkdirp": "0.5.5", | 1612 | "ms": "2.1.2", |
1649 | "ms": "2.1.1", | ||
1650 | "node-environment-flags": "1.0.6", | ||
1651 | "object.assign": "4.1.0", | 1613 | "object.assign": "4.1.0", |
1652 | "strip-json-comments": "2.0.1", | 1614 | "promise.allsettled": "1.0.2", |
1653 | "supports-color": "6.0.0", | 1615 | "serialize-javascript": "3.0.0", |
1654 | "which": "1.3.1", | 1616 | "strip-json-comments": "3.0.1", |
1617 | "supports-color": "7.1.0", | ||
1618 | "which": "2.0.2", | ||
1655 | "wide-align": "1.1.3", | 1619 | "wide-align": "1.1.3", |
1620 | "workerpool": "6.0.0", | ||
1656 | "yargs": "13.3.2", | 1621 | "yargs": "13.3.2", |
1657 | "yargs-parser": "13.1.2", | 1622 | "yargs-parser": "13.1.2", |
1658 | "yargs-unparser": "1.6.0" | 1623 | "yargs-unparser": "1.6.0" |
1659 | }, | 1624 | }, |
1660 | "dependencies": { | 1625 | "dependencies": { |
1626 | "ansi-colors": { | ||
1627 | "version": "4.1.1", | ||
1628 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", | ||
1629 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", | ||
1630 | "dev": true | ||
1631 | }, | ||
1661 | "debug": { | 1632 | "debug": { |
1662 | "version": "3.2.6", | 1633 | "version": "3.2.6", |
1663 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", | 1634 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", |
@@ -1667,19 +1638,11 @@ | |||
1667 | "ms": "^2.1.1" | 1638 | "ms": "^2.1.1" |
1668 | } | 1639 | } |
1669 | }, | 1640 | }, |
1670 | "glob": { | 1641 | "has-flag": { |
1671 | "version": "7.1.3", | 1642 | "version": "4.0.0", |
1672 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", | 1643 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", |
1673 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", | 1644 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", |
1674 | "dev": true, | 1645 | "dev": true |
1675 | "requires": { | ||
1676 | "fs.realpath": "^1.0.0", | ||
1677 | "inflight": "^1.0.4", | ||
1678 | "inherits": "2", | ||
1679 | "minimatch": "^3.0.4", | ||
1680 | "once": "^1.3.0", | ||
1681 | "path-is-absolute": "^1.0.0" | ||
1682 | } | ||
1683 | }, | 1646 | }, |
1684 | "js-yaml": { | 1647 | "js-yaml": { |
1685 | "version": "3.13.1", | 1648 | "version": "3.13.1", |
@@ -1691,34 +1654,19 @@ | |||
1691 | "esprima": "^4.0.0" | 1654 | "esprima": "^4.0.0" |
1692 | } | 1655 | } |
1693 | }, | 1656 | }, |
1694 | "ms": { | ||
1695 | "version": "2.1.1", | ||
1696 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", | ||
1697 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", | ||
1698 | "dev": true | ||
1699 | }, | ||
1700 | "strip-json-comments": { | 1657 | "strip-json-comments": { |
1701 | "version": "2.0.1", | 1658 | "version": "3.0.1", |
1702 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", | 1659 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", |
1703 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", | 1660 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", |
1704 | "dev": true | 1661 | "dev": true |
1705 | }, | 1662 | }, |
1706 | "supports-color": { | 1663 | "supports-color": { |
1707 | "version": "6.0.0", | 1664 | "version": "7.1.0", |
1708 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", | 1665 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", |
1709 | "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", | 1666 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", |
1710 | "dev": true, | ||
1711 | "requires": { | ||
1712 | "has-flag": "^3.0.0" | ||
1713 | } | ||
1714 | }, | ||
1715 | "which": { | ||
1716 | "version": "1.3.1", | ||
1717 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", | ||
1718 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", | ||
1719 | "dev": true, | 1667 | "dev": true, |
1720 | "requires": { | 1668 | "requires": { |
1721 | "isexe": "^2.0.0" | 1669 | "has-flag": "^4.0.0" |
1722 | } | 1670 | } |
1723 | } | 1671 | } |
1724 | } | 1672 | } |
@@ -1741,24 +1689,6 @@ | |||
1741 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", | 1689 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", |
1742 | "dev": true | 1690 | "dev": true |
1743 | }, | 1691 | }, |
1744 | "node-environment-flags": { | ||
1745 | "version": "1.0.6", | ||
1746 | "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", | ||
1747 | "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", | ||
1748 | "dev": true, | ||
1749 | "requires": { | ||
1750 | "object.getownpropertydescriptors": "^2.0.3", | ||
1751 | "semver": "^5.7.0" | ||
1752 | }, | ||
1753 | "dependencies": { | ||
1754 | "semver": { | ||
1755 | "version": "5.7.1", | ||
1756 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", | ||
1757 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", | ||
1758 | "dev": true | ||
1759 | } | ||
1760 | } | ||
1761 | }, | ||
1762 | "node-fetch": { | 1692 | "node-fetch": { |
1763 | "version": "2.6.0", | 1693 | "version": "2.6.0", |
1764 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", | 1694 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", |
@@ -1780,9 +1710,9 @@ | |||
1780 | } | 1710 | } |
1781 | }, | 1711 | }, |
1782 | "object-inspect": { | 1712 | "object-inspect": { |
1783 | "version": "1.7.0", | 1713 | "version": "1.8.0", |
1784 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", | 1714 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", |
1785 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", | 1715 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", |
1786 | "dev": true | 1716 | "dev": true |
1787 | }, | 1717 | }, |
1788 | "object-keys": { | 1718 | "object-keys": { |
@@ -1803,16 +1733,6 @@ | |||
1803 | "object-keys": "^1.0.11" | 1733 | "object-keys": "^1.0.11" |
1804 | } | 1734 | } |
1805 | }, | 1735 | }, |
1806 | "object.getownpropertydescriptors": { | ||
1807 | "version": "2.1.0", | ||
1808 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", | ||
1809 | "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", | ||
1810 | "dev": true, | ||
1811 | "requires": { | ||
1812 | "define-properties": "^1.1.3", | ||
1813 | "es-abstract": "^1.17.0-next.1" | ||
1814 | } | ||
1815 | }, | ||
1816 | "once": { | 1736 | "once": { |
1817 | "version": "1.4.0", | 1737 | "version": "1.4.0", |
1818 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | 1738 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
@@ -1822,15 +1742,6 @@ | |||
1822 | "wrappy": "1" | 1742 | "wrappy": "1" |
1823 | } | 1743 | } |
1824 | }, | 1744 | }, |
1825 | "onetime": { | ||
1826 | "version": "5.1.0", | ||
1827 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", | ||
1828 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", | ||
1829 | "dev": true, | ||
1830 | "requires": { | ||
1831 | "mimic-fn": "^2.1.0" | ||
1832 | } | ||
1833 | }, | ||
1834 | "optionator": { | 1745 | "optionator": { |
1835 | "version": "0.9.1", | 1746 | "version": "0.9.1", |
1836 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", | 1747 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", |
@@ -1883,12 +1794,12 @@ | |||
1883 | } | 1794 | } |
1884 | }, | 1795 | }, |
1885 | "p-locate": { | 1796 | "p-locate": { |
1886 | "version": "3.0.0", | 1797 | "version": "4.1.0", |
1887 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", | 1798 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", |
1888 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", | 1799 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", |
1889 | "dev": true, | 1800 | "dev": true, |
1890 | "requires": { | 1801 | "requires": { |
1891 | "p-limit": "^2.0.0" | 1802 | "p-limit": "^2.2.0" |
1892 | } | 1803 | } |
1893 | }, | 1804 | }, |
1894 | "p-try": { | 1805 | "p-try": { |
@@ -1933,9 +1844,9 @@ | |||
1933 | } | 1844 | } |
1934 | }, | 1845 | }, |
1935 | "path-exists": { | 1846 | "path-exists": { |
1936 | "version": "3.0.0", | 1847 | "version": "4.0.0", |
1937 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | 1848 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", |
1938 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | 1849 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", |
1939 | "dev": true | 1850 | "dev": true |
1940 | }, | 1851 | }, |
1941 | "path-is-absolute": { | 1852 | "path-is-absolute": { |
@@ -1980,6 +1891,19 @@ | |||
1980 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", | 1891 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", |
1981 | "dev": true | 1892 | "dev": true |
1982 | }, | 1893 | }, |
1894 | "promise.allsettled": { | ||
1895 | "version": "1.0.2", | ||
1896 | "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", | ||
1897 | "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", | ||
1898 | "dev": true, | ||
1899 | "requires": { | ||
1900 | "array.prototype.map": "^1.0.1", | ||
1901 | "define-properties": "^1.1.3", | ||
1902 | "es-abstract": "^1.17.0-next.1", | ||
1903 | "function-bind": "^1.1.1", | ||
1904 | "iterate-value": "^1.0.0" | ||
1905 | } | ||
1906 | }, | ||
1983 | "pseudomap": { | 1907 | "pseudomap": { |
1984 | "version": "1.0.2", | 1908 | "version": "1.0.2", |
1985 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", | 1909 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", |
@@ -2013,12 +1937,12 @@ | |||
2013 | } | 1937 | } |
2014 | }, | 1938 | }, |
2015 | "readdirp": { | 1939 | "readdirp": { |
2016 | "version": "3.2.0", | 1940 | "version": "3.3.0", |
2017 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", | 1941 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", |
2018 | "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", | 1942 | "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", |
2019 | "dev": true, | 1943 | "dev": true, |
2020 | "requires": { | 1944 | "requires": { |
2021 | "picomatch": "^2.0.4" | 1945 | "picomatch": "^2.0.7" |
2022 | } | 1946 | } |
2023 | }, | 1947 | }, |
2024 | "regexpp": { | 1948 | "regexpp": { |
@@ -2054,16 +1978,6 @@ | |||
2054 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", | 1978 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", |
2055 | "dev": true | 1979 | "dev": true |
2056 | }, | 1980 | }, |
2057 | "restore-cursor": { | ||
2058 | "version": "3.1.0", | ||
2059 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", | ||
2060 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", | ||
2061 | "dev": true, | ||
2062 | "requires": { | ||
2063 | "onetime": "^5.1.0", | ||
2064 | "signal-exit": "^3.0.2" | ||
2065 | } | ||
2066 | }, | ||
2067 | "rimraf": { | 1981 | "rimraf": { |
2068 | "version": "2.6.3", | 1982 | "version": "2.6.3", |
2069 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", | 1983 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", |
@@ -2074,54 +1988,31 @@ | |||
2074 | } | 1988 | } |
2075 | }, | 1989 | }, |
2076 | "rollup": { | 1990 | "rollup": { |
2077 | "version": "2.10.9", | 1991 | "version": "2.18.1", |
2078 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz", | 1992 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.18.1.tgz", |
2079 | "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", | 1993 | "integrity": "sha512-w4X77ADA+WTGlapC8Z6yggdJtODw3SBl6R2LSkA7ZW5MtdkgcB7sfaSD1UWyx8diXbMcGIb0eI9gCx/dyqOgNQ==", |
2080 | "dev": true, | 1994 | "dev": true, |
2081 | "requires": { | 1995 | "requires": { |
2082 | "fsevents": "~2.1.2" | 1996 | "fsevents": "~2.1.2" |
2083 | } | 1997 | } |
2084 | }, | 1998 | }, |
2085 | "run-async": { | ||
2086 | "version": "2.4.1", | ||
2087 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", | ||
2088 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", | ||
2089 | "dev": true | ||
2090 | }, | ||
2091 | "rxjs": { | ||
2092 | "version": "6.5.5", | ||
2093 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", | ||
2094 | "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", | ||
2095 | "dev": true, | ||
2096 | "requires": { | ||
2097 | "tslib": "^1.9.0" | ||
2098 | }, | ||
2099 | "dependencies": { | ||
2100 | "tslib": { | ||
2101 | "version": "1.13.0", | ||
2102 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", | ||
2103 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", | ||
2104 | "dev": true | ||
2105 | } | ||
2106 | } | ||
2107 | }, | ||
2108 | "safe-buffer": { | 1999 | "safe-buffer": { |
2109 | "version": "5.2.0", | 2000 | "version": "5.2.0", |
2110 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", | 2001 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", |
2111 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", | 2002 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", |
2112 | "dev": true | 2003 | "dev": true |
2113 | }, | 2004 | }, |
2114 | "safer-buffer": { | ||
2115 | "version": "2.1.2", | ||
2116 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
2117 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", | ||
2118 | "dev": true | ||
2119 | }, | ||
2120 | "semver": { | 2005 | "semver": { |
2121 | "version": "6.3.0", | 2006 | "version": "6.3.0", |
2122 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | 2007 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", |
2123 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" | 2008 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" |
2124 | }, | 2009 | }, |
2010 | "serialize-javascript": { | ||
2011 | "version": "3.0.0", | ||
2012 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.0.0.tgz", | ||
2013 | "integrity": "sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==", | ||
2014 | "dev": true | ||
2015 | }, | ||
2125 | "set-blocking": { | 2016 | "set-blocking": { |
2126 | "version": "2.0.0", | 2017 | "version": "2.0.0", |
2127 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", | 2018 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", |
@@ -2149,12 +2040,6 @@ | |||
2149 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", | 2040 | "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", |
2150 | "dev": true | 2041 | "dev": true |
2151 | }, | 2042 | }, |
2152 | "signal-exit": { | ||
2153 | "version": "3.0.3", | ||
2154 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", | ||
2155 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", | ||
2156 | "dev": true | ||
2157 | }, | ||
2158 | "slice-ansi": { | 2043 | "slice-ansi": { |
2159 | "version": "2.1.0", | 2044 | "version": "2.1.0", |
2160 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", | 2045 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", |
@@ -2164,14 +2049,6 @@ | |||
2164 | "ansi-styles": "^3.2.0", | 2049 | "ansi-styles": "^3.2.0", |
2165 | "astral-regex": "^1.0.0", | 2050 | "astral-regex": "^1.0.0", |
2166 | "is-fullwidth-code-point": "^2.0.0" | 2051 | "is-fullwidth-code-point": "^2.0.0" |
2167 | }, | ||
2168 | "dependencies": { | ||
2169 | "is-fullwidth-code-point": { | ||
2170 | "version": "2.0.0", | ||
2171 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2172 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2173 | "dev": true | ||
2174 | } | ||
2175 | } | 2052 | } |
2176 | }, | 2053 | }, |
2177 | "sourcemap-codec": { | 2054 | "sourcemap-codec": { |
@@ -2187,14 +2064,31 @@ | |||
2187 | "dev": true | 2064 | "dev": true |
2188 | }, | 2065 | }, |
2189 | "string-width": { | 2066 | "string-width": { |
2190 | "version": "4.2.0", | 2067 | "version": "3.1.0", |
2191 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", | 2068 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", |
2192 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", | 2069 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", |
2193 | "dev": true, | 2070 | "dev": true, |
2194 | "requires": { | 2071 | "requires": { |
2195 | "emoji-regex": "^8.0.0", | 2072 | "emoji-regex": "^7.0.1", |
2196 | "is-fullwidth-code-point": "^3.0.0", | 2073 | "is-fullwidth-code-point": "^2.0.0", |
2197 | "strip-ansi": "^6.0.0" | 2074 | "strip-ansi": "^5.1.0" |
2075 | }, | ||
2076 | "dependencies": { | ||
2077 | "ansi-regex": { | ||
2078 | "version": "4.1.0", | ||
2079 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
2080 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
2081 | "dev": true | ||
2082 | }, | ||
2083 | "strip-ansi": { | ||
2084 | "version": "5.2.0", | ||
2085 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
2086 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
2087 | "dev": true, | ||
2088 | "requires": { | ||
2089 | "ansi-regex": "^4.1.0" | ||
2090 | } | ||
2091 | } | ||
2198 | } | 2092 | } |
2199 | }, | 2093 | }, |
2200 | "string.prototype.trimend": { | 2094 | "string.prototype.trimend": { |
@@ -2207,28 +2101,6 @@ | |||
2207 | "es-abstract": "^1.17.5" | 2101 | "es-abstract": "^1.17.5" |
2208 | } | 2102 | } |
2209 | }, | 2103 | }, |
2210 | "string.prototype.trimleft": { | ||
2211 | "version": "2.1.2", | ||
2212 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", | ||
2213 | "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", | ||
2214 | "dev": true, | ||
2215 | "requires": { | ||
2216 | "define-properties": "^1.1.3", | ||
2217 | "es-abstract": "^1.17.5", | ||
2218 | "string.prototype.trimstart": "^1.0.0" | ||
2219 | } | ||
2220 | }, | ||
2221 | "string.prototype.trimright": { | ||
2222 | "version": "2.1.2", | ||
2223 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", | ||
2224 | "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", | ||
2225 | "dev": true, | ||
2226 | "requires": { | ||
2227 | "define-properties": "^1.1.3", | ||
2228 | "es-abstract": "^1.17.5", | ||
2229 | "string.prototype.trimend": "^1.0.0" | ||
2230 | } | ||
2231 | }, | ||
2232 | "string.prototype.trimstart": { | 2104 | "string.prototype.trimstart": { |
2233 | "version": "1.0.1", | 2105 | "version": "1.0.1", |
2234 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", | 2106 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", |
@@ -2282,46 +2154,6 @@ | |||
2282 | "lodash": "^4.17.14", | 2154 | "lodash": "^4.17.14", |
2283 | "slice-ansi": "^2.1.0", | 2155 | "slice-ansi": "^2.1.0", |
2284 | "string-width": "^3.0.0" | 2156 | "string-width": "^3.0.0" |
2285 | }, | ||
2286 | "dependencies": { | ||
2287 | "ansi-regex": { | ||
2288 | "version": "4.1.0", | ||
2289 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
2290 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
2291 | "dev": true | ||
2292 | }, | ||
2293 | "emoji-regex": { | ||
2294 | "version": "7.0.3", | ||
2295 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2296 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2297 | "dev": true | ||
2298 | }, | ||
2299 | "is-fullwidth-code-point": { | ||
2300 | "version": "2.0.0", | ||
2301 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2302 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2303 | "dev": true | ||
2304 | }, | ||
2305 | "string-width": { | ||
2306 | "version": "3.1.0", | ||
2307 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
2308 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
2309 | "dev": true, | ||
2310 | "requires": { | ||
2311 | "emoji-regex": "^7.0.1", | ||
2312 | "is-fullwidth-code-point": "^2.0.0", | ||
2313 | "strip-ansi": "^5.1.0" | ||
2314 | } | ||
2315 | }, | ||
2316 | "strip-ansi": { | ||
2317 | "version": "5.2.0", | ||
2318 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
2319 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
2320 | "dev": true, | ||
2321 | "requires": { | ||
2322 | "ansi-regex": "^4.1.0" | ||
2323 | } | ||
2324 | } | ||
2325 | } | 2157 | } |
2326 | }, | 2158 | }, |
2327 | "text-table": { | 2159 | "text-table": { |
@@ -2330,21 +2162,6 @@ | |||
2330 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", | 2162 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", |
2331 | "dev": true | 2163 | "dev": true |
2332 | }, | 2164 | }, |
2333 | "through": { | ||
2334 | "version": "2.3.8", | ||
2335 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", | ||
2336 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", | ||
2337 | "dev": true | ||
2338 | }, | ||
2339 | "tmp": { | ||
2340 | "version": "0.0.33", | ||
2341 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", | ||
2342 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", | ||
2343 | "dev": true, | ||
2344 | "requires": { | ||
2345 | "os-tmpdir": "~1.0.2" | ||
2346 | } | ||
2347 | }, | ||
2348 | "to-regex-range": { | 2165 | "to-regex-range": { |
2349 | "version": "5.0.1", | 2166 | "version": "5.0.1", |
2350 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", | 2167 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", |
@@ -2409,9 +2226,9 @@ | |||
2409 | } | 2226 | } |
2410 | }, | 2227 | }, |
2411 | "typescript": { | 2228 | "typescript": { |
2412 | "version": "3.9.3", | 2229 | "version": "3.9.5", |
2413 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", | 2230 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", |
2414 | "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==", | 2231 | "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==", |
2415 | "dev": true | 2232 | "dev": true |
2416 | }, | 2233 | }, |
2417 | "typescript-formatter": { | 2234 | "typescript-formatter": { |
@@ -2458,9 +2275,9 @@ | |||
2458 | "dev": true | 2275 | "dev": true |
2459 | }, | 2276 | }, |
2460 | "v8-compile-cache": { | 2277 | "v8-compile-cache": { |
2461 | "version": "2.1.0", | 2278 | "version": "2.1.1", |
2462 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", | 2279 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", |
2463 | "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", | 2280 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", |
2464 | "dev": true | 2281 | "dev": true |
2465 | }, | 2282 | }, |
2466 | "vsce": { | 2283 | "vsce": { |
@@ -2537,9 +2354,9 @@ | |||
2537 | "integrity": "sha512-tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==" | 2354 | "integrity": "sha512-tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==" |
2538 | }, | 2355 | }, |
2539 | "vscode-test": { | 2356 | "vscode-test": { |
2540 | "version": "1.3.0", | 2357 | "version": "1.4.0", |
2541 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.3.0.tgz", | 2358 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-1.4.0.tgz", |
2542 | "integrity": "sha512-LddukcBiSU2FVTDr3c1D8lwkiOvwlJdDL2hqVbn6gIz+rpTqUCkMZSKYm94Y1v0WXlHSDQBsXyY+tchWQgGVsw==", | 2359 | "integrity": "sha512-Jt7HNGvSE0+++Tvtq5wc4hiXLIr2OjDShz/gbAfM/mahQpy4rKBnmOK33D+MR67ATWviQhl+vpmU3p/qwSH/Pg==", |
2543 | "dev": true, | 2360 | "dev": true, |
2544 | "requires": { | 2361 | "requires": { |
2545 | "http-proxy-agent": "^2.1.0", | 2362 | "http-proxy-agent": "^2.1.0", |
@@ -2577,12 +2394,6 @@ | |||
2577 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", | 2394 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", |
2578 | "dev": true | 2395 | "dev": true |
2579 | }, | 2396 | }, |
2580 | "is-fullwidth-code-point": { | ||
2581 | "version": "2.0.0", | ||
2582 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2583 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2584 | "dev": true | ||
2585 | }, | ||
2586 | "string-width": { | 2397 | "string-width": { |
2587 | "version": "2.1.1", | 2398 | "version": "2.1.1", |
2588 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", | 2399 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", |
@@ -2610,6 +2421,12 @@ | |||
2610 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", | 2421 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", |
2611 | "dev": true | 2422 | "dev": true |
2612 | }, | 2423 | }, |
2424 | "workerpool": { | ||
2425 | "version": "6.0.0", | ||
2426 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", | ||
2427 | "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", | ||
2428 | "dev": true | ||
2429 | }, | ||
2613 | "wrap-ansi": { | 2430 | "wrap-ansi": { |
2614 | "version": "5.1.0", | 2431 | "version": "5.1.0", |
2615 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", | 2432 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", |
@@ -2627,29 +2444,6 @@ | |||
2627 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 2444 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", |
2628 | "dev": true | 2445 | "dev": true |
2629 | }, | 2446 | }, |
2630 | "emoji-regex": { | ||
2631 | "version": "7.0.3", | ||
2632 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2633 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2634 | "dev": true | ||
2635 | }, | ||
2636 | "is-fullwidth-code-point": { | ||
2637 | "version": "2.0.0", | ||
2638 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2639 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2640 | "dev": true | ||
2641 | }, | ||
2642 | "string-width": { | ||
2643 | "version": "3.1.0", | ||
2644 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||
2645 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||
2646 | "dev": true, | ||
2647 | "requires": { | ||
2648 | "emoji-regex": "^7.0.1", | ||
2649 | "is-fullwidth-code-point": "^2.0.0", | ||
2650 | "strip-ansi": "^5.1.0" | ||
2651 | } | ||
2652 | }, | ||
2653 | "strip-ansi": { | 2447 | "strip-ansi": { |
2654 | "version": "5.2.0", | 2448 | "version": "5.2.0", |
2655 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 2449 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
@@ -2706,43 +2500,39 @@ | |||
2706 | "yargs-parser": "^13.1.2" | 2500 | "yargs-parser": "^13.1.2" |
2707 | }, | 2501 | }, |
2708 | "dependencies": { | 2502 | "dependencies": { |
2709 | "ansi-regex": { | 2503 | "find-up": { |
2710 | "version": "4.1.0", | 2504 | "version": "3.0.0", |
2711 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | 2505 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", |
2712 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | 2506 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", |
2713 | "dev": true | 2507 | "dev": true, |
2714 | }, | 2508 | "requires": { |
2715 | "emoji-regex": { | 2509 | "locate-path": "^3.0.0" |
2716 | "version": "7.0.3", | 2510 | } |
2717 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||
2718 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", | ||
2719 | "dev": true | ||
2720 | }, | ||
2721 | "is-fullwidth-code-point": { | ||
2722 | "version": "2.0.0", | ||
2723 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||
2724 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", | ||
2725 | "dev": true | ||
2726 | }, | 2511 | }, |
2727 | "string-width": { | 2512 | "locate-path": { |
2728 | "version": "3.1.0", | 2513 | "version": "3.0.0", |
2729 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | 2514 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", |
2730 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | 2515 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", |
2731 | "dev": true, | 2516 | "dev": true, |
2732 | "requires": { | 2517 | "requires": { |
2733 | "emoji-regex": "^7.0.1", | 2518 | "p-locate": "^3.0.0", |
2734 | "is-fullwidth-code-point": "^2.0.0", | 2519 | "path-exists": "^3.0.0" |
2735 | "strip-ansi": "^5.1.0" | ||
2736 | } | 2520 | } |
2737 | }, | 2521 | }, |
2738 | "strip-ansi": { | 2522 | "p-locate": { |
2739 | "version": "5.2.0", | 2523 | "version": "3.0.0", |
2740 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | 2524 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", |
2741 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | 2525 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", |
2742 | "dev": true, | 2526 | "dev": true, |
2743 | "requires": { | 2527 | "requires": { |
2744 | "ansi-regex": "^4.1.0" | 2528 | "p-limit": "^2.0.0" |
2745 | } | 2529 | } |
2530 | }, | ||
2531 | "path-exists": { | ||
2532 | "version": "3.0.0", | ||
2533 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||
2534 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | ||
2535 | "dev": true | ||
2746 | } | 2536 | } |
2747 | } | 2537 | } |
2748 | }, | 2538 | }, |
diff --git a/editors/code/package.json b/editors/code/package.json index f542a490a..fcb101fc6 100644 --- a/editors/code/package.json +++ b/editors/code/package.json | |||
@@ -39,24 +39,24 @@ | |||
39 | "vscode-languageclient": "7.0.0-next.1" | 39 | "vscode-languageclient": "7.0.0-next.1" |
40 | }, | 40 | }, |
41 | "devDependencies": { | 41 | "devDependencies": { |
42 | "@rollup/plugin-commonjs": "^12.0.0", | 42 | "@rollup/plugin-commonjs": "^13.0.0", |
43 | "@rollup/plugin-node-resolve": "^8.0.0", | 43 | "@rollup/plugin-node-resolve": "^8.1.0", |
44 | "@types/glob": "^7.1.1", | 44 | "@types/glob": "^7.1.2", |
45 | "@types/mocha": "^7.0.2", | 45 | "@types/mocha": "^7.0.2", |
46 | "@types/node": "^14.0.5", | 46 | "@types/node": "~12.7.0", |
47 | "@types/node-fetch": "^2.5.7", | 47 | "@types/node-fetch": "^2.5.7", |
48 | "@types/vscode": "^1.44.1", | 48 | "@types/vscode": "^1.44.1", |
49 | "@typescript-eslint/eslint-plugin": "^3.0.0", | 49 | "@typescript-eslint/eslint-plugin": "^3.4.0", |
50 | "@typescript-eslint/parser": "^3.0.0", | 50 | "@typescript-eslint/parser": "^3.4.0", |
51 | "eslint": "^7.0.0", | 51 | "eslint": "^7.3.1", |
52 | "glob": "^7.1.6", | 52 | "glob": "^7.1.6", |
53 | "mocha": "^7.1.2", | 53 | "mocha": "^8.0.1", |
54 | "rollup": "^2.10.7", | 54 | "rollup": "^2.18.1", |
55 | "tslib": "^2.0.0", | 55 | "tslib": "^2.0.0", |
56 | "typescript": "^3.9.3", | 56 | "typescript": "^3.9.5", |
57 | "typescript-formatter": "^7.2.2", | 57 | "typescript-formatter": "^7.2.2", |
58 | "vsce": "^1.75.0", | 58 | "vsce": "^1.75.0", |
59 | "vscode-test": "^1.3.0" | 59 | "vscode-test": "^1.4.0" |
60 | }, | 60 | }, |
61 | "activationEvents": [ | 61 | "activationEvents": [ |
62 | "onLanguage:rust", | 62 | "onLanguage:rust", |
diff --git a/editors/code/rollup.config.js b/editors/code/rollup.config.js index 4b4c47f4a..27abf75ac 100644 --- a/editors/code/rollup.config.js +++ b/editors/code/rollup.config.js | |||
@@ -16,7 +16,6 @@ export default { | |||
16 | external: [...nodeBuiltins, 'vscode'], | 16 | external: [...nodeBuiltins, 'vscode'], |
17 | output: { | 17 | output: { |
18 | file: './out/src/main.js', | 18 | file: './out/src/main.js', |
19 | format: 'cjs', | 19 | format: 'cjs' |
20 | exports: 'named' | ||
21 | } | 20 | } |
22 | }; | 21 | }; |