| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | module.exports = installedDeepvar npm = require('../../npm.js')var readInstalled = require('read-installed')function installedDeep (opts, cb) {  var local  var global  var depth = npm.config.get('depth')  var opt = { depth: depth, dev: true }  if (npm.config.get('global')) {    local = []    next()  } else {    readInstalled(npm.prefix, opt, function (er, data) {      local = getNames(data || {})      next()    })  }  readInstalled(npm.config.get('prefix'), opt, function (er, data) {    global = getNames(data || {})    next()  })  function getNames_ (d, n) {    if (d.realName && n) {      if (n[d.realName]) return n      n[d.realName] = true    }    if (!n) n = {}    Object.keys(d.dependencies || {}).forEach(function (dep) {      getNames_(d.dependencies[dep], n)    })    return n  }  function getNames (d) {    return Object.keys(getNames_(d))  }  function next () {    if (!local || !global) return    if (!npm.config.get('global')) {      global = global.map(function (g) {        return [g, '-g']      })    }    var names = local.concat(global)    return cb(null, names)  }}
 |