Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

detector

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

detector - npm Package Compare versions

Comparing version 2.0.1 to 2.0.2

wiki/os-alias.md

74

detector.js

@@ -57,3 +57,3 @@

["mac", "macintosh"],
["mi", /\bmi[ \-]?([a-z0-9 ]+(?= build))/],
["mi", /\bmi[ \-]?([a-z0-9 ]+(?= build|\)))/],
["aliyun", /\baliyunos\b(?:[\-](\d+))?/],

@@ -104,2 +104,3 @@ ["meizu", /\b(?:meizu\/|m)([0-9]+)\b/],

];
// 操作系统信息识别表达式

@@ -149,7 +150,5 @@ var OS = [

/*
* 解析使用 Trident 内核的浏览器的 `浏览器模式` 和 `文档模式` 信息。
* @param {String} ua, userAgent string.
* @return {Object}
*/
// 解析使用 Trident 内核的浏览器的 `浏览器模式` 和 `文档模式` 信息。
// @param {String} ua, userAgent string.
// @return {Object}
function IEMode(ua){

@@ -196,7 +195,6 @@ if(!re_msie.test(ua)){return null;}

}
/**
* 针对同源的 TheWorld 和 360 的 external 对象进行检测。
* @param {String} key, 关键字,用于检测浏览器的安装路径中出现的关键字。
* @return {Undefined,Boolean,Object} 返回 undefined 或 false 表示检测未命中。
*/
// 针对同源的 TheWorld 和 360 的 external 对象进行检测。
// @param {String} key, 关键字,用于检测浏览器的安装路径中出现的关键字。
// @return {Undefined,Boolean,Object} 返回 undefined 或 false 表示检测未命中。
function checkTW360External(key){

@@ -232,8 +230,15 @@ if(!external){return;} // return undefined.

// Sogou.
["sg", / se ([0-9.x]+)/],
["sogou", function(ua){
if (ua.indexOf("sogoumobilebrowser") >= 0) {
return /sogoumobilebrowser\/([0-9.]+)/
} else if (ua.indexOf("sogoumse") >= 0){
return true;
}
return / se ([0-9.x]+)/;
}],
// TheWorld (世界之窗)
// 由于裙带关系,TW API 与 360 高度重合。
// 由于裙带关系,TheWorld API 与 360 高度重合。
// 只能通过 UA 和程序安装路径中的应用程序名来区分。
// TheWorld 的 UA 比 360 更靠谱,所有将 TheWorld 的规则放置到 360 之前。
["tw", function(ua){
["theworld", function(ua){
var x = checkTW360External("theworld");

@@ -253,3 +258,3 @@ if(typeof x !== "undefined"){return x;}

// Maxthon
["mx", function(ua){
["maxthon", function(ua){
try{

@@ -262,3 +267,3 @@ if(external && (external.mxVersion || external.max_version)){

}catch(ex){}
return /\bmaxthon(?:[ \/]([0-9.]+))?/;
return /\b(?:maxthon|mxbrowser)(?:[ \/]([0-9.]+))?/;
}],

@@ -268,3 +273,6 @@ ["qq", /\bm?qqbrowser\/([0-9.]+)/],

["tt", /\btencenttraveler ([0-9.]+)/],
["lb", function(ua){
["liebao", function(ua){
if (ua.indexOf("liebaofast") >= 0){
return /\bliebaofast\/([0-9.]+)/;
}
if(ua.indexOf("lbbrowser") === -1){return false;}

@@ -282,6 +290,6 @@ var version;

["tao", /\btaobrowser\/([0-9.]+)/],
["fs", /\bcoolnovo\/([0-9.]+)/],
["sy", "saayaa"],
["coolnovo", /\bcoolnovo\/([0-9.]+)/],
["saayaa", "saayaa"],
// 有基于 Chromniun 的急速模式和基于 IE 的兼容模式。必须在 IE 的规则之前。
["baidu", /\bbidubrowser[ \/]([0-9.x]+)/],
["baidu", /\bba?idubrowser[ \/]([0-9.x]+)/],
// 后面会做修复版本号,这里只要能识别是 IE 即可。

@@ -296,2 +304,3 @@ ["ie", re_msie],

}],
["oupeng", /\boupeng\/([0-9.]+)/],
["yandex", /yabrowser\/([0-9.]+)/],

@@ -318,7 +327,9 @@ // 支付宝手机客户端

["ali-tm-pd", /\baliapp\(tm-pd\/([0-9.]+)\)/],
["chrome", / (?:chrome|crios|crmo)\/([0-9.]+)/],
// UC 浏览器,可能会被识别为 Android 浏览器,规则需要前置。
// UC 桌面版浏览器携带 Chrome 信息,需要放在 Chrome 之前。
["uc", function(ua){
if(ua.indexOf("ucbrowser/") >= 0){
return /\bucbrowser\/([0-9.]+)/;
} else if(ua.indexOf("ubrowser/") >= 0){
return /\bubrowser\/([0-9.]+)/;
}else if(/\buc\/[0-9]/.test(ua)){

@@ -334,2 +345,3 @@ return /\buc\/([0-9.]+)/;

}],
["chrome", / (?:chrome|crios|crmo)\/([0-9.]+)/],
// Android 默认浏览器。该规则需要在 safari 之前。

@@ -347,9 +359,7 @@ ["android", function(ua){

/**
* UserAgent Detector.
* @param {String} ua, userAgent.
* @param {Object} expression
* @return {Object}
* 返回 null 表示当前表达式未匹配成功。
*/
// UserAgent Detector.
// @param {String} ua, userAgent.
// @param {Object} expression
// @return {Object}
// 返回 null 表示当前表达式未匹配成功。
function detect(name, expression, ua){

@@ -402,7 +412,5 @@ var expr = isFunction(expression) ? expression.call(null, ua) : expression;

/**
* 解析 UserAgent 字符串
* @param {String} ua, userAgent string.
* @return {Object}
*/
// 解析 UserAgent 字符串
// @param {String} ua, userAgent string.
// @return {Object}
var parse = function(ua){

@@ -409,0 +417,0 @@ ua = (ua || "").toLowerCase();

@@ -34,20 +34,18 @@ # 演示文档

seajs.use("../detector", function(detector){
seajs.use(["jquery", "../detector"], function($, detector){
var OS_ALIAS = {
// 4.0
"windows/4": "Windows 95",
// Windows.
"windows/4.0": "Windows 95",
"windows/4.1": "Windows 98",
"windows/4.9": "Windows ME",
// 5.0
"windows/5": "Windows 2000",
"windows/5.0": "Windows 2000",
"windows/5.1": "Windows XP",
"windows/5.2": "Windows Server 2003",
// 6.0
"windows/6": "Windows Vista",
"windows/6.0": "Windows Vista",
"windows/6.1": "Windows 7",
"windows/6.2": "Windows 8",
"windows/6.3": "Windows 8.1",
// 10.0
"macosx/10": "Mac OS X Cheetah",
// Mac OS X.
"macosx/10.0": "Mac OS X Cheetah",
"macosx/10.1": "Mac OS X Puma",

@@ -61,3 +59,19 @@ "macosx/10.2": "Mac OS X Jaguar",

"macosx/10.8": "Mac OS X Mountain Lion",
"macosx/10.9": "Mac OS X Mavericks"
"macosx/10.9": "Mac OS X Mavericks",
"macosx/10.10": "Mac OS X Yosemite",
// Android.
"android/1.5": "Android Cupcake",
"android/1.6": "Android Doughnut",
"android/2.0": "Android Eclair",
"android/2.1": "Android Eclair",
"android/2.2": "Android Froyo",
"android/2.3": "Android Gingerbread",
"android/3.0": "Android Honeycomb",
"android/3.1": "Android Honeycomb",
"android/3.2": "Android Honeycomb",
"android/4.0": "Android Ice Cream Sandwich",
"android/4.1": "Android JellyBean",
"android/4.2": "Android JellyBean",
"android/4.3": "Android JellyBean",
"android/4.4": "Android KitKat"
};

@@ -67,3 +81,3 @@

detectedInfo.push("* 硬件设备:"+detector.device.name+" "+detector.device.fullVersion);
var osAlias = OS_ALIAS[detector.os.name+"/"+detector.os.version] || "N/A";
var osAlias = OS_ALIAS[detector.os.name+"/"+(detector.os.fullVersion.split(".").slice(0,2).join("."))] || "N/A";
detectedInfo.push("* 操作系统:"+detector.os.name+" "+detector.os.fullVersion + " ("+osAlias+")");

@@ -121,3 +135,8 @@ detectedInfo.push("* 浏览器:"+detector.browser.name+" "+detector.browser.fullVersion+

document.getElementById("ua").innerHTML = a.join("<br />");
var detector_version = $("p.sidebar-version > a").text();
document.getElementById("ua").innerHTML =
"detector 版本:" + detector_version + "<br /><br/>" +
a.join("<br />");
document.getElementById("email").setAttribute("href",

@@ -132,3 +151,6 @@ "mailto:hotoo.cn@gmail.com?subject=" +

"\n\n=========================\n"+
"自动识别的原始信息如下(请勿修改):\n"+a.join("\n")));
"自动识别的原始信息如下(请勿修改):\n\n" +
"detector 版本:" + detector_version + "\n\n" +
a.join("\n")
));

@@ -145,2 +167,3 @@ document.getElementById("issues").href = "https://github.com/aralejs/detector/issues/new" +

"自动识别的原始信息如下(请勿修改):\n\n"+
"detector 版本:" + detector_version + "\n\n" +
detectedInfo.join("\n")+

@@ -147,0 +170,0 @@ "\n\n"+

@@ -6,2 +6,39 @@

## 2.0.1 (2014-05-13)
* 调整代码结构,层次更简单。
* 优化命令行工具,输出更美观。
## 2.0.0 (2014-05-13)
* Update: 托 spm@3.x 的福,遵循 CommonJS 规范。同一份源码,不同一个世界。
* Add: 增加了多个搜索引擎爬虫识别规则。
* Fixed: 支持 UC 浏览器使用 adr 来标识 Android 设备的规则。
* Delete: g_detector 全局变量。
* Update: 更新或优化多个规则,提升了识别准确率。
## 1.5.0 (2014-05-10)
* Update: 猎豹浏览器 for iPhone 的识别。
* Add: 海豚浏览器识别规则。
* Add: 阿里巴巴系列移动设备客户端的识别。
* Add: UC 浏览器的 u2, u3 渲染引擎。
* Fixed: 修复并增强 UC 浏览器的的一些规则。
* Fixed: vivo 无版本号的识别。
## 1.4.0 (2014-03-27)
* `Add` #11, Yandex browser support.
* `Add` #43, window.detector and window.g_detector.
## 1.3.0 (2013-08-28)
* `Update` #37 同时支持 CMD 和非 CMD 模块。但我们强烈建议使用 CMD。
## 1.2.1 (2013-07-11)
* `Update` #27, 附加 navigator.appVersion 和 navigator.vendor 增强识别信息,
更好的支持 UC 浏览器这样特殊的场景。
## 1.2.0 (2013-07-04)

@@ -8,0 +45,0 @@

@@ -31,5 +31,6 @@ module.exports = {

// Alexa ia_archiver.
["alexabot", /\bia_archiver\b|\balexabot\/([0-9.]+)/]
["alexabot", /\bia_archiver\b|\balexabot\/([0-9.]+)/],
["curl", /\bcurl\/([0-9.]+)/]
],
ENGINE: []
};
{
"name": "detector",
"version": "2.0.1",
"version": "2.0.2",
"description": "客户端信息识别模块",

@@ -39,3 +39,2 @@ "homepage": "http://spmjs.io/docs/detector/",

"devDependencies": {
"mocha": "1.17.1",
"expect.js": "0.3.1",

@@ -42,0 +41,0 @@ "grunt": "~0.4.1",

@@ -7,4 +7,4 @@ # detector

[![spm package](http://spmjs.io/badge/detector)](http://spmjs.io/package/detector)
[![Build Status](https://secure.travis-ci.org/aralejs/detector.png?branch=master)](https://travis-ci.org/aralejs/detector)
[![Coverage Status](https://coveralls.io/repos/aralejs/detector/badge.png?branch=master)](https://coveralls.io/r/aralejs/detector)
[![Build Status](https://secure.travis-ci.org/hotoo/detector.png?branch=master)](https://travis-ci.org/hotoo/detector)
[![Coverage Status](https://coveralls.io/repos/hotoo/detector/badge.png?branch=master)](https://coveralls.io/r/hotoo/detector)

@@ -64,3 +64,3 @@

* 有些场景只需要简单识别特定的信息,可以参考
[识别特定浏览器最佳实践](https://github.com/aralejs/detector/issues/18)
[识别特定浏览器最佳实践](https://github.com/hotoo/detector/issues/18)
而无需使用 detector。

@@ -70,10 +70,13 @@

for npm:
via npm:
全局安装(`-g`)时,可以在终端使用 `detector` 命令。
```
npm install detector
npm install detector [-g]
```
for spm@3.x:
via spm@3.x:
```

@@ -231,12 +234,12 @@ spm install detector

* `360`: 包括奇虎 360 安全浏览器和 360 极速浏览器。
* `mx`: 傲游浏览器(Maxthon)。
* `sg`: 搜狗浏览器(Sogou)。
* `tw`: 世界之窗浏览器(TheWorld)。
* `maxthon`: 傲游浏览器(Maxthon)。
* `sogou`: 搜狗浏览器(Sogou)。
* `theworld`: 世界之窗浏览器(TheWorld)。
* `green`: GreenBrowser.
* `qq`: QQ 浏览器。
* `tt`: TencentTraveler.
* `lb`: 猎豹浏览器。
* `liebao`: 猎豹浏览器。
* `tao`: 淘宝浏览器。
* `fs`: 枫树浏览器。
* `sy`: 闪游浏览器。
* `coolnovo`: 枫树浏览器。
* `saayaa`: 闪游浏览器。
* `uc`: UC 浏览器。

@@ -262,2 +265,3 @@ * `mi`: 小米浏览器。

* `alexabot`: [Alexabot](wiki/alexabot.md). `NODE ONLY`
* `curl`: curl. `NODE ONLY`

@@ -264,0 +268,0 @@

@@ -196,3 +196,3 @@

os: "windows/6.1",
browser: "tw/-1;8.0;o",
browser: "theworld/-1;8.0;o",
engine: "trident/4.0;4.0;o"

@@ -206,3 +206,3 @@ }],

os: "windows/6.1",
browser: "tw/-1;-1;o",
browser: "theworld/-1;-1;o",
engine: "webkit/535.11;535.11;o"

@@ -214,3 +214,3 @@ }],

os: "windows/6.1",
browser: "tw/-1;8.0;o",
browser: "theworld/-1;8.0;o",
engine: "trident/4.0;4.0;o"

@@ -222,3 +222,3 @@ }],

os: "windows/6.1",
browser: "mx/4.0.5.4000;4.0.5.4000;o",
browser: "maxthon/4.0.5.4000;4.0.5.4000;o",
engine: "webkit/537.1;537.1;o"

@@ -461,3 +461,3 @@ }],

os: "windows/6.1",
browser: "fs/2.0.6.12;2.0.6.12;o",
browser: "coolnovo/2.0.6.12;2.0.6.12;o",
engine: "webkit/537.17;537.17;o"

@@ -476,3 +476,3 @@ }],

os: "windows/6.1",
browser: "sy/-1;7.0;c",
browser: "saayaa/-1;7.0;c",
engine: "trident/4.0;3.0;c"

@@ -484,3 +484,3 @@ }],

os: "windows/6.1",
browser: "lb/-1;-1;o",
browser: "liebao/-1;-1;o",
engine: "webkit/537.1;537.1;o"

@@ -492,3 +492,3 @@ }],

os: "windows/6.1",
browser: "sy/-1;7.0;c",
browser: "saayaa/-1;7.0;c",
engine: "trident/4.0;3.0;c"

@@ -521,3 +521,3 @@ }],

os: "windows/6.1",
browser: "sg/2.x;7.0;c",
browser: "sogou/2.x;7.0;c",
engine: "trident/5.0;3.0;c"

@@ -529,3 +529,3 @@ }],

os: "windows/6.1",
browser: "sg/2.x;2.x;o",
browser: "sogou/2.x;2.x;o",
engine: "webkit/537.17;537.17;o"

@@ -854,2 +854,58 @@ }],

engine: "webkit/537.51.2;537.51.2;o"
}],
//安卓opera
["Mozilla/5.0 (Linux; U; Android 4.4.2; zh-CN; MI 3W Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Oupeng/10.0.1.82018 Mobile Safari/537.36",
{
device: "mi/3w",
os: "android/4.4.2",
browser: "oupeng/10.0.1.82018;10.0.1.82018;o",
engine: "webkit/537.36;537.36;o"
}],
//安卓搜狗
["Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; MI 3W Build/KVT49L) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 SogouMSE,SogouMobileBrowser/3.1.2",
{
device: "mi/3w",
os: "android/4.4.2",
browser: "sogou/3.1.2;3.1.2;o",
engine: "webkit/534.30;534.30;o"
}],
//安卓猎豹极速
["Mozilla/5.0 (Linux; Android 4.4.2; MI 3W) AppleWebKit/535.19 (KHTML, like Gecko) Version/4.0 LieBaoFast/2.10.0 Mobile Safari/535.19",
{
device: "mi/3w",
os: "android/4.4.2",
browser: "liebao/2.10.0;2.10.0;o",
engine: "webkit/535.19;535.19;o"
}],
//百度安卓
["Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; MI 3W Build/KVT49L) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/5.2.3.0 (Baidu; P1 4.4.2)",
{
device: "mi/3w",
os: "android/4.4.2",
browser: "baidu/5.2.3.0;5.2.3.0;o",
engine: "webkit/534.24;534.24;o"
}],
//小米3 遨游
["Mozilla/5.0 (iPad; CPU OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53 MxBrowser/4.3.1.2000",
{
device: "ipad/-1",
os: "ios/7.1.1",
browser: "maxthon/4.3.1.2000;4.3.1.2000;o",
engine: "webkit/537.51.2;537.51.2;o"
}],
// UC桌面浏览器
["Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 UBrowser/2.0.1288.1 Safari/537.36",
{
device: "pc/-1",
os: "windows/6.1",
browser: "uc/2.0.1288.1;2.0.1288.1;o",
engine: "webkit/537.36;537.36;o"
}],
["Mozilla/5.0 (Linux; U; Android 4.4.2; zh-CN; MI 3W Build/KVT49L) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1",
{
device: "mi/3w",
os: "android/4.4.2",
browser: "uc/9.9.2.467;9.9.2.467;o",
engine: "webkit/533.1;533.1;o"
}]

@@ -856,0 +912,0 @@ ];

@@ -78,2 +78,15 @@ // more rule test.

}],
["curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3", {
device: "na/-1",
os: "na/-1",
browser: "curl/7.19.7;7.19.7;o",
engine: "na/-1;-1;o"
}],
["curl/7.30.0", {
device: "na/-1",
os: "na/-1",
browser: "curl/7.30.0;7.30.0;o",
engine: "na/-1;-1;o"
}]
];

@@ -80,0 +93,0 @@

@@ -39,2 +39,4 @@

* [Polaris](polaris.md)
* [华为天天浏览器](http://browser.vmall.com/)
* [千寻浏览器](http://www.qxllq.com/) - 百度推出,基于 Trident 内核。屎一样的 UA

@@ -85,2 +87,6 @@ ## 渲染引擎 (Layout Engine)

----
* [操作系统别名](os-alias.md)
## 硬件设备

@@ -87,0 +93,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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