aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ua-parser-js/src
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/ua-parser-js/src')
-rwxr-xr-x[-rw-r--r--]node_modules/ua-parser-js/src/ua-parser.js77
1 files changed, 58 insertions, 19 deletions
diff --git a/node_modules/ua-parser-js/src/ua-parser.js b/node_modules/ua-parser-js/src/ua-parser.js
index 5e9b11a54..64e64540f 100644..100755
--- a/node_modules/ua-parser-js/src/ua-parser.js
+++ b/node_modules/ua-parser-js/src/ua-parser.js
@@ -1,5 +1,5 @@
/**
- * UAParser.js v0.7.14
+ * UAParser.js v0.7.17
* Lightweight JavaScript-based User-Agent string parser
* https://github.com/faisalman/ua-parser-js
*
@@ -16,7 +16,7 @@
/////////////
- var LIBVERSION = '0.7.14',
+ var LIBVERSION = '0.7.17',
EMPTY = '',
UNKNOWN = '?',
FUNC_TYPE = 'function',
@@ -138,7 +138,7 @@
}
i += 2;
}
- //console.log(this);
+ // console.log(this);
//return this;
},
@@ -292,7 +292,7 @@
/;fbav\/([\w\.]+);/i // Facebook App for iOS & Android
], [VERSION, [NAME, 'Facebook']], [
- /(headlesschrome) ([\w\.]+)/i // Chrome Headless
+ /headlesschrome(?:\/([\w\.]+)|\s)/i // Chrome Headless
], [VERSION, [NAME, 'Chrome Headless']], [
/\swv\).+(chrome)\/([\w\.]+)/i // Chrome WebView
@@ -326,6 +326,9 @@
/version\/([\w\.]+).+?(mobile\s?safari|safari)/i // Safari & Safari Mobile
], [VERSION, NAME], [
+ /webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Google Search Appliance on iOS
+ ], [[NAME, 'GSA'], VERSION], [
+
/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Safari < 3.0
], [NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]], [
@@ -649,9 +652,11 @@
/android.+(\w+)\s+build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Hongmi
- /android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w)?)\s+build/i // Xiaomi Mi
+ /android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Mi
+ /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+)?)\s+build/i // Redmi Phones
], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [
-
+ /android.+(mi[\s\-_]*(?:pad)?(?:[\s_]*[\w\s]+)?)\s+build/i // Mi Pad tablets
+ ],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [
/android.+;\s(m[1-5]\snote)\sbuild/i // Meizu Tablet
], [MODEL, [VENDOR, 'Meizu'], [TYPE, TABLET]], [
@@ -853,7 +858,7 @@
], [NAME, VERSION],[
/cfnetwork\/.+darwin/i,
- /ip[honead]+(?:.*os\s([\w]+)*\slike\smac|;\sopera)/i // iOS
+ /ip[honead]+(?:.*os\s([\w]+)\slike\smac|;\sopera)/i // iOS
], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [
/(mac\sos\sx)\s?([\w\s\.]+\w)*/i,
@@ -874,7 +879,7 @@
/////////////////
// Constructor
////////////////
-
+ /*
var Browser = function (name, version) {
this[NAME] = name;
this[VERSION] = version;
@@ -889,7 +894,7 @@
};
var Engine = Browser;
var OS = Browser;
-
+ */
var UAParser = function (uastring, extensions) {
if (typeof uastring === 'object') {
@@ -903,30 +908,35 @@
var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);
var rgxmap = extensions ? util.extend(regexes, extensions) : regexes;
- var browser = new Browser();
- var cpu = new CPU();
- var device = new Device();
- var engine = new Engine();
- var os = new OS();
+ //var browser = new Browser();
+ //var cpu = new CPU();
+ //var device = new Device();
+ //var engine = new Engine();
+ //var os = new OS();
this.getBrowser = function () {
+ var browser = { name: undefined, version: undefined };
mapper.rgx.call(browser, ua, rgxmap.browser);
browser.major = util.major(browser.version); // deprecated
return browser;
};
this.getCPU = function () {
+ var cpu = { architecture: undefined };
mapper.rgx.call(cpu, ua, rgxmap.cpu);
return cpu;
};
this.getDevice = function () {
+ var device = { vendor: undefined, model: undefined, type: undefined };
mapper.rgx.call(device, ua, rgxmap.device);
return device;
};
this.getEngine = function () {
+ var engine = { name: undefined, version: undefined };
mapper.rgx.call(engine, ua, rgxmap.engine);
return engine;
};
this.getOS = function () {
+ var os = { name: undefined, version: undefined };
mapper.rgx.call(os, ua, rgxmap.os);
return os;
};
@@ -945,11 +955,11 @@
};
this.setUA = function (uastring) {
ua = uastring;
- browser = new Browser();
- cpu = new CPU();
- device = new Device();
- engine = new Engine();
- os = new OS();
+ //browser = new Browser();
+ //cpu = new CPU();
+ //device = new Device();
+ //engine = new Engine();
+ //os = new OS();
return this;
};
return this;
@@ -996,6 +1006,35 @@
if (typeof module !== UNDEF_TYPE && module.exports) {
exports = module.exports = UAParser;
}
+ // TODO: test!!!!!!!!
+ /*
+ if (require && require.main === module && process) {
+ // cli
+ var jsonize = function (arr) {
+ var res = [];
+ for (var i in arr) {
+ res.push(new UAParser(arr[i]).getResult());
+ }
+ process.stdout.write(JSON.stringify(res, null, 2) + '\n');
+ };
+ if (process.stdin.isTTY) {
+ // via args
+ jsonize(process.argv.slice(2));
+ } else {
+ // via pipe
+ var str = '';
+ process.stdin.on('readable', function() {
+ var read = process.stdin.read();
+ if (read !== null) {
+ str += read;
+ }
+ });
+ process.stdin.on('end', function () {
+ jsonize(str.replace(/\n$/, '').split('\n'));
+ });
+ }
+ }
+ */
exports.UAParser = UAParser;
} else {
// requirejs env (optional)