aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikeCheng1208 <a3804430@hotmail.com>2018-05-04 19:57:19 +0800
committerYung chieh Tsai <x01ep23i@hotmail.com>2018-05-29 12:38:25 +0800
commit695b157e7b511a94a18ada1578ece2e4e838f869 (patch)
tree1a79d3e776330d82f53f8f903e06b90c28ba104e
parent8e672a82e2ba7838370a5332c4775a8399c961b9 (diff)
downloadtangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.tar
tangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.tar.gz
tangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.tar.bz2
tangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.tar.lz
tangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.tar.xz
tangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.tar.zst
tangerine-wallet-browser-695b157e7b511a94a18ada1578ece2e4e838f869.zip
Intergrate ENS with IPFS
-rw-r--r--app/404.html28
-rw-r--r--app/error.html79
-rw-r--r--app/images/404.pngbin0 -> 39401 bytes
-rw-r--r--app/images/cancel.pngbin0 -> 10928 bytes
-rw-r--r--app/images/deadface.pngbin0 -> 8333 bytes
-rw-r--r--app/images/loginglogo.svg53
-rw-r--r--app/images/logo.pngbin0 -> 6589 bytes
-rw-r--r--app/images/pw-128x128.pngbin0 -> 94988 bytes
-rw-r--r--app/images/pw-48x48.pngbin0 -> 3279 bytes
-rw-r--r--app/images/pw128x128.pngbin0 -> 94988 bytes
-rw-r--r--app/loading.html35
-rw-r--r--app/manifest.json15
-rw-r--r--app/no_mainnet.html59
-rw-r--r--app/scripts/background.js10
-rw-r--r--app/scripts/lib/contracts/registrar.js1
-rw-r--r--app/scripts/lib/contracts/resolver.js2
-rw-r--r--app/scripts/lib/portalnetwork.js33
-rw-r--r--app/scripts/lib/resolver.js46
-rw-r--r--npm-debug.log.21680572781790
-rw-r--r--old-ui/app/app.js8
-rw-r--r--package.json4
21 files changed, 2157 insertions, 6 deletions
diff --git a/app/404.html b/app/404.html
new file mode 100644
index 000000000..2fbf1e311
--- /dev/null
+++ b/app/404.html
@@ -0,0 +1,28 @@
+<html>
+<head>
+ <title>404</title>
+ <style>
+ *{
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+ }
+ img{
+ display: block;
+ }
+ html, body{
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ }
+ img{
+ display: block;
+ }
+ </style>
+</head>
+<body>
+ <img src="./images/404.png" alt="">
+</body>
+</html> \ No newline at end of file
diff --git a/app/error.html b/app/error.html
new file mode 100644
index 000000000..d4484d8e3
--- /dev/null
+++ b/app/error.html
@@ -0,0 +1,79 @@
+<html>
+<head>
+ <title>Portal Network</title>
+ <link href="https://fonts.googleapis.com/css?family=Rokkitt" rel="stylesheet">
+ <style>
+ *{
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+ }
+ img{
+ display: block;
+ }
+ html, body{
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ }
+ @keyframes logoAmin{
+ from {transform: scale(1);}
+ 50%{transform: scale(1.1);}
+ to {transform: scale(1);}
+ }
+ .errorBox{
+ width: 70%;
+ height: auto;
+ overflow: hidden;
+ background-image: url("./images/deadface.png");
+ background-repeat: no-repeat;
+ background-position: 100% 50%;
+ background-size: auto 90%;
+ padding: 5px;
+ }
+ .errorBox > img{
+ width: 100px;
+ height: auto;
+ margin-bottom: 25px;
+ animation: logoAmin 1s infinite linear;
+ }
+ .errorBox > h1, .errorBox > h2{
+ letter-spacing: 2px;
+ }
+ .errorBox > h1{
+ color: #9b9b9b;
+ font-size: 40px;
+ }
+ .errorBox > h2{
+ color: #1b243d;
+ font-size: 20px;
+ padding-top: 5px;
+ }
+ .errorBox > h2 >a{
+ color: #1b243d;
+ }
+ .errorBox > h2 >a:hover{
+ color: #44588e;
+ }
+
+ .errorBox > h1 > span{
+ color: #33559f;
+ }
+
+ </style>
+</head>
+<body>
+ <div class="errorBox">
+ <img src="./images/logo.png" alt="">
+ <h1><span id="name"></span> not found</h1>
+ <h2>Powered by <a href="https://www.portal.network/">Portal Network</a></h2>
+ </div>
+ <script>
+ let index = location.href.lastIndexOf("?name=")
+ let name = location.href.slice(index + 6)
+ document.getElementById("name").innerHTML = name
+ </script>
+</body>
+</html>
diff --git a/app/images/404.png b/app/images/404.png
new file mode 100644
index 000000000..b1a767dde
--- /dev/null
+++ b/app/images/404.png
Binary files differ
diff --git a/app/images/cancel.png b/app/images/cancel.png
new file mode 100644
index 000000000..4e0eb1143
--- /dev/null
+++ b/app/images/cancel.png
Binary files differ
diff --git a/app/images/deadface.png b/app/images/deadface.png
new file mode 100644
index 000000000..e12476c03
--- /dev/null
+++ b/app/images/deadface.png
Binary files differ
diff --git a/app/images/loginglogo.svg b/app/images/loginglogo.svg
new file mode 100644
index 000000000..ca8b0a2ee
--- /dev/null
+++ b/app/images/loginglogo.svg
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="128px" height="128px" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch -->
+ <title>logo2</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <polygon id="path-1" points="0 82.118 126.527 82.118 126.527 0 0 0"></polygon>
+ </defs>
+ <g id="logo2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="Page-1" transform="translate(1.000000, 23.000000)">
+ <path d="M6.8811,74.2729 C6.6901,74.0489 6.4661,73.8719 6.2111,73.7389 C5.9551,73.6069 5.6861,73.5409 5.4031,73.5409 L0.0001,73.5409 L0.0001,82.0769 L0.9581,82.0769 L0.9581,74.4029 L5.2261,74.4029 C5.4261,74.4029 5.6071,74.4549 5.7661,74.5599 C5.9251,74.6649 6.0601,74.7969 6.1701,74.9569 C6.2791,75.1159 6.3631,75.2939 6.4231,75.4899 C6.4821,75.6859 6.5111,75.8759 6.5111,76.0579 C6.5111,76.2219 6.4891,76.3949 6.4431,76.5779 C6.3981,76.7599 6.3221,76.9289 6.2171,77.0839 C6.1121,77.2389 5.9831,77.3669 5.8281,77.4669 C5.6731,77.5669 5.4851,77.6179 5.2671,77.6179 L3.9941,77.6179 L3.9941,78.4789 L5.4311,78.4789 C5.7141,78.4789 5.9801,78.4129 6.2311,78.2809 C6.4821,78.1489 6.7031,77.9709 6.8951,77.7479 C7.0861,77.5239 7.2361,77.2679 7.3461,76.9809 C7.4561,76.6939 7.5101,76.3909 7.5101,76.0719 C7.5101,75.7149 7.4531,75.3829 7.3391,75.0729 C7.2251,74.7629 7.0721,74.4959 6.8811,74.2729" id="Fill-1" fill="#1B243D"></path>
+ <path d="M16.43,79.1157 C16.247,79.5207 15.999,79.8797 15.684,80.1887 C15.369,80.4997 15.005,80.7457 14.59,80.9277 C14.175,81.1107 13.735,81.2017 13.27,81.2017 C12.805,81.2017 12.365,81.1107 11.95,80.9277 C11.534,80.7457 11.172,80.4997 10.862,80.1887 C10.552,79.8797 10.305,79.5207 10.123,79.1157 C9.941,78.7097 9.85,78.2787 9.85,77.8227 C9.85,77.3757 9.941,76.9447 10.123,76.5297 C10.305,76.1147 10.552,75.7527 10.862,75.4417 C11.172,75.1327 11.537,74.8837 11.956,74.6967 C12.376,74.5097 12.818,74.4167 13.284,74.4167 C13.748,74.4167 14.188,74.5097 14.603,74.6967 C15.018,74.8837 15.381,75.1327 15.691,75.4417 C16.001,75.7527 16.247,76.1147 16.43,76.5297 C16.612,76.9447 16.703,77.3757 16.703,77.8227 C16.703,78.2787 16.612,78.7097 16.43,79.1157 M16.341,74.7647 C15.953,74.3777 15.495,74.0697 14.966,73.8417 C14.437,73.6137 13.872,73.4997 13.27,73.4997 C12.668,73.4997 12.102,73.6137 11.574,73.8417 C11.044,74.0697 10.586,74.3777 10.199,74.7647 C9.811,75.1527 9.503,75.6087 9.275,76.1337 C9.047,76.6577 8.933,77.2167 8.933,77.8087 C8.933,78.4017 9.047,78.9607 9.275,79.4847 C9.503,80.0097 9.811,80.4657 10.199,80.8527 C10.586,81.2407 11.044,81.5487 11.574,81.7757 C12.102,82.0047 12.668,82.1177 13.27,82.1177 C13.872,82.1177 14.437,82.0047 14.966,81.7757 C15.495,81.5487 15.953,81.2407 16.341,80.8527 C16.728,80.4657 17.036,80.0097 17.264,79.4847 C17.492,78.9607 17.606,78.4017 17.606,77.8087 C17.606,77.2167 17.492,76.6577 17.264,76.1337 C17.036,75.6087 16.728,75.1527 16.341,74.7647" id="Fill-3" fill="#1B243D"></path>
+ <path d="M26.2249,74.2729 C26.0329,74.0489 25.8089,73.8719 25.5549,73.7389 C25.2989,73.6069 25.0299,73.5409 24.7469,73.5409 L19.3439,73.5409 L19.3439,82.0769 L20.3009,82.0769 L20.3009,74.4029 L24.5699,74.4029 C24.7699,74.4029 24.9499,74.4549 25.1099,74.5599 C25.2689,74.6649 25.4039,74.7969 25.5139,74.9569 C25.6229,75.1159 25.7069,75.2939 25.7669,75.4899 C25.8259,75.6859 25.8549,75.8759 25.8549,76.0579 C25.8549,76.2219 25.8319,76.3949 25.7869,76.5779 C25.7409,76.7599 25.6659,76.9289 25.5609,77.0839 C25.4559,77.2389 25.3269,77.3669 25.1709,77.4669 C25.0169,77.5669 24.8289,77.6179 24.6109,77.6179 L23.2969,77.6179 L25.5819,82.0769 L26.6079,82.0769 L24.7879,78.4789 C25.0709,78.4789 25.3379,78.4129 25.5889,78.2809 C25.8389,78.1489 26.0579,77.9709 26.2459,77.7479 C26.4319,77.5239 26.5799,77.2679 26.6899,76.9809 C26.7989,76.6939 26.8539,76.3909 26.8539,76.0719 C26.8539,75.7149 26.7969,75.3829 26.6829,75.0729 C26.5689,74.7629 26.4159,74.4959 26.2249,74.2729" id="Fill-5" fill="#1B243D"></path>
+ <polygon id="Fill-7" fill="#1B243D" points="35.8694 73.5405 28.4134 73.5405 28.4134 74.4025 31.6554 74.4025 31.6554 82.0765 32.6134 82.0765 32.6134 74.4025 35.8694 74.4025"></polygon>
+ <polygon id="Fill-9" fill="#1B243D" points="35.3084 82.0766 41.4234 82.0766 40.8344 81.2156 36.8134 81.2156 39.7814 75.1406 43.2294 82.0766 44.2964 82.0766 39.7814 73.0896"></polygon>
+ <polygon id="Fill-11" fill="#1B243D" points="46.7859 73.5405 45.8279 73.5405 45.8279 82.0765 52.3269 82.0765 52.3269 81.2155 46.7859 81.2155"></polygon>
+ <polygon id="Fill-13" fill="#1B243D" points="66.0471 81.27 60.6441 73.541 59.0431 73.541 59.0431 82.077 60.0011 82.077 60.0011 74.334 65.5001 82.077 67.0051 82.077 67.0051 73.541 66.0471 73.541"></polygon>
+ <polygon id="Fill-15" fill="#1B243D" points="68.9202 82.0766 75.4182 82.0766 75.4182 81.2156 69.8782 81.2156 69.8782 74.4026 75.4182 74.4026 75.4182 73.5406 68.9202 73.5406"></polygon>
+ <mask id="mask-2" fill="white">
+ <use xlink:href="#path-1"></use>
+ </mask>
+ <g id="Clip-18"></g>
+ <polygon id="Fill-17" fill="#1B243D" mask="url(#mask-2)" points="71.218 78.479 75.309 78.479 75.309 77.618 71.218 77.618"></polygon>
+ <polygon id="Fill-19" fill="#1B243D" mask="url(#mask-2)" points="77.2923 74.4028 80.5343 74.4028 80.5343 82.0768 81.4923 82.0768 81.4923 74.4028 84.7483 74.4028 84.7483 73.5408 77.2923 73.5408"></polygon>
+ <polygon id="Fill-20" fill="#1B243D" mask="url(#mask-2)" points="95.8284 81.3657 91.6694 73.0897 87.5794 81.2977 87.5794 73.5407 86.6214 73.5407 86.6214 82.0767 88.2634 82.0767 91.6694 75.0997 95.1174 82.0767 96.7864 82.0767 96.7864 73.5407 95.8284 73.5407"></polygon>
+ <path d="M106.0203,79.1157 C105.8373,79.5207 105.5893,79.8797 105.2743,80.1887 C104.9603,80.4997 104.5953,80.7457 104.1803,80.9277 C103.7653,81.1107 103.3253,81.2017 102.8603,81.2017 C102.3953,81.2017 101.9553,81.1107 101.5403,80.9277 C101.1243,80.7457 100.7623,80.4997 100.4523,80.1887 C100.1423,79.8797 99.8953,79.5207 99.7133,79.1157 C99.5313,78.7097 99.4403,78.2787 99.4403,77.8227 C99.4403,77.3757 99.5313,76.9447 99.7133,76.5297 C99.8953,76.1147 100.1423,75.7527 100.4523,75.4417 C100.7623,75.1327 101.1273,74.8837 101.5463,74.6967 C101.9663,74.5097 102.4093,74.4167 102.8743,74.4167 C103.3393,74.4167 103.7793,74.5097 104.1943,74.6967 C104.6083,74.8837 104.9713,75.1327 105.2813,75.4417 C105.5913,75.7527 105.8373,76.1147 106.0203,76.5297 C106.2023,76.9447 106.2933,77.3757 106.2933,77.8227 C106.2933,78.2787 106.2023,78.7097 106.0203,79.1157 M105.9313,74.7647 C105.5433,74.3777 105.0853,74.0697 104.5563,73.8417 C104.0273,73.6137 103.4623,73.4997 102.8603,73.4997 C102.2583,73.4997 101.6923,73.6137 101.1643,73.8417 C100.6343,74.0697 100.1763,74.3777 99.7893,74.7647 C99.4013,75.1527 99.0933,75.6087 98.8653,76.1337 C98.6373,76.6577 98.5233,77.2167 98.5233,77.8087 C98.5233,78.4017 98.6373,78.9607 98.8653,79.4847 C99.0933,80.0097 99.4013,80.4657 99.7893,80.8527 C100.1763,81.2407 100.6343,81.5487 101.1643,81.7757 C101.6923,82.0047 102.2583,82.1177 102.8603,82.1177 C103.4623,82.1177 104.0273,82.0047 104.5563,81.7757 C105.0853,81.5487 105.5433,81.2407 105.9313,80.8527 C106.3193,80.4657 106.6263,80.0097 106.8543,79.4847 C107.0823,78.9607 107.1963,78.4017 107.1963,77.8087 C107.1963,77.2167 107.0823,76.6577 106.8543,76.1337 C106.6263,75.6087 106.3193,75.1527 105.9313,74.7647" id="Fill-21" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M115.8152,74.2729 C115.6232,74.0489 115.4002,73.8719 115.1452,73.7389 C114.8892,73.6069 114.6202,73.5409 114.3372,73.5409 L108.9342,73.5409 L108.9342,82.0769 L109.8912,82.0769 L109.8912,74.4029 L114.1602,74.4029 C114.3602,74.4029 114.5402,74.4549 114.7002,74.5599 C114.8592,74.6649 114.9942,74.7969 115.1042,74.9569 C115.2132,75.1159 115.2972,75.2939 115.3572,75.4899 C115.4162,75.6859 115.4452,75.8759 115.4452,76.0579 C115.4452,76.2219 115.4222,76.3949 115.3772,76.5779 C115.3312,76.7599 115.2562,76.9289 115.1512,77.0839 C115.0462,77.2389 114.9172,77.3669 114.7612,77.4669 C114.6072,77.5669 114.4192,77.6179 114.2012,77.6179 L112.8872,77.6179 L115.1722,82.0769 L116.1982,82.0769 L114.3782,78.4789 C114.6612,78.4789 114.9282,78.4129 115.1792,78.2809 C115.4292,78.1489 115.6482,77.9709 115.8362,77.7479 C116.0222,77.5239 116.1702,77.2679 116.2802,76.9809 C116.3892,76.6939 116.4442,76.3909 116.4442,76.0719 C116.4442,75.7149 116.3872,75.3829 116.2732,75.0729 C116.1592,74.7629 116.0062,74.4959 115.8152,74.2729" id="Fill-22" fill="#1B243D" mask="url(#mask-2)"></path>
+ <polygon id="Fill-23" fill="#1B243D" mask="url(#mask-2)" points="126.5266 73.5405 125.4866 73.5405 123.3666 77.8505 125.4866 82.0765 126.5266 82.0765 124.4336 77.8505"></polygon>
+ <polygon id="Fill-24" fill="#1B243D" mask="url(#mask-2)" points="119.2078 73.5405 118.2498 73.5405 118.2498 82.0765 119.2078 82.0765 119.2078 78.2735 122.1078 78.2735 122.1078 77.4115 119.2078 77.4115"></polygon>
+ <path d="M72.4627,48.06 C67.3487,48.06 61.5897,46.102 56.2467,42.545 C55.7657,42.225 55.2427,42.234 55.0787,42.564 C54.9137,42.894 55.1697,43.421 55.6507,43.741 C61.4477,47.6 67.6967,49.725 73.2447,49.725 C77.8417,49.725 81.5387,48.281 83.9357,45.548 C86.2857,42.87 87.1877,39.202 86.5457,34.942 C86.4797,34.504 86.0177,34.036 85.5137,33.896 C85.0107,33.756 84.6557,33.998 84.7217,34.436 C85.3137,38.362 84.4817,41.743 82.3157,44.211 C80.1077,46.73 76.6997,48.06 72.4627,48.06" id="Fill-25" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M84.5081,28.4746 C84.2921,28.0146 83.7441,27.6416 83.2851,27.6416 C82.8251,27.6416 82.6281,28.0146 82.8431,28.4746 C83.2451,29.3286 83.5941,30.1886 83.8801,31.0306 C84.0341,31.4866 84.5521,31.9036 85.0361,31.9626 C85.0741,31.9676 85.1121,31.9706 85.1481,31.9706 C85.5591,31.9706 85.7741,31.6646 85.6311,31.2456 C85.3211,30.3326 84.9441,29.4006 84.5081,28.4746" id="Fill-26" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M71.5769,13.6919 C65.5769,9.5209 59.0759,7.2239 53.2699,7.2239 C48.6269,7.2239 44.9069,8.6949 42.5129,11.4779 C40.1969,14.1689 39.3079,17.9979 40.0099,22.2589 C40.0819,22.6979 40.5479,23.1639 41.0509,23.2979 C41.1429,23.3219 41.2309,23.3339 41.3109,23.3339 C41.6679,23.3339 41.8889,23.1039 41.8299,22.7449 C41.1839,18.8179 42.0039,15.2889 44.1379,12.8079 C46.3439,10.2439 49.7719,8.8879 54.0529,8.8879 C59.4039,8.8879 65.3959,11.0049 70.9259,14.8499 C71.4009,15.1799 71.9309,15.1889 72.1109,14.8689 C72.2909,14.5489 72.0519,14.0219 71.5769,13.6919" id="Fill-27" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M42.6355,25.9184 C42.4805,25.4624 41.9635,25.0444 41.4795,24.9854 C40.9955,24.9264 40.7285,25.2474 40.8845,25.7034 C41.1935,26.6164 41.5715,27.5484 42.0075,28.4744 C42.2225,28.9344 42.7705,29.3064 43.2305,29.3064 C43.6905,29.3064 43.8875,28.9344 43.6715,28.4744 C43.2695,27.6194 42.9215,26.7594 42.6355,25.9184" id="Fill-28" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M48.9544,5.5986 C48.9954,5.5986 49.0354,5.5956 49.0734,5.5896 C50.1214,5.4216 51.2354,5.3376 52.3844,5.3376 C52.8434,5.3376 53.0404,4.9646 52.8254,4.5046 C52.6094,4.0456 52.0614,3.6726 51.6014,3.6726 C50.3714,3.6726 49.1784,3.7636 48.0554,3.9426 C47.6324,4.0106 47.5174,4.4336 47.7984,4.8886 C48.0544,5.3016 48.5494,5.5986 48.9544,5.5986" id="Fill-29" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M38.4558,28.4746 C41.5898,35.1436 47.1408,41.4016 54.0858,46.0956 C54.3238,46.2566 54.5728,46.3366 54.7848,46.3366 C54.9988,46.3366 55.1738,46.2546 55.2598,46.0896 C55.4298,45.7636 55.1798,45.2356 54.7008,44.9126 C48.2228,40.5336 43.0448,34.6966 40.1208,28.4746 C37.7008,23.3246 37.0648,18.4506 38.2838,14.3796 C39.4638,10.4356 42.3918,7.5286 46.5268,6.1936 C46.9118,6.0696 46.9538,5.6106 46.6218,5.1676 C46.2888,4.7246 45.7088,4.4676 45.3248,4.5906 C40.8908,6.0226 37.7518,9.1386 36.4868,13.3646 C35.1808,17.7296 35.8618,22.9536 38.4558,28.4746" id="Fill-30" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M77.4417,51.3588 C76.3937,51.5268 75.2797,51.6118 74.1307,51.6118 C73.6717,51.6118 73.4737,51.9838 73.6907,52.4438 C73.9057,52.9028 74.4537,53.2758 74.9137,53.2758 C76.1437,53.2758 77.3367,53.1848 78.4607,53.0048 C78.8827,52.9378 78.9977,52.5148 78.7167,52.0598 C78.4357,51.6058 77.8647,51.2918 77.4417,51.3588" id="Fill-31" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M88.0589,28.4741 C84.9249,21.8061 79.3749,15.5481 72.4319,10.8551 C71.9539,10.5311 71.4279,10.5341 71.2579,10.8601 C71.0879,11.1871 71.3379,11.7141 71.8159,12.0371 C78.2939,16.4161 83.4709,22.2531 86.3949,28.4741 C88.7639,33.5141 89.4229,38.3051 88.3009,42.3281 C87.2169,46.2181 84.4469,49.1491 80.5019,50.5781 C80.1259,50.7151 80.0999,51.1811 80.4419,51.6201 C80.7209,51.9771 81.1569,52.2061 81.5129,52.2061 C81.5939,52.2061 81.6709,52.1951 81.7419,52.1691 C85.9709,50.6351 88.9399,47.4951 90.1029,43.3251 C91.3049,39.0121 90.5989,33.8771 88.0589,28.4741" id="Fill-32" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M36.5716,28.4746 C36.3556,28.0146 35.8076,27.6416 35.3476,27.6416 C34.8886,27.6416 34.6906,28.0146 34.9066,28.4746 C37.7026,34.4226 42.1996,40.1156 47.9136,44.9396 C48.1826,45.1666 48.4956,45.2876 48.7556,45.2876 C48.9226,45.2876 49.0686,45.2376 49.1656,45.1336 C49.4136,44.8656 49.2566,44.3466 48.8136,43.9726 C43.4356,39.4326 39.2026,34.0736 36.5716,28.4746" id="Fill-33" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M56.8172,49.5649 C55.1282,48.6039 53.4612,47.5269 51.8632,46.3639 C51.3942,46.0229 50.8562,45.9969 50.6592,46.3039 C50.4632,46.6129 50.6842,47.1389 51.1522,47.4799 C52.8492,48.7149 54.6202,49.8589 56.4142,50.8789 C56.6212,50.9979 56.8282,51.0549 57.0062,51.0549 C57.2542,51.0549 57.4482,50.9439 57.5132,50.7329 C57.6242,50.3699 57.3132,49.8469 56.8172,49.5649" id="Fill-34" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M75.7991,55.1606 C70.9321,55.1606 65.5491,53.8386 60.2301,51.3366 C59.7241,51.0986 59.2721,51.2246 59.2191,51.6186 C59.1671,52.0126 59.5341,52.5236 60.0391,52.7616 C65.6911,55.4206 71.4111,56.8246 76.5821,56.8246 C77.0411,56.8246 77.2381,56.4526 77.0231,55.9926 C76.8061,55.5326 76.2591,55.1606 75.7991,55.1606" id="Fill-35" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M71.843,8.6733 C75.749,11.1523 79.3,14.1083 82.396,17.4603 C85.599,20.9283 88.139,24.6343 89.944,28.4743 C90.16,28.9343 90.707,29.3063 91.167,29.3063 C91.627,29.3063 91.824,28.9343 91.608,28.4743 C89.691,24.3953 86.993,20.4583 83.588,16.7723 C80.3,13.2113 76.528,10.0713 72.379,7.4383 C71.893,7.1303 71.379,7.1563 71.231,7.4983 C71.083,7.8393 71.357,8.3653 71.843,8.6733" id="Fill-36" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M64.1145,4.6572 C65.5935,5.2632 67.0835,5.9662 68.5425,6.7462 C68.7385,6.8512 68.9315,6.9012 69.0985,6.9012 C69.3585,6.9012 69.5575,6.7802 69.6135,6.5532 C69.7045,6.1782 69.3735,5.6592 68.8735,5.3912 C67.3235,4.5622 65.7405,3.8162 64.1695,3.1722 C63.6625,2.9652 63.2385,3.1282 63.2225,3.5382 C63.2075,3.9492 63.6075,4.4492 64.1145,4.6572" id="Fill-37" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M50.7161,1.788 C53.6641,1.788 56.7851,2.266 59.9921,3.207 C60.0951,3.237 60.1921,3.252 60.2811,3.252 C60.6281,3.252 60.8491,3.034 60.8041,2.687 C60.7471,2.252 60.2931,1.78 59.7881,1.631 C56.3801,0.631 53.0651,0.123 49.9331,0.123 C49.4741,0.123 49.2761,0.496 49.4921,0.956 C49.7081,1.415 50.2561,1.788 50.7161,1.788" id="Fill-38" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M36.7913,1.5722 C37.1013,1.3622 37.0253,0.8602 36.6233,0.4512 C36.2213,0.0432 35.6443,-0.1178 35.3333,0.0932 C32.3243,2.1362 30.1993,4.9382 29.0183,8.4202 C28.8973,8.7782 29.1993,9.3012 29.6923,9.5912 C29.9053,9.7152 30.1183,9.7762 30.3023,9.7762 C30.5443,9.7762 30.7353,9.6702 30.8043,9.4672 C31.9243,6.1662 33.9383,3.5102 36.7913,1.5722" id="Fill-39" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M29.3557,10.9082 C28.8527,10.6582 28.3887,10.7682 28.3197,11.1542 C28.1767,11.9612 28.0807,12.8002 28.0327,13.6492 C28.0107,14.0562 28.4037,14.5592 28.9107,14.7732 C29.0647,14.8382 29.2117,14.8692 29.3417,14.8692 C29.6417,14.8692 29.8547,14.7072 29.8707,14.4242 C29.9157,13.6192 30.0067,12.8242 30.1427,12.0592 C30.2107,11.6732 29.8587,11.1582 29.3557,10.9082" id="Fill-40" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M96.823,47.3579 C96.33,47.0689 95.832,47.1249 95.711,47.4819 C94.591,50.7829 92.576,53.4389 89.723,55.3769 C89.414,55.5869 89.489,56.0889 89.891,56.4979 C90.174,56.7849 90.542,56.9499 90.844,56.9499 C90.972,56.9499 91.089,56.9199 91.181,56.8569 C94.191,54.8119 96.316,52.0099 97.497,48.5289 C97.617,48.1709 97.316,47.6469 96.823,47.3579" id="Fill-41" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M97.6082,41.9389 C97.1012,41.7279 96.6742,41.8889 96.6562,42.2969 C96.6162,43.1809 96.5212,44.0529 96.3722,44.8889 C96.3042,45.2749 96.6562,45.7909 97.1592,46.0409 C97.3412,46.1299 97.5192,46.1739 97.6742,46.1739 C97.9462,46.1739 98.1512,46.0409 98.1942,45.7939 C98.3512,44.9129 98.4522,43.9929 98.4942,43.0589 C98.5122,42.6509 98.1162,42.1489 97.6082,41.9389" id="Fill-42" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M70.7937,44.5092 C61.9517,44.5092 51.3777,37.3162 47.2227,28.4742 C43.0667,19.6332 46.8797,12.4392 55.7217,12.4392 C64.5637,12.4392 75.1377,19.6332 79.2927,28.4742 C83.4477,37.3162 79.6357,44.5092 70.7937,44.5092 M54.9397,10.7752 C45.1797,10.7752 40.9717,18.7152 45.5577,28.4742 C50.1447,38.2342 61.8157,46.1742 71.5757,46.1742 C81.3357,46.1742 85.5437,38.2342 80.9577,28.4742 C76.3707,18.7152 64.6987,10.7752 54.9397,10.7752" id="Fill-43" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M36.9939,5.7876 C36.5479,5.4176 35.9899,5.3376 35.7469,5.6096 C34.2189,7.3236 33.1309,9.3756 32.5139,11.7096 C32.4159,12.0796 32.7409,12.6006 33.2389,12.8726 C33.4379,12.9816 33.6359,13.0346 33.8059,13.0346 C34.0619,13.0346 34.2599,12.9166 34.3179,12.6946 C34.8999,10.4966 35.9239,8.5646 37.3629,6.9516 C37.6049,6.6786 37.4399,6.1586 36.9939,5.7876" id="Fill-44" fill="#1B243D" mask="url(#mask-2)"></path>
+ <path d="M90.5696,51.5581 C92.2026,49.8011 93.3576,47.6751 94.0016,45.2401 C94.0996,44.8691 93.7756,44.3481 93.2766,44.0761 C92.7776,43.8041 92.2946,43.8831 92.1966,44.2541 C91.5906,46.5471 90.5026,48.5491 88.9656,50.2041 C88.7166,50.4701 88.8746,50.9911 89.3176,51.3641 C89.5866,51.5911 89.8996,51.7121 90.1596,51.7121 C90.3266,51.7121 90.4716,51.6621 90.5696,51.5581" id="Fill-45" fill="#1B243D" mask="url(#mask-2)"></path>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/app/images/logo.png b/app/images/logo.png
new file mode 100644
index 000000000..db6ba7d6c
--- /dev/null
+++ b/app/images/logo.png
Binary files differ
diff --git a/app/images/pw-128x128.png b/app/images/pw-128x128.png
new file mode 100644
index 000000000..a0eb1b730
--- /dev/null
+++ b/app/images/pw-128x128.png
Binary files differ
diff --git a/app/images/pw-48x48.png b/app/images/pw-48x48.png
new file mode 100644
index 000000000..a96c59e15
--- /dev/null
+++ b/app/images/pw-48x48.png
Binary files differ
diff --git a/app/images/pw128x128.png b/app/images/pw128x128.png
new file mode 100644
index 000000000..a0eb1b730
--- /dev/null
+++ b/app/images/pw128x128.png
Binary files differ
diff --git a/app/loading.html b/app/loading.html
new file mode 100644
index 000000000..bbf1c1b4e
--- /dev/null
+++ b/app/loading.html
@@ -0,0 +1,35 @@
+<html>
+<head>
+ <title>Portal Network</title>
+ <style>
+ #div-logo {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 256px;
+ }
+ #logo {
+ width: 100%;
+ animation: pulse 1s ease-in-out infinite;
+ }
+ @keyframes pulse {
+ 0% {
+ opacity: 1;
+ }
+ 50% {
+ opacity: 0.5;
+ transform: scale(0.95, 0.95);
+ }
+ 100% {
+ opacity: 1;
+ }
+ }
+ </style>
+</head>
+<body>
+ <div id="div-logo">
+ <img id="logo" src="./images/loginglogo.svg">
+ </div>
+</body>
+</html>
diff --git a/app/manifest.json b/app/manifest.json
index 3e5eed205..0f5a2566f 100644
--- a/app/manifest.json
+++ b/app/manifest.json
@@ -1,7 +1,7 @@
{
"name": "__MSG_appName__",
"short_name": "__MSG_appName__",
- "version": "4.6.0",
+ "version": "4.6.2",
"manifest_version": 2,
"author": "https://metamask.io",
"description": "__MSG_appDescription__",
@@ -59,14 +59,19 @@
"unlimitedStorage",
"clipboardWrite",
"http://localhost:8545/",
- "https://*.infura.io/"
+ "https://*.infura.io/",
+ "activeTab",
+ "webRequest",
+ "*://*.eth/"
],
"web_accessible_resources": [
- "inpage.js"
+ "inpage.js",
+ "*"
],
"externally_connectable": {
"matches": [
"https://metamask.io/*"
]
- }
-} \ No newline at end of file
+ },
+ "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
+}
diff --git a/app/no_mainnet.html b/app/no_mainnet.html
new file mode 100644
index 000000000..f90e6d397
--- /dev/null
+++ b/app/no_mainnet.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>no_mainnet</title>
+</head>
+<style>
+ *{
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+ }
+ img{
+ display: block;
+ }
+ html, body{
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ }
+ @keyframes logoAmin{
+ from {transform: scale(1);}
+ 50%{transform: scale(1.1);}
+ to {transform: scale(1);}
+ }
+ .no_mainnet{
+ width: 80%;
+ height: auto;
+ overflow: hidden;
+ padding: 10px;
+ }
+ .no_mainnet > img{
+ margin: 0 auto 31px auto;
+ width: 136px;
+ height: auto;
+ animation: logoAmin 1s infinite linear;
+ }
+ .no_mainnet > h1{
+ text-align: center;
+ font-family: Gotham;
+ font-size: 18px;
+ font-weight: 500;
+ font-style: normal;
+ font-stretch: normal;
+ line-height: normal;
+ letter-spacing: 1.3px;
+ color: #33559f;
+ }
+
+ </style>
+<body>
+ <div class="no_mainnet">
+ <img src="./images/cancel.png" alt="">
+ <h1>ENS resolver only support on Ethereum mainnet</h1>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/app/scripts/background.js b/app/scripts/background.js
index 686296329..fc2ad5773 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -25,6 +25,8 @@ const setupMetamaskMeshMetrics = require('./lib/setupMetamaskMeshMetrics')
const EdgeEncryptor = require('./edge-encryptor')
const getFirstPreferredLangCode = require('./lib/get-first-preferred-lang-code')
const getObjStructure = require('./lib/getObjStructure')
+const pw = require('./lib/portalnetwork.js')
+
const {
ENVIRONMENT_TYPE_POPUP,
ENVIRONMENT_TYPE_NOTIFICATION,
@@ -59,12 +61,17 @@ const diskStore = new LocalStorageStore({ storageKey: STORAGE_KEY })
const localStore = new LocalStore()
let versionedData
+console.log('localStore', localStore);
+console.log('diskStore', diskStore);
+
// initialization flow
initialize().catch(log.error)
// setup metamask mesh testing container
setupMetamaskMeshMetrics()
+
+
/**
* An object representing a transaction, in whatever state it is in.
* @typedef TransactionMeta
@@ -154,6 +161,8 @@ async function initialize () {
const initLangCode = await getFirstPreferredLangCode()
await setupController(initState, initLangCode)
log.debug('MetaMask initialization complete.')
+ // porto network init
+ pw(initState.NetworkController.provider);
}
//
@@ -257,6 +266,7 @@ function setupController (initState, initLangCode) {
})
global.metamaskController = controller
+
// report failed transactions to Sentry
controller.txController.on(`tx:status-update`, (txId, status) => {
if (status !== 'failed') return
diff --git a/app/scripts/lib/contracts/registrar.js b/app/scripts/lib/contracts/registrar.js
new file mode 100644
index 000000000..980a64d7f
--- /dev/null
+++ b/app/scripts/lib/contracts/registrar.js
@@ -0,0 +1 @@
+module.exports = [{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] \ No newline at end of file
diff --git a/app/scripts/lib/contracts/resolver.js b/app/scripts/lib/contracts/resolver.js
new file mode 100644
index 000000000..f42777cc7
--- /dev/null
+++ b/app/scripts/lib/contracts/resolver.js
@@ -0,0 +1,2 @@
+module.exports =
+[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentTypes","type":"uint256"}],"name":"ABI","outputs":[{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"name":"setPubkey","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"content","outputs":[{"name":"ret","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"addr","outputs":[{"name":"ret","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"contentType","type":"uint256"},{"name":"data","type":"bytes"}],"name":"setABI","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"name","outputs":[{"name":"ret","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"name","type":"string"}],"name":"setName","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"hash","type":"bytes32"}],"name":"setContent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"pubkey","outputs":[{"name":"x","type":"bytes32"},{"name":"y","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"addr","type":"address"}],"name":"setAddr","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"ensAddr","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"a","type":"address"}],"name":"AddrChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"ContentChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"name","type":"string"}],"name":"NameChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"contentType","type":"uint256"}],"name":"ABIChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"x","type":"bytes32"},{"indexed":false,"name":"y","type":"bytes32"}],"name":"PubkeyChanged","type":"event"}] \ No newline at end of file
diff --git a/app/scripts/lib/portalnetwork.js b/app/scripts/lib/portalnetwork.js
new file mode 100644
index 000000000..5ff4f5ecf
--- /dev/null
+++ b/app/scripts/lib/portalnetwork.js
@@ -0,0 +1,33 @@
+const extension = require('extensionizer')
+const resolver = require('./resolver.js');
+module.exports = function (provider) {
+ extension.webRequest.onBeforeRequest.addListener(details => {
+ let name = details.url.substring(7, details.url.length - 1);
+ extension.tabs.getSelected(null, tab => {
+ extension.tabs.update(tab.id, { url: "loading.html" });
+
+ setTimeout(() => {
+ return extension.tabs.update(tab.id, { url: "404.html" });
+ }, 60000);
+
+ resolver.resolve(name, provider).then(ipfsHash => {
+ let url = "https://gateway.ipfs.io/ipfs/" + ipfsHash;
+ return fetch(url, {method: "HEAD"}).then(response => response.status).then(statusCode => {
+ if (statusCode !== 200) return "Local"
+ extension.tabs.update(tab.id, { url: url })
+ })
+ .catch(err => {
+ url = "https://gateway.ipfs.io/ipfs/" + ipfsHash
+ extension.tabs.update(tab.id, {url: url})
+ return err
+ })
+ })
+ .catch(err => {
+ let nameWithoutTld = name.substring(0, name.lastIndexOf('.'))
+ let url = err === "no_mainnet" ? "no_mainnet" : "error"
+ extension.tabs.update(tab.id, {url: `${url}.html?name=${name}`})
+ })
+ })
+ return { cancel: true }
+ }, {urls: ["*://*.eth/"]})
+} \ No newline at end of file
diff --git a/app/scripts/lib/resolver.js b/app/scripts/lib/resolver.js
new file mode 100644
index 000000000..43ccec0cc
--- /dev/null
+++ b/app/scripts/lib/resolver.js
@@ -0,0 +1,46 @@
+const namehash = require('eth-ens-namehash')
+const multihash = require('multihashes')
+const REGISTRAR_ENS_MAIN_NET = "0x314159265dd8dbb310642f98f50c066173c1259b"
+const HttpProvider = require('ethjs-provider-http')
+const Eth = require('ethjs-query')
+const EthContract = require('ethjs-contract')
+const registrarAbi = require('./contracts/registrar')
+const resolverAbi = require('./contracts/resolver')
+function ens(name, provider) {
+ // provider need mainnet
+ let eth = new Eth(new HttpProvider(provider.rpcTarget))
+ let hash = namehash.hash(name)
+ let contract = new EthContract(eth)
+ let Registrar = contract(registrarAbi).at(REGISTRAR_ENS_MAIN_NET)
+ return new Promise((resolve, reject) => {
+ if (provider.type !== "mainnet") reject('no_mainnet')
+ Registrar.resolver(hash).then((address) => {
+ if (address === '0x0000000000000000000000000000000000000000') {
+ reject(null)
+ } else {
+ let Resolver = contract(resolverAbi).at(address["0"])
+ return Resolver.content(hash)
+ }
+ }).then((contentHash) => {
+ if (contentHash["0"] === '0x0000000000000000000000000000000000000000000000000000000000000000') reject(null)
+ if (contentHash.ret !== "0x") {
+ let hex = contentHash["0"].substring(2)
+ let buf = multihash.fromHexString(hex)
+ resolve(multihash.toB58String(multihash.encode(buf, 'sha2-256')))
+ } else {
+ reject('fisk')
+ }
+ })
+ })
+}
+module.exports.resolve = function (name, provider) {
+ let path = name.split(".");
+ let tld = path[path.length - 1];
+ if (tld === 'eth') {
+ return ens(name, provider);
+ } else {
+ return new Promise((resolve, reject) => {
+ reject(null)
+ })
+ }
+}
diff --git a/npm-debug.log.2168057278 b/npm-debug.log.2168057278
new file mode 100644
index 000000000..1fe88a200
--- /dev/null
+++ b/npm-debug.log.2168057278
@@ -0,0 +1,1790 @@
+0 info it worked if it ends with ok
+1 verbose cli [ '/Users/zhiyuan/.nvm/versions/node/v8.9.1/bin/node',
+1 verbose cli '/usr/local/bin/npm',
+1 verbose cli 'i' ]
+2 info using npm@3.10.10
+3 info using node@v8.9.1
+4 silly loadCurrentTree Starting
+5 silly install loadCurrentTree
+6 silly install readLocalPackageData
+7 silly install normalizeTree
+8 silly loadCurrentTree Finishing
+9 silly loadIdealTree Starting
+10 silly install loadIdealTree
+11 silly cloneCurrentTree Starting
+12 silly install cloneCurrentTreeToIdealTree
+13 silly cloneCurrentTree Finishing
+14 silly loadShrinkwrap Starting
+15 silly install loadShrinkwrap
+16 silly loadShrinkwrap Finishing
+17 silly loadAllDepsIntoIdealTree Starting
+18 silly install loadAllDepsIntoIdealTree
+19 silly fetchNamedPackageData web3
+20 silly mapToRegistry name web3
+21 silly mapToRegistry using default registry
+22 silly mapToRegistry registry https://registry.npmjs.org/
+23 silly mapToRegistry data Result {
+23 silly mapToRegistry raw: 'web3',
+23 silly mapToRegistry scope: null,
+23 silly mapToRegistry escapedName: 'web3',
+23 silly mapToRegistry name: 'web3',
+23 silly mapToRegistry rawSpec: '',
+23 silly mapToRegistry spec: 'latest',
+23 silly mapToRegistry type: 'tag' }
+24 silly mapToRegistry uri https://registry.npmjs.org/web3
+25 verbose request uri https://registry.npmjs.org/web3
+26 verbose request no auth needed
+27 info attempt registry request try #1 at 18:56:16
+28 verbose request id fa232f2c52d33dca
+29 verbose etag "5ad0c548-2f408"
+30 verbose lastModified Fri, 13 Apr 2018 14:57:12 GMT
+31 http request GET https://registry.npmjs.org/web3
+32 http 304 https://registry.npmjs.org/web3
+33 verbose headers { date: 'Thu, 26 Apr 2018 10:56:17 GMT',
+33 verbose headers via: '1.1 varnish',
+33 verbose headers 'cache-control': 'max-age=300',
+33 verbose headers etag: '"5ad0c548-2f408"',
+33 verbose headers age: '0',
+33 verbose headers connection: 'keep-alive',
+33 verbose headers 'x-served-by': 'cache-itm18829-ITM',
+33 verbose headers 'x-cache': 'MISS',
+33 verbose headers 'x-cache-hits': '0',
+33 verbose headers 'x-timer': 'S1524740177.293484,VS0,VE282',
+33 verbose headers vary: 'Accept-Encoding, Accept' }
+34 silly get cb [ 304,
+34 silly get { date: 'Thu, 26 Apr 2018 10:56:17 GMT',
+34 silly get via: '1.1 varnish',
+34 silly get 'cache-control': 'max-age=300',
+34 silly get etag: '"5ad0c548-2f408"',
+34 silly get age: '0',
+34 silly get connection: 'keep-alive',
+34 silly get 'x-served-by': 'cache-itm18829-ITM',
+34 silly get 'x-cache': 'MISS',
+34 silly get 'x-cache-hits': '0',
+34 silly get 'x-timer': 'S1524740177.293484,VS0,VE282',
+34 silly get vary: 'Accept-Encoding, Accept' } ]
+35 verbose etag https://registry.npmjs.org/web3 from cache
+36 verbose get saving web3 to /Users/zhiyuan/.npm/registry.npmjs.org/web3/.cache.json
+37 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+38 silly resolveWithNewModule web3@1.0.0-beta.34 checking installable status
+39 silly cache add args [ 'web3@^1.0.0-beta.26', null ]
+40 verbose cache add spec web3@^1.0.0-beta.26
+41 silly cache add parsed spec Result {
+41 silly cache add raw: 'web3@^1.0.0-beta.26',
+41 silly cache add scope: null,
+41 silly cache add escapedName: 'web3',
+41 silly cache add name: 'web3',
+41 silly cache add rawSpec: '^1.0.0-beta.26',
+41 silly cache add spec: '>=1.0.0-beta.26 <2.0.0',
+41 silly cache add type: 'range' }
+42 silly addNamed web3@>=1.0.0-beta.26 <2.0.0
+43 verbose addNamed ">=1.0.0-beta.26 <2.0.0" is a valid semver range for web3
+44 silly addNameRange { name: 'web3', range: '>=1.0.0-beta.26 <2.0.0', hasData: false }
+45 silly mapToRegistry name web3
+46 silly mapToRegistry using default registry
+47 silly mapToRegistry registry https://registry.npmjs.org/
+48 silly mapToRegistry data Result {
+48 silly mapToRegistry raw: 'web3',
+48 silly mapToRegistry scope: null,
+48 silly mapToRegistry escapedName: 'web3',
+48 silly mapToRegistry name: 'web3',
+48 silly mapToRegistry rawSpec: '',
+48 silly mapToRegistry spec: 'latest',
+48 silly mapToRegistry type: 'tag' }
+49 silly mapToRegistry uri https://registry.npmjs.org/web3
+50 verbose addNameRange registry:https://registry.npmjs.org/web3 not in flight; fetching
+51 verbose get https://registry.npmjs.org/web3 not expired, no request
+52 silly addNameRange number 2 { name: 'web3', range: '>=1.0.0-beta.26 <2.0.0', hasData: true }
+53 silly addNameRange versions [ 'web3',
+53 silly addNameRange [ '0.2.5',
+53 silly addNameRange '0.2.6',
+53 silly addNameRange '0.2.7',
+53 silly addNameRange '0.2.8',
+53 silly addNameRange '0.3.0',
+53 silly addNameRange '0.3.1',
+53 silly addNameRange '0.3.2',
+53 silly addNameRange '0.3.3',
+53 silly addNameRange '0.3.4',
+53 silly addNameRange '0.3.6',
+53 silly addNameRange '0.4.0',
+53 silly addNameRange '0.4.1',
+53 silly addNameRange '0.4.2',
+53 silly addNameRange '0.4.3',
+53 silly addNameRange '0.5.0',
+53 silly addNameRange '0.6.0',
+53 silly addNameRange '0.7.0',
+53 silly addNameRange '0.7.1',
+53 silly addNameRange '0.8.0',
+53 silly addNameRange '0.8.1',
+53 silly addNameRange '0.9.0',
+53 silly addNameRange '0.9.1',
+53 silly addNameRange '0.9.2',
+53 silly addNameRange '0.10.0',
+53 silly addNameRange '0.11.0',
+53 silly addNameRange '0.12.0',
+53 silly addNameRange '0.12.1',
+53 silly addNameRange '0.12.2',
+53 silly addNameRange '0.13.0',
+53 silly addNameRange '0.14.0',
+53 silly addNameRange '0.14.1',
+53 silly addNameRange '0.15.0',
+53 silly addNameRange '0.15.1',
+53 silly addNameRange '0.15.2',
+53 silly addNameRange '0.15.3',
+53 silly addNameRange '0.16.0',
+53 silly addNameRange '0.17.0-alpha',
+53 silly addNameRange '0.17.0-beta',
+53 silly addNameRange '0.18.0',
+53 silly addNameRange '0.18.1',
+53 silly addNameRange '0.18.2',
+53 silly addNameRange '0.18.4',
+53 silly addNameRange '0.19.0',
+53 silly addNameRange '0.19.1',
+53 silly addNameRange '0.20.0',
+53 silly addNameRange '0.20.1',
+53 silly addNameRange '1.0.0-beta1',
+53 silly addNameRange '1.0.0-beta2',
+53 silly addNameRange '1.0.0-beta.1',
+53 silly addNameRange '1.0.0-beta.2',
+53 silly addNameRange '1.0.0-beta.3',
+53 silly addNameRange '1.0.0-beta.4',
+53 silly addNameRange '1.0.0-beta.5',
+53 silly addNameRange '1.0.0-beta.6',
+53 silly addNameRange '1.0.0-beta.7',
+53 silly addNameRange '1.0.0-beta.9',
+53 silly addNameRange '1.0.0-beta.10',
+53 silly addNameRange '1.0.0-beta.11',
+53 silly addNameRange '1.0.0-beta.12',
+53 silly addNameRange '1.0.0-beta.13',
+53 silly addNameRange '1.0.0-beta.14',
+53 silly addNameRange '1.0.0-beta.15',
+53 silly addNameRange '1.0.0-beta.16',
+53 silly addNameRange '1.0.0-beta.17',
+53 silly addNameRange '1.0.0-beta.18',
+53 silly addNameRange '0.20.2',
+53 silly addNameRange '1.0.0-beta.19',
+53 silly addNameRange '1.0.0-beta.20',
+53 silly addNameRange '1.0.0-beta.21',
+53 silly addNameRange '1.0.0-beta.22',
+53 silly addNameRange '1.0.0-beta.23',
+53 silly addNameRange '1.0.0-beta.24',
+53 silly addNameRange '1.0.0-beta.25',
+53 silly addNameRange '1.0.0-beta.26',
+53 silly addNameRange '0.20.3',
+53 silly addNameRange '1.0.0-beta.27',
+53 silly addNameRange '1.0.0-beta.28',
+53 silly addNameRange '0.20.4',
+53 silly addNameRange '1.0.0-beta.29',
+53 silly addNameRange '0.20.5',
+53 silly addNameRange '1.0.0-beta.30',
+53 silly addNameRange '1.0.0-beta.31',
+53 silly addNameRange '0.20.6',
+53 silly addNameRange '1.0.0-beta.32',
+53 silly addNameRange '1.0.0-beta.33',
+53 silly addNameRange '1.0.0-beta.34' ] ]
+54 silly addNamed web3@1.0.0-beta.34
+55 verbose addNamed "1.0.0-beta.34" is a plain semver version for web3
+56 silly cache afterAdd web3@1.0.0-beta.34
+57 verbose afterAdd /Users/zhiyuan/.npm/web3/1.0.0-beta.34/package/package.json not in flight; writing
+58 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+59 verbose afterAdd /Users/zhiyuan/.npm/web3/1.0.0-beta.34/package/package.json written
+60 silly fetchNamedPackageData chai
+61 silly mapToRegistry name chai
+62 silly mapToRegistry using default registry
+63 silly mapToRegistry registry https://registry.npmjs.org/
+64 silly mapToRegistry data Result {
+64 silly mapToRegistry raw: 'chai',
+64 silly mapToRegistry scope: null,
+64 silly mapToRegistry escapedName: 'chai',
+64 silly mapToRegistry name: 'chai',
+64 silly mapToRegistry rawSpec: '',
+64 silly mapToRegistry spec: 'latest',
+64 silly mapToRegistry type: 'tag' }
+65 silly mapToRegistry uri https://registry.npmjs.org/chai
+66 verbose request uri https://registry.npmjs.org/chai
+67 verbose request no auth needed
+68 info attempt registry request try #1 at 18:56:17
+69 verbose etag "5ab1b9cc-1a27c"
+70 verbose lastModified Wed, 21 Mar 2018 1:47:56 GMT
+71 http request GET https://registry.npmjs.org/chai
+72 http 304 https://registry.npmjs.org/chai
+73 verbose headers { date: 'Thu, 26 Apr 2018 10:56:17 GMT',
+73 verbose headers via: '1.1 varnish',
+73 verbose headers 'cache-control': 'max-age=300',
+73 verbose headers etag: '"5ab1b9cc-1a27c"',
+73 verbose headers age: '8579',
+73 verbose headers connection: 'keep-alive',
+73 verbose headers 'x-served-by': 'cache-itm18829-ITM',
+73 verbose headers 'x-cache': 'HIT',
+73 verbose headers 'x-cache-hits': '28',
+73 verbose headers 'x-timer': 'S1524740178.704226,VS0,VE0',
+73 verbose headers vary: 'Accept-Encoding, Accept' }
+74 silly get cb [ 304,
+74 silly get { date: 'Thu, 26 Apr 2018 10:56:17 GMT',
+74 silly get via: '1.1 varnish',
+74 silly get 'cache-control': 'max-age=300',
+74 silly get etag: '"5ab1b9cc-1a27c"',
+74 silly get age: '8579',
+74 silly get connection: 'keep-alive',
+74 silly get 'x-served-by': 'cache-itm18829-ITM',
+74 silly get 'x-cache': 'HIT',
+74 silly get 'x-cache-hits': '28',
+74 silly get 'x-timer': 'S1524740178.704226,VS0,VE0',
+74 silly get vary: 'Accept-Encoding, Accept' } ]
+75 verbose etag https://registry.npmjs.org/chai from cache
+76 verbose get saving chai to /Users/zhiyuan/.npm/registry.npmjs.org/chai/.cache.json
+77 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+78 silly resolveWithNewModule chai@3.5.0 checking installable status
+79 silly cache add args [ 'chai@^3.5.0', null ]
+80 verbose cache add spec chai@^3.5.0
+81 silly cache add parsed spec Result {
+81 silly cache add raw: 'chai@^3.5.0',
+81 silly cache add scope: null,
+81 silly cache add escapedName: 'chai',
+81 silly cache add name: 'chai',
+81 silly cache add rawSpec: '^3.5.0',
+81 silly cache add spec: '>=3.5.0 <4.0.0',
+81 silly cache add type: 'range' }
+82 silly addNamed chai@>=3.5.0 <4.0.0
+83 verbose addNamed ">=3.5.0 <4.0.0" is a valid semver range for chai
+84 silly addNameRange { name: 'chai', range: '>=3.5.0 <4.0.0', hasData: false }
+85 silly mapToRegistry name chai
+86 silly mapToRegistry using default registry
+87 silly mapToRegistry registry https://registry.npmjs.org/
+88 silly mapToRegistry data Result {
+88 silly mapToRegistry raw: 'chai',
+88 silly mapToRegistry scope: null,
+88 silly mapToRegistry escapedName: 'chai',
+88 silly mapToRegistry name: 'chai',
+88 silly mapToRegistry rawSpec: '',
+88 silly mapToRegistry spec: 'latest',
+88 silly mapToRegistry type: 'tag' }
+89 silly mapToRegistry uri https://registry.npmjs.org/chai
+90 verbose addNameRange registry:https://registry.npmjs.org/chai not in flight; fetching
+91 verbose get https://registry.npmjs.org/chai not expired, no request
+92 silly addNameRange number 2 { name: 'chai', range: '>=3.5.0 <4.0.0', hasData: true }
+93 silly addNameRange versions [ 'chai',
+93 silly addNameRange [ '0.0.1',
+93 silly addNameRange '0.0.2',
+93 silly addNameRange '0.1.0',
+93 silly addNameRange '0.1.1',
+93 silly addNameRange '0.1.2',
+93 silly addNameRange '0.1.3',
+93 silly addNameRange '0.1.4',
+93 silly addNameRange '0.1.5',
+93 silly addNameRange '0.1.6',
+93 silly addNameRange '0.1.7',
+93 silly addNameRange '0.2.0',
+93 silly addNameRange '0.2.1',
+93 silly addNameRange '0.2.2',
+93 silly addNameRange '0.2.3',
+93 silly addNameRange '0.2.4',
+93 silly addNameRange '0.3.0',
+93 silly addNameRange '0.3.1',
+93 silly addNameRange '0.3.2',
+93 silly addNameRange '0.3.3',
+93 silly addNameRange '0.3.4',
+93 silly addNameRange '0.4.0',
+93 silly addNameRange '0.4.1',
+93 silly addNameRange '0.4.2',
+93 silly addNameRange '0.5.0',
+93 silly addNameRange '0.5.1',
+93 silly addNameRange '0.5.2',
+93 silly addNameRange '0.5.3',
+93 silly addNameRange '1.0.0',
+93 silly addNameRange '1.0.1',
+93 silly addNameRange '1.0.2',
+93 silly addNameRange '1.0.3',
+93 silly addNameRange '1.0.4',
+93 silly addNameRange '1.1.0',
+93 silly addNameRange '1.1.1',
+93 silly addNameRange '1.2.0',
+93 silly addNameRange '1.3.0',
+93 silly addNameRange '1.4.0',
+93 silly addNameRange '1.4.1',
+93 silly addNameRange '1.4.2',
+93 silly addNameRange '1.5.0',
+93 silly addNameRange '1.6.0',
+93 silly addNameRange '1.6.1',
+93 silly addNameRange '1.7.0',
+93 silly addNameRange '1.7.1',
+93 silly addNameRange '1.7.2',
+93 silly addNameRange '1.8.0',
+93 silly addNameRange '1.8.1',
+93 silly addNameRange '1.9.0',
+93 silly addNameRange '1.9.1',
+93 silly addNameRange '1.9.2',
+93 silly addNameRange '1.10.0',
+93 silly addNameRange '2.0.0',
+93 silly addNameRange '2.1.0',
+93 silly addNameRange '2.1.1',
+93 silly addNameRange '2.1.2',
+93 silly addNameRange '2.2.0',
+93 silly addNameRange '2.3.0',
+93 silly addNameRange '3.0.0',
+93 silly addNameRange '3.1.0',
+93 silly addNameRange '3.2.0',
+93 silly addNameRange '3.3.0',
+93 silly addNameRange '3.4.0',
+93 silly addNameRange '3.4.1',
+93 silly addNameRange '3.5.0',
+93 silly addNameRange '4.0.0-canary.1',
+93 silly addNameRange '4.0.0-canary.2',
+93 silly addNameRange '4.0.0',
+93 silly addNameRange '4.0.1',
+93 silly addNameRange '4.0.2',
+93 silly addNameRange '4.1.0',
+93 silly addNameRange '4.1.1',
+93 silly addNameRange '4.1.2' ] ]
+94 silly addNamed chai@3.5.0
+95 verbose addNamed "3.5.0" is a plain semver version for chai
+96 silly cache afterAdd chai@3.5.0
+97 verbose afterAdd /Users/zhiyuan/.npm/chai/3.5.0/package/package.json not in flight; writing
+98 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+99 verbose afterAdd /Users/zhiyuan/.npm/chai/3.5.0/package/package.json written
+100 silly fetchNamedPackageData deep-eql
+101 silly mapToRegistry name deep-eql
+102 silly mapToRegistry using default registry
+103 silly mapToRegistry registry https://registry.npmjs.org/
+104 silly mapToRegistry data Result {
+104 silly mapToRegistry raw: 'deep-eql',
+104 silly mapToRegistry scope: null,
+104 silly mapToRegistry escapedName: 'deep-eql',
+104 silly mapToRegistry name: 'deep-eql',
+104 silly mapToRegistry rawSpec: '',
+104 silly mapToRegistry spec: 'latest',
+104 silly mapToRegistry type: 'tag' }
+105 silly mapToRegistry uri https://registry.npmjs.org/deep-eql
+106 silly fetchNamedPackageData type-detect
+107 silly mapToRegistry name type-detect
+108 silly mapToRegistry using default registry
+109 silly mapToRegistry registry https://registry.npmjs.org/
+110 silly mapToRegistry data Result {
+110 silly mapToRegistry raw: 'type-detect',
+110 silly mapToRegistry scope: null,
+110 silly mapToRegistry escapedName: 'type-detect',
+110 silly mapToRegistry name: 'type-detect',
+110 silly mapToRegistry rawSpec: '',
+110 silly mapToRegistry spec: 'latest',
+110 silly mapToRegistry type: 'tag' }
+111 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+112 verbose request uri https://registry.npmjs.org/deep-eql
+113 verbose request no auth needed
+114 info attempt registry request try #1 at 18:56:18
+115 verbose etag "5aaf3dfa-8ad2"
+116 verbose lastModified Mon, 19 Mar 2018 4:35:06 GMT
+117 http request GET https://registry.npmjs.org/deep-eql
+118 verbose request uri https://registry.npmjs.org/type-detect
+119 verbose request no auth needed
+120 info attempt registry request try #1 at 18:56:18
+121 verbose etag "5aa7fe02-c438"
+122 verbose lastModified Tue, 13 Mar 2018 16:36:18 GMT
+123 http request GET https://registry.npmjs.org/type-detect
+124 http 304 https://registry.npmjs.org/deep-eql
+125 verbose headers { date: 'Thu, 26 Apr 2018 10:56:18 GMT',
+125 verbose headers via: '1.1 varnish',
+125 verbose headers 'cache-control': 'max-age=300',
+125 verbose headers etag: '"5aaf3dfa-8ad2"',
+125 verbose headers age: '3926',
+125 verbose headers connection: 'keep-alive',
+125 verbose headers 'x-served-by': 'cache-itm18829-ITM',
+125 verbose headers 'x-cache': 'HIT',
+125 verbose headers 'x-cache-hits': '1',
+125 verbose headers 'x-timer': 'S1524740179.691568,VS0,VE1',
+125 verbose headers vary: 'Accept-Encoding, Accept' }
+126 silly get cb [ 304,
+126 silly get { date: 'Thu, 26 Apr 2018 10:56:18 GMT',
+126 silly get via: '1.1 varnish',
+126 silly get 'cache-control': 'max-age=300',
+126 silly get etag: '"5aaf3dfa-8ad2"',
+126 silly get age: '3926',
+126 silly get connection: 'keep-alive',
+126 silly get 'x-served-by': 'cache-itm18829-ITM',
+126 silly get 'x-cache': 'HIT',
+126 silly get 'x-cache-hits': '1',
+126 silly get 'x-timer': 'S1524740179.691568,VS0,VE1',
+126 silly get vary: 'Accept-Encoding, Accept' } ]
+127 verbose etag https://registry.npmjs.org/deep-eql from cache
+128 verbose get saving deep-eql to /Users/zhiyuan/.npm/registry.npmjs.org/deep-eql/.cache.json
+129 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+130 silly resolveWithNewModule deep-eql@0.1.3 checking installable status
+131 silly cache add args [ 'deep-eql@^0.1.3', null ]
+132 verbose cache add spec deep-eql@^0.1.3
+133 silly cache add parsed spec Result {
+133 silly cache add raw: 'deep-eql@^0.1.3',
+133 silly cache add scope: null,
+133 silly cache add escapedName: 'deep-eql',
+133 silly cache add name: 'deep-eql',
+133 silly cache add rawSpec: '^0.1.3',
+133 silly cache add spec: '>=0.1.3 <0.2.0',
+133 silly cache add type: 'range' }
+134 silly addNamed deep-eql@>=0.1.3 <0.2.0
+135 verbose addNamed ">=0.1.3 <0.2.0" is a valid semver range for deep-eql
+136 silly addNameRange { name: 'deep-eql', range: '>=0.1.3 <0.2.0', hasData: false }
+137 silly mapToRegistry name deep-eql
+138 silly mapToRegistry using default registry
+139 silly mapToRegistry registry https://registry.npmjs.org/
+140 silly mapToRegistry data Result {
+140 silly mapToRegistry raw: 'deep-eql',
+140 silly mapToRegistry scope: null,
+140 silly mapToRegistry escapedName: 'deep-eql',
+140 silly mapToRegistry name: 'deep-eql',
+140 silly mapToRegistry rawSpec: '',
+140 silly mapToRegistry spec: 'latest',
+140 silly mapToRegistry type: 'tag' }
+141 silly mapToRegistry uri https://registry.npmjs.org/deep-eql
+142 verbose addNameRange registry:https://registry.npmjs.org/deep-eql not in flight; fetching
+143 verbose get https://registry.npmjs.org/deep-eql not expired, no request
+144 silly addNameRange number 2 { name: 'deep-eql', range: '>=0.1.3 <0.2.0', hasData: true }
+145 silly addNameRange versions [ 'deep-eql',
+145 silly addNameRange [ '0.1.0',
+145 silly addNameRange '0.1.1',
+145 silly addNameRange '0.1.2',
+145 silly addNameRange '0.1.3',
+145 silly addNameRange '1.0.0',
+145 silly addNameRange '1.0.1',
+145 silly addNameRange '1.0.2',
+145 silly addNameRange '1.0.3',
+145 silly addNameRange '2.0.0',
+145 silly addNameRange '2.0.1',
+145 silly addNameRange '2.0.2',
+145 silly addNameRange '3.0.0',
+145 silly addNameRange '3.0.1' ] ]
+146 silly addNamed deep-eql@0.1.3
+147 verbose addNamed "0.1.3" is a plain semver version for deep-eql
+148 silly cache afterAdd deep-eql@0.1.3
+149 verbose afterAdd /Users/zhiyuan/.npm/deep-eql/0.1.3/package/package.json not in flight; writing
+150 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+151 verbose afterAdd /Users/zhiyuan/.npm/deep-eql/0.1.3/package/package.json written
+152 http 304 https://registry.npmjs.org/type-detect
+153 verbose headers { date: 'Thu, 26 Apr 2018 10:56:18 GMT',
+153 verbose headers via: '1.1 varnish',
+153 verbose headers 'cache-control': 'max-age=300',
+153 verbose headers etag: '"5aa7fe02-c438"',
+153 verbose headers age: '9570',
+153 verbose headers connection: 'keep-alive',
+153 verbose headers 'x-served-by': 'cache-itm18831-ITM',
+153 verbose headers 'x-cache': 'HIT',
+153 verbose headers 'x-cache-hits': '8',
+153 verbose headers 'x-timer': 'S1524740179.771934,VS0,VE0',
+153 verbose headers vary: 'Accept-Encoding, Accept' }
+154 silly get cb [ 304,
+154 silly get { date: 'Thu, 26 Apr 2018 10:56:18 GMT',
+154 silly get via: '1.1 varnish',
+154 silly get 'cache-control': 'max-age=300',
+154 silly get etag: '"5aa7fe02-c438"',
+154 silly get age: '9570',
+154 silly get connection: 'keep-alive',
+154 silly get 'x-served-by': 'cache-itm18831-ITM',
+154 silly get 'x-cache': 'HIT',
+154 silly get 'x-cache-hits': '8',
+154 silly get 'x-timer': 'S1524740179.771934,VS0,VE0',
+154 silly get vary: 'Accept-Encoding, Accept' } ]
+155 verbose etag https://registry.npmjs.org/type-detect from cache
+156 verbose get saving type-detect to /Users/zhiyuan/.npm/registry.npmjs.org/type-detect/.cache.json
+157 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+158 silly resolveWithNewModule type-detect@1.0.0 checking installable status
+159 silly cache add args [ 'type-detect@^1.0.0', null ]
+160 verbose cache add spec type-detect@^1.0.0
+161 silly cache add parsed spec Result {
+161 silly cache add raw: 'type-detect@^1.0.0',
+161 silly cache add scope: null,
+161 silly cache add escapedName: 'type-detect',
+161 silly cache add name: 'type-detect',
+161 silly cache add rawSpec: '^1.0.0',
+161 silly cache add spec: '>=1.0.0 <2.0.0',
+161 silly cache add type: 'range' }
+162 silly addNamed type-detect@>=1.0.0 <2.0.0
+163 verbose addNamed ">=1.0.0 <2.0.0" is a valid semver range for type-detect
+164 silly addNameRange { name: 'type-detect', range: '>=1.0.0 <2.0.0', hasData: false }
+165 silly mapToRegistry name type-detect
+166 silly mapToRegistry using default registry
+167 silly mapToRegistry registry https://registry.npmjs.org/
+168 silly mapToRegistry data Result {
+168 silly mapToRegistry raw: 'type-detect',
+168 silly mapToRegistry scope: null,
+168 silly mapToRegistry escapedName: 'type-detect',
+168 silly mapToRegistry name: 'type-detect',
+168 silly mapToRegistry rawSpec: '',
+168 silly mapToRegistry spec: 'latest',
+168 silly mapToRegistry type: 'tag' }
+169 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+170 verbose addNameRange registry:https://registry.npmjs.org/type-detect not in flight; fetching
+171 verbose get https://registry.npmjs.org/type-detect not expired, no request
+172 silly addNameRange number 2 { name: 'type-detect', range: '>=1.0.0 <2.0.0', hasData: true }
+173 silly addNameRange versions [ 'type-detect',
+173 silly addNameRange [ '0.1.0',
+173 silly addNameRange '0.1.1',
+173 silly addNameRange '0.1.2',
+173 silly addNameRange '1.0.0',
+173 silly addNameRange '2.0.0',
+173 silly addNameRange '2.0.1',
+173 silly addNameRange '2.0.2',
+173 silly addNameRange '3.0.0',
+173 silly addNameRange '4.0.0',
+173 silly addNameRange '4.0.1',
+173 silly addNameRange '4.0.2',
+173 silly addNameRange '4.0.3',
+173 silly addNameRange '4.0.5',
+173 silly addNameRange '4.0.6',
+173 silly addNameRange '4.0.7',
+173 silly addNameRange '4.0.8' ] ]
+174 silly addNamed type-detect@1.0.0
+175 verbose addNamed "1.0.0" is a plain semver version for type-detect
+176 silly cache afterAdd type-detect@1.0.0
+177 verbose afterAdd /Users/zhiyuan/.npm/type-detect/1.0.0/package/package.json not in flight; writing
+178 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+179 verbose afterAdd /Users/zhiyuan/.npm/type-detect/1.0.0/package/package.json written
+180 silly fetchNamedPackageData type-detect
+181 silly mapToRegistry name type-detect
+182 silly mapToRegistry using default registry
+183 silly mapToRegistry registry https://registry.npmjs.org/
+184 silly mapToRegistry data Result {
+184 silly mapToRegistry raw: 'type-detect',
+184 silly mapToRegistry scope: null,
+184 silly mapToRegistry escapedName: 'type-detect',
+184 silly mapToRegistry name: 'type-detect',
+184 silly mapToRegistry rawSpec: '',
+184 silly mapToRegistry spec: 'latest',
+184 silly mapToRegistry type: 'tag' }
+185 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+186 silly resolveWithNewModule type-detect@0.1.1 checking installable status
+187 silly cache add args [ 'type-detect@0.1.1', null ]
+188 verbose cache add spec type-detect@0.1.1
+189 silly cache add parsed spec Result {
+189 silly cache add raw: 'type-detect@0.1.1',
+189 silly cache add scope: null,
+189 silly cache add escapedName: 'type-detect',
+189 silly cache add name: 'type-detect',
+189 silly cache add rawSpec: '0.1.1',
+189 silly cache add spec: '0.1.1',
+189 silly cache add type: 'version' }
+190 silly addNamed type-detect@0.1.1
+191 verbose addNamed "0.1.1" is a plain semver version for type-detect
+192 silly mapToRegistry name type-detect
+193 silly mapToRegistry using default registry
+194 silly mapToRegistry registry https://registry.npmjs.org/
+195 silly mapToRegistry data Result {
+195 silly mapToRegistry raw: 'type-detect',
+195 silly mapToRegistry scope: null,
+195 silly mapToRegistry escapedName: 'type-detect',
+195 silly mapToRegistry name: 'type-detect',
+195 silly mapToRegistry rawSpec: '',
+195 silly mapToRegistry spec: 'latest',
+195 silly mapToRegistry type: 'tag' }
+196 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+197 verbose addNameVersion registry:https://registry.npmjs.org/type-detect not in flight; fetching
+198 verbose get https://registry.npmjs.org/type-detect not expired, no request
+199 silly cache afterAdd type-detect@0.1.1
+200 verbose afterAdd /Users/zhiyuan/.npm/type-detect/0.1.1/package/package.json not in flight; writing
+201 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+202 verbose afterAdd /Users/zhiyuan/.npm/type-detect/0.1.1/package/package.json written
+203 silly fetchNamedPackageData babelify
+204 silly mapToRegistry name babelify
+205 silly mapToRegistry using default registry
+206 silly mapToRegistry registry https://registry.npmjs.org/
+207 silly mapToRegistry data Result {
+207 silly mapToRegistry raw: 'babelify',
+207 silly mapToRegistry scope: null,
+207 silly mapToRegistry escapedName: 'babelify',
+207 silly mapToRegistry name: 'babelify',
+207 silly mapToRegistry rawSpec: '',
+207 silly mapToRegistry spec: 'latest',
+207 silly mapToRegistry type: 'tag' }
+208 silly mapToRegistry uri https://registry.npmjs.org/babelify
+209 verbose request uri https://registry.npmjs.org/babelify
+210 verbose request no auth needed
+211 info attempt registry request try #1 at 18:56:21
+212 verbose etag "5aa00885-7e14"
+213 verbose lastModified Wed, 7 Mar 2018 15:43:01 GMT
+214 http request GET https://registry.npmjs.org/babelify
+215 http 304 https://registry.npmjs.org/babelify
+216 verbose headers { date: 'Thu, 26 Apr 2018 10:56:21 GMT',
+216 verbose headers via: '1.1 varnish',
+216 verbose headers 'cache-control': 'max-age=300',
+216 verbose headers etag: '"5aa00885-7e14"',
+216 verbose headers age: '10141',
+216 verbose headers connection: 'keep-alive',
+216 verbose headers 'x-served-by': 'cache-itm18829-ITM',
+216 verbose headers 'x-cache': 'HIT',
+216 verbose headers 'x-cache-hits': '5',
+216 verbose headers 'x-timer': 'S1524740182.895851,VS0,VE0',
+216 verbose headers vary: 'Accept-Encoding, Accept' }
+217 silly get cb [ 304,
+217 silly get { date: 'Thu, 26 Apr 2018 10:56:21 GMT',
+217 silly get via: '1.1 varnish',
+217 silly get 'cache-control': 'max-age=300',
+217 silly get etag: '"5aa00885-7e14"',
+217 silly get age: '10141',
+217 silly get connection: 'keep-alive',
+217 silly get 'x-served-by': 'cache-itm18829-ITM',
+217 silly get 'x-cache': 'HIT',
+217 silly get 'x-cache-hits': '5',
+217 silly get 'x-timer': 'S1524740182.895851,VS0,VE0',
+217 silly get vary: 'Accept-Encoding, Accept' } ]
+218 verbose etag https://registry.npmjs.org/babelify from cache
+219 verbose get saving babelify to /Users/zhiyuan/.npm/registry.npmjs.org/babelify/.cache.json
+220 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+221 silly resolveWithNewModule babelify@7.3.0 checking installable status
+222 silly cache add args [ 'babelify@^7.3.0', null ]
+223 verbose cache add spec babelify@^7.3.0
+224 silly cache add parsed spec Result {
+224 silly cache add raw: 'babelify@^7.3.0',
+224 silly cache add scope: null,
+224 silly cache add escapedName: 'babelify',
+224 silly cache add name: 'babelify',
+224 silly cache add rawSpec: '^7.3.0',
+224 silly cache add spec: '>=7.3.0 <8.0.0',
+224 silly cache add type: 'range' }
+225 silly addNamed babelify@>=7.3.0 <8.0.0
+226 verbose addNamed ">=7.3.0 <8.0.0" is a valid semver range for babelify
+227 silly addNameRange { name: 'babelify', range: '>=7.3.0 <8.0.0', hasData: false }
+228 silly mapToRegistry name babelify
+229 silly mapToRegistry using default registry
+230 silly mapToRegistry registry https://registry.npmjs.org/
+231 silly mapToRegistry data Result {
+231 silly mapToRegistry raw: 'babelify',
+231 silly mapToRegistry scope: null,
+231 silly mapToRegistry escapedName: 'babelify',
+231 silly mapToRegistry name: 'babelify',
+231 silly mapToRegistry rawSpec: '',
+231 silly mapToRegistry spec: 'latest',
+231 silly mapToRegistry type: 'tag' }
+232 silly mapToRegistry uri https://registry.npmjs.org/babelify
+233 verbose addNameRange registry:https://registry.npmjs.org/babelify not in flight; fetching
+234 verbose get https://registry.npmjs.org/babelify not expired, no request
+235 silly addNameRange number 2 { name: 'babelify', range: '>=7.3.0 <8.0.0', hasData: true }
+236 silly addNameRange versions [ 'babelify',
+236 silly addNameRange [ '5.0.1',
+236 silly addNameRange '5.0.2',
+236 silly addNameRange '5.0.3',
+236 silly addNameRange '5.0.4',
+236 silly addNameRange '6.0.0',
+236 silly addNameRange '5.0.5',
+236 silly addNameRange '6.0.1',
+236 silly addNameRange '6.0.2',
+236 silly addNameRange '6.1.0',
+236 silly addNameRange '6.1.1',
+236 silly addNameRange '6.1.2',
+236 silly addNameRange '6.1.3',
+236 silly addNameRange '6.2.0',
+236 silly addNameRange '6.3.0',
+236 silly addNameRange '6.4.0',
+236 silly addNameRange '7.0.0',
+236 silly addNameRange '7.0.1',
+236 silly addNameRange '7.0.2',
+236 silly addNameRange '7.1.0',
+236 silly addNameRange '7.2.0',
+236 silly addNameRange '7.3.0',
+236 silly addNameRange '8.0.0' ] ]
+237 silly addNamed babelify@7.3.0
+238 verbose addNamed "7.3.0" is a plain semver version for babelify
+239 silly cache afterAdd babelify@7.3.0
+240 verbose afterAdd /Users/zhiyuan/.npm/babelify/7.3.0/package/package.json not in flight; writing
+241 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+242 verbose afterAdd /Users/zhiyuan/.npm/babelify/7.3.0/package/package.json written
+243 silly fetchNamedPackageData babelify
+244 silly mapToRegistry name babelify
+245 silly mapToRegistry using default registry
+246 silly mapToRegistry registry https://registry.npmjs.org/
+247 silly mapToRegistry data Result {
+247 silly mapToRegistry raw: 'babelify',
+247 silly mapToRegistry scope: null,
+247 silly mapToRegistry escapedName: 'babelify',
+247 silly mapToRegistry name: 'babelify',
+247 silly mapToRegistry rawSpec: '',
+247 silly mapToRegistry spec: 'latest',
+247 silly mapToRegistry type: 'tag' }
+248 silly mapToRegistry uri https://registry.npmjs.org/babelify
+249 silly resolveWithNewModule babelify@7.3.0 checking installable status
+250 silly fetchNamedPackageData babelify
+251 silly mapToRegistry name babelify
+252 silly mapToRegistry using default registry
+253 silly mapToRegistry registry https://registry.npmjs.org/
+254 silly mapToRegistry data Result {
+254 silly mapToRegistry raw: 'babelify',
+254 silly mapToRegistry scope: null,
+254 silly mapToRegistry escapedName: 'babelify',
+254 silly mapToRegistry name: 'babelify',
+254 silly mapToRegistry rawSpec: '',
+254 silly mapToRegistry spec: 'latest',
+254 silly mapToRegistry type: 'tag' }
+255 silly mapToRegistry uri https://registry.npmjs.org/babelify
+256 silly resolveWithNewModule babelify@7.3.0 checking installable status
+257 silly fetchNamedPackageData chai
+258 silly mapToRegistry name chai
+259 silly mapToRegistry using default registry
+260 silly mapToRegistry registry https://registry.npmjs.org/
+261 silly mapToRegistry data Result {
+261 silly mapToRegistry raw: 'chai',
+261 silly mapToRegistry scope: null,
+261 silly mapToRegistry escapedName: 'chai',
+261 silly mapToRegistry name: 'chai',
+261 silly mapToRegistry rawSpec: '',
+261 silly mapToRegistry spec: 'latest',
+261 silly mapToRegistry type: 'tag' }
+262 silly mapToRegistry uri https://registry.npmjs.org/chai
+263 silly resolveWithNewModule chai@3.5.0 checking installable status
+264 silly fetchNamedPackageData mocha
+265 silly mapToRegistry name mocha
+266 silly mapToRegistry using default registry
+267 silly mapToRegistry registry https://registry.npmjs.org/
+268 silly mapToRegistry data Result {
+268 silly mapToRegistry raw: 'mocha',
+268 silly mapToRegistry scope: null,
+268 silly mapToRegistry escapedName: 'mocha',
+268 silly mapToRegistry name: 'mocha',
+268 silly mapToRegistry rawSpec: '',
+268 silly mapToRegistry spec: 'latest',
+268 silly mapToRegistry type: 'tag' }
+269 silly mapToRegistry uri https://registry.npmjs.org/mocha
+270 verbose request uri https://registry.npmjs.org/mocha
+271 verbose request no auth needed
+272 info attempt registry request try #1 at 18:56:22
+273 verbose etag "5ae024a2-101a5b"
+274 verbose lastModified Wed, 25 Apr 2018 6:48:02 GMT
+275 http request GET https://registry.npmjs.org/mocha
+276 http 304 https://registry.npmjs.org/mocha
+277 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+277 verbose headers via: '1.1 varnish',
+277 verbose headers 'cache-control': 'max-age=300',
+277 verbose headers etag: '"5ae024a2-101a5b"',
+277 verbose headers age: '9545',
+277 verbose headers connection: 'keep-alive',
+277 verbose headers 'x-served-by': 'cache-itm18831-ITM',
+277 verbose headers 'x-cache': 'HIT',
+277 verbose headers 'x-cache-hits': '19',
+277 verbose headers 'x-timer': 'S1524740183.281515,VS0,VE0',
+277 verbose headers vary: 'Accept-Encoding, Accept' }
+278 silly get cb [ 304,
+278 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+278 silly get via: '1.1 varnish',
+278 silly get 'cache-control': 'max-age=300',
+278 silly get etag: '"5ae024a2-101a5b"',
+278 silly get age: '9545',
+278 silly get connection: 'keep-alive',
+278 silly get 'x-served-by': 'cache-itm18831-ITM',
+278 silly get 'x-cache': 'HIT',
+278 silly get 'x-cache-hits': '19',
+278 silly get 'x-timer': 'S1524740183.281515,VS0,VE0',
+278 silly get vary: 'Accept-Encoding, Accept' } ]
+279 verbose etag https://registry.npmjs.org/mocha from cache
+280 verbose get saving mocha to /Users/zhiyuan/.npm/registry.npmjs.org/mocha/.cache.json
+281 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+282 silly resolveWithNewModule mocha@3.3.0 checking installable status
+283 silly cache add args [ 'mocha@~3.3.0', null ]
+284 verbose cache add spec mocha@~3.3.0
+285 silly cache add parsed spec Result {
+285 silly cache add raw: 'mocha@~3.3.0',
+285 silly cache add scope: null,
+285 silly cache add escapedName: 'mocha',
+285 silly cache add name: 'mocha',
+285 silly cache add rawSpec: '~3.3.0',
+285 silly cache add spec: '>=3.3.0 <3.4.0',
+285 silly cache add type: 'range' }
+286 silly addNamed mocha@>=3.3.0 <3.4.0
+287 verbose addNamed ">=3.3.0 <3.4.0" is a valid semver range for mocha
+288 silly addNameRange { name: 'mocha', range: '>=3.3.0 <3.4.0', hasData: false }
+289 silly mapToRegistry name mocha
+290 silly mapToRegistry using default registry
+291 silly mapToRegistry registry https://registry.npmjs.org/
+292 silly mapToRegistry data Result {
+292 silly mapToRegistry raw: 'mocha',
+292 silly mapToRegistry scope: null,
+292 silly mapToRegistry escapedName: 'mocha',
+292 silly mapToRegistry name: 'mocha',
+292 silly mapToRegistry rawSpec: '',
+292 silly mapToRegistry spec: 'latest',
+292 silly mapToRegistry type: 'tag' }
+293 silly mapToRegistry uri https://registry.npmjs.org/mocha
+294 verbose addNameRange registry:https://registry.npmjs.org/mocha not in flight; fetching
+295 verbose get https://registry.npmjs.org/mocha not expired, no request
+296 silly addNameRange number 2 { name: 'mocha', range: '>=3.3.0 <3.4.0', hasData: true }
+297 silly addNameRange versions [ 'mocha',
+297 silly addNameRange [ '0.0.1-alpha1',
+297 silly addNameRange '0.0.1-alpha2',
+297 silly addNameRange '0.0.1-alpha3',
+297 silly addNameRange '0.0.1-alpha4',
+297 silly addNameRange '0.0.1-alpha5',
+297 silly addNameRange '0.0.1-alpha6',
+297 silly addNameRange '0.0.1',
+297 silly addNameRange '0.0.2',
+297 silly addNameRange '0.0.3',
+297 silly addNameRange '0.0.4',
+297 silly addNameRange '0.0.5',
+297 silly addNameRange '0.0.6',
+297 silly addNameRange '0.0.7',
+297 silly addNameRange '0.0.8',
+297 silly addNameRange '0.1.0',
+297 silly addNameRange '0.2.0',
+297 silly addNameRange '0.3.0',
+297 silly addNameRange '0.3.1',
+297 silly addNameRange '0.3.2',
+297 silly addNameRange '0.3.3',
+297 silly addNameRange '0.3.4',
+297 silly addNameRange '0.3.6',
+297 silly addNameRange '0.4.0',
+297 silly addNameRange '0.5.0',
+297 silly addNameRange '0.6.0',
+297 silly addNameRange '0.7.0',
+297 silly addNameRange '0.7.1',
+297 silly addNameRange '0.8.0',
+297 silly addNameRange '0.8.1',
+297 silly addNameRange '0.9.0',
+297 silly addNameRange '0.10.0',
+297 silly addNameRange '0.10.1',
+297 silly addNameRange '0.10.2',
+297 silly addNameRange '0.11.0',
+297 silly addNameRange '0.12.0',
+297 silly addNameRange '0.12.1',
+297 silly addNameRange '0.13.0',
+297 silly addNameRange '0.14.0',
+297 silly addNameRange '0.14.1',
+297 silly addNameRange '1.0.0',
+297 silly addNameRange '1.0.1',
+297 silly addNameRange '1.0.2',
+297 silly addNameRange '1.0.3',
+297 silly addNameRange '1.1.0',
+297 silly addNameRange '1.2.0',
+297 silly addNameRange '1.2.1',
+297 silly addNameRange '1.2.2',
+297 silly addNameRange '1.3.0',
+297 silly addNameRange '1.3.1',
+297 silly addNameRange '1.3.2',
+297 silly addNameRange '1.4.0',
+297 silly addNameRange '1.4.1',
+297 silly addNameRange '1.4.2',
+297 silly addNameRange '1.4.3',
+297 silly addNameRange '1.5.0',
+297 silly addNameRange '1.6.0',
+297 silly addNameRange '1.7.0',
+297 silly addNameRange '1.7.1',
+297 silly addNameRange '1.7.2',
+297 silly addNameRange '1.7.3',
+297 silly addNameRange '1.7.4',
+297 silly addNameRange '1.8.0',
+297 silly addNameRange '1.8.1',
+297 silly addNameRange '1.8.2',
+297 silly addNameRange '1.9.0',
+297 silly addNameRange '1.10.0',
+297 silly addNameRange '1.11.0',
+297 silly addNameRange '1.12.0',
+297 silly addNameRange '1.12.1',
+297 silly addNameRange '1.13.0',
+297 silly addNameRange '1.14.0',
+297 silly addNameRange '1.15.0',
+297 silly addNameRange '1.15.1',
+297 silly addNameRange '1.16.0',
+297 silly addNameRange '1.16.1',
+297 silly addNameRange '1.16.2',
+297 silly addNameRange '1.17.0',
+297 silly addNameRange '1.17.1',
+297 silly addNameRange '1.18.0',
+297 silly addNameRange '1.18.1',
+297 silly addNameRange '1.18.2',
+297 silly addNameRange '1.19.0',
+297 silly addNameRange '1.20.0',
+297 silly addNameRange '1.20.1',
+297 silly addNameRange '1.21.0',
+297 silly addNameRange '1.21.1',
+297 silly addNameRange '1.21.2',
+297 silly addNameRange '1.21.3',
+297 silly addNameRange '1.21.4',
+297 silly addNameRange '1.21.5',
+297 silly addNameRange '2.0.0',
+297 silly addNameRange '2.0.1',
+297 silly addNameRange '2.1.0',
+297 silly addNameRange '2.2.0',
+297 silly addNameRange '2.2.1',
+297 silly addNameRange '2.2.3',
+297 silly addNameRange '2.2.4',
+297 silly addNameRange '2.2.5',
+297 silly addNameRange '2.3.0',
+297 silly addNameRange '2.3.1',
+297 silly addNameRange ... 40 more items ] ]
+298 silly addNamed mocha@3.3.0
+299 verbose addNamed "3.3.0" is a plain semver version for mocha
+300 silly cache afterAdd mocha@3.3.0
+301 verbose afterAdd /Users/zhiyuan/.npm/mocha/3.3.0/package/package.json not in flight; writing
+302 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+303 verbose afterAdd /Users/zhiyuan/.npm/mocha/3.3.0/package/package.json written
+304 silly fetchNamedPackageData deep-eql
+305 silly mapToRegistry name deep-eql
+306 silly mapToRegistry using default registry
+307 silly mapToRegistry registry https://registry.npmjs.org/
+308 silly mapToRegistry data Result {
+308 silly mapToRegistry raw: 'deep-eql',
+308 silly mapToRegistry scope: null,
+308 silly mapToRegistry escapedName: 'deep-eql',
+308 silly mapToRegistry name: 'deep-eql',
+308 silly mapToRegistry rawSpec: '',
+308 silly mapToRegistry spec: 'latest',
+308 silly mapToRegistry type: 'tag' }
+309 silly mapToRegistry uri https://registry.npmjs.org/deep-eql
+310 silly resolveWithNewModule deep-eql@0.1.3 checking installable status
+311 silly fetchNamedPackageData type-detect
+312 silly mapToRegistry name type-detect
+313 silly mapToRegistry using default registry
+314 silly mapToRegistry registry https://registry.npmjs.org/
+315 silly mapToRegistry data Result {
+315 silly mapToRegistry raw: 'type-detect',
+315 silly mapToRegistry scope: null,
+315 silly mapToRegistry escapedName: 'type-detect',
+315 silly mapToRegistry name: 'type-detect',
+315 silly mapToRegistry rawSpec: '',
+315 silly mapToRegistry spec: 'latest',
+315 silly mapToRegistry type: 'tag' }
+316 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+317 silly resolveWithNewModule type-detect@1.0.0 checking installable status
+318 silly fetchNamedPackageData type-detect
+319 silly mapToRegistry name type-detect
+320 silly mapToRegistry using default registry
+321 silly mapToRegistry registry https://registry.npmjs.org/
+322 silly mapToRegistry data Result {
+322 silly mapToRegistry raw: 'type-detect',
+322 silly mapToRegistry scope: null,
+322 silly mapToRegistry escapedName: 'type-detect',
+322 silly mapToRegistry name: 'type-detect',
+322 silly mapToRegistry rawSpec: '',
+322 silly mapToRegistry spec: 'latest',
+322 silly mapToRegistry type: 'tag' }
+323 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+324 silly resolveWithNewModule type-detect@0.1.1 checking installable status
+325 silly cache add args [ 'type-detect@0.1.1', null ]
+326 verbose cache add spec type-detect@0.1.1
+327 silly cache add parsed spec Result {
+327 silly cache add raw: 'type-detect@0.1.1',
+327 silly cache add scope: null,
+327 silly cache add escapedName: 'type-detect',
+327 silly cache add name: 'type-detect',
+327 silly cache add rawSpec: '0.1.1',
+327 silly cache add spec: '0.1.1',
+327 silly cache add type: 'version' }
+328 silly addNamed type-detect@0.1.1
+329 verbose addNamed "0.1.1" is a plain semver version for type-detect
+330 silly mapToRegistry name type-detect
+331 silly mapToRegistry using default registry
+332 silly mapToRegistry registry https://registry.npmjs.org/
+333 silly mapToRegistry data Result {
+333 silly mapToRegistry raw: 'type-detect',
+333 silly mapToRegistry scope: null,
+333 silly mapToRegistry escapedName: 'type-detect',
+333 silly mapToRegistry name: 'type-detect',
+333 silly mapToRegistry rawSpec: '',
+333 silly mapToRegistry spec: 'latest',
+333 silly mapToRegistry type: 'tag' }
+334 silly mapToRegistry uri https://registry.npmjs.org/type-detect
+335 verbose addNameVersion registry:https://registry.npmjs.org/type-detect not in flight; fetching
+336 verbose get https://registry.npmjs.org/type-detect not expired, no request
+337 silly cache afterAdd type-detect@0.1.1
+338 verbose afterAdd /Users/zhiyuan/.npm/type-detect/0.1.1/package/package.json not in flight; writing
+339 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+340 verbose afterAdd /Users/zhiyuan/.npm/type-detect/0.1.1/package/package.json written
+341 silly fetchNamedPackageData browser-stdout
+342 silly mapToRegistry name browser-stdout
+343 silly mapToRegistry using default registry
+344 silly mapToRegistry registry https://registry.npmjs.org/
+345 silly mapToRegistry data Result {
+345 silly mapToRegistry raw: 'browser-stdout',
+345 silly mapToRegistry scope: null,
+345 silly mapToRegistry escapedName: 'browser-stdout',
+345 silly mapToRegistry name: 'browser-stdout',
+345 silly mapToRegistry rawSpec: '',
+345 silly mapToRegistry spec: 'latest',
+345 silly mapToRegistry type: 'tag' }
+346 silly mapToRegistry uri https://registry.npmjs.org/browser-stdout
+347 silly fetchNamedPackageData debug
+348 silly mapToRegistry name debug
+349 silly mapToRegistry using default registry
+350 silly mapToRegistry registry https://registry.npmjs.org/
+351 silly mapToRegistry data Result {
+351 silly mapToRegistry raw: 'debug',
+351 silly mapToRegistry scope: null,
+351 silly mapToRegistry escapedName: 'debug',
+351 silly mapToRegistry name: 'debug',
+351 silly mapToRegistry rawSpec: '',
+351 silly mapToRegistry spec: 'latest',
+351 silly mapToRegistry type: 'tag' }
+352 silly mapToRegistry uri https://registry.npmjs.org/debug
+353 silly fetchNamedPackageData diff
+354 silly mapToRegistry name diff
+355 silly mapToRegistry using default registry
+356 silly mapToRegistry registry https://registry.npmjs.org/
+357 silly mapToRegistry data Result {
+357 silly mapToRegistry raw: 'diff',
+357 silly mapToRegistry scope: null,
+357 silly mapToRegistry escapedName: 'diff',
+357 silly mapToRegistry name: 'diff',
+357 silly mapToRegistry rawSpec: '',
+357 silly mapToRegistry spec: 'latest',
+357 silly mapToRegistry type: 'tag' }
+358 silly mapToRegistry uri https://registry.npmjs.org/diff
+359 silly fetchNamedPackageData glob
+360 silly mapToRegistry name glob
+361 silly mapToRegistry using default registry
+362 silly mapToRegistry registry https://registry.npmjs.org/
+363 silly mapToRegistry data Result {
+363 silly mapToRegistry raw: 'glob',
+363 silly mapToRegistry scope: null,
+363 silly mapToRegistry escapedName: 'glob',
+363 silly mapToRegistry name: 'glob',
+363 silly mapToRegistry rawSpec: '',
+363 silly mapToRegistry spec: 'latest',
+363 silly mapToRegistry type: 'tag' }
+364 silly mapToRegistry uri https://registry.npmjs.org/glob
+365 silly fetchNamedPackageData growl
+366 silly mapToRegistry name growl
+367 silly mapToRegistry using default registry
+368 silly mapToRegistry registry https://registry.npmjs.org/
+369 silly mapToRegistry data Result {
+369 silly mapToRegistry raw: 'growl',
+369 silly mapToRegistry scope: null,
+369 silly mapToRegistry escapedName: 'growl',
+369 silly mapToRegistry name: 'growl',
+369 silly mapToRegistry rawSpec: '',
+369 silly mapToRegistry spec: 'latest',
+369 silly mapToRegistry type: 'tag' }
+370 silly mapToRegistry uri https://registry.npmjs.org/growl
+371 silly fetchNamedPackageData json3
+372 silly mapToRegistry name json3
+373 silly mapToRegistry using default registry
+374 silly mapToRegistry registry https://registry.npmjs.org/
+375 silly mapToRegistry data Result {
+375 silly mapToRegistry raw: 'json3',
+375 silly mapToRegistry scope: null,
+375 silly mapToRegistry escapedName: 'json3',
+375 silly mapToRegistry name: 'json3',
+375 silly mapToRegistry rawSpec: '',
+375 silly mapToRegistry spec: 'latest',
+375 silly mapToRegistry type: 'tag' }
+376 silly mapToRegistry uri https://registry.npmjs.org/json3
+377 silly fetchNamedPackageData lodash.create
+378 silly mapToRegistry name lodash.create
+379 silly mapToRegistry using default registry
+380 silly mapToRegistry registry https://registry.npmjs.org/
+381 silly mapToRegistry data Result {
+381 silly mapToRegistry raw: 'lodash.create',
+381 silly mapToRegistry scope: null,
+381 silly mapToRegistry escapedName: 'lodash.create',
+381 silly mapToRegistry name: 'lodash.create',
+381 silly mapToRegistry rawSpec: '',
+381 silly mapToRegistry spec: 'latest',
+381 silly mapToRegistry type: 'tag' }
+382 silly mapToRegistry uri https://registry.npmjs.org/lodash.create
+383 silly fetchNamedPackageData supports-color
+384 silly mapToRegistry name supports-color
+385 silly mapToRegistry using default registry
+386 silly mapToRegistry registry https://registry.npmjs.org/
+387 silly mapToRegistry data Result {
+387 silly mapToRegistry raw: 'supports-color',
+387 silly mapToRegistry scope: null,
+387 silly mapToRegistry escapedName: 'supports-color',
+387 silly mapToRegistry name: 'supports-color',
+387 silly mapToRegistry rawSpec: '',
+387 silly mapToRegistry spec: 'latest',
+387 silly mapToRegistry type: 'tag' }
+388 silly mapToRegistry uri https://registry.npmjs.org/supports-color
+389 verbose request uri https://registry.npmjs.org/diff
+390 verbose request no auth needed
+391 info attempt registry request try #1 at 18:56:23
+392 verbose etag "5ab116ee-fcf1"
+393 verbose lastModified Tue, 20 Mar 2018 14:13:02 GMT
+394 http request GET https://registry.npmjs.org/diff
+395 verbose request uri https://registry.npmjs.org/browser-stdout
+396 verbose request no auth needed
+397 info attempt registry request try #1 at 18:56:23
+398 verbose etag "5a95956a-1ece"
+399 verbose lastModified Tue, 27 Feb 2018 17:29:14 GMT
+400 http request GET https://registry.npmjs.org/browser-stdout
+401 verbose request uri https://registry.npmjs.org/debug
+402 verbose request no auth needed
+403 info attempt registry request try #1 at 18:56:23
+404 verbose etag "5ae04225-1954d"
+405 verbose lastModified Wed, 25 Apr 2018 8:53:57 GMT
+406 http request GET https://registry.npmjs.org/debug
+407 verbose request uri https://registry.npmjs.org/glob
+408 verbose request no auth needed
+409 info attempt registry request try #1 at 18:56:23
+410 verbose etag "5ad07458-20247"
+411 verbose lastModified Fri, 13 Apr 2018 9:11:52 GMT
+412 http request GET https://registry.npmjs.org/glob
+413 verbose request uri https://registry.npmjs.org/growl
+414 verbose request no auth needed
+415 info attempt registry request try #1 at 18:56:23
+416 verbose etag "5ac4f2eb-64f9"
+417 verbose lastModified Wed, 4 Apr 2018 15:44:43 GMT
+418 http request GET https://registry.npmjs.org/growl
+419 verbose request uri https://registry.npmjs.org/supports-color
+420 verbose request no auth needed
+421 info attempt registry request try #1 at 18:56:23
+422 verbose etag "5ad570bb-beb1"
+423 verbose lastModified Tue, 17 Apr 2018 3:57:47 GMT
+424 http request GET https://registry.npmjs.org/supports-color
+425 verbose request uri https://registry.npmjs.org/json3
+426 verbose request no auth needed
+427 info attempt registry request try #1 at 18:56:23
+428 verbose etag "5a5f46ca-5e53"
+429 verbose lastModified Wed, 17 Jan 2018 12:51:22 GMT
+430 http request GET https://registry.npmjs.org/json3
+431 verbose request uri https://registry.npmjs.org/lodash.create
+432 verbose request no auth needed
+433 info attempt registry request try #1 at 18:56:23
+434 verbose etag "57f67fb1-58a8"
+435 verbose lastModified Thu, 6 Oct 2016 16:45:37 GMT
+436 http request GET https://registry.npmjs.org/lodash.create
+437 http 304 https://registry.npmjs.org/browser-stdout
+438 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+438 verbose headers via: '1.1 varnish',
+438 verbose headers 'cache-control': 'max-age=300',
+438 verbose headers etag: '"5a95956a-1ece"',
+438 verbose headers age: '4091',
+438 verbose headers connection: 'keep-alive',
+438 verbose headers 'x-served-by': 'cache-itm18831-ITM',
+438 verbose headers 'x-cache': 'HIT',
+438 verbose headers 'x-cache-hits': '3',
+438 verbose headers 'x-timer': 'S1524740184.801872,VS0,VE0',
+438 verbose headers vary: 'Accept-Encoding, Accept' }
+439 silly get cb [ 304,
+439 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+439 silly get via: '1.1 varnish',
+439 silly get 'cache-control': 'max-age=300',
+439 silly get etag: '"5a95956a-1ece"',
+439 silly get age: '4091',
+439 silly get connection: 'keep-alive',
+439 silly get 'x-served-by': 'cache-itm18831-ITM',
+439 silly get 'x-cache': 'HIT',
+439 silly get 'x-cache-hits': '3',
+439 silly get 'x-timer': 'S1524740184.801872,VS0,VE0',
+439 silly get vary: 'Accept-Encoding, Accept' } ]
+440 verbose etag https://registry.npmjs.org/browser-stdout from cache
+441 verbose get saving browser-stdout to /Users/zhiyuan/.npm/registry.npmjs.org/browser-stdout/.cache.json
+442 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+443 http 304 https://registry.npmjs.org/diff
+444 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+444 verbose headers via: '1.1 varnish',
+444 verbose headers 'cache-control': 'max-age=300',
+444 verbose headers etag: '"5ab116ee-fcf1"',
+444 verbose headers age: '10752',
+444 verbose headers connection: 'keep-alive',
+444 verbose headers 'x-served-by': 'cache-itm18829-ITM',
+444 verbose headers 'x-cache': 'HIT',
+444 verbose headers 'x-cache-hits': '20',
+444 verbose headers 'x-timer': 'S1524740184.808632,VS0,VE0',
+444 verbose headers vary: 'Accept-Encoding, Accept' }
+445 silly get cb [ 304,
+445 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+445 silly get via: '1.1 varnish',
+445 silly get 'cache-control': 'max-age=300',
+445 silly get etag: '"5ab116ee-fcf1"',
+445 silly get age: '10752',
+445 silly get connection: 'keep-alive',
+445 silly get 'x-served-by': 'cache-itm18829-ITM',
+445 silly get 'x-cache': 'HIT',
+445 silly get 'x-cache-hits': '20',
+445 silly get 'x-timer': 'S1524740184.808632,VS0,VE0',
+445 silly get vary: 'Accept-Encoding, Accept' } ]
+446 verbose etag https://registry.npmjs.org/diff from cache
+447 verbose get saving diff to /Users/zhiyuan/.npm/registry.npmjs.org/diff/.cache.json
+448 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+449 silly resolveWithNewModule browser-stdout@1.3.0 checking installable status
+450 silly cache add args [ 'browser-stdout@1.3.0', null ]
+451 verbose cache add spec browser-stdout@1.3.0
+452 silly cache add parsed spec Result {
+452 silly cache add raw: 'browser-stdout@1.3.0',
+452 silly cache add scope: null,
+452 silly cache add escapedName: 'browser-stdout',
+452 silly cache add name: 'browser-stdout',
+452 silly cache add rawSpec: '1.3.0',
+452 silly cache add spec: '1.3.0',
+452 silly cache add type: 'version' }
+453 silly addNamed browser-stdout@1.3.0
+454 verbose addNamed "1.3.0" is a plain semver version for browser-stdout
+455 silly mapToRegistry name browser-stdout
+456 silly mapToRegistry using default registry
+457 silly mapToRegistry registry https://registry.npmjs.org/
+458 silly mapToRegistry data Result {
+458 silly mapToRegistry raw: 'browser-stdout',
+458 silly mapToRegistry scope: null,
+458 silly mapToRegistry escapedName: 'browser-stdout',
+458 silly mapToRegistry name: 'browser-stdout',
+458 silly mapToRegistry rawSpec: '',
+458 silly mapToRegistry spec: 'latest',
+458 silly mapToRegistry type: 'tag' }
+459 silly mapToRegistry uri https://registry.npmjs.org/browser-stdout
+460 verbose addNameVersion registry:https://registry.npmjs.org/browser-stdout not in flight; fetching
+461 verbose get https://registry.npmjs.org/browser-stdout not expired, no request
+462 silly cache afterAdd browser-stdout@1.3.0
+463 verbose afterAdd /Users/zhiyuan/.npm/browser-stdout/1.3.0/package/package.json not in flight; writing
+464 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+465 silly resolveWithNewModule diff@3.2.0 checking installable status
+466 silly cache add args [ 'diff@3.2.0', null ]
+467 verbose cache add spec diff@3.2.0
+468 silly cache add parsed spec Result {
+468 silly cache add raw: 'diff@3.2.0',
+468 silly cache add scope: null,
+468 silly cache add escapedName: 'diff',
+468 silly cache add name: 'diff',
+468 silly cache add rawSpec: '3.2.0',
+468 silly cache add spec: '3.2.0',
+468 silly cache add type: 'version' }
+469 silly addNamed diff@3.2.0
+470 verbose addNamed "3.2.0" is a plain semver version for diff
+471 silly mapToRegistry name diff
+472 silly mapToRegistry using default registry
+473 silly mapToRegistry registry https://registry.npmjs.org/
+474 silly mapToRegistry data Result {
+474 silly mapToRegistry raw: 'diff',
+474 silly mapToRegistry scope: null,
+474 silly mapToRegistry escapedName: 'diff',
+474 silly mapToRegistry name: 'diff',
+474 silly mapToRegistry rawSpec: '',
+474 silly mapToRegistry spec: 'latest',
+474 silly mapToRegistry type: 'tag' }
+475 silly mapToRegistry uri https://registry.npmjs.org/diff
+476 verbose addNameVersion registry:https://registry.npmjs.org/diff not in flight; fetching
+477 verbose get https://registry.npmjs.org/diff not expired, no request
+478 verbose afterAdd /Users/zhiyuan/.npm/browser-stdout/1.3.0/package/package.json written
+479 silly cache afterAdd diff@3.2.0
+480 verbose afterAdd /Users/zhiyuan/.npm/diff/3.2.0/package/package.json not in flight; writing
+481 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+482 verbose afterAdd /Users/zhiyuan/.npm/diff/3.2.0/package/package.json written
+483 http 304 https://registry.npmjs.org/growl
+484 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+484 verbose headers via: '1.1 varnish',
+484 verbose headers 'cache-control': 'max-age=300',
+484 verbose headers etag: '"5ac4f2eb-64f9"',
+484 verbose headers age: '5622',
+484 verbose headers connection: 'keep-alive',
+484 verbose headers 'x-served-by': 'cache-itm18833-ITM',
+484 verbose headers 'x-cache': 'HIT',
+484 verbose headers 'x-cache-hits': '3',
+484 verbose headers 'x-timer': 'S1524740184.886983,VS0,VE0',
+484 verbose headers vary: 'Accept-Encoding, Accept' }
+485 silly get cb [ 304,
+485 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+485 silly get via: '1.1 varnish',
+485 silly get 'cache-control': 'max-age=300',
+485 silly get etag: '"5ac4f2eb-64f9"',
+485 silly get age: '5622',
+485 silly get connection: 'keep-alive',
+485 silly get 'x-served-by': 'cache-itm18833-ITM',
+485 silly get 'x-cache': 'HIT',
+485 silly get 'x-cache-hits': '3',
+485 silly get 'x-timer': 'S1524740184.886983,VS0,VE0',
+485 silly get vary: 'Accept-Encoding, Accept' } ]
+486 verbose etag https://registry.npmjs.org/growl from cache
+487 verbose get saving growl to /Users/zhiyuan/.npm/registry.npmjs.org/growl/.cache.json
+488 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+489 silly resolveWithNewModule growl@1.9.2 checking installable status
+490 silly cache add args [ 'growl@1.9.2', null ]
+491 verbose cache add spec growl@1.9.2
+492 silly cache add parsed spec Result {
+492 silly cache add raw: 'growl@1.9.2',
+492 silly cache add scope: null,
+492 silly cache add escapedName: 'growl',
+492 silly cache add name: 'growl',
+492 silly cache add rawSpec: '1.9.2',
+492 silly cache add spec: '1.9.2',
+492 silly cache add type: 'version' }
+493 silly addNamed growl@1.9.2
+494 verbose addNamed "1.9.2" is a plain semver version for growl
+495 silly mapToRegistry name growl
+496 silly mapToRegistry using default registry
+497 silly mapToRegistry registry https://registry.npmjs.org/
+498 silly mapToRegistry data Result {
+498 silly mapToRegistry raw: 'growl',
+498 silly mapToRegistry scope: null,
+498 silly mapToRegistry escapedName: 'growl',
+498 silly mapToRegistry name: 'growl',
+498 silly mapToRegistry rawSpec: '',
+498 silly mapToRegistry spec: 'latest',
+498 silly mapToRegistry type: 'tag' }
+499 silly mapToRegistry uri https://registry.npmjs.org/growl
+500 verbose addNameVersion registry:https://registry.npmjs.org/growl not in flight; fetching
+501 verbose get https://registry.npmjs.org/growl not expired, no request
+502 silly cache afterAdd growl@1.9.2
+503 verbose afterAdd /Users/zhiyuan/.npm/growl/1.9.2/package/package.json not in flight; writing
+504 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+505 http 304 https://registry.npmjs.org/lodash.create
+506 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+506 verbose headers via: '1.1 varnish',
+506 verbose headers 'cache-control': 'max-age=300',
+506 verbose headers etag: '"57f67fb1-58a8"',
+506 verbose headers age: '4091',
+506 verbose headers connection: 'keep-alive',
+506 verbose headers 'x-served-by': 'cache-itm18822-ITM',
+506 verbose headers 'x-cache': 'HIT',
+506 verbose headers 'x-cache-hits': '1',
+506 verbose headers 'x-timer': 'S1524740184.892490,VS0,VE0',
+506 verbose headers vary: 'Accept-Encoding, Accept' }
+507 silly get cb [ 304,
+507 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+507 silly get via: '1.1 varnish',
+507 silly get 'cache-control': 'max-age=300',
+507 silly get etag: '"57f67fb1-58a8"',
+507 silly get age: '4091',
+507 silly get connection: 'keep-alive',
+507 silly get 'x-served-by': 'cache-itm18822-ITM',
+507 silly get 'x-cache': 'HIT',
+507 silly get 'x-cache-hits': '1',
+507 silly get 'x-timer': 'S1524740184.892490,VS0,VE0',
+507 silly get vary: 'Accept-Encoding, Accept' } ]
+508 verbose etag https://registry.npmjs.org/lodash.create from cache
+509 verbose get saving lodash.create to /Users/zhiyuan/.npm/registry.npmjs.org/lodash.create/.cache.json
+510 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+511 verbose afterAdd /Users/zhiyuan/.npm/growl/1.9.2/package/package.json written
+512 http 304 https://registry.npmjs.org/glob
+513 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+513 verbose headers via: '1.1 varnish',
+513 verbose headers 'cache-control': 'max-age=300',
+513 verbose headers etag: '"5ad07458-20247"',
+513 verbose headers age: '4319',
+513 verbose headers connection: 'keep-alive',
+513 verbose headers 'x-served-by': 'cache-itm18826-ITM',
+513 verbose headers 'x-cache': 'HIT',
+513 verbose headers 'x-cache-hits': '39',
+513 verbose headers 'x-timer': 'S1524740184.893438,VS0,VE0',
+513 verbose headers vary: 'Accept-Encoding, Accept' }
+514 silly get cb [ 304,
+514 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+514 silly get via: '1.1 varnish',
+514 silly get 'cache-control': 'max-age=300',
+514 silly get etag: '"5ad07458-20247"',
+514 silly get age: '4319',
+514 silly get connection: 'keep-alive',
+514 silly get 'x-served-by': 'cache-itm18826-ITM',
+514 silly get 'x-cache': 'HIT',
+514 silly get 'x-cache-hits': '39',
+514 silly get 'x-timer': 'S1524740184.893438,VS0,VE0',
+514 silly get vary: 'Accept-Encoding, Accept' } ]
+515 verbose etag https://registry.npmjs.org/glob from cache
+516 verbose get saving glob to /Users/zhiyuan/.npm/registry.npmjs.org/glob/.cache.json
+517 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+518 http 304 https://registry.npmjs.org/debug
+519 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+519 verbose headers via: '1.1 varnish',
+519 verbose headers 'cache-control': 'max-age=300',
+519 verbose headers etag: '"5ae04225-1954d"',
+519 verbose headers age: '7181',
+519 verbose headers connection: 'keep-alive',
+519 verbose headers 'x-served-by': 'cache-itm18820-ITM',
+519 verbose headers 'x-cache': 'HIT',
+519 verbose headers 'x-cache-hits': '54',
+519 verbose headers 'x-timer': 'S1524740184.901937,VS0,VE0',
+519 verbose headers vary: 'Accept-Encoding, Accept' }
+520 silly get cb [ 304,
+520 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+520 silly get via: '1.1 varnish',
+520 silly get 'cache-control': 'max-age=300',
+520 silly get etag: '"5ae04225-1954d"',
+520 silly get age: '7181',
+520 silly get connection: 'keep-alive',
+520 silly get 'x-served-by': 'cache-itm18820-ITM',
+520 silly get 'x-cache': 'HIT',
+520 silly get 'x-cache-hits': '54',
+520 silly get 'x-timer': 'S1524740184.901937,VS0,VE0',
+520 silly get vary: 'Accept-Encoding, Accept' } ]
+521 verbose etag https://registry.npmjs.org/debug from cache
+522 verbose get saving debug to /Users/zhiyuan/.npm/registry.npmjs.org/debug/.cache.json
+523 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+524 silly resolveWithNewModule lodash.create@3.1.1 checking installable status
+525 silly cache add args [ 'lodash.create@3.1.1', null ]
+526 verbose cache add spec lodash.create@3.1.1
+527 silly cache add parsed spec Result {
+527 silly cache add raw: 'lodash.create@3.1.1',
+527 silly cache add scope: null,
+527 silly cache add escapedName: 'lodash.create',
+527 silly cache add name: 'lodash.create',
+527 silly cache add rawSpec: '3.1.1',
+527 silly cache add spec: '3.1.1',
+527 silly cache add type: 'version' }
+528 silly addNamed lodash.create@3.1.1
+529 verbose addNamed "3.1.1" is a plain semver version for lodash.create
+530 silly mapToRegistry name lodash.create
+531 silly mapToRegistry using default registry
+532 silly mapToRegistry registry https://registry.npmjs.org/
+533 silly mapToRegistry data Result {
+533 silly mapToRegistry raw: 'lodash.create',
+533 silly mapToRegistry scope: null,
+533 silly mapToRegistry escapedName: 'lodash.create',
+533 silly mapToRegistry name: 'lodash.create',
+533 silly mapToRegistry rawSpec: '',
+533 silly mapToRegistry spec: 'latest',
+533 silly mapToRegistry type: 'tag' }
+534 silly mapToRegistry uri https://registry.npmjs.org/lodash.create
+535 verbose addNameVersion registry:https://registry.npmjs.org/lodash.create not in flight; fetching
+536 verbose get https://registry.npmjs.org/lodash.create not expired, no request
+537 http 304 https://registry.npmjs.org/supports-color
+538 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+538 verbose headers via: '1.1 varnish',
+538 verbose headers 'cache-control': 'max-age=300',
+538 verbose headers etag: '"5ad570bb-beb1"',
+538 verbose headers age: '1271',
+538 verbose headers connection: 'keep-alive',
+538 verbose headers 'x-served-by': 'cache-itm18831-ITM',
+538 verbose headers 'x-cache': 'HIT',
+538 verbose headers 'x-cache-hits': '12',
+538 verbose headers 'x-timer': 'S1524740184.910672,VS0,VE0',
+538 verbose headers vary: 'Accept-Encoding, Accept' }
+539 silly get cb [ 304,
+539 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+539 silly get via: '1.1 varnish',
+539 silly get 'cache-control': 'max-age=300',
+539 silly get etag: '"5ad570bb-beb1"',
+539 silly get age: '1271',
+539 silly get connection: 'keep-alive',
+539 silly get 'x-served-by': 'cache-itm18831-ITM',
+539 silly get 'x-cache': 'HIT',
+539 silly get 'x-cache-hits': '12',
+539 silly get 'x-timer': 'S1524740184.910672,VS0,VE0',
+539 silly get vary: 'Accept-Encoding, Accept' } ]
+540 verbose etag https://registry.npmjs.org/supports-color from cache
+541 verbose get saving supports-color to /Users/zhiyuan/.npm/registry.npmjs.org/supports-color/.cache.json
+542 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+543 silly cache afterAdd lodash.create@3.1.1
+544 verbose afterAdd /Users/zhiyuan/.npm/lodash.create/3.1.1/package/package.json not in flight; writing
+545 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+546 silly resolveWithNewModule debug@2.6.0 checking installable status
+547 silly cache add args [ 'debug@2.6.0', null ]
+548 verbose cache add spec debug@2.6.0
+549 silly cache add parsed spec Result {
+549 silly cache add raw: 'debug@2.6.0',
+549 silly cache add scope: null,
+549 silly cache add escapedName: 'debug',
+549 silly cache add name: 'debug',
+549 silly cache add rawSpec: '2.6.0',
+549 silly cache add spec: '2.6.0',
+549 silly cache add type: 'version' }
+550 silly addNamed debug@2.6.0
+551 verbose addNamed "2.6.0" is a plain semver version for debug
+552 silly mapToRegistry name debug
+553 silly mapToRegistry using default registry
+554 silly mapToRegistry registry https://registry.npmjs.org/
+555 silly mapToRegistry data Result {
+555 silly mapToRegistry raw: 'debug',
+555 silly mapToRegistry scope: null,
+555 silly mapToRegistry escapedName: 'debug',
+555 silly mapToRegistry name: 'debug',
+555 silly mapToRegistry rawSpec: '',
+555 silly mapToRegistry spec: 'latest',
+555 silly mapToRegistry type: 'tag' }
+556 silly mapToRegistry uri https://registry.npmjs.org/debug
+557 verbose addNameVersion registry:https://registry.npmjs.org/debug not in flight; fetching
+558 silly resolveWithNewModule glob@7.1.1 checking installable status
+559 silly cache add args [ 'glob@7.1.1', null ]
+560 verbose cache add spec glob@7.1.1
+561 silly cache add parsed spec Result {
+561 silly cache add raw: 'glob@7.1.1',
+561 silly cache add scope: null,
+561 silly cache add escapedName: 'glob',
+561 silly cache add name: 'glob',
+561 silly cache add rawSpec: '7.1.1',
+561 silly cache add spec: '7.1.1',
+561 silly cache add type: 'version' }
+562 silly addNamed glob@7.1.1
+563 verbose addNamed "7.1.1" is a plain semver version for glob
+564 silly mapToRegistry name glob
+565 silly mapToRegistry using default registry
+566 silly mapToRegistry registry https://registry.npmjs.org/
+567 silly mapToRegistry data Result {
+567 silly mapToRegistry raw: 'glob',
+567 silly mapToRegistry scope: null,
+567 silly mapToRegistry escapedName: 'glob',
+567 silly mapToRegistry name: 'glob',
+567 silly mapToRegistry rawSpec: '',
+567 silly mapToRegistry spec: 'latest',
+567 silly mapToRegistry type: 'tag' }
+568 silly mapToRegistry uri https://registry.npmjs.org/glob
+569 verbose addNameVersion registry:https://registry.npmjs.org/glob not in flight; fetching
+570 verbose get https://registry.npmjs.org/debug not expired, no request
+571 verbose get https://registry.npmjs.org/glob not expired, no request
+572 http 304 https://registry.npmjs.org/json3
+573 verbose headers { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+573 verbose headers via: '1.1 varnish',
+573 verbose headers 'cache-control': 'max-age=300',
+573 verbose headers etag: '"5a5f46ca-5e53"',
+573 verbose headers age: '4986',
+573 verbose headers connection: 'keep-alive',
+573 verbose headers 'x-served-by': 'cache-itm18824-ITM',
+573 verbose headers 'x-cache': 'HIT',
+573 verbose headers 'x-cache-hits': '5',
+573 verbose headers 'x-timer': 'S1524740184.916670,VS0,VE0',
+573 verbose headers vary: 'Accept-Encoding, Accept' }
+574 silly get cb [ 304,
+574 silly get { date: 'Thu, 26 Apr 2018 10:56:23 GMT',
+574 silly get via: '1.1 varnish',
+574 silly get 'cache-control': 'max-age=300',
+574 silly get etag: '"5a5f46ca-5e53"',
+574 silly get age: '4986',
+574 silly get connection: 'keep-alive',
+574 silly get 'x-served-by': 'cache-itm18824-ITM',
+574 silly get 'x-cache': 'HIT',
+574 silly get 'x-cache-hits': '5',
+574 silly get 'x-timer': 'S1524740184.916670,VS0,VE0',
+574 silly get vary: 'Accept-Encoding, Accept' } ]
+575 verbose etag https://registry.npmjs.org/json3 from cache
+576 verbose get saving json3 to /Users/zhiyuan/.npm/registry.npmjs.org/json3/.cache.json
+577 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+578 verbose afterAdd /Users/zhiyuan/.npm/lodash.create/3.1.1/package/package.json written
+579 silly cache afterAdd debug@2.6.0
+580 verbose afterAdd /Users/zhiyuan/.npm/debug/2.6.0/package/package.json not in flight; writing
+581 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+582 silly cache afterAdd glob@7.1.1
+583 verbose afterAdd /Users/zhiyuan/.npm/glob/7.1.1/package/package.json not in flight; writing
+584 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+585 silly resolveWithNewModule supports-color@3.1.2 checking installable status
+586 silly cache add args [ 'supports-color@3.1.2', null ]
+587 verbose cache add spec supports-color@3.1.2
+588 silly cache add parsed spec Result {
+588 silly cache add raw: 'supports-color@3.1.2',
+588 silly cache add scope: null,
+588 silly cache add escapedName: 'supports-color',
+588 silly cache add name: 'supports-color',
+588 silly cache add rawSpec: '3.1.2',
+588 silly cache add spec: '3.1.2',
+588 silly cache add type: 'version' }
+589 silly addNamed supports-color@3.1.2
+590 verbose addNamed "3.1.2" is a plain semver version for supports-color
+591 silly mapToRegistry name supports-color
+592 silly mapToRegistry using default registry
+593 silly mapToRegistry registry https://registry.npmjs.org/
+594 silly mapToRegistry data Result {
+594 silly mapToRegistry raw: 'supports-color',
+594 silly mapToRegistry scope: null,
+594 silly mapToRegistry escapedName: 'supports-color',
+594 silly mapToRegistry name: 'supports-color',
+594 silly mapToRegistry rawSpec: '',
+594 silly mapToRegistry spec: 'latest',
+594 silly mapToRegistry type: 'tag' }
+595 silly mapToRegistry uri https://registry.npmjs.org/supports-color
+596 verbose addNameVersion registry:https://registry.npmjs.org/supports-color not in flight; fetching
+597 verbose get https://registry.npmjs.org/supports-color not expired, no request
+598 verbose afterAdd /Users/zhiyuan/.npm/glob/7.1.1/package/package.json written
+599 verbose afterAdd /Users/zhiyuan/.npm/debug/2.6.0/package/package.json written
+600 silly resolveWithNewModule json3@3.3.2 checking installable status
+601 silly cache add args [ 'json3@3.3.2', null ]
+602 verbose cache add spec json3@3.3.2
+603 silly cache add parsed spec Result {
+603 silly cache add raw: 'json3@3.3.2',
+603 silly cache add scope: null,
+603 silly cache add escapedName: 'json3',
+603 silly cache add name: 'json3',
+603 silly cache add rawSpec: '3.3.2',
+603 silly cache add spec: '3.3.2',
+603 silly cache add type: 'version' }
+604 silly addNamed json3@3.3.2
+605 verbose addNamed "3.3.2" is a plain semver version for json3
+606 silly mapToRegistry name json3
+607 silly mapToRegistry using default registry
+608 silly mapToRegistry registry https://registry.npmjs.org/
+609 silly mapToRegistry data Result {
+609 silly mapToRegistry raw: 'json3',
+609 silly mapToRegistry scope: null,
+609 silly mapToRegistry escapedName: 'json3',
+609 silly mapToRegistry name: 'json3',
+609 silly mapToRegistry rawSpec: '',
+609 silly mapToRegistry spec: 'latest',
+609 silly mapToRegistry type: 'tag' }
+610 silly mapToRegistry uri https://registry.npmjs.org/json3
+611 verbose addNameVersion registry:https://registry.npmjs.org/json3 not in flight; fetching
+612 silly cache afterAdd supports-color@3.1.2
+613 verbose afterAdd /Users/zhiyuan/.npm/supports-color/3.1.2/package/package.json not in flight; writing
+614 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+615 verbose get https://registry.npmjs.org/json3 not expired, no request
+616 verbose afterAdd /Users/zhiyuan/.npm/supports-color/3.1.2/package/package.json written
+617 silly cache afterAdd json3@3.3.2
+618 verbose afterAdd /Users/zhiyuan/.npm/json3/3.3.2/package/package.json not in flight; writing
+619 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+620 verbose afterAdd /Users/zhiyuan/.npm/json3/3.3.2/package/package.json written
+621 silly fetchNamedPackageData ms
+622 silly mapToRegistry name ms
+623 silly mapToRegistry using default registry
+624 silly mapToRegistry registry https://registry.npmjs.org/
+625 silly mapToRegistry data Result {
+625 silly mapToRegistry raw: 'ms',
+625 silly mapToRegistry scope: null,
+625 silly mapToRegistry escapedName: 'ms',
+625 silly mapToRegistry name: 'ms',
+625 silly mapToRegistry rawSpec: '',
+625 silly mapToRegistry spec: 'latest',
+625 silly mapToRegistry type: 'tag' }
+626 silly mapToRegistry uri https://registry.npmjs.org/ms
+627 verbose request uri https://registry.npmjs.org/ms
+628 verbose request no auth needed
+629 info attempt registry request try #1 at 18:56:23
+630 verbose etag "5aa9402e-498a"
+631 verbose lastModified Wed, 14 Mar 2018 15:30:54 GMT
+632 http request GET https://registry.npmjs.org/ms
+633 http 304 https://registry.npmjs.org/ms
+634 verbose headers { date: 'Thu, 26 Apr 2018 10:56:24 GMT',
+634 verbose headers via: '1.1 varnish',
+634 verbose headers 'cache-control': 'max-age=300',
+634 verbose headers etag: '"5aa9402e-498a"',
+634 verbose headers age: '12605',
+634 verbose headers connection: 'keep-alive',
+634 verbose headers 'x-served-by': 'cache-itm18831-ITM',
+634 verbose headers 'x-cache': 'HIT',
+634 verbose headers 'x-cache-hits': '61',
+634 verbose headers 'x-timer': 'S1524740184.022726,VS0,VE0',
+634 verbose headers vary: 'Accept-Encoding, Accept' }
+635 silly get cb [ 304,
+635 silly get { date: 'Thu, 26 Apr 2018 10:56:24 GMT',
+635 silly get via: '1.1 varnish',
+635 silly get 'cache-control': 'max-age=300',
+635 silly get etag: '"5aa9402e-498a"',
+635 silly get age: '12605',
+635 silly get connection: 'keep-alive',
+635 silly get 'x-served-by': 'cache-itm18831-ITM',
+635 silly get 'x-cache': 'HIT',
+635 silly get 'x-cache-hits': '61',
+635 silly get 'x-timer': 'S1524740184.022726,VS0,VE0',
+635 silly get vary: 'Accept-Encoding, Accept' } ]
+636 verbose etag https://registry.npmjs.org/ms from cache
+637 verbose get saving ms to /Users/zhiyuan/.npm/registry.npmjs.org/ms/.cache.json
+638 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+639 silly resolveWithNewModule ms@0.7.2 checking installable status
+640 silly cache add args [ 'ms@0.7.2', null ]
+641 verbose cache add spec ms@0.7.2
+642 silly cache add parsed spec Result {
+642 silly cache add raw: 'ms@0.7.2',
+642 silly cache add scope: null,
+642 silly cache add escapedName: 'ms',
+642 silly cache add name: 'ms',
+642 silly cache add rawSpec: '0.7.2',
+642 silly cache add spec: '0.7.2',
+642 silly cache add type: 'version' }
+643 silly addNamed ms@0.7.2
+644 verbose addNamed "0.7.2" is a plain semver version for ms
+645 silly mapToRegistry name ms
+646 silly mapToRegistry using default registry
+647 silly mapToRegistry registry https://registry.npmjs.org/
+648 silly mapToRegistry data Result {
+648 silly mapToRegistry raw: 'ms',
+648 silly mapToRegistry scope: null,
+648 silly mapToRegistry escapedName: 'ms',
+648 silly mapToRegistry name: 'ms',
+648 silly mapToRegistry rawSpec: '',
+648 silly mapToRegistry spec: 'latest',
+648 silly mapToRegistry type: 'tag' }
+649 silly mapToRegistry uri https://registry.npmjs.org/ms
+650 verbose addNameVersion registry:https://registry.npmjs.org/ms not in flight; fetching
+651 verbose get https://registry.npmjs.org/ms not expired, no request
+652 silly cache afterAdd ms@0.7.2
+653 verbose afterAdd /Users/zhiyuan/.npm/ms/0.7.2/package/package.json not in flight; writing
+654 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+655 verbose afterAdd /Users/zhiyuan/.npm/ms/0.7.2/package/package.json written
+656 silly fetchNamedPackageData lodash._basecreate
+657 silly mapToRegistry name lodash._basecreate
+658 silly mapToRegistry using default registry
+659 silly mapToRegistry registry https://registry.npmjs.org/
+660 silly mapToRegistry data Result {
+660 silly mapToRegistry raw: 'lodash._basecreate',
+660 silly mapToRegistry scope: null,
+660 silly mapToRegistry escapedName: 'lodash._basecreate',
+660 silly mapToRegistry name: 'lodash._basecreate',
+660 silly mapToRegistry rawSpec: '',
+660 silly mapToRegistry spec: 'latest',
+660 silly mapToRegistry type: 'tag' }
+661 silly mapToRegistry uri https://registry.npmjs.org/lodash._basecreate
+662 verbose request uri https://registry.npmjs.org/lodash._basecreate
+663 verbose request no auth needed
+664 info attempt registry request try #1 at 18:56:23
+665 verbose etag "57f681c8-329b"
+666 verbose lastModified Thu, 6 Oct 2016 16:54:32 GMT
+667 http request GET https://registry.npmjs.org/lodash._basecreate
+668 http 304 https://registry.npmjs.org/lodash._basecreate
+669 verbose headers { date: 'Thu, 26 Apr 2018 10:56:24 GMT',
+669 verbose headers via: '1.1 varnish',
+669 verbose headers 'cache-control': 'max-age=300',
+669 verbose headers etag: '"57f681c8-329b"',
+669 verbose headers age: '4090',
+669 verbose headers connection: 'keep-alive',
+669 verbose headers 'x-served-by': 'cache-itm18829-ITM',
+669 verbose headers 'x-cache': 'HIT',
+669 verbose headers 'x-cache-hits': '1',
+669 verbose headers 'x-timer': 'S1524740184.150124,VS0,VE0',
+669 verbose headers vary: 'Accept-Encoding, Accept' }
+670 silly get cb [ 304,
+670 silly get { date: 'Thu, 26 Apr 2018 10:56:24 GMT',
+670 silly get via: '1.1 varnish',
+670 silly get 'cache-control': 'max-age=300',
+670 silly get etag: '"57f681c8-329b"',
+670 silly get age: '4090',
+670 silly get connection: 'keep-alive',
+670 silly get 'x-served-by': 'cache-itm18829-ITM',
+670 silly get 'x-cache': 'HIT',
+670 silly get 'x-cache-hits': '1',
+670 silly get 'x-timer': 'S1524740184.150124,VS0,VE0',
+670 silly get vary: 'Accept-Encoding, Accept' } ]
+671 verbose etag https://registry.npmjs.org/lodash._basecreate from cache
+672 verbose get saving lodash._basecreate to /Users/zhiyuan/.npm/registry.npmjs.org/lodash._basecreate/.cache.json
+673 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+674 silly resolveWithNewModule lodash._basecreate@3.0.3 checking installable status
+675 silly cache add args [ 'lodash._basecreate@^3.0.0', null ]
+676 verbose cache add spec lodash._basecreate@^3.0.0
+677 silly cache add parsed spec Result {
+677 silly cache add raw: 'lodash._basecreate@^3.0.0',
+677 silly cache add scope: null,
+677 silly cache add escapedName: 'lodash._basecreate',
+677 silly cache add name: 'lodash._basecreate',
+677 silly cache add rawSpec: '^3.0.0',
+677 silly cache add spec: '>=3.0.0 <4.0.0',
+677 silly cache add type: 'range' }
+678 silly addNamed lodash._basecreate@>=3.0.0 <4.0.0
+679 verbose addNamed ">=3.0.0 <4.0.0" is a valid semver range for lodash._basecreate
+680 silly addNameRange { name: 'lodash._basecreate',
+680 silly addNameRange range: '>=3.0.0 <4.0.0',
+680 silly addNameRange hasData: false }
+681 silly mapToRegistry name lodash._basecreate
+682 silly mapToRegistry using default registry
+683 silly mapToRegistry registry https://registry.npmjs.org/
+684 silly mapToRegistry data Result {
+684 silly mapToRegistry raw: 'lodash._basecreate',
+684 silly mapToRegistry scope: null,
+684 silly mapToRegistry escapedName: 'lodash._basecreate',
+684 silly mapToRegistry name: 'lodash._basecreate',
+684 silly mapToRegistry rawSpec: '',
+684 silly mapToRegistry spec: 'latest',
+684 silly mapToRegistry type: 'tag' }
+685 silly mapToRegistry uri https://registry.npmjs.org/lodash._basecreate
+686 verbose addNameRange registry:https://registry.npmjs.org/lodash._basecreate not in flight; fetching
+687 verbose get https://registry.npmjs.org/lodash._basecreate not expired, no request
+688 silly addNameRange number 2 { name: 'lodash._basecreate',
+688 silly addNameRange range: '>=3.0.0 <4.0.0',
+688 silly addNameRange hasData: true }
+689 silly addNameRange versions [ 'lodash._basecreate',
+689 silly addNameRange [ '2.3.0', '2.4.0', '2.4.1', '3.0.0', '3.0.1', '3.0.2', '3.0.3' ] ]
+690 silly addNamed lodash._basecreate@3.0.3
+691 verbose addNamed "3.0.3" is a plain semver version for lodash._basecreate
+692 silly cache afterAdd lodash._basecreate@3.0.3
+693 verbose afterAdd /Users/zhiyuan/.npm/lodash._basecreate/3.0.3/package/package.json not in flight; writing
+694 verbose correctMkdir /Users/zhiyuan/.npm correctMkdir not in flight; initializing
+695 verbose afterAdd /Users/zhiyuan/.npm/lodash._basecreate/3.0.3/package/package.json written
+696 silly fetchNamedPackageData del
+697 silly mapToRegistry name del
+698 silly mapToRegistry using default registry
+699 silly mapToRegistry registry https://registry.npmjs.org/
+700 silly mapToRegistry data Result {
+700 silly mapToRegistry raw: 'del',
+700 silly mapToRegistry scope: null,
+700 silly mapToRegistry escapedName: 'del',
+700 silly mapToRegistry name: 'del',
+700 silly mapToRegistry rawSpec: '',
+700 silly mapToRegistry spec: 'latest',
+700 silly mapToRegistry type: 'tag' }
+701 silly mapToRegistry uri https://registry.npmjs.org/del
+702 verbose stack Error: write EIO
+702 verbose stack at _errnoException (util.js:1024:11)
+702 verbose stack at WriteWrap.afterWrite [as oncomplete] (net.js:867:14)
+703 verbose cwd /Users/zhiyuan/Desktop/www/portalnetwork-project/metamask-extension
+704 error Darwin 16.7.0
+705 error argv "/Users/zhiyuan/.nvm/versions/node/v8.9.1/bin/node" "/usr/local/bin/npm" "i"
+706 error node v8.9.1
+707 error npm v3.10.10
+708 error code EIO
+709 error errno EIO
+710 error syscall write
+711 error write EIO
+712 error If you need help, you may report this error at:
+712 error <https://github.com/npm/npm/issues>
+713 verbose exit [ 1, true ]
diff --git a/old-ui/app/app.js b/old-ui/app/app.js
index abeb4f3f9..cd6292e79 100644
--- a/old-ui/app/app.js
+++ b/old-ui/app/app.js
@@ -183,6 +183,14 @@ App.prototype.renderAppBar = function () {
this.setState({ isNetworkMenuOpen: !isNetworkMenuOpen })
},
}),
+
+ // mike test img
+ h('img', {
+ height: 24,
+ width: 24,
+ src: './images/pw-48x48.png',
+ }),
+
]),
props.isUnlocked && h('div', {
diff --git a/package.json b/package.json
index 372ffbfa5..910544f60 100644
--- a/package.json
+++ b/package.json
@@ -191,7 +191,9 @@
"web3": "^0.20.1",
"web3-provider-engine": "^14.0.5",
"web3-stream-provider": "^3.0.1",
- "xtend": "^4.0.1"
+ "xtend": "^4.0.1",
+ "multihashes": "^0.4.12",
+ "eth-ens-namehash": "^2.0.8"
},
"devDependencies": {
"@sentry/cli": "^1.30.3",