     tasks = plugins.map async (plugin, index) =>
       if !plugin.needRollback
         try
-          rawData = yield Promise.promisify(npm.commands.view)([plugin.packageName, 'dist-tags', 'poiPlugin'])
-          for key of rawData
-            data = rawData[key]
-          distTag = data['dist-tags']
+          data = JSON.parse (yield requestAsync "#{@config_.mirror.server}#{plugin.packageName}/latest")[1]
+          distTag =
+            latest: data.version
+          if @config_.betaCheck
+            _.extend distTag,
+              beta: JSON.parse((yield requestAsync "#{@config_.mirror.server}#{plugin.packageName}/beta")[1]).version
           latest = "#{plugin.version}"
           notCompatible = false
           apiVer = data.poiPlugin?.apiVer || plugin.apiVer

__n = i18n.setting.__n.bind(i18n.setting)
{remote} = require 'electron'
windowManager = remote.require './lib/window'

# we need only glob here
globAsync = Promise.promisify require 'glob'

            @plugins_[index]?.isOutdated = true
            @plugins_[index]?.lastestVersion = latest
            if plugin.isRead then outdatedList.push plugin.name
        catch e
          console.error e
    yield Promise.all(tasks)
    if isNotif && outdatedList.length > 0
      content = "#{outdatedList.join(' ')} #{__ "have newer version. Please update your plugins."}"
