aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_hir/src/ty/tests.rs12
-rw-r--r--crates/ra_hir/src/ty/tests/data/literals.txt4
-rw-r--r--crates/ra_ide_api/src/hover.rs5
-rw-r--r--crates/ra_syntax/src/ast/generated.rs56
-rw-r--r--crates/ra_syntax/src/grammar.ron4
-rw-r--r--crates/ra_syntax/src/lexer/strings.rs15
-rw-r--r--editors/code/package-lock.json90
7 files changed, 120 insertions, 66 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs
index cbdb2a4b7..8aacb1a7f 100644
--- a/crates/ra_hir/src/ty/tests.rs
+++ b/crates/ra_hir/src/ty/tests.rs
@@ -135,7 +135,7 @@ fn test(a: &u32, b: &mut u32, c: *const u32, d: *mut u32) {
135#[test] 135#[test]
136fn infer_literals() { 136fn infer_literals() {
137 check_inference( 137 check_inference(
138 r#" 138 r##"
139fn test() { 139fn test() {
140 5i32; 140 5i32;
141 "hello"; 141 "hello";
@@ -146,8 +146,14 @@ fn test() {
146 5000; 146 5000;
147 false; 147 false;
148 true; 148 true;
149} 149 r#"
150"#, 150 //! doc
151 // non-doc
152 mod foo {}
153 "#;
154 br#"yolo"#;
155}
156"##,
151 "literals.txt", 157 "literals.txt",
152 ); 158 );
153} 159}
diff --git a/crates/ra_hir/src/ty/tests/data/literals.txt b/crates/ra_hir/src/ty/tests/data/literals.txt
index 6e82f458f..84ee2c11b 100644
--- a/crates/ra_hir/src/ty/tests/data/literals.txt
+++ b/crates/ra_hir/src/ty/tests/data/literals.txt
@@ -1,4 +1,4 @@
1[11; 111) '{ ...rue; }': () 1[11; 201) '{ ...o"#; }': ()
2[17; 21) '5i32': i32 2[17; 21) '5i32': i32
3[27; 34) '"hello"': &str 3[27; 34) '"hello"': &str
4[40; 48) 'b"bytes"': &[u8] 4[40; 48) 'b"bytes"': &[u8]
@@ -8,3 +8,5 @@
8[83; 87) '5000': i32 8[83; 87) '5000': i32
9[93; 98) 'false': bool 9[93; 98) 'false': bool
10[104; 108) 'true': bool 10[104; 108) 'true': bool
11[114; 182) 'r#" ... "#': &str
12[188; 198) 'br#"yolo"#': &[u8]
diff --git a/crates/ra_ide_api/src/hover.rs b/crates/ra_ide_api/src/hover.rs
index d73c5bc31..107b23833 100644
--- a/crates/ra_ide_api/src/hover.rs
+++ b/crates/ra_ide_api/src/hover.rs
@@ -230,20 +230,19 @@ mod tests {
230 assert_eq!("[unknown]", &type_name); 230 assert_eq!("[unknown]", &type_name);
231 } 231 }
232 232
233 // FIXME: improve type_of to make this work
234 #[test] 233 #[test]
235 fn test_type_of_for_expr_2() { 234 fn test_type_of_for_expr_2() {
236 let (analysis, range) = single_file_with_range( 235 let (analysis, range) = single_file_with_range(
237 " 236 "
238 fn main() { 237 fn main() {
239 let foo: usize = 1; 238 let foo: usize = 1;
240 let bar = <|>1 + foo_test<|>; 239 let bar = <|>1 + foo<|>;
241 } 240 }
242 ", 241 ",
243 ); 242 );
244 243
245 let type_name = analysis.type_of(range).unwrap().unwrap(); 244 let type_name = analysis.type_of(range).unwrap().unwrap();
246 assert_eq!("[unknown]", &type_name); 245 assert_eq!("usize", &type_name);
247 } 246 }
248 247
249} 248}
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs
index cad845ec0..3471d5226 100644
--- a/crates/ra_syntax/src/ast/generated.rs
+++ b/crates/ra_syntax/src/ast/generated.rs
@@ -1422,6 +1422,8 @@ unsafe impl TransparentNewType for LiteralExpr {
1422pub enum LiteralExprKind<'a> { 1422pub enum LiteralExprKind<'a> {
1423 String(&'a String), 1423 String(&'a String),
1424 ByteString(&'a ByteString), 1424 ByteString(&'a ByteString),
1425 RawString(&'a RawString),
1426 RawByteString(&'a RawByteString),
1425 Char(&'a Char), 1427 Char(&'a Char),
1426 Byte(&'a Byte), 1428 Byte(&'a Byte),
1427 IntNumber(&'a IntNumber), 1429 IntNumber(&'a IntNumber),
@@ -1435,6 +1437,8 @@ impl AstNode for LiteralExpr {
1435 match syntax.kind() { 1437 match syntax.kind() {
1436 | STRING 1438 | STRING
1437 | BYTE_STRING 1439 | BYTE_STRING
1440 | RAW_STRING
1441 | RAW_BYTE_STRING
1438 | CHAR 1442 | CHAR
1439 | BYTE 1443 | BYTE
1440 | INT_NUMBER 1444 | INT_NUMBER
@@ -1453,6 +1457,8 @@ impl LiteralExpr {
1453 match self.syntax.kind() { 1457 match self.syntax.kind() {
1454 STRING => LiteralExprKind::String(String::cast(&self.syntax).unwrap()), 1458 STRING => LiteralExprKind::String(String::cast(&self.syntax).unwrap()),
1455 BYTE_STRING => LiteralExprKind::ByteString(ByteString::cast(&self.syntax).unwrap()), 1459 BYTE_STRING => LiteralExprKind::ByteString(ByteString::cast(&self.syntax).unwrap()),
1460 RAW_STRING => LiteralExprKind::RawString(RawString::cast(&self.syntax).unwrap()),
1461 RAW_BYTE_STRING => LiteralExprKind::RawByteString(RawByteString::cast(&self.syntax).unwrap()),
1456 CHAR => LiteralExprKind::Char(Char::cast(&self.syntax).unwrap()), 1462 CHAR => LiteralExprKind::Char(Char::cast(&self.syntax).unwrap()),
1457 BYTE => LiteralExprKind::Byte(Byte::cast(&self.syntax).unwrap()), 1463 BYTE => LiteralExprKind::Byte(Byte::cast(&self.syntax).unwrap()),
1458 INT_NUMBER => LiteralExprKind::IntNumber(IntNumber::cast(&self.syntax).unwrap()), 1464 INT_NUMBER => LiteralExprKind::IntNumber(IntNumber::cast(&self.syntax).unwrap()),
@@ -2543,6 +2549,56 @@ impl AstNode for RangePat {
2543 2549
2544impl RangePat {} 2550impl RangePat {}
2545 2551
2552// RawByteString
2553#[derive(Debug, PartialEq, Eq, Hash)]
2554#[repr(transparent)]
2555pub struct RawByteString {
2556 pub(crate) syntax: SyntaxNode,
2557}
2558unsafe impl TransparentNewType for RawByteString {
2559 type Repr = rowan::SyntaxNode<RaTypes>;
2560}
2561
2562impl AstNode for RawByteString {
2563 fn cast(syntax: &SyntaxNode) -> Option<&Self> {
2564 match syntax.kind() {
2565 RAW_BYTE_STRING => Some(RawByteString::from_repr(syntax.into_repr())),
2566 _ => None,
2567 }
2568 }
2569 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2570 fn to_owned(&self) -> TreeArc<RawByteString> { TreeArc::cast(self.syntax.to_owned()) }
2571}
2572
2573
2574impl ast::AstToken for RawByteString {}
2575impl RawByteString {}
2576
2577// RawString
2578#[derive(Debug, PartialEq, Eq, Hash)]
2579#[repr(transparent)]
2580pub struct RawString {
2581 pub(crate) syntax: SyntaxNode,
2582}
2583unsafe impl TransparentNewType for RawString {
2584 type Repr = rowan::SyntaxNode<RaTypes>;
2585}
2586
2587impl AstNode for RawString {
2588 fn cast(syntax: &SyntaxNode) -> Option<&Self> {
2589 match syntax.kind() {
2590 RAW_STRING => Some(RawString::from_repr(syntax.into_repr())),
2591 _ => None,
2592 }
2593 }
2594 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2595 fn to_owned(&self) -> TreeArc<RawString> { TreeArc::cast(self.syntax.to_owned()) }
2596}
2597
2598
2599impl ast::AstToken for RawString {}
2600impl RawString {}
2601
2546// RefExpr 2602// RefExpr
2547#[derive(Debug, PartialEq, Eq, Hash)] 2603#[derive(Debug, PartialEq, Eq, Hash)]
2548#[repr(transparent)] 2604#[repr(transparent)]
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron
index 34d2a27d1..bd8c5b411 100644
--- a/crates/ra_syntax/src/grammar.ron
+++ b/crates/ra_syntax/src/grammar.ron
@@ -430,7 +430,9 @@ Grammar(
430 "IntNumber": ( traits: ["AstToken"] ), 430 "IntNumber": ( traits: ["AstToken"] ),
431 "FloatNumber": ( traits: ["AstToken"] ), 431 "FloatNumber": ( traits: ["AstToken"] ),
432 "String": ( traits: ["AstToken"] ), 432 "String": ( traits: ["AstToken"] ),
433 "RawString": ( traits: ["AstToken"] ),
433 "Byte": ( traits: ["AstToken"] ), 434 "Byte": ( traits: ["AstToken"] ),
435 "RawByteString": ( traits: ["AstToken"] ),
434 "ByteString": ( traits: ["AstToken"] ), 436 "ByteString": ( traits: ["AstToken"] ),
435 "Char": ( traits: ["AstToken"] ), 437 "Char": ( traits: ["AstToken"] ),
436 "TrueKw": ( traits: ["AstToken"] ), 438 "TrueKw": ( traits: ["AstToken"] ),
@@ -439,6 +441,8 @@ Grammar(
439 enum: [ 441 enum: [
440 "String", 442 "String",
441 "ByteString", 443 "ByteString",
444 "RawString",
445 "RawByteString",
442 "Char", 446 "Char",
443 "Byte", 447 "Byte",
444 "IntNumber", 448 "IntNumber",
diff --git a/crates/ra_syntax/src/lexer/strings.rs b/crates/ra_syntax/src/lexer/strings.rs
index 5090feae6..0865b7f3b 100644
--- a/crates/ra_syntax/src/lexer/strings.rs
+++ b/crates/ra_syntax/src/lexer/strings.rs
@@ -49,7 +49,7 @@ pub(crate) fn scan_byte_char_or_string(ptr: &mut Ptr) -> SyntaxKind {
49 BYTE_STRING 49 BYTE_STRING
50 } 50 }
51 'r' => { 51 'r' => {
52 scan_raw_byte_string(ptr); 52 scan_raw_string(ptr);
53 RAW_BYTE_STRING 53 RAW_BYTE_STRING
54 } 54 }
55 _ => unreachable!(), 55 _ => unreachable!(),
@@ -108,16 +108,3 @@ fn scan_byte(ptr: &mut Ptr) {
108fn scan_byte_string(ptr: &mut Ptr) { 108fn scan_byte_string(ptr: &mut Ptr) {
109 scan_string(ptr) 109 scan_string(ptr)
110} 110}
111
112fn scan_raw_byte_string(ptr: &mut Ptr) {
113 if !ptr.at('"') {
114 return;
115 }
116 ptr.bump();
117
118 while let Some(c) = ptr.bump() {
119 if c == '"' {
120 return;
121 }
122 }
123}
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json
index 86313d4cc..a36fb2f1c 100644
--- a/editors/code/package-lock.json
+++ b/editors/code/package-lock.json
@@ -183,7 +183,7 @@
183 "dependencies": { 183 "dependencies": {
184 "chalk": { 184 "chalk": {
185 "version": "1.1.3", 185 "version": "1.1.3",
186 "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 186 "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
187 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 187 "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
188 "dev": true, 188 "dev": true,
189 "requires": { 189 "requires": {
@@ -348,7 +348,7 @@
348 "dependencies": { 348 "dependencies": {
349 "readable-stream": { 349 "readable-stream": {
350 "version": "2.3.6", 350 "version": "2.3.6",
351 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 351 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
352 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 352 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
353 "dev": true, 353 "dev": true,
354 "requires": { 354 "requires": {
@@ -363,7 +363,7 @@
363 }, 363 },
364 "string_decoder": { 364 "string_decoder": {
365 "version": "1.1.1", 365 "version": "1.1.1",
366 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 366 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
367 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 367 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
368 "dev": true, 368 "dev": true,
369 "requires": { 369 "requires": {
@@ -425,7 +425,7 @@
425 }, 425 },
426 "css-select": { 426 "css-select": {
427 "version": "1.2.0", 427 "version": "1.2.0",
428 "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", 428 "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
429 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", 429 "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
430 "dev": true, 430 "dev": true,
431 "requires": { 431 "requires": {
@@ -461,7 +461,7 @@
461 }, 461 },
462 "deep-assign": { 462 "deep-assign": {
463 "version": "1.0.0", 463 "version": "1.0.0",
464 "resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz", 464 "resolved": "http://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz",
465 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=", 465 "integrity": "sha1-sJJ0O+hCfcYh6gBnzex+cN0Z83s=",
466 "dev": true, 466 "dev": true,
467 "requires": { 467 "requires": {
@@ -507,7 +507,7 @@
507 "dependencies": { 507 "dependencies": {
508 "domelementtype": { 508 "domelementtype": {
509 "version": "1.1.3", 509 "version": "1.1.3",
510 "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", 510 "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
511 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", 511 "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
512 "dev": true 512 "dev": true
513 } 513 }
@@ -540,7 +540,7 @@
540 }, 540 },
541 "duplexer": { 541 "duplexer": {
542 "version": "0.1.1", 542 "version": "0.1.1",
543 "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", 543 "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
544 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", 544 "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
545 "dev": true 545 "dev": true
546 }, 546 },
@@ -558,7 +558,7 @@
558 "dependencies": { 558 "dependencies": {
559 "readable-stream": { 559 "readable-stream": {
560 "version": "2.3.6", 560 "version": "2.3.6",
561 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 561 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
562 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 562 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
563 "dev": true, 563 "dev": true,
564 "requires": { 564 "requires": {
@@ -573,7 +573,7 @@
573 }, 573 },
574 "string_decoder": { 574 "string_decoder": {
575 "version": "1.1.1", 575 "version": "1.1.1",
576 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 576 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
577 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 577 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
578 "dev": true, 578 "dev": true,
579 "requires": { 579 "requires": {
@@ -627,7 +627,7 @@
627 }, 627 },
628 "event-stream": { 628 "event-stream": {
629 "version": "3.3.4", 629 "version": "3.3.4",
630 "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", 630 "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
631 "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", 631 "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
632 "dev": true, 632 "dev": true,
633 "requires": { 633 "requires": {
@@ -694,7 +694,7 @@
694 "dependencies": { 694 "dependencies": {
695 "readable-stream": { 695 "readable-stream": {
696 "version": "2.3.6", 696 "version": "2.3.6",
697 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 697 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
698 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 698 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
699 "dev": true, 699 "dev": true,
700 "requires": { 700 "requires": {
@@ -709,7 +709,7 @@
709 }, 709 },
710 "string_decoder": { 710 "string_decoder": {
711 "version": "1.1.1", 711 "version": "1.1.1",
712 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 712 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
713 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 713 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
714 "dev": true, 714 "dev": true,
715 "requires": { 715 "requires": {
@@ -828,7 +828,7 @@
828 "dependencies": { 828 "dependencies": {
829 "readable-stream": { 829 "readable-stream": {
830 "version": "2.3.6", 830 "version": "2.3.6",
831 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 831 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
832 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 832 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
833 "dev": true, 833 "dev": true,
834 "requires": { 834 "requires": {
@@ -843,7 +843,7 @@
843 }, 843 },
844 "string_decoder": { 844 "string_decoder": {
845 "version": "1.1.1", 845 "version": "1.1.1",
846 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 846 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
847 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 847 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
848 "dev": true, 848 "dev": true,
849 "requires": { 849 "requires": {
@@ -904,7 +904,7 @@
904 }, 904 },
905 "readable-stream": { 905 "readable-stream": {
906 "version": "1.0.34", 906 "version": "1.0.34",
907 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 907 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
908 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 908 "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
909 "dev": true, 909 "dev": true,
910 "requires": { 910 "requires": {
@@ -916,13 +916,13 @@
916 }, 916 },
917 "string_decoder": { 917 "string_decoder": {
918 "version": "0.10.31", 918 "version": "0.10.31",
919 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 919 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
920 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", 920 "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
921 "dev": true 921 "dev": true
922 }, 922 },
923 "through2": { 923 "through2": {
924 "version": "0.6.5", 924 "version": "0.6.5",
925 "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", 925 "resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
926 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", 926 "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
927 "dev": true, 927 "dev": true,
928 "requires": { 928 "requires": {
@@ -1192,7 +1192,7 @@
1192 }, 1192 },
1193 "is-obj": { 1193 "is-obj": {
1194 "version": "1.0.1", 1194 "version": "1.0.1",
1195 "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", 1195 "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
1196 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", 1196 "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
1197 "dev": true 1197 "dev": true
1198 }, 1198 },
@@ -1319,7 +1319,7 @@
1319 }, 1319 },
1320 "kind-of": { 1320 "kind-of": {
1321 "version": "1.1.0", 1321 "version": "1.1.0",
1322 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", 1322 "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz",
1323 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", 1323 "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=",
1324 "dev": true 1324 "dev": true
1325 }, 1325 },
@@ -1334,7 +1334,7 @@
1334 "dependencies": { 1334 "dependencies": {
1335 "readable-stream": { 1335 "readable-stream": {
1336 "version": "2.3.6", 1336 "version": "2.3.6",
1337 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1337 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1338 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1338 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1339 "dev": true, 1339 "dev": true,
1340 "requires": { 1340 "requires": {
@@ -1349,7 +1349,7 @@
1349 }, 1349 },
1350 "string_decoder": { 1350 "string_decoder": {
1351 "version": "1.1.1", 1351 "version": "1.1.1",
1352 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1352 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1353 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1353 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1354 "dev": true, 1354 "dev": true,
1355 "requires": { 1355 "requires": {
@@ -1384,7 +1384,7 @@
1384 }, 1384 },
1385 "map-stream": { 1385 "map-stream": {
1386 "version": "0.1.0", 1386 "version": "0.1.0",
1387 "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", 1387 "resolved": "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
1388 "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", 1388 "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=",
1389 "dev": true 1389 "dev": true
1390 }, 1390 },
@@ -1439,13 +1439,13 @@
1439 }, 1439 },
1440 "minimist": { 1440 "minimist": {
1441 "version": "0.0.8", 1441 "version": "0.0.8",
1442 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 1442 "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
1443 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 1443 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
1444 "dev": true 1444 "dev": true
1445 }, 1445 },
1446 "mkdirp": { 1446 "mkdirp": {
1447 "version": "0.5.1", 1447 "version": "0.5.1",
1448 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 1448 "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1449 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 1449 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1450 "dev": true, 1450 "dev": true,
1451 "requires": { 1451 "requires": {
@@ -1618,7 +1618,7 @@
1618 "dependencies": { 1618 "dependencies": {
1619 "readable-stream": { 1619 "readable-stream": {
1620 "version": "2.3.6", 1620 "version": "2.3.6",
1621 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 1621 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
1622 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 1622 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
1623 "dev": true, 1623 "dev": true,
1624 "requires": { 1624 "requires": {
@@ -1633,7 +1633,7 @@
1633 }, 1633 },
1634 "string_decoder": { 1634 "string_decoder": {
1635 "version": "1.1.1", 1635 "version": "1.1.1",
1636 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1636 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1637 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1637 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1638 "dev": true, 1638 "dev": true,
1639 "requires": { 1639 "requires": {
@@ -1644,13 +1644,13 @@
1644 }, 1644 },
1645 "os-homedir": { 1645 "os-homedir": {
1646 "version": "1.0.2", 1646 "version": "1.0.2",
1647 "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 1647 "resolved": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1648 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", 1648 "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
1649 "dev": true 1649 "dev": true
1650 }, 1650 },
1651 "os-tmpdir": { 1651 "os-tmpdir": {
1652 "version": "1.0.2", 1652 "version": "1.0.2",
1653 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1653 "resolved": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1654 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1654 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1655 "dev": true 1655 "dev": true
1656 }, 1656 },
@@ -1666,7 +1666,7 @@
1666 }, 1666 },
1667 "parse-semver": { 1667 "parse-semver": {
1668 "version": "1.1.1", 1668 "version": "1.1.1",
1669 "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", 1669 "resolved": "http://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz",
1670 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=", 1670 "integrity": "sha1-mkr9bfBj3Egm+T+6SpnPIj9mbLg=",
1671 "dev": true, 1671 "dev": true,
1672 "requires": { 1672 "requires": {
@@ -1690,7 +1690,7 @@
1690 }, 1690 },
1691 "path-is-absolute": { 1691 "path-is-absolute": {
1692 "version": "1.0.1", 1692 "version": "1.0.1",
1693 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1693 "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1694 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1694 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1695 "dev": true 1695 "dev": true
1696 }, 1696 },
@@ -1702,7 +1702,7 @@
1702 }, 1702 },
1703 "pause-stream": { 1703 "pause-stream": {
1704 "version": "0.0.11", 1704 "version": "0.0.11",
1705 "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 1705 "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1706 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 1706 "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1707 "dev": true, 1707 "dev": true,
1708 "requires": { 1708 "requires": {
@@ -1955,7 +1955,7 @@
1955 }, 1955 },
1956 "split": { 1956 "split": {
1957 "version": "0.3.3", 1957 "version": "0.3.3",
1958 "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", 1958 "resolved": "http://registry.npmjs.org/split/-/split-0.3.3.tgz",
1959 "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", 1959 "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
1960 "dev": true, 1960 "dev": true,
1961 "requires": { 1961 "requires": {
@@ -1964,7 +1964,7 @@
1964 }, 1964 },
1965 "sprintf-js": { 1965 "sprintf-js": {
1966 "version": "1.0.3", 1966 "version": "1.0.3",
1967 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 1967 "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1968 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 1968 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1969 "dev": true 1969 "dev": true
1970 }, 1970 },
@@ -1993,7 +1993,7 @@
1993 }, 1993 },
1994 "stream-combiner": { 1994 "stream-combiner": {
1995 "version": "0.0.4", 1995 "version": "0.0.4",
1996 "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", 1996 "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
1997 "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", 1997 "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
1998 "dev": true, 1998 "dev": true,
1999 "requires": { 1999 "requires": {
@@ -2017,7 +2017,7 @@
2017 "dependencies": { 2017 "dependencies": {
2018 "readable-stream": { 2018 "readable-stream": {
2019 "version": "2.3.6", 2019 "version": "2.3.6",
2020 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 2020 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2021 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 2021 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2022 "dev": true, 2022 "dev": true,
2023 "requires": { 2023 "requires": {
@@ -2032,7 +2032,7 @@
2032 }, 2032 },
2033 "string_decoder": { 2033 "string_decoder": {
2034 "version": "1.1.1", 2034 "version": "1.1.1",
2035 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2035 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2036 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2036 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2037 "dev": true, 2037 "dev": true,
2038 "requires": { 2038 "requires": {
@@ -2058,7 +2058,7 @@
2058 }, 2058 },
2059 "strip-ansi": { 2059 "strip-ansi": {
2060 "version": "3.0.1", 2060 "version": "3.0.1",
2061 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2061 "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2062 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2062 "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2063 "dev": true, 2063 "dev": true,
2064 "requires": { 2064 "requires": {
@@ -2073,7 +2073,7 @@
2073 }, 2073 },
2074 "tar": { 2074 "tar": {
2075 "version": "2.2.1", 2075 "version": "2.2.1",
2076 "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", 2076 "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
2077 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", 2077 "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
2078 "dev": true, 2078 "dev": true,
2079 "requires": { 2079 "requires": {
@@ -2084,7 +2084,7 @@
2084 }, 2084 },
2085 "through": { 2085 "through": {
2086 "version": "2.3.8", 2086 "version": "2.3.8",
2087 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2087 "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
2088 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2088 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2089 "dev": true 2089 "dev": true
2090 }, 2090 },
@@ -2100,7 +2100,7 @@
2100 "dependencies": { 2100 "dependencies": {
2101 "readable-stream": { 2101 "readable-stream": {
2102 "version": "2.3.6", 2102 "version": "2.3.6",
2103 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 2103 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2104 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 2104 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2105 "dev": true, 2105 "dev": true,
2106 "requires": { 2106 "requires": {
@@ -2115,7 +2115,7 @@
2115 }, 2115 },
2116 "string_decoder": { 2116 "string_decoder": {
2117 "version": "1.1.1", 2117 "version": "1.1.1",
2118 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2118 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2119 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2119 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2120 "dev": true, 2120 "dev": true,
2121 "requires": { 2121 "requires": {
@@ -2223,7 +2223,7 @@
2223 }, 2223 },
2224 "tunnel": { 2224 "tunnel": {
2225 "version": "0.0.4", 2225 "version": "0.0.4",
2226 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", 2226 "resolved": "http://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz",
2227 "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=", 2227 "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM=",
2228 "dev": true 2228 "dev": true
2229 }, 2229 },
@@ -2254,7 +2254,7 @@
2254 "dependencies": { 2254 "dependencies": {
2255 "underscore": { 2255 "underscore": {
2256 "version": "1.8.3", 2256 "version": "1.8.3",
2257 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", 2257 "resolved": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
2258 "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", 2258 "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
2259 "dev": true 2259 "dev": true
2260 } 2260 }
@@ -2397,7 +2397,7 @@
2397 }, 2397 },
2398 "readable-stream": { 2398 "readable-stream": {
2399 "version": "2.3.6", 2399 "version": "2.3.6",
2400 "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 2400 "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2401 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 2401 "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2402 "dev": true, 2402 "dev": true,
2403 "requires": { 2403 "requires": {
@@ -2412,7 +2412,7 @@
2412 }, 2412 },
2413 "string_decoder": { 2413 "string_decoder": {
2414 "version": "1.1.1", 2414 "version": "1.1.1",
2415 "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2415 "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2416 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2416 "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2417 "dev": true, 2417 "dev": true,
2418 "requires": { 2418 "requires": {