mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
Bump version 2.0.0-alpha.3
This commit is contained in:
parent
6e26e38247
commit
d168b75a3a
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "2.0.0-alpha.2",
|
"version": "2.0.0-alpha.3",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Faisal Salman <f@faisalman.com>"
|
"Faisal Salman <f@faisalman.com>"
|
||||||
],
|
],
|
||||||
|
@ -13,6 +13,13 @@
|
|||||||
- Add support for ES module `import { UAParser } from 'ua-parser-js'`
|
- Add support for ES module `import { UAParser } from 'ua-parser-js'`
|
||||||
- Provide Enums `'ua-parser-js/enums'`
|
- Provide Enums `'ua-parser-js/enums'`
|
||||||
- Provide Extensions `'ua-parser-js/extensions'`
|
- Provide Extensions `'ua-parser-js/extensions'`
|
||||||
|
- Provide Helpers `'ua-parser-js/helpers'`
|
||||||
|
|
||||||
|
## Version 2.0.0-alpha.3
|
||||||
|
- Add `withFeatureCheck()` method
|
||||||
|
- Add `isFrozenUA()` method in `helpers` submodule
|
||||||
|
- Add `MediaPlayers` & `Modules` in `extensions` submodule
|
||||||
|
- Fix issue with ESM import
|
||||||
|
|
||||||
## Version 2.0.0-alpha.2
|
## Version 2.0.0-alpha.2
|
||||||
- Fix browser result always returning Chromium when using `withClientHints()`
|
- Fix browser result always returning Chromium when using `withClientHints()`
|
||||||
|
4
dist/ua-parser.min.js
vendored
4
dist/ua-parser.min.js
vendored
File diff suppressed because one or more lines are too long
4
dist/ua-parser.pack.js
vendored
4
dist/ua-parser.pack.js
vendored
File diff suppressed because one or more lines are too long
@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 23.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 161.93 86.82" style="enable-background:new 0 0 161.93 86.82;" xml:space="preserve">
|
|
||||||
<style type="text/css">
|
|
||||||
.st0{fill:#232628;}
|
|
||||||
.st1{fill:#E62E3A;}
|
|
||||||
.st2{fill:none;}
|
|
||||||
</style>
|
|
||||||
<g>
|
|
||||||
<path class="st0" d="M116.93,0.68H103.5V17.5h13.43c15.24,0,25.53,10.53,25.53,25.53v0.24c0,15-10.28,25.29-25.53,25.29H103.5
|
|
||||||
v16.82h13.43c26.62,0,45-18.51,45-42.34v-0.24C161.93,18.95,143.54,0.68,116.93,0.68"/>
|
|
||||||
<path class="st1" d="M8.11,0.68h52.02v16.33H24.07l-0.97,14.64c3.39-0.85,6.41-1.45,11.13-1.45c16.7,0,29.64,7.99,29.64,27.22
|
|
||||||
c0,18.03-12.7,29.4-32.18,29.4c-13.55,0-23.47-4.84-31.7-12.7l11.25-13.43c6.41,5.81,12.7,9.19,20.2,9.19
|
|
||||||
c8.71,0,14.15-4.23,14.15-11.86c0-7.38-5.93-11.61-15-11.61c-5.32,0-10.16,1.45-14.16,3.15L5.69,42.42L8.11,0.68z"/>
|
|
||||||
<polygon class="st1" points="86.14,0 98.84,0 98.84,85.29 80.45,85.29 80.45,18.87 65.69,22.5 61.82,7.26 "/>
|
|
||||||
</g>
|
|
||||||
<rect x="144.06" y="110.12" class="st2" width="566.93" height="113.39"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.2 KiB |
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "2.0.0-alpha.2",
|
"version": "2.0.0-alpha.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "2.0.0-alpha.2",
|
"version": "2.0.0-alpha.3",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Package.describe({
|
Package.describe({
|
||||||
name: 'faisalman:ua-parser-js',
|
name: 'faisalman:ua-parser-js',
|
||||||
version: '2.0.0-alpha.2',
|
version: '2.0.0-alpha.3',
|
||||||
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'
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"title": "UAParser.js",
|
"title": "UAParser.js",
|
||||||
"name": "ua-parser-js",
|
"name": "ua-parser-js",
|
||||||
"version": "2.0.0-alpha.2",
|
"version": "2.0.0-alpha.3",
|
||||||
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
||||||
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
|
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Enums for UAParser.js v2.0.0-alpha.2
|
/* Enums for UAParser.js v2.0.0-alpha.3
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
MIT License */
|
MIT License */
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// Source: /src/enums/ua-parser-enums.js
|
// Source: /src/enums/ua-parser-enums.js
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Enums for UAParser.js v2.0.0-alpha.2
|
/* Enums for UAParser.js v2.0.0-alpha.3
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
MIT License */
|
MIT License */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Extensions for UAParser.js v2.0.0-alpha.2
|
/* Extensions for UAParser.js v2.0.0-alpha.3
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
MIT License */
|
MIT License */
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// Source: /src/extensions/ua-parser-extensions.js
|
// Source: /src/extensions/ua-parser-extensions.js
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Extensions for UAParser.js v2.0.0-alpha.2
|
/* Extensions for UAParser.js v2.0.0-alpha.3
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
MIT License */
|
MIT License */
|
||||||
@ -28,109 +28,225 @@ const Apps = Object.freeze({
|
|||||||
const Bots = Object.freeze({
|
const Bots = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// Googlebot / BingBot / MSNBot / FacebookBot
|
// Googlebot / BingBot / MSNBot / FacebookBot
|
||||||
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
|
[/((?:google|bing|msn|facebook)bot(?:[\-imagevdo]{0,6})|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
|
||||||
|
|
||||||
|
// GPTBot - https://platform.openai.com/docs/gptbot
|
||||||
|
[/(gptbot)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
|
||||||
|
|
||||||
// Slackbot - https://api.slack.com/robots
|
// Slackbot - https://api.slack.com/robots
|
||||||
[/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
[/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const CLIs = Object.freeze({
|
||||||
|
browser : [
|
||||||
|
// wget / curl / lynx
|
||||||
|
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
const ExtraDevices = Object.freeze({
|
const ExtraDevices = Object.freeze({
|
||||||
device : [
|
device : [[
|
||||||
[
|
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
||||||
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
|
||||||
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
|
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
|
||||||
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
|
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
|
||||||
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
|
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
|
||||||
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
|
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
|
||||||
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
|
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
||||||
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
|
||||||
|
|
||||||
/(u304aa)/i // AT&T
|
/(u304aa)/i // AT&T
|
||||||
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\bsie-(\w*)/i // Siemens
|
/\bsie-(\w*)/i // Siemens
|
||||||
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(rct\w+) b/i // RCA Tablets
|
/\b(rct\w+) b/i // RCA Tablets
|
||||||
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
|
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
|
||||||
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
|
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
|
||||||
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
|
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
|
||||||
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(tm\d{3}\w+) b/i
|
/\b(tm\d{3}\w+) b/i
|
||||||
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(k88) b/i // ZTE K Series Tablet
|
/\b(k88) b/i // ZTE K Series Tablet
|
||||||
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(nx\d{3}j) b/i // ZTE Nubia
|
/\b(nx\d{3}j) b/i // ZTE Nubia
|
||||||
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
|
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
|
||||||
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
|
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
|
||||||
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
|
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
|
||||||
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b([yr]\d{2}) b/i,
|
/\b([yr]\d{2}) b/i,
|
||||||
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
|
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
|
||||||
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
|
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
|
||||||
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
|
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
|
||||||
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
|
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
|
||||||
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
|
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
|
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
|
||||||
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
|
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(ph-1) /i // Essential PH-1
|
/\b(ph-1) /i // Essential PH-1
|
||||||
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
|
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
|
||||||
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
|
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
|
||||||
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
|
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
|
||||||
|
|
||||||
/\btu_(1491) b/i // Rotor Tablets
|
/\btu_(1491) b/i // Rotor Tablets
|
||||||
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]
|
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]]
|
||||||
]
|
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
const Emails = Object.freeze({
|
const Emails = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// Microsoft Outlook / Thunderbird
|
// Microsoft Outlook / Thunderbird
|
||||||
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
|
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
const CLI = Object.freeze({
|
const MediaPlayers = Object.freeze({
|
||||||
|
browser : [[
|
||||||
|
|
||||||
|
/(apple(?:coremedia|))\/([\w\._]+)/i, // Generic Apple CoreMedia
|
||||||
|
/(coremedia) v([\w\._]+)/i
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(aqualung|lyssna|bsplayer)\/([\w\.-]+)/i // Aqualung/Lyssna/BSPlayer
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(ares|ossproxy)\s([\w\.-]+)/i // Ares/OSSProxy
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(audacious|audimusicstream|amarok|bass|core|dalvik|gnomemplayer|music on console|nsplayer|psp-internetradioplayer|videos)\/([\w\.-]+)/i,
|
||||||
|
// Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/Dalvik/GnomeMplayer/MoC
|
||||||
|
// NSPlayer/PSP-InternetRadioPlayer/Videos
|
||||||
|
/(clementine|music player daemon)\s([\w\.-]+)/i, // Clementine/MPD
|
||||||
|
/(lg player|nexplayer)\s([\d\.]+)/i,
|
||||||
|
/player\/(nexplayer|lg player)\s([\w\.-]+)/i // NexPlayer/LG Player
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
/(nexplayer)\s([\w\.-]+)/i // Nexplayer
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(flrp)\/([\w\.-]+)/i // Flip Player
|
||||||
|
], [[NAME, 'Flip Player'], VERSION], [
|
||||||
|
|
||||||
|
/(fstream|nativehost|queryseekspider|ia-archiver|facebookexternalhit)/i
|
||||||
|
// FStream/NativeHost/QuerySeekSpider/IA Archiver/facebookexternalhit
|
||||||
|
], [NAME], [
|
||||||
|
|
||||||
|
/(gstreamer) souphttpsrc.+libsoup\/([\w\.-]+)/i
|
||||||
|
// Gstreamer
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(htc streaming player)\s[\w_]+\s\/\s([\d\.]+)/i, // HTC Streaming Player
|
||||||
|
/(java|python-urllib|python-requests|wget|libcurl)\/([\w\.-_]+)/i,
|
||||||
|
// Java/urllib/requests/wget/cURL
|
||||||
|
/(lavf)([\d\.]+)/i // Lavf (FFMPEG)
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(htc_one_s)\/([\d\.]+)/i, // HTC One S
|
||||||
|
], [[NAME, /_/g, ' '], VERSION], [
|
||||||
|
|
||||||
|
/(mplayer)(?:\s|\/)(?:(?:sherpya-){0,1}svn)(?:-|\s)(r\d+(?:-\d+[\w\.-]+))/i,
|
||||||
|
// MPlayer SVN
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(mplayer)(?:\s|\/)([\w\.-]+)/i, // MPlayer
|
||||||
|
/(mplayer) unknown-([\w\.\-]+)/i // MPlayer UNKNOWN
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(mplayer)/i, // MPlayer (no other info)
|
||||||
|
/(yourmuze)/i, // YourMuze
|
||||||
|
/(media player classic|nero showtime)/i // Media Player Classic/Nero ShowTime
|
||||||
|
], [NAME], [
|
||||||
|
|
||||||
|
/(nero (?:home|scout))\/([\w\.-]+)/i // Nero Home/Nero Scout
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(nokia\d+)\/([\w\.-]+)/i // Nokia
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/\s(songbird)\/([\w\.-]+)/i // Songbird/Philips-Songbird
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(winamp)3 version ([\w\.-]+)/i, // Winamp
|
||||||
|
/(winamp)\s([\w\.-]+)/i,
|
||||||
|
/(winamp)mpeg\/([\w\.-]+)/i
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(ocms-bot|tapinradio|tunein radio|unknown|winamp|inlight radio)/i // OCMS-bot/tap in radio/tunein/unknown/winamp (no other info)
|
||||||
|
// inlight radio
|
||||||
|
], [NAME], [
|
||||||
|
|
||||||
|
/(quicktime|rma|radioapp|radioclientapplication|soundtap|totem|stagefright|streamium)\/([\w\.-]+)/i
|
||||||
|
// QuickTime/RealMedia/RadioApp/RadioClientApplication/
|
||||||
|
// SoundTap/Totem/Stagefright/Streamium
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(smp)([\d\.]+)/i // SMP
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(vlc) media player - version ([\w\.]+)/i, // VLC Videolan
|
||||||
|
/(vlc)\/([\w\.-]+)/i,
|
||||||
|
/(xbmc|gvfs|xine|xmms|irapp)\/([\w\.-]+)/i, // XBMC/gvfs/Xine/XMMS/irapp
|
||||||
|
/(foobar2000)\/([\d\.]+)/i, // Foobar2000
|
||||||
|
/(itunes)\/([\d\.]+)/i // iTunes
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(wmplayer)\/([\w\.-]+)/i, // Windows Media Player
|
||||||
|
/(windows-media-player)\/([\w\.-]+)/i
|
||||||
|
], [[NAME, /-/g, ' '], VERSION], [
|
||||||
|
|
||||||
|
/windows\/([\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ (home media server)/i,
|
||||||
|
// Windows Media Server
|
||||||
|
], [VERSION, [NAME, 'Windows']], [
|
||||||
|
|
||||||
|
/(com\.riseupradioalarm)\/([\d\.]*)/i // RiseUP Radio Alarm
|
||||||
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
|
/(rad.io)\s([\d\.]+)/i, // Rad.io
|
||||||
|
/(radio.(?:de|at|fr))\s([\d\.]+)/i
|
||||||
|
], [[NAME, 'rad.io'], VERSION]
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
const Modules = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// wget / curl / lynx
|
// Axios/jsdom/Scrapy
|
||||||
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
|
[/\b(axios|jsdom|scrapy)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'module']]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
export {
|
export {
|
||||||
Apps,
|
Apps,
|
||||||
Bots,
|
Bots,
|
||||||
|
CLIs,
|
||||||
ExtraDevices,
|
ExtraDevices,
|
||||||
Emails,
|
Emails,
|
||||||
CLI
|
MediaPlayers,
|
||||||
|
Modules
|
||||||
};
|
};
|
@ -1,5 +1,5 @@
|
|||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
/* Helpers for UAParser.js v2.0.0-alpha.2
|
/* Helpers for UAParser.js v2.0.0-alpha.3
|
||||||
https://github.com/faisalman/ua-parser-js
|
https://github.com/faisalman/ua-parser-js
|
||||||
Author: Faisal Salman <f@faisalman.com>
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
MIT License */
|
MIT License */
|
||||||
|
46
src/helpers/ua-parser-helpers.mjs
Normal file
46
src/helpers/ua-parser-helpers.mjs
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Generated ESM version of UAParser.js helpers
|
||||||
|
// DO NOT EDIT THIS FILE!
|
||||||
|
// Source: /src/helpers/ua-parser-helpers.js
|
||||||
|
|
||||||
|
///////////////////////////////////////////////
|
||||||
|
/* Helpers for UAParser.js v2.0.0-alpha.3
|
||||||
|
https://github.com/faisalman/ua-parser-js
|
||||||
|
Author: Faisal Salman <f@faisalman.com>
|
||||||
|
MIT License */
|
||||||
|
//////////////////////////////////////////////
|
||||||
|
|
||||||
|
/*jshint esversion: 6 */
|
||||||
|
|
||||||
|
/*
|
||||||
|
# Reference:
|
||||||
|
https://www.chromium.org/updates/ua-reduction/
|
||||||
|
|
||||||
|
# Desktop
|
||||||
|
---
|
||||||
|
Format:
|
||||||
|
Mozilla/5.0 (<unifiedPlatform>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Safari/537.36
|
||||||
|
|
||||||
|
Possible <unifiedPlatform> values:
|
||||||
|
- Windows NT 10.0; Win64; x64
|
||||||
|
- Macintosh; Intel Mac OS X 10_15_7
|
||||||
|
- X11; Linux x86_64
|
||||||
|
- X11; CrOS x86_64 14541.0.0
|
||||||
|
- Fuchsia
|
||||||
|
|
||||||
|
# Mobile & Tablet: (except iOS/Android WebView)
|
||||||
|
---
|
||||||
|
Format:
|
||||||
|
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 <deviceCompat> Safari/537.36
|
||||||
|
|
||||||
|
Possible <deviceCompat> values:
|
||||||
|
- "Mobile"
|
||||||
|
- "" (empty string for Tablets & Desktop)
|
||||||
|
*/
|
||||||
|
|
||||||
|
const frozenUA = /Mozilla\/5\.0 \((Windows NT 10\.0; Win64; x64|Macintosh; Intel Mac OS X 10_15_7|X11; Linux x86_64|X11; CrOS x86_64 14541\.0\.0|Fuchsia|Linux; Android 10; K)\) AppleWebKit\/537\.36 \(KHTML, like Gecko\) Chrome\/\d+\.0\.0\.0 (Mobile )?Safari\/537\.36/;
|
||||||
|
|
||||||
|
const isFrozenUA = str => frozenUA.test(str);
|
||||||
|
|
||||||
|
export {
|
||||||
|
isFrozenUA
|
||||||
|
};
|
@ -1,5 +1,5 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
/* UAParser.js v2.0.0-alpha.2
|
/* UAParser.js v2.0.0-alpha.3
|
||||||
Copyright © 2012-2023 Faisal Salman <f@faisalman.com>
|
Copyright © 2012-2023 Faisal Salman <f@faisalman.com>
|
||||||
MIT License *//*
|
MIT License *//*
|
||||||
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
||||||
@ -20,7 +20,7 @@
|
|||||||
/////////////
|
/////////////
|
||||||
|
|
||||||
|
|
||||||
var LIBVERSION = '2.0.0-alpha.2',
|
var LIBVERSION = '2.0.0-alpha.3',
|
||||||
EMPTY = '',
|
EMPTY = '',
|
||||||
UNKNOWN = '?',
|
UNKNOWN = '?',
|
||||||
FUNC_TYPE = 'function',
|
FUNC_TYPE = 'function',
|
||||||
@ -50,12 +50,12 @@
|
|||||||
CH_HEADER = 'sec-ch-ua',
|
CH_HEADER = 'sec-ch-ua',
|
||||||
CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',
|
CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',
|
||||||
CH_HEADER_ARCH = CH_HEADER + '-arch',
|
CH_HEADER_ARCH = CH_HEADER + '-arch',
|
||||||
CH_HEADER_BITNESS = CH_HEADER + '-bitness',
|
CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS,
|
||||||
CH_HEADER_MOBILE = CH_HEADER + '-mobile',
|
CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE,
|
||||||
CH_HEADER_MODEL = CH_HEADER + '-model',
|
CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,
|
||||||
CH_HEADER_PLATFORM = CH_HEADER + '-platform',
|
CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,
|
||||||
CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',
|
CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',
|
||||||
CH_ALL_VALUES = ['brands', 'fullVersionList', MOBILE, MODEL, 'platform', 'platformVersion', ARCHITECTURE, 'bitness'],
|
CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, BITNESS],
|
||||||
UA_BROWSER = 'browser',
|
UA_BROWSER = 'browser',
|
||||||
UA_CPU = 'cpu',
|
UA_CPU = 'cpu',
|
||||||
UA_DEVICE = 'device',
|
UA_DEVICE = 'device',
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// Source: /src/main/ua-parser.js
|
// Source: /src/main/ua-parser.js
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
/* UAParser.js v2.0.0-alpha.2
|
/* UAParser.js v2.0.0-alpha.3
|
||||||
Copyright © 2012-2023 Faisal Salman <f@faisalman.com>
|
Copyright © 2012-2023 Faisal Salman <f@faisalman.com>
|
||||||
MIT License *//*
|
MIT License *//*
|
||||||
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
|
||||||
@ -22,7 +22,7 @@
|
|||||||
/////////////
|
/////////////
|
||||||
|
|
||||||
|
|
||||||
var LIBVERSION = '2.0.0-alpha.2',
|
var LIBVERSION = '2.0.0-alpha.3',
|
||||||
EMPTY = '',
|
EMPTY = '',
|
||||||
UNKNOWN = '?',
|
UNKNOWN = '?',
|
||||||
FUNC_TYPE = 'function',
|
FUNC_TYPE = 'function',
|
||||||
@ -52,12 +52,12 @@
|
|||||||
CH_HEADER = 'sec-ch-ua',
|
CH_HEADER = 'sec-ch-ua',
|
||||||
CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',
|
CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',
|
||||||
CH_HEADER_ARCH = CH_HEADER + '-arch',
|
CH_HEADER_ARCH = CH_HEADER + '-arch',
|
||||||
CH_HEADER_BITNESS = CH_HEADER + '-bitness',
|
CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS,
|
||||||
CH_HEADER_MOBILE = CH_HEADER + '-mobile',
|
CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE,
|
||||||
CH_HEADER_MODEL = CH_HEADER + '-model',
|
CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,
|
||||||
CH_HEADER_PLATFORM = CH_HEADER + '-platform',
|
CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,
|
||||||
CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',
|
CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',
|
||||||
CH_ALL_VALUES = ['brands', 'fullVersionList', MOBILE, MODEL, 'platform', 'platformVersion', ARCHITECTURE, 'bitness'],
|
CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, BITNESS],
|
||||||
UA_BROWSER = 'browser',
|
UA_BROWSER = 'browser',
|
||||||
UA_CPU = 'cpu',
|
UA_CPU = 'cpu',
|
||||||
UA_DEVICE = 'device',
|
UA_DEVICE = 'device',
|
||||||
@ -349,7 +349,7 @@
|
|||||||
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp
|
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp
|
||||||
/safari (line)\/([\w\.]+)/i, // Line App for iOS
|
/safari (line)\/([\w\.]+)/i, // Line App for iOS
|
||||||
/\b(line)\/([\w\.]+)\/iab/i, // Line App for Android
|
/\b(line)\/([\w\.]+)\/iab/i, // Line App for Android
|
||||||
/(chromium|instagram)[\/ ]([-\w\.]+)/i // Chromium/Instagram
|
/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i // Chromium/Instagram/Snapchat
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
/\bgsa\/([\w\.]+) .*safari\//i // Google Search Appliance on iOS
|
/\bgsa\/([\w\.]+) .*safari\//i // Google Search Appliance on iOS
|
||||||
], [VERSION, [NAME, 'GSA']], [
|
], [VERSION, [NAME, 'GSA']], [
|
||||||
@ -476,7 +476,7 @@
|
|||||||
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// Xiaomi
|
// Xiaomi
|
||||||
/\b(poco[\w ]+)(?: bui|\))/i, // Xiaomi POCO
|
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO
|
||||||
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
|
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
|
||||||
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
|
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
|
||||||
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
|
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
|
||||||
@ -584,7 +584,7 @@
|
|||||||
], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [
|
], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [
|
||||||
|
|
||||||
// MIXED
|
// MIXED
|
||||||
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,
|
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
|
||||||
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
|
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
|
||||||
/(hp) ([\w ]+\w)/i, // HP iPAQ
|
/(hp) ([\w ]+\w)/i, // HP iPAQ
|
||||||
/(asus)-?(\w+)/i, // Asus
|
/(asus)-?(\w+)/i, // Asus
|
||||||
@ -629,7 +629,7 @@
|
|||||||
], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [
|
], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [
|
||||||
/crkey/i // Google Chromecast
|
/crkey/i // Google Chromecast
|
||||||
], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [
|
], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [
|
||||||
/droid.+aft(\w)( bui|\))/i // Fire TV
|
/droid.+aft(\w+)( bui|\))/i // Fire TV
|
||||||
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [
|
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [
|
||||||
/\(dtv[\);].+(aquos)/i,
|
/\(dtv[\);].+(aquos)/i,
|
||||||
/(aquos-tv[\w ]+)\)/i // Sharp
|
/(aquos-tv[\w ]+)\)/i // Sharp
|
||||||
@ -927,7 +927,6 @@
|
|||||||
setProps.call(this, [
|
setProps.call(this, [
|
||||||
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
||||||
[FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],
|
[FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],
|
||||||
[BRANDS, itemListToArray(uach[CH_HEADER])],
|
|
||||||
[MOBILE, /\?1/.test(uach[CH_HEADER_MOBILE])],
|
[MOBILE, /\?1/.test(uach[CH_HEADER_MOBILE])],
|
||||||
[MODEL, stripQuotes(uach[CH_HEADER_MODEL])],
|
[MODEL, stripQuotes(uach[CH_HEADER_MODEL])],
|
||||||
[PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],
|
[PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],
|
||||||
@ -1149,7 +1148,8 @@
|
|||||||
['getResult', createItemFunc(UA_RESULT)],
|
['getResult', createItemFunc(UA_RESULT)],
|
||||||
['getUA', function () { return userAgent; }],
|
['getUA', function () { return userAgent; }],
|
||||||
['setUA', function (ua) {
|
['setUA', function (ua) {
|
||||||
userAgent = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;
|
if (typeof ua === STR_TYPE)
|
||||||
|
userAgent = ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;
|
||||||
return this;
|
return this;
|
||||||
}]
|
}]
|
||||||
])
|
])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user