From 848cd1d1e408e4f7f69ecbd89eae3b1e3b906405 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Tue, 15 Apr 2025 21:43:59 +0700 Subject: [PATCH] Add new OS: Knoppix, Xubuntu --- src/enums/ua-parser-enums.d.ts | 2 ++ src/enums/ua-parser-enums.js | 2 ++ src/main/ua-parser.js | 4 ++-- test/data/ua/os/knoppix.json | 11 +++++++++++ test/data/ua/os/xubuntu.json | 20 ++++++++++++++++++++ 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 test/data/ua/os/knoppix.json create mode 100644 test/data/ua/os/xubuntu.json diff --git a/src/enums/ua-parser-enums.d.ts b/src/enums/ua-parser-enums.d.ts index 8dff5ea..dc9d4b8 100644 --- a/src/enums/ua-parser-enums.d.ts +++ b/src/enums/ua-parser-enums.d.ts @@ -319,6 +319,7 @@ export const OS: Readonly<{ IOS: "iOS"; JOLI: "Joli"; KAIOS: "KaiOS"; + KNOPPIX: "Knoppix"; KUBUNTU: "Kubuntu"; LINPUS: "Linpus"; LINSPIRE: "Linspire"; @@ -371,5 +372,6 @@ export const OS: Readonly<{ WINDOWS_MOBILE: "Windows Mobile"; WINDOWS_PHONE: "Windows Phone"; XBOX: "Xbox"; + XUBUNTU: "Xubuntu"; ZENWALK: "Zenwalk"; }>; diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 4bfcec4..ee46d8b 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -334,6 +334,7 @@ const OS = Object.freeze({ IOS: 'iOS', JOLI: 'Joli', KAIOS: 'KaiOS', + KNOPPIX: 'Knoppix', KUBUNTU: 'Kubuntu', LINPUS: 'Linpus', LINSPIRE: 'Linspire', @@ -386,6 +387,7 @@ const OS = Object.freeze({ WINDOWS_MOBILE: 'Windows Mobile', WINDOWS_PHONE: 'Windows Phone', XBOX: 'Xbox', + XUBUNTU: 'Xubuntu', ZENWALK: 'Zenwalk' // TODO : test! diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index f55d0e9..88864b7 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -978,8 +978,8 @@ /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, // Joli/Palm /linux.+(mint)[\/\(\) ]?([\w\.]*)/i, // Mint /(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS/Arch - /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, - // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire + /([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, + // Ubuntu/Debian/SUSE/Gentoo/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire/Knoppix /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, // Solaris /\b(aix)[; ]([1-9\.]{0,4})/i, // AIX /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i, // Hurd/Linux/MorphOS diff --git a/test/data/ua/os/knoppix.json b/test/data/ua/os/knoppix.json new file mode 100644 index 0000000..4ca6cdb --- /dev/null +++ b/test/data/ua/os/knoppix.json @@ -0,0 +1,11 @@ +[ + { + "desc" : "Knoppix", + "ua" : "Mozilla/5.0 (Knoppix; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.3", + "expect" : + { + "name" : "Knoppix", + "version" : "undefined" + } + } +] \ No newline at end of file diff --git a/test/data/ua/os/xubuntu.json b/test/data/ua/os/xubuntu.json new file mode 100644 index 0000000..1f38a96 --- /dev/null +++ b/test/data/ua/os/xubuntu.json @@ -0,0 +1,20 @@ +[ + { + "desc" : "Xubuntu", + "ua" : "Mozilla/5.0 (X11; Xubuntu Linux 21.10 x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.57 Vivaldi/5.1.2 (Blink)", + "expect" : + { + "name" : "Xubuntu", + "version" : "21.10" + } + }, + { + "desc" : "Xubuntu", + "ua" : "Mozilla/5.0 (X11; Xubuntu 14.04.5 LTS) AppleWebKit/537.36 (KHTML, like Gecko) Xubuntu Chrome/66.0.2623.87 Safari/537.36", + "expect" : + { + "name" : "Xubuntu", + "version" : "14.04.5" + } + } +] \ No newline at end of file