mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-11-16 15:11:50 +03:00
Merge branch 'master' into fix/util-extend
* master: Meteor fixes fix it for opera mini 8 above on iphone Add name to UA-Parser Fix image #150 Increment build version: 0.7.10 Check for tablet first Fix #153 mistaken Search phrase for Arch OS Seems to fix the issue for specific UA found in #159 UAParser is exposed globally to the window object. It can be used directly. Fix detection of Firefox on iOS. Added hasOwnProperty check Generalize the check for an unidentifiable mobile or tablet to correctly categorize unidentifiable Android smartphones as "mobile". travis update: node_js stable, cache node_modules, sudo false Detect Nexus 6 as Motorola only. Add Playstation 4 support. Added Nexus 6 detection Added DEVICE regular expressions for "Samsung galaxy S6" and "Samsung Galaxy S6 Edge" devices + test cases Adding PhantomJS (http://phantomjs.org/) Add Sleipnir
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* UAParser.js v0.7.9
|
||||
* UAParser.js v0.7.10
|
||||
* Lightweight JavaScript-based User-Agent string parser
|
||||
* https://github.com/faisalman/ua-parser-js
|
||||
*
|
||||
@@ -16,7 +16,7 @@
|
||||
/////////////
|
||||
|
||||
|
||||
var LIBVERSION = '0.7.9',
|
||||
var LIBVERSION = '0.7.10',
|
||||
EMPTY = '',
|
||||
UNKNOWN = '?',
|
||||
FUNC_TYPE = 'function',
|
||||
@@ -92,11 +92,13 @@
|
||||
if (typeof result === UNDEF_TYPE) {
|
||||
result = {};
|
||||
for (p in props) {
|
||||
q = props[p];
|
||||
if (typeof q === OBJ_TYPE) {
|
||||
result[q[0]] = undefined;
|
||||
} else {
|
||||
result[q] = undefined;
|
||||
if (props.hasOwnProperty(p)){
|
||||
q = props[p];
|
||||
if (typeof q === OBJ_TYPE) {
|
||||
result[q[0]] = undefined;
|
||||
} else {
|
||||
result[q] = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -234,9 +236,11 @@
|
||||
/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, // Opera Mobi/Tablet
|
||||
/(opera).+version\/([\w\.]+)/i, // Opera > 9.80
|
||||
/(opera)[\/\s]+([\w\.]+)/i // Opera < 9.80
|
||||
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(OPiOS)[\/\s]+([\w\.]+)/i // Opera mini on iphone >= 8.0
|
||||
], [[NAME, 'Opera Mini'], VERSION], [
|
||||
|
||||
/\s(opr)\/([\w\.]+)/i // Opera Webkit
|
||||
], [[NAME, 'Opera'], VERSION], [
|
||||
|
||||
@@ -252,8 +256,8 @@
|
||||
|
||||
// Webkit/KHTML based
|
||||
/(rekonq)\/([\w\.]+)*/i, // Rekonq
|
||||
/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium)\/([\w\.-]+)/i
|
||||
// Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium
|
||||
/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs)\/([\w\.-]+)/i
|
||||
// Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS
|
||||
], [NAME, VERSION], [
|
||||
|
||||
/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i // IE11
|
||||
@@ -295,6 +299,9 @@
|
||||
/FBAV\/([\w\.]+);/i // Facebook App for iOS
|
||||
], [VERSION, [NAME, 'Facebook']], [
|
||||
|
||||
/fxios\/([\w\.-]+)/i // Firefox for iOS
|
||||
], [VERSION, [NAME, 'Firefox']], [
|
||||
|
||||
/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i // Mobile Safari
|
||||
], [VERSION, [NAME, 'Mobile Safari']], [
|
||||
|
||||
@@ -311,8 +318,6 @@
|
||||
// Gecko based
|
||||
/(navigator|netscape)\/([\w\.-]+)/i // Netscape
|
||||
], [[NAME, 'Netscape'], VERSION], [
|
||||
/fxios\/([\w\.-]+)/i // Firefox for iOS
|
||||
], [VERSION, [NAME, 'Firefox']], [
|
||||
/(swiftfox)/i, // Swiftfox
|
||||
/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,
|
||||
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
|
||||
@@ -321,8 +326,8 @@
|
||||
/(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, // Mozilla
|
||||
|
||||
// Other
|
||||
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf)[\/\s]?([\w\.]+)/i,
|
||||
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf
|
||||
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i,
|
||||
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir
|
||||
/(links)\s\(([\w\.]+)/i, // Links
|
||||
/(gobrowser)\/?([\w\.]+)*/i, // GoBrowser
|
||||
/(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser
|
||||
@@ -520,7 +525,7 @@
|
||||
/android.+;\s(shield)\sbuild/i // Nvidia
|
||||
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [
|
||||
|
||||
/(playstation\s[3portablevi]+)/i // Playstation
|
||||
/(playstation\s[34portablevi]+)/i // Playstation
|
||||
], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [
|
||||
|
||||
/(sprint\s(\w+))/i // Sprint Phones
|
||||
@@ -546,7 +551,8 @@
|
||||
// Motorola
|
||||
/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?)[\w\s]+build\//i,
|
||||
/mot[\s-]?(\w+)*/i,
|
||||
/(XT\d{3,4}) build\//i
|
||||
/(XT\d{3,4}) build\//i,
|
||||
/(nexus\s[6])/i
|
||||
], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [
|
||||
/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i
|
||||
], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [
|
||||
@@ -598,7 +604,8 @@
|
||||
/android.+(mi[\s\-_]*(?:one|one[\s_]plus)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi
|
||||
], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [
|
||||
|
||||
/(mobile|tablet);.+rv\:.+gecko\//i // Unidentifiable
|
||||
/\s(tablet)[;\/\s]/i, // Unidentifiable Tablet
|
||||
/\s(mobile)[;\/\s]/i // Unidentifiable Mobile
|
||||
], [[TYPE, util.lowerize], VENDOR, MODEL]
|
||||
|
||||
/*//////////////////////////
|
||||
@@ -707,12 +714,12 @@
|
||||
], [[NAME, 'Firefox OS'], VERSION], [
|
||||
|
||||
// Console
|
||||
/(nintendo|playstation)\s([wids3portablevu]+)/i, // Nintendo/Playstation
|
||||
/(nintendo|playstation)\s([wids34portablevu]+)/i, // Nintendo/Playstation
|
||||
|
||||
// GNU/Linux based
|
||||
/(mint)[\/\s\(]?(\w+)*/i, // Mint
|
||||
/(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux
|
||||
/(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i,
|
||||
/(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?([\w\.-]+)*/i,
|
||||
// Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware
|
||||
// Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus
|
||||
/(hurd|linux)\s?([\w\.]+)*/i, // Hurd/Linux
|
||||
@@ -730,7 +737,7 @@
|
||||
/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly
|
||||
], [NAME, VERSION],[
|
||||
|
||||
/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i // iOS
|
||||
/(ip[honead]+)(?:.*os\s([\w]+)*\slike\smac|;\sopera)/i // iOS
|
||||
], [[NAME, 'iOS'], [VERSION, /_/g, '.']], [
|
||||
|
||||
/(mac\sos\sx)\s?([\w\s\.]+\w)*/i,
|
||||
@@ -845,7 +852,7 @@
|
||||
} else {
|
||||
// requirejs env (optional)
|
||||
if (typeof(define) === FUNC_TYPE && define.amd) {
|
||||
define(function () {
|
||||
define("ua-parser-js", [], function () {
|
||||
return UAParser;
|
||||
});
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user