Skip to content

Commit 7a27777

Browse files
mikehuebnernanalucky
authored andcommitted
feat: add TypeScript definitions for UAParser.js enums (faisalman#772)
Introduce TypeScript type definitions for UAParser.js version 2.0.0. This enhances type safety and autocompletion for enums related to browsers, CPUs, devices, vendors, engines, and operating systems in the project. These changes are made to improve developer experience and ensure consistent usage of the enums throughout the codebase.
1 parent 4eed16c commit 7a27777

File tree

2 files changed

+366
-0
lines changed

2 files changed

+366
-0
lines changed

src/enums/ua-parser-enums.d.ts

Lines changed: 363 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,363 @@
1+
// Type definitions for Enums submodule of UAParser.js v2.0.0
2+
// Project: https://github.com/faisalman/ua-parser-js
3+
// Definitions by: Faisal Salman <https://github.com/faisalman>
4+
5+
export const Browser: Readonly<{
6+
'115': "115";
7+
'2345': "2345";
8+
'360': "360";
9+
ALIPAY: "Alipay";
10+
AMAYA: "Amaya";
11+
ANDROID: "Android Browser";
12+
ARORA: "Arora";
13+
AVANT: "Avant";
14+
AVAST: "Avast Secure Browser";
15+
AVG: "AVG Secure Browser";
16+
BAIDU: "Baidu Browser";
17+
BASILISK: "Basilisk";
18+
BLAZER: "Blazer";
19+
BOLT: "Bolt";
20+
BOWSER: "Bowser";
21+
BRAVE: "Brave";
22+
CAMINO: "Camino";
23+
CHIMERA: "Chimera";
24+
CHROME: "Chrome";
25+
CHROME_HEADLESS: "Chrome Headless";
26+
CHROME_MOBILE: "Mobile Chrome";
27+
CHROME_WEBVIEW: "Chrome WebView";
28+
CHROMIUM: "Chromium";
29+
COBALT: "Cobalt";
30+
COC_COC: "Coc Coc";
31+
CONKEROR: "Conkeror";
32+
DILLO: "Dillo";
33+
DOLPHIN: "Dolphin";
34+
DORIS: "Doris";
35+
DRAGON: "Dragon";
36+
DUCKDUCKGO: "DuckDuckGo";
37+
EDGE: "Edge";
38+
EPIPHANY: "Epiphany";
39+
FACEBOOK: "Facebook";
40+
FALKON: "Falkon";
41+
FIREBIRD: "Firebird";
42+
FIREFOX: "Firefox";
43+
FIREFOX_FOCUS: "Firefox Focus";
44+
FIREFOX_MOBILE: "Mobile Firefox";
45+
FIREFOX_REALITY: "Firefox Reality";
46+
FENNEC: "Fennec";
47+
FLOCK: "Flock";
48+
FLOW: "Flow";
49+
GO: "GoBrowser";
50+
GOOGLE_SEARCH: "GSA";
51+
HELIO: "Helio";
52+
HEYTAP: "HeyTap";
53+
HONOR: "Honor";
54+
HUAWEI: "Huawei Browser";
55+
ICAB: "iCab";
56+
ICE: "ICE Browser";
57+
ICEAPE: "IceApe";
58+
ICECAT: "IceCat";
59+
ICEDRAGON: "IceDragon";
60+
ICEWEASEL: "IceWeasel";
61+
IE: "IE";
62+
INSTAGRAM: "Instagram";
63+
IRIDIUM: "Iridium";
64+
IRON: "Iron";
65+
JASMINE: "Jasmine";
66+
KONQUEROR: "Konqueror";
67+
KAKAO: "KakaoTalk";
68+
KHTML: "KHTML";
69+
K_MELEON: "K-Meleon";
70+
KLAR: "Klar";
71+
KLARNA: "Klarna";
72+
KINDLE: "Kindle";
73+
LENOVO: "Smart Lenovo Browser";
74+
LADYBIRD: "Ladybird";
75+
LIBREWOLF: "LibreWolf";
76+
LIEBAO: "LBBROWSER";
77+
LINE: "Line";
78+
LINKEDIN: "LinkedIn";
79+
LINKS: "Links";
80+
LUNASCAPE: "Lunascape";
81+
LYNX: "Lynx";
82+
MAEMO: "Maemo Browser";
83+
MAXTHON: "Maxthon";
84+
MIDORI: "Midori";
85+
MINIMO: "Minimo";
86+
MIUI: "MIUI Browser";
87+
MOZILLA: "Mozilla";
88+
MOSAIC: "Mosaic";
89+
NAVER: "Naver";
90+
NETFRONT: "NetFront";
91+
NETSCAPE: "Netscape";
92+
NETSURF: "Netsurf";
93+
NOKIA: "Nokia Browser";
94+
OBIGO: "Obigo";
95+
OCULUS: "Oculus Browser";
96+
OMNIWEB: "OmniWeb";
97+
OPERA: "Opera";
98+
OPERA_COAST: "Opera Coast";
99+
OPERA_MINI: "Opera Mini";
100+
OPERA_MOBI: "Opera Mobi";
101+
OPERA_TABLET: "Opera Tablet";
102+
OPERA_TOUCH: "Opera Touch";
103+
OVI: "OviBrowser";
104+
PALEMOON: "PaleMoon";
105+
PHANTOMJS: "PhantomJS";
106+
PHOENIX: "Phoenix";
107+
PICOBROWSER: "Pico Browser";
108+
POLARIS: "Polaris";
109+
PUFFIN: "Puffin";
110+
QQ: "QQBrowser";
111+
QQ_LITE: "QQBrowserLite";
112+
QUARK: "Quark";
113+
QUPZILLA: "QupZilla";
114+
REKONQ: "rekonq";
115+
ROCKMELT: "Rockmelt";
116+
SAFARI: "Safari";
117+
SAFARI_MOBILE: "Mobile Safari";
118+
SAILFISH: "Sailfish Browser";
119+
SAMSUNG: "Samsung Internet";
120+
SEAMONKEY: "SeaMonkey";
121+
SILK: "Silk";
122+
SKYFIRE: "Skyfire";
123+
SLEIPNIR: "Sleipnir";
124+
SLIMBOAT: "SlimBoat";
125+
SLIMBROWSER: "SlimBrowser";
126+
SLIMJET: "Slimjet";
127+
SNAPCHAT: "Snapchat";
128+
SOGOU_EXPLORER: "Sogou Explorer";
129+
SOGOU_MOBILE: "Sogou Mobile";
130+
SWIFTFOX: "Swiftfox";
131+
TESLA: "Tesla";
132+
TIKTOK: "TikTok";
133+
TIZEN: "Tizen Browser";
134+
TWITTER: "Twitter";
135+
UC: "UCBrowser";
136+
UP: "UP.Browser";
137+
VIVALDI: "Vivaldi";
138+
VIVO: "Vivo Browser";
139+
W3M: "w3m";
140+
WATERFOX: "Waterfox";
141+
WEBKIT: "WebKit";
142+
WECHAT: "WeChat";
143+
WEIBO: "Weibo";
144+
WHALE: "Whale";
145+
WOLVIC: "Wolvic";
146+
YANDEX: "Yandex";
147+
}>;
148+
export const BrowserType: Readonly<{
149+
CRAWLER: "crawler";
150+
CLI: "cli";
151+
EMAIL: "email";
152+
FETCHER: "fetcher";
153+
INAPP: "inapp";
154+
MEDIAPLAYER: "mediaplayer";
155+
LIBRARY: "library";
156+
}>;
157+
export const CPU: Readonly<{
158+
'68K': "68k";
159+
ARM: "arm";
160+
ARM_64: "arm64";
161+
ARM_HF: "armhf";
162+
AVR: "avr";
163+
AVR_32: "avr32";
164+
IA64: "ia64";
165+
IRIX: "irix";
166+
IRIX_64: "irix64";
167+
MIPS: "mips";
168+
MIPS_64: "mips64";
169+
PA_RISC: "pa-risc";
170+
PPC: "ppc";
171+
SPARC: "sparc";
172+
SPARC_64: "sparc64";
173+
X86: "ia32";
174+
X86_64: "amd64";
175+
}>;
176+
export const Device: Readonly<{
177+
CONSOLE: "console";
178+
DESKTOP: "desktop";
179+
EMBEDDED: "embedded";
180+
MOBILE: "mobile";
181+
SMARTTV: "smarttv";
182+
TABLET: "tablet";
183+
WEARABLE: "wearable";
184+
XR: "xr";
185+
}>;
186+
export const Vendor: Readonly<{
187+
ACER: "Acer";
188+
ADVAN: "Advan";
189+
ALCATEL: "Alcatel";
190+
APPLE: "Apple";
191+
AMAZON: "Amazon";
192+
ARCHOS: "Archos";
193+
ASUS: "ASUS";
194+
ATT: "AT&T";
195+
BENQ: "BenQ";
196+
BLACKBERRY: "BlackBerry";
197+
CAT: "Cat";
198+
DELL: "Dell";
199+
ENERGIZER: "Energizer";
200+
ESSENTIAL: "Essential";
201+
FACEBOOK: "Facebook";
202+
FAIRPHONE: "Fairphone";
203+
GEEKSPHONE: "GeeksPhone";
204+
GENERIC: "Generic";
205+
GOOGLE: "Google";
206+
HMD: "HMD";
207+
HP: "HP";
208+
HTC: "HTC";
209+
HUAWEI: "Huawei";
210+
IMO: "IMO";
211+
INFINIX: "Infinix";
212+
ITEL: "itel";
213+
JOLLA: "Jolla";
214+
KOBO: "Kobo";
215+
LENOVO: "Lenovo";
216+
LG: "LG";
217+
MEIZU: "Meizu";
218+
MICROMAX: "Micromax";
219+
MICROSOFT: "Microsoft";
220+
MOTOROLA: "Motorola";
221+
NEXIAN: "Nexian";
222+
NINTENDO: "Nintendo";
223+
NOKIA: "Nokia";
224+
NOTHING: "Nothing";
225+
NVIDIA: "Nvidia";
226+
ONEPLUS: "OnePlus";
227+
OPPO: "OPPO";
228+
OUYA: "Ouya";
229+
PALM: "Palm";
230+
PANASONIC: "Panasonic";
231+
PEBBLE: "Pebble";
232+
PICO: "Pico";
233+
POLYTRON: "Polytron";
234+
REALME: "Realme";
235+
RIM: "RIM";
236+
ROKU: "Roku";
237+
SAMSUNG: "Samsung";
238+
SHARP: "Sharp";
239+
SIEMENS: "Siemens";
240+
SMARTFREN: "Smartfren";
241+
SONY: "Sony";
242+
SPRINT: "Sprint";
243+
TCL: "TCL";
244+
TECHNISAT: "TechniSAT";
245+
TECNO: "Tecno";
246+
TESLA: "Tesla";
247+
ULEFONE: "Ulefone";
248+
VIVO: "Vivo";
249+
VODAFONE: "Vodafone";
250+
XBOX: "Xbox";
251+
XIAOMI: "Xiaomi";
252+
ZEBRA: "Zebra";
253+
ZTE: "ZTE";
254+
}>;
255+
export const Engine: Readonly<{
256+
AMAYA: "Amaya";
257+
ARKWEB: "ArkWeb";
258+
BLINK: "Blink";
259+
EDGEHTML: "EdgeHTML";
260+
FLOW: "Flow";
261+
GECKO: "Gecko";
262+
GOANNA: "Goanna";
263+
ICAB: "iCab";
264+
KHTML: "KHTML";
265+
LIBWEB: "LibWeb";
266+
LINKS: "Links";
267+
LYNX: "Lynx";
268+
NETFRONT: "NetFront";
269+
NETSURF: "NetSurf";
270+
PRESTO: "Presto";
271+
SERVO: "Servo";
272+
TASMAN: "Tasman";
273+
TRIDENT: "Trident";
274+
W3M: "w3m";
275+
WEBKIT: "WebKit";
276+
}>;
277+
export const OS: Readonly<{
278+
AIX: "AIX";
279+
AMIGA_OS: "Amiga OS";
280+
ANDROID: "Android";
281+
ANDROID_X86: "Android-x86";
282+
ARCH: "Arch";
283+
BADA: "Bada";
284+
BEOS: "BeOS";
285+
BLACKBERRY: "BlackBerry";
286+
CENTOS: "CentOS";
287+
CHROME_OS: "Chrome OS";
288+
CHROMECAST: "Chromecast";
289+
CHROMECAST_ANDROID: "Chromecast Android";
290+
CHROMECAST_FUCHSIA: "Chromecast Fuchsia";
291+
CHROMECAST_LINUX: "Chromecast Linux";
292+
CHROMECAST_SMARTSPEAKER: "Chromecast SmartSpeaker";
293+
CONTIKI: "Contiki";
294+
DEBIAN: "Debian";
295+
DEEPIN: "Deepin";
296+
DRAGONFLY: "DragonFly";
297+
ELEMENTARY_OS: "elementary OS";
298+
FEDORA: "Fedora";
299+
FIREFOX_OS: "Firefox OS";
300+
FREEBSD: "FreeBSD";
301+
FUCHSIA: "Fuchsia";
302+
GENTOO: "Gentoo";
303+
GHOSTBSD: "GhostBSD";
304+
GNU: "GNU";
305+
HAIKU: "Haiku";
306+
HARMONYOS: "HarmonyOS";
307+
HP_UX: "HP-UX";
308+
HURD: "Hurd";
309+
IOS: "iOS";
310+
JOLI: "Joli";
311+
KAIOS: "KaiOS";
312+
KUBUNTU: "Kubuntu";
313+
LINPUS: "Linpus";
314+
LINSPIRE: "Linspire";
315+
LINUX: "Linux";
316+
MACOS: "macOS";
317+
MAEMO: "Maemo";
318+
MAGEIA: "Mageia";
319+
MANDRIVA: "Mandriva";
320+
MANJARO: "Manjaro";
321+
MEEGO: "MeeGo";
322+
MINIX: "Minix";
323+
MINT: "Mint";
324+
MORPH_OS: "Morph OS";
325+
NETBSD: "NetBSD";
326+
NETRANGE: "NetRange";
327+
NETTV: "NetTV";
328+
NINTENDO: "Nintendo";
329+
OPENHARMONY: "OpenHarmony";
330+
OPENBSD: "OpenBSD";
331+
OPENVMS: "OpenVMS";
332+
OS2: "OS/2";
333+
PALM: "Palm";
334+
PC_BSD: "PC-BSD";
335+
PCLINUXOS: "PCLinuxOS";
336+
PICO: "Pico";
337+
PLAN9: "Plan9";
338+
PLAYSTATION: "PlayStation";
339+
QNX: "QNX";
340+
RASPBIAN: "Raspbian";
341+
REDHAT: "RedHat";
342+
RIM_TABLET_OS: "RIM Tablet OS";
343+
RISC_OS: "RISC OS";
344+
SABAYON: "Sabayon";
345+
SAILFISH: "Sailfish";
346+
SERENITYOS: "SerenityOS";
347+
SERIES40: "Series40";
348+
SLACKWARE: "Slackware";
349+
SOLARIS: "Solaris";
350+
SUSE: "SUSE";
351+
SYMBIAN: "Symbian";
352+
TIZEN: "Tizen";
353+
UBUNTU: "Ubuntu";
354+
UNIX: "Unix";
355+
VECTORLINUX: "VectorLinux";
356+
WATCHOS: "watchOS";
357+
WEBOS: "WebOS";
358+
WINDOWS: "Windows";
359+
WINDOWS_MOBILE: "Windows Mobile";
360+
WINDOWS_PHONE: "Windows Phone";
361+
XBOX: "Xbox";
362+
ZENWALK: "Zenwalk";
363+
}>;

src/enums/ua-parser-enums.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ const Browser = Object.freeze({
8080
KLARNA: 'Klarna',
8181
KINDLE: 'Kindle',
8282
LENOVO: 'Smart Lenovo Browser',
83+
LADYBIRD: 'Ladybird',
8384
LIBREWOLF: 'LibreWolf',
8485
LIEBAO: 'LBBROWSER',
8586
LINE: 'Line',
@@ -217,6 +218,7 @@ const Vendor = Object.freeze({
217218
GEEKSPHONE: 'GeeksPhone',
218219
GENERIC: 'Generic',
219220
GOOGLE: 'Google',
221+
HMD: 'HMD',
220222
HP: 'HP',
221223
HTC: 'HTC',
222224
HUAWEI: 'Huawei',
@@ -326,6 +328,7 @@ const OS = Object.freeze({
326328
IOS: 'iOS',
327329
JOLI: 'Joli',
328330
KAIOS: 'KaiOS',
331+
KUBUNTU: 'Kubuntu',
329332
LINPUS: 'Linpus',
330333
LINSPIRE: 'Linspire',
331334
LINUX: 'Linux',

0 commit comments

Comments
 (0)