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

node-device-detector

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-device-detector - npm Package Compare versions

Comparing version 1.2.7 to 1.2.8

misc/reg.js

2

CHANGELOG.MD
CHANGELOG
-
* v1.2.5
* Update fixtures from the motamo-org/devicedetect package#3.12.6 (update to 2020/07/13)
* v1.2.4

@@ -4,0 +6,0 @@ * Update fixtures from the motamo-org/devicedetect package#3.12.5 (update to 2020/06/09)

@@ -0,0 +0,0 @@ Use in the express.js server

@@ -0,0 +0,0 @@ Micro service from framework [moleculer js](http://moleculer.services)

@@ -0,0 +0,0 @@ Use in the native server

@@ -0,0 +0,0 @@ declare module 'node-device-detector' {

@@ -52,5 +52,8 @@ module.exports = DeviceDetector;

let osVersionTruncate;
let clientVersionTruncate;
/**
*
* @param {{skipBotDetection: false}} options
* @param {{skipBotDetection: false, osVersionTruncate: null, clientVersionTruncate: null}} options
* @constructor

@@ -67,2 +70,5 @@ */

osVersionTruncate = helper.getPropertyValue(options, "osVersionTruncate", null);
clientVersionTruncate = helper.getPropertyValue(options, "clientVersionTruncate", null);
this.init();

@@ -92,3 +98,16 @@ }

this.addParseBot("Bot", new BotParser);
this.setOsVersionTruncate(osVersionTruncate)
this.setClientVersionTruncate(clientVersionTruncate)
};
DeviceDetector.prototype.setOsVersionTruncate = function (num) {
for (let name in this.osParserList) {
this.osParserList[name].setVersionTruncation(num)
}
}
DeviceDetector.prototype.setClientVersionTruncate = function (num) {
for (let name in this.clientParserList) {
this.clientParserList[name].setVersionTruncation(num)
}
}

@@ -95,0 +114,0 @@ /**

@@ -0,0 +0,0 @@ const readline = require('readline');

@@ -0,0 +0,0 @@ const Brands = Object.values(require('./../parser/device/brand-short'));

2

package.json
{
"name": "node-device-detector",
"version": "1.2.7",
"version": "1.2.8",
"description": "Nodejs device detector (port Piwik)",

@@ -5,0 +5,0 @@ "main": "index.js",

const YAML = require('yamljs');
const util = require('util');
const helper = require('./helper');

@@ -8,3 +8,3 @@ const BASE_REGEXES_DIR = __dirname + '/../regexes/';

/**
* @param result
* @param {string} result
* @return {string}

@@ -17,3 +17,3 @@ */

/**
* @param result
* @param {string} result
* @return {string}

@@ -33,2 +33,3 @@ */

this.collection = null;
this.versionTruncation = null;
}

@@ -39,3 +40,3 @@

