1
0
mirror of https://github.com/lancedikson/bowser synced 2024-10-27 20:34:22 +00:00

Merge branch 'release/1.2.0'

This commit is contained in:
Denis Demchenko 2016-05-09 10:53:06 +03:00
commit 01da7cf385
6 changed files with 421 additions and 219 deletions

4
.gitignore vendored
View File

@ -1,4 +1,4 @@
node_modules node_modules/
.idea .idea/
/bowser.js /bowser.js
/bowser.min.js /bowser.min.js

View File

@ -36,7 +36,8 @@ For unknown browsers, Bowser makes a best guess from the UA string. So, these m
### Rendering engine flags ### Rendering engine flags
If detected, one of these flags may be set to true: If detected, one of these flags may be set to true:
* `webkit` - Chrome, Android, iOs, BB, etc. * `webkit` - Chrome 0-27, Android <4.4, iOs, BB, etc.
* `blink` - Chrome >=28, Android >=4.4, Opera, etc.
* `gecko` - Firefox, etc. * `gecko` - Firefox, etc.
* `msie` - IE <= 11 * `msie` - IE <= 11
* `msedge` - IE > 11 * `msedge` - IE > 11
@ -59,14 +60,14 @@ If detected, one of these flags may be set to true:
### Browser flags ### Browser flags
If detected, one of these flags may be set to true. The rendering engine flag is shown in []'s: If detected, one of these flags may be set to true. The rendering engine flag is shown in []'s:
* `chrome` - [`webkit`] * `chrome` - [`webkit`|`blink`]
* `firefox` - [`gecko`] * `firefox` - [`gecko`]
* `msie` * `msie`
* `msedge` * `msedge`
* `safari` - [`webkit`] * `safari` - [`webkit`]
* `android` - native browser - [`webkit`] * `android` - native browser - [`webkit`|`blink`]
* `ios` - native browser - [`webkit`] * `ios` - native browser - [`webkit`]
* `opera` - [`webkit` if >12] * `opera` - [`blink` if >=15]
* `phantom` - [`webkit`] * `phantom` - [`webkit`]
* `blackberry` - native browser - [`webkit`] * `blackberry` - native browser - [`webkit`]
* `webos` - native browser - [`webkit`] * `webos` - native browser - [`webkit`]
@ -77,7 +78,9 @@ If detected, one of these flags may be set to true. The rendering engine flag i
* `sailfish` - [`gecko`] * `sailfish` - [`gecko`]
* `ucbrowser` — [`webkit`] * `ucbrowser` — [`webkit`]
* `qupzilla` — [`webkit`] * `qupzilla` — [`webkit`]
* `vivaldi` — [`webkit`] * `vivaldi` — [`blink`]
* `sleipnir` — [`blink`]
* `kMeleon` — [`gecko`]
For all detected browsers the browser version is set in the `version` field. For all detected browsers the browser version is set in the `version` field.

View File

@ -7,7 +7,7 @@
"sniff", "sniff",
"detection" "detection"
], ],
"version": "1.1.1", "version": "1.2.0",
"homepage": "https://github.com/ded/bowser", "homepage": "https://github.com/ded/bowser",
"scripts": [ "scripts": [
"src/bowser.js" "src/bowser.js"

View File

@ -7,7 +7,7 @@
"sniff", "sniff",
"detection" "detection"
], ],
"version": "1.1.1", "version": "1.2.0",
"homepage": "https://github.com/ded/bowser", "homepage": "https://github.com/ded/bowser",
"author": "Dustin Diaz <dustin@dustindiaz.com> (http://dustindiaz.com)", "author": "Dustin Diaz <dustin@dustindiaz.com> (http://dustindiaz.com)",
"main": "./src/bowser.js", "main": "./src/bowser.js",

View File

