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.
- package/README.md +2 -2
- package/dist/ua-parser.min.js +3 -3
- package/dist/ua-parser.min.mjs +3 -3
- package/dist/ua-parser.pack.js +3 -3
- package/dist/ua-parser.pack.mjs +3 -3
- package/package.json +23 -5
- package/script/cli.js +1 -1
- package/src/bot-detection/bot-detection.d.ts +7 -0
- package/src/bot-detection/bot-detection.js +196 -0
- package/src/bot-detection/bot-detection.mjs +200 -0
- package/src/browser-detection/browser-detection.d.ts +10 -0
- package/src/browser-detection/browser-detection.js +30 -0
- package/src/browser-detection/browser-detection.mjs +34 -0
- package/src/device-detection/device-detection.d.ts +8 -0
- package/src/device-detection/device-detection.js +43 -0
- package/src/device-detection/device-detection.mjs +47 -0
- package/src/enums/ua-parser-enums.d.ts +80 -7
- package/src/enums/ua-parser-enums.js +80 -7
- package/src/enums/ua-parser-enums.mjs +80 -7
- package/src/extensions/ua-parser-extensions.d.ts +1 -1
- package/src/extensions/ua-parser-extensions.js +76 -30
- package/src/extensions/ua-parser-extensions.mjs +76 -30
- package/src/helpers/ua-parser-helpers.d.ts +29 -3
- package/src/helpers/ua-parser-helpers.js +85 -159
- package/src/helpers/ua-parser-helpers.mjs +85 -159
- package/src/main/ua-parser.d.ts +1 -1
- package/src/main/ua-parser.js +223 -215
- package/src/main/ua-parser.mjs +223 -215
- package/dist/ua-parser.html +0 -1
|
@@ -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
|
+
/* 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
801
|
+
REST_CLIENT: 'rest-client',
|
|
802
|
+
SCRAPY: 'Scrapy',
|
|
803
|
+
UNDICI: 'undici'
|
|
731
804
|
}
|
|
732
805
|
},
|
|
733
806
|
DeviceVendor: {
|