Socket
Socket
Sign inDemoInstall

express-useragent

Package Overview
Dependencies
Maintainers
1
Versions
45
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-useragent - npm Package Compare versions

Comparing version 0.0.12 to 0.1.0

144

lib/express-useragent.js

@@ -21,3 +21,3 @@ /**

Chrome: /chrome\/([\d\w\.\-]+)/i,
Chromium: /crios\/([\d\w\.\-]+)/i,
Chromium: /crios\/([\d\w\.\-]+)/i,
Safari: /version\/([\d\w\.\-]+)/i,

@@ -40,3 +40,3 @@ Opera: /version\/([\d\w\.\-]+)/i,

Flock: /flock/i,
OmniWeb:/omniweb/i,
OmniWeb: /omniweb/i,
Chromium: /(chromium)|(crios)/i,

@@ -65,2 +65,3 @@ Chrome: /chrome/i,

Linux: /linux/i,
Linux64: /linux x86\_64/i,
Wii: /wii/i,

@@ -91,38 +92,39 @@ PS3: /playstation 3/i,

this.DefaultAgent = {
isMobile : false,
isiPad : false,
isiPod : false,
isiPhone : false,
isAndroid : false,
isBlackberry : false,
isOpera : false,
isIE : false,
isIECompatibilityMode : false,
isSafari : false,
isFirefox : false,
isWebkit : false,
isChrome : false,
isKonqueror : false,
isOmniWeb : false,
isSeaMonkey : false,
isFlock : false,
isAmaya : false,
isEpiphany : false,
isDesktop : false,
isWindows : false,
isLinux : false,
isMac : false,
isBada : false,
isSamsung : false,
isRaspberry : false,
isBot : false,
isCurl : false,
isAndroidTablet : false,
isMobile: false,
isiPad: false,
isiPod: false,
isiPhone: false,
isAndroid: false,
isBlackberry: false,
isOpera: false,
isIE: false,
isIECompatibilityMode: false,
isSafari: false,
isFirefox: false,
isWebkit: false,
isChrome: false,
isKonqueror: false,
isOmniWeb: false,
isSeaMonkey: false,
isFlock: false,
isAmaya: false,
isEpiphany: false,
isDesktop: false,
isWindows: false,
isLinux: false,
isLinux64: false,
isMac: false,
isBada: false,
isSamsung: false,
isRaspberry: false,
isBot: false,
isCurl: false,
isAndroidTablet: false,
isWinJs: false,
Browser : 'unknown',
Version : 'unknown',
OS : 'unknown',
Platform : 'unknown',
GeoIP : {},
source:''
Browser: 'unknown',
Version: 'unknown',
OS: 'unknown',
Platform: 'unknown',
GeoIP: {},
source: ''
};

@@ -188,3 +190,3 @@

break;
case 'Chromium':
case 'Chromium':
if (this._Versions.Chromium.test(string)) {

@@ -210,3 +212,3 @@ return RegExp.$1;

case 'WinJs':
if (this._Versions.WinJs.test(string)){
if (this._Versions.WinJs.test(string)) {
return RegExp.$1;

@@ -217,3 +219,3 @@ }

if (this._Versions.IE.test(string)) {
return RegExp.$2? RegExp.$2:RegExp.$1;
return RegExp.$2 ? RegExp.$2 : RegExp.$1;
}

@@ -277,3 +279,3 @@ break;

this.Agent.isWindows = true;
return 'Windows 8.1';
return 'Windows 8.1';
case this._OS.Windows2003.test(string):

@@ -290,2 +292,6 @@ this.Agent.isWindows = true;

return 'Windows Phone 8';
case this._OS.Linux64.test(string):
this.Agent.isLinux = true;
this.Agent.isLinux64 = true;
return 'Linux 64';
case this._OS.Linux.test(string):

@@ -361,10 +367,10 @@ this.Agent.isLinux = true;

};
this.testCompatibilityMode = function() {
var ua = this;
if(this.Agent.isIE){
if(/Trident\/(\d)\.0/i.test(ua.Agent.source)){
var tridentVersion = parseInt(RegExp.$1,10);
var version = parseInt(ua.Agent.Version,10);
if(version === 7 && tridentVersion === 6){
var ua = this;
if (this.Agent.isIE) {
if (/Trident\/(\d)\.0/i.test(ua.Agent.source)) {
var tridentVersion = parseInt(RegExp.$1, 10);
var version = parseInt(ua.Agent.Version, 10);
if (version === 7 && tridentVersion === 6) {
ua.Agent.isIECompatibilityMode = true;

@@ -374,9 +380,9 @@ ua.Agent.Version = 10.0;

if(version === 7 && tridentVersion === 5){
if (version === 7 && tridentVersion === 5) {
ua.Agent.isIECompatibilityMode = true;
ua.Agent.Version = 9.0;
}
if(version === 7 && tridentVersion === 4){
ua.Agent.isIECompatibilityMode = true;
}
if (version === 7 && tridentVersion === 4) {
ua.Agent.isIECompatibilityMode = true;
ua.Agent.Version = 8.0;

@@ -390,3 +396,3 @@ }

var ua = this;
for( var key in ua.DefaultAgent) {
for (var key in ua.DefaultAgent) {
ua.Agent[key] = ua.DefaultAgent[key];

@@ -425,3 +431,3 @@ }

}
if(/mobile/i.test(ua.Agent.source)) {
if (/mobile/i.test(ua.Agent.source)) {
ua.Agent.isMobile = true;

@@ -434,6 +440,6 @@ ua.Agent.isDesktop = false;

var ua = this;
Object.keys(headers).forEach(function(key){
if(/^GEOIP/i.test(key)) {
ua.Agent.GeoIP[key] = headers[key];
}
Object.keys(headers).forEach(function(key) {
if (/^GEOIP/i.test(key)) {
ua.Agent.GeoIP[key] = headers[key];
}
});

@@ -444,4 +450,4 @@ };

var ua = this;
if(/googlebot|gurujibot|yandexbot|slurp|msnbot|bingbot|facebookexternalhit/i.test(ua.Agent.source)) {
ua.Agent.isBot = true;
if (/googlebot|gurujibot|yandexbot|slurp|msnbot|bingbot|facebookexternalhit/i.test(ua.Agent.source)) {
ua.Agent.isBot = true;
}

@@ -452,3 +458,3 @@ };

var ua = this;
if(ua.Agent.isAndroid && !/mobile/i.test(ua.Agent.source)) {
if (ua.Agent.isAndroid && !/mobile/i.test(ua.Agent.source)) {
ua.Agent.isAndroidTablet = true;

@@ -475,4 +481,6 @@ }

var source = req.headers['user-agent'] || '',
ua = new UserAgent();
if(typeof source == 'undefined') { source = "unknown"; }
ua = new UserAgent();
if (typeof source === 'undefined') {
source = "unknown";
}
ua.Agent.source = source.replace(/^\s*/, '').replace(/\s*$/, '');

