From a84fb2f93a3de8bb4a757738a87d282e6fa8d871 Mon Sep 17 00:00:00 2001 From: Faisalman Date: Sun, 29 Jul 2012 04:14:52 +0700 Subject: [PATCH 1/5] npm revised package.json --- package.json | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index b676e7b..5f0d4db 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,10 @@ { - "title" : "UA-Parser.js", - "name" : "ua-parser-js", - "version" : "0.3.0", - "author" : { - "name" : "Faisal Salman", - "email" : "fyzlman@gmail.com", - "url" : "http://faisalman.com" - }, - "description" : "Lightweight JavaScript-based user-agent parser", - "keywords" : [ + "title": "UA-Parser.js", + "name": "ua-parser-js", + "version": "0.3.0", + "author": "Faisal Salman (http://faisalman.com)", + "description": "Lightweight JavaScript-based user-agent parser", + "keywords": [ "user-agent", "parser", "browser", @@ -16,28 +12,35 @@ "os", "device" ], - "homepage" : "http://faisalman.github.com/ua-parser-js", + "homepage": "http://github.com/faisalman/ua-parser-js", "contributors": [ - { - "name" : "Faisal Salman", - "email" : "fyzlman@gmail.com" - } + "Faisal Salman " ], - "main" : "ua-parser.js", + "main": "ua-parser", "repositories": [ { - "type" : "git", - "url" : "https://github.com/faisalman/ua-parser-js.git" + "type": "git", + "url": "https://github.com/faisalman/ua-parser-js.git" } ], - "licenses" : [ + "licenses": [ { - "type" : "GPLv2", - "url" : "http://www.gnu.org/licenses/gpl-2.0.html" + "type": "GPLv2", + "url": "http://www.gnu.org/licenses/gpl-2.0.html" }, { - "type" : "MIT", - "url" : "http://www.opensource.org/licenses/mit-license.php" + "type": "MIT", + "url": "http://www.opensource.org/licenses/mit-license.php" } - ] + ], + "engines": { + "node": "*" + }, + "directories": { + "lib": "." + }, + "files": [ + "" + ], + "repository": "git://github.com/faisalman/ua-parser-js.git" } From 9a9844180da8a1efbd3199af72bc60da0ff71e4f Mon Sep 17 00:00:00 2001 From: Faisalman Date: Sun, 29 Jul 2012 04:20:25 +0700 Subject: [PATCH 2/5] Remove duplicated --- readme.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/readme.md b/readme.md index 35f9d44..c452d51 100644 --- a/readme.md +++ b/readme.md @@ -39,10 +39,6 @@ Get detailed type and version of web browser, layout engine, operating system, a version: "", major: "" }, - device: { - name: "", - version: "" - }, engine: { name: "", version: "" @@ -79,11 +75,11 @@ var parser = require('ua-parser'); var ua1 = 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11'; var ua2 = 'Midori/0.2 (X11; Linux; U; cs-cz) WebKit/531.2+'; -parser.setUA(ua1).getDevice().name; // prints "PlayBook" -parser.getOS() // prints {name: "RIM Tablet OS", version: "1.0.0"} -parser.getOS(ua2) // prints {name: "Linux", version: undefined} -parser.getOS() // prints {name: "RIM Tablet OS", version: "1.0.0"} -parser.getEngine().name; // prints "AppleWebKit" +parser.setUA(ua1).getDevice().name; // "PlayBook" +parser.getOS() // {name: "RIM Tablet OS", version: "1.0.0"} +parser.getOS(ua2) // {name: "Linux", version: undefined} +parser.getOS() // {name: "RIM Tablet OS", version: "1.0.0"} +parser.getEngine().name; // "AppleWebKit" ``` ## License From a243a6a7c39f351edb3e75f8c620b94245bb38e0 Mon Sep 17 00:00:00 2001 From: Faisalman Date: Mon, 30 Jul 2012 07:30:43 +0700 Subject: [PATCH 3/5] Make undefined undefined & Add Tizen, Haiku, MeeGo, Nokia --- ua-parser.js | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/ua-parser.js b/ua-parser.js index 618a1b9..019d50e 100644 --- a/ua-parser.js +++ b/ua-parser.js @@ -6,9 +6,9 @@ // Licensed under GPLv2 & MIT (function () { - function UAParser (uastring) { + function UAParser (undefined) { - var ua = uastring || typeof window !== 'undefined' ? window.navigator.userAgent : ""; + var ua = typeof window !== 'undefined' ? window.navigator.userAgent : ""; // regexp mapper var regxMap = function (ua) { @@ -97,7 +97,8 @@ // Webkit/KHTML based /(chromium|flock|rockmelt|midori|epiphany)\/((\d+)?[\w\.]+)/i, // Chromium/Flock/RockMelt/Midori/Epiphany - /(chrome|omniweb|arora|dolfin)\/((\d+)?[\w\.]+)/i, // Chrome/OmniWeb/Arora/Dolphin + /(chrome|omniweb|arora|dolfin|[tizenaok]{5}\s?browser)\/((\d+)?[\w\.]+)/i, + // Chrome/OmniWeb/Arora/Dolphin/Tizen/Nokia ], ['name', 'version', 'major'], [ /(?:android.+crmo|crios)\/((\d+)?[\w\.]+)/i, // Chrome for Android/iOS ], [['name', 'Chrome'], 'version', 'major'], [ @@ -105,7 +106,8 @@ /(applewebkit|khtml)\/((\d+)?[\w\.]+)/i, // Gecko based - /(iceweasel|camino|fennec|maemo|minimo)[\/\s]?((\d+)?[\w\.\+]+)/i, // Iceweasel/Camino/Fennec/Maemo/Minimo + /(iceweasel|camino|fennec|maemo\sbrowser|minimo)[\/\s]?((\d+)?[\w\.\+]+)/i, + // Iceweasel/Camino/Fennec/Maemo/Minimo /(firefox|seamonkey|netscape|navigator|k-meleon|icecat|iceape)\/((\d+)?[\w\.]+)/i, // Firefox/SeaMonkey/Netscape/K-Meleon/IceCat/IceApe /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, // Mozilla @@ -138,8 +140,9 @@ // Mobile/Embedded OS /(blackberry).+version\/([\w\.]+)/i, // Blackberry - /(android|symbianos|symbos|webos|palm\os|qnx|bada|rim\stablet\sos)[\/\s-]?([\w\.]+)*/i, - // Android/Symbian/WebOS/Palm/QNX/Bada/RIM + /(tizen)\/([\w\.]+)/i, // Tizen + /(android|symbianos|symbos|webos|palm\os|qnx|bada|rim\stablet\sos|meego)[\/\s-]?([\w\.]+)*/i, + // Android/Symbian/WebOS/Palm/QNX/Bada/RIM/MeeGo /(nintendo|playstation)\s([wids3portable]+)/i, // Nintendo/Playstation // GNU/Linux based @@ -168,7 +171,8 @@ ], ['name', ['version', /_/g, '.']], [ // Other - /(macintosh|unix|minix|beos)[\/\s]?()*/i + /(haiku)\s(\w+)/i, // Haiku + /(macintosh|unix|minix|beos)[\/\s]?()*/i // UNIX/Minix/BeOS ], ['name', 'version']); }; @@ -178,8 +182,8 @@ /\((ip[honead]+|playbook);/i, // iPod/iPhone/iPad/PlayBook /(blackberry)[\s-]?(\w+)/i, // BlackBerry - /(blackberry|benq|nokia|palm(?=\-)|sonyericsson|acer|asus|dell|nexus|zte)[\s_-]?([\w-]+)*/i, - // BenQ/Nokia/Palm/Sony-Ericsson/Acer/Asus/Dell/Nexus/ZTE + /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|nexus|zte)[\s_-]?([\w-]+)*/i, + // BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Nexus/ZTE /(hp)\s([\w\s]+)/i, // HP iPAQ /(hp).+(touchpad)/i, // HP TouchPad /(kindle)\/([\w\.]+)/i, // Kindle @@ -204,7 +208,11 @@ ], [['name', 'Asus'], 'version'], [ /sie-(\w+)*/i // Siemens - ], [['name', 'Siemens'], 'version']); + ], [['name', 'Siemens'], 'version'], [ + + /(?=maemo|nokia).*(n900|lumia\s\d+)/i, // Nokia + /nokia[\s_-]?([\w-]+)*/i + ], [['name', 'Nokia'], 'version']); }; this.setUA = function (uastring) { From d3668b9c2f979f67b86e995915f2bc491e5863d8 Mon Sep 17 00:00:00 2001 From: Faisalman Date: Mon, 30 Jul 2012 07:37:20 +0700 Subject: [PATCH 4/5] Update versioning manually --- package.json | 4 ++-- readme.md | 8 ++++---- ua-parser.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 5f0d4db..f801f72 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "title": "UA-Parser.js", "name": "ua-parser-js", - "version": "0.3.0", + "version": "0.3.1", "author": "Faisal Salman (http://faisalman.com)", "description": "Lightweight JavaScript-based user-agent parser", "keywords": [ - "user-agent", + "user agent", "parser", "browser", "engine", diff --git a/readme.md b/readme.md index c452d51..22203b1 100644 --- a/readme.md +++ b/readme.md @@ -1,11 +1,11 @@ # UA-Parser.js -JavaScript-based user-agent parser +Lightweight JavaScript-based user-agent parser * Author : Faisalman <> * Home : http://faisalman.github.com/ua-parser-js -* Source : https://github.com/faisalman/ua-parser-js -* License : GPLv2 & MIT +* Source : https://github.com/faisalman/ua-parser-js +* License : GPLv2 & MIT ## Features @@ -63,7 +63,7 @@ Get detailed type and version of web browser, layout engine, operating system, a console.log(UAParser.result.os); // {name: "Ubuntu", version: "11.10"} // let's take another test please - UAParser.setUA("Mozilla/5.0 (compatible; Konqueror/4.1; OpenBSD) KHTML/4.1.4 (like Gecko)").getOS().name; // prints "OpenBSD" + console.log(UAParser.setUA("Mozilla/5.0 (compatible; Konqueror/4.1; OpenBSD) KHTML/4.1.4 (like Gecko)").getOS().name); // "OpenBSD" ``` diff --git a/ua-parser.js b/ua-parser.js index 019d50e..66db570 100644 --- a/ua-parser.js +++ b/ua-parser.js @@ -1,4 +1,4 @@ -// UA-Parser.js v0.3.0 +// UA-Parser.js v0.3.1 // Lightweight JavaScript-based user-agent parser // https://github.com/faisalman/ua-parser-js // From 1f21d35ab8b7fe160a146ac59865cd1e637ea95e Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Sat, 4 Aug 2012 05:14:17 +0700 Subject: [PATCH 5/5] Restore UAParser --- package.json | 2 +- readme.md | 22 ++++++++++++---------- ua-parser.js | 12 +++++------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index f801f72..3f19442 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "ua-parser-js", "version": "0.3.1", "author": "Faisal Salman (http://faisalman.com)", - "description": "Lightweight JavaScript-based user-agent parser", + "description": "Light-weight JavaScript-based all-in-one user-agent parser", "keywords": [ "user agent", "parser", diff --git a/readme.md b/readme.md index 22203b1..0e70a5a 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # UA-Parser.js -Lightweight JavaScript-based user-agent parser +Light-weight JavaScript-based all-in-one user-agent parser * Author : Faisalman <> * Home : http://faisalman.github.com/ua-parser-js @@ -29,8 +29,10 @@ Get detailed type and version of web browser, layout engine, operating system, a ``` ## Using node.js ```js -var parser = require('ua-parser'); - +var UAParser = require('ua-parser'); +var parser = new UAParser(); var ua1 = 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11'; var ua2 = 'Midori/0.2 (X11; Linux; U; cs-cz) WebKit/531.2+'; @@ -94,4 +96,4 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU General Public License for more details. \ No newline at end of file diff --git a/ua-parser.js b/ua-parser.js index 66db570..4b77d1b 100644 --- a/ua-parser.js +++ b/ua-parser.js @@ -1,14 +1,14 @@ // UA-Parser.js v0.3.1 -// Lightweight JavaScript-based user-agent parser +// Light-weight JavaScript-based all-in-one user-agent parser // https://github.com/faisalman/ua-parser-js // // Copyright © 2012 Faisalman // Licensed under GPLv2 & MIT -(function () { - function UAParser (undefined) { +(function (undefined) { + var parser = function UAParser (uastring) { - var ua = typeof window !== 'undefined' ? window.navigator.userAgent : ""; + var ua = uastring || typeof window !== 'undefined' ? window.navigator.userAgent : ""; // regexp mapper var regxMap = function (ua) { @@ -228,9 +228,7 @@ this.setUA(ua); }; - - var parser = new UAParser(); - + // check whether script is running inside node.js export as module if (typeof exports !== 'undefined' && this.toString() !== '[object DOMWindow]') { if (typeof module !== 'undefined' && module.exports) {