ua-parser-js 1.0.35 → 2.0.0-alpha.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/dist/ua-parser.min.js +3 -3
- package/dist/ua-parser.pack.js +3 -3
- package/license.md +1 -1
- package/package.json +24 -4
- package/readme.md +277 -55
- package/src/enum/ua-parser-enum.js +101 -0
- package/src/enum/ua-parser-enum.mjs +105 -0
- package/src/extension/ua-parser-extension.js +120 -0
- package/src/extension/ua-parser-extension.mjs +124 -0
- package/src/ua-parser.js +430 -196
- package/src/ua-parser.mjs +1126 -0
@@ -0,0 +1,120 @@
|
|
1
|
+
///////////////////////////////////////////////
|
2
|
+
/* Extensions for UAParser.js v2.0.0-alpha.2
|
3
|
+
https://github.com/faisalman/ua-parser-js
|
4
|
+
Author: Faisal Salman <f@faisalman.com>
|
5
|
+
MIT License */
|
6
|
+
//////////////////////////////////////////////
|
7
|
+
|
8
|
+
const MODEL = 'model';
|
9
|
+
const NAME = 'name';
|
10
|
+
const TYPE = 'type';
|
11
|
+
const VENDOR = 'vendor';
|
12
|
+
const VERSION = 'version';
|
13
|
+
const MOBILE = 'mobile';
|
14
|
+
const TABLET = 'tablet';
|
15
|
+
|
16
|
+
const Bots = Object.freeze({
|
17
|
+
browser : [
|
18
|
+
// Googlebot / BingBot / MSNBot / FacebookBot
|
19
|
+
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
20
|
+
]
|
21
|
+
});
|
22
|
+
|
23
|
+
const ExtraDevices = Object.freeze({
|
24
|
+
device : [
|
25
|
+
[
|
26
|
+
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
27
|
+
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
|
28
|
+
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
|
29
|
+
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
|
30
|
+
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
|
31
|
+
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
|
32
|
+
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
33
|
+
|
34
|
+
/(u304aa)/i // AT&T
|
35
|
+
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
|
36
|
+
|
37
|
+
/\bsie-(\w*)/i // Siemens
|
38
|
+
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
|
39
|
+
|
40
|
+
/\b(rct\w+) b/i // RCA Tablets
|
41
|
+
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
|
42
|
+
|
43
|
+
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
|
44
|
+
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
|
45
|
+
|
46
|
+
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
|
47
|
+
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
|
48
|
+
|
49
|
+
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
|
50
|
+
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
|
51
|
+
|
52
|
+
/\b(tm\d{3}\w+) b/i
|
53
|
+
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
|
54
|
+
|
55
|
+
/\b(k88) b/i // ZTE K Series Tablet
|
56
|
+
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
|
57
|
+
|
58
|
+
/\b(nx\d{3}j) b/i // ZTE Nubia
|
59
|
+
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
60
|
+
|
61
|
+
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
|
62
|
+
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
|
63
|
+
|
64
|
+
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
|
65
|
+
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
|
66
|
+
|
67
|
+
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
|
68
|
+
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
|
69
|
+
|
70
|
+
/\b([yr]\d{2}) b/i,
|
71
|
+
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
|
72
|
+
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
|
73
|
+
|
74
|
+
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
|
75
|
+
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
|
76
|
+
|
77
|
+
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
|
78
|
+
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
|
79
|
+
|
80
|
+
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
|
81
|
+
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
|
82
|
+
|
83
|
+
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
|
84
|
+
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
|
85
|
+
|
86
|
+
/\b(ph-1) /i // Essential PH-1
|
87
|
+
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
|
88
|
+
|
89
|
+
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
|
90
|
+
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
|
91
|
+
|
92
|
+
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
|
93
|
+
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
|
94
|
+
|
95
|
+
/\btu_(1491) b/i // Rotor Tablets
|
96
|
+
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]
|
97
|
+
]
|
98
|
+
]
|
99
|
+
});
|
100
|
+
|
101
|
+
const Emails = Object.freeze({
|
102
|
+
browser : [
|
103
|
+
// Microsoft Outlook / Thunderbird
|
104
|
+
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
|
105
|
+
]
|
106
|
+
});
|
107
|
+
|
108
|
+
const Tools = Object.freeze({
|
109
|
+
browser : [
|
110
|
+
// wget / curl / lynx
|
111
|
+
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'tool']]
|
112
|
+
]
|
113
|
+
});
|
114
|
+
|
115
|
+
module.exports = {
|
116
|
+
Bots,
|
117
|
+
ExtraDevices,
|
118
|
+
Emails,
|
119
|
+
Tools
|
120
|
+
}
|
@@ -0,0 +1,124 @@
|
|
1
|
+
// Generated ESM version of UAParser.js extensions
|
2
|
+
// DO NOT EDIT THIS FILE!
|
3
|
+
// Source: /src/extension/ua-parser-extension.js
|
4
|
+
|
5
|
+
///////////////////////////////////////////////
|
6
|
+
/* Extensions for UAParser.js v2.0.0-alpha.2
|
7
|
+
https://github.com/faisalman/ua-parser-js
|
8
|
+
Author: Faisal Salman <f@faisalman.com>
|
9
|
+
MIT License */
|
10
|
+
//////////////////////////////////////////////
|
11
|
+
|
12
|
+
const MODEL = 'model';
|
13
|
+
const NAME = 'name';
|
14
|
+
const TYPE = 'type';
|
15
|
+
const VENDOR = 'vendor';
|
16
|
+
const VERSION = 'version';
|
17
|
+
const MOBILE = 'mobile';
|
18
|
+
const TABLET = 'tablet';
|
19
|
+
|
20
|
+
const Bots = Object.freeze({
|
21
|
+
browser : [
|
22
|
+
// Googlebot / BingBot / MSNBot / FacebookBot
|
23
|
+
[/((?:google|bing|msn|facebook)bot(?:\-[imagevdo]{5})?|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']]
|
24
|
+
]
|
25
|
+
});
|
26
|
+
|
27
|
+
const ExtraDevices = Object.freeze({
|
28
|
+
device : [
|
29
|
+
[
|
30
|
+
/(nook)[\w ]+build\/(\w+)/i, // Nook
|
31
|
+
/(dell) (strea[kpr\d ]*[\dko])/i, // Dell Streak
|
32
|
+
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i, // Le Pan Tablets
|
33
|
+
/(trinity)[- ]*(t\d{3}) bui/i, // Trinity Tablets
|
34
|
+
/(gigaset)[- ]+(q\w{1,9}) bui/i, // Gigaset Tablets
|
35
|
+
/(vodafone) ([\w ]+)(?:\)| bui)/i // Vodafone
|
36
|
+
], [VENDOR, MODEL, [TYPE, TABLET]], [
|
37
|
+
|
38
|
+
/(u304aa)/i // AT&T
|
39
|
+
], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [
|
40
|
+
|
41
|
+
/\bsie-(\w*)/i // Siemens
|
42
|
+
], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [
|
43
|
+
|
44
|
+
/\b(rct\w+) b/i // RCA Tablets
|
45
|
+
], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [
|
46
|
+
|
47
|
+
/\b(venue[\d ]{2,7}) b/i // Dell Venue Tablets
|
48
|
+
], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [
|
49
|
+
|
50
|
+
/\b(q(?:mv|ta)\w+) b/i // Verizon Tablet
|
51
|
+
], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [
|
52
|
+
|
53
|
+
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i // Barnes & Noble Tablet
|
54
|
+
], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [
|
55
|
+
|
56
|
+
/\b(tm\d{3}\w+) b/i
|
57
|
+
], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [
|
58
|
+
|
59
|
+
/\b(k88) b/i // ZTE K Series Tablet
|
60
|
+
], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [
|
61
|
+
|
62
|
+
/\b(nx\d{3}j) b/i // ZTE Nubia
|
63
|
+
], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [
|
64
|
+
|
65
|
+
/\b(gen\d{3}) b.+49h/i // Swiss GEN Mobile
|
66
|
+
], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [
|
67
|
+
|
68
|
+
/\b(zur\d{3}) b/i // Swiss ZUR Tablet
|
69
|
+
], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [
|
70
|
+
|
71
|
+
/\b((zeki)?tb.*\b) b/i // Zeki Tablets
|
72
|
+
], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [
|
73
|
+
|
74
|
+
/\b([yr]\d{2}) b/i,
|
75
|
+
/\b(?:dragon[- ]+touch |dt)(\w{5}) b/i // Dragon Touch Tablet
|
76
|
+
], [MODEL, [VENDOR, 'Dragon Touch'], [TYPE, TABLET]], [
|
77
|
+
|
78
|
+
/\b(ns-?\w{0,9}) b/i // Insignia Tablets
|
79
|
+
], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [
|
80
|
+
|
81
|
+
/\b((nxa|next)-?\w{0,9}) b/i // NextBook Tablets
|
82
|
+
], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [
|
83
|
+
|
84
|
+
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones
|
85
|
+
], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [
|
86
|
+
|
87
|
+
/\b(lvtel\-)?(v1[12]) b/i // LvTel Phones
|
88
|
+
], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [
|
89
|
+
|
90
|
+
/\b(ph-1) /i // Essential PH-1
|
91
|
+
], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [
|
92
|
+
|
93
|
+
/\b(v(100md|700na|7011|917g).*\b) b/i // Envizen Tablets
|
94
|
+
], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [
|
95
|
+
|
96
|
+
/\b(trio[-\w\. ]+) b/i // MachSpeed Tablets
|
97
|
+
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
|
98
|
+
|
99
|
+
/\btu_(1491) b/i // Rotor Tablets
|
100
|
+
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]
|
101
|
+
]
|
102
|
+
]
|
103
|
+
});
|
104
|
+
|
105
|
+
const Emails = Object.freeze({
|
106
|
+
browser : [
|
107
|
+
// Microsoft Outlook / Thunderbird
|
108
|
+
[/(microsoft outlook|thunderbird)[\s\/]([\w\.]+)/i], [NAME, VERSION, [TYPE, 'email']]
|
109
|
+
]
|
110
|
+
});
|
111
|
+
|
112
|
+
const Tools = Object.freeze({
|
113
|
+
browser : [
|
114
|
+
// wget / curl / lynx
|
115
|
+
[/(wget|curl|lynx)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'tool']]
|
116
|
+
]
|
117
|
+
});
|
118
|
+
|
119
|
+
export {
|
120
|
+
Bots,
|
121
|
+
ExtraDevices,
|
122
|
+
Emails,
|
123
|
+
Tools
|
124
|
+
}
|