*/
ParserAbstract.prototype.loadCollection = function(){
ParserAbstract.prototype.loadCollection = function () {
this.collection = this.loadYMLFile(this.fixtureFile);

@@ -49,3 +50,3 @@ };

*/
ParserAbstract.prototype.loadYMLFile = function(file){
ParserAbstract.prototype.loadYMLFile = function (file) {
return YAML.load(BASE_REGEXES_DIR + file);

@@ -55,7 +56,8 @@ };

/**
* @param item
* @param matches
* A special method that overwrites placeholders in a string
* @param {string} item
* @param {array} matches
* @return {string|*}
*/
ParserAbstract.prototype.buildByMatch = function(item, matches) {
ParserAbstract.prototype.buildByMatch = function (item, matches) {
item = item || '';

@@ -65,9 +67,9 @@ item = item.toString();

if (item.indexOf('$') !== -1) {
for (let nb = 1; nb <= 3; nb++) {
if (item.indexOf('$' + nb) === -1) {
continue;
}
let replace = (matches[nb] !== undefined) ? matches[nb] : '';
item = item.replace('$' + nb, replace);
}
for (let nb = 1; nb <= 3; nb++) {
if (item.indexOf('$' + nb) === -1) {
continue;
}
let replace = (matches[nb] !== undefined) ? matches[nb] : '';
item = item.replace('$' + nb, replace);
}
}

@@ -79,6 +81,6 @@ return item;

* helper prepare base regExp + part regExp
* @param str
* @param {string} str
* @return {RegExp}
*/
ParserAbstract.prototype.getBaseRegExp = function(str) {
ParserAbstract.prototype.getBaseRegExp = function (str) {
str = str.replace(new RegExp('/', 'g'), '\\/');

@@ -95,3 +97,3 @@ str = str.replace(new RegExp('\\+\\+', 'g'), '+');

*/
ParserAbstract.prototype.buildModel =function(model, matches) {
ParserAbstract.prototype.buildModel = function (model, matches) {
model = fixStringName(this.buildByMatch(model, matches));

@@ -102,2 +104,12 @@ return (model === 'Build') ? null : model;

/**
* Set the number of characters in the version where number is the number of characters +1
* There is a line string version 1.2.3.4.555
* If you set 0 we get version 1, if 2 we get 1.2.3 and so on.
* @param {number} num
*/
ParserAbstract.prototype.setVersionTruncation = function (num) {
this.versionTruncation = num;
}
/**
* @param version

@@ -107,20 +119,13 @@ * @param matches

*/
ParserAbstract.prototype.buildVersion = function(version, matches) {
ParserAbstract.prototype.buildVersion = function (version, matches) {
version = fixStringVersion(this.buildByMatch(version, matches));
const skipVersion = [
'Portable', ''
'Portable', ''
];
if(skipVersion.indexOf(version) !== -1){
return version;
if (skipVersion.indexOf(version) !== -1) {
return version;
}
let versionParts = String(version).split('.');
// const maxMinorParts = 4;
// console.log(versionParts, versionParts.length);
// if (versionParts.length > maxMinorParts) {
// versionParts = versionParts.slice(0, 1 + maxMinorParts);
// }
version = versionParts.join('.');
return version;
return helper.versionTruncate(version, this.versionTruncation);
};
module.exports = ParserAbstract;

@@ -0,0 +0,0 @@ const ParserAbstract = require('./abstract-parser');

@@ -0,0 +0,0 @@ const ParserAbstract = require('./abstract-parser');

@@ -0,0 +0,0 @@ module.exports = {

@@ -99,2 +99,3 @@ module.exports = {

"GE": "Google Earth",
"GO": "GOG Galaxy",
"HA": "Hawk Turbo Browser",

@@ -101,0 +102,0 @@ "HO": "hola! Browser",

@@ -113,2 +113,12 @@ const ClientAbstractParser = require('./../client-abstract-parser');

}
if(engine === 'Gecko'){
let pattern = '[ ](?:rv[: ]([0-9\.]+)).*gecko/[0-9]{8,10}';
let regexp = new RegExp(pattern, 'i');
let match = regexp.exec(userAgent);
if(match !== null){
return match.pop();
}
}
let regexp = new RegExp(engine + '\\s*\\/?\\s*(((?=\\d+\\.\\d)\\d+[.\\d]*|\\d{1,7}(?=(?:\\D|$))))', 'i');

@@ -115,0 +125,0 @@ let match = regexp.exec(userAgent);

@@ -0,0 +0,0 @@ const ClientAbstractParser = require('./../client-abstract-parser');

@@ -0,0 +0,0 @@ const ClientAbstractParser = require('./../client-abstract-parser');

@@ -0,0 +0,0 @@ const ClientAbstractParser = require('./../client-abstract-parser');

@@ -0,0 +0,0 @@ const ClientAbstractParser = require('./../client-abstract-parser');

@@ -0,0 +0,0 @@ const ClientAbstractParser = require('./../client-abstract-parser');

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ const ParserAbstract = require('./abstract-parser');

@@ -38,3 +38,3 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

}
this.__brandReplaceRegexp = brands;
this.__brandReplaceRegexp = '(' + brands + ')[ _]';
}

@@ -41,0 +41,0 @@

@@ -8,2 +8,3 @@ module.exports = {

"AC": "Acer",
"00": "Accent",
"A9": "Advan",

@@ -25,2 +26,3 @@ "AD": "Advance",

"A5": "altron",
"3L": "Alfawise",
"AN": "Arnova",

@@ -32,3 +34,5 @@ "7A": "Anry",

"AG": "AMGOO",
"9A": "Amigoo",
"AO": "Amoi",
"3N": "Aoson",
"AP": "Apple",

@@ -47,2 +51,3 @@ "AR": "Archos",

"AH": "AVH",
"ZA": "Avenzo",
"AV": "Avvio",

@@ -53,5 +58,8 @@ "AX": "Audiovox",

"BB": "BBK",
"0B": "BB Mobile",
"BE": "Becker",
"B5": "Beeline",
"B0": "Beelink",
"BI": "Bird",
"1B": "Billion",
"BT": "Bitel",

@@ -69,2 +77,3 @@ "B8": "BIHEE",

"BO": "BangOlufsen",
"B9": "Bobarry",
"BQ": "BenQ",

@@ -96,2 +105,3 @@ "BS": "BenQ-Siemens",

"L8": "Clarmin",
"CD": "Cloudfone",
"C0": "Clout",

@@ -105,2 +115,3 @@ "CK": "Cricket",

"CR": "CreNova",
"0C": "Crony",
"CT": "Capitel",

@@ -131,2 +142,4 @@ "CQ": "Compaq",

"DC": "DoCoMo",
"D9": "Dolamee",
"D0": "Doopro",
"DG": "Dialog",

@@ -143,2 +156,3 @@ "DI": "Dicam",

"DO": "Doogee",
"DF": "Doffler",
"DV": "Doov",

@@ -151,2 +165,3 @@ "DP": "Dopod",

"2E": "E-Ceros",
"5E": "2E",
"EA": "EBEST",

@@ -162,2 +177,3 @@ "EC": "Ericsson",

"EL": "Elephone",
"4E": "Eltex",
"L0": "Element",

@@ -189,2 +205,3 @@ "EG": "Elenberg",

"FI": "FiGO",
"F3": "FireFly Mobile",
"FL": "Fly",

@@ -232,2 +249,3 @@ "F1": "FinePower",

"HW": "How",
"HV": "Hotwav",
"HZ": "Hoozo",

@@ -244,3 +262,5 @@ "HP": "HP",

"IB": "iBall",
"3I": "i-Cherry",
"IJ": "i-Joy",
"IC": "iDroid",
"IY": "iBerry",

@@ -251,3 +271,5 @@ "IH": "iHunt",

"I8": "iVA",
"1I": "iMars",
"IM": "i-mate",
"2I": "iLife",
"I1": "iOcean",

@@ -270,4 +292,6 @@ "I2": "IconBIT",

"IX": "Intex",
"4I": "Invin",
"IO": "i-mobile",
"IQ": "INQ",
"8Q": "IQM",
"IT": "Intek",

@@ -277,5 +301,7 @@ "IV": "Inverto",

"IZ": "iTel",
"0I": "iTruck",
"I9": "iZotron",
"JA": "JAY-Tech",
"JI": "Jiayu",
"JG": "Jinga",
"JO": "Jolla",

@@ -286,2 +312,3 @@ "J5": "Just5",

"KL": "Kalley",
"0K": "Klipad",
"K4": "Kaan",

@@ -315,3 +342,5 @@ "K7": "Kaiomy",

"KZ": "Kazam",
"1K": "Kzen",
"KE": "Krüger&Matz",
"KX": "Kenxinda",
"LQ": "LAIQ",

@@ -338,2 +367,3 @@ "L2": "Landvo",

"LM": "Logicom",
"1L": "Logic",
"L3": "Lexand",

@@ -343,2 +373,3 @@ "LX": "Lexibook",

"LU": "Lumus",
"0L": "Lumigon",
"L9": "Luna",

@@ -354,2 +385,3 @@ "MN": "M4tel",

"7M": "Maxcom",
"0D": "MAXVI",
"M0": "Maze",

@@ -365,2 +397,4 @@ "MB": "Mobistel",

"ME": "Metz",
"09": "meanIT",
"0E": "Melrose",
"MX": "MEU",

@@ -371,2 +405,3 @@ "MI": "MicroMax",

"M5": "MIXC",
"1Z": "MiXzo",
"MH": "Mobiola",

@@ -405,2 +440,5 @@ "4M": "Mobicel",

"NE": "NEC",
"4N": "NextTab",
"5N": "Nos",
"1N": "Neomi",
"NF": "Neffos",

@@ -421,2 +459,3 @@ "NA": "Netgear",

"NM": "Nomi",
"2N": "Nomu",
"N0": "Nuvo",

@@ -438,2 +477,3 @@ "NL": "NUU Mobile",

"OX": "Onix",
"OH": "Openbox",
"OP": "OPPO",

@@ -451,4 +491,6 @@ "O4": "ONN",

"OY": "Oysters",
"O6": "Oyyu",
"OW": "öwn",
"O2": "Owwo",
"OZ": "OzoneHD",
"PN": "Panacom",

@@ -486,2 +528,3 @@ "PA": "Panasonic",

"PR": "Prestigio",
"6P": "Primux",
"P7": "Protruly",

@@ -530,2 +573,3 @@ "P1": "ProScan",

"SE": "Sony Ericsson",
"01": "Senkatel",
"S1": "Sencor",

@@ -556,2 +600,3 @@ "SF": "Softbank",

"5S": "Sunvell",
"0H": "Sunstech",
"SU": "SuperSonic",

@@ -575,2 +620,3 @@ "S5": "Supra",

"SS": "SWISSMOBILITY",
"QS": "SQOOL",
"0W": "Swipe",

@@ -580,2 +626,4 @@ "10": "Simbans",

"TA": "Tesla",
"TK": "Takara",
"4T": "Tronsmart",
"T5": "TB Touch",

@@ -585,2 +633,3 @@ "TC": "TCL",

"TE": "Telit",
"9T": "Tetratab",
"T4": "ThL",

@@ -596,5 +645,7 @@ "TH": "TiPhone",

"TL": "Telefunken",
"2L": "Tele2",
"T2": "Telenor",
"TM": "T-Mobile",
"TN": "Thomson",
"8T": "Time2",
"TQ": "Timovi",

@@ -606,2 +657,3 @@ "TY": "Tooky",

"TO": "Toplux",
"7T": "Torex",
"T8": "Touchmate",

@@ -615,5 +667,7 @@ "TS": "Toshiba",

"1T": "Turbo",
"5T": "TurboKids",
"11": "True",
"TV": "TVC",
"TW": "TWM",
"6T": "Twoe",
"TX": "TechniSat",

@@ -646,2 +700,3 @@ "TZ": "teXet",

"VS": "ViewSonic",
"VH": "Vsmart",
"V9": "Vsun",

@@ -685,2 +740,3 @@ "V8": "Vesta",

"WX": "Woxter",
"WR": "Wortmann",
"XV": "X-View",

@@ -692,2 +748,3 @@ "XI": "Xiaomi",

"XR": "Xoro",
"XG": "Xgody",
"YA": "Yarvik",

@@ -708,2 +765,3 @@ "YD": "Yandex",

"ZI": "Zidoo",
"ZX": "Ziox",
"ZP": "Zopo",

@@ -718,3 +776,4 @@ "ZT": "ZTE",

"XB": "NEXBOX",
"X3": "X-BO",
// legacy brands, might be removed in future versions

@@ -721,0 +780,0 @@ "WB": "Web TV",

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -0,0 +0,0 @@ const DeviceAbstractParser = require('./../device-abstract-parser');

@@ -32,2 +32,9 @@ exports.matchUserAgent = function (str, userAgent) {

exports.versionTruncate = function (version, maxMinorParts) {
let versionParts = String(version).split('.');
if (maxMinorParts !== null && maxMinorParts !== '' && versionParts.length > maxMinorParts) {
versionParts = versionParts.slice(0, 1 + maxMinorParts);
}
return versionParts.join('.');
}

@@ -34,0 +41,0 @@ exports.hasAndroidTableFragment = function (userAgent) {

@@ -0,0 +0,0 @@ const ParserAbstract = require('./abstract-parser');

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ module.exports = {

@@ -0,0 +0,0 @@ const ParserAbstract = require('./abstract-parser');

@@ -23,2 +23,8 @@ # [node-device-detector](https://www.npmjs.com/package/node-device-detector)

### (ChangeLog)
* v1.2.8
* Update fixtures from the motamo-org/devicedetect package#3.13.0 (update to 2020/10/03)
* Added new methods: setOsVersionTruncate, setClientVersionTruncate
* Added definition of engine version Gecko
* v1.2.7

@@ -30,5 +36,2 @@ * Update fixtures from the motamo-org/devicedetect package#3.13.0 (update to 2020/08/17)

* v1.2.5
* Update fixtures from the motamo-org/devicedetect package#3.12.6 (update to 2020/07/13)
* OLD VERSIONS [CHANGELOG.MD](CHANGELOG.MD)

@@ -110,3 +113,3 @@

const userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)';
const detector = new DeviceDetector;
const detector = new DeviceDetector();
const result = detector.parseBot(userAgent);

@@ -152,4 +155,15 @@ ```

console.log('Result parse commercial model', result); // result {name: "NX505J"}
```
### Getter/Setter/Options methods
```js
const detector = new DeviceDetector({
osVersionTruncate: 0, // Truncate Os version from 5.0 to 5 (default '' or null)
clientVersionTruncate: 2 // Truncate Client version Chrome from 43.0.2357 .78 to 43.0.2357 (default '' or null)
});
// You can override these settings at any time using special methods, example
detector.setOsVersionTruncate(0);
detector.setClientVersionTruncate(2);
```
Others

@@ -161,3 +175,3 @@ -

##### Support detect brands list (676):
Support detect brands list (735):

@@ -167,7 +181,32 @@ <details>

* 360, 3Q, 4Good, Ace, Acer, Advan, Advance, AGM, Ainol, Airness, Airties, AIS, Aiwa, Akai, Alba, Alcatel, Aligator, AllCall, AllDocube, Allview, Allwinner, Altech UEC, altron, Amazon, AMGOO, Amoi, Anry, ANS, Apple, Archos, Arian Space, Ark, ArmPhone, Arnova, ARRIS, Asano, Ask, Assistant, Asus, AT&T, Atom, Audiovox, AVH, Avvio, Axxion, Azumi Mobile, BangOlufsen, Barnes & Noble, BBK, BDF, Becker, Beeline, Beetel, BenQ, BenQ-Siemens, Bezkam, BGH, BIHEE, Bird, Bitel, Bitmore, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefour, Casio, Casper, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, Chuwi, Clarmin, Clout, CnM, Coby Kyros, Comio, Compal, Compaq, ComTrade Tesla, Concord, ConCorde, Condor, Contixo, Coolpad, Cowon, CreNova, Crescent, Cricket, Crius Mea, Crosscall, Cube, CUBOT, CVTE, Cyrus, Daewoo, Danew, Datang, Datawind, Datsun, Dbtel, Dell, Denver, Desay, DeWalt, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, Divisat, DMM, DNS, DoCoMo, Doogee, Doov, Dopod, Doro, Droxio, Dune HD, E-Boda, E-Ceros, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Element, Elenberg, Elephone, Energizer, Energy Sistem, Enot, Ergo, Ericsson, Ericy, Essential, Essentielb, Eton, eTouch, Etuline, Eurostar, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, Famoco, Fengxiang, FiGO, FinePower, Fly, FNB, Fondi, FORME, Forstar, Foxconn, Freetel, Fujitsu, G-TiDE, Garmin-Asus, Gateway, Gemini, General Mobile, Geotel, Ghia, Ghong, Gigabyte, Gigaset, Ginzzu, Gionee, Globex, GOCLEVER, Goly, Gome, GoMobile, Google, Goophone, Gradiente, Grape, Gree, Grundig, Hafury, Haier, HannSpree, Hasee, Hi-Level, Highscreen, Hisense, Hoffmann, Homtom, Hoozo, Hosin, How, HP, HTC, Huadoo, Huawei, Humax, Hyrican, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iGet, iHunt, Ikea, iKoMo, iLA, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Insignia, Intek, Intex, Inverto, iOcean, iPro, Irbis, iRola, iRulu, iTel, iVA, iView, iZotron, JAY-Tech, JFone, Jiayu, JKL, Jolla, Just5, K-Touch, Kaan, Kaiomy, Kalley, Kanji, Karbonn, KATV1, Kazam, KDDI, Kempler & Strauss, Keneksi, Kiano, Kingsun, Kivi, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koobee, Kooper, KOPO, Koridy, KRONO, Krüger&Matz, KT-Tech, Kuliao, Kumai, Kyocera, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava, LCT, Le Pan, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Lephone, Lesia, Lexand, Lexibook, LG, Lingwin, Loewe, Logicom, Lumus, Luna, LYF, M.T.T., M4tel, Macoox, Majestic, Mann, Manta Multimedia, Masstel, Maxcom, Maxtron, Maxwest, Maze, Mecer, Mecool, Mediacom, MediaTek, Medion, MEEG, MegaFon, Meitu, Meizu, Memup, Metz, MEU, MicroMax, Microsoft, Minix, Mio, Miray, Mito, Mitsubishi, MIXC, MLLED, MLS, Mobicel, Mobiistar, Mobiola, Mobistel, Mobo, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, Multilaser, MYFON, MyPhone, Myria, Mystery, MyTab, MyWigo, National, Navon, NEC, Neffos, Netgear, NeuImage, Newgen, Newland, Newman, NewsMy, NEXBOX, Nexian, NEXON, Nextbit, NextBook, NG Optics, NGM, Nikon, Nintendo, NOA, Noain, Nobby, Noblex, Nokia, Nomi, Nous, NUU Mobile, Nuvo, Nvidia, NYX Mobile, O+, O2, Obi, Odys, Onda, OnePlus, Onix, ONN, OPPO, Opsson, Orange, Orbic, Ordissimo, Ouki, Oukitel, OUYA, Overmax, öwn, Owwo, Oysters, Palm, Panacom, Panasonic, Pantech, PCBOX, PCD, PCD Argentina, PEAQ, Pentagram, Phicomm, Philco, Philips, Phonemax, phoneOne, Pioneer, Pixus, Ployer, Plum, PocketBook, POCO, Point of View, Polaroid, PolyPad, Polytron, Pomp, Positivo, Positivo BGH, PPTV, Prestigio, Primepad, Prixton, Proline, ProScan, Protruly, PULID, Q-Touch, Q.Bell, Qilive, QMobile, Qtek, Quantum, Quechua, Qumo, R-TV, Ramos, Ravoz, Razer, RCA Tablets, Readboy, Realme, RED, Rikomagic, RIM, Rinno, Ritmix, Ritzviva, Riviera, Roadrover, Rokit, Roku, Rombica, Ross&Moor, Rover, RoverPad, RT Project, RugGear, Runbo, Ryte, Safaricom, Sagem, Samsung, Sanei, Santin, Sanyo, Savio, Schneider, Sega, Selevision, Selfix, SEMP TCL, Sencor, Sendo, Senseit, Senwa, SFR, Sharp, Shift Phones, Shuttle, Siemens, Sigma, Silent Circle, Simbans, Sky, Skyworth, Smart, Smartfren, Smartisan, Softbank, Sonim, Sony, Sony Ericsson, Soundmax, Soyes, Spectrum, Spice, Star, Starway, STF Mobile, STK, Stonex, Storex, Sugar, Sumvision, SunVan, Sunvell, SuperSonic, Supra, Swipe, SWISSMOBILITY, Symphony, Syrox, T-Mobile, TB Touch, TCL, TD Systems, TechniSat, TechnoTrend, TechPad, Teclast, Tecno Mobile, Telefunken, Telego, Telenor, Telit, Tesco, Tesla, teXet, ThL, Thomson, TIANYU, Timovi, Tinai, TiPhone, Tolino, Tone, Tooky, Top House, Toplux, Toshiba, Touchmate, TrekStor, Trevi, True, Tunisie Telecom, Turbo, Turbo-X, TVC, TWM, U.S. Cellular, Ugoos, Uhans, Uhappy, Ulefone, Umax, UMIDIGI, Unihertz, Unimax, Uniscope, Unknown, Unnecto, Unonu, Unowhy, UTOK, UTStarcom, Vastking, Venso, Verizon, Vernee, Vertex, Vertu, Verykool, Vesta, Vestel, VGO TEL, Videocon, Videoweb, ViewSonic, Vinga, Vinsoc, Vipro, Vitelcom, Vivax, Vivo, Vizio, VK Mobile, VKworld, Vodacom, Vodafone, Vonino, Vontar, Vorago, Vorke, Voto, Voxtel, Voyo, Vsun, Vulcan, Walton, Web TV, Weimei, WellcoM, Wexler, Wieppo, Wigor, Wiko, Wileyfox, Winds, Wink, Wolder, Wolfgang, Wonu, Woo, Woxter, X-TIGI, X-View, Xiaolajiao, Xiaomi, Xion, Xolo, Xoro, Xshitou, Yandex, Yarvik, Yes, Yezz, Yota, Ytone, Yu, Yuandao, Yusun, Yxtel, Zeemi, Zen, Zenek, Zfiner, Zidoo, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ
* 2E, 360, 3Q, 4Good, Accent, Ace, Acer, Advan, Advance, AGM, Ainol, Airness, Airties, AIS, Aiwa, Akai, Alba, Alcatel, Alfawise, Aligator, AllCall, AllDocube, Allview, Allwinner, Altech UEC, altron, Amazon, AMGOO, Amigoo, Amoi, Anry
, ANS, Aoson, Apple, Archos, Arian Space, Ark, ArmPhone, Arnova, ARRIS, Asano, Ask, Assistant, Asus, AT&T, Atom, Audiovox, Avenzo, AVH, Avvio, Axxion, Azumi Mobile, BangOlufsen, Barnes & Noble, BB Mobile, BBK, BDF, Becker, Beeline,
Beelink, Beetel, BenQ, BenQ-Siemens, Bezkam, BGH, BIHEE, Billion, Bird, Bitel, Bitmore, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, Bobarry, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefo
ur, Casio, Casper, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, Chuwi, Clarmin, Cloudfone, Clout, CnM, Coby Kyros, Comio, Compal, Compaq, ComTrade Tesla, Concord, ConCorde, Condor, Contixo, Coolpad, Cowon, CreNova, Crescent,
Cricket, Crius Mea, Crony, Crosscall, Cube, CUBOT, CVTE, Cyrus, Daewoo, Danew, Datang, Datawind, Datsun, Dbtel, Dell, Denver, Desay, DeWalt, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, Divisat, DMM, DNS, DoCoMo, Doffler, D
olamee, Doogee, Doopro, Doov, Dopod, Doro, Droxio, Dune HD, E-Boda, E-Ceros, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Element, Elenberg, Elephone, Eltex, Energizer, Energy Sistem, Enot, Ergo, Ericsson, Ericy,
Essential, Essentielb, Eton, eTouch, Etuline, Eurostar, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, Famoco, Fengxiang, FiGO, FinePower, FireFly Mobile, Fly, FNB, Fondi, FORME, Forstar, Foxc
onn, Freetel, Fujitsu, G-TiDE, Garmin-Asus, Gateway, Gemini, General Mobile, Geotel, Ghia, Ghong, Gigabyte, Gigaset, Ginzzu, Gionee, Globex, GOCLEVER, Goly, Gome, GoMobile, Google, Goophone, Gradiente, Grape, Gree, Grundig, Hafury,
Haier, HannSpree, Hasee, Hi-Level, Highscreen, Hisense, Hoffmann, Homtom, Hoozo, Hosin, Hotwav, How, HP, HTC, Huadoo, Huawei, Humax, Hyrican, Hyundai, i-Cherry, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iDroid, iGet, iHunt, I
kea, iKoMo, iLA, iLife, iMars, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Insignia, Intek, Intex, Inverto, Invin, iOcean, iPro, IQM, Irbis, iRola, iRulu, iTel, iTruck, iVA, iView, iZotron,
JAY-Tech, JFone, Jiayu, Jinga, JKL, Jolla, Just5, K-Touch, Kaan, Kaiomy, Kalley, Kanji, Karbonn, KATV1, Kazam, KDDI, Kempler & Strauss, Keneksi, Kenxinda, Kiano, Kingsun, Kivi, Klipad, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koob
ee, Kooper, KOPO, Koridy, KRONO, Krüger&Matz, KT-Tech, Kuliao, Kumai, Kyocera, Kzen, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava, LCT, Le Pan, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Lephone, Lesia, Lexand, Lexibook,
LG, Lingwin, Loewe, Logic, Logicom, Lumigon, Lumus, Luna, LYF, M.T.T., M4tel, Macoox, Majestic, Mann, Manta Multimedia, Masstel, Maxcom, Maxtron, MAXVI, Maxwest, Maze, meanIT, Mecer, Mecool, Mediacom, MediaTek, Medion, MEEG, MegaFo
n, Meitu, Meizu, Melrose, Memup, Metz, MEU, MicroMax, Microsoft, Minix, Mio, Miray, Mito, Mitsubishi, MIXC, MiXzo, MLLED, MLS, Mobicel, Mobiistar, Mobiola, Mobistel, Mobo, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, Multi
laser, MYFON, MyPhone, Myria, Mystery, MyTab, MyWigo, National, Navon, NEC, Neffos, Neomi, Netgear, NeuImage, Newgen, Newland, Newman, NewsMy, NEXBOX, Nexian, NEXON, Nextbit, NextBook, NextTab, NG Optics, NGM, Nikon, Nintendo, NOA,
Noain, Nobby, Noblex, Nokia, Nomi, Nomu, Nos, Nous, NUU Mobile, Nuvo, Nvidia, NYX Mobile, O+, O2, Obi, Odys, Onda, OnePlus, Onix, ONN, Openbox, OPPO, Opsson, Orange, Orbic, Ordissimo, Ouki, Oukitel, OUYA, Overmax, öwn, Owwo, Oysters
, Oyyu, OzoneHD, Palm, Panacom, Panasonic, Pantech, PCBOX, PCD, PCD Argentina, PEAQ, Pentagram, Phicomm, Philco, Philips, Phonemax, phoneOne, Pioneer, Pixus, Ployer, Plum, PocketBook, POCO, Point of View, Polaroid, PolyPad, Polytron
, Pomp, Positivo, Positivo BGH, PPTV, Prestigio, Primepad, Primux, Prixton, Proline, ProScan, Protruly, PULID, Q-Touch, Q.Bell, Qilive, QMobile, Qtek, Quantum, Quechua, Qumo, R-TV, Ramos, Ravoz, Razer, RCA Tablets, Readboy, Realme,
RED, Rikomagic, RIM, Rinno, Ritmix, Ritzviva, Riviera, Roadrover, Rokit, Roku, Rombica, Ross&Moor, Rover, RoverPad, RT Project, RugGear, Runbo, Ryte, Safaricom, Sagem, Samsung, Sanei, Santin, Sanyo, Savio, Schneider, Sega, Selevisio
n, Selfix, SEMP TCL, Sencor, Sendo, Senkatel, Senseit, Senwa, SFR, Sharp, Shift Phones, Shuttle, Siemens, Sigma, Silent Circle, Simbans, Sky, Skyworth, Smart, Smartfren, Smartisan, Softbank, Sonim, Sony, Sony Ericsson, Soundmax, Soy
es, Spectrum, Spice, SQOOL, Star, Starway, STF Mobile, STK, Stonex, Storex, Sugar, Sumvision, Sunstech, SunVan, Sunvell, SuperSonic, Supra, Swipe, SWISSMOBILITY, Symphony, Syrox, T-Mobile, Takara, TB Touch, TCL, TD Systems, TechniSa
t, TechnoTrend, TechPad, Teclast, Tecno Mobile, Tele2, Telefunken, Telego, Telenor, Telit, Tesco, Tesla, Tetratab, teXet, ThL, Thomson, TIANYU, Time2, Timovi, Tinai, TiPhone, Tolino, Tone, Tooky, Top House, Toplux, Torex, Toshiba, T
ouchmate, TrekStor, Trevi, Tronsmart, True, Tunisie Telecom, Turbo, Turbo-X, TurboKids, TVC, TWM, Twoe, U.S. Cellular, Ugoos, Uhans, Uhappy, Ulefone, Umax, UMIDIGI, Unihertz, Unimax, Uniscope, Unknown, Unnecto, Unonu, Unowhy, UTOK,
UTStarcom, Vastking, Venso, Verizon, Vernee, Vertex, Vertu, Verykool, Vesta, Vestel, VGO TEL, Videocon, Videoweb, ViewSonic, Vinga, Vinsoc, Vipro, Vitelcom, Vivax, Vivo, Vizio, VK Mobile, VKworld, Vodacom, Vodafone, Vonino, Vontar,
Vorago, Vorke, Voto, Voxtel, Voyo, Vsmart, Vsun, Vulcan, Walton, Web TV, Weimei, WellcoM, Wexler, Wieppo, Wigor, Wiko, Wileyfox, Winds, Wink, Wolder, Wolfgang, Wonu, Woo, Wortmann, Woxter, X-BO, X-TIGI, X-View, Xgody, Xiaolajiao, Xi
aomi, Xion, Xolo, Xoro, Xshitou, Yandex, Yarvik, Yes, Yezz, Yota, Ytone, Yu, Yuandao, Yusun, Yxtel, Zeemi, Zen, Zenek, Zfiner, Zidoo, Ziox, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ
</details>
##### Support detect browsers list (263):
##### Support detect browsers list (264):

@@ -177,4 +216,18 @@ <details>

* 115 Browser, 2345 Browser, 360 Browser, 360 Phone Browser, ABrowse, Aloha Browser, Aloha Browser Lite, Amaya, Amiga Aweb, Amiga Voyager, Amigo, Android Browser, ANT Fresco, ANTGalio, AOL Desktop, AOL Shield, Arctic Fox, Arora, Atom, Atomic Web Browser, Avant Browser, Avast Secure Browser, AVG Secure Browser, B-Line, Baidu Browser, Baidu Spark, Basilisk, Beaker Browser, Beamrise, Beonex, BlackBerry Browser, BlackHawk, Blue Browser, Brave, BriskBard, BrowseX, Bunjalloo, Camino, CCleaner, Centaury, Charon, Cheetah Browser, Cheshire, Chrome, Chrome Frame, Chrome Mobile, Chrome Mobile iOS, Chrome Webview, ChromePlus, Chromium, CM Browser, Coast, Coc Coc, Colibri, CometBird, Comodo Dragon, Conkeror, CoolNovo, COS Browser, Crusta, Cunaguaro, Cyberfox, dbrowser, Deepnet Explorer, Delta Browser, Dillo, Dolphin, Dooble, Dorado, DuckDuckGo Privacy Browser, Ecosia, Element Browser, Elements Browser, Elinks, Epic, Espial TV Browser, EUI Browser, eZ Browser, Falkon, Faux Browser, Fennec, Firebird, Firefox, Firefox Focus, Firefox Mobile, Firefox Mobile iOS, Firefox Reality, Firefox Rocket, Fireweb, Fireweb Navigator, Flock, Fluid, FreeU, Galeon, Glass Browser, GNOME Web, Google Earth, Hawk Turbo Browser, Headless Chrome, hola! Browser, HotJava, Huawei Browser, IBrowse, iCab, iCab Mobile, IceCat, IceDragon, Iceweasel, IE Mobile, Internet Explorer, Iridium, Iron, Iron Mobile, Isivioo, Jasmine, Jig Browser, Jig Browser Plus, Jio Browser, K-meleon, K.Browser, Kapiko, Kazehakase, Kindle Browser, Kinza, Kiwi, Konqueror, Kylo, LG Browser, LieBaoFast, Light, Links, Lovense Browser, LuaKit, Lulumi, Lunascape, Lunascape Lite, Lynx, Maxthon, mCent, Meizu Browser, Mercury, MicroB, Microsoft Edge, Midori, Minimo, Mint Browser, MIUI Browser, Mobicip, Mobile Safari, Mobile Silk, Mypal, NCSA Mosaic, NetFront, NetFront Life, NetPositive, Netscape, NetSurf, Nokia Browser, Nokia OSS Browser, Nokia Ovi Browser, Nox Browser, NTENT Browser, Obigo, Oculus Browser, Odyssey Web Browser, Off By One, OhHai Browser, OmniWeb, ONE Browser, Openwave Mobile Browser, Opera, Opera Devices, Opera GX, Opera Mini, Opera Mini iOS, Opera Mobile, Opera Neon, Opera Next, Opera Touch, Oppo Browser, Ordissimo, Oregano, Origin In-Game Overlay, Origyn Web Browser, Otter Browser, Pale Moon, Palm Blazer, Palm Pre, Palm WebPro, Palmscape, Phoenix, Polaris, Polarity, Polypane, Puffin, QQ Browser, QQ Browser Mini, QtWebEngine, Quark, QupZilla, Qutebrowser, Qwant Mobile, Realme Browser, Rekonq, RockMelt, Safari, Safe Exam Browser, Sailfish Browser, SalamWeb, Samsung Browser, SEMC-Browser, Seraphic Sraf, Seznam Browser, Shiira, SimpleBrowser, Sizzy, Skyfire, Sleipnir, Snowshoe, Sogou Explorer, Sogou Mobile Browser, Splash, Sputnik Browser, START Internet Browser, Steam In-Game Overlay, Streamy, Sunrise, Super Fast Browser, SuperBird, surf, Swiftfox, t-online.de Browser, Tao Browser, TenFourFox, Tenta Browser, Tizen Browser, ToGate, Tungsten, TV Bro, TweakStyle, UBrowser, UC Browser, UC Browser Mini, UC Browser Turbo, Uzbl, Vision Mobile Browser, Vivaldi, vivo Browser, VMware AirWatch, Waterfox, Wear Internet Browser, Web Explorer, WebPositive, WeTab Browser, Whale Browser, wOSBrowser, Xiino, Xvast, Yaani Browser, Yahoo! Japan Browser, Yandex Browser, Yandex Browser Lite, Zvu
* 115 Browser, 2345 Browser, 360 Browser, 360 Phone Browser, ABrowse, Aloha Browser, Aloha Browser Lite, Amaya, Amiga Aweb, Amiga Voyager, Amigo, Android Browser, ANT Fresco, ANTGalio, AOL Desktop, AOL Shield, Arctic Fox, Arora, Ato
m, Atomic Web Browser, Avant Browser, Avast Secure Browser, AVG Secure Browser, B-Line, Baidu Browser, Baidu Spark, Basilisk, Beaker Browser, Beamrise, Beonex, BlackBerry Browser, BlackHawk, Blue Browser, Brave, BriskBard, BrowseX,
Bunjalloo, Camino, CCleaner, Centaury, Charon, Cheetah Browser, Cheshire, Chrome, Chrome Frame, Chrome Mobile, Chrome Mobile iOS, Chrome Webview, ChromePlus, Chromium, CM Browser, Coast, Coc Coc, Colibri, CometBird, Comodo Dragon, C
onkeror, CoolNovo, COS Browser, Crusta, Cunaguaro, Cyberfox, dbrowser, Deepnet Explorer, Delta Browser, Dillo, Dolphin, Dooble, Dorado, DuckDuckGo Privacy Browser, Ecosia, Element Browser, Elements Browser, Elinks, Epic, Espial TV B
rowser, EUI Browser, eZ Browser, Falkon, Faux Browser, Fennec, Firebird, Firefox, Firefox Focus, Firefox Mobile, Firefox Mobile iOS, Firefox Reality, Firefox Rocket, Fireweb, Fireweb Navigator, Flock, Fluid, FreeU, Galeon, Glass Bro
wser, GNOME Web, GOG Galaxy, Google Earth, Hawk Turbo Browser, Headless Chrome, hola! Browser, HotJava, Huawei Browser, IBrowse, iCab, iCab Mobile, IceCat, IceDragon, Iceweasel, IE Mobile, Internet Explorer, Iridium, Iron, Iron Mobi
le, Isivioo, Jasmine, Jig Browser, Jig Browser Plus, Jio Browser, K-meleon, K.Browser, Kapiko, Kazehakase, Kindle Browser, Kinza, Kiwi, Konqueror, Kylo, LG Browser, LieBaoFast, Light, Links, Lovense Browser, LuaKit, Lulumi, Lunascap
e, Lunascape Lite, Lynx, Maxthon, mCent, Meizu Browser, Mercury, MicroB, Microsoft Edge, Midori, Minimo, Mint Browser, MIUI Browser, Mobicip, Mobile Safari, Mobile Silk, Mypal, NCSA Mosaic, NetFront, NetFront Life, NetPositive, Nets
cape, NetSurf, Nokia Browser, Nokia OSS Browser, Nokia Ovi Browser, Nox Browser, NTENT Browser, Obigo, Oculus Browser, Odyssey Web Browser, Off By One, OhHai Browser, OmniWeb, ONE Browser, Openwave Mobile Browser, Opera, Opera Devic
es, Opera GX, Opera Mini, Opera Mini iOS, Opera Mobile, Opera Neon, Opera Next, Opera Touch, Oppo Browser, Ordissimo, Oregano, Origin In-Game Overlay, Origyn Web Browser, Otter Browser, Pale Moon, Palm Blazer, Palm Pre, Palm WebPro,
Palmscape, Phoenix, Polaris, Polarity, Polypane, Puffin, QQ Browser, QQ Browser Mini, QtWebEngine, Quark, QupZilla, Qutebrowser, Qwant Mobile, Realme Browser, Rekonq, RockMelt, Safari, Safe Exam Browser, Sailfish Browser, SalamWeb,
Samsung Browser, SEMC-Browser, Seraphic Sraf, Seznam Browser, Shiira, SimpleBrowser, Sizzy, Skyfire, Sleipnir, Snowshoe, Sogou Explorer, Sogou Mobile Browser, Splash, Sputnik Browser, START Internet Browser, Steam In-Game Overlay,
Streamy, Sunrise, Super Fast Browser, SuperBird, surf, Swiftfox, t-online.de Browser, Tao Browser, TenFourFox, Tenta Browser, Tizen Browser, ToGate, Tungsten, TV Bro, TweakStyle, UBrowser, UC Browser, UC Browser Mini, UC Browser Tur
bo, Uzbl, Vision Mobile Browser, Vivaldi, vivo Browser, VMware AirWatch, Waterfox, Wear Internet Browser, Web Explorer, WebPositive, WeTab Browser, Whale Browser, wOSBrowser, Xiino, Xvast, Yaani Browser, Yahoo! Japan Browser, Yandex
Browser, Yandex Browser Lite, Zvu
</details>

@@ -0,0 +0,0 @@ const Benchmark = require('benchmark');

@@ -0,0 +0,0 @@ // User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>

const detector = new (require('../index'));
const AliasDevice = new (require('../parser/device/alias-device'));
const aliasDevice = new (require('../parser/device/alias-device'));
const helper = require('../parser/helper');
const should = require('chai').should;

@@ -9,2 +11,3 @@ const assert = require('chai').assert;

// show console petty table set env DEBUG_TABLE=true
const PERRY_TABLE_ENABLE = process.env.DEBUG_TABLE && process.env.DEBUG_TABLE === 'true';

@@ -128,3 +131,3 @@

let result;
result = AliasDevice.parse(fixture.user_agent);
result = aliasDevice.parse(fixture.user_agent);
perryTable(fixture, result);

@@ -174,3 +177,3 @@ let messageError = 'fixture data\n' + perryJSON(fixture);

if (isObjNotEmpty(fixture.os.version)) {
expect(fixture.os.version, messageError).to.have.deep.equal(result.os.version);
expect(String(fixture.os.version), messageError).to.have.deep.equal(String(result.os.version));
}

@@ -219,2 +222,16 @@ if (isObjNotEmpty(fixture.os.platform)) {

function testsFromFixtureVersionTruncate(fixture){
let result = detector.detect(fixture.user_agent);
let osVersion = helper.versionTruncate(result.os.version, fixture.set);
let clientVersion = helper.versionTruncate(result.client.version, fixture.set);
let messageError = 'fixture data\n' + perryJSON(fixture);
expect(String(osVersion), messageError).to.have.deep.equal(fixture.os_version);
expect(String(clientVersion), messageError).to.have.deep.equal(fixture.client_version);
}
function testsFromFixtureClient(fixture) {

@@ -277,5 +294,11 @@ let result = detector.detect(fixture.user_agent);

this.timeout(6000);
let skipFiles = ['version_truncate.yml'];
ymlClientFiles.forEach(function (file) {
describe('file fixture ' + file, function () {
if(skipFiles.indexOf(file) !== -1) {
return;
}
let fixtureData = YML.load(fixtureFolder + 'clients/' + file);

@@ -340,1 +363,13 @@ let total = fixtureData.length;

});
describe('tests version truncate', function () {
let fixtureData = YML.load(fixtureFolder + 'clients/version_truncate.yml');
let total = fixtureData.length;
fixtureData.forEach((fixture, pos) => {
it(pos + '/' + total, function () {
testsFromFixtureVersionTruncate.call(this, fixture);
});
});
})

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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