Update enums & extensions

This commit is contained in:
Faisal Salman 2023-09-30 14:01:26 +07:00
parent 8fea17f296
commit f57f8fa1a7
3 changed files with 213 additions and 80 deletions

View File

@ -1,103 +1,236 @@
///////////////////////////////////////////////
/* Enums for UAParser.js v2.0.0-alpha.3
/* Enums for UAParser.js v2.0.0-beta
https://github.com/faisalman/ua-parser-js
Author: Faisal Salman <f@faisalman.com>
MIT License */
AGPLv3 License */
//////////////////////////////////////////////
/*jshint esversion: 6 */
const BrowserName = Object.freeze({
CHROME : 'Chrome',
EDGE : 'Edge',
SAFARI : 'Safari',
FIREFOX : 'Firefox',
OPERA : 'Opera',
MOBILE_CHROME : 'Mobile Chrome',
MOBILE_SAFARI : 'Mobile Safari',
MOBILE_FIREFOX : 'Mobile Firefox',
ANDROID_BROWSER : 'Android Browser'
const Browser = Object.freeze({
ANDROID: 'Android Browser',
BRAVE: 'Brave',
CHROME: 'Chrome',
CHROMIUM: 'Chromium',
DOLPHIN: 'Dolphin',
DUCKDUCKGO: 'DuckDuckGo',
EDGE: 'Edge',
FIREFOX: 'Firefox',
FOCUS: 'Focus',
IE: 'IE',
KONQUEROR: 'Konqueror',
MOBILE_CHROME: 'Mobile Chrome',
MOBILE_FIREFOX: 'Mobile Firefox',
MOBILE_SAFARI: 'Mobile Safari',
OPERA: 'Opera',
PALEMOON: 'PaleMoon',
PUFFIN: 'Puffin',
QQ: 'QQ Browser',
SAFARI: 'Safari',
SAMSUNG: 'Samsung Internet',
UC: 'UC Browser',
VIVALDI: 'Vivaldi',
YANDEX: 'Yandex'
// TODO : test!
});
const CPUArch = Object.freeze({
IA32 : 'ia32',
AMD64 : 'amd64',
IA64 : 'ia64',
const CPU = Object.freeze({
ARM : 'arm',
ARM64 : 'arm64',
ARMHF : 'armhf',
_68K : '68k',
AVR : 'avr',
IRIX : 'irix',
IRIX64 : 'irix64',
MIPS : 'mips',
MIPS64 : 'mips64',
PPC : 'ppc',
SPARC : 'sparc',
SPARC64 : 'sparc64'
ARM64: 'arm64',
ARMHF: 'armhf',
AVR: 'avr',
IA64: 'ia64',
IRIX: 'irix',
IRIX64: 'irix64',
MIPS: 'mips',
MIPS64: 'mips64',
MOTO_68K: '68k',
PPC: 'ppc',
SPARC: 'sparc',
SPARC64: 'sparc64',
X86: 'ia32',
X86_64: 'amd64'
});
const DeviceType = Object.freeze({
MOBILE : 'mobile',
TABLET : 'tablet',
SMARTTV : 'smarttv',
CONSOLE : 'console',
WEARABLE: 'wearable',
EMBEDDED: 'embedded'
const Device = Object.freeze({
CONSOLE: 'console',
DEKSTOP: 'desktop',
EMBEDDED: 'embedded',
MOBILE: 'mobile',
SMARTTV: 'smarttv',
TABLET: 'tablet',
WEARABLE: 'wearable'
});
const DeviceVendor = Object.freeze({
APPLE : 'Apple',
SAMSUNG : 'Samsung',
HUAWEI : 'Huawei',
XIAOMI : 'Xiaomi',
OPPO : 'OPPO',
VIVO : 'Vivo',
REALME : 'Realme',
LENOVO : 'Lenovo',
LG : 'LG'
const Vendor = Object.freeze({
ACER: 'Acer',
ALCATEL: 'Alcatel',
APPLE: 'Apple',
AMAZON: 'Amazon',
ARCHOS: 'Archos',
ASUS: 'ASUS',
ATT: 'AT&T',
BENQ: 'BenQ',
BLACKBERRY: 'BlackBerry',
DELL: 'Dell',
ESSENTIAL: 'Essential',
FACEBOOK: 'Facebook',
FAIRPHONE: 'Fairphone',
GEEKSPHONE: 'GeeksPhone',
GENERIC: 'Generic',
GOOGLE: 'Google',
HP: 'HP',
HTC: 'HTC',
HUAWEI: 'Huawei',
INFINIX: 'Infinix',
JOLLA: 'Jolla',
KOBO: 'Kobo',
LENOVO: 'Lenovo',
LG: 'LG',
MEIZU: 'Meizu',
MICROSOFT: 'Microsoft',
MOTOROLA: 'Motorola',
NEXIAN: 'Nexian',
NINTENDO: 'Nintendo',
NOKIA: 'Nokia',
NVIDIA: 'Nvidia',
ONEPLUS: 'OnePlus',
OPPO: 'OPPO',
OUYA: 'Ouya',
PALM: 'Palm',
PANASONIC: 'Panasonic',
PEBBLE: 'Pebble',
POLYTRON: 'Polytron',
REALME: 'Realme',
RIM: 'RIM',
ROKU: 'Roku',
SAMSUNG: 'Samsung',
SHARP: 'Sharp',
SIEMENS: 'Siemens',
SONY: 'Sony',
SPRINT: 'Sprint',
TECNO: 'Tecno',
TESLA: 'Tesla',
ULEFONE: 'Ulefone',
VIVO: 'Vivo',
VODAFONE: 'Vodafone',
XBOX: 'Xbox',
XIAOMI: 'Xiaomi',
ZEBRA: 'Zebra',
ZTE: 'ZTE',
// TODO : test!
});
const EngineName = Object.freeze({
AMAYA : 'Amaya',
BLINK : 'Blink',
const Engine = Object.freeze({
AMAYA: 'Amaya',
BLINK: 'Blink',
EDGEHTML: 'EdgeHTML',
FLOW : 'Flow',
GECKO : 'Gecko',
GOANNA : 'Goanna',
ICAB : 'iCab',
LIBWEB : 'LibWeb',
KHTML : 'KHTML',
LINKS : 'Links',
LYNX : 'Lynx',
FLOW: 'Flow',
GECKO: 'Gecko',
GOANNA: 'Goanna',
ICAB: 'iCab',
KHTML: 'KHTML',
LIBWEB: 'LibWeb',
LINKS: 'Links',
LYNX: 'Lynx',
NETFRONT: 'NetFront',
NETSURF : 'NetSurf',
PRESTO : 'Presto',
TASMAN : 'Tasman',
TRIDENT : 'Trident',
W3M : 'w3m',
WEBKIT : 'WebKit'
NETSURF: 'NetSurf',
PRESTO: 'Presto',
TASMAN: 'Tasman',
TRIDENT: 'Trident',
W3M: 'w3m',
WEBKIT: 'WebKit'
});
const OSName = Object.freeze({
WINDOWS : 'Windows',
LINUX : 'Linux',
MACOS : 'macOS',
IOS : 'iOS',
ANDROID : 'Android'
const OS = Object.freeze({
AIX: 'AIX',
AMIGA_OS: 'Amiga OS',
ANDROID: 'Android',
ANDROID_X86: 'Android-x86',
ARCH: 'Arch',
BADA: 'Bada',
BEOS: 'BeOS',
BLACKBERRY: 'BlackBerry',
CENTOS: 'CentOS',
CHROME_OS: 'Chrome OS',
CONTIKI: 'Contiki',
FEDORA: 'Fedora',
FIREFOX_OS: 'Firefox OS',
FREEBSD: 'FreeBSD',
DEBIAN: 'Debian',
DEEPIN: 'Deepin',
DRAGONFLY: 'DragonFly',
ELEMENTARY_OS: 'elementary OS',
FUCHSIA: 'Fuchsia',
GENTOO: 'Gentoo',
GHOSTBSD: 'GhostBSD',
GNU: 'GNU',
HAIKU: 'Haiku',
HARMONYOS: 'HarmonyOS',
HP_UX: 'HP-UX',
HURD: 'Hurd',
IOS: 'iOS',
JOLI: 'Joli',
KAIOS: 'KaiOS',
LINPUS: 'Linpus',
LINSPIRE: 'Linspire',
LINUX: 'Linux',
MACOS: 'macOS',
MAEMO: 'Maemo',
MAGEIA: 'Mageia',
MANDRIVA: 'Mandriva',
MANJARO: 'Manjaro',
MEEGO: 'MeeGo',
MINIX: 'Minix',
MINT: 'Mint',
MORPH_OS: 'Morph OS',
NETBSD: 'NetBSD',
NETRANGE: 'NetRange',
NETTV: 'NetTV',
NINTENDO: 'Nintendo',
OPENBSD: 'OpenBSD',
OPENVMS: 'OpenVMS',
OS2: 'OS/2',
PALM: 'Palm',
PC_BSD: 'PC-BSD',
PCLINUXOS: 'PCLinuxOS',
PLAN9: 'Plan9',
PLAYSTATION: 'PlayStation',
QNX: 'QNX',
RASPBIAN: 'Raspbian',
REDHAT: 'RedHat',
RIM_TABLET_OS: 'RIM Tablet OS',
RISC_OS: 'RISC OS',
SABAYON: 'Sabayon',
SAILFISH: 'Sailfish',
SERENITYOS: 'SerenityOS',
SERIES40: 'Series40',
SLACKWARE: 'Slackware',
SOLARIS: 'Solaris',
SUSE: 'SUSE',
SYMBIAN: 'Symbian',
TIZEN: 'Tizen',
UBUNTU: 'Ubuntu',
UNIX: 'Unix',
VECTORLINUX: 'VectorLinux',
VIERA: 'Viera',
WATCHOS: 'watchOS',
WEBOS: 'WebOS',
WINDOWS: 'Windows',
WINDOWS_MOBILE: 'Windows Mobile',
WINDOWS_PHONE: 'Windows Phone',
ZENWALK: 'Zenwalk'
// TODO : test!
});
module.exports = {
BrowserName,
CPUArch,
DeviceType,
DeviceVendor,
EngineName,
OSName
Browser,
CPU,
Device,
Vendor,
Engine,
OS
};

View File

@ -1,8 +1,8 @@
///////////////////////////////////////////////
/* Extensions for UAParser.js v2.0.0-alpha.3
/* Extensions for UAParser.js v2.0.0-beta
https://github.com/faisalman/ua-parser-js
Author: Faisal Salman <f@faisalman.com>
MIT License */
AGPLv3 License */
//////////////////////////////////////////////
/*jshint esversion: 6 */

View File

@ -1,5 +1,5 @@
import { UAParser } from 'ua-parser-js';
import { CPUArch, DeviceType, EngineName } from 'ua-parser-js/enums';
import { CPU, Device, Engine } from 'ua-parser-js/enums';
import * as assert from 'assert';
describe('Returns', () => {
@ -20,8 +20,8 @@ describe('Returns', () => {
describe('Enums', () => {
it('Can use enum', () => {
const { cpu, device, engine } = UAParser('Mozilla/5.0 (X11; U; Linux armv7l; en-GB; rv:1.9.2a1pre) Gecko/20090928 Firefox/3.5 Maemo Browser 1.4.1.22 RX-51 N900');
assert.strictEqual(cpu.is(CPUArch.ARM), true);
assert.strictEqual(device.is(DeviceType.MOBILE), true);
assert.strictEqual(engine.is(EngineName.GECKO), true);
assert.strictEqual(cpu.is(CPU.ARM), true);
assert.strictEqual(device.is(Device.MOBILE), true);
assert.strictEqual(engine.is(Engine.GECKO), true);
});
});