UNPKG

snifferjs

Version:

Browser/engine/os/device detection tool

9 lines (8 loc) 6.59 kB
/*! * Sniffer is a clientside browser/engine/os/device detection tool * v. 4.1.0 | https://github.com/wilddeer/Sniffer * Copyright Oleg Korsunsky | http://wd.dizaina.net/ * * MIT License */ !function(e){"use strict";var r=function(i){var f={browser:{fullName:"",name:"",version:"",majorVersion:null,minorVersion:null,patchVersion:null,engine:""},os:{fullName:"",name:"",version:"",versionName:"",versionAltNames:[],majorVersion:null,minorVersion:null,patchVersion:null},features:{bw:!1,mobile:!1,tv:!1,proxy:!1}},u={browser:[{test:["SailfishBrowser"],browser:{fullName:"Sailfish Browser",name:"sailfishbrowser",engine:"gecko",$version:{search:"SailfishBrowser/"}},features:{mobile:!0}},{test:["Edge/"],browser:{fullName:"Edge",name:"edge",engine:"edgehtml",$version:{search:"Edge/"}}},{test:["Edg/"],browser:{fullName:"Edge",name:"edge",engine:"webkit",$version:{search:"Edg/"}}},{test:["MSIE"],browser:{fullName:"Internet Explorer",name:"ie",engine:"trident",$version:{search:"MSIE "}}},{test:["Trident"],browser:{fullName:"Internet Explorer",name:"ie",engine:"trident",$version:{search:"rv:"}}},{test:["OPR/"],browser:{fullName:"Opera",name:"opera",engine:"webkit",$version:{search:"OPR/"}}},{test:["UCBrowser"],browser:{fullName:"UC Browser",name:"ucbrowser",engine:"webkit",$version:{search:"UCBrowser/"}}},{test:["YaBrowser"],browser:{fullName:"Yandex Browser",name:"yabrowser",engine:"webkit",$version:{search:"YaBrowser/"}}},{test:["Chrome"],browser:{fullName:"Chrome",name:"chrome",engine:"webkit",$version:{search:"Chrome/"}}},{test:["Firefox"],browser:{fullName:"Firefox",name:"firefox",engine:"gecko",$version:{search:"Firefox/"}}},{test:["NokiaBrowser"],browser:{fullName:"Nokia Browser",name:"nokiabrowser",engine:"webkit",$version:{search:"NokiaBrowser/"}},features:{mobile:!0}},{test:["Opera Mini","Presto"],browser:{fullName:"Opera Mini",name:"operamini",engine:"presto",$version:{search:"Version/"}},features:{mobile:!0,proxy:!0}},{test:["Opera Mini","WebKit"],browser:{fullName:"Opera Mini",name:"operamini",engine:"webkit"},features:{mobile:!0,proxy:!0}},{test:["Opera"],browser:{fullName:"Opera",name:"opera",engine:"presto",$version:{search:"Version/"}}},{test:["OviBrowser"],browser:{fullName:"Ovi Browser",name:"ovi",engine:"gecko",$version:{search:"OviBrowser/"}},features:{mobile:!0,proxy:!0}},{test:["CriOS/"],browser:{fullName:"Chrome",name:"chrome",engine:"webkit",$version:{search:"CriOS/"}}},{test:["Coast/"],browser:{fullName:"Opera Coast",name:"coast",engine:"webkit",$version:{search:"Coast/"}}},{test:["Safari","Version/",/(iPhone|iPod|iPad|Macintosh|Windows)/],browser:{fullName:"Safari",name:"safari",engine:"webkit",$version:{search:"Version/"}}},{test:["WebKit"],browser:{engine:"webkit"}},{test:["Gecko/"],browser:{engine:"gecko"}}],os:[{test:["Sailfish"],os:{fullName:"Sailfish OS",name:"sailfish"},features:{mobile:!0}},{test:["Windows Phone"],os:{fullName:"Windows Phone",name:"winphone",$version:{search:"Windows Phone "}},features:{mobile:!0}},{test:["Windows"],os:{fullName:"Windows",name:"win",$version:{search:"Windows NT ",names:{"10.0":"10",6.3:"8.1",6.2:"8",6.1:"7","6.0":"Vista",5.2:"XP",5.1:"XP",5.01:"2000","5.0":"2000"},altNames:{5.2:["Server 2003"]}}}},{test:["Macintosh","OS X"],os:{fullName:"macOS",name:"osx",$version:{search:/OS X /,names:{10.6:"Snow Leopard",10.7:"Lion",10.8:"Mountain Lion",10.9:"Mavericks","10.10":"Yosemite",10.11:"El Capitan",10.12:"Sierra",10.13:"High Sierra",10.14:"Mojave",10.15:"Catalina","11.0":"Big Sur"}}}},{test:["Ubuntu"],os:{fullName:"Ubuntu",name:"ubuntu"}},{test:["Fedora"],os:{fullName:"Fedora",name:"fedora",$version:{search:"Fedora/",names:{20:"Heisenbug",19:"Schrödinger's Cat",18:"Spherical Cow",17:"Beefy Miracle",16:"Verne",15:"Lovelock",14:"Laughlin",13:"Goddard",12:"Constantine",11:"Leonidas",10:"Cambridge",9:"Sulphur",8:"Werewolf",7:"Moonshine"}}}},{test:["Kindle"],os:{fullName:"Kindle",name:"kindle",$version:{search:"Kindle/"}},features:{bw:!0,mobile:!0}},{test:[/(BlackBerry|BB\d+)/],os:{fullName:"BlackBerry",name:"blackberry",$version:{search:"Version/"}},features:{mobile:!0}},{test:["Symbian"],os:{fullName:"Symbian",name:"symbian"},features:{mobile:!0}},{test:["Series40"],os:{fullName:"Symbian",name:"symbian"},features:{mobile:!0}},{test:["PlayStation Vita"],os:{fullName:"PlayStation Vita",name:"psvita"},features:{mobile:!0}},{test:[/playstation/i],os:{fullName:"PlayStation",name:"playstation",$version:{search:/playstation\s/i}},features:{tv:!0}},{test:["Nintendo DSi"],os:{fullName:"Nintendo DSi",name:"dsi"},features:{mobile:!0}},{test:["New Nintendo 3DS"],os:{fullName:"New Nintendo 3DS",name:"n3ds"},browser:{engine:"webkit"},features:{mobile:!0}},{test:["Nintendo 3DS"],os:{fullName:"Nintendo 3DS",name:"3ds"},browser:{engine:"webkit"},features:{mobile:!0}},{test:["Viera"],os:{fullName:"Viera",name:"viera"},browser:{engine:"webkit"},features:{tv:!0}},{test:["SonyDTV"],features:{tv:!0}},{test:["Android"],os:{fullName:"Android",name:"android",$version:{search:"Android "}},features:{mobile:!0}},{test:[/iPhone|iPod|iPad/],os:{fullName:"iOS",name:"ios",$version:{search:"OS "}},features:{mobile:!0}}],features:[{test:[/mobile/i],features:{mobile:!0}},{test:[/smart-{0,1}tv/i],features:{tv:!0}}]};if(!i)return f;function r(e){for(var r=0;r<e.length;r++){for(var s=!0,n=0;n<e[r].test.length;n++)if(e[r].test[n]instanceof RegExp){if(!e[r].test[n].test(i)){s=!1;break}}else if(-1==i.indexOf(e[r].test[n])){s=!1;break}if(s){a(e[r]);break}}}function a(e){for(var r in u)if(u.hasOwnProperty(r)&&e[r]){if(e[r].$version){var s=b(e[r].$version.search);if(s){var n=s.split("."),a=e[r].$version.names,i=e[r].$version.altNames;if(e[r].version=s,n[0]&&(e[r].majorVersion=parseInt(n[0])),n[1]&&(e[r].minorVersion=parseInt(n[1])),n[2]&&(e[r].patchVersion=parseInt(n[2])),a)for(var o,t=[],l=0;l<n.length;l++)t.push(n[l]),a[o=t.join(".")]&&(e[r].versionName=a[o]),i&&i[o]&&(e[r].versionAltNames=i[o])}}for(var m in e[r])e[r].hasOwnProperty(m)&&"$"!==m[0]&&(f[r][m]=e[r][m])}}function b(e){var r;if(e instanceof RegExp){if(!(r=(i.match(e)||[])[0]))return}else r=e;var s=i.indexOf(r);if(-1!=s){var n=i.substring(s+r.length),a=/^(\d+(\.|_)){0,2}\d+/.exec(n);if(a)return a[0].replace(/_/g,".")}}return function(){for(var e in u)r(u[e])}(),f}(navigator.userAgent),s=document.getElementsByTagName("html")[0],n=[s.className];for(var a in r.browser.name&&n.push(r.browser.name),r.browser.engine&&n.push(r.browser.engine),r.os.name&&n.push(r.os.name),r.features)r.features[a]&&n.push(a);s.className=n.join(" "),"undefined"!=typeof module&&module.exports?module.exports=r:e.Sniff=r}(this);