Buenos días

Estoy desarrollando una página web personal y, utilizando una función de JavaScript, identifico si la página se está visualizando en un smartphone, una tablet o un computador de escritorio.
Cuando realizo las pruebas en dispositivos Android o Windows todo lo veo funcionar correctamente. El problema está cuando utilizo un dispositivo de la marca Apple, probando con Safari. En cualquiera de los tres tipos de dispositivos me lo muestra como si fuera un smartphone.

La función que tengo es la siguiente:

Código Javascript :

var deviceDetector = function(){
   var b = navigator.userAgent.toLowerCase();
   var a = function(a){
      void 0!==a&&(b=a.toLowerCase());
      return/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(b)?"tablet":
         /(mobi|ipod|phone|blackberry|opera mini|fennec|minimo|symbian|psp|nintendo ds|archos|skyfire|puffin|blazer|bolt|gobrowser|iris|maemo|semc|teashark|uzard)/.test(b)?"phone":
         "desktop"
   };
   return{
      device:a(),detect:a,isMobile:"desktop"!=a()?!0:!1,userAgent:b
   }
}();