Skip to content

Commit ab77baf

Browse files
committed
Bump version 1.0.39 (mirror of 0.7.39)
2 parents 693a83d + 2ad60d4 commit ab77baf

12 files changed

+642
-67
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ua-parser-js",
3-
"version": "1.0.38",
3+
"version": "1.0.39",
44
"authors": [
55
"Faisal Salman <f@faisalman.com>"
66
],

changelog.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44

55
Version 1.0.x is basically the equivalent of version 0.7.x. See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
66

7+
## Version 0.7.39 / 1.0.39
8+
- Add new feature: executable command using `npx ua-parser-js "[INSERT-UA-HERE]"`
9+
- Add new browser: Helio, Pico Browser, Wolvic
10+
- Add new device vendor: itel, Nothing, TCL
11+
- Improve browser detection: ICEBrowser, Klar, QQBrowser, Quark, Rekonq, Sleipnir
12+
- Improve device detection: Xiaomi Pro, Amazon Echo Show, Samsung Galaxy Watch
13+
- Removed from browser: Viera
14+
715
## Version 0.7.38 / 1.0.38
816
- Fix error on getOS() when userAgentData.platform is undefined
917
- Add new browser: Opera GX, Twitter

dist/ua-parser.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ua-parser.pack.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

license.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2012-2023 Faisal Salman <<f@faisalman.com>>
3+
Copyright (c) 2012-2024 Faisal Salman <<f@faisalman.com>>
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Package.describe({
22
name: 'faisalman:ua-parser-js',
3-
version: '1.0.38',
3+
version: '1.0.39',
44
summary: 'Lightweight JavaScript-based user-agent string parser',
55
git: 'https://github.com/faisalman/ua-parser-js.git',
66
documentation: 'readme.md'

package.json

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,27 @@
11
{
22
"title": "UAParser.js",
33
"name": "ua-parser-js",
4-
"version": "1.0.38",
4+
"version": "1.0.39",
55
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
66
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
77
"keywords": [
8+
"ua-parser-js",
89
"user-agent",
9-
"parser",
1010
"browser",
1111
"engine",
1212
"os",
1313
"device",
14+
"mobile",
1415
"cpu",
15-
"jquery-plugin",
16-
"ecosystem:jquery",
17-
"ua-parser-js",
18-
"client-hints",
19-
"user-agent-detection",
20-
"device-detection",
21-
"platform-detection",
22-
"mobile-detection",
23-
"browser-detection",
24-
"architecture-detection"
16+
"platform",
17+
"detect",
18+
"javascript",
19+
"jquery",
20+
"typescript",
21+
"node-js",
22+
"client-hints"
2523
],
26-
"homepage": "https://github.com/faisalman/ua-parser-js",
24+
"homepage": "https://uaparser.dev",
2725
"contributors": [
2826
"Aamir Poonawalla <aamir@urx.com>",
2927
"Admas <mollases@users.noreply.github.com>",
@@ -153,6 +151,7 @@
153151
"dist",
154152
"src"
155153
],
154+
"bin": "./script/cli.js",
156155
"scripts": {
157156
"build": "uglifyjs src/ua-parser.js -o dist/ua-parser.min.js --comments '/^ UA/' && uglifyjs src/ua-parser.js -o dist/ua-parser.pack.js --comments '/^ UA/' --compress --mangle",
158157
"test": "jshint src/ua-parser.js && mocha -R nyan test/test.js",
@@ -195,7 +194,7 @@
195194
"test": "test"
196195
},
197196
"bugs": "https://github.com/faisalman/ua-parser-js/issues",
198-
"demo": "https://faisalman.github.io/ua-parser-js",
197+
"demo": "https://uaparser.dev",
199198
"download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.min.js",
200199
"funding": [
201200
{

readme.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
JavaScript library to detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data with relatively small footprint (~17KB minified, ~6KB gzipped) that can be used either in browser (client-side) or node.js (server-side).
1616

1717
* Author : Faisal Salman <<f@faisalman.com>>
18-
* Demo : https://faisalman.github.io/ua-parser-js
18+
* Demo : https://uaparser.dev
1919
* Source : https://github.com/faisalman/ua-parser-js
2020
* Documentation :
21-
* v1 : https://github.com/faisalman/ua-parser-js/tree/1.0.35#documentation
22-
* v2 : https://faisalman.github.io/ua-parser-js-docs/v2
21+
* v1 : https://github.com/faisalman/ua-parser-js/tree/1.0.39#documentation
22+
* v2 : https://docs.uaparser.dev
2323

2424
***
2525

@@ -36,6 +36,8 @@ JavaScript library to detect Browser, Engine, OS, CPU, and Device type/model fro
3636
</tbody>
3737
</table>
3838

39+
<a href="https://uaparser.dev"><img src="https://raw.githubusercontent.com/faisalman/ua-parser-js/gh-pages/images/uap-header.png"></a>
40+
3941
---
4042

4143
# Documentation
@@ -102,19 +104,19 @@ The methods are self explanatory, here's a small overview on all the available m
102104
AVG, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
103105
Chrome Headless, Chrome WebView, Chrome, Chromium, Cobalt, Comodo Dragon, Dillo,
104106
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
105-
Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Heytap,
107+
Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Helio, Heytap,
106108
Huawei Browser, iCab, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon,
107109
Iceweasel, Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk], K-Meleon,
108110
Kindle, Klar, Klarna, Konqueror, LBBROWSER, Line, LinkedIn, Links, Lunascape,
109111
Lynx, MIUI Browser, Maemo, Maxthon, Midori, Minimo, Mobile Safari, Mosaic,
110112
Mozilla, NetFront, NetSurf, Netfront, Netscape, NokiaBrowser, Obigo,
111113
Oculus Browser, OmniWeb, Opera Coast, Opera [GX/Mini/Mobi/Tablet], PaleMoon,
112-
PhantomJS, Phoenix, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite, Quark,
113-
QupZilla, RockMelt, Safari, Sailfish Browser, Samsung Internet, SeaMonkey, Silk,
114-
Skyfire, Sleipnir, Slim, SlimBrowser, Smart Lenovo Browser, Snapchat,
114+
PhantomJS, Phoenix, Pico Browser, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite,
115+
Quark, QupZilla, RockMelt, Safari, Sailfish Browser, Samsung Internet, SeaMonkey,
116+
Silk, Skyfire, Sleipnir, Slim, SlimBrowser, Smart Lenovo Browser, Snapchat,
115117
Sogou [Explorer/Mobile], Swiftfox, Tesla, TikTok, Tizen Browser, Twitter,
116-
UCBrowser, UP.Browser, Viera, Vivaldi, Vivo Browser, Waterfox, WeChat, Weibo,
117-
Yandex, w3m, Whale Browser, ...
118+
UCBrowser, UP.Browser, Vivaldi, Vivo Browser, w3m, Waterfox, WeChat, Weibo,
119+
Whale Browser, Wolvic, Yandex, ...
118120

119121
# 'browser.version' determined dynamically
120122
```
@@ -136,10 +138,10 @@ console, mobile, tablet, smarttv, wearable, embedded
136138
# Possible 'device.vendor':
137139
Acer, Alcatel, Amazon, Apple, Archos, ASUS, AT&T, BenQ, BlackBerry, Dell,
138140
Essential, Facebook, Fairphone, GeeksPhone, Google, HP, HTC, Huawei, Infinix,
139-
Jolla, Kobo, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian, Nintendo, Nokia,
140-
Nvidia, OnePlus, OPPO, Ouya, Palm, Panasonic, Pebble, Polytron, Realme, RIM,
141-
Roku, Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, Tecno, Tesla, Ulefone,
142-
Vivo, Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
141+
itel, Jolla, Kobo, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian, Nintendo,
142+
Nokia, Nothing, Nvidia, OnePlus, OPPO, Ouya, Palm, Panasonic, Pebble, Polytron,
143+
Realme, RIM, Roku, Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, TCL, Tecno,
144+
Tesla, Ulefone, Vivo, Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
143145

144146
# 'device.model' determined dynamically
145147
```
@@ -321,6 +323,14 @@ console.log(parseInt($.ua.browser.version.split('.')[0], 10)); // 4
321323
$('body').addClass('ua-browser-' + $.ua.browser.name + ' ua-devicetype-' + $.ua.device.type);
322324
```
323325

326+
## Using npx
327+
328+
UAParser.js can be executed as a command that returns the parsed data in JSON format:
329+
330+
```sh
331+
$ npx ua-parser-js "[INSERT-UA-HERE]"
332+
```
333+
324334
## Using Extension
325335

326336
* `UAParser([uastring,] extensions)`
@@ -364,7 +374,7 @@ Made with [contributors-img](https://contrib.rocks).
364374

365375
MIT License
366376

367-
Copyright (c) 2012-2021 Faisal Salman <<f@faisalman.com>>
377+
Copyright (c) 2012-2024 Faisal Salman <<f@faisalman.com>>
368378

369379
Permission is hereby granted, free of charge, to any person obtaining a copy
370380
of this software and associated documentation files (the "Software"), to deal

script/cli.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env node
2+
3+
const UAParser = require('ua-parser-js');
4+
console.log(JSON.stringify(process.argv.slice(2).map(ua => UAParser(ua)), null, 4));

src/ua-parser.js

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/////////////////////////////////////////////////////////////////////////////////
2-
/* UAParser.js v1.0.38
2+
/* UAParser.js v1.0.39
33
Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
44
MIT License *//*
55
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
@@ -17,7 +17,7 @@
1717
/////////////
1818

1919

20-
var LIBVERSION = '1.0.38',
20+
var LIBVERSION = '1.0.39',
2121
EMPTY = '',
2222
UNKNOWN = '?',
2323
FUNC_TYPE = 'function',
@@ -60,7 +60,8 @@
6060
ZEBRA = 'Zebra',
6161
FACEBOOK = 'Facebook',
6262
CHROMIUM_OS = 'Chromium OS',
63-
MAC_OS = 'Mac OS';
63+
MAC_OS = 'Mac OS',
64+
SUFFIX_BROWSER = ' Browser';
6465

6566
///////////
6667
// Helper
@@ -171,7 +172,7 @@
171172
return (i === UNKNOWN) ? undefined : i;
172173
}
173174
}
174-
return str;
175+
return map.hasOwnProperty('*') ? map['*'] : str;
175176
};
176177

177178
///////////////
@@ -232,17 +233,20 @@
232233
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i // Baidu
233234
], [VERSION, [NAME, 'Baidu']], [
234235
/(kindle)\/([\w\.]+)/i, // Kindle
235-
/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer
236+
/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
237+
// Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
236238
// Trident based
237239
/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser
238240
/(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer
239241

240242
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
241-
/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
242-
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
243-
/(heytap|ovi)browser\/([\d\.]+)/i, // Heytap/Ovi
243+
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,
244+
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio
245+
/(heytap|ovi)browser\/([\d\.]+)/i, // HeyTap/Ovi
244246
/(weibo)__([\d\.]+)/i // Weibo
245247
], [NAME, VERSION], [
248+
/quark(?:pc)?\/([-\w\.]+)/i // Quark
249+
], [VERSION, [NAME, 'Quark']], [
246250
/\bddg\/([\w\.]+)/i // DuckDuckGo
247251
], [VERSION, [NAME, 'DuckDuckGo']], [
248252
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i // UCBrowser
@@ -276,9 +280,11 @@
276280
/fxios\/([-\w\.]+)/i // Firefox for iOS
277281
], [VERSION, [NAME, FIREFOX]], [
278282
/\bqihu|(qi?ho?o?|360)browser/i // 360
279-
], [[NAME, '360 ' + BROWSER]], [
280-
/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i
281-
], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser
283+
], [[NAME, '360' + SUFFIX_BROWSER]], [
284+
/\b(qq)\/([\w\.]+)/i // QQ
285+
], [[NAME, /(.+)/, '$1Browser'], VERSION], [
286+
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
287+
], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
282288
/samsungbrowser\/([\w\.]+)/i // Samsung Internet
283289
], [VERSION, [NAME, SAMSUNG + ' Internet']], [
284290
/(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon
@@ -291,7 +297,7 @@
291297
/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, // Tesla
292298
/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i // QQBrowser/2345 Browser
293299
], [NAME, VERSION], [
294-
/(lbbrowser)/i, // LieBao Browser
300+
/(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq
295301
/\[(linkedin)app\]/i // LinkedIn App for iOS & Android
296302
], [NAME], [
297303

@@ -337,23 +343,24 @@
337343
// Gecko based
338344
/(navigator|netscape\d?)\/([-\w\.]+)/i // Netscape
339345
], [[NAME, 'Netscape'], VERSION], [
346+
/(wolvic)\/([\w\.]+)/i // Wolvic
347+
], [NAME, VERSION], [
340348
/mobile vr; rv:([\w\.]+)\).+firefox/i // Firefox Reality
341349
], [VERSION, [NAME, FIREFOX+' Reality']], [
342350
/ekiohf.+(flow)\/([\w\.]+)/i, // Flow
343351
/(swiftfox)/i, // Swiftfox
344-
/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
345-
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar
352+
/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,
353+
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror
346354
/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
347355
// Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
348356
/(firefox)\/([\w\.]+)/i, // Other Firefox-based
349357
/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla
350358

351359
// Other
352-
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
353-
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser
354-
/(links) \(([\w\.]+)/i, // Links
355-
/panasonic;(viera)/i // Panasonic Viera
356-
], [NAME, VERSION], [
360+
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
361+
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser
362+
/(links) \(([\w\.]+)/i // Links
363+
], [NAME, [VERSION, /_/g, '.']], [
357364

358365
/(cobalt)\/([\w\.]+)/i // Cobalt
359366
], [NAME, [VERSION, /master.|lts./, ""]]
@@ -400,8 +407,8 @@
400407
// Samsung
401408
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
402409
], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [
403-
/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
404-
/samsung[- ]([-\w]+)/i,
410+
/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
411+
/samsung[- ]((?!sm-[lr])[-\w]+)/i,
405412
/sec-(sgh\w+)/i
406413
], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [
407414

@@ -432,7 +439,7 @@
432439
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
433440
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
434441
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models
435-
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i // Xiaomi Mi
442+
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i // Xiaomi Mi
436443
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
437444
/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, // Redmi Pad
438445
/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets
@@ -500,7 +507,7 @@
500507

501508
// Amazon
502509
/(alexa)webm/i,
503-
/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i, // Kindle Fire without Silk / Echo Show
510+
/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i, // Kindle Fire without Silk / Echo Show
504511
/(kf[a-z]+)( bui|\)).+silk\//i // Kindle Fire HD
505512
], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [
506513
/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i // Fire Phone
@@ -529,6 +536,14 @@
529536
/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony
530537
], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [
531538

539+
// TCL
540+
/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i
541+
], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [
542+
543+
// itel
544+
/(itel) ((\w+))/i
545+
], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [
546+
532547
// Acer
533548
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
534549
], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [
@@ -542,6 +557,10 @@
542557
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
543558
], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [
544559

560+
// Nothing
561+
/droid.+; (a(?:015|06[35]|142p?))/i
562+
], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [
563+
545564
// MIXED
546565
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
547566
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
@@ -672,6 +691,8 @@
672691
// WEARABLES
673692
///////////////////
674693

694+
/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i // Samsung Galaxy Watch
695+
], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [
675696
/((pebble))app/i // Pebble
676697
], [VENDOR, MODEL, [TYPE, WEARABLE]], [
677698
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i // Apple Watch

0 commit comments

Comments
 (0)