| 12345678910111213141516171819202122232425262728293031323334353637 | 'use strict'const BB = require('bluebird')const npmConfig = require('./config/figgy-config.js')const fetch = require('libnpm/fetch')const log = require('npmlog')const output = require('./utils/output.js')const whoami = require('./whoami.js')stars.usage = 'npm stars [<user>]'module.exports = starsfunction stars ([user], cb) {  const opts = npmConfig()  return BB.try(() => {    return (user ? BB.resolve(user) : whoami([], true, () => {})).then(usr => {      return fetch.json('/-/_view/starredByUser', opts.concat({        query: {key: `"${usr}"`} // WHY. WHY THE ""?!      }))    }).then(data => data.rows).then(stars => {      if (stars.length === 0) {        log.warn('stars', 'user has not starred any packages.')      } else {        stars.forEach(s => output(s.value))      }    })  }).catch(err => {    if (err.code === 'ENEEDAUTH') {      throw Object.assign(new Error("'npm stars' on your own user account requires auth"), {        code: 'ENEEDAUTH'      })    } else {      throw err    }  }).nodeify(cb)}
 |