whole_func_string: function nextVersions (options, nameVersionPairs, checkLatestOnly) {
    check.verify.object(options, 'expected object with options')
    check.verify.array(nameVersionPairs, 'expected array')
    nameVersionPairs = cleanVersions(nameVersionPairs)
  
    const verbose = verboseLog(options)
    verbose('checking NPM registry')
    var MAX_CHECK_TIMEOUT = options.checkVersionTimeout || 10000
  
    var fetchPromises = nameVersionPairs.map(fetchVersions.bind(null, options))
    var fetchAllPromise = q.all(fetchPromises)
          .timeout(MAX_CHECK_TIMEOUT, 'timed out waiting for NPM after ' + MAX_CHECK_TIMEOUT + 'ms')
  
    return fetchAllPromise.then(
      _.partial(filterFetchedVersions, checkLatestOnly),
      q.reject
    )
  }
func_code_string: function nextVersions (options, nameVersionPairs, checkLatestOnly) {
    check.verify.object(options, 'expected object with options')
    check.verify.array(nameVersionPairs, 'expected array')
    nameVersionPairs = cleanVersions(nameVersionPairs)
  
    const verbose = verboseLog(options)
    verbose('checking NPM registry')
    var MAX_CHECK_TIMEOUT = options.checkVersionTimeout || 10000
  
    var fetchPromises = nameVersionPairs.map(fetchVersions.bind(null, options))
    var fetchAllPromise = q.all(fetchPromises)
          .timeout(MAX_CHECK_TIMEOUT, 'timed out waiting for NPM after ' + MAX_CHECK_TIMEOUT + 'ms')
  
    return fetchAllPromise.then(
      _.partial(filterFetchedVersions, checkLatestOnly),
      q.reject
    )
  }
func_documentation_string: returns a promise with available new versions