ua-parser-js 1.0.37 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +616 -0
- package/README.md +251 -0
- package/dist/icons/color/LICENSE.md +3 -0
- package/dist/icons/color/browser/android-browser.svg +1 -0
- package/dist/icons/color/browser/avant.png +0 -0
- package/dist/icons/color/browser/basilisk.png +0 -0
- package/dist/icons/color/browser/basilisk.svg +1 -0
- package/dist/icons/color/browser/brave.png +0 -0
- package/dist/icons/color/browser/brave.svg +1 -0
- package/dist/icons/color/browser/chrome.png +0 -0
- package/dist/icons/color/browser/chrome.svg +1 -0
- package/dist/icons/color/browser/chromium.png +0 -0
- package/dist/icons/color/browser/chromium.svg +1 -0
- package/dist/icons/color/browser/coc-coc.png +0 -0
- package/dist/icons/color/browser/default.png +0 -0
- package/dist/icons/color/browser/default.svg +1 -0
- package/dist/icons/color/browser/dolphin.png +0 -0
- package/dist/icons/color/browser/edge.png +0 -0
- package/dist/icons/color/browser/edge.svg +1 -0
- package/dist/icons/color/browser/electron.png +0 -0
- package/dist/icons/color/browser/electron.svg +1 -0
- package/dist/icons/color/browser/falkon.png +0 -0
- package/dist/icons/color/browser/falkon.svg +1 -0
- package/dist/icons/color/browser/firefox-reality.png +0 -0
- package/dist/icons/color/browser/firefox-reality.svg +1 -0
- package/dist/icons/color/browser/firefox.png +0 -0
- package/dist/icons/color/browser/firefox.svg +1 -0
- package/dist/icons/color/browser/gsa.svg +9 -0
- package/dist/icons/color/browser/icecat.png +0 -0
- package/dist/icons/color/browser/ie.svg +6 -0
- package/dist/icons/color/browser/konqueror.png +0 -0
- package/dist/icons/color/browser/konqueror.svg +1 -0
- package/dist/icons/color/browser/maxthon.png +0 -0
- package/dist/icons/color/browser/midori.png +0 -0
- package/dist/icons/color/browser/midori.svg +1 -0
- package/dist/icons/color/browser/netsurf.png +0 -0
- package/dist/icons/color/browser/netsurf.svg +1 -0
- package/dist/icons/color/browser/opera-gx.png +0 -0
- package/dist/icons/color/browser/opera-gx.svg +1 -0
- package/dist/icons/color/browser/opera-mini.png +0 -0
- package/dist/icons/color/browser/opera-touch.png +0 -0
- package/dist/icons/color/browser/opera.png +0 -0
- package/dist/icons/color/browser/opera.svg +1 -0
- package/dist/icons/color/browser/palemoon.png +0 -0
- package/dist/icons/color/browser/puffin.png +0 -0
- package/dist/icons/color/browser/safari.png +0 -0
- package/dist/icons/color/browser/safari.svg +1 -0
- package/dist/icons/color/browser/samsung-internet.png +0 -0
- package/dist/icons/color/browser/samsung-internet.svg +1 -0
- package/dist/icons/color/browser/seamonkey.png +0 -0
- package/dist/icons/color/browser/silk.png +0 -0
- package/dist/icons/color/browser/sogou-mobile.png +0 -0
- package/dist/icons/color/browser/ucbrowser.png +0 -0
- package/dist/icons/color/browser/ucbrowser.svg +1 -0
- package/dist/icons/color/browser/vivaldi.png +0 -0
- package/dist/icons/color/browser/vivaldi.svg +1 -0
- package/dist/icons/color/browser/webkit.png +0 -0
- package/dist/icons/color/browser/webkit.svg +1 -0
- package/dist/icons/color/browser/yandex.png +0 -0
- package/dist/icons/color/os/centos.svg +1 -0
- package/dist/icons/mono/LICENSE.md +3 -0
- package/dist/icons/mono/browser/alipay.svg +1 -0
- package/dist/icons/mono/browser/android-browser.svg +1 -0
- package/dist/icons/mono/browser/avast-secure-browser.svg +1 -0
- package/dist/icons/mono/browser/baidu-browser.svg +1 -0
- package/dist/icons/mono/browser/brave.svg +1 -0
- package/dist/icons/mono/browser/chrome-headless.svg +1 -0
- package/dist/icons/mono/browser/chrome-webview.svg +1 -0
- package/dist/icons/mono/browser/chrome.svg +1 -0
- package/dist/icons/mono/browser/chromium.svg +1 -0
- package/dist/icons/mono/browser/duckduckgo.svg +1 -0
- package/dist/icons/mono/browser/edge.svg +1 -0
- package/dist/icons/mono/browser/electron.svg +1 -0
- package/dist/icons/mono/browser/facebook.svg +1 -0
- package/dist/icons/mono/browser/firefox-focus.svg +1 -0
- package/dist/icons/mono/browser/firefox-reality.svg +1 -0
- package/dist/icons/mono/browser/firefox.svg +1 -0
- package/dist/icons/mono/browser/gsa.svg +1 -0
- package/dist/icons/mono/browser/huawei-browser.svg +1 -0
- package/dist/icons/mono/browser/icecat.svg +1 -0
- package/dist/icons/mono/browser/ie.svg +1 -0
- package/dist/icons/mono/browser/instagram.svg +1 -0
- package/dist/icons/mono/browser/jasmine.svg +1 -0
- package/dist/icons/mono/browser/kakaotalk.svg +1 -0
- package/dist/icons/mono/browser/klarna.svg +1 -0
- package/dist/icons/mono/browser/line.svg +1 -0
- package/dist/icons/mono/browser/linkedin.svg +1 -0
- package/dist/icons/mono/browser/miui-browser.svg +1 -0
- package/dist/icons/mono/browser/mobile-chrome.svg +1 -0
- package/dist/icons/mono/browser/mobile-firefox.svg +1 -0
- package/dist/icons/mono/browser/mobile-safari.svg +1 -0
- package/dist/icons/mono/browser/mozilla.svg +1 -0
- package/dist/icons/mono/browser/naver.svg +1 -0
- package/dist/icons/mono/browser/nokia-browser.svg +1 -0
- package/dist/icons/mono/browser/oculus-browser.svg +1 -0
- package/dist/icons/mono/browser/opera-coast.svg +1 -0
- package/dist/icons/mono/browser/opera-gx.svg +1 -0
- package/dist/icons/mono/browser/opera-mini.svg +1 -0
- package/dist/icons/mono/browser/opera-mobi.svg +1 -0
- package/dist/icons/mono/browser/opera-tablet.svg +1 -0
- package/dist/icons/mono/browser/opera-touch.svg +1 -0
- package/dist/icons/mono/browser/opera.svg +1 -0
- package/dist/icons/mono/browser/qqbrowser.svg +1 -0
- package/dist/icons/mono/browser/qqbrowserlite.svg +1 -0
- package/dist/icons/mono/browser/safari.svg +1 -0
- package/dist/icons/mono/browser/sailfish-browser.svg +1 -0
- package/dist/icons/mono/browser/samsung-internet.svg +1 -0
- package/dist/icons/mono/browser/smart-lenovo-browser.svg +1 -0
- package/dist/icons/mono/browser/snapchat.svg +1 -0
- package/dist/icons/mono/browser/sogou-explorer.svg +1 -0
- package/dist/icons/mono/browser/sogou-mobile.svg +1 -0
- package/dist/icons/mono/browser/tesla.svg +1 -0
- package/dist/icons/mono/browser/tiktok.svg +1 -0
- package/dist/icons/mono/browser/twitter.svg +1 -0
- package/dist/icons/mono/browser/vivaldi.svg +1 -0
- package/dist/icons/mono/browser/vivo-browser.svg +1 -0
- package/dist/icons/mono/browser/wechat.svg +1 -0
- package/dist/icons/mono/browser/weibo.svg +1 -0
- package/dist/icons/mono/browser/yandex.svg +1 -0
- package/dist/icons/mono/device/acer.svg +1 -0
- package/dist/icons/mono/device/amazon.svg +1 -0
- package/dist/icons/mono/device/apple.svg +1 -0
- package/dist/icons/mono/device/asus.svg +1 -0
- package/dist/icons/mono/device/att.svg +1 -0
- package/dist/icons/mono/device/blackberry.svg +1 -0
- package/dist/icons/mono/device/dell.svg +1 -0
- package/dist/icons/mono/device/facebook.svg +1 -0
- package/dist/icons/mono/device/fairphone.svg +1 -0
- package/dist/icons/mono/device/google.svg +1 -0
- package/dist/icons/mono/device/hp.svg +1 -0
- package/dist/icons/mono/device/huawei.svg +1 -0
- package/dist/icons/mono/device/lenovo.svg +1 -0
- package/dist/icons/mono/device/lg.svg +1 -0
- package/dist/icons/mono/device/meizu.svg +1 -0
- package/dist/icons/mono/device/microsoft.svg +1 -0
- package/dist/icons/mono/device/motorola.svg +1 -0
- package/dist/icons/mono/device/nintendo.svg +1 -0
- package/dist/icons/mono/device/nokia.svg +1 -0
- package/dist/icons/mono/device/nvidia.svg +1 -0
- package/dist/icons/mono/device/oneplus.svg +1 -0
- package/dist/icons/mono/device/oppo.svg +1 -0
- package/dist/icons/mono/device/panasonic.svg +1 -0
- package/dist/icons/mono/device/roku.svg +1 -0
- package/dist/icons/mono/device/samsung.svg +1 -0
- package/dist/icons/mono/device/siemens.svg +1 -0
- package/dist/icons/mono/device/sony.svg +1 -0
- package/dist/icons/mono/device/tesla.svg +1 -0
- package/dist/icons/mono/device/vivo.svg +1 -0
- package/dist/icons/mono/device/vodafone.svg +1 -0
- package/dist/icons/mono/device/xiaomi.svg +1 -0
- package/dist/icons/mono/device/zebra.svg +1 -0
- package/dist/icons/mono/os/android.svg +1 -0
- package/dist/icons/mono/os/arch.svg +1 -0
- package/dist/icons/mono/os/blackberry.svg +1 -0
- package/dist/icons/mono/os/centos.svg +1 -0
- package/dist/icons/mono/os/chrome-os.svg +1 -0
- package/dist/icons/mono/os/chromecast.svg +1 -0
- package/dist/icons/mono/os/debian.svg +1 -0
- package/dist/icons/mono/os/deepin.svg +1 -0
- package/dist/icons/mono/os/elementary-os.svg +1 -0
- package/dist/icons/mono/os/fedora.svg +1 -0
- package/dist/icons/mono/os/firefox.svg +1 -0
- package/dist/icons/mono/os/freebsd.svg +1 -0
- package/dist/icons/mono/os/gentoo.svg +1 -0
- package/dist/icons/mono/os/gnu.svg +1 -0
- package/dist/icons/mono/os/harmonyos.svg +1 -0
- package/dist/icons/mono/os/ios.svg +1 -0
- package/dist/icons/mono/os/kaios.svg +1 -0
- package/dist/icons/mono/os/linux.svg +1 -0
- package/dist/icons/mono/os/macos.svg +1 -0
- package/dist/icons/mono/os/manjaro.svg +1 -0
- package/dist/icons/mono/os/mint.svg +1 -0
- package/dist/icons/mono/os/netbsd.svg +1 -0
- package/dist/icons/mono/os/nintendo.svg +1 -0
- package/dist/icons/mono/os/openbsd.svg +1 -0
- package/dist/icons/mono/os/playstation.svg +1 -0
- package/dist/icons/mono/os/raspbian.svg +1 -0
- package/dist/icons/mono/os/redhat.svg +1 -0
- package/dist/icons/mono/os/sailfish.svg +1 -0
- package/dist/icons/mono/os/slackware.svg +1 -0
- package/dist/icons/mono/os/suse.svg +1 -0
- package/dist/icons/mono/os/ubuntu.svg +1 -0
- package/dist/icons/mono/os/windows.svg +1 -0
- package/dist/icons/mono/os/xbox.svg +1 -0
- package/dist/ua-parser.min.js +4 -4
- package/dist/ua-parser.min.mjs +4 -0
- package/dist/ua-parser.pack.js +4 -4
- package/dist/ua-parser.pack.mjs +4 -0
- package/package.json +86 -36
- package/script/cli.js +4 -0
- package/src/enums/ua-parser-enums.d.ts +366 -0
- package/src/enums/ua-parser-enums.js +393 -0
- package/src/enums/ua-parser-enums.mjs +397 -0
- package/src/extensions/ua-parser-extensions.d.ts +16 -0
- package/src/extensions/ua-parser-extensions.js +366 -0
- package/src/extensions/ua-parser-extensions.mjs +370 -0
- package/src/helpers/ua-parser-helpers.d.ts +27 -0
- package/src/helpers/ua-parser-helpers.js +137 -0
- package/src/helpers/ua-parser-helpers.mjs +141 -0
- package/src/main/ua-parser.d.ts +113 -0
- package/src/main/ua-parser.js +1439 -0
- package/src/main/ua-parser.mjs +1397 -0
- package/license.md +0 -21
- package/readme.md +0 -385
- package/src/ua-parser.js +0 -946
package/package.json
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"title": "UAParser.js",
|
3
3
|
"name": "ua-parser-js",
|
4
|
-
"version": "
|
4
|
+
"version": "2.0.2",
|
5
5
|
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
|
6
|
-
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
|
6
|
+
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
|
7
7
|
"keywords": [
|
8
8
|
"user-agent",
|
9
|
+
"client-hints",
|
9
10
|
"parser",
|
10
11
|
"browser",
|
11
12
|
"engine",
|
@@ -15,15 +16,12 @@
|
|
15
16
|
"jquery-plugin",
|
16
17
|
"ecosystem:jquery",
|
17
18
|
"ua-parser-js",
|
18
|
-
"client-hints",
|
19
|
-
"user-agent-detection",
|
20
|
-
"device-detection",
|
21
|
-
"platform-detection",
|
22
|
-
"mobile-detection",
|
23
19
|
"browser-detection",
|
24
|
-
"
|
20
|
+
"device-detection",
|
21
|
+
"os-detection",
|
22
|
+
"bot-detection"
|
25
23
|
],
|
26
|
-
"homepage": "https://
|
24
|
+
"homepage": "https://uaparser.dev",
|
27
25
|
"contributors": [
|
28
26
|
"Aamir Poonawalla <aamir@urx.com>",
|
29
27
|
"Admas <mollases@users.noreply.github.com>",
|
@@ -42,8 +40,11 @@
|
|
42
40
|
"Carl C Von Lewin <carlchristianlewin@gmail.com>",
|
43
41
|
"CESAR RAMOS <c@imagenproactiva.com>",
|
44
42
|
"Chad Killingsworth <ckillingsworth@jackhenry.com>",
|
43
|
+
"chenhui9279 <chenhui9279@autohome.com.cn>",
|
44
|
+
"chenyuan-new <53860479+chenyuan-new@users.noreply.github.com>",
|
45
45
|
"Christopher De Cairos <chris.decairos@gmail.com>",
|
46
46
|
"Cyrille David <cyrille@qonto.eu>",
|
47
|
+
"Dante <duanjl.china@gmail.com>",
|
47
48
|
"Dario Vladovic <d.vladimyr@gmail.com>",
|
48
49
|
"David Annez <david.annez@gmail.com>",
|
49
50
|
"Davit Barbakadze <jayarjo@gmail.com>",
|
@@ -66,10 +67,12 @@
|
|
66
67
|
"Faisal Salman <f@faisalman.com>",
|
67
68
|
"Frédéric Camblor <fcamblor@gmail.com>",
|
68
69
|
"Frederik Ring <frederik.ring@gmail.com>",
|
70
|
+
"Garrit Franke <garrit@slashdev.space>",
|
69
71
|
"Gerald Host <me@jacobford.co.uk>",
|
70
72
|
"Germán M. Bravo <german.mb@gmail.com>",
|
71
73
|
"Grigory Dmitrenko <grigory@snsk.ru>",
|
72
74
|
"gulpin <gulping.gulpin@gmail.com>",
|
75
|
+
"Hans Ott <hansott@hotmail.be>",
|
73
76
|
"Hendrik Helwich <h.helwich@iplabs.de>",
|
74
77
|
"Hermann Ebert <ebbmo@HE.local>",
|
75
78
|
"hr6r <hedian@gmail.com>",
|
@@ -77,6 +80,7 @@
|
|
77
80
|
"Ildar Kamalov <i.kamalov@adguard.com>",
|
78
81
|
"insanehong <insane.hong@navercorp.com>",
|
79
82
|
"jackpoll <jackpoll123456@gmail.com>",
|
83
|
+
"Jacky Choo <jackychoo@adly-macbook.local>",
|
80
84
|
"Jake Mc <startswithaj@users.noreply.github.com>",
|
81
85
|
"JBYoshi <12983479+JBYoshi@users.noreply.github.com>",
|
82
86
|
"Joey Parrish <joeyparrish@google.com>",
|
@@ -86,11 +90,14 @@
|
|
86
90
|
"Josh Goldberg <joshuakgoldberg@outlook.com>",
|
87
91
|
"Junki-Ishida <junki_ishida@dwango.co.jp>",
|
88
92
|
"Kendall Buchanan <kendall@kendagriff.com>",
|
93
|
+
"KnifeLemon <role___play@naver.com>",
|
94
|
+
"kNoAPP <alldoneb@gmail.com>",
|
89
95
|
"Lee Treveil <leetreveil@gmail.com>",
|
90
96
|
"leonardo <leofiore@libero.it>",
|
91
97
|
"Levente Balogh <balogh.levente.hu@gmail.com>",
|
92
98
|
"Liam Quinn <lquinn@blackberry.com>",
|
93
99
|
"Lithin <lithin@webklipper.com>",
|
100
|
+
"liujunlve <liujunlve@henhaoji.com>",
|
94
101
|
"ll-syber <670159357@qq.com>",
|
95
102
|
"Loris Guignard <loris.guignard@gmail.com>",
|
96
103
|
"Lukas Drgon <lukas.drgon@gmail.com>",
|
@@ -105,6 +112,8 @@
|
|
105
112
|
"Max Nordlund <max.nordlund@gmail.com>",
|
106
113
|
"Michael Hess <mhess@connectify.me>",
|
107
114
|
"MimyyK <michele.marais@hakisa.com>",
|
115
|
+
"Mok <mok@moekm.com>",
|
116
|
+
"nabetama <mao.nabeta@gmail.com>",
|
108
117
|
"naoh <naoh.cs03g@nctu.edu.tw>",
|
109
118
|
"Nicholas Ionata <nionata@ufl.edu>",
|
110
119
|
"Nikhil Motiani <nikhil.motiani@outlook.com>",
|
@@ -113,7 +122,9 @@
|
|
113
122
|
"niris <nirisix@gmail.com>",
|
114
123
|
"Nobuo Okada <nookada@yahoo-corp.jp>",
|
115
124
|
"o.drapeza <o.drapeza@tinkoff.ru>",
|
125
|
+
"Oscar Becerra <oscarbecerra@google.com>",
|
116
126
|
"otakuSiD <otakusid@gmail.com>",
|
127
|
+
"Paris Morgan <paris@8thwall.com>",
|
117
128
|
"patrick-nurt <github@pereira.dk>",
|
118
129
|
"Pavel Studeny <studeny@avast.com>",
|
119
130
|
"Peter Dave Hello <PeterDaveHello@users.noreply.github.com>",
|
@@ -123,19 +134,24 @@
|
|
123
134
|
"Queen Vinyl Darkscratch <vinyldarkscratch@gmail.com>",
|
124
135
|
"Raine Makelainen <raine.makelainen@jolla.com>",
|
125
136
|
"Raman Savaryn <homeneartheocean@gmail.com>",
|
137
|
+
"Riley Shaw <rileyjshaw@users.noreply.github.com>",
|
126
138
|
"Robert Tod <robert@qubit.com>",
|
127
139
|
"roman.savarin <roman.savarin@skywindgroup.com>",
|
128
140
|
"Ron Korland <ron@testim.io>",
|
129
141
|
"Ross Noble <rosshnoble@gmail.com>",
|
130
142
|
"ruicong <466403866@qq.com>",
|
143
|
+
"Runar Heggset <rukki093@gmail.com>",
|
144
|
+
"Ryohei Shima <shima01dev@gmail.com>",
|
131
145
|
"Sandro Sonntag <sandro.sonntag@adorsys.de>",
|
132
146
|
"sgautrea <shanegautreau@gmail.com>",
|
147
|
+
"shaharmor <shahar@peer5.com>",
|
133
148
|
"Shane Gautreau <sgautrea@opentext.com>",
|
134
149
|
"Shane Thacker <shane@steadymade.com>",
|
135
150
|
"Shreedhar <shreedhar@uber.com>",
|
136
151
|
"Simon Eisenmann <simon@longsleep.org>",
|
137
152
|
"Simon Lang <me@simonlang.org>",
|
138
153
|
"Stiekel <histkc@gmail.com>",
|
154
|
+
"sunny-mwx <30586210+sunny-mwx@users.noreply.github.com>",
|
139
155
|
"sUP <dani3l@gmail.com>",
|
140
156
|
"Sylvain Gizard <sylvain.gizard@gmail.com>",
|
141
157
|
"szchenghuang <szchenghuang@gmail.com>",
|
@@ -143,60 +159,94 @@
|
|
143
159
|
"Tony Tomarchio <tony@tomarchio.cc>",
|
144
160
|
"Ulrich Schmidt <u.schmidt@velian.de>",
|
145
161
|
"Vadim Kurachevsky <vadim@hmvs.org>",
|
162
|
+
"Varun Sharma <varunsh@stepsecurity.io>",
|
163
|
+
"XhmikosR <xhmikosr@gmail.com>",
|
146
164
|
"Yılmaz <yilmazdemir36@gmail.com>",
|
147
165
|
"yuanyang <work_yuanyang@163.com>",
|
148
166
|
"Yun Young-jin <yupmin@yupmin-office-macmini.local>",
|
149
|
-
"Zach Bjornson <zbbjornson@gmail.com>"
|
167
|
+
"Zach Bjornson <zbbjornson@gmail.com>",
|
168
|
+
"Ziding Zhang <zidingz@gmail.com>"
|
150
169
|
],
|
151
|
-
"
|
170
|
+
"type": "commonjs",
|
171
|
+
"types": "src/main/ua-parser.d.ts",
|
172
|
+
"main": "src/main/ua-parser.js",
|
173
|
+
"module": "src/main/ua-parser.mjs",
|
174
|
+
"browser": "dist/ua-parser.pack.js",
|
175
|
+
"exports": {
|
176
|
+
".": {
|
177
|
+
"require": "./src/main/ua-parser.js",
|
178
|
+
"import": "./src/main/ua-parser.mjs",
|
179
|
+
"types": "./src/main/ua-parser.d.ts"
|
180
|
+
},
|
181
|
+
"./enums": {
|
182
|
+
"require": "./src/enums/ua-parser-enums.js",
|
183
|
+
"import": "./src/enums/ua-parser-enums.mjs",
|
184
|
+
"types": "./src/enums/ua-parser-enums.d.ts"
|
185
|
+
},
|
186
|
+
"./extensions": {
|
187
|
+
"require": "./src/extensions/ua-parser-extensions.js",
|
188
|
+
"import": "./src/extensions/ua-parser-extensions.mjs",
|
189
|
+
"types": "./src/extensions/ua-parser-extensions.d.ts"
|
190
|
+
},
|
191
|
+
"./helpers": {
|
192
|
+
"require": "./src/helpers/ua-parser-helpers.js",
|
193
|
+
"import": "./src/helpers/ua-parser-helpers.mjs",
|
194
|
+
"types": "./src/helpers/ua-parser-helpers.d.ts"
|
195
|
+
}
|
196
|
+
},
|
152
197
|
"files": [
|
153
198
|
"dist",
|
154
199
|
"src"
|
155
200
|
],
|
201
|
+
"bin": "./script/cli.js",
|
156
202
|
"scripts": {
|
157
|
-
"build": "
|
158
|
-
"test": "
|
159
|
-
"
|
160
|
-
"
|
161
|
-
"
|
203
|
+
"build": "./script/build-dist.sh && ./script/build-esm.js",
|
204
|
+
"build+test": "npm run build && npm run test",
|
205
|
+
"fuzz": "jazzer ./test/fuzz/redos.js --sync",
|
206
|
+
"test": "./script/test-all.sh",
|
207
|
+
"test:dts-lint": "tsd --typings src/main/ua-parser.d.ts --files test/static/dts-lint.ts",
|
208
|
+
"test:eslint": "eslint src && eslint script",
|
209
|
+
"test:jshint": "jshint src/main",
|
210
|
+
"test:lockfile-lint": "npx lockfile-lint -p package-lock.json",
|
211
|
+
"test:mocha": "mocha test/unit",
|
212
|
+
"test:playwright": "playwright test test/e2e --browser all"
|
162
213
|
},
|
163
|
-
"
|
164
|
-
"
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
"regs": [
|
170
|
-
"^((?:\\$|(\\s*\\*\\s*@)|(\\s*(?:var|,)?\\s+))(?:LIBVERSION|version)[\\s\\:='\"]+)([0-9]+(?:\\.[0-9]+){2,2})",
|
171
|
-
"^(\\/?\\s?\\*.*v)([0-9]+(?:\\.[0-9]+){2,2})"
|
172
|
-
]
|
214
|
+
"dependencies": {
|
215
|
+
"detect-europe-js": "^0.1.2",
|
216
|
+
"is-standalone-pwa": "^0.1.1",
|
217
|
+
"ua-is-frozen": "^0.1.2",
|
218
|
+
"node-fetch": "^2.7.0",
|
219
|
+
"@types/node-fetch": "^2.6.12"
|
173
220
|
},
|
174
221
|
"devDependencies": {
|
175
222
|
"@babel/parser": "7.15.8",
|
176
|
-
"@babel/traverse": "7.
|
177
|
-
"
|
223
|
+
"@babel/traverse": "7.23.2",
|
224
|
+
"@jazzer.js/core": "^1.4.0",
|
225
|
+
"@playwright/test": "^1.49.0",
|
226
|
+
"jshint": "~2.13.6",
|
178
227
|
"mocha": "~8.2.0",
|
179
|
-
"requirejs": "
|
228
|
+
"requirejs": "2.3.2",
|
180
229
|
"safe-regex": "^2.1.1",
|
181
|
-
"
|
182
|
-
"
|
230
|
+
"tsd": "^0.29.0",
|
231
|
+
"uglify-js": "~3.19.3"
|
183
232
|
},
|
184
233
|
"repository": {
|
185
234
|
"type": "git",
|
186
235
|
"url": "https://github.com/faisalman/ua-parser-js.git"
|
187
236
|
},
|
188
|
-
"license": "
|
237
|
+
"license": "AGPL-3.0-or-later",
|
189
238
|
"engines": {
|
190
239
|
"node": "*"
|
191
240
|
},
|
192
241
|
"directories": {
|
193
242
|
"dist": "dist",
|
243
|
+
"script": "script",
|
194
244
|
"src": "src",
|
195
245
|
"test": "test"
|
196
246
|
},
|
197
247
|
"bugs": "https://github.com/faisalman/ua-parser-js/issues",
|
198
|
-
"demo": "https://
|
199
|
-
"download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.
|
248
|
+
"demo": "https://uaparser.dev",
|
249
|
+
"download": "https://raw.github.com/faisalman/ua-parser-js/master/dist/ua-parser.pack.js",
|
200
250
|
"funding": [
|
201
251
|
{
|
202
252
|
"type": "opencollective",
|
@@ -207,8 +257,8 @@
|
|
207
257
|
"url": "https://paypal.me/faisalman"
|
208
258
|
},
|
209
259
|
{
|
210
|
-
|
211
|
-
|
260
|
+
"type": "github",
|
261
|
+
"url": "https://github.com/sponsors/faisalman"
|
212
262
|
}
|
213
263
|
]
|
214
264
|
}
|
package/script/cli.js
ADDED
@@ -0,0 +1,366 @@
|
|
1
|
+
// Type definitions for Enums submodule of UAParser.js v2.0.2
|
2
|
+
// Project: https://github.com/faisalman/ua-parser-js
|
3
|
+
// Definitions by: Faisal Salman <https://github.com/faisalman>
|
4
|
+
|
5
|
+
export const Browser: Readonly<{
|
6
|
+
'115': "115";
|
7
|
+
'2345': "2345";
|
8
|
+
'360': "360";
|
9
|
+
ALIPAY: "Alipay";
|
10
|
+
AMAYA: "Amaya";
|
11
|
+
ANDROID: "Android Browser";
|
12
|
+
ARORA: "Arora";
|
13
|
+
AVANT: "Avant";
|
14
|
+
AVAST: "Avast Secure Browser";
|
15
|
+
AVG: "AVG Secure Browser";
|
16
|
+
BAIDU: "Baidu Browser";
|
17
|
+
BASILISK: "Basilisk";
|
18
|
+
BLAZER: "Blazer";
|
19
|
+
BOLT: "Bolt";
|
20
|
+
BOWSER: "Bowser";
|
21
|
+
BRAVE: "Brave";
|
22
|
+
CAMINO: "Camino";
|
23
|
+
CHIMERA: "Chimera";
|
24
|
+
CHROME: "Chrome";
|
25
|
+
CHROME_HEADLESS: "Chrome Headless";
|
26
|
+
CHROME_MOBILE: "Mobile Chrome";
|
27
|
+
CHROME_WEBVIEW: "Chrome WebView";
|
28
|
+
CHROMIUM: "Chromium";
|
29
|
+
COBALT: "Cobalt";
|
30
|
+
COC_COC: "Coc Coc";
|
31
|
+
CONKEROR: "Conkeror";
|
32
|
+
DAUM: "Daum";
|
33
|
+
DILLO: "Dillo";
|
34
|
+
DOLPHIN: "Dolphin";
|
35
|
+
DORIS: "Doris";
|
36
|
+
DRAGON: "Dragon";
|
37
|
+
DUCKDUCKGO: "DuckDuckGo";
|
38
|
+
EDGE: "Edge";
|
39
|
+
EPIPHANY: "Epiphany";
|
40
|
+
FACEBOOK: "Facebook";
|
41
|
+
FALKON: "Falkon";
|
42
|
+
FIREBIRD: "Firebird";
|
43
|
+
FIREFOX: "Firefox";
|
44
|
+
FIREFOX_FOCUS: "Firefox Focus";
|
45
|
+
FIREFOX_MOBILE: "Mobile Firefox";
|
46
|
+
FIREFOX_REALITY: "Firefox Reality";
|
47
|
+
FENNEC: "Fennec";
|
48
|
+
FLOCK: "Flock";
|
49
|
+
FLOW: "Flow";
|
50
|
+
GO: "GoBrowser";
|
51
|
+
GOOGLE_SEARCH: "GSA";
|
52
|
+
HELIO: "Helio";
|
53
|
+
HEYTAP: "HeyTap";
|
54
|
+
HONOR: "Honor";
|
55
|
+
HUAWEI: "Huawei Browser";
|
56
|
+
ICAB: "iCab";
|
57
|
+
ICE: "ICE Browser";
|
58
|
+
ICEAPE: "IceApe";
|
59
|
+
ICECAT: "IceCat";
|
60
|
+
ICEDRAGON: "IceDragon";
|
61
|
+
ICEWEASEL: "IceWeasel";
|
62
|
+
IE: "IE";
|
63
|
+
INSTAGRAM: "Instagram";
|
64
|
+
IRIDIUM: "Iridium";
|
65
|
+
IRON: "Iron";
|
66
|
+
JASMINE: "Jasmine";
|
67
|
+
KONQUEROR: "Konqueror";
|
68
|
+
KAKAO: "KakaoTalk";
|
69
|
+
KHTML: "KHTML";
|
70
|
+
K_MELEON: "K-Meleon";
|
71
|
+
KLAR: "Klar";
|
72
|
+
KLARNA: "Klarna";
|
73
|
+
KINDLE: "Kindle";
|
74
|
+
LENOVO: "Smart Lenovo Browser";
|
75
|
+
LADYBIRD: "Ladybird";
|
76
|
+
LIBREWOLF: "LibreWolf";
|
77
|
+
LIEBAO: "LBBROWSER";
|
78
|
+
LINE: "Line";
|
79
|
+
LINKEDIN: "LinkedIn";
|
80
|
+
LINKS: "Links";
|
81
|
+
LUNASCAPE: "Lunascape";
|
82
|
+
LYNX: "Lynx";
|
83
|
+
MAEMO: "Maemo Browser";
|
84
|
+
MAXTHON: "Maxthon";
|
85
|
+
MIDORI: "Midori";
|
86
|
+
MINIMO: "Minimo";
|
87
|
+
MIUI: "MIUI Browser";
|
88
|
+
MOZILLA: "Mozilla";
|
89
|
+
MOSAIC: "Mosaic";
|
90
|
+
NAVER: "Naver";
|
91
|
+
NETFRONT: "NetFront";
|
92
|
+
NETSCAPE: "Netscape";
|
93
|
+
NETSURF: "Netsurf";
|
94
|
+
NOKIA: "Nokia Browser";
|
95
|
+
OBIGO: "Obigo";
|
96
|
+
OCULUS: "Oculus Browser";
|
97
|
+
OMNIWEB: "OmniWeb";
|
98
|
+
OPERA: "Opera";
|
99
|
+
OPERA_COAST: "Opera Coast";
|
100
|
+
OPERA_MINI: "Opera Mini";
|
101
|
+
OPERA_MOBI: "Opera Mobi";
|
102
|
+
OPERA_TABLET: "Opera Tablet";
|
103
|
+
OPERA_TOUCH: "Opera Touch";
|
104
|
+
OVI: "OviBrowser";
|
105
|
+
PALEMOON: "PaleMoon";
|
106
|
+
PHANTOMJS: "PhantomJS";
|
107
|
+
PHOENIX: "Phoenix";
|
108
|
+
PICOBROWSER: "Pico Browser";
|
109
|
+
POLARIS: "Polaris";
|
110
|
+
PUFFIN: "Puffin";
|
111
|
+
QQ: "QQBrowser";
|
112
|
+
QQ_LITE: "QQBrowserLite";
|
113
|
+
QUARK: "Quark";
|
114
|
+
QUPZILLA: "QupZilla";
|
115
|
+
REKONQ: "rekonq";
|
116
|
+
ROCKMELT: "Rockmelt";
|
117
|
+
SAFARI: "Safari";
|
118
|
+
SAFARI_MOBILE: "Mobile Safari";
|
119
|
+
SAILFISH: "Sailfish Browser";
|
120
|
+
SAMSUNG: "Samsung Internet";
|
121
|
+
SEAMONKEY: "SeaMonkey";
|
122
|
+
SILK: "Silk";
|
123
|
+
SKYFIRE: "Skyfire";
|
124
|
+
SLEIPNIR: "Sleipnir";
|
125
|
+
SLIMBOAT: "SlimBoat";
|
126
|
+
SLIMBROWSER: "SlimBrowser";
|
127
|
+
SLIMJET: "Slimjet";
|
128
|
+
SNAPCHAT: "Snapchat";
|
129
|
+
SOGOU_EXPLORER: "Sogou Explorer";
|
130
|
+
SOGOU_MOBILE: "Sogou Mobile";
|
131
|
+
SWIFTFOX: "Swiftfox";
|
132
|
+
TESLA: "Tesla";
|
133
|
+
TIKTOK: "TikTok";
|
134
|
+
TIZEN: "Tizen Browser";
|
135
|
+
TWITTER: "Twitter";
|
136
|
+
UC: "UCBrowser";
|
137
|
+
UP: "UP.Browser";
|
138
|
+
VIVALDI: "Vivaldi";
|
139
|
+
VIVO: "Vivo Browser";
|
140
|
+
W3M: "w3m";
|
141
|
+
WATERFOX: "Waterfox";
|
142
|
+
WEBKIT: "WebKit";
|
143
|
+
WECHAT: "WeChat";
|
144
|
+
WEIBO: "Weibo";
|
145
|
+
WHALE: "Whale";
|
146
|
+
WOLVIC: "Wolvic";
|
147
|
+
YANDEX: "Yandex";
|
148
|
+
}>;
|
149
|
+
export const BrowserType: Readonly<{
|
150
|
+
CRAWLER: "crawler";
|
151
|
+
CLI: "cli";
|
152
|
+
EMAIL: "email";
|
153
|
+
FETCHER: "fetcher";
|
154
|
+
INAPP: "inapp";
|
155
|
+
MEDIAPLAYER: "mediaplayer";
|
156
|
+
LIBRARY: "library";
|
157
|
+
}>;
|
158
|
+
export const CPU: Readonly<{
|
159
|
+
'68K': "68k";
|
160
|
+
ARM: "arm";
|
161
|
+
ARM_64: "arm64";
|
162
|
+
ARM_HF: "armhf";
|
163
|
+
AVR: "avr";
|
164
|
+
AVR_32: "avr32";
|
165
|
+
IA64: "ia64";
|
166
|
+
IRIX: "irix";
|
167
|
+
IRIX_64: "irix64";
|
168
|
+
MIPS: "mips";
|
169
|
+
MIPS_64: "mips64";
|
170
|
+
PA_RISC: "pa-risc";
|
171
|
+
PPC: "ppc";
|
172
|
+
SPARC: "sparc";
|
173
|
+
SPARC_64: "sparc64";
|
174
|
+
X86: "ia32";
|
175
|
+
X86_64: "amd64";
|
176
|
+
}>;
|
177
|
+
export const Device: Readonly<{
|
178
|
+
CONSOLE: "console";
|
179
|
+
DESKTOP: "desktop";
|
180
|
+
EMBEDDED: "embedded";
|
181
|
+
MOBILE: "mobile";
|
182
|
+
SMARTTV: "smarttv";
|
183
|
+
TABLET: "tablet";
|
184
|
+
WEARABLE: "wearable";
|
185
|
+
XR: "xr";
|
186
|
+
}>;
|
187
|
+
export const Vendor: Readonly<{
|
188
|
+
ACER: "Acer";
|
189
|
+
ADVAN: "Advan";
|
190
|
+
ALCATEL: "Alcatel";
|
191
|
+
APPLE: "Apple";
|
192
|
+
AMAZON: "Amazon";
|
193
|
+
ARCHOS: "Archos";
|
194
|
+
ASUS: "ASUS";
|
195
|
+
ATT: "AT&T";
|
196
|
+
BENQ: "BenQ";
|
197
|
+
BLACKBERRY: "BlackBerry";
|
198
|
+
CAT: "Cat";
|
199
|
+
DELL: "Dell";
|
200
|
+
ENERGIZER: "Energizer";
|
201
|
+
ESSENTIAL: "Essential";
|
202
|
+
FACEBOOK: "Facebook";
|
203
|
+
FAIRPHONE: "Fairphone";
|
204
|
+
GEEKSPHONE: "GeeksPhone";
|
205
|
+
GENERIC: "Generic";
|
206
|
+
GOOGLE: "Google";
|
207
|
+
HMD: "HMD";
|
208
|
+
HP: "HP";
|
209
|
+
HTC: "HTC";
|
210
|
+
HUAWEI: "Huawei";
|
211
|
+
IMO: "IMO";
|
212
|
+
INFINIX: "Infinix";
|
213
|
+
ITEL: "itel";
|
214
|
+
JOLLA: "Jolla";
|
215
|
+
KOBO: "Kobo";
|
216
|
+
LENOVO: "Lenovo";
|
217
|
+
LG: "LG";
|
218
|
+
MEIZU: "Meizu";
|
219
|
+
MICROMAX: "Micromax";
|
220
|
+
MICROSOFT: "Microsoft";
|
221
|
+
MOTOROLA: "Motorola";
|
222
|
+
NEXIAN: "Nexian";
|
223
|
+
NINTENDO: "Nintendo";
|
224
|
+
NOKIA: "Nokia";
|
225
|
+
NOTHING: "Nothing";
|
226
|
+
NVIDIA: "Nvidia";
|
227
|
+
ONEPLUS: "OnePlus";
|
228
|
+
OPPO: "OPPO";
|
229
|
+
OUYA: "Ouya";
|
230
|
+
PALM: "Palm";
|
231
|
+
PANASONIC: "Panasonic";
|
232
|
+
PEBBLE: "Pebble";
|
233
|
+
PICO: "Pico";
|
234
|
+
POLYTRON: "Polytron";
|
235
|
+
REALME: "Realme";
|
236
|
+
RIM: "RIM";
|
237
|
+
ROKU: "Roku";
|
238
|
+
SAMSUNG: "Samsung";
|
239
|
+
SHARP: "Sharp";
|
240
|
+
SIEMENS: "Siemens";
|
241
|
+
SMARTFREN: "Smartfren";
|
242
|
+
SONY: "Sony";
|
243
|
+
SPRINT: "Sprint";
|
244
|
+
TCL: "TCL";
|
245
|
+
TECHNISAT: "TechniSAT";
|
246
|
+
TECNO: "Tecno";
|
247
|
+
TESLA: "Tesla";
|
248
|
+
ULEFONE: "Ulefone";
|
249
|
+
VIVO: "Vivo";
|
250
|
+
VODAFONE: "Vodafone";
|
251
|
+
XBOX: "Xbox";
|
252
|
+
XIAOMI: "Xiaomi";
|
253
|
+
ZEBRA: "Zebra";
|
254
|
+
ZTE: "ZTE";
|
255
|
+
}>;
|
256
|
+
export const Engine: Readonly<{
|
257
|
+
AMAYA: "Amaya";
|
258
|
+
ARKWEB: "ArkWeb";
|
259
|
+
BLINK: "Blink";
|
260
|
+
EDGEHTML: "EdgeHTML";
|
261
|
+
FLOW: "Flow";
|
262
|
+
GECKO: "Gecko";
|
263
|
+
GOANNA: "Goanna";
|
264
|
+
ICAB: "iCab";
|
265
|
+
KHTML: "KHTML";
|
266
|
+
LIBWEB: "LibWeb";
|
267
|
+
LINKS: "Links";
|
268
|
+
LYNX: "Lynx";
|
269
|
+
NETFRONT: "NetFront";
|
270
|
+
NETSURF: "NetSurf";
|
271
|
+
PRESTO: "Presto";
|
272
|
+
SERVO: "Servo";
|
273
|
+
TASMAN: "Tasman";
|
274
|
+
TRIDENT: "Trident";
|
275
|
+
W3M: "w3m";
|
276
|
+
WEBKIT: "WebKit";
|
277
|
+
}>;
|
278
|
+
export const OS: Readonly<{
|
279
|
+
AIX: "AIX";
|
280
|
+
AMIGA_OS: "Amiga OS";
|
281
|
+
ANDROID: "Android";
|
282
|
+
ANDROID_X86: "Android-x86";
|
283
|
+
ARCH: "Arch";
|
284
|
+
BADA: "Bada";
|
285
|
+
BEOS: "BeOS";
|
286
|
+
BLACKBERRY: "BlackBerry";
|
287
|
+
CENTOS: "CentOS";
|
288
|
+
CHROME_OS: "Chrome OS";
|
289
|
+
CHROMECAST: "Chromecast";
|
290
|
+
CHROMECAST_ANDROID: "Chromecast Android";
|
291
|
+
CHROMECAST_FUCHSIA: "Chromecast Fuchsia";
|
292
|
+
CHROMECAST_LINUX: "Chromecast Linux";
|
293
|
+
CHROMECAST_SMARTSPEAKER: "Chromecast SmartSpeaker";
|
294
|
+
CONTIKI: "Contiki";
|
295
|
+
DEBIAN: "Debian";
|
296
|
+
DEEPIN: "Deepin";
|
297
|
+
DRAGONFLY: "DragonFly";
|
298
|
+
ELEMENTARY_OS: "elementary OS";
|
299
|
+
FEDORA: "Fedora";
|
300
|
+
FIREFOX_OS: "Firefox OS";
|
301
|
+
FREEBSD: "FreeBSD";
|
302
|
+
FUCHSIA: "Fuchsia";
|
303
|
+
GENTOO: "Gentoo";
|
304
|
+
GHOSTBSD: "GhostBSD";
|
305
|
+
GNU: "GNU";
|
306
|
+
HAIKU: "Haiku";
|
307
|
+
HARMONYOS: "HarmonyOS";
|
308
|
+
HP_UX: "HP-UX";
|
309
|
+
HURD: "Hurd";
|
310
|
+
IOS: "iOS";
|
311
|
+
JOLI: "Joli";
|
312
|
+
KAIOS: "KaiOS";
|
313
|
+
KUBUNTU: "Kubuntu";
|
314
|
+
LINPUS: "Linpus";
|
315
|
+
LINSPIRE: "Linspire";
|
316
|
+
LINUX: "Linux";
|
317
|
+
MACOS: "macOS";
|
318
|
+
MAEMO: "Maemo";
|
319
|
+
MAGEIA: "Mageia";
|
320
|
+
MANDRIVA: "Mandriva";
|
321
|
+
MANJARO: "Manjaro";
|
322
|
+
MEEGO: "MeeGo";
|
323
|
+
MINIX: "Minix";
|
324
|
+
MINT: "Mint";
|
325
|
+
MORPH_OS: "Morph OS";
|
326
|
+
NETBSD: "NetBSD";
|
327
|
+
NETRANGE: "NetRange";
|
328
|
+
NETTV: "NetTV";
|
329
|
+
NINTENDO: "Nintendo";
|
330
|
+
OPENHARMONY: "OpenHarmony";
|
331
|
+
OPENBSD: "OpenBSD";
|
332
|
+
OPENVMS: "OpenVMS";
|
333
|
+
OS2: "OS/2";
|
334
|
+
PALM: "Palm";
|
335
|
+
PC_BSD: "PC-BSD";
|
336
|
+
PCLINUXOS: "PCLinuxOS";
|
337
|
+
PICO: "Pico";
|
338
|
+
PLAN9: "Plan9";
|
339
|
+
PLAYSTATION: "PlayStation";
|
340
|
+
QNX: "QNX";
|
341
|
+
RASPBIAN: "Raspbian";
|
342
|
+
REDHAT: "RedHat";
|
343
|
+
RIM_TABLET_OS: "RIM Tablet OS";
|
344
|
+
RISC_OS: "RISC OS";
|
345
|
+
SABAYON: "Sabayon";
|
346
|
+
SAILFISH: "Sailfish";
|
347
|
+
SERENITYOS: "SerenityOS";
|
348
|
+
SERIES40: "Series40";
|
349
|
+
SLACKWARE: "Slackware";
|
350
|
+
SOLARIS: "Solaris";
|
351
|
+
SUSE: "SUSE";
|
352
|
+
SYMBIAN: "Symbian";
|
353
|
+
TIZEN: "Tizen";
|
354
|
+
UBUNTU: "Ubuntu";
|
355
|
+
UBUNTU_TOUCH: "Ubuntu Touch",
|
356
|
+
UNIX: "Unix";
|
357
|
+
VECTORLINUX: "VectorLinux";
|
358
|
+
WATCHOS: "watchOS";
|
359
|
+
WEBOS: "WebOS";
|
360
|
+
WINDOWS: "Windows";
|
361
|
+
WINDOWS_IOT: "Windows IoT";
|
362
|
+
WINDOWS_MOBILE: "Windows Mobile";
|
363
|
+
WINDOWS_PHONE: "Windows Phone";
|
364
|
+
XBOX: "Xbox";
|
365
|
+
ZENWALK: "Zenwalk";
|
366
|
+
}>;
|