From 7cc7910df63d19e7ebc67bb1156437f0559712d7 Mon Sep 17 00:00:00 2001 From: Lars Henrik Mai Date: Sun, 21 Sep 2014 12:25:47 +0200 Subject: add foundation via bower --- .../modernizr/test/js/lib/uaparser.js | 215 +++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 source/bower_components/modernizr/test/js/lib/uaparser.js (limited to 'source/bower_components/modernizr/test/js/lib/uaparser.js') diff --git a/source/bower_components/modernizr/test/js/lib/uaparser.js b/source/bower_components/modernizr/test/js/lib/uaparser.js new file mode 100644 index 0000000..eb70eb9 --- /dev/null +++ b/source/bower_components/modernizr/test/js/lib/uaparser.js @@ -0,0 +1,215 @@ +// uaparser by lindsey simon, +// ported to node by tobie +// https://github.com/tobie/ua-parser/ + +// browserized by paul irish + +(function(exports){ + + exports.uaparse = parse; + + function parse(ua) { + for (var i=0; i < parsers.length; i++) { + var result = parsers[i](ua); + if (result) { return result; } + } + return new UserAgent(); + } + + function UserAgent(family) { + this.family = family || 'Other'; + } + + UserAgent.prototype.toVersionString = function() { + var output = ''; + if (this.major != null) { + output += this.major; + if (this.minor != null) { + output += '.' + this.minor; + if (this.patch != null) { + output += '.' + this.patch; + } + } + } + return output; + }; + + UserAgent.prototype.toString = function() { + var suffix = this.toVersionString(); + if (suffix) { suffix = ' ' + suffix; } + return this.family + suffix; + }; + + + var regexes = [ + {"pattern":"^(Opera)/(\\d+)\\.(\\d+) \\(Nintendo Wii", + "v1_replacement":null, + "family_replacement":"Wii"}, + {"pattern":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)", + "v1_replacement":null, + "family_replacement":"Firefox ($1)"}, + {"pattern":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?", + "v1_replacement":null, + "family_replacement":"Firefox ($1)"}, + {"pattern":"(SeaMonkey|Fennec|Camino)/(\\d+)\\.(\\d+)([ab]?\\d+[a-z]*)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Flock)/(\\d+)\\.(\\d+)(b\\d+?)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Fennec)/(\\d+)\\.(\\d+)(pre)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Netscape"}, + {"pattern":"(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)", + "v1_replacement":null, + "family_replacement":"Netscape"}, + {"pattern":"(Netscape6)/(\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Netscape"}, + {"pattern":"(MyIBrow)/(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"My Internet Browser"}, + {"pattern":"(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"MicroB"}, + {"pattern":"(Opera)/9.80.*Version\\/(\\d+)\\.(\\d+)(?:\\.(\\d+))?", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)", + "v1_replacement":null, + "family_replacement":"Swiftfox"}, + {"pattern":"(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)", + "v1_replacement":null, + "family_replacement":"Swiftfox"}, + {"pattern":"(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Konqueror"}, + {"pattern":"(Jasmine|ANTGalio|Midori|Fresco|Lobo|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Shiira|Sunrise|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Vodafone|NetFront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|Iron|Iris)/(\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Bolt|Jasmine|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|Vodafone|NetFront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Iron|Space Bison|Stainless|Orca)/(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(iCab|Lunascape|Opera|Android) (\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(IEMobile) (\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"IE Mobile"}, + {"pattern":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?", + "v1_replacement":null, + "family_replacement":"Obigo"}, + {"pattern":"(MAXTHON|Maxthon) (\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Maxthon"}, + {"pattern":"(Maxthon|MyIE2|Uzbl|Shiira)", + "v1_replacement":"0", + "family_replacement":null}, + {"pattern":"(PLAYSTATION) (\\d+)", + "v1_replacement":null, + "family_replacement":"PlayStation"}, + {"pattern":"(PlayStation Portable)[^\\d]+(\\d+).(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Opera)/(\\d+)\\.(\\d+).*Opera Mobi", + "v1_replacement":null, + "family_replacement":"Opera Mobile"}, + {"pattern":"(POLARIS)/(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Polaris"}, + {"pattern":"(BonEcho)/(\\d+)\\.(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Bon Echo"}, + {"pattern":"(iPhone) OS (\\d+)_(\\d+)(?:_(\\d+))?", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Avant)", + "v1_replacement":"1", + "family_replacement":null}, + {"pattern":"(Nokia)[EN]?(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Black[bB]erry)(\\d+)", + "v1_replacement":null, + "family_replacement":"Blackberry"}, + {"pattern":"(OmniWeb)/v(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Blazer)/(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Palm Blazer"}, + {"pattern":"(Pre)/(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"Palm Pre"}, + {"pattern":"(Links) \\((\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(QtWeb) Internet Browser/(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/", + "v1_replacement":null, + "family_replacement":"Safari"}, + {"pattern":"(OLPC)/Update(\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(OLPC)/Update()\\.(\\d+)", + "v1_replacement":"0", + "family_replacement":null}, + {"pattern":"(SamsungSGHi560)", + "v1_replacement":null, + "family_replacement":"Samsung SGHi560"}, + {"pattern":"^(SonyEricssonK800i)", + "v1_replacement":null, + "family_replacement":"Sony Ericsson K800i"}, + {"pattern":"(Teleca Q7)", + "v1_replacement":null, + "family_replacement":null}, + {"pattern":"(MSIE) (\\d+)\\.(\\d+)", + "v1_replacement":null, + "family_replacement":"IE"} + + ]; + + var parsers = regexes.map(function(obj) { + var regexp = new RegExp(obj.pattern), + famRep = obj.family_replacement, + v1Rep = obj.v1_replacement; + + function parser(ua) { + var m = ua.match(regexp); + + if (!m) { return null; } + + var familly = famRep ? famRep.replace('$1', m[1]) : m[1]; + + var obj = new UserAgent(familly); + obj.major = parseInt(v1Rep ? v1Rep : m[2]); + obj.minor = m[3] ? parseInt(m[3]) : null; + obj.patch = m[4] ? parseInt(m[4]) : null; + + return obj; + } + + return parser; + }); + + +})(window); + + -- cgit v1.2.1