mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-11-16 23:21:52 +03:00
Compare commits
214 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8087a1b4f0 | ||
|
|
d30ad46992 | ||
|
|
5302e2df6a | ||
|
|
f3de7b7cea | ||
|
|
c41100ebb5 | ||
|
|
23c5d7765d | ||
|
|
e3d5f7649d | ||
|
|
02af42fcf0 | ||
|
|
57d1ac05f5 | ||
|
|
ea2c82948f | ||
|
|
3b896d50b7 | ||
|
|
5a724cbde8 | ||
|
|
c76139632f | ||
|
|
310cab9c3a | ||
|
|
c6dea6361c | ||
|
|
daab1e76f8 | ||
|
|
f78e468020 | ||
|
|
056f5e358f | ||
|
|
91f3185eb2 | ||
|
|
9bcfbe2460 | ||
|
|
eeaf198197 | ||
|
|
59edeef380 | ||
|
|
f92d409909 | ||
|
|
5af24a6cf7 | ||
|
|
d810feb844 | ||
|
|
32d326b35b | ||
|
|
786d502b01 | ||
|
|
5b8adfef7b | ||
|
|
2e06a34062 | ||
|
|
bf9ac43328 | ||
|
|
3f8b5ba9cf | ||
|
|
1747707be6 | ||
|
|
d41404551f | ||
|
|
ba067bd351 | ||
|
|
a486f28732 | ||
|
|
3218051f07 | ||
|
|
551ad88474 | ||
|
|
097f736c4d | ||
|
|
73c25771dc | ||
|
|
f8e5a1fb4f | ||
|
|
c9d1ab9561 | ||
|
|
f815ca6e9c | ||
|
|
0cbeb7a829 | ||
|
|
bf4fb916ca | ||
|
|
68447d883a | ||
|
|
0b0c7ff617 | ||
|
|
5b2e80bdfd | ||
|
|
ba0f25c19d | ||
|
|
4d3048aaaa | ||
|
|
97e4a89685 | ||
|
|
1a521b867f | ||
|
|
5d4ca2b4c2 | ||
|
|
cf093222e5 | ||
|
|
f2d0db001d | ||
|
|
a6140a17dd | ||
|
|
2033eb4aba | ||
|
|
a886604935 | ||
|
|
b814bcd791 | ||
|
|
df7551c9b6 | ||
|
|
94f2d604d1 | ||
|
|
e5942dc505 | ||
|
|
4ef9841592 | ||
|
|
528e7aea1c | ||
|
|
5e33df3b6b | ||
|
|
a8a4e71345 | ||
|
|
1f6a7e2860 | ||
|
|
db5567d614 | ||
|
|
2f7017b4d5 | ||
|
|
8ffdf232f4 | ||
|
|
98096f1454 | ||
|
|
5fd47ee00d | ||
|
|
6fde0d92d6 | ||
|
|
7f71024161 | ||
|
|
c239ac5167 | ||
|
|
8d3c2d327c | ||
|
|
d11fc47dc9 | ||
|
|
b490110109 | ||
|
|
cb5da5ea4b | ||
|
|
b2d685dd9c | ||
|
|
8d21e34201 | ||
|
|
48d930f0f1 | ||
|
|
55b5b40c7d | ||
|
|
d141915d45 | ||
|
|
8483ac09b3 | ||
|
|
896bdd04e4 | ||
|
|
25fff62540 | ||
|
|
ea04d018bb | ||
|
|
29b613deee | ||
|
|
238391a977 | ||
|
|
384f780a70 | ||
|
|
75e58525fe | ||
|
|
ebb32d1ad9 | ||
|
|
dea39e1693 | ||
|
|
ca417e25a9 | ||
|
|
f54d3fadac | ||
|
|
21fe76742f | ||
|
|
30ac448a0c | ||
|
|
1e82d7d265 | ||
|
|
a5cdc2975b | ||
|
|
180846b80a | ||
|
|
061a7a6145 | ||
|
|
ebebf0acb3 | ||
|
|
15ae12b71d | ||
|
|
4f77fbb441 | ||
|
|
cd25bc1866 | ||
|
|
534ba7dd7c | ||
|
|
0b423078c8 | ||
|
|
779b5dc1e5 | ||
|
|
18a4e5ade2 | ||
|
|
534d577355 | ||
|
|
fe963b58e5 | ||
|
|
6e39c8a553 | ||
|
|
3d4ec6ef3b | ||
|
|
f02a431000 | ||
|
|
b6bddd8c09 | ||
|
|
a29213960c | ||
|
|
f761a89ab2 | ||
|
|
7ddb2575bd | ||
|
|
23ad60ea68 | ||
|
|
97f3368ef0 | ||
|
|
b86860e850 | ||
|
|
157af1e2f2 | ||
|
|
b4cfe1b624 | ||
|
|
95fea1cb26 | ||
|
|
30648cef1d | ||
|
|
10c978eca5 | ||
|
|
fbd2c6853c | ||
|
|
29d5e43342 | ||
|
|
051aa5d284 | ||
|
|
139fbc321a | ||
|
|
191fed9127 | ||
|
|
8fe448fddf | ||
|
|
343d584f8f | ||
|
|
ef54fd35d6 | ||
|
|
79535f5d61 | ||
|
|
ee743946e8 | ||
|
|
f57bd9523d | ||
|
|
ffc03acd64 | ||
|
|
62cc99d7cf | ||
|
|
b542df155a | ||
|
|
15aa73de40 | ||
|
|
336ce2b950 | ||
|
|
20a428c351 | ||
|
|
47c310e203 | ||
|
|
825edbbf91 | ||
|
|
299283c436 | ||
|
|
39e8d4af03 | ||
|
|
03c915277a | ||
|
|
1e7b6d2e8b | ||
|
|
e5e13adc81 | ||
|
|
837042a3e8 | ||
|
|
7b3aa9fc15 | ||
|
|
8e55e00177 | ||
|
|
ca644313d6 | ||
|
|
ca83d4c9c3 | ||
|
|
9bed2b1437 | ||
|
|
3792900410 | ||
|
|
c05e4e837f | ||
|
|
c53a2a1f72 | ||
|
|
559ecaacb6 | ||
|
|
f715023f47 | ||
|
|
36b2275add | ||
|
|
75620c7b6c | ||
|
|
1d3c98a10c | ||
|
|
c39590b673 | ||
|
|
9200e53787 | ||
|
|
6c671dd246 | ||
|
|
535f11bd24 | ||
|
|
642c0399e8 | ||
|
|
3edacddb24 | ||
|
|
acc0b91ff5 | ||
|
|
f726dcd1ae | ||
|
|
383ca587ef | ||
|
|
7c8aa435b2 | ||
|
|
09aa9105dc | ||
|
|
557cc2198d | ||
|
|
f95aced43b | ||
|
|
24950f97ae | ||
|
|
cb30756f48 | ||
|
|
0868e372e0 | ||
|
|
9d431cfddd | ||
|
|
c937400e8e | ||
|
|
8bea5c552a | ||
|
|
3843578de9 | ||
|
|
be9a066029 | ||
|
|
6f2ba7fcd5 | ||
|
|
d72de26ef9 | ||
|
|
80fae81eee | ||
|
|
91fa6dd5cc | ||
|
|
a6b0c165c4 | ||
|
|
999764cf36 | ||
|
|
0e70fc4044 | ||
|
|
3b703a6379 | ||
|
|
4f27489ccf | ||
|
|
2cfd792d24 | ||
|
|
b406b5df2c | ||
|
|
536b9e8d9d | ||
|
|
8d5685771d | ||
|
|
69a568ae49 | ||
|
|
59d947dcab | ||
|
|
62cb5a2e54 | ||
|
|
cd61aef07d | ||
|
|
afe62e915d | ||
|
|
ef4eeadcd8 | ||
|
|
a0b40be04f | ||
|
|
73fb12b379 | ||
|
|
94d3550844 | ||
|
|
14e7dd3f86 | ||
|
|
dff9746527 | ||
|
|
effd766e3b | ||
|
|
c47f458586 | ||
|
|
8c2b84fc31 | ||
|
|
e1905168a8 | ||
|
|
fe5ca1de96 |
3
.github/workflows/run-test.yml
vendored
3
.github/workflows/run-test.yml
vendored
@@ -2,6 +2,9 @@ name: ua-parser-js-run-test
|
|||||||
|
|
||||||
on: [push, pull_request]
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
run-test:
|
run-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "0.7.25",
|
"version": "1.0.37",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Faisal Salman <f@faisalman.com>"
|
"Faisal Salman <f@faisalman.com>"
|
||||||
],
|
],
|
||||||
|
|||||||
82
changelog.md
Normal file
82
changelog.md
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
# UAParser.js Changelog
|
||||||
|
|
||||||
|
# Version 0.7 / 1.0
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Version 0.7.37 / 1.0.37
|
||||||
|
- Fix misidentified WebView token as device model
|
||||||
|
- Increase UA_MAX_LENGTH to 500
|
||||||
|
- Add new browser: Alipay, Klarna, Smart Lenovo Browser, Vivo Browser
|
||||||
|
- Add new device: Ulefone
|
||||||
|
- Improve device detection: Realme, Xiaomi Redmi
|
||||||
|
- Rename browser: Avant, Baidu, Samsung Internet, Sogou Explorer, Sogou Mobile, WeChat
|
||||||
|
|
||||||
|
## Version 0.7.36 / 1.0.36
|
||||||
|
- Add new browser: Snapchat
|
||||||
|
- Add new devices: Infinix, Tecno
|
||||||
|
- Improve device detection: Amazon Fire TV, Xiaomi POCO
|
||||||
|
- Improve OS detection: iOS
|
||||||
|
|
||||||
|
## Version 0.7.35 / 1.0.35
|
||||||
|
- Fix result from user-supplied user-agent being altered
|
||||||
|
- Add new browser: Heytap, TikTok
|
||||||
|
- Add new engine: LibWeb
|
||||||
|
- Add new OS: SerenityOS
|
||||||
|
- Improve browser detection: Yandex
|
||||||
|
- Improve device detection: iPhone, Amazon Echo
|
||||||
|
- Improve OS detection: iOS
|
||||||
|
|
||||||
|
## Version 0.7.34 / 1.0.34
|
||||||
|
- Fix Sharp Mobile detected as Huawei Tablet
|
||||||
|
- Fix IE8 bug
|
||||||
|
- Add new devices : Kobo e-Reader, Apple Watch, and some new SmartTV devices
|
||||||
|
- Add new OS : watchOS
|
||||||
|
- Improve browser detection : Kakao, Naver, Brave
|
||||||
|
- Improve device detection : Oculus, iPad
|
||||||
|
- Improve OS detection : Chrome OS
|
||||||
|
- Using navigator.userAgentData as fallback for device.type & os.name
|
||||||
|
|
||||||
|
## Version 0.7.33 / 1.0.33
|
||||||
|
|
||||||
|
- Add new browser : Cobalt
|
||||||
|
- Identify Macintosh as an Apple device
|
||||||
|
- Fix ReDoS vulnerability
|
||||||
|
|
||||||
|
## Version 0.7.32 / 1.0.32
|
||||||
|
|
||||||
|
- Add new browser : DuckDuckGo, Huawei Browser, LinkedIn
|
||||||
|
- Add new OS : HarmonyOS
|
||||||
|
- Add some Huawei models
|
||||||
|
- Add Sharp Aquos TV
|
||||||
|
- Improve detection Xiaomi Mi CC9
|
||||||
|
- Fix Sony Xperia 1 III misidentified as Acer tablet
|
||||||
|
- Fix Detect Sony BRAVIA as SmartTV
|
||||||
|
- Fix Detect Xiaomi Mi TV as SmartTV
|
||||||
|
- Fix Detect Galaxy Tab S8 as tablet
|
||||||
|
- Fix WeGame mistakenly identified as WeChat
|
||||||
|
- Fix included commas in Safari / Mobile Safari version
|
||||||
|
- Increase UA_MAX_LENGTH to 350
|
||||||
|
|
||||||
|
## Version 0.7.31 / 1.0.2
|
||||||
|
|
||||||
|
- Fix OPPO Reno A5 incorrect detection
|
||||||
|
- Fix TypeError Bug
|
||||||
|
- Use AST to extract regexes and verify them with safe-regex
|
||||||
|
|
||||||
|
## Version 0.7.30 / 1.0.1
|
||||||
|
|
||||||
|
- Add new browser : Obigo, UP.Browser, Klar
|
||||||
|
- Add new device : Oculus, Roku
|
||||||
|
- Add new OS: Maemo, HP-UX, Android-x86, Deepin, elementary OS, GhostBSD, Linspire, Manjaro, Sabayon
|
||||||
|
- Improve detection for Sony Xperia 1ii, LG Android TV, and some more devices
|
||||||
|
- Improve detection for ARM64 CPU
|
||||||
|
- Improve detection for Windows Mobile, Netscape, Mac on PowerPC
|
||||||
|
- Categorize PDA as mobile
|
||||||
|
- Fix Sharp devices misjudged as Huawei
|
||||||
|
- Fix trailing comma for ES3 compatibility
|
||||||
|
- Some code refactor
|
||||||
|
|
||||||
|
# Version 0.8
|
||||||
|
|
||||||
|
Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0.
|
||||||
13
dist/ua-parser.min.js
vendored
13
dist/ua-parser.min.js
vendored
File diff suppressed because one or more lines are too long
13
dist/ua-parser.pack.js
vendored
13
dist/ua-parser.pack.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2012-2021 Faisal Salman <<f@faisalman.com>>
|
Copyright (c) 2012-2023 Faisal Salman <<f@faisalman.com>>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Package.describe({
|
Package.describe({
|
||||||
name: 'faisalman:ua-parser-js',
|
name: 'faisalman:ua-parser-js',
|
||||||
version: '0.7.25',
|
version: '1.0.37',
|
||||||
summary: 'Lightweight JavaScript-based user-agent string parser',
|
summary: 'Lightweight JavaScript-based user-agent string parser',
|
||||||
git: 'https://github.com/faisalman/ua-parser-js.git',
|
git: 'https://github.com/faisalman/ua-parser-js.git',
|
||||||
documentation: 'readme.md'
|
documentation: 'readme.md'
|
||||||
|
|||||||
84
package.json
84
package.json
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"title": "UAParser.js",
|
"title": "UAParser.js",
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "0.7.25",
|
"version": "1.0.37",
|
||||||
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
||||||
"description": "Lightweight JavaScript-based user-agent string parser",
|
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"user-agent",
|
"user-agent",
|
||||||
"parser",
|
"parser",
|
||||||
@@ -13,93 +13,148 @@
|
|||||||
"device",
|
"device",
|
||||||
"cpu",
|
"cpu",
|
||||||
"jquery-plugin",
|
"jquery-plugin",
|
||||||
"ecosystem:jquery"
|
"ecosystem:jquery",
|
||||||
|
"ua-parser-js",
|
||||||
|
"client-hints",
|
||||||
|
"user-agent-detection",
|
||||||
|
"device-detection",
|
||||||
|
"platform-detection",
|
||||||
|
"mobile-detection",
|
||||||
|
"browser-detection",
|
||||||
|
"architecture-detection"
|
||||||
],
|
],
|
||||||
"homepage": "https://github.com/faisalman/ua-parser-js",
|
"homepage": "https://github.com/faisalman/ua-parser-js",
|
||||||
"contributors": [
|
"contributors": [
|
||||||
"Aamir Poonawalla <aamir@urx.com>",
|
"Aamir Poonawalla <aamir@urx.com>",
|
||||||
"Admas <mollases@users.noreply.github.com>",
|
"Admas <mollases@users.noreply.github.com>",
|
||||||
"algenon <m@antonz.ru>",
|
"algenon <m@antonz.ru>",
|
||||||
"Alvin Portillo <portilloalvin@gmail.com>",
|
"Alvin Portillo <alvin@8thwall.com>",
|
||||||
|
"Amumu <yoyo837@hotmail.com>",
|
||||||
"Andrea Vaghi <andrea.vaghi@jobrapido.com>",
|
"Andrea Vaghi <andrea.vaghi@jobrapido.com>",
|
||||||
"Anton Zhiyanov <m@antonz.ru>",
|
"Anton Zhiyanov <m@antonz.ru>",
|
||||||
"Arturo Mejia <amejia@blim.com>",
|
"Arturo Mejia <amejia@blim.com>",
|
||||||
"Arun Rama Reddy <arunramareddy@gmail.com>",
|
"Arun Rama Reddy <arunramareddy@gmail.com>",
|
||||||
"Austin Pray <austin@austinpray.com>",
|
"Austin Pray <austin@austinpray.com>",
|
||||||
|
"Bendeguz <symunona@gmail.com>",
|
||||||
"Benjamin Bertrand <bertrand.design@gmail.com>",
|
"Benjamin Bertrand <bertrand.design@gmail.com>",
|
||||||
"Benjamin Urban <benjamin.urban@sueddeutsche.de>",
|
"Benjamin Urban <benjamin.urban@sueddeutsche.de>",
|
||||||
"boneyao <admin@boneyao.com>",
|
"boneyao <admin@boneyao.com>",
|
||||||
"Carl C Von Lewin <carlchristianlewin@gmail.com>",
|
"Carl C Von Lewin <carlchristianlewin@gmail.com>",
|
||||||
"CESAR RAMOS <c@imagenproactiva.com>",
|
"CESAR RAMOS <c@imagenproactiva.com>",
|
||||||
|
"Chad Killingsworth <ckillingsworth@jackhenry.com>",
|
||||||
"Christopher De Cairos <chris.decairos@gmail.com>",
|
"Christopher De Cairos <chris.decairos@gmail.com>",
|
||||||
|
"Cyrille David <cyrille@qonto.eu>",
|
||||||
"Dario Vladovic <d.vladimyr@gmail.com>",
|
"Dario Vladovic <d.vladimyr@gmail.com>",
|
||||||
|
"David Annez <david.annez@gmail.com>",
|
||||||
"Davit Barbakadze <jayarjo@gmail.com>",
|
"Davit Barbakadze <jayarjo@gmail.com>",
|
||||||
"ddivernois <david-emmanuel.divernois@amadeus.com>",
|
"ddivernois <david-emmanuel.divernois@amadeus.com>",
|
||||||
|
"Deliaz <D3liaz@gmail.com>",
|
||||||
"Demis Palma <demis.palma@gmail.com>",
|
"Demis Palma <demis.palma@gmail.com>",
|
||||||
"dhoko <aurelien@protonmail.com>",
|
"dhoko <aurelien@protonmail.com>",
|
||||||
"dianhe <dianhe@webank.com>",
|
"dianhe <dianhe@webank.com>",
|
||||||
|
"dineshks1 <dineshks1@d.kumar44@outlook.com>",
|
||||||
"Dmitry Tyschenko <dtyschenko@gmail.com>",
|
"Dmitry Tyschenko <dtyschenko@gmail.com>",
|
||||||
"Douglas Li <doug@knotch.it>",
|
"Douglas Li <doug@knotch.it>",
|
||||||
"Dumitru Uzun <contact@duzun.me>",
|
"Dumitru Uzun <contact@duzun.me>",
|
||||||
|
"Dustin <duburns@fanatics.com>",
|
||||||
|
"Elchin Valiyev <elchin.valiyev@autodesk.com>",
|
||||||
|
"Emil Hesslow <hesslow@gmail.com>",
|
||||||
|
"Eric Redon <eric.redon@coox.org>",
|
||||||
"Eric Schrenker <eric.schrenker@gmail.com>",
|
"Eric Schrenker <eric.schrenker@gmail.com>",
|
||||||
"Erik Hesselink <hesselink@gmail.com>",
|
"Erik Hesselink <hesselink@gmail.com>",
|
||||||
"Fabian Becker <halfdan@xnorfz.de>",
|
"Fabian Becker <halfdan@xnorfz.de>",
|
||||||
"Faisal Salman <fyzlman@gmail.com>",
|
"Faisal Salman <f@faisalman.com>",
|
||||||
"Frédéric Camblor <fcamblor@gmail.com>",
|
"Frédéric Camblor <fcamblor@gmail.com>",
|
||||||
|
"Frederik Ring <frederik.ring@gmail.com>",
|
||||||
|
"Gerald Host <me@jacobford.co.uk>",
|
||||||
"Germán M. Bravo <german.mb@gmail.com>",
|
"Germán M. Bravo <german.mb@gmail.com>",
|
||||||
"Grigory Dmitrenko <grigory@snsk.ru>",
|
"Grigory Dmitrenko <grigory@snsk.ru>",
|
||||||
|
"gulpin <gulping.gulpin@gmail.com>",
|
||||||
"Hendrik Helwich <h.helwich@iplabs.de>",
|
"Hendrik Helwich <h.helwich@iplabs.de>",
|
||||||
"Hermann Ebert <ebbmo@HE.local>",
|
"Hermann Ebert <ebbmo@HE.local>",
|
||||||
|
"hr6r <hedian@gmail.com>",
|
||||||
|
"Igor Topal <i.topal@smartweb.com.ua>",
|
||||||
|
"Ildar Kamalov <i.kamalov@adguard.com>",
|
||||||
|
"insanehong <insane.hong@navercorp.com>",
|
||||||
"jackpoll <jackpoll123456@gmail.com>",
|
"jackpoll <jackpoll123456@gmail.com>",
|
||||||
"Jake Mc <startswithaj@users.noreply.github.com>",
|
"Jake Mc <startswithaj@users.noreply.github.com>",
|
||||||
|
"JBYoshi <12983479+JBYoshi@users.noreply.github.com>",
|
||||||
|
"Joey Parrish <joeyparrish@google.com>",
|
||||||
"John Tantalo <john.tantalo@gmail.com>",
|
"John Tantalo <john.tantalo@gmail.com>",
|
||||||
"John Yanarella <jmy@codecatalyst.com>",
|
"John Yanarella <jmy@codecatalyst.com>",
|
||||||
"Jon Buckley <jon@jbuckley.ca>",
|
"Jon Buckley <jon@jbuckley.ca>",
|
||||||
|
"Josh Goldberg <joshuakgoldberg@outlook.com>",
|
||||||
|
"Junki-Ishida <junki_ishida@dwango.co.jp>",
|
||||||
"Kendall Buchanan <kendall@kendagriff.com>",
|
"Kendall Buchanan <kendall@kendagriff.com>",
|
||||||
"Lee Treveil <leetreveil@gmail.com>",
|
"Lee Treveil <leetreveil@gmail.com>",
|
||||||
"leonardo <leofiore@libero.it>",
|
"leonardo <leofiore@libero.it>",
|
||||||
"Levente Balogh <balogh.levente.hu@gmail.com>",
|
"Levente Balogh <balogh.levente.hu@gmail.com>",
|
||||||
"Liam Quinn <lquinn@blackberry.com>",
|
"Liam Quinn <lquinn@blackberry.com>",
|
||||||
"Lithin <lithin@webklipper.com>",
|
"Lithin <lithin@webklipper.com>",
|
||||||
|
"ll-syber <670159357@qq.com>",
|
||||||
"Loris Guignard <loris.guignard@gmail.com>",
|
"Loris Guignard <loris.guignard@gmail.com>",
|
||||||
"Lukas Drgon <lukas.drgon@gmail.com>",
|
"Lukas Drgon <lukas.drgon@gmail.com>",
|
||||||
"Lukas Eipert <leipert@users.noreply.github.com>",
|
"Lukas Eipert <leipert@users.noreply.github.com>",
|
||||||
"Malash <i@malash.me>",
|
"Malash <i@malash.me>",
|
||||||
"Martynas <martynas@firmfirm.co>",
|
"Martynas <martynas@firmfirm.co>",
|
||||||
|
"Masahiko Sato <masasato@yahoo-corp.jp>",
|
||||||
"Matt Brophy <matt@brophy.org>",
|
"Matt Brophy <matt@brophy.org>",
|
||||||
"Max Maurer <maxemanuel.maurer@gmail.com>",
|
"Matthew Origer <karatecowboy@gmail.com>",
|
||||||
"Maximilian Haupt <mail@maximilianhaupt.com>",
|
"Maximilian Haupt <mail@maximilianhaupt.com>",
|
||||||
|
"Max Maurer <maxemanuel.maurer@gmail.com>",
|
||||||
|
"Max Nordlund <max.nordlund@gmail.com>",
|
||||||
"Michael Hess <mhess@connectify.me>",
|
"Michael Hess <mhess@connectify.me>",
|
||||||
|
"MimyyK <michele.marais@hakisa.com>",
|
||||||
"naoh <naoh.cs03g@nctu.edu.tw>",
|
"naoh <naoh.cs03g@nctu.edu.tw>",
|
||||||
|
"Nicholas Ionata <nionata@ufl.edu>",
|
||||||
|
"Nikhil Motiani <nikhil.motiani@outlook.com>",
|
||||||
"Nik Rolls <nik@rolls.cc>",
|
"Nik Rolls <nik@rolls.cc>",
|
||||||
"Nikhil Motiani <nikhil.m@247-inc.com>",
|
"nionata <n.ionata129@gmail.com>",
|
||||||
"niris <nirisix@gmail.com>",
|
"niris <nirisix@gmail.com>",
|
||||||
"Nobuo Okada <nookada@yahoo-corp.jp>",
|
"Nobuo Okada <nookada@yahoo-corp.jp>",
|
||||||
|
"o.drapeza <o.drapeza@tinkoff.ru>",
|
||||||
"otakuSiD <otakusid@gmail.com>",
|
"otakuSiD <otakusid@gmail.com>",
|
||||||
|
"patrick-nurt <github@pereira.dk>",
|
||||||
|
"Pavel Studeny <studeny@avast.com>",
|
||||||
"Peter Dave Hello <PeterDaveHello@users.noreply.github.com>",
|
"Peter Dave Hello <PeterDaveHello@users.noreply.github.com>",
|
||||||
"philippsimon <github@philippsimon.de>",
|
"philippsimon <github@philippsimon.de>",
|
||||||
"Pieter Hendrickx <pieter.hendrickx@belfius.be>",
|
"Pieter Hendrickx <pieter.hendrickx@belfius.be>",
|
||||||
"Piper Chester <piperchester@gmail.com>",
|
"Piper Chester <piperchester@gmail.com>",
|
||||||
|
"Queen Vinyl Darkscratch <vinyldarkscratch@gmail.com>",
|
||||||
|
"Raine Makelainen <raine.makelainen@jolla.com>",
|
||||||
|
"Raman Savaryn <homeneartheocean@gmail.com>",
|
||||||
"Robert Tod <robert@qubit.com>",
|
"Robert Tod <robert@qubit.com>",
|
||||||
|
"roman.savarin <roman.savarin@skywindgroup.com>",
|
||||||
"Ron Korland <ron@testim.io>",
|
"Ron Korland <ron@testim.io>",
|
||||||
"Ross Noble <rosshnoble@gmail.com>",
|
"Ross Noble <rosshnoble@gmail.com>",
|
||||||
|
"ruicong <466403866@qq.com>",
|
||||||
"Sandro Sonntag <sandro.sonntag@adorsys.de>",
|
"Sandro Sonntag <sandro.sonntag@adorsys.de>",
|
||||||
"sgautrea <shanegautreau@gmail.com>",
|
"sgautrea <shanegautreau@gmail.com>",
|
||||||
"Shane Gautreau <sgautrea@opentext.com>",
|
"Shane Gautreau <sgautrea@opentext.com>",
|
||||||
"Shane Thacker <shane@steadymade.com>",
|
"Shane Thacker <shane@steadymade.com>",
|
||||||
"shchotse <topal@mail.ua>",
|
"Shreedhar <shreedhar@uber.com>",
|
||||||
"Simon Eisenmann <simon@longsleep.org>",
|
"Simon Eisenmann <simon@longsleep.org>",
|
||||||
"Simon Lang <me@simonlang.org>",
|
"Simon Lang <me@simonlang.org>",
|
||||||
"Stiekel <histkc@gmail.com>",
|
"Stiekel <histkc@gmail.com>",
|
||||||
|
"sUP <dani3l@gmail.com>",
|
||||||
"Sylvain Gizard <sylvain.gizard@gmail.com>",
|
"Sylvain Gizard <sylvain.gizard@gmail.com>",
|
||||||
"szchenghuang <szchenghuang@gmail.com>",
|
"szchenghuang <szchenghuang@gmail.com>",
|
||||||
|
"Tanguy Krotoff <tkrotoff@gmail.com>",
|
||||||
|
"Tony Tomarchio <tony@tomarchio.cc>",
|
||||||
|
"Ulrich Schmidt <u.schmidt@velian.de>",
|
||||||
"Vadim Kurachevsky <vadim@hmvs.org>",
|
"Vadim Kurachevsky <vadim@hmvs.org>",
|
||||||
|
"Yılmaz <yilmazdemir36@gmail.com>",
|
||||||
|
"yuanyang <work_yuanyang@163.com>",
|
||||||
"Yun Young-jin <yupmin@yupmin-office-macmini.local>",
|
"Yun Young-jin <yupmin@yupmin-office-macmini.local>",
|
||||||
"Insanehong <insae.hong@navercorp.com>"
|
"Zach Bjornson <zbbjornson@gmail.com>"
|
||||||
],
|
],
|
||||||
"main": "src/ua-parser.js",
|
"main": "src/ua-parser.js",
|
||||||
|
"files": [
|
||||||
|
"dist",
|
||||||
|
"src"
|
||||||
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "uglifyjs src/ua-parser.js -o dist/ua-parser.min.js --comments && uglifyjs src/ua-parser.js -o dist/ua-parser.pack.js --comments --compress --mangle",
|
"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",
|
||||||
"test": "jshint src/ua-parser.js && mocha -R nyan test/test.js",
|
"test": "jshint src/ua-parser.js && mocha -R nyan test/test.js",
|
||||||
"test-ci": "jshint src/ua-parser.js && mocha -R spec test/test.js",
|
"test-ci": "jshint src/ua-parser.js && mocha -R spec test/test.js",
|
||||||
"verup": "node ./node_modules/verup",
|
"verup": "node ./node_modules/verup",
|
||||||
@@ -113,13 +168,16 @@
|
|||||||
],
|
],
|
||||||
"regs": [
|
"regs": [
|
||||||
"^((?:\\$|(\\s*\\*\\s*@)|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})",
|
"^((?:\\$|(\\s*\\*\\s*@)|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})",
|
||||||
"^(\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})"
|
"^(\\/?\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/parser": "7.15.8",
|
||||||
|
"@babel/traverse": "7.15.4",
|
||||||
"jshint": "~2.12.0",
|
"jshint": "~2.12.0",
|
||||||
"mocha": "~8.2.0",
|
"mocha": "~8.2.0",
|
||||||
"requirejs": "^2.3.2",
|
"requirejs": "^2.3.2",
|
||||||
|
"safe-regex": "^2.1.1",
|
||||||
"uglify-js": "~3.12.0",
|
"uglify-js": "~3.12.0",
|
||||||
"verup": "^1.3.x"
|
"verup": "^1.3.x"
|
||||||
},
|
},
|
||||||
@@ -147,6 +205,10 @@
|
|||||||
{
|
{
|
||||||
"type": "paypal",
|
"type": "paypal",
|
||||||
"url": "https://paypal.me/faisalman"
|
"url": "https://paypal.me/faisalman"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/faisalman"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
148
readme.md
148
readme.md
@@ -15,40 +15,106 @@
|
|||||||
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).
|
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).
|
||||||
|
|
||||||
* Author : Faisal Salman <<f@faisalman.com>>
|
* Author : Faisal Salman <<f@faisalman.com>>
|
||||||
* Demo : http://faisalman.github.io/ua-parser-js
|
* Demo : https://faisalman.github.io/ua-parser-js
|
||||||
* Source : https://github.com/faisalman/ua-parser-js
|
* Source : https://github.com/faisalman/ua-parser-js
|
||||||
|
* Documentation :
|
||||||
|
* v1 : https://github.com/faisalman/ua-parser-js/tree/1.0.35#documentation
|
||||||
|
* v2 : https://faisalman.github.io/ua-parser-js-docs/v2
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
### From Our Sponsors:
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">
|
||||||
|
<a href="https://opencollective.com/ua-parser-js">↗ Become a sponsor</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
### UAParser([user-agent][,extensions])
|
||||||
|
typeof `user-agent` "string".
|
||||||
|
|
||||||
|
typeof `extensions` "array".
|
||||||
|
|
||||||
|
In The Browser environment you dont need to pass the user-agent string to the function, you can just call the funtion and it should automatically get the string from the `window.navigator.userAgent`, but that is not the case in nodejs. The user-agent string must be passed in nodejs for the function to work.
|
||||||
|
Usually you can find the user agent in:
|
||||||
|
`request.headers["user-agent"]`.
|
||||||
|
|
||||||
|
|
||||||
## Constructor
|
## Constructor
|
||||||
|
When you call `UAParser` with the `new` keyword `UAParser` will return a new instance with an empty result object, you have to call one of the available methods to get the information from the user-agent string.
|
||||||
|
Like so:
|
||||||
* `new UAParser([uastring][,extensions])`
|
* `new UAParser([uastring][,extensions])`
|
||||||
* returns new instance
|
```js
|
||||||
|
let parser = new UAParser("user-agent"); // you need to pass the user-agent for nodejs
|
||||||
|
console.log(parser); // {}
|
||||||
|
let parserResults = parser.getResult();
|
||||||
|
console.log(parserResults);
|
||||||
|
/** {
|
||||||
|
"ua": "",
|
||||||
|
"browser": {},
|
||||||
|
"engine": {},
|
||||||
|
"os": {},
|
||||||
|
"device": {},
|
||||||
|
"cpu": {}
|
||||||
|
} */
|
||||||
|
```
|
||||||
|
|
||||||
|
When you call UAParser without the `new` keyword, it will automatically call `getResult()` function and return the parsed results.
|
||||||
* `UAParser([uastring][,extensions])`
|
* `UAParser([uastring][,extensions])`
|
||||||
* returns result object `{ ua: '', browser: {}, cpu: {}, device: {}, engine: {}, os: {} }`
|
* returns result object `{ ua: '', browser: {}, cpu: {}, device: {}, engine: {}, os: {} }`
|
||||||
|
|
||||||
## Methods
|
## Methods
|
||||||
|
|
||||||
|
#### Methods table
|
||||||
|
The methods are self explanatory, here's a small overview on all the available methods:
|
||||||
|
* `getResult()` - returns all function object calls, user-agent string, browser info, cpu, device, engine, os:
|
||||||
|
`{ ua: '', browser: {}, cpu: {}, device: {}, engine: {}, os: {} }`.
|
||||||
|
|
||||||
|
* `getBrowser()` - returns the browser name and version.
|
||||||
|
* `getDevice()` - returns the device model, type, vendor.
|
||||||
|
* `getEngine()` - returns the current browser engine name and version.
|
||||||
|
* `getOS()` - returns the running operating system name and version.
|
||||||
|
* `getCPU()` - returns CPU architectural design name.
|
||||||
|
* `getUA()` - returns the user-agent string.
|
||||||
|
* `setUA(user-agent)` - set a custom user-agent to be parsed.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
* `getResult()`
|
||||||
|
* returns `{ ua: '', browser: {}, cpu: {}, device: {}, engine: {}, os: {} }`
|
||||||
|
|
||||||
* `getBrowser()`
|
* `getBrowser()`
|
||||||
* returns `{ name: '', version: '' }`
|
* returns `{ name: '', version: '' }`
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Possible 'browser.name':
|
# Possible 'browser.name':
|
||||||
2345Explorer, 360 Browser, Amaya, Android Browser, Arora, Avant, Avast, AVG,
|
2345Explorer, 360 Browser, Alipay, Amaya, Android Browser, Arora, Avant, Avast,
|
||||||
BIDUBrowser, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
|
AVG, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
|
||||||
Chrome Headless, Chrome WebView, Chrome, Chromium, Comodo Dragon, Dillo,
|
Chrome Headless, Chrome WebView, Chrome, Chromium, Cobalt, Comodo Dragon, Dillo,
|
||||||
Dolphin, Doris, Edge, Epiphany, Facebook, Falkon, Fennec, Firebird, Firefox,
|
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
|
||||||
Flock, GSA, GoBrowser, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon,
|
Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Heytap,
|
||||||
Iceape, Iceweasel, Instagram, Iridium, Iron, Jasmine, K-Meleon, Kindle,
|
Huawei Browser, iCab, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon,
|
||||||
Konqueror, LBBROWSER, Line, Links, Lunascape, Lynx, MIUI Browser,
|
Iceweasel, Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk], K-Meleon,
|
||||||
Maemo Browser, Maemo, Maxthon, MetaSr Midori, Minimo, Mobile Safari, Mosaic,
|
Kindle, Klar, Klarna, Konqueror, LBBROWSER, Line, LinkedIn, Links, Lunascape,
|
||||||
Mozilla, NetFront, NetSurf, Netfront, Netscape, NokiaBrowser, Oculus Browser,
|
Lynx, MIUI Browser, Maemo, Maxthon, Midori, Minimo, Mobile Safari, Mosaic,
|
||||||
OmniWeb, Opera Coast, Opera Mini, Opera Mobi, Opera Tablet, Opera, PaleMoon,
|
Mozilla, NetFront, NetSurf, Netfront, Netscape, NokiaBrowser, Obigo,
|
||||||
|
Oculus Browser, OmniWeb, Opera Coast, Opera [Mini/Mobi/Tablet], PaleMoon,
|
||||||
PhantomJS, Phoenix, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite, Quark,
|
PhantomJS, Phoenix, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite, Quark,
|
||||||
QupZilla, RockMelt, Safari, Sailfish Browser, Samsung Browser, SeaMonkey, Silk,
|
QupZilla, RockMelt, Safari, Sailfish Browser, Samsung Internet, SeaMonkey, Silk,
|
||||||
Skyfire, Sleipnir, Slim, SlimBrowser, Swiftfox, Tizen Browser, UCBrowser,
|
Skyfire, Sleipnir, Slim, SlimBrowser, Smart Lenovo Browser, Snapchat,
|
||||||
Vivaldi, Waterfox, WeChat, Weibo, Yandex, baidu, iCab, w3m, Whale Browser...
|
Sogou [Explorer/Mobile], Swiftfox, Tesla, TikTok, Tizen Browser, UCBrowser,
|
||||||
|
UP.Browser, Viera, Vivaldi, Vivo Browser, Waterfox, WeChat, Weibo, Yandex, w3m,
|
||||||
|
Whale Browser, ...
|
||||||
|
|
||||||
# 'browser.version' determined dynamically
|
# 'browser.version' determined dynamically
|
||||||
```
|
```
|
||||||
@@ -60,11 +126,20 @@ Vivaldi, Waterfox, WeChat, Weibo, Yandex, baidu, iCab, w3m, Whale Browser...
|
|||||||
# Possible 'device.type':
|
# Possible 'device.type':
|
||||||
console, mobile, tablet, smarttv, wearable, embedded
|
console, mobile, tablet, smarttv, wearable, embedded
|
||||||
|
|
||||||
|
##########
|
||||||
|
# NOTE: 'desktop' is not a possible device type.
|
||||||
|
# UAParser only reports info directly available from the UA string, which is not the case for 'desktop' device type.
|
||||||
|
# If you wish to detect desktop devices, you must handle the needed logic yourself.
|
||||||
|
# You can read more about it in this issue: https://github.com/faisalman/ua-parser-js/issues/182
|
||||||
|
##########
|
||||||
|
|
||||||
# Possible 'device.vendor':
|
# Possible 'device.vendor':
|
||||||
Acer, Alcatel, Amazon, Apple, Archos, Asus, BenQ, BlackBerry, Dell, Essential,
|
Acer, Alcatel, Amazon, Apple, Archos, ASUS, AT&T, BenQ, BlackBerry, Dell,
|
||||||
GeeksPhone, Google, HP, HTC, Huawei, Jolla, Lenovo, LG, Meizu, Microsoft, Motorola,
|
Essential, Facebook, Fairphone, GeeksPhone, Google, HP, HTC, Huawei, Infinix,
|
||||||
Nexian, Nintendo, Nokia, Nvidia, OnePlus, Ouya, Palm, Panasonic, Pebble, Polytron,
|
Jolla, Kobo, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian, Nintendo, Nokia,
|
||||||
RIM, Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, Xbox, Xiaomi, ZTE, ...
|
Nvidia, OnePlus, OPPO, Ouya, Palm, Panasonic, Pebble, Polytron, Realme, RIM,
|
||||||
|
Roku, Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, Tecno, Tesla, Ulefone,
|
||||||
|
Vivo, Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
|
||||||
|
|
||||||
# 'device.model' determined dynamically
|
# 'device.model' determined dynamically
|
||||||
```
|
```
|
||||||
@@ -74,8 +149,8 @@ RIM, Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, Xbox, Xiaomi, ZTE, ...
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Possible 'engine.name'
|
# Possible 'engine.name'
|
||||||
Amaya, Blink, EdgeHTML, Gecko, Goanna, iCab, KHTML, Links, Lynx, NetFront,
|
Amaya, Blink, EdgeHTML, Flow, Gecko, Goanna, iCab, KHTML, LibWeb, Links, Lynx,
|
||||||
NetSurf, Presto, Tasman, Trident, w3m, WebKit
|
NetFront, NetSurf, Presto, Tasman, Trident, w3m, WebKit
|
||||||
|
|
||||||
# 'engine.version' determined dynamically
|
# 'engine.version' determined dynamically
|
||||||
```
|
```
|
||||||
@@ -85,13 +160,15 @@ NetSurf, Presto, Tasman, Trident, w3m, WebKit
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Possible 'os.name'
|
# Possible 'os.name'
|
||||||
AIX, Amiga OS, Android, Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS,
|
AIX, Amiga OS, Android[-x86], Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS,
|
||||||
Contiki, Fedora, Firefox OS, FreeBSD, Debian, DragonFly, Fuchsia, Gentoo, GNU,
|
Contiki, Fedora, Firefox OS, FreeBSD, Debian, Deepin, DragonFly, elementary OS,
|
||||||
Haiku, Hurd, iOS, Joli, KaiOS, Linpus, Linux, Mac OS, Mageia, Mandriva, MeeGo,
|
Fuchsia, Gentoo, GhostBSD, GNU, Haiku, HarmonyOS, HP-UX, Hurd, iOS, Joli, KaiOS,
|
||||||
Minix, Mint, Morph OS, NetBSD, Nintendo, OpenBSD, OpenVMS, OS/2, Palm, PC-BSD,
|
Linpus, Linspire,Linux, Mac OS, Maemo, Mageia, Mandriva, Manjaro, MeeGo, Minix,
|
||||||
PCLinuxOS, Plan9, PlayStation, QNX, RedHat, RIM Tablet OS, RISC OS, Sailfish,
|
Mint, Morph OS, NetBSD, NetRange, NetTV, Nintendo, OpenBSD, OpenVMS, OS/2, Palm,
|
||||||
Series40, Slackware, Solaris, SUSE, Symbian, Tizen, Ubuntu, Unix, VectorLinux,
|
PC-BSD, PCLinuxOS, Plan9, PlayStation, QNX, Raspbian, RedHat, RIM Tablet OS,
|
||||||
WebOS, Windows [Phone/Mobile], Zenwalk, ...
|
RISC OS, Sabayon, Sailfish, SerenityOS, Series40, Slackware, Solaris, SUSE,
|
||||||
|
Symbian, Tizen, Ubuntu, Unix, VectorLinux, Viera, watchOS, WebOS,
|
||||||
|
Windows [Phone/Mobile], Zenwalk, ...
|
||||||
|
|
||||||
# 'os.version' determined dynamically
|
# 'os.version' determined dynamically
|
||||||
```
|
```
|
||||||
@@ -101,12 +178,10 @@ WebOS, Windows [Phone/Mobile], Zenwalk, ...
|
|||||||
|
|
||||||
```sh
|
```sh
|
||||||
# Possible 'cpu.architecture'
|
# Possible 'cpu.architecture'
|
||||||
68k, amd64, arm[64], avr, ia[32/64], irix[64], mips[64], pa-risc, ppc, sparc[64]
|
68k, amd64, arm[64/hf], avr, ia[32/64], irix[64], mips[64], pa-risc, ppc,
|
||||||
|
sparc[64]
|
||||||
```
|
```
|
||||||
|
|
||||||
* `getResult()`
|
|
||||||
* returns `{ ua: '', browser: {}, cpu: {}, device: {}, engine: {}, os: {} }`
|
|
||||||
|
|
||||||
* `getUA()`
|
* `getUA()`
|
||||||
* returns UA string of current instance
|
* returns UA string of current instance
|
||||||
|
|
||||||
@@ -190,6 +265,8 @@ WebOS, Windows [Phone/Mobile], Zenwalk, ...
|
|||||||
|
|
||||||
## Using node.js
|
## Using node.js
|
||||||
|
|
||||||
|
Note: Device information is not available in the NodeJS environment.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ npm install ua-parser-js
|
$ npm install ua-parser-js
|
||||||
```
|
```
|
||||||
@@ -260,9 +337,10 @@ console.log(myParser.setUA(myUA).getBrowser()); // {name: "MyBrowser", version:
|
|||||||
|
|
||||||
# Development
|
# Development
|
||||||
|
|
||||||
## Sponsors
|
## Backers & Sponsors
|
||||||
|
|
||||||
<a href="https://opencollective.com/ua-parser-js"><img src="https://opencollective.com/ua-parser-js/tiers/backers.svg?avatarHeight=64" height="80"/></a> <a href="https://opencollective.com/ua-parser-js"><img src="https://opencollective.com/ua-parser-js/tiers/sponsors.svg?avatarHeight=64" height="80"/></a>
|
<a href="https://opencollective.com/ua-parser-js"><img src="https://opencollective.com/ua-parser-js/organizations.svg?avatarHeight=64"></a>
|
||||||
|
<a href="https://opencollective.com/ua-parser-js"><img src="https://opencollective.com/ua-parser-js/individuals.svg?avatarHeight=64"></a>
|
||||||
|
|
||||||
<a href="https://www.paypal.me/faisalman/"><img src="https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg" height="40"></a>
|
<a href="https://www.paypal.me/faisalman/"><img src="https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg" height="40"></a>
|
||||||
|
|
||||||
|
|||||||
5
security.md
Normal file
5
security.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
Please report security issues to `f@faisalman.com`
|
||||||
1218
src/ua-parser.js
1218
src/ua-parser.js
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,26 @@
|
|||||||
"major" : "undefined"
|
"major" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Alipay",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; U; Android 10; zh-CN; V2034A Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/69.0.3497.100 UWS/3.22.2.33 Mobile Safari/537.36 UCBS/3.22.2.33_211025173018 NebulaSDK/1.8.100112 Nebula AlipayDefined(nt:WIFI,ws:360|0|2.0) AliApp(AP/10.2.51.7100) AlipayClient/10.2.51.7100 Language/zh-Hans useStatusBar/true isConcaveScreen/true Region/CNAriver/1.0.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Alipay",
|
||||||
|
"version" : "10.2.51.7100",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Alipay",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 10; VOG-AL00 Build/HUAWEIVOG-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/105.0.5195.148 MYWeb/0.2.103.0_20230131112530 UWS/3.22.2.9999 UCBS/3.22.2.9999_220000000000 Mobile Safari/537.36 NebulaSDK/1.8.100112 Nebula AlipayDefined(nt:WIFI,ws:360|0|3.0) AliApp(AP/10.3.50.9999) AlipayClient/10.3.50.9999 Language/en isConcaveScreen/true Region/CN ProductType/devAriver/1.0.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Alipay",
|
||||||
|
"version" : "10.3.50.9999",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Android Browser on Galaxy Nexus",
|
"desc" : "Android Browser on Galaxy Nexus",
|
||||||
"ua" : "Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
|
"ua" : "Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
|
||||||
@@ -64,7 +84,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-G925F Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.0 Chrome/38.0.2125.102 Mobile Safari/537.36",
|
"ua" : "Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-G925F Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.0 Chrome/38.0.2125.102 Mobile Safari/537.36",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Samsung Browser",
|
"name" : "Samsung Internet",
|
||||||
"version" : "3.0",
|
"version" : "3.0",
|
||||||
"major" : "3"
|
"major" : "3"
|
||||||
}
|
}
|
||||||
@@ -94,7 +114,7 @@
|
|||||||
"ua" : "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB5; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
|
"ua" : "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB5; Avant Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Avant ",
|
"name" : "Avant",
|
||||||
"version" : "undefined",
|
"version" : "undefined",
|
||||||
"major" : "undefined"
|
"major" : "undefined"
|
||||||
}
|
}
|
||||||
@@ -124,11 +144,71 @@
|
|||||||
"ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; baidubrowser 1.x)",
|
"ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; baidubrowser 1.x)",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "baidubrowser",
|
"name" : "Baidu",
|
||||||
"version" : "1.x",
|
"version" : "1.x",
|
||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Baidu",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 9; Redmi Note 5 Build/PKQ1.180904.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/110.0.5481.153 Mobile Safari/537.36 bdbrowser/6.4.0.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Baidu",
|
||||||
|
"version" : "6.4.0.4",
|
||||||
|
"major" : "6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Baidu",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.4.9999.1900 Safari/537.31 BDSpark/26.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Baidu",
|
||||||
|
"version" : "26.4",
|
||||||
|
"major" : "26"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Baidu",
|
||||||
|
"ua" : "Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) BaiduHD/5.4.0.0 Mobile/10A406 Safari/8536.25",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Baidu",
|
||||||
|
"version" : "5.4.0.0",
|
||||||
|
"major" : "5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "BaiDu Browser",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.7 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Baidu",
|
||||||
|
"version" : "8.7",
|
||||||
|
"major" : "8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "baidu app on iOS",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 main%2F1.0 baiduboxapp/11.12.0.18 (Baidu; P2 12.1.2)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Baidu",
|
||||||
|
"version" : "11.12.0.18",
|
||||||
|
"major" : "11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "baidu app on Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 8.1.0; BKK-AL10 Build/HONORBKK-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/11.11 baiduboxapp/11.11.0.0 (Baidu; P1 8.1.0)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Baidu",
|
||||||
|
"version" : "11.11.0.0",
|
||||||
|
"major" : "11"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Bolt",
|
"desc" : "Bolt",
|
||||||
"ua" : "Mozilla/5.0 (X11; 78; CentOS; US-en) AppleWebKit/527+ (KHTML, like Gecko) Bolt/0.862 Version/3.0 Safari/523.15",
|
"ua" : "Mozilla/5.0 (X11; 78; CentOS; US-en) AppleWebKit/527+ (KHTML, like Gecko) Bolt/0.862 Version/3.0 Safari/523.15",
|
||||||
@@ -159,6 +239,16 @@
|
|||||||
"major" : "2"
|
"major" : "2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Camino on Mac",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Camino",
|
||||||
|
"version" : "2.2.1",
|
||||||
|
"major" : "2"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Chimera",
|
"desc" : "Chimera",
|
||||||
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6",
|
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6",
|
||||||
@@ -179,6 +269,56 @@
|
|||||||
"major" : "20"
|
"major" : "20"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Chrome",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4758.102 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Chrome",
|
||||||
|
"version" : "100.0.4758.102",
|
||||||
|
"major" : "100"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Chrome 112.0 on Win10",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Chrome",
|
||||||
|
"version" : "112.0.0.0",
|
||||||
|
"major" : "112"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Chrome 112.0 on macOS",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Chrome",
|
||||||
|
"version" : "112.0.0.0",
|
||||||
|
"major" : "112"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Chrome 111.0 on Linux",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Chrome",
|
||||||
|
"version" : "111.0.0.0",
|
||||||
|
"major" : "111"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Chrome 111.0 on ChromeOS",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; CrOS x86_64 14541.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Chrome",
|
||||||
|
"version" : "111.0.0.0",
|
||||||
|
"major" : "111"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Chrome Headless",
|
"desc" : "Chrome Headless",
|
||||||
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36",
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome Safari/537.36",
|
||||||
@@ -279,6 +419,16 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "DuckDuckGo",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 8.1.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile DuckDuckGo/5 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "DuckDuckGo",
|
||||||
|
"version" : "5",
|
||||||
|
"major" : "5"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Epiphany",
|
"desc" : "Epiphany",
|
||||||
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",
|
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",
|
||||||
@@ -289,6 +439,16 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Flow",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) EkiohFlow/5.7.4.30559 Flow/5.7.4 (like Gecko Firefox/53.0 rv:53.0)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Flow",
|
||||||
|
"version" : "5.7.4",
|
||||||
|
"major" : "5"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Waterfox",
|
"desc" : "Waterfox",
|
||||||
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.2.2 Waterfox/55.2.2",
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.2.2 Waterfox/55.2.2",
|
||||||
@@ -349,6 +509,26 @@
|
|||||||
"major" : "undefined"
|
"major" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Klarna in-App Browser for iOS",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Klarna/23.36.223",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Klarna",
|
||||||
|
"version" : "23.36.223",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Klarna in-App Browser for Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 12; moto g(60)s Build/S3RLS32.114-25-13; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 Klarna/23.36.215",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Klarna",
|
||||||
|
"version" : "23.36.215",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Instagram in-App Browser for iOS",
|
"desc" : "Instagram in-App Browser for iOS",
|
||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 142.0.0.22.109 (iPhone12,5; iOS 14_1; en_US; en-US; scale=3.00; 1242x2688; 214888322) NW/1",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 14_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Instagram 142.0.0.22.109 (iPhone12,5; iOS 14_1; en_US; en-US; scale=3.00; 1242x2688; 214888322) NW/1",
|
||||||
@@ -389,6 +569,26 @@
|
|||||||
"major" : "15"
|
"major" : "15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:100.0) Gecko/20100101 Firefox/100.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Firefox",
|
||||||
|
"version" : "100.0",
|
||||||
|
"major" : "100"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox Reality",
|
||||||
|
"ua" : "Mozilla/5.0 (Android 7.1.2; Mobile VR; rv:65.0) Gecko/65.0 Firefox/65.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Firefox Reality",
|
||||||
|
"version" : "65.0",
|
||||||
|
"major" : "65"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Firefox-based browser",
|
"desc" : "Firefox-based browser",
|
||||||
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0 AppName/1.0",
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0 AppName/1.0",
|
||||||
@@ -409,6 +609,16 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox for Maemo (Nokia N900)",
|
||||||
|
"ua" : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Fennec",
|
||||||
|
"version" : "10.0.1",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc": "Firefox Focus",
|
"desc": "Firefox Focus",
|
||||||
"ua": "Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/6.1.1 Chrome/68.0.3440.91 Mobile Safari/537.36",
|
"ua": "Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/6.1.1 Chrome/68.0.3440.91 Mobile Safari/537.36",
|
||||||
@@ -438,6 +648,46 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "HuaweiBrowser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; LYA-AL00;HMSCore/4.0.0 GMS/10.4 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.102 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Huawei Browser",
|
||||||
|
"version" : "10.0.3.102",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "HuaweiBrowser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; LYA-AL00;HMSCore/4.0.0 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.102 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Huawei Browser",
|
||||||
|
"version" : "10.0.3.102",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "HuaweiBrowser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; LYA-AL00;GMS/10.4 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.102 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Huawei Browser",
|
||||||
|
"version" : "10.0.3.102",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "HuaweiBrowser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; LYA-AL00 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.102 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Huawei Browser",
|
||||||
|
"version" : "10.0.3.102",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "IceApe",
|
"desc" : "IceApe",
|
||||||
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.19) Gecko/20110817 Iceape/2.0.14",
|
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.19) Gecko/20110817 Iceape/2.0.14",
|
||||||
@@ -548,6 +798,26 @@
|
|||||||
"major" : "5"
|
"major" : "5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Smart Lenovo Browser",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.0.10171 SLBChan/8",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Smart Lenovo Browser",
|
||||||
|
"version" : "8.0.0.10171",
|
||||||
|
"major" : "8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Smart Lenovo Browser",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 SLBrowser/9.0.0.9011 SLBChan/10",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Smart Lenovo Browser",
|
||||||
|
"version" : "9.0.0.9011",
|
||||||
|
"major" : "9"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "LINE on Android",
|
"desc" : "LINE on Android",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 5.0; ASUS_Z00AD Build/LRX21V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 Line/6.5.1/IAB",
|
"ua" : "Mozilla/5.0 (Linux; Android 5.0; ASUS_Z00AD Build/LRX21V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 Line/6.5.1/IAB",
|
||||||
@@ -708,6 +978,16 @@
|
|||||||
"major" : "8"
|
"major" : "8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Netscape 6",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows; U; Win95; de-DE; rv:0.9.2) Gecko/20010726 Netscape6/6.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Netscape",
|
||||||
|
"version" : "6.1",
|
||||||
|
"major" : "6"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Nokia Browser",
|
"desc" : "Nokia Browser",
|
||||||
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
|
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
|
||||||
@@ -718,6 +998,26 @@
|
|||||||
"major" : "7"
|
"major" : "7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Obigo",
|
||||||
|
"ua" : "LG-GS290/V100 Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Obigo",
|
||||||
|
"version" : "WAP2.0",
|
||||||
|
"major" : "2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Obigo",
|
||||||
|
"ua" : "LG/KU990i/v10a Browser/Obigo-Q05A/3.6 MMS/LG-MMS-V1.0/1.2 Java/ASVM/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Obigo",
|
||||||
|
"version" : "Q05A",
|
||||||
|
"major" : "05"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Oculus Browser",
|
"desc" : "Oculus Browser",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 7.0; SM-G920I Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/3.4.9 SamsungBrowser/4.0 Chrome/57.0.2987.146 Mobile VR Safari/537.36",
|
"ua" : "Mozilla/5.0 (Linux; Android 7.0; SM-G920I Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/3.4.9 SamsungBrowser/4.0 Chrome/57.0.2987.146 Mobile VR Safari/537.36",
|
||||||
@@ -728,6 +1028,16 @@
|
|||||||
"major" : "3"
|
"major" : "3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Oculus Browser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Oculus Browser",
|
||||||
|
"version" : "15.0.0.0.22.280317669",
|
||||||
|
"major" : "15"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "OmniWeb",
|
"desc" : "OmniWeb",
|
||||||
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.48",
|
"ua" : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.48",
|
||||||
@@ -919,11 +1229,41 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Samsung Browser",
|
"desc" : "Samsung Internet for Android",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG-SM-G925A Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36",
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG-SM-G925A Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Samsung Browser",
|
"name" : "Samsung Internet",
|
||||||
|
"version" : "4.0",
|
||||||
|
"major" : "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Samsung Internet for Tizen Mobile",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Tizen 2.3; SAMSUNG SM-Z130H) AppleWebKit/537.3 (KHTML, like Gecko) SamsungBrowser/1.0 Mobile Safari/537.3",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Samsung Internet",
|
||||||
|
"version" : "1.0",
|
||||||
|
"major" : "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Samsung Internet for Smart-TV",
|
||||||
|
"ua" : "Mozilla/5.0 (SMART-TV; Linux; Tizen 2.3) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.0 TV Safari/538.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Samsung Internet",
|
||||||
|
"version" : "1.0",
|
||||||
|
"major" : "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Samsung Internet for Gear VR",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-G925K Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile VR Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Samsung Internet",
|
||||||
"version" : "4.0",
|
"version" : "4.0",
|
||||||
"major" : "4"
|
"major" : "4"
|
||||||
}
|
}
|
||||||
@@ -938,6 +1278,16 @@
|
|||||||
"major" : "2"
|
"major" : "2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "SeaMonkey on Mac",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "SeaMonkey",
|
||||||
|
"version" : "2.7.1",
|
||||||
|
"major" : "2"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Silk Browser",
|
"desc" : "Silk Browser",
|
||||||
"ua" : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84)",
|
"ua" : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84)",
|
||||||
@@ -978,6 +1328,26 @@
|
|||||||
"major" : "undefined"
|
"major" : "undefined"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Tesla",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Tesla QtCarBrowser Safari/601.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Tesla",
|
||||||
|
"version" : "undefined",
|
||||||
|
"major" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Tesla",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chromium/79.0.3945.130 Chrome/79.0.3945.130 Safari/537.36 Tesla/2020.16.2.1-e99c70fff409",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Tesla",
|
||||||
|
"version" : "2020.16.2.1-e99c70fff409",
|
||||||
|
"major" : "2020"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Tizen Browser",
|
"desc" : "Tizen Browser",
|
||||||
"ua" : "Mozilla/5.0 (Linux; U; Tizen/1.0 like Android; en-us; AppleWebKit/534.46 (KHTML, like Gecko) Tizen Browser/1.0 Mobile",
|
"ua" : "Mozilla/5.0 (Linux; U; Tizen/1.0 like Android; en-us; AppleWebKit/534.46 (KHTML, like Gecko) Tizen Browser/1.0 Mobile",
|
||||||
@@ -1048,6 +1418,16 @@
|
|||||||
"major" : "7"
|
"major" : "7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "UPBrowser",
|
||||||
|
"ua" : "BenQ-CF61/1.00/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.3.0.4.c.1.102 (GUI) MMP/2.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "UP.Browser",
|
||||||
|
"version" : "6.3.0.4.c.1.102",
|
||||||
|
"major" : "6"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc": "WeChat on iOS",
|
"desc": "WeChat on iOS",
|
||||||
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H321 MicroMessenger/6.3.6 NetType/WIFI Language/zh_CN",
|
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H321 MicroMessenger/6.3.6 NetType/WIFI Language/zh_CN",
|
||||||
@@ -1069,7 +1449,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc": "WeChat on Android",
|
"desc": "WeiBo on Android",
|
||||||
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16A366 Weibo (iPhone8,2__weibo__8.9.3__iphone__os12.0)",
|
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16A366 Weibo (iPhone8,2__weibo__8.9.3__iphone__os12.0)",
|
||||||
"expect":
|
"expect":
|
||||||
{
|
{
|
||||||
@@ -1088,6 +1468,36 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Vivaldi on Mac",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.88 Safari/537.36 Vivaldi/2.4.1488.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Vivaldi",
|
||||||
|
"version" : "2.4.1488.36",
|
||||||
|
"major" : "2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Vivo Browser",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 13; 23049RAD8C; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/87.0.4280.141 Mobile Safari/537.36 VivoBrowser/16.7.1.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Vivo Browser",
|
||||||
|
"version" : "16.7.1.1",
|
||||||
|
"major" : "16"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Viera",
|
||||||
|
"ua" : "HbbTV/1.2.1 (;Panasonic;VIERA 2015;3.014;a001-003 4000-0000;)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "VIERA",
|
||||||
|
"version" : "undefined",
|
||||||
|
"major" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Yandex",
|
"desc" : "Yandex",
|
||||||
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5402 Safari/536.5",
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5402 Safari/536.5",
|
||||||
@@ -1098,6 +1508,66 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Yandex",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; arm_64; Android 11; M2101K7AG) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.125 YaApp_Android/22.70 YaSearchBrowser/22.70 BroPP/1.0 SA/3 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Yandex",
|
||||||
|
"version" : "22.70",
|
||||||
|
"major" : "22"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Yandex",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 YaBrowser/23.3.0.2246 Yowser/2.5 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Yandex",
|
||||||
|
"version" : "23.3.0.2246",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Yandex on Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; arm_64; Android 13; SM-G965F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.5672.76 YaBrowser/21.3.4.59 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Yandex",
|
||||||
|
"version" : "21.3.4.59",
|
||||||
|
"major" : "21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Yandex on iPhone",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 YaBrowser/23.3.3.330 Mobile/15E148 Safari/604.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Yandex",
|
||||||
|
"version" : "23.3.3.330",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Yandex on iPad",
|
||||||
|
"ua" : "Mozilla/5.0 (iPad; CPU OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 YaBrowser/23.3.3.330 Mobile/15E148 Safari/605.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Yandex",
|
||||||
|
"version" : "23.3.3.330",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Yandex on iPod",
|
||||||
|
"ua" : "Mozilla/5.0 (iPod touch; CPU iPhone 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 YaBrowser/23.3.3.330 Mobile/15E148 Safari/605.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Yandex",
|
||||||
|
"version" : "23.3.3.330",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Puffin",
|
"desc" : "Puffin",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; Lenovo P2a42 Build/MMB29M; en-us) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Puffin/6.0.8.15804AP",
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; Lenovo P2a42 Build/MMB29M; en-us) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Puffin/6.0.8.15804AP",
|
||||||
@@ -1109,7 +1579,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Microsoft Edge",
|
"desc" : "Microsoft Edge 0.1",
|
||||||
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0",
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
@@ -1118,6 +1588,36 @@
|
|||||||
"major" : "12"
|
"major" : "12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Microsoft Edge 42",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Edge",
|
||||||
|
"version" : "17.17134",
|
||||||
|
"major" : "17"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Microsoft Edge 44",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Edge",
|
||||||
|
"version" : "18.17763",
|
||||||
|
"major" : "18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Microsoft Edge 100",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.1108.55 Safari/537.36 Edg/100.0.1108.55",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Edge",
|
||||||
|
"version" : "100.0.1108.55",
|
||||||
|
"major" : "100"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Microsoft Edge on iOS",
|
"desc" : "Microsoft Edge on iOS",
|
||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 EdgiOS/42.1.1.0 Mobile/15F79 Safari/605.1.15",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 EdgiOS/42.1.1.0 Mobile/15F79 Safari/605.1.15",
|
||||||
@@ -1168,6 +1668,26 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox on iOS",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/112.0 Mobile/15E148 Safari/605.1.15",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Firefox",
|
||||||
|
"version" : "112.0",
|
||||||
|
"major" : "112"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox iOS using iPad",
|
||||||
|
"ua" : "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Firefox",
|
||||||
|
"version" : "1.0",
|
||||||
|
"major" : "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "QQ on iOS",
|
"desc" : "QQ on iOS",
|
||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",
|
||||||
@@ -1188,32 +1708,12 @@
|
|||||||
"major" : "6"
|
"major" : "6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"desc" : "baidu app on iOS",
|
|
||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 main%2F1.0 baiduboxapp/11.12.0.18 (Baidu; P2 12.1.2)",
|
|
||||||
"expect" :
|
|
||||||
{
|
|
||||||
"name" : "baiduboxapp",
|
|
||||||
"version" : "11.12.0.18",
|
|
||||||
"major" : "11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"desc" : "baidu app on Android",
|
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 8.1.0; BKK-AL10 Build/HONORBKK-AL10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/11.11 baiduboxapp/11.11.0.0 (Baidu; P1 8.1.0)",
|
|
||||||
"expect" :
|
|
||||||
{
|
|
||||||
"name" : "baiduboxapp",
|
|
||||||
"version" : "11.11.0.0",
|
|
||||||
"major" : "11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"desc" : "WeChat Desktop for Windows Built-in Browser",
|
"desc" : "WeChat Desktop for Windows Built-in Browser",
|
||||||
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400",
|
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "WeChat(Win) Desktop",
|
"name" : "WeChat",
|
||||||
"version" : "3.43.901.400",
|
"version" : "3.43.901.400",
|
||||||
"major" : "3"
|
"major" : "3"
|
||||||
}
|
}
|
||||||
@@ -1223,11 +1723,21 @@
|
|||||||
"ua" : "mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/53.0.2785.116 safari/537.36 qbcore/4.0.1301.400 qqbrowser/9.0.2524.400 mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/81.0.4044.138 safari/537.36 nettype/wifi micromessenger/7.0.20.1781(0x6700143b) windowswechat",
|
"ua" : "mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/53.0.2785.116 safari/537.36 qbcore/4.0.1301.400 qqbrowser/9.0.2524.400 mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/81.0.4044.138 safari/537.36 nettype/wifi micromessenger/7.0.20.1781(0x6700143b) windowswechat",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "WeChat(Win) Desktop",
|
"name" : "WeChat",
|
||||||
"version" : "4.0.1301.400",
|
"version" : "4.0.1301.400",
|
||||||
"major" : "4"
|
"major" : "4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Supposed not to be detected as WeChat",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.124 Safari/537.36 qblink wegame.exe WeGame/5.1.1.11100 QBCore/3.70.107.400 QQBrowser/9.0.2524.400",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "QQBrowser",
|
||||||
|
"version" : "9.0.2524.400",
|
||||||
|
"major" : "9"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "GSA on iOS",
|
"desc" : "GSA on iOS",
|
||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) GSA/30.1.161623614 Mobile/14F89 Safari/602.1",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) GSA/30.1.161623614 Mobile/14F89 Safari/602.1",
|
||||||
@@ -1243,7 +1753,19 @@
|
|||||||
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0",
|
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "MetaSr"
|
"name" : "Sogou Explorer",
|
||||||
|
"version" : "1.0",
|
||||||
|
"major" : "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Sogou Mobile Browser",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 SogouMSE,SogouMobileBrowser/3.7.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Sogou Mobile",
|
||||||
|
"version" : "3.7.4",
|
||||||
|
"major" : "3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1254,16 +1776,6 @@
|
|||||||
"name" : "LBBROWSER"
|
"name" : "LBBROWSER"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"desc" : "BaiDu Browser",
|
|
||||||
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.7 Safari/537.36",
|
|
||||||
"expect" :
|
|
||||||
{
|
|
||||||
"name" : "BIDUBrowser",
|
|
||||||
"version" : "8.7",
|
|
||||||
"major" : "8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"desc" : "2345 Browser",
|
"desc" : "2345 Browser",
|
||||||
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116",
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116",
|
||||||
@@ -1303,5 +1815,201 @@
|
|||||||
"version" : "2.6.90.14",
|
"version" : "2.6.90.14",
|
||||||
"major" : "2"
|
"major" : "2"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Electron",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Atom/1.41.0 Chrome/69.0.3497.128 Electron/4.2.7 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Electron",
|
||||||
|
"version" : "4.2.7",
|
||||||
|
"major" : "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "IE11 on Windows 7 (ua length >255)",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64; APCPMS=^N201205020840572565478A37A6F9C41BD33F_9975^; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MARKANYEPS#25118; Zoom 3.6.0; rv:11.0) like Gecko",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "IE",
|
||||||
|
"version" : "11.0",
|
||||||
|
"major" : "11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "LinkedIn",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [LinkedInApp]",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "LinkedIn"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Safari including comma in minor version number",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6,2 Safari/605.1.15",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Safari",
|
||||||
|
"version" : "15.6,2",
|
||||||
|
"major" : "15"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Mobile Safari including comma in minor version number",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6,2 Mobile/15E148 Safari/604.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Mobile Safari",
|
||||||
|
"version" : "15.6,2",
|
||||||
|
"major" : "15"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Cobalt 23 Master",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) Cobalt/23.master.0.0-devel (unlike Gecko) v8/8.8.278.8-jit gles Starboard/15",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "Cobalt",
|
||||||
|
"version": "23.0.0",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Cobalt 23 LTS",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) Cobalt/23.lts.1.0-qa (unlike Gecko) v8/8.8.278.8-jit gles Starboard/15",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "Cobalt",
|
||||||
|
"version": "23.1.0",
|
||||||
|
"major" : "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Cobalt 11",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) Cobalt/11.0-qa (unlike Gecko) Starboard/6",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "Cobalt",
|
||||||
|
"version": "11.0",
|
||||||
|
"major" : "11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Cobalt 9",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) Cobalt/9.0-qa (unlike Gecko) Starboard/4",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "Cobalt",
|
||||||
|
"version": "9.0",
|
||||||
|
"major" : "9"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "KakaoTalk App Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 12; SM-G988N Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.79 Mobile Safari/537.36;KAKAOTALK 2409760",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "KAKAOTALK",
|
||||||
|
"version": "2409760",
|
||||||
|
"major" : "2409760"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "KakaoStory App Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 12; SM-G988N Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.79 Mobile Safari/537.36 KAKAOSTORY/6.8.3_21046",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "KAKAOSTORY",
|
||||||
|
"version": "6.8.3_21046",
|
||||||
|
"major" : "6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "KakaoTalk App iOS",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU; iPhone OS 15_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 BizWebView KAKAOTALK 9.7.6",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "KAKAOTALK",
|
||||||
|
"version": "9.7.6",
|
||||||
|
"major" : "9"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Naver App Android",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 12; SM-G988N Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/90.0.4430.232 Whale/1.0.0.0 Crosswalk/26.90.3.21 Mobile Safari/537.36 NAVER(inapp; search; 1010; 11.11.2)",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "NAVER",
|
||||||
|
"version": "11.11.2",
|
||||||
|
"major" : "11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Naver App iOS",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/605.1 NAVER(inapp; search; 720; 10.25.0; 11PRO)",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "NAVER",
|
||||||
|
"version": "10.25.0",
|
||||||
|
"major" : "10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "TikTok",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 11; 21061119AG Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 trill_2022109040 JsSdk/1.0 NetType/MOBILE Channel/googleplay AppName/musical_ly app_version/21.9.4 ByteLocale/ru-RU ByteFullLocale/ru-RU Region/KG BytedanceWebview/d8a21c6",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "TikTok",
|
||||||
|
"version": "21.9.4",
|
||||||
|
"major" : "21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "TikTok",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 14_8 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 musical_ly_21.1.0 JsSdk/2.0 NetType/4G Channel/App Store ByteLocale/ru Region/RU ByteFullLocale/ru-RU isDarkMode/1 WKWebView/1 BytedanceWebview/d8a21c6",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "TikTok",
|
||||||
|
"version": "21.1.0",
|
||||||
|
"major" : "21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "TikTok",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 10; STK-LX1 Build/HONORSTK-LX1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/110.0.5481.153 Mobile Safari/537.36 musical_ly_2022803040 JsSdk/1.0 NetType/WIFI Channel/huaweiadsglobal_int AppName/musical_ly app_version/28.3.4 ByteLocale/en ByteFullLocale/en Region/IQ Spark/1.2.7-alpha.8 AppVersion/28.3.4 PIA/1.5.11 BytedanceWebview/d8a21c6",
|
||||||
|
"expect" : {
|
||||||
|
"name" : "TikTok",
|
||||||
|
"version": "28.3.4",
|
||||||
|
"major" : "28"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Chrome Mobile",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Chrome",
|
||||||
|
"version" : "58.0.3029.83",
|
||||||
|
"major" : "58"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox Mobile",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W) AppleWebKit/537.36 (KHTML, like Gecko) FxiOS/7.5b3349 Mobile/14F89 Safari/603.2.4",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Firefox",
|
||||||
|
"version" : "7.5b3349",
|
||||||
|
"major" : "7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Firefox Mobile",
|
||||||
|
"ua" : "Mozilla/5.0 (Android 5.0; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Firefox",
|
||||||
|
"version" : "41.0",
|
||||||
|
"major" : "41"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Snapchat",
|
||||||
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Snapchat/12.33.0.36 (like Safari/8614.1.25.0.31, panda)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Snapchat",
|
||||||
|
"version" : "12.33.0.36",
|
||||||
|
"major" : "12"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -23,6 +23,46 @@
|
|||||||
"architecture" : "amd64"
|
"architecture" : "amd64"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Vivaldi on Windows",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "amd64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Vivaldi on Windows",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "amd64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Vivaldi on Linux",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "amd64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Vivaldi on Linux",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Vivaldi/6.0.2979.18",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "ia32"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc": "Xiaomi POCO M2 Pro",
|
||||||
|
"ua": "Mozilla/5.0 (Linux; arm_64; Android 11; POCO M2 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.7.42.00 SA/3 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm64"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "win64",
|
"desc" : "win64",
|
||||||
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; .NET4.0E; .NET4.0C)",
|
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; Win64; x64; Trident/6.0; .NET4.0E; .NET4.0C)",
|
||||||
@@ -40,7 +80,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "ARMv6",
|
"desc" : "ARM",
|
||||||
|
"ua" : "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 635) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARMv61",
|
||||||
"ua" : "Mozilla/5.0 (X11; U; Linux armv61; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1",
|
"ua" : "Mozilla/5.0 (X11; U; Linux armv61; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
@@ -49,12 +97,76 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"desc" : "ARMv7",
|
"desc" : "ARMv7",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux ARMv7) WebKitGTK+/3.4.9 vimprobable2",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARMv7l",
|
||||||
|
"ua" : "Mozilla/5.0 (SMART-TV; X11; Linux armv7l) AppleWebKit/537.42 (KHTML, like Gecko) Chromium/25.0.1349.2 Chrome/25.0.1349.2 Safari/537.42",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARMv7l",
|
||||||
"ua" : "Mozilla/5.0 (X11; CrOS armv7l 9765.85.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.123 Safari/537.36",
|
"ua" : "Mozilla/5.0 (X11; CrOS armv7l 9765.85.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.123 Safari/537.36",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"architecture" : "arm"
|
"architecture" : "arm"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Nokia N900 Linux mobile",
|
||||||
|
"ua" : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARMEABI",
|
||||||
|
"ua" : "[FBAN/FB4A;FBAV/237.0.0.44.120;FBBV/170693408;FBDM/{density=1.75,width=720,height=1280};FBLC/en_US;FBRV/172067074;FBCR/ ;FBMF/samsung;FBBD/samsung;FBPN/com.facebook.katana;FBDV/SM-S367VL;FBSV/9;FBBK/1;FBOP/19;FBCA/armeabi-v7a:armeabi;]",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARMv8",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux armv8l; rv:45.0) Gecko/20100101 Firefox/45.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "AARCH64",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; CrOS aarch64 13310.93.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.133 Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARM64",
|
||||||
|
"ua" : "Mozilla/5.0 (Windows NT 10.0; ARM64; RM-1096) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "ARM64",
|
||||||
|
"ua" : "Mozilla/5.0 (Linux; arm_64; Android 9; HRY-LX1T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 YaBrowser/19.12.1.121.00 Mobile Safari/537.36",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "arm64"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Pocket PC",
|
"desc" : "Pocket PC",
|
||||||
"ua" : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",
|
"ua" : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",
|
||||||
@@ -87,6 +199,14 @@
|
|||||||
"architecture" : "ppc"
|
"architecture" : "ppc"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Mac OS X on PowerPC using Firefox",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "ppc"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "UltraSPARC",
|
"desc" : "UltraSPARC",
|
||||||
"ua" : "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5",
|
"ua" : "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.9b5) Gecko/2008032620 Firefox/3.0b5",
|
||||||
@@ -95,6 +215,14 @@
|
|||||||
"architecture" : "sparc"
|
"architecture" : "sparc"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "sparc64",
|
||||||
|
"ua" : "ELinks (0.4.3; NetBSD 3.0.2PATCH sparc64; 141x19)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "sparc64"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "QuickTime",
|
"desc" : "QuickTime",
|
||||||
"ua" : "QuickTime/7.5.6 (qtver=7.5.6;cpu=IA32;os=Mac 10.5.8)",
|
"ua" : "QuickTime/7.5.6 (qtver=7.5.6;cpu=IA32;os=Mac 10.5.8)",
|
||||||
@@ -110,5 +238,13 @@
|
|||||||
{
|
{
|
||||||
"architecture" : "amd64"
|
"architecture" : "amd64"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "IRIX64",
|
||||||
|
"ua" : "Mozilla/4.8C-SGI [en] (X11; U; IRIX64 6.5 IP27",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"architecture" : "irix64"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -17,6 +17,15 @@
|
|||||||
"version" : "12.0"
|
"version" : "12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "Flow",
|
||||||
|
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) EkiohFlow/5.7.4.30559 Flow/5.7.4 (like Gecko Firefox/53.0 rv:53.0)",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Flow",
|
||||||
|
"version" : "5.7.4.30559"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "Gecko",
|
"desc" : "Gecko",
|
||||||
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110111 Firefox/4.0b9pre",
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:2.0b9pre) Gecko/20110111 Firefox/4.0b9pre",
|
||||||
@@ -44,6 +53,15 @@
|
|||||||
"version" : "4.5.4"
|
"version" : "4.5.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "LibWeb",
|
||||||
|
"ua" : "Mozilla/4.0 (SerenityOS; x86) LibWeb+LibJS (Not KHTML, nor Gecko) LibWeb",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "LibWeb",
|
||||||
|
"version" : "undefined"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "NetFront",
|
"desc" : "NetFront",
|
||||||
"ua" : "Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0",
|
"ua" : "Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0",
|
||||||
@@ -97,5 +115,50 @@
|
|||||||
"name" : "WebKit",
|
"name" : "WebKit",
|
||||||
"version" : "537.36"
|
"version" : "537.36"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "WebOS TV 5.x",
|
||||||
|
"ua" : "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 WebAppManager",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Blink",
|
||||||
|
"version" : "68.0.3440.106"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "WebOS TV 4.x",
|
||||||
|
"ua" : "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.34 Safari/537.36 WebAppManager",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Blink",
|
||||||
|
"version" : "53.0.2785.34"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "WebOS TV 3.x",
|
||||||
|
"ua" : "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.2.1 Chrome/38.0.2125.122 Safari/537.36 WebAppManager",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "Blink",
|
||||||
|
"version" : "38.0.2125.122"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "WebOS TV 2.x",
|
||||||
|
"ua" : "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/538.2 (KHTML, like Gecko) Large Screen WebAppManager Safari/538.2",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "WebKit",
|
||||||
|
"version" : "538.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"desc" : "WebOS TV 1.x",
|
||||||
|
"ua" : "Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.41 (KHTML, like Gecko) Large Screen WebAppManager Safari/537.41",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "WebKit",
|
||||||
|
"version" : "537.41"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
75
test/test.js
75
test/test.js
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user