ua-parser-js 2.0.6 → 2.0.9

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.
@@ -0,0 +1,30 @@
1
+ //////////////////////////////////////////////////////
2
+ /* browser-detection submodule of UAParser.js v2.0.9
3
+ https://github.com/faisalman/ua-parser-js
4
+ Author: Faisal Salman <f@faisalman.com>
5
+ AGPLv3 License */
6
+ /////////////////////////////////////////////////////
7
+
8
+ /*jshint esversion: 6 */
9
+
10
+ const { UAParser } = require('../main/ua-parser');
11
+ const { EngineName } = require('../enums/ua-parser-enums');
12
+ const { isStandalonePWA } = require('is-standalone-pwa');
13
+ const { isFromEU } = require('detect-europe-js');
14
+
15
+ const isChromeFamily = val => !!(
16
+ (typeof val === 'string' ?
17
+ new UAParser(val).getEngine() :
18
+ val.engine
19
+ )?.is(EngineName.BLINK));
20
+
21
+ const isElectron = () => !!(
22
+ process?.versions?.hasOwnProperty('electron') || // node.js
23
+ / electron\//i.test(navigator?.userAgent)); // browser
24
+
25
+ module.exports = {
26
+ isChromeFamily,
27
+ isElectron,
28
+ isFromEU,
29
+ isStandalonePWA
30
+ }
@@ -0,0 +1,34 @@
1
+ // Generated ESM version of ua-parser-js/browser-detection
2
+ // DO NOT EDIT THIS FILE!
3
+ // Source: /src/browser-detection/browser-detection.js
4
+
5
+ //////////////////////////////////////////////////////
6
+ /* browser-detection submodule of UAParser.js v2.0.9
7
+ https://github.com/faisalman/ua-parser-js
8
+ Author: Faisal Salman <f@faisalman.com>
9
+ AGPLv3 License */
10
+ /////////////////////////////////////////////////////
11
+
12
+ /*jshint esversion: 6 */
13
+
14
+ import { UAParser } from '../main/ua-parser.mjs';
15
+ import { EngineName } from '../enums/ua-parser-enums.mjs';
16
+ import { isStandalonePWA } from 'is-standalone-pwa';
17
+ import { isFromEU } from 'detect-europe-js';
18
+
19
+ const isChromeFamily = val => !!(
20
+ (typeof val === 'string' ?
21
+ new UAParser(val).getEngine() :
22
+ val.engine
23
+ )?.is(EngineName.BLINK));
24
+
25
+ const isElectron = () => !!(
26
+ process?.versions?.hasOwnProperty('electron') || // node.js
27
+ / electron\//i.test(navigator?.userAgent)); // browser
28
+
29
+ export {
30
+ isChromeFamily,
31
+ isElectron,
32
+ isFromEU,
33
+ isStandalonePWA
34
+ }
@@ -0,0 +1,8 @@
1
+ // Type definitions for device-detection submodule of UAParser.js v2.0.9
2
+ // Project: https://github.com/faisalman/ua-parser-js
3
+ // Definitions by: Faisal Salman <https://github.com/faisalman>
4
+
5
+ import type { IResult } from "../main/ua-parser";
6
+
7
+ export function getDeviceVendor(model: string): string | undefined;
8
+ export function isAppleSilicon(resultOrUA: IResult | string): boolean;
@@ -0,0 +1,43 @@
1
+ /////////////////////////////////////////////////////
2
+ /* device-detection submodule of UAParser.js v2.0.9
3
+ https://github.com/faisalman/ua-parser-js
4
+ Author: Faisal Salman <f@faisalman.com>
5
+ AGPLv3 License */
6
+ ////////////////////////////////////////////////////
7
+
8
+ /*jshint esversion: 6 */
9
+
10
+ const { UAParser } = require('../main/ua-parser');
11
+ const { CPUArch, OSName } = require('../enums/ua-parser-enums');
12
+
13
+ const getDeviceVendor = (model) => new UAParser(`Mozilla/5.0 (Linux; Android 10; ${model}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36`).getDevice().vendor;
14
+
15
+ const isAppleSilicon = (val) => {
16
+ const { os, cpu } = typeof val !== 'string' ? val : {
17
+ os: new UAParser(val).getOS(),
18
+ cpu: new UAParser(val).getCPU()
19
+ };
20
+ if (os.is(OSName.MACOS)) {
21
+ if (cpu.is(CPUArch.ARM)) {
22
+ return true;
23
+ } else if (typeof window !== 'undefined') {
24
+ try {
25
+ const canvas = document.createElement('canvas');
26
+ const webgl = canvas.getContext('webgl2') ||
27
+ canvas.getContext('webgl') ||
28
+ canvas.getContext('experimental-webgl');
29
+ return webgl
30
+ .getParameter(webgl.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL)
31
+ .match(/apple m\d/i);
32
+ } catch {
33
+ return false;
34
+ }
35
+ }
36
+ }
37
+ return false;
38
+ }
39
+
40
+ module.exports = {
41
+ getDeviceVendor,
42
+ isAppleSilicon
43
+ }
@@ -0,0 +1,47 @@
1
+ // Generated ESM version of ua-parser-js/device-detection
2
+ // DO NOT EDIT THIS FILE!
3
+ // Source: /src/device-detection/device-detection.js
4
+
5
+ /////////////////////////////////////////////////////
6
+ /* device-detection submodule of UAParser.js v2.0.9
7
+ https://github.com/faisalman/ua-parser-js
8
+ Author: Faisal Salman <f@faisalman.com>
9
+ AGPLv3 License */
10
+ ////////////////////////////////////////////////////
11
+
12
+ /*jshint esversion: 6 */
13
+
14
+ import { UAParser } from '../main/ua-parser.mjs';
15
+ import { CPUArch, OSName } from '../enums/ua-parser-enums.mjs';
16
+
17
+ const getDeviceVendor = (model) => new UAParser(`Mozilla/5.0 (Linux; Android 10; ${model}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36`).getDevice().vendor;
18
+
19
+ const isAppleSilicon = (val) => {
20
+ const { os, cpu } = typeof val !== 'string' ? val : {
21
+ os: new UAParser(val).getOS(),
22
+ cpu: new UAParser(val).getCPU()
23
+ };
24
+ if (os.is(OSName.MACOS)) {
25
+ if (cpu.is(CPUArch.ARM)) {
26
+ return true;
27
+ } else if (typeof window !== 'undefined') {
28
+ try {
29
+ const canvas = document.createElement('canvas');
30
+ const webgl = canvas.getContext('webgl2') ||
31
+ canvas.getContext('webgl') ||
32
+ canvas.getContext('experimental-webgl');
33
+ return webgl
34
+ .getParameter(webgl.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL)
35
+ .match(/apple m\d/i);
36
+ } catch {
37
+ return false;
38
+ }
39
+ }
40
+ }
41
+ return false;
42
+ }
43
+
44
+ export {
45
+ getDeviceVendor,
46
+ isAppleSilicon
47
+ }
@@ -3,7 +3,7 @@
3
3
  // Source: /src/enums/ua-parser-enums.js
4
4
 
5
5
  ///////////////////////////////////////////////
6
- /* Enums for UAParser.js v2.0.6
6
+ /* Enums for UAParser.js v2.0.9
7
7
  https://github.com/faisalman/ua-parser-js
8
8
  Author: Faisal Salman <f@faisalman.com>
9
9
  AGPLv3 License */
@@ -16,12 +16,15 @@ export const BrowserName: Readonly<{
16
16
  '2345': '2345',
17
17
  '360': '360',
18
18
  ALIPAY: 'Alipay',
19
+ ALOHA: 'Aloha',
19
20
  AMAYA: 'Amaya',
20
21
  ANDROID: 'Android Browser',
21
22
  ARORA: 'Arora',
23
+ ATLAS: 'Atlas',
22
24
  AVANT: 'Avant',
23
25
  AVAST: 'Avast Secure Browser',
24
26
  AVG: 'AVG Secure Browser',
27
+ AVIRA: 'Avira Secure Browser',
25
28
  BAIDU: 'Baidu Browser',
26
29
  BASILISK: 'Basilisk',
27
30
  BING: 'Bing',
@@ -65,6 +68,7 @@ export const BrowserName: Readonly<{
65
68
  GOOGLE_SEARCH: 'GSA',
66
69
  HELIO: 'Helio',
67
70
  HEYTAP: 'HeyTap',
71
+ HIBROWSER: 'HiBrowser',
68
72
  HONOR: 'Honor',
69
73
  HUAWEI: 'Huawei Browser',
70
74
  ICAB: 'iCab',
@@ -90,9 +94,11 @@ export const BrowserName: Readonly<{
90
94
  LG: 'LG Browser',
91
95
  LIBREWOLF: 'LibreWolf',
92
96
  LIEBAO: 'LBBROWSER',
97
+ LIGHTHOUSE: 'Lighthouse',
93
98
  LINE: 'Line',
94
99
  LINKEDIN: 'LinkedIn',
95
100
  LINKS: 'Links',
101
+ LUAKIT: 'Luakit',
96
102
  LUNASCAPE: 'Lunascape',
97
103
  LYNX: 'Lynx',
98
104
  MAEMO: 'Maemo Browser',
@@ -107,6 +113,7 @@ export const BrowserName: Readonly<{
107
113
  NETSCAPE: 'Netscape',
108
114
  NETSURF: 'Netsurf',
109
115
  NOKIA: 'Nokia Browser',
116
+ NORTON: 'Norton Private Browser',
110
117
  OBIGO: 'Obigo',
111
118
  OCULUS: 'Oculus Browser',
112
119
  OMNIWEB: 'OmniWeb',
@@ -115,6 +122,7 @@ export const BrowserName: Readonly<{
115
122
  OPERA_GX: 'Opera GX',
116
123
  OPERA_MINI: 'Opera Mini',
117
124
  OPERA_MOBI: 'Opera Mobi',
125
+ OPERA_NEON: 'Opera Neon',
118
126
  OPERA_TABLET: 'Opera Tablet',
119
127
  OPERA_TOUCH: 'Opera Touch',
120
128
  OTTER: 'Otter',
@@ -147,6 +155,7 @@ export const BrowserName: Readonly<{
147
155
  SNAPCHAT: 'Snapchat',
148
156
  SOGOU_EXPLORER: 'Sogou Explorer',
149
157
  SOGOU_MOBILE: 'Sogou Mobile',
158
+ STEAM: 'Steam',
150
159
  SURF: 'Surf',
151
160
  SWIFTFOX: 'Swiftfox',
152
161
  TESLA: 'Tesla',
@@ -228,8 +237,9 @@ export const DeviceVendor: Readonly<{
228
237
  ACER: 'Acer',
229
238
  ADVAN: 'Advan',
230
239
  ALCATEL: 'Alcatel',
231
- APPLE: 'Apple',
232
240
  AMAZON: 'Amazon',
241
+ ANBERNIC: 'Anbernic',
242
+ APPLE: 'Apple',
233
243
  ARCHOS: 'Archos',
234
244
  ASUS: 'ASUS',
235
245
  ATT: 'AT&T',
@@ -258,6 +268,7 @@ export const DeviceVendor: Readonly<{
258
268
  LAVA: 'Lava',
259
269
  LENOVO: 'Lenovo',
260
270
  LG: 'LG',
271
+ LOGITECH: 'Logitech',
261
272
  MEIZU: 'Meizu',
262
273
  MICROMAX: 'Micromax',
263
274
  MICROSOFT: 'Microsoft',
@@ -291,6 +302,7 @@ export const DeviceVendor: Readonly<{
291
302
  TECNO: 'TECNO',
292
303
  TESLA: 'Tesla',
293
304
  ULEFONE: 'Ulefone',
305
+ VALVE: 'Valve',
294
306
  VIVO: 'Vivo',
295
307
  VIZIO: 'Vizio',
296
308
  VODAFONE: 'Vodafone',
@@ -311,6 +323,7 @@ export const EngineName: Readonly<{
311
323
  AMAYA: 'Amaya',
312
324
  ARKWEB: 'ArkWeb',
313
325
  BLINK: 'Blink',
326
+ DILLO: 'Dillo',
314
327
  EDGEHTML: 'EdgeHTML',
315
328
  FLOW: 'Flow',
316
329
  GECKO: 'Gecko',
@@ -416,6 +429,7 @@ export const OSName: Readonly<{
416
429
  UBUNTU_TOUCH: 'Ubuntu Touch',
417
430
  UNIX: 'Unix',
418
431
  VECTORLINUX: 'VectorLinux',
432
+ VEGA_OS: 'Vega OS',
419
433
  WATCHOS: 'watchOS',
420
434
  WEBOS: 'WebOS',
421
435
  WINDOWS: 'Windows',
@@ -446,6 +460,7 @@ export const Extension: Readonly<{
446
460
  ELINKS: 'ELinks',
447
461
  HTTPIE: 'HTTPie',
448
462
  LYNX: 'Lynx',
463
+ POWERSHELL: 'PowerShell',
449
464
  WGET: 'Wget'
450
465
  },
451
466
  Crawler: {
@@ -462,6 +477,7 @@ export const Extension: Readonly<{
462
477
  ANTHROPIC_CLAUDE_BOT: 'ClaudeBot',
463
478
  ANTHROPIC_CLAUDE_SEARCHBOT: 'Claude-SearchBot',
464
479
  ANTHROPIC_CLAUDE_WEB: 'Claude-Web',
480
+ ATLASSIAN_BOT: 'atlassian-bot',
465
481
  ARCHIVEORG_BOT: 'archive.org_bot',
466
482
  BAIDU_ADS: 'Baidu-ADS',
467
483
  BAIDU_SPIDER: 'Baiduspider',
@@ -477,6 +493,7 @@ export const Extension: Readonly<{
477
493
  BRAVE_BOT: 'Bravebot',
478
494
  BYTEDANCE_BYTESPIDER: 'Bytespider',
479
495
  BYTEDANCE_TIKTOKSPIDER: 'TikTokSpider',
496
+ CLOUDFLARE_AUTORAG: 'Cloudflare-AutoRAG',
480
497
  COMMON_CRAWL_CCBOT: 'CCBot',
481
498
  COCCOC_BOT_WEB: 'coccocbot-web',
482
499
  COCCOC_BOT_IMAGE: 'coccocbot-image',
@@ -508,6 +525,7 @@ export const Extension: Readonly<{
508
525
  GOOGLE_CLOUDVERTEXBOT: 'Google-CloudVertexBot',
509
526
  GOOGLE_EXTENDED: 'Google-Extended',
510
527
  GOOGLE_INSPECTIONTOOL: 'Google-InspectionTool',
528
+ GOOGLE_NOTEBOOKLM: 'Google-NotebookLM',
511
529
  GOOGLE_OTHER: 'GoogleOther',
512
530
  GOOGLE_OTHER_IMAGE: 'GoogleOther-Image',
513
531
  GOOGLE_OTHER_VIDEO: 'GoogleOther-Video',
@@ -552,6 +570,7 @@ export const Extension: Readonly<{
552
570
  SEMRUSH_BOT_BACKLINK: 'SemrushBot-BA',
553
571
  SEMRUSH_BOT_CONTENTSHAKE: 'SemrushBot-OCOB',
554
572
  SEMRUSH_BOT_SEO_CHECKER: 'SemrushBot-SI',
573
+ SEMRUSH_BOT_SWA: 'SemrushBot-SWA',
555
574
  SEZNAM_BOT: 'SeznamBot',
556
575
  SITEIMPROVE: 'Siteimprove',
557
576
  SOGOU_PIC_SPIDER: 'Sogou Pic Spider',
@@ -608,29 +627,72 @@ export const Extension: Readonly<{
608
627
  },
609
628
  Email: {
610
629
  AIRMAIL: 'Airmail',
630
+ ALPINE: 'Alpine',
631
+ ANDROID_MAIL: 'Android',
611
632
  APPLE_MAIL: 'Mail',
633
+ AQUA_MAIL: 'AquaMail',
634
+ BALSA: 'Balsa',
635
+ BARCA: 'Barca',
612
636
  BLUEMAIL: 'BlueMail',
637
+ CANARY: 'Canary',
638
+ CLAWS_MAIL: 'Claws Mail',
613
639
  DAUM_MAIL: 'DaumMail',
614
- EVOLUTION: 'Evolution',
615
640
  EM_CLIENT: 'eM Client',
641
+ EUDORA: 'Eudora',
642
+ EVOLUTION: 'Evolution',
643
+ FAIR_EMAIL: 'FairEmail',
616
644
  FOXMAIL: 'Foxmail',
645
+ GEARY: 'Geary',
646
+ GNUS: 'Gnus',
647
+ HORDE_IMP: 'Horde::IMP',
648
+ IBM_NOTES: 'Lotus-Notes',
649
+ INCREDIMAIL: 'IncrediMail',
650
+ K9_MAIL: 'K-9 Mail',
617
651
  KMAIL: 'KMail',
618
652
  KMAIL2: 'kmail2',
619
653
  KONTACT: 'Kontact',
654
+ MAILBIRD: 'Mailbird',
655
+ MAILMATE: 'MailMate',
656
+ MAILSPRING: 'Mailspring',
620
657
  MICROSOFT_OUTLOOK: 'Microsoft Outlook',
621
658
  MICROSOFT_OUTLOOK_MAC: 'MacOutlook',
659
+ MUTT: 'Mutt',
622
660
  NAVER_MAILAPP: 'NaverMailApp',
661
+ NEWTON: 'Newton',
662
+ NINE: 'Nine',
663
+ NYLAS_MAIL: 'NylasMail',
664
+ OUTLOOK_EXPRESS: 'Outlook-Express',
665
+ PEGASUS_MAIL: 'Pegasus Mail',
666
+ POCOMAIL: 'PocoMail',
623
667
  POLYMAIL: 'Polymail',
668
+ POSTBOX: 'Postbox',
624
669
  PROTON_MAIL: 'ProtonMail',
670
+ PROTON_MAIL_BRIDGE: 'ProtonMail Bridge',
671
+ QUALA_MAIL: 'Quala',
672
+ R2MAIL2: 'R2Mail2',
673
+ RAINLOOP: 'RainLoop',
674
+ ROUNDCUBE: 'Roundcube Webmail',
675
+ SAMSUNG_EMAIL: 'SamsungEmail',
625
676
  SPARK_MAIL: 'SparkDesktop',
626
677
  SPARROW: 'Sparrow',
678
+ SPICEBIRD: 'Spicebird',
679
+ SQUIRRELMAIL: 'SquirrelMail',
680
+ SYLPHEED: 'Sylpheed',
681
+ THE_BAT: 'The Bat!',
627
682
  THUNDERBIRD: 'Thunderbird',
628
- YAHOO_MAIL: 'Yahoo',
683
+ TROJITA: 'Trojita',
684
+ TURNPIKE: 'Turnpike',
685
+ TUTANOTA: 'tutanota-desktop',
686
+ WANDERLUST: 'Wanderlust',
687
+ WINDOWS_LIVE_MAIL: 'Windows-Live-Mail',
688
+ YAHOO_MAIL: 'Yahoo Mail',
689
+ YAHOO_MAIL_IOS: 'Yahoo Mail',
629
690
  ZIMBRA: 'Zimbra',
630
691
  ZOHO_MAIL: 'ZohoMail-Desktop'
631
692
  },
632
693
  Fetcher: {
633
694
  AHREFS_SITEAUDIT: 'AhrefsSiteAudit',
695
+ AMAZON_NOVA_ACT: 'NovaAct',
634
696
  ANTHROPIC_CLAUDE_USER: 'Claude-User',
635
697
  ASANA: 'Asana',
636
698
  BETTER_UPTIME_BOT: 'Better Uptime Bot',
@@ -640,7 +702,8 @@ export const Extension: Readonly<{
640
702
  COHERE_AI: 'Cohere-AI',
641
703
  DISCORD_BOT: 'Discordbot',
642
704
  DUCKDUCKGO_ASSISTBOT: 'DuckAssistBot',
643
- GOOGLE_CHROME_LIGHTHOUSE: 'Chrome-Lighthouse',
705
+ FLIPBOARD_PROXY: 'FlipboardProxy',
706
+ GOOGLE_CHROME_LIGHTHOUSE: 'Lighthouse',
644
707
  GOOGLE_FEEDFETCHER: 'FeedFetcher-Google',
645
708
  GOOGLE_GEMINI_DEEP_RESEARCH: 'Gemini-Deep-Research',
646
709
  GOOGLE_IMAGEPROXY: 'GoogleImageProxy',
@@ -708,26 +771,36 @@ export const Extension: Readonly<{
708
771
  AIOHTTP: 'aiohttp',
709
772
  APACHE_HTTPCLIENT: 'Apache-HttpClient',
710
773
  AXIOS: 'axios',
774
+ BUN: 'Bun',
775
+ DART: 'Dart',
776
+ DENO: 'Deno',
711
777
  GO_HTTP_CLIENT: 'go-http-client',
712
778
  GOT: 'got',
713
779
  GUZZLEHTTP: 'GuzzleHttp',
780
+ HACKNEY: 'hackney',
781
+ HTTP_RB: 'http.rb',
714
782
  JAVA: 'Java',
715
783
  JAVA_HTTPCLIENT: 'Java-http-client',
784
+ JETTY: 'Jetty',
716
785
  JSDOM: 'jsdom',
717
786
  LIBWWW_PERL: 'libwww-perl',
718
787
  LUA_RESTY_HTTP: 'lua-resty-http',
719
788
  NEEDLE: 'Needle',
720
789
  NUTCH: 'Nutch',
721
- OKHTTP: 'OkHttp',
722
790
  NODE_FETCH: 'node-fetch',
791
+ NODE_JS: 'Node.js',
723
792
  NODE_SUPERAGENT: 'node-superagent',
793
+ OKHTTP: 'OkHttp',
794
+ OCAML_COHTTP: 'ocaml-cohttp',
724
795
  PHP_SOAP: 'PHP-SOAP',
725
796
  POSTMAN_RUNTIME: 'PostmanRuntime',
726
797
  PYTHON_HTTPX: 'python-httpx',
727
798
  PYTHON_URLLIB: 'python-urllib',
728
799
  PYTHON_URLLIB3: 'python-urllib3',
729
800
  PYTHON_REQUESTS: 'python-requests',
730
- SCRAPY: 'Scrapy'
801
+ REST_CLIENT: 'rest-client',
802
+ SCRAPY: 'Scrapy',
803
+ UNDICI: 'undici'
731
804
  }
732
805
  },
733
806
  DeviceVendor: {