@ -45,13 +45,21 @@
, versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i) , versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i)
, tablet = /tablet/i.test(ua) , tablet = /tablet/i.test(ua)
, mobile = !tablet && /[^-]mobi/i.test(ua) , mobile = !tablet && /[^-]mobi/i.test(ua)
, xbox = /xbox/i.test(ua)
, result , result
if (/opera|opr/i.test(ua)) { if (/opera|opr|opios/i.test(ua)) {
result = { result = {
name: 'Opera' name: 'Opera'
, opera: t , opera: t
, version: versionIdentifier || getFirstMatch(/(?:opera|opr)[\s\/](\d+(\.\d+)?)/i) , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)
}
}
else if (/coast/i.test(ua)) {
result = {
name: 'Opera Coast'
, coast: t
, version: versionIdentifier || getFirstMatch(/(?:coast)[\s\/](\d+(\.\d+)?)/i)
} }
} }
else if (/yabrowser/i.test(ua)) { else if (/yabrowser/i.test(ua)) {
@ -68,6 +76,41 @@
, version: getFirstMatch(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i) , version: getFirstMatch(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)
} }
} }
else if (/mxios/i.test(ua)) {
result = {
name: 'Maxthon'
, maxthon: t
, version: getFirstMatch(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)
}
}
else if (/epiphany/i.test(ua)) {
result = {
name: 'Epiphany'
, epiphany: t
, version: getFirstMatch(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)
}
}
else if (/puffin/i.test(ua)) {
result = {
name: 'Puffin'
, puffin: t
, version: getFirstMatch(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)
}
}
else if (/sleipnir/i.test(ua)) {
result = {
name: 'Sleipnir'
, sleipnir: t
, version: getFirstMatch(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)
}
}
else if (/k-meleon/i.test(ua)) {
result = {
name: 'K-Meleon'
, kMeleon: t
, version: getFirstMatch(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)
}
}
else if (windowsphone) { else if (windowsphone) {
result = { result = {
name: 'Windows Phone' name: 'Windows Phone'
@ -110,22 +153,6 @@
, version: getFirstMatch(/vivaldi\/(\d+(\.\d+)?)/i) || versionIdentifier , version: getFirstMatch(/vivaldi\/(\d+(\.\d+)?)/i) || versionIdentifier
} }
} }
else if (/chrome|crios|crmo/i.test(ua)) {
result = {
name: 'Chrome'
, chrome: t
, version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
}
}
else if (iosdevice) {
result = {
name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'
}
// WTF: version is not part of user agent in web apps
if (versionIdentifier) {
result.version = versionIdentifier
}
}
else if (sailfish) { else if (sailfish) {
result = { result = {
name: 'Sailfish' name: 'Sailfish'
@ -140,11 +167,11 @@
, version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i) , version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i)
} }
} }
else if (/firefox|iceweasel/i.test(ua)) { else if (/firefox|iceweasel|fxios/i.test(ua)) {
result = { result = {
name: 'Firefox' name: 'Firefox'
, firefox: t , firefox: t
, version: getFirstMatch(/(?:firefox|iceweasel)[ \/](\d+(\.\d+)?)/i) , version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)
} }
if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) { if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) {
result.firefoxos = t result.firefoxos = t
@ -157,12 +184,6 @@
, version : getFirstMatch(/silk\/(\d+(\.\d+)?)/i) , version : getFirstMatch(/silk\/(\d+(\.\d+)?)/i)
} }
} }
else if (android) {
result = {
name: 'Android'
, version: versionIdentifier
}
}
else if (/phantom/i.test(ua)) { else if (/phantom/i.test(ua)) {
result = { result = {
name: 'PhantomJS' name: 'PhantomJS'
@ -206,11 +227,35 @@
, version: getFirstMatch(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || versionIdentifier , version: getFirstMatch(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || versionIdentifier
} }
} }
else if (/safari/i.test(ua)) { else if (/chrome|crios|crmo/i.test(ua)) {
result = {
name: 'Chrome'
, chrome: t
, version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
}
}
else if (android) {
result = {
name: 'Android'
, version: versionIdentifier
}
}
else if (/safari|applewebkit/i.test(ua)) {
result = { result = {
name: 'Safari' name: 'Safari'
, safari: t , safari: t
, version: versionIdentifier }
if (versionIdentifier) {
result.version = versionIdentifier
}
}
else if (iosdevice) {
result = {
name : iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'
}
// WTF: version is not part of user agent in web apps
if (versionIdentifier) {
result.version = versionIdentifier
} }
} }
else if(/googlebot/i.test(ua)) { else if(/googlebot/i.test(ua)) {
@ -229,8 +274,13 @@
// set webkit or gecko flag for browsers based on these engines // set webkit or gecko flag for browsers based on these engines
if (!result.msedge && /(apple)?webkit/i.test(ua)) { if (!result.msedge && /(apple)?webkit/i.test(ua)) {
if (/(apple)?webkit\/537\.36/i.test(ua)) {
result.name = result.name || "Blink"
result.blink = t
} else {
result.name = result.name || "Webkit" result.name = result.name || "Webkit"
result.webkit = t result.webkit = t
}
if (!result.version && versionIdentifier) { if (!result.version && versionIdentifier) {
result.version = versionIdentifier result.version = versionIdentifier
} }
@ -246,10 +296,12 @@
} else if (iosdevice) { } else if (iosdevice) {
result[iosdevice] = t result[iosdevice] = t
result.ios = t result.ios = t
} else if (windows) {
result.windows = t
} else if (mac) { } else if (mac) {
result.mac = t result.mac = t
} else if (xbox) {
result.xbox = t
} else if (windows) {
result.windows = t
} else if (linux) { } else if (linux) {
result.linux = t result.linux = t
} }
@ -278,9 +330,24 @@
// device type extraction // device type extraction
var osMajorVersion = osVersion.split('.')[0]; var osMajorVersion = osVersion.split('.')[0];
if (tablet || nexusTablet || iosdevice == 'ipad' || (android && (osMajorVersion == 3 || (osMajorVersion == 4 && !mobile))) || result.silk) { if (
tablet
|| nexusTablet
|| iosdevice == 'ipad'
|| (android && (osMajorVersion == 3 || (osMajorVersion >= 4 && !mobile)))
|| result.silk
) {
result.tablet = t result.tablet = t
} else if (mobile || iosdevice == 'iphone' || iosdevice == 'ipod' || android || nexusMobile || result.blackberry || result.webos || result.bada) { } else if (
mobile
|| iosdevice == 'iphone'
|| iosdevice == 'ipod'
|| android
|| nexusMobile
|| result.blackberry
|| result.webos
|| result.bada
) {
result.mobile = t result.mobile = t
} }

View File

@ -13,7 +13,7 @@ module.exports.useragents = {
, osversion: '5.1.1' , osversion: '5.1.1'
, tablet: true , tablet: true
, version: '47.0' , version: '47.0'
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36': { , 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36': {
@ -22,7 +22,7 @@ module.exports.useragents = {
, osversion: '4.4.2' , osversion: '4.4.2'
, tablet: true , tablet: true
, version: '32.0' , version: '32.0'
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Linux; Android 4.3; Galaxy Nexus Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36': { , 'Mozilla/5.0 (Linux; Android 4.3; Galaxy Nexus Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36': {
@ -31,7 +31,7 @@ module.exports.useragents = {
, osversion: '4.3' , osversion: '4.3'
, mobile: true , mobile: true
, version: '32.0' , version: '32.0'
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Linux; Android 4.1; Galaxy Nexus Build/JRN84D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19': { , 'Mozilla/5.0 (Linux; Android 4.1; Galaxy Nexus Build/JRN84D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19': {
@ -85,14 +85,14 @@ module.exports.useragents = {
chrome: true chrome: true
, version: '30.0' , version: '30.0'
, windows: true , windows: true
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36': { , 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36': {
chrome: true chrome: true
, version: '29.0' , version: '29.0'
, windows: true , windows: true
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36': { , 'Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36': {
@ -100,21 +100,21 @@ module.exports.useragents = {
, chromeBook: true , chromeBook: true
, version: '29.0' , version: '29.0'
, chromeos: true , chromeos: true
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36': { , 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36': {
chrome: true chrome: true
, version: '29.0' , version: '29.0'
, windows: true , windows: true
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36': { , 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36': {
chrome: true chrome: true
, version: '28.0' , version: '28.0'
, windows: true , windows: true
, webkit: true , blink: true
, a: true , a: true
} }
, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.57 Safari/534.24': { , 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.57 Safari/534.24': {
@ -131,6 +131,34 @@ module.exports.useragents = {
, webkit: true , webkit: true
, c: true , c: true
} }
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/50.0.2661.95 Mobile/13E238 Safari/601.1.46': {
chrome: true
, version: '50.0'
, osversion: '9.3.1'
, webkit: true
, ios: true
, iphone: true
, mobile: true
, a: true
}
, 'Mozilla/5.0 (Linux; Android 5.0.2; SM-T705 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Safari/537.36': {
chrome: true
, android: true
, version: '49.0'
, osversion: '5.0.2'
, blink: true
, a: true
, tablet: true
}
, 'Mozilla/5.0 (Linux; Android 6.0.99; Build/NPC91K) AppleWebKit/537.36(KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36': {
chrome: true
, android: true
, tablet: true
, osversion: '6.0.99'
, version: '50.0'
, blink: true
, a: true
}
} }
, 'Amazon Silk': { , 'Amazon Silk': {
'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true': { 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true': {
@ -175,7 +203,7 @@ module.exports.useragents = {
, Opera: { , Opera: {
'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 OPR/19.0.1340.69721': { 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 OPR/19.0.1340.69721': {
opera: true opera: true
, webkit: true , blink: true
, android: true , android: true
, osversion: '4.4.2' , osversion: '4.4.2'
, tablet: true , tablet: true
@ -184,7 +212,7 @@ module.exports.useragents = {
} }
, 'Mozilla/5.0 (Linux; Android 4.3; Galaxy Nexus Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Mobile Safari/537.36 OPR/19.0.1340.69721': { , 'Mozilla/5.0 (Linux; Android 4.3; Galaxy Nexus Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Mobile Safari/537.36 OPR/19.0.1340.69721': {
opera: true opera: true
, webkit: true , blink: true
, android: true , android: true
, osversion: '4.3' , osversion: '4.3'
, mobile: true , mobile: true
@ -194,7 +222,7 @@ module.exports.useragents = {
, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100': { , 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100': {
opera: true opera: true
, windows: true , windows: true
, webkit: true , blink: true
, version: '15.0' , version: '15.0'
, a: true , a: true
} }
@ -281,10 +309,22 @@ module.exports.useragents = {
, c: true , c: true
} }
} }
, 'Opera Coast': {
'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Coast/5.02.99991 Mobile/13E238 Safari/7534.48.3': {
coast: true
, version: '5.02'
, osversion: '9.3.1'
, iphone: true
, ios: true
, mobile: true
, a: true
, webkit: true
}
}
, 'Yandex Browser': { , 'Yandex Browser': {
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3420 (beta) Yowser/2.0 Safari/537.36': { 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3420 (beta) Yowser/2.0 Safari/537.36': {
yandexbrowser: true yandexbrowser: true
, webkit: true , blink: true
, version: '15.4' , version: '15.4'
, mac: true , mac: true
, a: true , a: true
@ -295,7 +335,7 @@ module.exports.useragents = {
, osversion: '5.1.1' , osversion: '5.1.1'
, mobile: true , mobile: true
, version: '15.4' , version: '15.4'
, webkit: true , blink: true
, a: true , a: true
} }
} }
@ -349,6 +389,167 @@ module.exports.useragents = {
, webkit: true , webkit: true
, c: true , c: true
} }
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a': {
ios: true
, osversion: '7.0.4'
, iphone: true
, mobile: true
, webkit: true
, safari: true
, a: true
}
, 'Mozilla/5.0 (iPhone Simulator; 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': {
ios: true
, osversion: '4.3.2'
, version: '5.0'
, iphone: true
, mobile: true
, safari: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3': {
ios: true
, version: '3.0'
, iphone: true
, mobile: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B5097d Safari/6531.22.7': {
ios: true
, osversion: '4.1'
, version: '4.0'
, iphone: true
, mobile: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_2; en-gb) AppleWebKit/526+ (KHTML, like Gecko) Version/3.1 iPhone': {
ios: true
, version: '3.1'
, iphone: true
, mobile: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_0 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13A344 Safari/601.1': {
ios: true
, osversion: '9.0'
, version: '9.0'
, iphone: true
, mobile: true
, webkit: true
, safari: true
, a: true
}
, 'Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53': {
ios: true
, osversion: '7.0.4'
, name: 'Safari'
, version: '7.0'
, ipad: true
, tablet: true
, webkit: true
, safari: true
, a: true
}
, 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25': {
ios: true
, osversion: '6.0'
, name: 'Safari'
, version: '6.0'
, ipad: true
, tablet: true
, webkit: true
, safari: true
, a: true
}
, 'Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3': {
ios: true
, osversion: '5.1'
, name: 'Safari'
, version: '5.1'
, ipad: true
, tablet: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPad; U; CPU 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': {
ios: true
, osversion: '4.3.2'
, name: 'Safari'
, version: '5.0'
, ipad: true
, tablet: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B360 Safari/531.21.10': {
ios: true
, osversion: '3.2'
, name: 'Safari'
, version: '4.0'
, ipad: true
, tablet: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53': {
ios: true
, osversion: '7.0.3'
, version: '7.0'
, ipod: true
, mobile: true
, webkit: true
, safari: true
, a: true
}
, 'Mozilla/5.0 (iPod; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3': {
ios: true
, osversion: '5.1'
, version: '5.1'
, ipod: true
, mobile: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5': {
ios: true
, osversion: '4.3.3'
, version: '5.0'
, ipod: true
, mobile: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3': {
ios: true
, version: '3.0'
, ipod: true
, mobile: true
, webkit: true
, safari: true
, c: true
}
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E238 Safari/601.1': {
ios: true
, iphone: true
, safari: true
, version: '9.0'
, mobile: true
, osversion: '9.3.1'
, a: true
, webkit: true
}
} }
, 'Internet Explorer': { , 'Internet Explorer': {
'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; MAARJS; rv:11.0) like Gecko': { 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; MAARJS; rv:11.0) like Gecko': {
@ -423,6 +624,12 @@ module.exports.useragents = {
, windows: true , windows: true
, c: true , c: true
} }
, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Xbox; Xbox One)': {
xbox: true
, msie: true
, version: '10.0'
, a: true
}
} }
, 'Microsoft Edge': { , 'Microsoft Edge': {
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0': { 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0': {
@ -564,6 +771,16 @@ module.exports.useragents = {
, linux: true , linux: true
, c: true , c: true
} }
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) FxiOS/3.0 Mobile/13E238 Safari/601.1.46': {
firefox: true
, version: '3.0'
, osversion: '9.3.1'
, ios: true
, iphone: true
, mobile: true
, a: true
, webkit: true
}
} }
, SeaMonkey: { , SeaMonkey: {
'Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1': { 'Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1': {
@ -588,148 +805,6 @@ module.exports.useragents = {
, x: true , x: true
} }
} }
, iPhone: {
'Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a': {
ios: true
, osversion: '7.0.4'
, iphone: true
, mobile: true
, webkit: true
, a: true
}
, 'Mozilla/5.0 (iPhone Simulator; 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': {
ios: true
, osversion: '4.3.2'
, version: '5.0'
, iphone: true
, mobile: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3': {
ios: true
, version: '3.0'
, iphone: true
, mobile: true
, webkit: true
, x: true
}
, 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B5097d Safari/6531.22.7': {
ios: true
, osversion: '4.1'
, version: '4.0'
, iphone: true
, mobile: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_2; en-gb) AppleWebKit/526+ (KHTML, like Gecko) Version/3.1 iPhone': {
ios: true
, version: '3.1'
, iphone: true
, mobile: true
, webkit: true
, x: true
}
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_0 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13A344 Safari/601.1': {
ios: true
, osversion: '9.0'
, version: '9.0'
, iphone: true
, mobile: true
, webkit: true
, a: true
}
}
, iPad: {
'Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53': {
ios: true
, osversion: '7.0.4'
, name: 'iPad'
, version: '7.0'
, ipad: true
, tablet: true
, webkit: true
, a: true
}
, 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25': {
ios: true
, osversion: '6.0'
, name: 'iPad'
, version: '6.0'
, ipad: true
, tablet: true
, webkit: true
, a: true
}
, 'Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3': {
ios: true
, osversion: '5.1'
, name: 'iPad'
, version: '5.1'
, ipad: true
, tablet: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (iPad; U; CPU 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': {
ios: true
, osversion: '4.3.2'
, name: 'iPad'
, version: '5.0'
, ipad: true
, tablet: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B360 Safari/531.21.10': {
ios: true
, osversion: '3.2'
, name: 'iPad'
, version: '4.0'
, ipad: true
, tablet: true
, webkit: true
, c: true
}
}
, iPod: {
'Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53': {
ios: true
, osversion: '7.0.3'
, version: '7.0'
, ipod: true
, mobile: true
, webkit: true
, a: true
}
, 'Mozilla/5.0 (iPod; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3': {
ios: true
, osversion: '5.1'
, version: '5.1'
, ipod: true
, mobile: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5': {
ios: true
, osversion: '4.3.3'
, version: '5.0'
, ipod: true
, mobile: true
, webkit: true
, c: true
}
, 'Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3': {
ios: true
, version: '3.0'
, ipod: true
, mobile: true
, webkit: true
, x: true
}
}
, BlackBerry: { , BlackBerry: {
'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.1.0.4633 Mobile Safari/537.10+': { 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.1.0.4633 Mobile Safari/537.10+': {
blackberry: true blackberry: true
@ -1044,14 +1119,14 @@ module.exports.useragents = {
vivaldi: true vivaldi: true
, version: '1.0' , version: '1.0'
, mac: true , mac: true
, webkit: true , blink: true
, a: true , a: true
}, },
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36 Vivaldi/1.0.303.52': { 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36 Vivaldi/1.0.303.52': {
vivaldi: true vivaldi: true
, version: '1.0' , version: '1.0'
, windows: true , windows: true
, webkit: true , blink: true
, a: true , a: true
} }
} }
@ -1089,6 +1164,16 @@ module.exports.useragents = {
webkit: true, webkit: true,
x: true x: true
} }
, 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X; en-US) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/13E238 UCBrowser/10.7.0.782 Mobile': {
iphone: true
, ios: true
, mobile: true
, osversion: '9.3.1'
, version: '10.7.0.782'
, webkit: true
, a: true
, ucbrowser: true
}
} }
, "QupZilla": { , "QupZilla": {
'Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) QupZilla/1.8.2 Safari/538.1': { 'Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) QupZilla/1.8.2 Safari/538.1': {
@ -1106,4 +1191,51 @@ module.exports.useragents = {
x: true x: true
} }
} }
, 'Maxthon': {
'Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E238 Safari/601.1 MXiOS/4.8.6.59': {
mobile: true
, ios: true
, iphone: true
, version: '4.8.6.59'
, osversion: '9.3.1'
, webkit: true
, maxthon: true
, a: true
}
}
, 'Epiphany': {
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) Version/8.0 Safari/602.1 Debian/buildd-unstable (3.18.5-1) Epiphany/3.18.5': {
epiphany: true
, x: true
, webkit: true
, version: '3.18.5'
, linux: true
}
}
, 'Puffin': {
'Mozilla/5.0 (X11; U; Linux x86_64; zh-TW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36 Puffin/3.7.0IT': {
linux: true
, blink: true
, puffin: true
, version: '3.7'
, x: true
}
}, 'Sleipnir': {
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Sleipnir/6.1.4': {
sleipnir: true
, blink: true
, windows: true
, x: true
, version: '6.1.4'
}
}
, 'K-Meleon': {
'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20140105 Firefox/24.0 K-Meleon/74.0': {
windows: true
, kMeleon: true
, version: '74.0'
, gecko: true
, x: true
}
}
} }