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 @@
+
+
+ 404
+
+
+
+
+
+
\ 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 @@
+
+
+ Portal Network
+
+
+
+
+
+
+
not found
+
+
+
+
+
diff --git a/app/images/404.png b/app/images/404.png
new file mode 100644
index 000000000..b1a767dde
Binary files /dev/null and b/app/images/404.png differ
diff --git a/app/images/cancel.png b/app/images/cancel.png
new file mode 100644
index 000000000..4e0eb1143
Binary files /dev/null and b/app/images/cancel.png differ
diff --git a/app/images/deadface.png b/app/images/deadface.png
new file mode 100644
index 000000000..e12476c03
Binary files /dev/null and b/app/images/deadface.png 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 @@
+
+
\ 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
Binary files /dev/null and b/app/images/logo.png differ
diff --git a/app/images/pw-128x128.png b/app/images/pw-128x128.png
new file mode 100644
index 000000000..a0eb1b730
Binary files /dev/null and b/app/images/pw-128x128.png differ
diff --git a/app/images/pw-48x48.png b/app/images/pw-48x48.png
new file mode 100644
index 000000000..a96c59e15
Binary files /dev/null and b/app/images/pw-48x48.png differ
diff --git a/app/images/pw128x128.png b/app/images/pw128x128.png
new file mode 100644
index 000000000..a0eb1b730
Binary files /dev/null and b/app/images/pw128x128.png 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 @@
+
+
+ Portal Network
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+ no_mainnet
+
+
+
+
+
+
ENS resolver only support on Ethereum mainnet
+
+
+
\ 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
+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",