@@ -489,5 +497,9 @@ ua.Agent.OS = ua.getOS(ua.Agent.source);

req.useragent = ua.Agent;
res.locals({"useragent" : ua.Agent});
if ('function' === typeof res.locals) {
res.locals({useragent: ua.Agent});
} else {
res.locals.useragent = ua.Agent;
}
next();
}
};
};

@@ -494,0 +506,0 @@

{
"name": "express-useragent",
"description": "ExpressJS/Connect/TrinteJS user-agent middleware exposing",
"version": "0.0.12",
"version": "0.1.0",
"homepage": "https://github.com/biggora/express-useragent/",

@@ -56,9 +56,9 @@ "repository": {

"engines": {
"node": ">=0.5"
"node": ">=0.6"
},
"dependencies": {},
"devDependencies": {
"connect": ">= 1.7.1 < 2.0.0",
"express": ">= 2.5.0 < 3.0.0",
"nodeunit": ">=0.5.4"
"connect": ">= 2.5.0",
"express": ">= 3.0.0",
"nodeunit": ">= 0.5.4"
},

@@ -65,0 +65,0 @@ "scripts": {

@@ -67,2 +67,31 @@ /**

exports['Linux 64 Chrome'] = function(test) {
var s = 'User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36';
var a = ua.parse(s);
test.ok(!a.isMobile, 'Mobile');
test.ok(!a.isiPad, 'iPad');
test.ok(!a.isiPod, 'iPod');
test.ok(!a.isiPhone, 'iPhone');
test.ok(!a.isAndroid, 'Android');
test.ok(!a.isBlackberry, 'Blackberry');
test.ok(!a.isOpera, 'Opera');
test.ok(!a.isIE, 'IE');
test.ok(!a.isSafari, 'Safari');
test.ok(!a.isFirefox, 'Firefox');
test.ok(!a.isWebkit, 'Webkit');
test.ok(a.isChrome, 'Chrome');
test.ok(!a.isKonqueror, 'Konqueror');
test.ok(a.isDesktop, 'Desktop');
test.ok(!a.isWindows, 'Windows');
test.ok(a.isLinux, 'Linux');
test.ok(a.isLinux64, 'Linux 64');
test.ok(!a.isMac, 'Mac');
test.ok(!a.isWindowsPhone, 'Windows Phone');
test.done();
};
exports['Linux Firefox 11'] = function(test) {

@@ -90,2 +119,3 @@

test.ok(a.isLinux, 'Linux');
test.ok(!a.isLinux64, 'Linux 64');
test.ok(!a.isMac, 'Mac');

@@ -92,0 +122,0 @@ test.ok(!a.isWindowsPhone, 'Windows Phone');

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc