ua-parser-js 2.0.0-alpha.2 → 2.0.0-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,252 @@
1
+ // Generated ESM version of UAParser.js extensions
2
+ // DO NOT EDIT THIS FILE!
3
+ // Source: /src/extensions/ua-parser-extensions.js
4
+
5
+ ///////////////////////////////////////////////
6
+ /* Extensions for UAParser.js v2.0.0-alpha.3
7
+ https://github.com/faisalman/ua-parser-js
8
+ Author: Faisal Salman <f@faisalman.com>
9
+ MIT License */
10
+ //////////////////////////////////////////////
11
+
12
+ /*jshint esversion: 6 */
13
+
14
+ const MODEL = 'model';
15
+ const NAME = 'name';
16
+ const TYPE = 'type';
17
+ const VENDOR = 'vendor';
18
+ const VERSION = 'version';
19
+ const MOBILE = 'mobile';
20
+ const TABLET = 'tablet';
21
+
22
+ const Apps = Object.freeze({
23
+ browser : [
24
+ [/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, 'app']]
25
+ ]
26
+ });
27
+
28
+ const Bots = Object.freeze({
29
+ browser : [
30
+ // Googlebot / BingBot / MSNBot / FacebookBot
31
+ [/((?:google|bing|msn|facebook)bot(?:[\-imagevdo]{0,6})|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
32
+
33
+ // GPTBot - https://platform.openai.com/docs/gptbot
34
+ [/(gptbot)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']],
35
+
36
+ // Slackbot - https://api.slack.com/robots
37
+ [/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
38
+ ]
39
+ });
40
+
41
+ const CLIs = Object.freeze({
42
+ browser : [
43
+ // wget / curl / lynx
44
+ [/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'cli']]
45
+ ]
46
+ });
47
+
48
+ const ExtraDevices = Object.freeze({
49
+ device : [[
50
+ /(nook)[\w ]+build\/(\w+)/i, // Nook
51
+ /(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
52
+ /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
53
+ /(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
54
+ /(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
55
+ /(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
56
+ ], [VENDOR, MODEL, [TYPE, TABLET]], [
57
+
58
+ /(u304aa)/i // AT&T
59
+ ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
60
+
61
+ /\bsie-(\w*)/i // Siemens
62
+ ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
63
+
64
+ /\b(rct\w+) b/i // RCA Tablets
65
+ ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
66
+
67
+ /\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
68
+ ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
69
+
70
+ /\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
71
+ ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
72
+
73
+ /\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
74
+ ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
75
+
76
+ /\b(tm\d{3}\w+) b/i
77
+ ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
78
+
79
+ /\b(k88) b/i // ZTE K Series Tablet
80
+ ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
81
+
82
+ /\b(nx\d{3}j) b/i // ZTE Nubia
83
+ ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
84
+
85
+ /\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
86
+ ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
87
+
88
+ /\b(zur\d{3}) b/i // Swiss ZUR Tablet
89
+ ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
90
+
91
+ /\b((zeki)?tb.*\b) b/i // Zeki Tablets
92
+ ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
93
+
94
+ /\b([yr]\d{2}) b/i,
95
+ /\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
96
+ ], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
97
+
98
+ /\b(ns-?\w{0,9}) b/i // Insignia Tablets
99
+ ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
100
+
101
+ /\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
102
+ ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
103
+
104
+ /\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
105
+ ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
106
+
107
+ /\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
108
+ ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
109
+
110
+ /\b(ph-1) /i // Essential PH-1
111
+ ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
112
+
113
+ /\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
114
+ ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
115
+
116
+ /\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
117
+ ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
118
+
119
+ /\btu_(1491) b/i // Rotor Tablets
120
+ ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]]
121
+ ]
122
+ });
123
+
124
+ const Emails = Object.freeze({
125
+ browser : [
126
+ // Microsoft Outlook / Thunderbird
127
+ [/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
128
+ ]
129
+ });
130
+
131
+ const MediaPlayers = Object.freeze({
132
+ browser : [[
133
+
134
+ /(apple(?:coremedia|))\/([\w\._]+)/i, // Generic Apple CoreMedia
135
+ /(coremedia) v([\w\._]+)/i
136
+ ], [NAME, VERSION], [
137
+
138
+ /(aqualung|lyssna|bsplayer)\/([\w\.-]+)/i // Aqualung/Lyssna/BSPlayer
139
+ ], [NAME, VERSION], [
140
+
141
+ /(ares|ossproxy)\s([\w\.-]+)/i // Ares/OSSProxy
142
+ ], [NAME, VERSION], [
143
+
144
+ /(audacious|audimusicstream|amarok|bass|core|dalvik|gnomemplayer|music on console|nsplayer|psp-internetradioplayer|videos)\/([\w\.-]+)/i,
145
+ // Audacious/AudiMusicStream/Amarok/BASS/OpenCORE/Dalvik/GnomeMplayer/MoC
146
+ // NSPlayer/PSP-InternetRadioPlayer/Videos
147
+ /(clementine|music player daemon)\s([\w\.-]+)/i, // Clementine/MPD
148
+ /(lg player|nexplayer)\s([\d\.]+)/i,
149
+ /player\/(nexplayer|lg player)\s([\w\.-]+)/i // NexPlayer/LG Player
150
+ ], [NAME, VERSION], [
151
+ /(nexplayer)\s([\w\.-]+)/i // Nexplayer
152
+ ], [NAME, VERSION], [
153
+
154
+ /(flrp)\/([\w\.-]+)/i // Flip Player
155
+ ], [[NAME, 'Flip Player'], VERSION], [
156
+
157
+ /(fstream|nativehost|queryseekspider|ia-archiver|facebookexternalhit)/i
158
+ // FStream/NativeHost/QuerySeekSpider/IA Archiver/facebookexternalhit
159
+ ], [NAME], [
160
+
161
+ /(gstreamer) souphttpsrc.+libsoup\/([\w\.-]+)/i
162
+ // Gstreamer
163
+ ], [NAME, VERSION], [
164
+
165
+ /(htc streaming player)\s[\w_]+\s\/\s([\d\.]+)/i, // HTC Streaming Player
166
+ /(java|python-urllib|python-requests|wget|libcurl)\/([\w\.-_]+)/i,
167
+ // Java/urllib/requests/wget/cURL
168
+ /(lavf)([\d\.]+)/i // Lavf (FFMPEG)
169
+ ], [NAME, VERSION], [
170
+
171
+ /(htc_one_s)\/([\d\.]+)/i, // HTC One S
172
+ ], [[NAME, /_/g, ' '], VERSION], [
173
+
174
+ /(mplayer)(?:\s|\/)(?:(?:sherpya-){0,1}svn)(?:-|\s)(r\d+(?:-\d+[\w\.-]+))/i,
175
+ // MPlayer SVN
176
+ ], [NAME, VERSION], [
177
+
178
+ /(mplayer)(?:\s|\/)([\w\.-]+)/i, // MPlayer
179
+ /(mplayer) unknown-([\w\.\-]+)/i // MPlayer UNKNOWN
180
+ ], [NAME, VERSION], [
181
+
182
+ /(mplayer)/i, // MPlayer (no other info)
183
+ /(yourmuze)/i, // YourMuze
184
+ /(media player classic|nero showtime)/i // Media Player Classic/Nero ShowTime
185
+ ], [NAME], [
186
+
187
+ /(nero (?:home|scout))\/([\w\.-]+)/i // Nero Home/Nero Scout
188
+ ], [NAME, VERSION], [
189
+
190
+ /(nokia\d+)\/([\w\.-]+)/i // Nokia
191
+ ], [NAME, VERSION], [
192
+
193
+ /\s(songbird)\/([\w\.-]+)/i // Songbird/Philips-Songbird
194
+ ], [NAME, VERSION], [
195
+
196
+ /(winamp)3 version ([\w\.-]+)/i, // Winamp
197
+ /(winamp)\s([\w\.-]+)/i,
198
+ /(winamp)mpeg\/([\w\.-]+)/i
199
+ ], [NAME, VERSION], [
200
+
201
+ /(ocms-bot|tapinradio|tunein radio|unknown|winamp|inlight radio)/i // OCMS-bot/tap in radio/tunein/unknown/winamp (no other info)
202
+ // inlight radio
203
+ ], [NAME], [
204
+
205
+ /(quicktime|rma|radioapp|radioclientapplication|soundtap|totem|stagefright|streamium)\/([\w\.-]+)/i
206
+ // QuickTime/RealMedia/RadioApp/RadioClientApplication/
207
+ // SoundTap/Totem/Stagefright/Streamium
208
+ ], [NAME, VERSION], [
209
+
210
+ /(smp)([\d\.]+)/i // SMP
211
+ ], [NAME, VERSION], [
212
+
213
+ /(vlc) media player - version ([\w\.]+)/i, // VLC Videolan
214
+ /(vlc)\/([\w\.-]+)/i,
215
+ /(xbmc|gvfs|xine|xmms|irapp)\/([\w\.-]+)/i, // XBMC/gvfs/Xine/XMMS/irapp
216
+ /(foobar2000)\/([\d\.]+)/i, // Foobar2000
217
+ /(itunes)\/([\d\.]+)/i // iTunes
218
+ ], [NAME, VERSION], [
219
+
220
+ /(wmplayer)\/([\w\.-]+)/i, // Windows Media Player
221
+ /(windows-media-player)\/([\w\.-]+)/i
222
+ ], [[NAME, /-/g, ' '], VERSION], [
223
+
224
+ /windows\/([\w\.-]+) upnp\/[\d\.]+ dlnadoc\/[\d\.]+ (home media server)/i,
225
+ // Windows Media Server
226
+ ], [VERSION, [NAME, 'Windows']], [
227
+
228
+ /(com\.riseupradioalarm)\/([\d\.]*)/i // RiseUP Radio Alarm
229
+ ], [NAME, VERSION], [
230
+
231
+ /(rad.io)\s([\d\.]+)/i, // Rad.io
232
+ /(radio.(?:de|at|fr))\s([\d\.]+)/i
233
+ ], [[NAME, 'rad.io'], VERSION]
234
+ ]
235
+ });
236
+
237
+ const Modules = Object.freeze({
238
+ browser : [
239
+ // Axios/jsdom/Scrapy
240
+ [/\b(axios|jsdom|scrapy)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'module']]
241
+ ]
242
+ });
243
+
244
+ export {
245
+ Apps,
246
+ Bots,
247
+ CLIs,
248
+ ExtraDevices,
249
+ Emails,
250
+ MediaPlayers,
251
+ Modules
252
+ };
@@ -0,0 +1,42 @@
1
+ ///////////////////////////////////////////////
2
+ /* Helpers for UAParser.js v2.0.0-alpha.3
3
+ https://github.com/faisalman/ua-parser-js
4
+ Author: Faisal Salman <f@faisalman.com>
5
+ MIT License */
6
+ //////////////////////////////////////////////
7
+
8
+ /*jshint esversion: 6 */
9
+
10
+ /*
11
+ # Reference:
12
+ https://www.chromium.org/updates/ua-reduction/
13
+
14
+ # Desktop
15
+ ---
16
+ Format:
17
+ Mozilla/5.0 (<unifiedPlatform>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Safari/537.36
18
+
19
+ Possible <unifiedPlatform> values:
20
+ - Windows NT 10.0; Win64; x64
21
+ - Macintosh; Intel Mac OS X 10_15_7
22
+ - X11; Linux x86_64
23
+ - X11; CrOS x86_64 14541.0.0
24
+ - Fuchsia
25
+
26
+ # Mobile & Tablet: (except iOS/Android WebView)
27
+ ---
28
+ Format:
29
+ Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 <deviceCompat> Safari/537.36
30
+
31
+ Possible <deviceCompat> values:
32
+ - "Mobile"
33
+ - "" (empty string for Tablets & Desktop)
34
+ */
35
+
36
+ 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/;
37
+
38
+ const isFrozenUA = str => frozenUA.test(str);
39
+
40
+ module.exports = {
41
+ isFrozenUA
42
+ };
@@ -0,0 +1,46 @@
1
+ // Generated ESM version of UAParser.js helpers
2
+ // DO NOT EDIT THIS FILE!
3
+ // Source: /src/helpers/ua-parser-helpers.js
4
+
5
+ ///////////////////////////////////////////////
6
+ /* Helpers for UAParser.js v2.0.0-alpha.3
7
+ https://github.com/faisalman/ua-parser-js
8
+ Author: Faisal Salman <f@faisalman.com>
9
+ MIT License */
10
+ //////////////////////////////////////////////
11
+
12
+ /*jshint esversion: 6 */
13
+
14
+ /*
15
+ # Reference:
16
+ https://www.chromium.org/updates/ua-reduction/
17
+
18
+ # Desktop
19
+ ---
20
+ Format:
21
+ Mozilla/5.0 (<unifiedPlatform>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Safari/537.36
22
+
23
+ Possible <unifiedPlatform> values:
24
+ - Windows NT 10.0; Win64; x64
25
+ - Macintosh; Intel Mac OS X 10_15_7
26
+ - X11; Linux x86_64
27
+ - X11; CrOS x86_64 14541.0.0
28
+ - Fuchsia
29
+
30
+ # Mobile & Tablet: (except iOS/Android WebView)
31
+ ---
32
+ Format:
33
+ Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 <deviceCompat> Safari/537.36
34
+
35
+ Possible <deviceCompat> values:
36
+ - "Mobile"
37
+ - "" (empty string for Tablets & Desktop)
38
+ */
39
+
40
+ 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/;
41
+
42
+ const isFrozenUA = str => frozenUA.test(str);
43
+
44
+ export {
45
+ isFrozenUA
46
+ };