diff --git a/src/enums/ua-parser-enums.d.ts b/src/enums/ua-parser-enums.d.ts index 2fb0db5..8dff5ea 100644 --- a/src/enums/ua-parser-enums.d.ts +++ b/src/enums/ua-parser-enums.d.ts @@ -288,6 +288,7 @@ export const OS: Readonly<{ AMIGA_OS: "Amiga OS"; ANDROID: "Android"; ANDROID_X86: "Android-x86"; + ARCAOS: "ArcaOS"; ARCH: "Arch"; BADA: "Bada"; BEOS: "BeOS"; diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 0a53cce..4bfcec4 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -303,6 +303,7 @@ const OS = Object.freeze({ AMIGA_OS: 'Amiga OS', ANDROID: 'Android', ANDROID_X86: 'Android-x86', + ARCAOS: 'ArcaOS', ARCH: 'Arch', BADA: 'Bada', BEOS: 'BeOS', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index d3bd002..b399874 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -977,7 +977,7 @@ // Other /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, // Joli/Palm /(mint)[\/\(\) ]?(\w*)/i, // Mint - /(mageia|vectorlinux|fuchsia)[; ]/i, // Mageia/VectorLinux/Fuchsia + /(mageia|vectorlinux|fuchsia|arcaos)[; ]([\d\.]*)/i, // Mageia/VectorLinux/Fuchsia/ArcaOS /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|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/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, // Solaris diff --git a/test/data/ua/os/arcaos.json b/test/data/ua/os/arcaos.json new file mode 100644 index 0000000..5097545 --- /dev/null +++ b/test/data/ua/os/arcaos.json @@ -0,0 +1,20 @@ +[ + { + "desc" : "ArcaOS", + "ua" : "Mozilla/5.0 (OS/2; ArcaOS 5.0.6; x86_64; rv:89.0) Gecko/20100101 Firefox/89.0", + "expect" : + { + "name" : "ArcaOS", + "version" : "5.0.6" + } + }, + { + "desc" : "ArcaOS", + "ua" : "Mozilla/5.0 (OS/2; ArcaOS; x64; rv:89.0) Gecko/20100101 Firefox/89.0", + "expect" : + { + "name" : "ArcaOS", + "version" : "undefined" + } + } +] \ No newline at end of file diff --git a/test/data/ua/os/os2.json b/test/data/ua/os/os2.json index cb38c11..56eac7c 100644 --- a/test/data/ua/os/os2.json +++ b/test/data/ua/os/os2.json @@ -7,5 +7,23 @@ "name" : "OS/2", "version" : "undefined" } + }, + { + "desc" : "OS/2", + "ua" : "Mozilla/5.0 (OS/2; OS/2 i386) AppleWebKit/538.36 (KHTML, like Gecko) QtWebEngine/5.15.2 Chrome/127.0.6533.72", + "expect" : + { + "name" : "OS/2", + "version" : "undefined" + } + }, + { + "desc" : "OS/2", + "ua" : "Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101 Firefox/45.0", + "expect" : + { + "name" : "OS/2", + "version" : "undefined" + } } ] \ No newline at end of file