diff --git a/.gitignore b/.gitignore index ab50210..154d1f0 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ npm-debug.log Session.vim .netrwhist *~ +.versions ### OSX ### .DS_Store diff --git a/bower.json b/bower.json index b048c0a..7a6368f 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "ua-parser-js", - "version": "0.7.4", + "version": "0.7.5", "authors": [ "Faisal Salman " ], diff --git a/component.json b/component.json index 68dc881..7d133b5 100644 --- a/component.json +++ b/component.json @@ -1,6 +1,6 @@ { "name": "ua-parser-js", - "version": "0.7.4", + "version": "0.7.5", "description": "Lightweight JavaScript-based user-agent string parser", "keywords": ["user-agent", "parser", "browser", "engine", "os", "device", "cpu"], "scripts": ["src/ua-parser.js"], diff --git a/dist/ua-parser.min.js b/dist/ua-parser.min.js index ecedd63..eda2adf 100644 --- a/dist/ua-parser.min.js +++ b/dist/ua-parser.min.js @@ -1,9 +1,9 @@ /** - * UAParser.js v0.7.4 + * UAParser.js v0.7.5 * Lightweight JavaScript-based User-Agent string parser * https://github.com/faisalman/ua-parser-js * - * Copyright © 2012-2014 Faisal Salman + * Copyright © 2012-2015 Faisal Salman * Dual licensed under GPLv2 & MIT */ -(function(window,undefined){"use strict";var LIBVERSION="0.7.4",EMPTY="",UNKNOWN="?",FUNC_TYPE="function",UNDEF_TYPE="undefined",OBJ_TYPE="object",STR_TYPE="string",MAJOR="major",MODEL="model",NAME="name",TYPE="type",VENDOR="vendor",VERSION="version",ARCHITECTURE="architecture",CONSOLE="console",MOBILE="mobile",TABLET="tablet",SMARTTV="smarttv",WEARABLE="wearable",EMBEDDED="embedded";var util={extend:function(regexes,extensions){for(var i in extensions){if("browser cpu device engine os".indexOf(i)!==-1&&extensions[i].length%2===0){regexes[i]=extensions[i].concat(regexes[i])}}return regexes},has:function(str1,str2){if(typeof str1==="string"){return str2.toLowerCase().indexOf(str1.toLowerCase())!==-1}else{return false}},lowerize:function(str){return str.toLowerCase()},major:function(version){return typeof version===STR_TYPE?version.split(".")[0]:undefined}};var mapper={rgx:function(){var result,i=0,j,k,p,q,matches,match,args=arguments;while(i0){if(q.length==2){if(typeof q[1]==FUNC_TYPE){result[q[0]]=q[1].call(this,match)}else{result[q[0]]=q[1]}}else if(q.length==3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){result[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{result[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length==4){result[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{result[q]=match?match:undefined}}}}i+=2}return result},str:function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j0){if(q.length==2){if(typeof q[1]==FUNC_TYPE){result[q[0]]=q[1].call(this,match)}else{result[q[0]]=q[1]}}else if(q.length==3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){result[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{result[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length==4){result[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{result[q]=match?match:undefined}}}}i+=2}return result},str:function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j (http://faisalman.com)", "description": "Lightweight JavaScript-based user-agent string parser", "keywords": [ diff --git a/readme.md b/readme.md index 3100847..8be4d91 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ # UAParser.js -Lightweight JavaScript-based User-Agent string parser. Supports browser & node.js environment. Also available as jQuery/Zepto plugin, Component package, Bower package, & AMD module +Lightweight JavaScript-based User-Agent string parser. Supports browser & node.js environment. Also available as jQuery/Zepto plugin, Component package, Bower package, Meteor package, & AMD module [![Build Status](https://travis-ci.org/faisalman/ua-parser-js.svg?branch=master)](https://travis-ci.org/faisalman/ua-parser-js) @@ -221,6 +221,12 @@ console.log(parser.getResult()); $ bower install ua-parser-js ``` +### Using meteor + +```sh +$ meteor add faisalman:ua-parser-js +``` + ### Using jQuery/Zepto ($.ua) Although written in vanilla js (which means it doesn't depends on jQuery), this library will automatically detect if jQuery/Zepto is present and create `$.ua` object based on browser's user-agent (although in case you need, `window.UAParser` constructor is still present). To get/set user-agent you can use: `$.ua.get()` / `$.ua.set(uastring)`. @@ -259,7 +265,7 @@ Then submit a pull request to https://github.com/faisalman/ua-parser-js under `d Dual licensed under GPLv2 & MIT -Copyright © 2012-2014 Faisal Salman <> +Copyright © 2012-2015 Faisal Salman <> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/src/ua-parser.js b/src/ua-parser.js index 803fb8e..c97136a 100644 --- a/src/ua-parser.js +++ b/src/ua-parser.js @@ -1,9 +1,9 @@ /** - * UAParser.js v0.7.4 + * UAParser.js v0.7.5 * Lightweight JavaScript-based User-Agent string parser * https://github.com/faisalman/ua-parser-js * - * Copyright © 2012-2014 Faisal Salman + * Copyright © 2012-2015 Faisal Salman * Dual licensed under GPLv2 & MIT */ @@ -16,7 +16,7 @@ ///////////// - var LIBVERSION = '0.7.4', + var LIBVERSION = '0.7.5', EMPTY = '', UNKNOWN = '?', FUNC_TYPE = 'function', @@ -734,10 +734,10 @@ //////////////// - var UAParser = function (uastring, extensions) { + var _UAParser = function (uastring, extensions) { - if (!(this instanceof UAParser)) { - return new UAParser(uastring, extensions).getResult(); + if (!(this instanceof _UAParser)) { + return new _UAParser(uastring, extensions).getResult(); } var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); @@ -781,16 +781,16 @@ return this; }; - UAParser.VERSION = LIBVERSION; - UAParser.BROWSER = { + _UAParser.VERSION = LIBVERSION; + _UAParser.BROWSER = { NAME : NAME, MAJOR : MAJOR, VERSION : VERSION }; - UAParser.CPU = { + _UAParser.CPU = { ARCHITECTURE : ARCHITECTURE }; - UAParser.DEVICE = { + _UAParser.DEVICE = { MODEL : MODEL, VENDOR : VENDOR, TYPE : TYPE, @@ -801,11 +801,11 @@ WEARABLE: WEARABLE, EMBEDDED: EMBEDDED }; - UAParser.ENGINE = { + _UAParser.ENGINE = { NAME : NAME, VERSION : VERSION }; - UAParser.OS = { + _UAParser.OS = { NAME : NAME, VERSION : VERSION }; @@ -818,12 +818,17 @@ // check js environment if (typeof(exports) !== UNDEF_TYPE) { + var UAParser = _UAParser; // nodejs env if (typeof(module) !== UNDEF_TYPE && module.exports) { exports = module.exports = UAParser; } exports.UAParser = UAParser; + } else if (typeof(Package) !== UNDEF_TYPE) { + // meteor + UAParser = _UAParser; } else { + var UAParser = _UAParser; // browser env window.UAParser = UAParser; // requirejs env (optional) diff --git a/ua-parser-js.jquery.json b/ua-parser-js.jquery.json index 9ae9a68..46f1b34 100644 --- a/ua-parser-js.jquery.json +++ b/ua-parser-js.jquery.json @@ -1,7 +1,7 @@ { "title": "UAParser.js", "name": "ua-parser-js", - "version": "0.7.4", + "version": "0.7.5", "description": "Lightweight JavaScript-based user-agent string parser", "keywords": [ "user-agent",