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

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,107 +1,354 @@
1
- // Generated ESM version of UAParser.js enums
1
+ // Generated ESM version of ua-parser-js/enums
2
2
  // DO NOT EDIT THIS FILE!
3
3
  // Source: /src/enums/ua-parser-enums.js
4
4
 
5
5
  ///////////////////////////////////////////////
6
- /* Enums for UAParser.js v2.0.0-alpha.3
6
+ /* Enums for UAParser.js v2.0.0-beta.2
7
7
  https://github.com/faisalman/ua-parser-js
8
8
  Author: Faisal Salman <f@faisalman.com>
9
- MIT License */
9
+ AGPLv3 License */
10
10
  //////////////////////////////////////////////
11
11
 
12
12
  /*jshint esversion: 6 */
13
13
 
14
- const BrowserName = Object.freeze({
15
- CHROME : 'Chrome',
16
- EDGE : 'Edge',
17
- SAFARI : 'Safari',
18
- FIREFOX : 'Firefox',
19
- OPERA : 'Opera',
20
- MOBILE_CHROME : 'Mobile Chrome',
21
- MOBILE_SAFARI : 'Mobile Safari',
22
- MOBILE_FIREFOX : 'Mobile Firefox',
23
- ANDROID_BROWSER : 'Android Browser'
14
+ const Browser = Object.freeze({
15
+ _2345_EXPLORER: '2345Explorer',
16
+ _360: '360 Browser',
17
+ ALIPAY: 'Alipay',
18
+ AMAYA: 'Amaya',
19
+ ANDROID: 'Android Browser',
20
+ ARORA: 'Arora',
21
+ AVANT: 'Avant',
22
+ AVAST: 'Avast Secure Browser',
23
+ AVG: 'AVG Secure Browser',
24
+ BAIDU: 'Baidu Browser',
25
+ BASILISK: 'Basilisk',
26
+ BLAZER: 'Blazer',
27
+ BOLT: 'Bolt',
28
+ BOWSER: 'Bowser',
29
+ BRAVE: 'Brave',
30
+ CAMINO: 'Camino',
31
+ CHIMERA: 'Chimera',
32
+ CHROME: 'Chrome',
33
+ CHROME_HEADLESS: 'Chrome Headless',
34
+ CHROME_MOBILE: 'Mobile Chrome',
35
+ CHROME_WEBVIEW: 'Chrome WebView',
36
+ CHROMIUM: 'Chromium',
37
+ COBALT: 'Cobalt',
38
+ COC_COC: 'Coc Coc',
39
+ COMODO_DRAGON: 'Comodo Dragon',
40
+ CONKEROR: 'Conkeror',
41
+ DILLO: 'Dillo',
42
+ DOLPHIN: 'Dolphin',
43
+ DORIS: 'Doris',
44
+ DUCKDUCKGO: 'DuckDuckGo',
45
+ EDGE: 'Edge',
46
+ EPIPHANY: 'Epiphany',
47
+ FACEBOOK: 'Facebook',
48
+ FALKON: 'Falkon',
49
+ FIREBIRD: 'Firebird',
50
+ FIREFOX: 'Firefox',
51
+ FIREFOX_FOCUS: 'Firefox Focus',
52
+ FIREFOX_MOBILE: 'Mobile Firefox',
53
+ FIREFOX_REALITY: 'Firefox Reality',
54
+ FENNEC: 'Fennec',
55
+ FLOCK: 'Flock',
56
+ FLOW: 'Flow',
57
+ GO: 'Go Browser',
58
+ GOOGLE_SEARCH: 'GSA',
59
+ HEYTAP: 'HeyTap',
60
+ HUAWEI: 'Huawei Browser',
61
+ ICAB: 'iCab',
62
+ ICE: 'ICE Browser',
63
+ ICEAPE: 'IceApe',
64
+ ICECAT: 'IceCat',
65
+ ICEDRAGON: 'IceDragon',
66
+ ICEWEASEL: 'IceWeasel',
67
+ IE: 'IE',
68
+ INSTAGRAM: 'Instagram',
69
+ IRIDIUM: 'Iridium',
70
+ IRON: 'Iron',
71
+ JASMINE: 'Jasmine',
72
+ KONQUEROR: 'Konqueror',
73
+ KAKAO: 'KakaoTalk',
74
+ KHTML: 'KHTML',
75
+ K_MELEON: 'K-Meleon',
76
+ KLAR: 'Klar',
77
+ KLARNA: 'Klarna',
78
+ KINDLE: 'Kindle',
79
+ LENOVO: 'Smart Lenovo Browser',
80
+ LIEBAO: 'LBBROWSER',
81
+ LINE: 'Line',
82
+ LINKEDIN: 'LinkedIn',
83
+ LINKS: 'Links',
84
+ LUNASCAPE: 'Lunascape',
85
+ LYNX: 'Lynx',
86
+ MAEMO: 'Maemo Browser',
87
+ MAXTHON: 'Maxthon',
88
+ MIDORI: 'Midori',
89
+ MINIMO: 'Minimo',
90
+ MIUI: 'MIUI Browser',
91
+ MOZILLA: 'Mozilla',
92
+ MOSAIC: 'Mosaic',
93
+ NAVER: 'Naver',
94
+ NETFRONT: 'NetFront',
95
+ NETSCAPE: 'Netscape',
96
+ NETSURF: 'Netsurf',
97
+ NOKIA: 'Nokia Browser',
98
+ OBIGO: 'Obigo',
99
+ OCULUS: 'Oculus Browser',
100
+ OMNIWEB: 'OmniWeb',
101
+ OPERA: 'Opera',
102
+ OPERA_COAST: 'Opera Coast',
103
+ OPERA_MINI: 'Opera Mini',
104
+ OPERA_MOBI: 'Opera Mobi',
105
+ OPERA_TABLET: 'Opera Tablet',
106
+ OPERA_TOUCH: 'Opera Touch',
107
+ OVI: 'OviBrowser',
108
+ PALEMOON: 'PaleMoon',
109
+ PHANTOMJS: 'PhantomJS',
110
+ PHOENIX: 'Phoenix',
111
+ POLARIS: 'Polaris',
112
+ PUFFIN: 'Puffin',
113
+ QQ: 'QQBrowser',
114
+ QQ_LITE: 'QQBrowserLite',
115
+ QUARK: 'Quark',
116
+ QUPZILLA: 'QupZilla',
117
+ REKONQ: 'rekonq',
118
+ ROCKMELT: 'Rockmelt',
119
+ SAFARI: 'Safari',
120
+ SAFARI_MOBILE: 'Mobile Safari',
121
+ SAILFISH: 'Sailfish Browser',
122
+ SAMSUNG: 'Samsung Internet',
123
+ SEAMONKEY: 'SeaMonkey',
124
+ SILK: 'Silk',
125
+ SKYFIRE: 'Skyfire',
126
+ SLEIPNIR: 'Sleipnir',
127
+ SLIMBROWSER: 'SlimBrowser',
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
+ UC: 'UCBrowser',
136
+ UP: 'UP.Browser',
137
+ VIERA: 'Viera',
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
+ YANDEX: 'Yandex'
24
147
 
25
148
  // TODO : test!
26
149
  });
27
150
 
28
- const CPUArch = Object.freeze({
29
- IA32 : 'ia32',
30
- AMD64 : 'amd64',
31
- IA64 : 'ia64',
32
- ARM : 'arm',
33
- ARM64 : 'arm64',
34
- ARMHF : 'armhf',
35
- _68K : '68k',
36
- AVR : 'avr',
37
- IRIX : 'irix',
38
- IRIX64 : 'irix64',
39
- MIPS : 'mips',
40
- MIPS64 : 'mips64',
41
- PPC : 'ppc',
42
- SPARC : 'sparc',
43
- SPARC64 : 'sparc64'
151
+ const CPU = Object.freeze({
152
+ ARM : 'arm',
153
+ ARM_64: 'arm64',
154
+ ARM_HF: 'armhf',
155
+ AVR: 'avr',
156
+ AVR_32: 'avr32',
157
+ IA64: 'ia64',
158
+ IRIX: 'irix',
159
+ IRIX_64: 'irix64',
160
+ MIPS: 'mips',
161
+ MIPS_64: 'mips64',
162
+ M68K: '68k',
163
+ PA_RISC: 'pa-risc',
164
+ PPC: 'ppc',
165
+ SPARC: 'sparc',
166
+ SPARC_64: 'sparc64',
167
+ X86: 'ia32',
168
+ X86_64: 'amd64'
44
169
  });
45
170
 
46
- const DeviceType = Object.freeze({
47
- MOBILE : 'mobile',
48
- TABLET : 'tablet',
49
- SMARTTV : 'smarttv',
50
- CONSOLE : 'console',
51
- WEARABLE: 'wearable',
52
- EMBEDDED: 'embedded'
171
+ const Device = Object.freeze({
172
+ CONSOLE: 'console',
173
+ DESKTOP: 'desktop',
174
+ EMBEDDED: 'embedded',
175
+ MOBILE: 'mobile',
176
+ SMARTTV: 'smarttv',
177
+ TABLET: 'tablet',
178
+ WEARABLE: 'wearable'
53
179
  });
54
180
 
55
- const DeviceVendor = Object.freeze({
56
- APPLE : 'Apple',
57
- SAMSUNG : 'Samsung',
58
- HUAWEI : 'Huawei',
59
- XIAOMI : 'Xiaomi',
60
- OPPO : 'OPPO',
61
- VIVO : 'Vivo',
62
- REALME : 'Realme',
63
- LENOVO : 'Lenovo',
64
- LG : 'LG'
181
+ const Vendor = Object.freeze({
182
+ ACER: 'Acer',
183
+ ALCATEL: 'Alcatel',
184
+ APPLE: 'Apple',
185
+ AMAZON: 'Amazon',
186
+ ARCHOS: 'Archos',
187
+ ASUS: 'ASUS',
188
+ ATT: 'AT&T',
189
+ BENQ: 'BenQ',
190
+ BLACKBERRY: 'BlackBerry',
191
+ DELL: 'Dell',
192
+ ESSENTIAL: 'Essential',
193
+ FACEBOOK: 'Facebook',
194
+ FAIRPHONE: 'Fairphone',
195
+ GEEKSPHONE: 'GeeksPhone',
196
+ GENERIC: 'Generic',
197
+ GOOGLE: 'Google',
198
+ HP: 'HP',
199
+ HTC: 'HTC',
200
+ HUAWEI: 'Huawei',
201
+ INFINIX: 'Infinix',
202
+ JOLLA: 'Jolla',
203
+ KOBO: 'Kobo',
204
+ LENOVO: 'Lenovo',
205
+ LG: 'LG',
206
+ MEIZU: 'Meizu',
207
+ MICROSOFT: 'Microsoft',
208
+ MOTOROLA: 'Motorola',
209
+ NEXIAN: 'Nexian',
210
+ NINTENDO: 'Nintendo',
211
+ NOKIA: 'Nokia',
212
+ NVIDIA: 'Nvidia',
213
+ ONEPLUS: 'OnePlus',
214
+ OPPO: 'OPPO',
215
+ OUYA: 'Ouya',
216
+ PALM: 'Palm',
217
+ PANASONIC: 'Panasonic',
218
+ PEBBLE: 'Pebble',
219
+ POLYTRON: 'Polytron',
220
+ REALME: 'Realme',
221
+ RIM: 'RIM',
222
+ ROKU: 'Roku',
223
+ SAMSUNG: 'Samsung',
224
+ SHARP: 'Sharp',
225
+ SIEMENS: 'Siemens',
226
+ SONY: 'Sony',
227
+ SPRINT: 'Sprint',
228
+ TECHNISAT: 'TechniSAT',
229
+ TECNO: 'Tecno',
230
+ TESLA: 'Tesla',
231
+ ULEFONE: 'Ulefone',
232
+ VIVO: 'Vivo',
233
+ VODAFONE: 'Vodafone',
234
+ XBOX: 'Xbox',
235
+ XIAOMI: 'Xiaomi',
236
+ ZEBRA: 'Zebra',
237
+ ZTE: 'ZTE',
65
238
 
66
239
  // TODO : test!
67
240
  });
68
241
 
69
- const EngineName = Object.freeze({
70
- AMAYA : 'Amaya',
71
- BLINK : 'Blink',
242
+ const Engine = Object.freeze({
243
+ AMAYA: 'Amaya',
244
+ BLINK: 'Blink',
72
245
  EDGEHTML: 'EdgeHTML',
73
- FLOW : 'Flow',
74
- GECKO : 'Gecko',
75
- GOANNA : 'Goanna',
76
- ICAB : 'iCab',
77
- LIBWEB : 'LibWeb',
78
- KHTML : 'KHTML',
79
- LINKS : 'Links',
80
- LYNX : 'Lynx',
246
+ FLOW: 'Flow',
247
+ GECKO: 'Gecko',
248
+ GOANNA: 'Goanna',
249
+ ICAB: 'iCab',
250
+ KHTML: 'KHTML',
251
+ LIBWEB: 'LibWeb',
252
+ LINKS: 'Links',
253
+ LYNX: 'Lynx',
81
254
  NETFRONT: 'NetFront',
82
- NETSURF : 'NetSurf',
83
- PRESTO : 'Presto',
84
- TASMAN : 'Tasman',
85
- TRIDENT : 'Trident',
86
- W3M : 'w3m',
87
- WEBKIT : 'WebKit'
255
+ NETSURF: 'NetSurf',
256
+ PRESTO: 'Presto',
257
+ TASMAN: 'Tasman',
258
+ TRIDENT: 'Trident',
259
+ W3M: 'w3m',
260
+ WEBKIT: 'WebKit'
88
261
  });
89
262
 
90
- const OSName = Object.freeze({
91
- WINDOWS : 'Windows',
92
- LINUX : 'Linux',
93
- MACOS : 'macOS',
94
- IOS : 'iOS',
95
- ANDROID : 'Android'
263
+ const OS = Object.freeze({
264
+ AIX: 'AIX',
265
+ AMIGA_OS: 'Amiga OS',
266
+ ANDROID: 'Android',
267
+ ANDROID_X86: 'Android-x86',
268
+ ARCH: 'Arch',
269
+ BADA: 'Bada',
270
+ BEOS: 'BeOS',
271
+ BLACKBERRY: 'BlackBerry',
272
+ CENTOS: 'CentOS',
273
+ CHROME_OS: 'Chrome OS',
274
+ CHROMECAST: 'Chromecast',
275
+ CONTIKI: 'Contiki',
276
+ DEBIAN: 'Debian',
277
+ DEEPIN: 'Deepin',
278
+ DRAGONFLY: 'DragonFly',
279
+ ELEMENTARY_OS: 'elementary OS',
280
+ FEDORA: 'Fedora',
281
+ FIREFOX_OS: 'Firefox OS',
282
+ FREEBSD: 'FreeBSD',
283
+ FUCHSIA: 'Fuchsia',
284
+ GENTOO: 'Gentoo',
285
+ GHOSTBSD: 'GhostBSD',
286
+ GNU: 'GNU',
287
+ HAIKU: 'Haiku',
288
+ HARMONYOS: 'HarmonyOS',
289
+ HP_UX: 'HP-UX',
290
+ HURD: 'Hurd',
291
+ IOS: 'iOS',
292
+ JOLI: 'Joli',
293
+ KAIOS: 'KaiOS',
294
+ LINPUS: 'Linpus',
295
+ LINSPIRE: 'Linspire',
296
+ LINUX: 'Linux',
297
+ MACOS: 'macOS',
298
+ MAEMO: 'Maemo',
299
+ MAGEIA: 'Mageia',
300
+ MANDRIVA: 'Mandriva',
301
+ MANJARO: 'Manjaro',
302
+ MEEGO: 'MeeGo',
303
+ MINIX: 'Minix',
304
+ MINT: 'Mint',
305
+ MORPH_OS: 'Morph OS',
306
+ NETBSD: 'NetBSD',
307
+ NETRANGE: 'NetRange',
308
+ NETTV: 'NetTV',
309
+ NINTENDO: 'Nintendo',
310
+ OPENBSD: 'OpenBSD',
311
+ OPENVMS: 'OpenVMS',
312
+ OS2: 'OS/2',
313
+ PALM: 'Palm',
314
+ PC_BSD: 'PC-BSD',
315
+ PCLINUXOS: 'PCLinuxOS',
316
+ PLAN9: 'Plan9',
317
+ PLAYSTATION: 'PlayStation',
318
+ QNX: 'QNX',
319
+ RASPBIAN: 'Raspbian',
320
+ REDHAT: 'RedHat',
321
+ RIM_TABLET_OS: 'RIM Tablet OS',
322
+ RISC_OS: 'RISC OS',
323
+ SABAYON: 'Sabayon',
324
+ SAILFISH: 'Sailfish',
325
+ SERENITYOS: 'SerenityOS',
326
+ SERIES40: 'Series40',
327
+ SLACKWARE: 'Slackware',
328
+ SOLARIS: 'Solaris',
329
+ SUSE: 'SUSE',
330
+ SYMBIAN: 'Symbian',
331
+ TIZEN: 'Tizen',
332
+ UBUNTU: 'Ubuntu',
333
+ UNIX: 'Unix',
334
+ VECTORLINUX: 'VectorLinux',
335
+ VIERA: 'Viera',
336
+ WATCHOS: 'watchOS',
337
+ WEBOS: 'WebOS',
338
+ WINDOWS: 'Windows',
339
+ WINDOWS_MOBILE: 'Windows Mobile',
340
+ WINDOWS_PHONE: 'Windows Phone',
341
+ XBOX: 'Xbox',
342
+ ZENWALK: 'Zenwalk'
96
343
 
97
344
  // TODO : test!
98
345
  });
99
346
 
100
347
  export {
101
- BrowserName,
102
- CPUArch,
103
- DeviceType,
104
- DeviceVendor,
105
- EngineName,
106
- OSName
348
+ Browser,
349
+ CPU,
350
+ Device,
351
+ Vendor,
352
+ Engine,
353
+ OS
107
354
  };
@@ -0,0 +1,13 @@
1
+ // Type definitions for Helpers submodule of UAParser.js v2.0.0-beta.2
2
+ // Project: https://github.com/faisalman/ua-parser-js
3
+ // Definitions by: Faisal Salman <https://github.com/faisalman>
4
+
5
+ import type { UAParserExt } from "../main/ua-parser";
6
+
7
+ export const Apps: UAParserExt;
8
+ export const Bots: UAParserExt;
9
+ export const CLIs: UAParserExt;
10
+ export const ExtraDevices: UAParserExt;
11
+ export const Emails: UAParserExt;
12
+ export const MediaPlayers: UAParserExt;
13
+ export const Modules: UAParserExt;
@@ -1,8 +1,8 @@
1
1
  ///////////////////////////////////////////////
2
- /* Extensions for UAParser.js v2.0.0-alpha.3
2
+ /* Extensions for UAParser.js v2.0.0-beta.2
3
3
  https://github.com/faisalman/ua-parser-js
4
4
  Author: Faisal Salman <f@faisalman.com>
5
- MIT License */
5
+ AGPLv3 License */
6
6
  //////////////////////////////////////////////
7
7
 
8
8
  /*jshint esversion: 6 */
@@ -1,12 +1,12 @@
1
- // Generated ESM version of UAParser.js extensions
1
+ // Generated ESM version of ua-parser-js/extensions
2
2
  // DO NOT EDIT THIS FILE!
3
3
  // Source: /src/extensions/ua-parser-extensions.js
4
4
 
5
5
  ///////////////////////////////////////////////
6
- /* Extensions for UAParser.js v2.0.0-alpha.3
6
+ /* Extensions for UAParser.js v2.0.0-beta.2
7
7
  https://github.com/faisalman/ua-parser-js
8
8
  Author: Faisal Salman <f@faisalman.com>
9
- MIT License */
9
+ AGPLv3 License */
10
10
  //////////////////////////////////////////////
11
11
 
12
12
  /*jshint esversion: 6 */
@@ -0,0 +1,15 @@
1
+ // Type definitions for Helpers submodule of UAParser.js v2.0.0-beta.2
2
+ // Project: https://github.com/faisalman/ua-parser-js
3
+ // Definitions by: Faisal Salman <https://github.com/faisalman>
4
+
5
+ import { IResult } from "../main/ua-parser";
6
+
7
+ declare function isAppleSilicon(res: IResult): boolean;
8
+ declare function isChromiumBased(res: IResult): boolean;
9
+ declare function isFrozenUA(ua: string): boolean;
10
+
11
+ export {
12
+ isAppleSilicon,
13
+ isChromiumBased,
14
+ isFrozenUA
15
+ }
@@ -1,42 +1,22 @@
1
1
  ///////////////////////////////////////////////
2
- /* Helpers for UAParser.js v2.0.0-alpha.3
2
+ /* Helpers for UAParser.js v2.0.0-beta.2
3
3
  https://github.com/faisalman/ua-parser-js
4
4
  Author: Faisal Salman <f@faisalman.com>
5
- MIT License */
5
+ AGPLv3 License */
6
6
  //////////////////////////////////////////////
7
7
 
8
8
  /*jshint esversion: 6 */
9
9
 
10
- /*
11
- # Reference:
12
- https://www.chromium.org/updates/ua-reduction/
10
+ const { CPU, OS, Engine } = require('../enums/ua-parser-enums');
13
11
 
14
- # Desktop
15
- ---
16
- Format:
17
- Mozilla/5.0 (<unifiedPlatform>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Safari/537.36
12
+ const isAppleSilicon = (res) => res.os.is(OS.MACOS) && res.cpu.is(CPU.ARM);
18
13
 
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
14
+ const isChromiumBased = (res) => res.engine.is(Engine.BLINK);
25
15
 
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);
16
+ const isFrozenUA = (ua) => /^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/.test(ua);
39
17
 
40
18
  module.exports = {
19
+ isAppleSilicon,
20
+ isChromiumBased,
41
21
  isFrozenUA
42
- };
22
+ }
@@ -1,46 +1,26 @@
1
- // Generated ESM version of UAParser.js helpers
1
+ // Generated ESM version of ua-parser-js/helpers
2
2
  // DO NOT EDIT THIS FILE!
3
3
  // Source: /src/helpers/ua-parser-helpers.js
4
4
 
5
5
  ///////////////////////////////////////////////
6
- /* Helpers for UAParser.js v2.0.0-alpha.3
6
+ /* Helpers for UAParser.js v2.0.0-beta.2
7
7
  https://github.com/faisalman/ua-parser-js
8
8
  Author: Faisal Salman <f@faisalman.com>
9
- MIT License */
9
+ AGPLv3 License */
10
10
  //////////////////////////////////////////////
11
11
 
12
12
  /*jshint esversion: 6 */
13
13
 
14
- /*
15
- # Reference:
16
- https://www.chromium.org/updates/ua-reduction/
14
+ import { CPU, OS, Engine } from '../enums/ua-parser-enums';
17
15
 
18
- # Desktop
19
- ---
20
- Format:
21
- Mozilla/5.0 (<unifiedPlatform>) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Safari/537.36
16
+ const isAppleSilicon = (res) => res.os.is(OS.MACOS) && res.cpu.is(CPU.ARM);
22
17
 
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
18
+ const isChromiumBased = (res) => res.engine.is(Engine.BLINK);
29
19
 
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);
20
+ const isFrozenUA = (ua) => /^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/.test(ua);
43
21
 
44
22
  export {
23
+ isAppleSilicon,
24
+ isChromiumBased,
45
25
  isFrozenUA
46
- };
26
+ }