docs: def list_pkgs(versions_as_list=False,
                include_components=True,
                include_updates=True,
                **kwargs):
      '''
      List the packages currently installed.
  
      .. note::
          To view installed software as displayed in the Add/Remove Programs, set
          ``include_components`` and ``include_updates`` to False.
  
      Args:
  
          versions_as_list (bool):
              Returns the versions as a list
  
          include_components (bool):
              Include sub components of installed software. Default is ``True``
  
          include_updates (bool):
              Include software updates and Windows updates. Default is ``True``
  
      Kwargs:
  
          saltenv (str):
              The salt environment to use. Default ``base``
  
          refresh (bool):
              Refresh package metadata. Default ``False``
  
      Returns:
          dict: A dictionary of installed software with versions installed
  
      .. code-block:: cfg
  
          {'<package_name>': '<version>'}
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' pkg.list_pkgs
          salt '*' pkg.list_pkgs versions_as_list=True
      '''
      versions_as_list = salt.utils.data.is_true(versions_as_list)
      # not yet implemented or not applicable
      if any([salt.utils.data.is_true(kwargs.get(x))
              for x in ('removed', 'purge_desired')]):
          return {}
      saltenv = kwargs.get('saltenv', 'base')
      refresh = salt.utils.data.is_true(kwargs.get('refresh', False))
      _refresh_db_conditional(saltenv, force=refresh)
  
      ret = {}
      name_map = _get_name_map(saltenv)
      for pkg_name, val_list in six.iteritems(
              _get_reg_software(include_components=include_components,
                                include_updates=include_updates)):
          if pkg_name in name_map:
              key = name_map[pkg_name]
              for val in val_list:
                  if val == 'Not Found':
                      # Look up version from winrepo
                      pkg_info = _get_package_info(key, saltenv=saltenv)
                      if not pkg_info:
                          continue
                      for pkg_ver in pkg_info.keys():
                          if pkg_info[pkg_ver]['full_name'] == pkg_name:
                              val = pkg_ver
                  __salt__['pkg_resource.add_pkg'](ret, key, val)
          else:
              key = pkg_name
              for val in val_list:
                  __salt__['pkg_resource.add_pkg'](ret, key, val)
  
      __salt__['pkg_resource.sort_pkglist'](ret)
      if not versions_as_list:
          __salt__['pkg_resource.stringify'](ret)
      return ret