diff options
-rw-r--r-- | crates/ra_hir/src/code_model_impl/function/scope.rs | 2 | ||||
-rw-r--r-- | crates/ra_hir/src/expr.rs | 9 | ||||
-rw-r--r-- | crates/ra_hir/src/ty.rs | 109 | ||||
-rw-r--r-- | editors/code/package-lock.json | 90 |
4 files changed, 90 insertions, 120 deletions
diff --git a/crates/ra_hir/src/code_model_impl/function/scope.rs b/crates/ra_hir/src/code_model_impl/function/scope.rs index 220c71f74..3a7d53a93 100644 --- a/crates/ra_hir/src/code_model_impl/function/scope.rs +++ b/crates/ra_hir/src/code_model_impl/function/scope.rs | |||
@@ -97,8 +97,6 @@ impl FnScopes { | |||
97 | }; | 97 | }; |
98 | self.scopes[scope].entries.push(entry) | 98 | self.scopes[scope].entries.push(entry) |
99 | } | 99 | } |
100 | // FIXME: isn't every call to add_binding starting an entirely new | ||
101 | // tree walk!? | ||
102 | p => p.walk_child_pats(|pat| self.add_bindings(body, scope, pat)), | 100 | p => p.walk_child_pats(|pat| self.add_bindings(body, scope, pat)), |
103 | } | 101 | } |
104 | } | 102 | } |
diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs index c05bbc442..1d0beb148 100644 --- a/crates/ra_hir/src/expr.rs +++ b/crates/ra_hir/src/expr.rs | |||
@@ -329,8 +329,6 @@ impl Expr { | |||
329 | pub struct PatId(RawId); | 329 | pub struct PatId(RawId); |
330 | impl_arena_id!(PatId); | 330 | impl_arena_id!(PatId); |
331 | 331 | ||
332 | // copied verbatim from librustc::hir | ||
333 | |||
334 | /// Explicit binding annotations given in the HIR for a binding. Note | 332 | /// Explicit binding annotations given in the HIR for a binding. Note |
335 | /// that this is not the final binding *mode* that we infer after type | 333 | /// that this is not the final binding *mode* that we infer after type |
336 | /// inference. | 334 | /// inference. |
@@ -341,8 +339,6 @@ pub enum BindingAnnotation { | |||
341 | /// when matching. For example, the `x` in `Some(x)` will have binding | 339 | /// when matching. For example, the `x` in `Some(x)` will have binding |
342 | /// mode `None`; if you do `let Some(x) = &Some(22)`, it will | 340 | /// mode `None`; if you do `let Some(x) = &Some(22)`, it will |
343 | /// ultimately be inferred to be by-reference. | 341 | /// ultimately be inferred to be by-reference. |
344 | /// | ||
345 | /// Note that implicit reference skipping is not implemented yet (#42640). | ||
346 | Unannotated, | 342 | Unannotated, |
347 | 343 | ||
348 | /// Annotated with `mut x` -- could be either ref or not, similar to `None`. | 344 | /// Annotated with `mut x` -- could be either ref or not, similar to `None`. |
@@ -375,7 +371,7 @@ pub struct FieldPat { | |||
375 | /// Close relative to rustc's hir::PatKind | 371 | /// Close relative to rustc's hir::PatKind |
376 | #[derive(Debug, Clone, Eq, PartialEq)] | 372 | #[derive(Debug, Clone, Eq, PartialEq)] |
377 | pub enum Pat { | 373 | pub enum Pat { |
378 | Missing, // do we need this? | 374 | Missing, |
379 | Wild, | 375 | Wild, |
380 | Tuple(Vec<PatId>), | 376 | Tuple(Vec<PatId>), |
381 | Struct { | 377 | Struct { |
@@ -387,7 +383,6 @@ pub enum Pat { | |||
387 | start: ExprId, | 383 | start: ExprId, |
388 | end: ExprId, | 384 | end: ExprId, |
389 | }, | 385 | }, |
390 | Box(PatId), | ||
391 | Slice { | 386 | Slice { |
392 | prefix: Vec<PatId>, | 387 | prefix: Vec<PatId>, |
393 | rest: Option<PatId>, | 388 | rest: Option<PatId>, |
@@ -420,7 +415,7 @@ impl Pat { | |||
420 | Pat::Tuple(args) | Pat::TupleStruct { args, .. } => { | 415 | Pat::Tuple(args) | Pat::TupleStruct { args, .. } => { |
421 | args.iter().map(|pat| *pat).for_each(f); | 416 | args.iter().map(|pat| *pat).for_each(f); |
422 | } | 417 | } |
423 | Pat::Ref { pat, .. } | Pat::Box(pat) => f(*pat), | 418 | Pat::Ref { pat, .. } => f(*pat), |
424 | Pat::Slice { | 419 | Pat::Slice { |
425 | prefix, | 420 | prefix, |
426 | rest, | 421 | rest, |
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 53b7b5836..09b816cc7 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs | |||
@@ -37,7 +37,7 @@ use crate::{ | |||
37 | db::HirDatabase, | 37 | db::HirDatabase, |
38 | type_ref::{TypeRef, Mutability}, | 38 | type_ref::{TypeRef, Mutability}, |
39 | name::KnownName, | 39 | name::KnownName, |
40 | expr::{Body, Expr, BindingAnnotation, MatchArm, Literal, ExprId, Pat, PatId, UnaryOp, BinaryOp, Statement, FieldPat}, | 40 | expr::{Body, Expr, BindingAnnotation, Literal, ExprId, Pat, PatId, UnaryOp, BinaryOp, Statement, FieldPat}, |
41 | }; | 41 | }; |
42 | 42 | ||
43 | /// The ID of a type variable. | 43 | /// The ID of a type variable. |
@@ -874,15 +874,8 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
874 | } | 874 | } |
875 | 875 | ||
876 | fn resolve_fields(&self, path: Option<&Path>) -> Option<(Ty, Vec<StructField>)> { | 876 | fn resolve_fields(&self, path: Option<&Path>) -> Option<(Ty, Vec<StructField>)> { |
877 | let def = path | 877 | let def_id = self.module.resolve_path(self.db, path?).take_types()?; |
878 | .and_then(|path| self.module.resolve_path(self.db, &path).take_types()) | 878 | let def = def_id.resolve(self.db); |
879 | .map(|def_id| def_id.resolve(self.db)); | ||
880 | |||
881 | let def = if let Some(def) = def { | ||
882 | def | ||
883 | } else { | ||
884 | return None; | ||
885 | }; | ||
886 | 879 | ||
887 | match def { | 880 | match def { |
888 | Def::Struct(s) => { | 881 | Def::Struct(s) => { |
@@ -891,60 +884,47 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
891 | .struct_data(s.def_id()) | 884 | .struct_data(s.def_id()) |
892 | .variant_data | 885 | .variant_data |
893 | .fields() | 886 | .fields() |
894 | .iter() | 887 | .to_owned(); |
895 | .cloned() | ||
896 | .collect(); | ||
897 | Some((type_for_struct(self.db, s), fields)) | 888 | Some((type_for_struct(self.db, s), fields)) |
898 | } | 889 | } |
899 | Def::EnumVariant(ev) => { | 890 | Def::EnumVariant(ev) => { |
900 | let fields: Vec<_> = ev.variant_data(self.db).fields().iter().cloned().collect(); | 891 | let fields: Vec<_> = ev.variant_data(self.db).fields().to_owned(); |
901 | Some((type_for_enum_variant(self.db, ev), fields)) | 892 | Some((type_for_enum_variant(self.db, ev), fields)) |
902 | } | 893 | } |
903 | _ => None, | 894 | _ => None, |
904 | } | 895 | } |
905 | } | 896 | } |
906 | 897 | ||
907 | fn infer_tuple_struct(&mut self, path: Option<&Path>, subpats: &[PatId]) -> Ty { | 898 | fn infer_tuple_struct_pat(&mut self, path: Option<&Path>, subpats: &[PatId]) -> Ty { |
908 | let (ty, fields) = if let Some(x) = self.resolve_fields(path) { | 899 | let (ty, fields) = self |
909 | x | 900 | .resolve_fields(path) |
910 | } else { | 901 | .unwrap_or((Ty::Unknown, Vec::new())); |
911 | return Ty::Unknown; | ||
912 | }; | ||
913 | |||
914 | if fields.len() != subpats.len() { | ||
915 | return Ty::Unknown; | ||
916 | } | ||
917 | 902 | ||
918 | for (&subpat, field) in subpats.iter().zip(fields.iter()) { | 903 | for (i, &subpat) in subpats.iter().enumerate() { |
919 | let sub_ty = self.make_ty(&field.type_ref); | 904 | let expected_ty = fields |
920 | self.infer_pat(subpat, &Expectation::has_type(sub_ty)); | 905 | .get(i) |
906 | .map_or(Ty::Unknown, |field| self.make_ty(&field.type_ref)); | ||
907 | self.infer_pat(subpat, &Expectation::has_type(expected_ty)); | ||
921 | } | 908 | } |
922 | 909 | ||
923 | ty | 910 | ty |
924 | } | 911 | } |
925 | 912 | ||
926 | fn infer_struct(&mut self, path: Option<&Path>, subpats: &[FieldPat]) -> Ty { | 913 | fn infer_struct_pat(&mut self, path: Option<&Path>, subpats: &[FieldPat]) -> Ty { |
927 | let (ty, fields) = if let Some(x) = self.resolve_fields(path) { | 914 | let (ty, fields) = self |
928 | x | 915 | .resolve_fields(path) |
929 | } else { | 916 | .unwrap_or((Ty::Unknown, Vec::new())); |
930 | return Ty::Unknown; | ||
931 | }; | ||
932 | 917 | ||
933 | for subpat in subpats { | 918 | for subpat in subpats { |
934 | let matching_field = fields.iter().find(|field| field.name == subpat.name); | 919 | let matching_field = fields.iter().find(|field| field.name == subpat.name); |
935 | 920 | let expected_ty = | |
936 | if let Some(field) = matching_field { | 921 | matching_field.map_or(Ty::Unknown, |field| self.make_ty(&field.type_ref)); |
937 | let typeref = &field.type_ref; | 922 | self.infer_pat(subpat.pat, &Expectation::has_type(expected_ty)); |
938 | let sub_ty = self.make_ty(typeref); | ||
939 | self.infer_pat(subpat.pat, &Expectation::has_type(sub_ty)); | ||
940 | } | ||
941 | } | 923 | } |
942 | 924 | ||
943 | ty | 925 | ty |
944 | } | 926 | } |
945 | 927 | ||
946 | // TODO: Expectation should probably contain a Cow pointer to Ty? | ||
947 | // so that we can make new expectations of subtypes cheaply | ||
948 | fn infer_pat(&mut self, pat: PatId, expected: &Expectation) -> Ty { | 928 | fn infer_pat(&mut self, pat: PatId, expected: &Expectation) -> Ty { |
949 | let body = Arc::clone(&self.body); // avoid borrow checker problem | 929 | let body = Arc::clone(&self.body); // avoid borrow checker problem |
950 | 930 | ||
@@ -969,7 +949,10 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
969 | } | 949 | } |
970 | Pat::Ref { pat, mutability } => { | 950 | Pat::Ref { pat, mutability } => { |
971 | let expectation = match expected.ty { | 951 | let expectation = match expected.ty { |
972 | Ty::Ref(ref sub_ty, exp_mut) if *mutability == exp_mut => { | 952 | Ty::Ref(ref sub_ty, exp_mut) => { |
953 | if *mutability != exp_mut { | ||
954 | // TODO: emit type error? | ||
955 | } | ||
973 | Expectation::has_type((&**sub_ty).clone()) | 956 | Expectation::has_type((&**sub_ty).clone()) |
974 | } | 957 | } |
975 | _ => Expectation::none(), | 958 | _ => Expectation::none(), |
@@ -980,18 +963,16 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
980 | Pat::TupleStruct { | 963 | Pat::TupleStruct { |
981 | path: ref p, | 964 | path: ref p, |
982 | args: ref subpats, | 965 | args: ref subpats, |
983 | } => self.infer_tuple_struct(p.as_ref(), subpats), | 966 | } => self.infer_tuple_struct_pat(p.as_ref(), subpats), |
984 | Pat::Struct { | 967 | Pat::Struct { |
985 | path: ref p, | 968 | path: ref p, |
986 | args: ref fields, | 969 | args: ref fields, |
987 | } => self.infer_struct(p.as_ref(), fields), | 970 | } => self.infer_struct_pat(p.as_ref(), fields), |
988 | Pat::Path(path) => { | 971 | Pat::Path(path) => self |
989 | // is this right? | 972 | .module |
990 | self.module | 973 | .resolve_path(self.db, &path) |
991 | .resolve_path(self.db, &path) | 974 | .take_values() |
992 | .take_values() | 975 | .map_or(Ty::Unknown, |resolved| self.db.type_for_def(resolved)), |
993 | .map_or(Ty::Unknown, |resolved| self.db.type_for_def(resolved)) | ||
994 | } | ||
995 | Pat::Bind { | 976 | Pat::Bind { |
996 | mode, | 977 | mode, |
997 | name: _name, | 978 | name: _name, |
@@ -1000,10 +981,7 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
1000 | let subty = if let Some(subpat) = subpat { | 981 | let subty = if let Some(subpat) = subpat { |
1001 | self.infer_pat(*subpat, expected) | 982 | self.infer_pat(*subpat, expected) |
1002 | } else { | 983 | } else { |
1003 | let ty = self.new_type_var(); | 984 | expected.ty.clone() |
1004 | self.unify(&ty, &expected.ty); | ||
1005 | let ty = self.resolve_ty_as_possible(ty); | ||
1006 | ty | ||
1007 | }; | 985 | }; |
1008 | 986 | ||
1009 | match mode { | 987 | match mode { |
@@ -1075,8 +1053,8 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
1075 | assert_eq!(args.len(), arg_types.len()); | 1053 | assert_eq!(args.len(), arg_types.len()); |
1076 | 1054 | ||
1077 | for (arg_pat, arg_type) in args.iter().zip(arg_types.iter()) { | 1055 | for (arg_pat, arg_type) in args.iter().zip(arg_types.iter()) { |
1078 | let expected = if let Some(tyref) = arg_type { | 1056 | let expected = if let Some(type_ref) = arg_type { |
1079 | let ty = self.make_ty(tyref); | 1057 | let ty = self.make_ty(type_ref); |
1080 | Expectation::has_type(ty) | 1058 | Expectation::has_type(ty) |
1081 | } else { | 1059 | } else { |
1082 | Expectation::none() | 1060 | Expectation::none() |
@@ -1143,21 +1121,20 @@ impl<'a, D: HirDatabase> InferenceContext<'a, D> { | |||
1143 | ret_ty | 1121 | ret_ty |
1144 | } | 1122 | } |
1145 | Expr::Match { expr, arms } => { | 1123 | Expr::Match { expr, arms } => { |
1146 | let mut expected = expected.clone(); | 1124 | let expected = if expected.ty == Ty::Unknown { |
1125 | Expectation::has_type(self.new_type_var()) | ||
1126 | } else { | ||
1127 | expected.clone() | ||
1128 | }; | ||
1147 | let input_ty = self.infer_expr(*expr, &Expectation::none()); | 1129 | let input_ty = self.infer_expr(*expr, &Expectation::none()); |
1148 | let pat_expectation = Expectation::has_type(input_ty); | 1130 | let pat_expectation = Expectation::has_type(input_ty); |
1149 | 1131 | ||
1150 | for MatchArm { | 1132 | for arm in arms { |
1151 | pats, | 1133 | for &pat in &arm.pats { |
1152 | expr: arm_expr, | ||
1153 | } in arms | ||
1154 | { | ||
1155 | for &pat in pats { | ||
1156 | let _pat_ty = self.infer_pat(pat, &pat_expectation); | 1134 | let _pat_ty = self.infer_pat(pat, &pat_expectation); |
1157 | } | 1135 | } |
1158 | // TODO type the guard | 1136 | // TODO type the guard |
1159 | let ty = self.infer_expr(*arm_expr, &expected); | 1137 | self.infer_expr(arm.expr, &expected); |
1160 | expected = Expectation::has_type(ty); | ||
1161 | } | 1138 | } |
1162 | 1139 | ||
1163 | expected.ty | 1140 | expected.ty |
diff --git a/editors/code/package-lock.json b/editors/code/package-lock.json index a36fb2f1c..86313d4cc 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": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", | 186 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 351 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 366 | "resolved": "https://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": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", | 428 | "resolved": "https://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": "http://registry.npmjs.org/deep-assign/-/deep-assign-1.0.0.tgz", | 464 | "resolved": "https://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": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", | 510 | "resolved": "https://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": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", | 543 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 561 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 576 | "resolved": "https://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": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", | 630 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 697 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 712 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 831 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 846 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", | 907 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", | 919 | "resolved": "https://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": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz", | 925 | "resolved": "https://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": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", | 1195 | "resolved": "https://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": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", | 1322 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 1337 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 1352 | "resolved": "https://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": "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", | 1387 | "resolved": "https://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": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | 1442 | "resolved": "https://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": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", | 1448 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 1621 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 1636 | "resolved": "https://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": "http://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", | 1647 | "resolved": "https://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": "http://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", | 1653 | "resolved": "https://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": "http://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", | 1669 | "resolved": "https://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": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | 1693 | "resolved": "https://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": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", | 1705 | "resolved": "https://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": "http://registry.npmjs.org/split/-/split-0.3.3.tgz", | 1958 | "resolved": "https://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": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", | 1967 | "resolved": "https://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": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", | 1996 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 2020 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 2035 | "resolved": "https://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": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | 2061 | "resolved": "https://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": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", | 2076 | "resolved": "https://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": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", | 2087 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 2103 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 2118 | "resolved": "https://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": "http://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz", | 2226 | "resolved": "https://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": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", | 2257 | "resolved": "https://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": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | 2400 | "resolved": "https://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": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 2415 | "resolved": "https://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": { |