diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index 5c4cc78..d3bd002 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -977,19 +977,19 @@ // Other /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, // Joli/Palm /(mint)[\/\(\) ]?(\w*)/i, // Mint - /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux + /(mageia|vectorlinux|fuchsia)[; ]/i, // Mageia/VectorLinux/Fuchsia /([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 + /\b(aix)[; ]([1-9\.]{0,4})/i, // AIX /(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i, // Hurd/Linux/MorphOS /(gnu) ?([\w\.]*)/i, // GNU /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly - /(haiku) (\w+)/i // Haiku + /(haiku) ?(r\d)?/i // Haiku ], [NAME, VERSION], [ - /(sunos) ?([\w\.\d]*)/i // Solaris + /(sunos) ?([\d\.]*)/i // Solaris ], [[NAME, 'Solaris'], VERSION], [ - /((?:open)?solaris)[-\/ ]?([\w\.]*)/i, // Solaris - /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, // AIX - /\b(beos|os\/2|amigaos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/Fuchsia/HP-UX/SerenityOS + /\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS /(unix) ?([\w\.]*)/i // UNIX ], [NAME, VERSION] ] diff --git a/test/data/ua/os/aix.json b/test/data/ua/os/aix.json index 02ccda8..d45d1cb 100644 --- a/test/data/ua/os/aix.json +++ b/test/data/ua/os/aix.json @@ -7,5 +7,32 @@ "name" : "AIX", "version" : "undefined" } + }, + { + "desc" : "AIX", + "ua" : "Mozilla/5.0 (AIX; SPARC64; smart-thumbtack; Mosaic/2.7) Gecko/20100101 Mosaic/2.7", + "expect" : + { + "name" : "AIX", + "version" : "undefined" + } + }, + { + "desc" : "AIX", + "ua" : "Mozilla/5.0 (X11; N; Linux i686; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Mozilla/3.0 (X11; I; AIX 2) Navigator/9.0.0.6", + "expect" : + { + "name" : "AIX", + "version" : "2" + } + }, + { + "desc" : "AIX", + "ua" : "Mozilla/5.0 (X11; U; AIX 7.2; en-US; rv:1.7.12) Gecko/20100101 Firefox/126.0", + "expect" : + { + "name" : "AIX", + "version" : "7.2" + } } ] \ No newline at end of file diff --git a/test/data/ua/os/fuchsia.json b/test/data/ua/os/fuchsia.json index 0759cba..1f2e050 100644 --- a/test/data/ua/os/fuchsia.json +++ b/test/data/ua/os/fuchsia.json @@ -7,5 +7,14 @@ "name" : "Fuchsia", "version" : "undefined" } + }, + { + "desc" : "Fuchsia", + "ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Mozilla/5.0 (X11; Linux; Fuchsia; GoogleTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Large Screen Safari/537.36 GoogleTV", + "expect" : + { + "name" : "Fuchsia", + "version" : "undefined" + } } ] \ No newline at end of file diff --git a/test/data/ua/os/haiku.json b/test/data/ua/os/haiku.json index 7005087..f253739 100644 --- a/test/data/ua/os/haiku.json +++ b/test/data/ua/os/haiku.json @@ -7,5 +7,32 @@ "name" : "Haiku", "version" : "R1" } + }, + { + "desc" : "Haiku", + "ua" : "Mozilla/5.0 (X11; Haiku x86_64; rv:128.0) Gecko/20100101 Firefox/128.0", + "expect" : + { + "name" : "Haiku", + "version" : "undefined" + } + }, + { + "desc" : "Haiku", + "ua" : "Mozilla/5.0 (Haiku; BeOS; rv:99.0) Gecko/20100101 Firefox/99.0", + "expect" : + { + "name" : "Haiku", + "version" : "undefined" + } + }, + { + "desc" : "Haiku", + "ua" : "Mozilla/5.0 (X11; Haiku BePC) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.15.17 Chrome/87.0.4280.144 Safari/537.36 Dooble/2023.12.25 Dooble/2023.12.25", + "expect" : + { + "name" : "Haiku", + "version" : "undefined" + } } ] \ No newline at end of file diff --git a/test/data/ua/os/solaris.json b/test/data/ua/os/solaris.json index 450e47d..4c8f673 100644 --- a/test/data/ua/os/solaris.json +++ b/test/data/ua/os/solaris.json @@ -5,7 +5,16 @@ "expect" : { "name" : "Solaris", - "version" : "sun4u" + "version" : "undefined" + } + }, + { + "desc" : "Solaris", + "ua" : "Mozilla/5.0 (Solaris; SPARC; w3m/0.5.3; rv:1.0) Gecko/20100101 w3m/0.5.3", + "expect" : + { + "name" : "Solaris", + "version" : "undefined" } }, { @@ -16,5 +25,23 @@ "name" : "Solaris", "version" : "4.1.4" } + }, + { + "desc" : "Solaris", + "ua" : "Opera/5.0 (SunOS 5.8 sun4m; U) [en]", + "expect" : + { + "name" : "Solaris", + "version" : "5.8" + } + }, + { + "desc" : "Solaris", + "ua" : "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100215 Solaris/10.1 (GNU) Superswan/3.5.8 (Byte/me)", + "expect" : + { + "name" : "Solaris", + "version" : "10.1" + } } ] \ No newline at end of file