Socket
Socket
Sign inDemoInstall

express-useragent

Package Overview
Dependencies
0
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.10 to 1.0.11

test/ios.js

2

bower.json
{
"name": "express-useragent",
"description": "Fast User-Agent exposing",
"version": "1.0.9",
"version": "1.0.11",
"homepage": "https://github.com/biggora/express-useragent/",

@@ -6,0 +6,0 @@ "repository": {

/*!
* express-useragent.js v1.0.10 (https://github.com/biggora/express-useragent/)
* express-useragent.js v1.0.11 (https://github.com/biggora/express-useragent/)
* Copyright 2011-2018 Alexey Gordeyev

@@ -90,3 +90,3 @@ * Licensed under MIT (https://github.com/biggora/express-useragent/blob/master/README.md#license)

var UserAgent = function () {
this.version = '1.0.10';
this.version = '1.0.11';
this._Versions = {

@@ -109,2 +109,3 @@ Edge: /(?:edge|edga|edgios)\/([\d\w\.\-]+)/i,

PhantomJS: /phantomjs\/([\d\w\.\-]+)/i,
AlamoFire: /alamofire\/([\d\w\.\-]+)/i,
UC: /ucbrowser\/([\d\w\.]+)/i,

@@ -131,2 +132,3 @@ Facebook: /FBAV\/([\d\w\.]+)/i

PhantomJS: /phantomjs/i,
AlamoFire: /alamofire/i,
UC: /UCBrowser/i,

@@ -170,2 +172,3 @@ Facebook: /FBA[NV]/

iPhone: /\(iPhone.*os (\d+)[._](\d+)/i,
iOS: /ios/i,
Bada: /Bada\/(\d+)\.(\d+)/i,

@@ -187,3 +190,4 @@ Curl: /curl\/(\d+)\.(\d+)\.(\d+)/i

Samsung: /samsung/i,
Curl: /curl/i
Curl: /curl/i,
iOS: /^ios\-/i
};

@@ -234,2 +238,3 @@

isFacebook : false,
isAlamoFire: false,
silkAccelerated: false,

@@ -248,2 +253,5 @@ browser: 'unknown',

switch (true) {
case this._Browsers.AlamoFire.test(string):
this.Agent.isAlamoFire = true;
return 'AlamoFire';
case this._Browsers.Edge.test(string):

@@ -522,2 +530,5 @@ this.Agent.isEdge = true;

return 'Curl';
case this._OS.iOS.test(string):
this.Agent.isiPhone = true;
return 'iOS';
default:

@@ -563,2 +574,4 @@ return 'unknown';

return 'Samsung';
case this._Platform.iOS.test(string):
return 'Apple iOS';
default:

@@ -697,3 +710,3 @@ return 'unknown';

}
if (/mobile/i.test(ua.Agent.source)) {
if (/mobile|^ios\-/i.test(ua.Agent.source)) {
ua.Agent.isMobile = true;

@@ -700,0 +713,0 @@ ua.Agent.isDesktop = false;

/*!
* express-useragent.js v1.0.10 (https://github.com/biggora/express-useragent/)
* express-useragent.js v1.0.11 (https://github.com/biggora/express-useragent/)
* Copyright 2011-2018 Alexey Gordeyev
* Licensed under MIT (https://github.com/biggora/express-useragent/blob/master/README.md#license)
*/
!function(a){"use strict";var b=["\\+https:\\/\\/developers.google.com\\/\\+\\/web\\/snippet\\/","ad\\smonitoring","adsbot","apex","applebot","archive.org_bot","baiduspider","bingbot","cloudflare","cloudinary","crawler","curl","discordbot","duckduckbot","embedly","exabot","facebookexternalhit","facebot","flipboard","google","googlebot","gsa-crawler","gurujibot","guzzlehttp","heritrix","ia_archiver","insights","linkedinbot","ltx71","mediapartners","msnbot","odklbot","phantom\\.js","phantomjs","pingdom","pinterest","python","rtlnieuws","skypeuripreview","slackbot","slurp","spbot","telegrambot","test\\scertificate","testing","tiabot","tumblr ","twitterbot","vkshare","web\\sscraper","wget","yandexbot","apex","applebot","duckduckbot","facebot","flipboard","gsa-crawler","ia_archiver","pinterest","skypeuripreview","odklbot","archive.org_bot","ltx71","guzzlehttp","vkshare","discordbot","whatsapp","orangebot","smtbot","qwantify","mj12bot","ahrefsbot","ltx71","seznambot","panscient.com"],c=new RegExp("^.*("+b.join("|")+").*$"),d=function(){return this.version="1.0.10",this._Versions={Edge:/(?:edge|edga|edgios)\/([\d\w\.\-]+)/i,Firefox:/(?:firefox|fxios)\/([\d\w\.\-]+)/i,IE:/msie\s([\d\.]+[\d])|trident\/\d+\.\d+;.*[rv:]+(\d+\.\d)/i,Chrome:/(?:chrome|crios)\/([\d\w\.\-]+)/i,Chromium:/chromium\/([\d\w\.\-]+)/i,Safari:/version\/([\d\w\.\-]+)/i,Opera:/version\/([\d\w\.\-]+)|OPR\/([\d\w\.\-]+)/i,Ps3:/([\d\w\.\-]+)\)\s*$/i,Psp:/([\d\w\.\-]+)\)?\s*$/i,Amaya:/amaya\/([\d\w\.\-]+)/i,SeaMonkey:/seamonkey\/([\d\w\.\-]+)/i,OmniWeb:/omniweb\/v([\d\w\.\-]+)/i,Flock:/flock\/([\d\w\.\-]+)/i,Epiphany:/epiphany\/([\d\w\.\-]+)/i,WinJs:/msapphost\/([\d\w\.\-]+)/i,PhantomJS:/phantomjs\/([\d\w\.\-]+)/i,UC:/ucbrowser\/([\d\w\.]+)/i,Facebook:/FBAV\/([\d\w\.]+)/i},this._Browsers={Edge:/edge|edga|edgios/i,Amaya:/amaya/i,Konqueror:/konqueror/i,Epiphany:/epiphany/i,SeaMonkey:/seamonkey/i,Flock:/flock/i,OmniWeb:/omniweb/i,Chromium:/chromium/i,Chrome:/chrome|crios/i,Safari:/safari/i,IE:/msie|trident/i,Opera:/opera|OPR\//i,PS3:/playstation 3/i,PSP:/playstation portable/i,Firefox:/firefox|fxios/i,WinJs:/msapphost/i,PhantomJS:/phantomjs/i,UC:/UCBrowser/i,Facebook:/FBA[NV]/},this._OS={Windows10:/windows nt 10\.0/i,Windows81:/windows nt 6\.3/i,Windows8:/windows nt 6\.2/i,Windows7:/windows nt 6\.1/i,UnknownWindows:/windows nt 6\.\d+/i,WindowsVista:/windows nt 6\.0/i,Windows2003:/windows nt 5\.2/i,WindowsXP:/windows nt 5\.1/i,Windows2000:/windows nt 5\.0/i,WindowsPhone81:/windows phone 8\.1/i,WindowsPhone80:/windows phone 8\.0/i,OSXCheetah:/os x 10[._]0/i,OSXPuma:/os x 10[._]1(\D|$)/i,OSXJaguar:/os x 10[._]2/i,OSXPanther:/os x 10[._]3/i,OSXTiger:/os x 10[._]4/i,OSXLeopard:/os x 10[._]5/i,OSXSnowLeopard:/os x 10[._]6/i,OSXLion:/os x 10[._]7/i,OSXMountainLion:/os x 10[._]8/i,OSXMavericks:/os x 10[._]9/i,OSXYosemite:/os x 10[._]10/i,OSXElCapitan:/os x 10[._]11/i,MacOSSierra:/os x 10[._]12/i,MacOSHighSierra:/os x 10[._]13/i,Mac:/os x/i,Linux:/linux/i,Linux64:/linux x86\_64/i,ChromeOS:/cros/i,Wii:/wii/i,PS3:/playstation 3/i,PSP:/playstation portable/i,iPad:/\(iPad.*os (\d+)[._](\d+)/i,iPhone:/\(iPhone.*os (\d+)[._](\d+)/i,Bada:/Bada\/(\d+)\.(\d+)/i,Curl:/curl\/(\d+)\.(\d+)\.(\d+)/i},this._Platform={Windows:/windows nt/i,WindowsPhone:/windows phone/i,Mac:/macintosh/i,Linux:/linux/i,Wii:/wii/i,Playstation:/playstation/i,iPad:/ipad/i,iPod:/ipod/i,iPhone:/iphone/i,Android:/android/i,Blackberry:/blackberry/i,Samsung:/samsung/i,Curl:/curl/i},this.DefaultAgent={isAuthoritative:!0,isMobile:!1,isTablet:!1,isiPad:!1,isiPod:!1,isiPhone:!1,isAndroid:!1,isBlackberry:!1,isOpera:!1,isIE:!1,isEdge:!1,isIECompatibilityMode:!1,isSafari:!1,isFirefox:!1,isWebkit:!1,isChrome:!1,isKonqueror:!1,isOmniWeb:!1,isSeaMonkey:!1,isFlock:!1,isAmaya:!1,isPhantomJS:!1,isEpiphany:!1,isDesktop:!1,isWindows:!1,isLinux:!1,isLinux64:!1,isMac:!1,isChromeOS:!1,isBada:!1,isSamsung:!1,isRaspberry:!1,isBot:!1,isCurl:!1,isAndroidTablet:!1,isWinJs:!1,isKindleFire:!1,isSilk:!1,isCaptive:!1,isSmartTV:!1,isUC:!1,isFacebook:!1,silkAccelerated:!1,browser:"unknown",version:"unknown",os:"unknown",platform:"unknown",geoIp:{},source:""},this.Agent={},this.getBrowser=function(a){switch(!0){case this._Browsers.Edge.test(a):return this.Agent.isEdge=!0,"Edge";case this._Browsers.PhantomJS.test(a):return this.Agent.isPhantomJS=!0,"PhantomJS";case this._Browsers.Konqueror.test(a):return this.Agent.isKonqueror=!0,"Konqueror";case this._Browsers.Amaya.test(a):return this.Agent.isAmaya=!0,"Amaya";case this._Browsers.Epiphany.test(a):return this.Agent.isEpiphany=!0,"Epiphany";case this._Browsers.SeaMonkey.test(a):return this.Agent.isSeaMonkey=!0,"SeaMonkey";case this._Browsers.Flock.test(a):return this.Agent.isFlock=!0,"Flock";case this._Browsers.OmniWeb.test(a):return this.Agent.isOmniWeb=!0,"OmniWeb";case this._Browsers.Opera.test(a):return this.Agent.isOpera=!0,"Opera";case this._Browsers.Chromium.test(a):return this.Agent.isChrome=!0,"Chromium";case this._Browsers.Facebook.test(a):return this.Agent.isFacebook=!0,"Facebook";case this._Browsers.Chrome.test(a):return this.Agent.isChrome=!0,"Chrome";case this._Browsers.WinJs.test(a):return this.Agent.isWinJs=!0,"WinJs";case this._Browsers.IE.test(a):return this.Agent.isIE=!0,"IE";case this._Browsers.Firefox.test(a):return this.Agent.isFirefox=!0,"Firefox";case this._Browsers.Safari.test(a):return this.Agent.isSafari=!0,"Safari";case this._Browsers.PS3.test(a):return"ps3";case this._Browsers.PSP.test(a):return"psp";case this._Browsers.UC.test(a):return this.Agent.isUC=!0,"UCBrowser";default:return 0!==a.indexOf("Mozilla")&&/^([\d\w\-\.]+)\/[\d\w\.\-]+/i.test(a)?(this.Agent.isAuthoritative=!1,RegExp.$1):"unknown"}},this.getBrowserVersion=function(a){var b;switch(this.Agent.browser){case"Edge":if(this._Versions.Edge.test(a))return RegExp.$1;break;case"PhantomJS":if(this._Versions.PhantomJS.test(a))return RegExp.$1;break;case"Chrome":if(this._Versions.Chrome.test(a))return RegExp.$1;break;case"Chromium":if(this._Versions.Chromium.test(a))return RegExp.$1;break;case"Safari":if(this._Versions.Safari.test(a))return RegExp.$1;break;case"Opera":if(this._Versions.Opera.test(a))return RegExp.$1?RegExp.$1:RegExp.$2;break;case"Firefox":if(this._Versions.Firefox.test(a))return RegExp.$1;break;case"WinJs":if(this._Versions.WinJs.test(a))return RegExp.$1;break;case"IE":if(this._Versions.IE.test(a))return RegExp.$2?RegExp.$2:RegExp.$1;break;case"ps3":if(this._Versions.Ps3.test(a))return RegExp.$1;break;case"psp":if(this._Versions.Psp.test(a))return RegExp.$1;break;case"Amaya":if(this._Versions.Amaya.test(a))return RegExp.$1;break;case"Epiphany":if(this._Versions.Epiphany.test(a))return RegExp.$1;break;case"SeaMonkey":if(this._Versions.SeaMonkey.test(a))return RegExp.$1;break;case"Flock":if(this._Versions.Flock.test(a))return RegExp.$1;break;case"OmniWeb":if(this._Versions.OmniWeb.test(a))return RegExp.$1;break;case"UCBrowser":if(this._Versions.UC.test(a))return RegExp.$1;break;case"Facebook":if(this._Versions.Facebook.test(a))return RegExp.$1;break;default:if("unknown"!==this.Agent.browser&&(b=new RegExp(this.Agent.browser+"[\\/ ]([\\d\\w\\.\\-]+)","i"),b.test(a)))return RegExp.$1}},this.getOS=function(a){switch(!0){case this._OS.WindowsVista.test(a):return this.Agent.isWindows=!0,"Windows Vista";case this._OS.Windows7.test(a):return this.Agent.isWindows=!0,"Windows 7";case this._OS.Windows8.test(a):return this.Agent.isWindows=!0,"Windows 8";case this._OS.Windows81.test(a):return this.Agent.isWindows=!0,"Windows 8.1";case this._OS.Windows10.test(a):return this.Agent.isWindows=!0,"Windows 10.0";case this._OS.Windows2003.test(a):return this.Agent.isWindows=!0,"Windows 2003";case this._OS.WindowsXP.test(a):return this.Agent.isWindows=!0,"Windows XP";case this._OS.Windows2000.test(a):return this.Agent.isWindows=!0,"Windows 2000";case this._OS.WindowsPhone81.test(a):return this.Agent.isWindowsPhone=!0,"Windows Phone 8.1";case this._OS.WindowsPhone80.test(a):return this.Agent.isWindowsPhone=!0,"Windows Phone 8.0";case this._OS.Linux64.test(a):return this.Agent.isLinux=!0,this.Agent.isLinux64=!0,"Linux 64";case this._OS.Linux.test(a):return this.Agent.isLinux=!0,"Linux";case this._OS.ChromeOS.test(a):return this.Agent.isChromeOS=!0,"Chrome OS";case this._OS.Wii.test(a):return"Wii";case this._OS.PS3.test(a):return"Playstation";case this._OS.PSP.test(a):return"Playstation";case this._OS.OSXCheetah.test(a):return this.Agent.isMac=!0,"OS X Cheetah";case this._OS.OSXPuma.test(a):return this.Agent.isMac=!0,"OS X Puma";case this._OS.OSXJaguar.test(a):return this.Agent.isMac=!0,"OS X Jaguar";case this._OS.OSXPanther.test(a):return this.Agent.isMac=!0,"OS X Panther";case this._OS.OSXTiger.test(a):return this.Agent.isMac=!0,"OS X Tiger";case this._OS.OSXLeopard.test(a):return this.Agent.isMac=!0,"OS X Leopard";case this._OS.OSXSnowLeopard.test(a):return this.Agent.isMac=!0,"OS X Snow Leopard";case this._OS.OSXLion.test(a):return this.Agent.isMac=!0,"OS X Lion";case this._OS.OSXMountainLion.test(a):return this.Agent.isMac=!0,"OS X Mountain Lion";case this._OS.OSXMavericks.test(a):return this.Agent.isMac=!0,"OS X Mavericks";case this._OS.OSXYosemite.test(a):return this.Agent.isMac=!0,"OS X Yosemite";case this._OS.OSXElCapitan.test(a):return this.Agent.isMac=!0,"OS X El Capitan";case this._OS.MacOSSierra.test(a):return this.Agent.isMac=!0,"macOS Sierra";case this._OS.MacOSHighSierra.test(a):return this.Agent.isMac=!0,"macOS High Sierra";case this._OS.Mac.test(a):return this.Agent.isMac=!0,"OS X";case this._OS.iPad.test(a):return this.Agent.isiPad=!0,a.match(this._OS.iPad)[0].replace("_",".");case this._OS.iPhone.test(a):return this.Agent.isiPhone=!0,a.match(this._OS.iPhone)[0].replace("_",".");case this._OS.Bada.test(a):return this.Agent.isBada=!0,"Bada";case this._OS.Curl.test(a):return this.Agent.isCurl=!0,"Curl";default:return"unknown"}},this.getPlatform=function(a){switch(!0){case this._Platform.Windows.test(a):return"Microsoft Windows";case this._Platform.WindowsPhone.test(a):return this.Agent.isWindowsPhone=!0,"Microsoft Windows Phone";case this._Platform.Mac.test(a):return"Apple Mac";case this._Platform.Curl.test(a):return"Curl";case this._Platform.Android.test(a):return this.Agent.isAndroid=!0,"Android";case this._Platform.Blackberry.test(a):return this.Agent.isBlackberry=!0,"Blackberry";case this._Platform.Linux.test(a):return"Linux";case this._Platform.Wii.test(a):return"Wii";case this._Platform.Playstation.test(a):return"Playstation";case this._Platform.iPad.test(a):return this.Agent.isiPad=!0,"iPad";case this._Platform.iPod.test(a):return this.Agent.isiPod=!0,"iPod";case this._Platform.iPhone.test(a):return this.Agent.isiPhone=!0,"iPhone";case this._Platform.Samsung.test(a):return this.Agent.isiSamsung=!0,"Samsung";default:return"unknown"}},this.testCompatibilityMode=function(){var a=this;if(this.Agent.isIE&&/Trident\/(\d)\.0/i.test(a.Agent.source)){var b=parseInt(RegExp.$1,10),c=parseInt(a.Agent.version,10);7===c&&7===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=11),7===c&&6===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=10),7===c&&5===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=9),7===c&&4===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=8)}},this.testSilk=function(){var a=this;switch(!0){case new RegExp("silk","gi").test(a.Agent.source):this.Agent.isSilk=!0}return/Silk-Accelerated=true/gi.test(a.Agent.source)&&(this.Agent.SilkAccelerated=!0),!!this.Agent.isSilk&&"Silk"},this.testKindleFire=function(){var a=this;switch(!0){case/KFOT/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire";case/KFTT/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD";case/KFJWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD 8.9";case/KFJWA/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD 8.9 4G";case/KFSOWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD 7";case/KFTHWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 7";case/KFTHWA/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 7 4G";case/KFAPWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 8.9";case/KFAPWA/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 8.9 4G";default:return!1}},this.testCaptiveNetwork=function(){var a=this;switch(!0){case/CaptiveNetwork/gi.test(a.Agent.source):return a.Agent.isCaptive=!0,a.Agent.isMac=!0,a.Agent.platform="Apple Mac","CaptiveNetwork";default:return!1}},this.reset=function(){var a=this;for(var b in a.DefaultAgent)a.Agent[b]=a.DefaultAgent[b];return a},this.testMobile=function(){var a=this;switch(!0){case a.Agent.isWindows:case a.Agent.isLinux:case a.Agent.isMac:case a.Agent.isChromeOS:a.Agent.isDesktop=!0;break;case a.Agent.isAndroid:case a.Agent.isSamsung:a.Agent.isMobile=!0}switch(!0){case a.Agent.isiPad:case a.Agent.isiPod:case a.Agent.isiPhone:case a.Agent.isBada:case a.Agent.isBlackberry:case a.Agent.isAndroid:case a.Agent.isWindowsPhone:a.Agent.isMobile=!0,a.Agent.isDesktop=!1}/mobile/i.test(a.Agent.source)&&(a.Agent.isMobile=!0,a.Agent.isDesktop=!1)},this.testTablet=function(){var a=this;switch(!0){case a.Agent.isiPad:case a.Agent.isAndroidTablet:case a.Agent.isKindleFire:a.Agent.isTablet=!0}/tablet/i.test(a.Agent.source)&&(a.Agent.isTablet=!0)},this.testNginxGeoIP=function(a){var b=this;Object.keys(a).forEach(function(c){/^GEOIP/i.test(c)&&(b.Agent.geoIp[c]=a[c])})},this.testBot=function(){var a=this,b=c.exec(a.Agent.source.toLowerCase());b?a.Agent.isBot=b[1]:a.Agent.isAuthoritative||(a.Agent.isBot=/bot/i.test(a.Agent.source))},this.testSmartTV=function(){var a=this,b=new RegExp("smart-tv|smarttv|googletv|appletv|hbbtv|pov_tv|netcast.tv","gi").exec(a.Agent.source.toLowerCase());b&&(a.Agent.isSmartTV=b[1])},this.testAndroidTablet=function(){var a=this;a.Agent.isAndroid&&!/mobile/i.test(a.Agent.source)&&(a.Agent.isAndroidTablet=!0)},this.parse=function(a){var b=new d;return b.Agent.source=a.replace(/^\s*/,"").replace(/\s*$/,""),b.Agent.os=b.getOS(b.Agent.source),b.Agent.platform=b.getPlatform(b.Agent.source),b.Agent.browser=b.getBrowser(b.Agent.source),b.Agent.version=b.getBrowserVersion(b.Agent.source),b.testBot(),b.testSmartTV(),b.testMobile(),b.testAndroidTablet(),b.testTablet(),b.testCompatibilityMode(),b.testSilk(),b.testKindleFire(),b.testCaptiveNetwork(),b.Agent},this.Agent=this.DefaultAgent,this};return a.UserAgent=d,new d}(this);
!function(a){"use strict";var b=["\\+https:\\/\\/developers.google.com\\/\\+\\/web\\/snippet\\/","ad\\smonitoring","adsbot","apex","applebot","archive.org_bot","baiduspider","bingbot","cloudflare","cloudinary","crawler","curl","discordbot","duckduckbot","embedly","exabot","facebookexternalhit","facebot","flipboard","google","googlebot","gsa-crawler","gurujibot","guzzlehttp","heritrix","ia_archiver","insights","linkedinbot","ltx71","mediapartners","msnbot","odklbot","phantom\\.js","phantomjs","pingdom","pinterest","python","rtlnieuws","skypeuripreview","slackbot","slurp","spbot","telegrambot","test\\scertificate","testing","tiabot","tumblr ","twitterbot","vkshare","web\\sscraper","wget","yandexbot","apex","applebot","duckduckbot","facebot","flipboard","gsa-crawler","ia_archiver","pinterest","skypeuripreview","odklbot","archive.org_bot","ltx71","guzzlehttp","vkshare","discordbot","whatsapp","orangebot","smtbot","qwantify","mj12bot","ahrefsbot","ltx71","seznambot","panscient.com"],c=new RegExp("^.*("+b.join("|")+").*$"),d=function(){return this.version="1.0.10",this._Versions={Edge:/(?:edge|edga|edgios)\/([\d\w\.\-]+)/i,Firefox:/(?:firefox|fxios)\/([\d\w\.\-]+)/i,IE:/msie\s([\d\.]+[\d])|trident\/\d+\.\d+;.*[rv:]+(\d+\.\d)/i,Chrome:/(?:chrome|crios)\/([\d\w\.\-]+)/i,Chromium:/chromium\/([\d\w\.\-]+)/i,Safari:/version\/([\d\w\.\-]+)/i,Opera:/version\/([\d\w\.\-]+)|OPR\/([\d\w\.\-]+)/i,Ps3:/([\d\w\.\-]+)\)\s*$/i,Psp:/([\d\w\.\-]+)\)?\s*$/i,Amaya:/amaya\/([\d\w\.\-]+)/i,SeaMonkey:/seamonkey\/([\d\w\.\-]+)/i,OmniWeb:/omniweb\/v([\d\w\.\-]+)/i,Flock:/flock\/([\d\w\.\-]+)/i,Epiphany:/epiphany\/([\d\w\.\-]+)/i,WinJs:/msapphost\/([\d\w\.\-]+)/i,PhantomJS:/phantomjs\/([\d\w\.\-]+)/i,AlamoFire:/alamofire\/([\d\w\.\-]+)/i,UC:/ucbrowser\/([\d\w\.]+)/i,Facebook:/FBAV\/([\d\w\.]+)/i},this._Browsers={Edge:/edge|edga|edgios/i,Amaya:/amaya/i,Konqueror:/konqueror/i,Epiphany:/epiphany/i,SeaMonkey:/seamonkey/i,Flock:/flock/i,OmniWeb:/omniweb/i,Chromium:/chromium/i,Chrome:/chrome|crios/i,Safari:/safari/i,IE:/msie|trident/i,Opera:/opera|OPR\//i,PS3:/playstation 3/i,PSP:/playstation portable/i,Firefox:/firefox|fxios/i,WinJs:/msapphost/i,PhantomJS:/phantomjs/i,AlamoFire:/alamofire/i,UC:/UCBrowser/i,Facebook:/FBA[NV]/},this._OS={Windows10:/windows nt 10\.0/i,Windows81:/windows nt 6\.3/i,Windows8:/windows nt 6\.2/i,Windows7:/windows nt 6\.1/i,UnknownWindows:/windows nt 6\.\d+/i,WindowsVista:/windows nt 6\.0/i,Windows2003:/windows nt 5\.2/i,WindowsXP:/windows nt 5\.1/i,Windows2000:/windows nt 5\.0/i,WindowsPhone81:/windows phone 8\.1/i,WindowsPhone80:/windows phone 8\.0/i,OSXCheetah:/os x 10[._]0/i,OSXPuma:/os x 10[._]1(\D|$)/i,OSXJaguar:/os x 10[._]2/i,OSXPanther:/os x 10[._]3/i,OSXTiger:/os x 10[._]4/i,OSXLeopard:/os x 10[._]5/i,OSXSnowLeopard:/os x 10[._]6/i,OSXLion:/os x 10[._]7/i,OSXMountainLion:/os x 10[._]8/i,OSXMavericks:/os x 10[._]9/i,OSXYosemite:/os x 10[._]10/i,OSXElCapitan:/os x 10[._]11/i,MacOSSierra:/os x 10[._]12/i,MacOSHighSierra:/os x 10[._]13/i,Mac:/os x/i,Linux:/linux/i,Linux64:/linux x86\_64/i,ChromeOS:/cros/i,Wii:/wii/i,PS3:/playstation 3/i,PSP:/playstation portable/i,iPad:/\(iPad.*os (\d+)[._](\d+)/i,iPhone:/\(iPhone.*os (\d+)[._](\d+)/i,iOS:/ios/i,Bada:/Bada\/(\d+)\.(\d+)/i,Curl:/curl\/(\d+)\.(\d+)\.(\d+)/i},this._Platform={Windows:/windows nt/i,WindowsPhone:/windows phone/i,Mac:/macintosh/i,Linux:/linux/i,Wii:/wii/i,Playstation:/playstation/i,iPad:/ipad/i,iPod:/ipod/i,iPhone:/iphone/i,Android:/android/i,Blackberry:/blackberry/i,Samsung:/samsung/i,Curl:/curl/i,iOS:/^ios\-/i},this.DefaultAgent={isAuthoritative:!0,isMobile:!1,isTablet:!1,isiPad:!1,isiPod:!1,isiPhone:!1,isAndroid:!1,isBlackberry:!1,isOpera:!1,isIE:!1,isEdge:!1,isIECompatibilityMode:!1,isSafari:!1,isFirefox:!1,isWebkit:!1,isChrome:!1,isKonqueror:!1,isOmniWeb:!1,isSeaMonkey:!1,isFlock:!1,isAmaya:!1,isPhantomJS:!1,isEpiphany:!1,isDesktop:!1,isWindows:!1,isLinux:!1,isLinux64:!1,isMac:!1,isChromeOS:!1,isBada:!1,isSamsung:!1,isRaspberry:!1,isBot:!1,isCurl:!1,isAndroidTablet:!1,isWinJs:!1,isKindleFire:!1,isSilk:!1,isCaptive:!1,isSmartTV:!1,isUC:!1,isFacebook:!1,isAlamoFire:!1,silkAccelerated:!1,browser:"unknown",version:"unknown",os:"unknown",platform:"unknown",geoIp:{},source:""},this.Agent={},this.getBrowser=function(a){switch(!0){case this._Browsers.AlamoFire.test(a):return this.Agent.isAlamoFire=!0,"AlamoFire";case this._Browsers.Edge.test(a):return this.Agent.isEdge=!0,"Edge";case this._Browsers.PhantomJS.test(a):return this.Agent.isPhantomJS=!0,"PhantomJS";case this._Browsers.Konqueror.test(a):return this.Agent.isKonqueror=!0,"Konqueror";case this._Browsers.Amaya.test(a):return this.Agent.isAmaya=!0,"Amaya";case this._Browsers.Epiphany.test(a):return this.Agent.isEpiphany=!0,"Epiphany";case this._Browsers.SeaMonkey.test(a):return this.Agent.isSeaMonkey=!0,"SeaMonkey";case this._Browsers.Flock.test(a):return this.Agent.isFlock=!0,"Flock";case this._Browsers.OmniWeb.test(a):return this.Agent.isOmniWeb=!0,"OmniWeb";case this._Browsers.Opera.test(a):return this.Agent.isOpera=!0,"Opera";case this._Browsers.Chromium.test(a):return this.Agent.isChrome=!0,"Chromium";case this._Browsers.Facebook.test(a):return this.Agent.isFacebook=!0,"Facebook";case this._Browsers.Chrome.test(a):return this.Agent.isChrome=!0,"Chrome";case this._Browsers.WinJs.test(a):return this.Agent.isWinJs=!0,"WinJs";case this._Browsers.IE.test(a):return this.Agent.isIE=!0,"IE";case this._Browsers.Firefox.test(a):return this.Agent.isFirefox=!0,"Firefox";case this._Browsers.Safari.test(a):return this.Agent.isSafari=!0,"Safari";case this._Browsers.PS3.test(a):return"ps3";case this._Browsers.PSP.test(a):return"psp";case this._Browsers.UC.test(a):return this.Agent.isUC=!0,"UCBrowser";default:return 0!==a.indexOf("Mozilla")&&/^([\d\w\-\.]+)\/[\d\w\.\-]+/i.test(a)?(this.Agent.isAuthoritative=!1,RegExp.$1):"unknown"}},this.getBrowserVersion=function(a){var b;switch(this.Agent.browser){case"Edge":if(this._Versions.Edge.test(a))return RegExp.$1;break;case"PhantomJS":if(this._Versions.PhantomJS.test(a))return RegExp.$1;break;case"Chrome":if(this._Versions.Chrome.test(a))return RegExp.$1;break;case"Chromium":if(this._Versions.Chromium.test(a))return RegExp.$1;break;case"Safari":if(this._Versions.Safari.test(a))return RegExp.$1;break;case"Opera":if(this._Versions.Opera.test(a))return RegExp.$1?RegExp.$1:RegExp.$2;break;case"Firefox":if(this._Versions.Firefox.test(a))return RegExp.$1;break;case"WinJs":if(this._Versions.WinJs.test(a))return RegExp.$1;break;case"IE":if(this._Versions.IE.test(a))return RegExp.$2?RegExp.$2:RegExp.$1;break;case"ps3":if(this._Versions.Ps3.test(a))return RegExp.$1;break;case"psp":if(this._Versions.Psp.test(a))return RegExp.$1;break;case"Amaya":if(this._Versions.Amaya.test(a))return RegExp.$1;break;case"Epiphany":if(this._Versions.Epiphany.test(a))return RegExp.$1;break;case"SeaMonkey":if(this._Versions.SeaMonkey.test(a))return RegExp.$1;break;case"Flock":if(this._Versions.Flock.test(a))return RegExp.$1;break;case"OmniWeb":if(this._Versions.OmniWeb.test(a))return RegExp.$1;break;case"UCBrowser":if(this._Versions.UC.test(a))return RegExp.$1;break;case"Facebook":if(this._Versions.Facebook.test(a))return RegExp.$1;break;default:if("unknown"!==this.Agent.browser&&(b=new RegExp(this.Agent.browser+"[\\/ ]([\\d\\w\\.\\-]+)","i"),b.test(a)))return RegExp.$1}},this.getOS=function(a){switch(!0){case this._OS.WindowsVista.test(a):return this.Agent.isWindows=!0,"Windows Vista";case this._OS.Windows7.test(a):return this.Agent.isWindows=!0,"Windows 7";case this._OS.Windows8.test(a):return this.Agent.isWindows=!0,"Windows 8";case this._OS.Windows81.test(a):return this.Agent.isWindows=!0,"Windows 8.1";case this._OS.Windows10.test(a):return this.Agent.isWindows=!0,"Windows 10.0";case this._OS.Windows2003.test(a):return this.Agent.isWindows=!0,"Windows 2003";case this._OS.WindowsXP.test(a):return this.Agent.isWindows=!0,"Windows XP";case this._OS.Windows2000.test(a):return this.Agent.isWindows=!0,"Windows 2000";case this._OS.WindowsPhone81.test(a):return this.Agent.isWindowsPhone=!0,"Windows Phone 8.1";case this._OS.WindowsPhone80.test(a):return this.Agent.isWindowsPhone=!0,"Windows Phone 8.0";case this._OS.Linux64.test(a):return this.Agent.isLinux=!0,this.Agent.isLinux64=!0,"Linux 64";case this._OS.Linux.test(a):return this.Agent.isLinux=!0,"Linux";case this._OS.ChromeOS.test(a):return this.Agent.isChromeOS=!0,"Chrome OS";case this._OS.Wii.test(a):return"Wii";case this._OS.PS3.test(a):return"Playstation";case this._OS.PSP.test(a):return"Playstation";case this._OS.OSXCheetah.test(a):return this.Agent.isMac=!0,"OS X Cheetah";case this._OS.OSXPuma.test(a):return this.Agent.isMac=!0,"OS X Puma";case this._OS.OSXJaguar.test(a):return this.Agent.isMac=!0,"OS X Jaguar";case this._OS.OSXPanther.test(a):return this.Agent.isMac=!0,"OS X Panther";case this._OS.OSXTiger.test(a):return this.Agent.isMac=!0,"OS X Tiger";case this._OS.OSXLeopard.test(a):return this.Agent.isMac=!0,"OS X Leopard";case this._OS.OSXSnowLeopard.test(a):return this.Agent.isMac=!0,"OS X Snow Leopard";case this._OS.OSXLion.test(a):return this.Agent.isMac=!0,"OS X Lion";case this._OS.OSXMountainLion.test(a):return this.Agent.isMac=!0,"OS X Mountain Lion";case this._OS.OSXMavericks.test(a):return this.Agent.isMac=!0,"OS X Mavericks";case this._OS.OSXYosemite.test(a):return this.Agent.isMac=!0,"OS X Yosemite";case this._OS.OSXElCapitan.test(a):return this.Agent.isMac=!0,"OS X El Capitan";case this._OS.MacOSSierra.test(a):return this.Agent.isMac=!0,"macOS Sierra";case this._OS.MacOSHighSierra.test(a):return this.Agent.isMac=!0,"macOS High Sierra";case this._OS.Mac.test(a):return this.Agent.isMac=!0,"OS X";case this._OS.iPad.test(a):return this.Agent.isiPad=!0,a.match(this._OS.iPad)[0].replace("_",".");case this._OS.iPhone.test(a):return this.Agent.isiPhone=!0,a.match(this._OS.iPhone)[0].replace("_",".");case this._OS.Bada.test(a):return this.Agent.isBada=!0,"Bada";case this._OS.Curl.test(a):return this.Agent.isCurl=!0,"Curl";case this._OS.iOS.test(a):return this.Agent.isiPhone=!0,"iOS";default:return"unknown"}},this.getPlatform=function(a){switch(!0){case this._Platform.Windows.test(a):return"Microsoft Windows";case this._Platform.WindowsPhone.test(a):return this.Agent.isWindowsPhone=!0,"Microsoft Windows Phone";case this._Platform.Mac.test(a):return"Apple Mac";case this._Platform.Curl.test(a):return"Curl";case this._Platform.Android.test(a):return this.Agent.isAndroid=!0,"Android";case this._Platform.Blackberry.test(a):return this.Agent.isBlackberry=!0,"Blackberry";case this._Platform.Linux.test(a):return"Linux";case this._Platform.Wii.test(a):return"Wii";case this._Platform.Playstation.test(a):return"Playstation";case this._Platform.iPad.test(a):return this.Agent.isiPad=!0,"iPad";case this._Platform.iPod.test(a):return this.Agent.isiPod=!0,"iPod";case this._Platform.iPhone.test(a):return this.Agent.isiPhone=!0,"iPhone";case this._Platform.Samsung.test(a):return this.Agent.isiSamsung=!0,"Samsung";case this._Platform.iOS.test(a):return"Apple iOS";default:return"unknown"}},this.testCompatibilityMode=function(){var a=this;if(this.Agent.isIE&&/Trident\/(\d)\.0/i.test(a.Agent.source)){var b=parseInt(RegExp.$1,10),c=parseInt(a.Agent.version,10);7===c&&7===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=11),7===c&&6===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=10),7===c&&5===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=9),7===c&&4===b&&(a.Agent.isIECompatibilityMode=!0,a.Agent.version=8)}},this.testSilk=function(){var a=this;switch(!0){case new RegExp("silk","gi").test(a.Agent.source):this.Agent.isSilk=!0}return/Silk-Accelerated=true/gi.test(a.Agent.source)&&(this.Agent.SilkAccelerated=!0),!!this.Agent.isSilk&&"Silk"},this.testKindleFire=function(){var a=this;switch(!0){case/KFOT/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire";case/KFTT/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD";case/KFJWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD 8.9";case/KFJWA/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD 8.9 4G";case/KFSOWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HD 7";case/KFTHWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 7";case/KFTHWA/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 7 4G";case/KFAPWI/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 8.9";case/KFAPWA/gi.test(a.Agent.source):return this.Agent.isKindleFire=!0,"Kindle Fire HDX 8.9 4G";default:return!1}},this.testCaptiveNetwork=function(){var a=this;switch(!0){case/CaptiveNetwork/gi.test(a.Agent.source):return a.Agent.isCaptive=!0,a.Agent.isMac=!0,a.Agent.platform="Apple Mac","CaptiveNetwork";default:return!1}},this.reset=function(){var a=this;for(var b in a.DefaultAgent)a.Agent[b]=a.DefaultAgent[b];return a},this.testMobile=function(){var a=this;switch(!0){case a.Agent.isWindows:case a.Agent.isLinux:case a.Agent.isMac:case a.Agent.isChromeOS:a.Agent.isDesktop=!0;break;case a.Agent.isAndroid:case a.Agent.isSamsung:a.Agent.isMobile=!0}switch(!0){case a.Agent.isiPad:case a.Agent.isiPod:case a.Agent.isiPhone:case a.Agent.isBada:case a.Agent.isBlackberry:case a.Agent.isAndroid:case a.Agent.isWindowsPhone:a.Agent.isMobile=!0,a.Agent.isDesktop=!1}/mobile|^ios\-/i.test(a.Agent.source)&&(a.Agent.isMobile=!0,a.Agent.isDesktop=!1)},this.testTablet=function(){var a=this;switch(!0){case a.Agent.isiPad:case a.Agent.isAndroidTablet:case a.Agent.isKindleFire:a.Agent.isTablet=!0}/tablet/i.test(a.Agent.source)&&(a.Agent.isTablet=!0)},this.testNginxGeoIP=function(a){var b=this;Object.keys(a).forEach(function(c){/^GEOIP/i.test(c)&&(b.Agent.geoIp[c]=a[c])})},this.testBot=function(){var a=this,b=c.exec(a.Agent.source.toLowerCase());b?a.Agent.isBot=b[1]:a.Agent.isAuthoritative||(a.Agent.isBot=/bot/i.test(a.Agent.source))},this.testSmartTV=function(){var a=this,b=new RegExp("smart-tv|smarttv|googletv|appletv|hbbtv|pov_tv|netcast.tv","gi").exec(a.Agent.source.toLowerCase());b&&(a.Agent.isSmartTV=b[1])},this.testAndroidTablet=function(){var a=this;a.Agent.isAndroid&&!/mobile/i.test(a.Agent.source)&&(a.Agent.isAndroidTablet=!0)},this.parse=function(a){var b=new d;return b.Agent.source=a.replace(/^\s*/,"").replace(/\s*$/,""),b.Agent.os=b.getOS(b.Agent.source),b.Agent.platform=b.getPlatform(b.Agent.source),b.Agent.browser=b.getBrowser(b.Agent.source),b.Agent.version=b.getBrowserVersion(b.Agent.source),b.testBot(),b.testSmartTV(),b.testMobile(),b.testAndroidTablet(),b.testTablet(),b.testCompatibilityMode(),b.testSilk(),b.testKindleFire(),b.testCaptiveNetwork(),b.Agent},this.Agent=this.DefaultAgent,this};return a.UserAgent=d,new d}(this);
{
"name": "express-useragent",
"description": "ExpressJS/Connect/TrinteJS user-agent middleware exposing",
"version": "1.0.10",
"version": "1.0.11",
"homepage": "https://github.com/biggora/express-useragent/",

@@ -57,3 +57,3 @@ "repository": {

"scripts": {
"test": "nodeunit test/browsers.js test/bots_test.js",
"test": "nodeunit test/browsers.js test/ios.js test/android_phone.js test/android_tablet.js test/bots_test.js",
"express": "node test/express.js",

@@ -60,0 +60,0 @@ "http": "node test/http.js",

@@ -47,9 +47,77 @@ /**

test.equal(userAgent.Browser, 'Safari');
test.equal(userAgent.OS, 'Linux');
test.equal(userAgent.Platform, 'Android');
test.equal(0, Object.keys(userAgent.GeoIP).length);
test.equal(userAgent.Version, '4.0');
test.equal(userAgent.browser, 'Safari');
test.equal(userAgent.os, 'Linux');
test.equal(userAgent.platform, 'Android');
test.equal(userAgent.version, '4.0');
test.done();
};
// Source:
// http://www.gtrifonov.com/2011/04/15/google-android-user-agent-strings-2/
exports['Android Samsung'] = function (test) {
var s = 'Mozilla/5.0 (Linux; U; Android 2.2; en-ca; SGH-T959D Build/FROYO) AppleWebKit/533.1'
+ ' (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '4.0');
test.done();
};
// Source:
// Chrome UA Spoofer
exports['Android Xoom'] = function (test) {
var s = 'Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13' +
' (KHTML, like Gecko) Version/4.0 Safari/534.13';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.ok(!a.isFacebook, 'Facebook');
test.equal(a.version, '4.0');
test.done();
};

@@ -47,9 +47,8 @@ /**

test.equal(userAgent.Browser, 'Safari');
test.equal(userAgent.OS, 'Linux');
test.equal(userAgent.Platform, 'Android');
test.equal(0, Object.keys(userAgent.GeoIP).length);
test.equal(userAgent.Version, '4.0');
test.equal(userAgent.browser, 'Safari');
test.equal(userAgent.os, 'Linux');
test.equal(userAgent.platform, 'Android');
test.equal(userAgent.version, '4.0');
test.done();
};

@@ -7,33 +7,3 @@ /**

exports['iPad 2'] = function (test) {
var s = 'Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46'
+ ' (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(!a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '5.1');
test.done();
};
/** Linux **/
exports['Linux Iceweasel'] = function (test) {

@@ -226,2 +196,3 @@

/** Win **/
exports['Windows 8 Chrome 28'] = function (test) {

@@ -566,10 +537,8 @@

exports['OS X OmniWeb 622'] = function (test) {
exports['Windows 7 IE 10.6'] = function (test) {
var s = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/528.16'
+ '(KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0.112941';
var s = 'Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(!a.isMobile, 'Mobile');

@@ -582,5 +551,4 @@ test.ok(!a.isiPad, 'iPad');

test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(a.isOmniWeb, 'OmniWeb');
test.ok(!a.isFirefox, 'Firefox');

@@ -591,7 +559,7 @@ test.ok(!a.isWebkit, 'Webkit');

test.ok(a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '622.8.0.112941');
test.equal(a.version, '10.6');

@@ -601,6 +569,5 @@ test.done();

exports['OS X Safari 530'] = function (test) {
exports['Windows 7 IE 11.0'] = function (test) {
var s = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us)'
+ ' AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19';
var s = 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko';

@@ -617,4 +584,4 @@ var a = ua.parse(s);

test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');

@@ -625,7 +592,7 @@ test.ok(!a.isWebkit, 'Webkit');

test.ok(a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '4.0.2');
test.equal(a.version, '11.0');

@@ -635,11 +602,10 @@ test.done();

exports['OS X Chromium'] = function (test) {
exports['Windows 8.1 IE 11 Touch'] = function (test) {
var s = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; Touch; rv:11.0) like Gecko'
var s = 'Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/32.0.1700.20 Mobile/11B554a Safari/9537.53';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(a.isiPad, 'iPad');
test.ok(!a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');

@@ -650,49 +616,14 @@ test.ok(!a.isiPhone, 'iPhone');

test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(a.isChrome, 'Chromium');
test.ok(!a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '32.0.1700.20');
test.ok(!a.isIECompatibilityMode);
test.done();
};
// Source:
// https://www.handsetdetection.com/properties/devices/Google/Pixel
exports['Google Pixel'] = function (test) {
var s = 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel Build/OPR6.170623.011) AppleWebKit/537.36'
+ ' (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '60.0.3112.116');
test.equal(a.version, '11.0');

@@ -702,90 +633,18 @@ test.done();

// Source:
// http://www.gtrifonov.com/2011/04/15/google-android-user-agent-strings-2/
exports['Windows XP IE 8.0'] = function (test) {
exports['Android Samsung'] = function (test) {
var s = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)';
var s = 'Mozilla/5.0 (Linux; U; Android 2.2; en-ca; SGH-T959D Build/FROYO) AppleWebKit/533.1'
+ ' (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '4.0');
test.done();
};
// Source:
// Chrome UA Spoofer
exports['Android Xoom'] = function (test) {
var s = 'Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13' +
' (KHTML, like Gecko) Version/4.0 Safari/534.13';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.ok(!a.isFacebook, 'Facebook');
test.equal(a.version, '4.0');
test.done();
};
// Source
// Chrome UA Spoofer
exports['iPhone 4'] = function (test) {
var s = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9' +
' (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5';
var a = ua.parse(s);
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(a.isiPhone, 'iPhone');
test.ok(!a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');

@@ -795,8 +654,8 @@ test.ok(!a.isWebkit, 'Webkit');

test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '5.0.2');
test.equal(a.version, '8.0');

@@ -806,15 +665,10 @@ test.done();

// Source:
// http://java.net/jira/browse/USER_AGENT_UTILS-6
exports['Windows XP IE 8.0 - Compatibility mode'] = function (test) {
exports['Bada OS browser'] = function (test) {
var s = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)';
var s = 'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500NEJE5; U; Bada/1.0; fr-fr) AppleWebKit/533.1' +
' (KHTML, like Gecko) Dolfin/2.0 Mobile WVGA SMM-MMS/1.2.0 NexPlayer/3.0 profile/MIDP-2.1 ' +
'configuration/CLDC-1.1 OPN-B';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');

@@ -826,3 +680,3 @@ test.ok(!a.isiPod, 'iPod');

test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');

@@ -833,8 +687,9 @@ test.ok(!a.isFirefox, 'Firefox');

test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.equal(a.version, '8.0');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, undefined);
test.ok(a.isIECompatibilityMode);

@@ -844,8 +699,6 @@ test.done();

exports['Windows XP IE 10.0'] = function (test) {
exports['America Online Browser'] = function (test) {
var s = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)';
var s = 'Mozilla/4.0 (compatible; MSIE 7.0;'
+ ' America Online Browser 1.1; Windows NT 5.1; (R1 1.5); .NET CLR 2.0.50727; InfoPath.1)';
var a = ua.parse(s);

@@ -872,3 +725,4 @@

test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '7.0');
test.equal(a.version, '10.0');
test.ok(!a.isIECompatibilityMode);

@@ -878,8 +732,9 @@ test.done();

exports['Windows 7 IE 10.6'] = function (test) {
exports['Windows XP IE 10.0 - Compatibility mode'] = function (test) {
var s = 'Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0';
var s = 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/6.0)';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(!a.isMobile, 'Mobile');

@@ -903,3 +758,4 @@ test.ok(!a.isiPad, 'iPad');

test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '10.6');
test.equal(a.version, '10.0');
test.ok(a.isIECompatibilityMode);

@@ -909,5 +765,5 @@ test.done();

exports['Windows 7 IE 11.0'] = function (test) {
exports['Windows XP IE 7.0 - Compatibility mode (invalid mode)'] = function (test) {
var s = 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko';
var s = 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/1.0)';

@@ -935,3 +791,4 @@ var a = ua.parse(s);

test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '11.0');
test.equal(a.version, '7.0');
test.ok(!a.isIECompatibilityMode);

@@ -941,5 +798,7 @@ test.done();

exports['Windows 8.1 IE 11 Touch'] = function (test) {
var s = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; Touch; rv:11.0) like Gecko'
exports['Windows XP IE 9.0 - Compatibility mode'] = function (test) {
var s = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; ' +
'.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)';
var a = ua.parse(s);

@@ -966,3 +825,4 @@

test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '11.0');
test.equal(a.version, '9.0');
test.ok(a.isIECompatibilityMode);

@@ -972,5 +832,7 @@ test.done();

exports['Windows XP IE 8.0'] = function (test) {
/** OS X **/
exports['OS X Opera 30'] = function (test) {
var s = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)';
var s = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko)' +
'Chrome/43.0.2357.125 Safari/537.36 OPR/30.0.1835.88'

@@ -986,4 +848,4 @@ var a = ua.parse(s);

test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');

@@ -995,7 +857,8 @@ test.ok(!a.isFirefox, 'Firefox');

test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '8.0');
test.equal(a.version, '30.0.1835.88');
test.ok(!a.isIECompatibilityMode);

@@ -1005,5 +868,6 @@ test.done();

exports['Windows XP IE 8.0 - Compatibility mode'] = function (test) {
exports['OS X OmniWeb 622'] = function (test) {
var s = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)';
var s = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/528.16'
+ '(KHTML, like Gecko, Safari/528.16) OmniWeb/v622.8.0.112941';

@@ -1020,4 +884,5 @@ var a = ua.parse(s);

test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(a.isOmniWeb, 'OmniWeb');
test.ok(!a.isFirefox, 'Firefox');

@@ -1028,8 +893,7 @@ test.ok(!a.isWebkit, 'Webkit');

test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.equal(a.version, '8.0');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.ok(a.isIECompatibilityMode);
test.equal(a.version, '622.8.0.112941');

@@ -1039,5 +903,6 @@ test.done();

exports['Windows XP IE 10.0'] = function (test) {
exports['OS X Safari 530'] = function (test) {
var s = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)';
var s = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us)'
+ ' AppleWebKit/530.19.2 (KHTML, like Gecko) Version/4.0.2 Safari/530.19';

@@ -1054,4 +919,4 @@ var a = ua.parse(s);

test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isIE, 'IE');
test.ok(a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');

@@ -1062,8 +927,7 @@ test.ok(!a.isWebkit, 'Webkit');

test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '10.0');
test.ok(!a.isIECompatibilityMode);
test.equal(a.version, '4.0.2');

@@ -1073,5 +937,5 @@ test.done();

exports['Windows XP IE 10.0 - Compatibility mode'] = function (test) {
exports['OS X Chromium'] = function (test) {
var s = 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/6.0)';
var s = 'Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) CriOS/32.0.1700.20 Mobile/11B554a Safari/9537.53';

@@ -1081,4 +945,4 @@ var a = ua.parse(s);

test.ok(a.isAuthoritative, 'Authoritative');
test.ok(!a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(a.isMobile, 'Mobile');
test.ok(a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');

@@ -1089,15 +953,15 @@ test.ok(!a.isiPhone, 'iPhone');

test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(a.isChrome, 'Chromium');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '10.0');
test.ok(a.isIECompatibilityMode);
test.equal(a.version, '32.0.1700.20');
test.ok(!a.isIECompatibilityMode);

@@ -1107,5 +971,6 @@ test.done();

exports['Windows XP IE 7.0 - Compatibility mode (invalid mode)'] = function (test) {
exports['Google Pixel'] = function (test) {
var s = 'Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.2; Trident/1.0)';
var s = 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel Build/OPR6.170623.011) AppleWebKit/537.36'
+ ' (KHTML, like Gecko) Chrome/60.0.3112.116 Mobile Safari/537.36';

@@ -1115,22 +980,21 @@ var a = ua.parse(s);

test.ok(a.isAuthoritative, 'Authoritative');
test.ok(!a.isMobile, 'Mobile');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(!a.isAndroid, 'Android');
test.ok(a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(!a.isChrome, 'Chrome');
test.ok(a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '7.0');
test.ok(!a.isIECompatibilityMode);
test.equal(a.version, '60.0.3112.116');

@@ -1140,11 +1004,15 @@ test.done();

exports['Windows XP IE 9.0 - Compatibility mode'] = function (test) {
// Source:
// http://java.net/jira/browse/USER_AGENT_UTILS-6
var s = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; ' +
'.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)';
exports['Bada OS browser'] = function (test) {
var s = 'Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500NEJE5; U; Bada/1.0; fr-fr) AppleWebKit/533.1' +
' (KHTML, like Gecko) Dolfin/2.0 Mobile WVGA SMM-MMS/1.2.0 NexPlayer/3.0 profile/MIDP-2.1 ' +
'configuration/CLDC-1.1 OPN-B';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(!a.isMobile, 'Mobile');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');

@@ -1156,3 +1024,3 @@ test.ok(!a.isiPod, 'iPod');

test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');

@@ -1163,9 +1031,8 @@ test.ok(!a.isFirefox, 'Firefox');

test.ok(!a.isKonqueror, 'Konqueror');
test.ok(a.isDesktop, 'Desktop');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '9.0');
test.ok(a.isIECompatibilityMode);
test.equal(a.version, undefined);

@@ -1175,6 +1042,6 @@ test.done();

exports['Mac OSX Opera 30'] = function (test) {
exports['America Online Browser'] = function (test) {
var s = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko)' +
'Chrome/43.0.2357.125 Safari/537.36 OPR/30.0.1835.88'
var s = 'Mozilla/4.0 (compatible; MSIE 7.0;'
+ ' America Online Browser 1.1; Windows NT 5.1; (R1 1.5); .NET CLR 2.0.50727; InfoPath.1)';

@@ -1190,4 +1057,4 @@ var a = ua.parse(s);

test.ok(!a.isBlackberry, 'Blackberry');
test.ok(a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(!a.isOpera, 'Opera');
test.ok(a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');

@@ -1199,8 +1066,7 @@ test.ok(!a.isFirefox, 'Firefox');

test.ok(a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.equal(a.version, '30.0.1835.88');
test.ok(!a.isIECompatibilityMode);
test.equal(a.version, '7.0');

@@ -1449,34 +1315,1 @@ test.done();

exports['Chrome iOS'] = function (test) {
var s = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko)' +
' CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1';
var a = ua.parse(s);
test.ok(a.isAuthoritative, 'Authoritative');
test.ok(a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(a.isiPhone, 'iPhone');
test.ok(!a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(!a.isEdge, 'Edge');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(!a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(!a.isLinux, 'Linux');
test.ok(a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.ok(!a.isFacebook, 'Facebook');
test.equal(a.version, '56.0.2924.75');
test.ok(!a.isIECompatibilityMode);
test.done();
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc