diff --git a/src/enums/ua-parser-enums.d.ts b/src/enums/ua-parser-enums.d.ts index e8d3615..a8070fe 100644 --- a/src/enums/ua-parser-enums.d.ts +++ b/src/enums/ua-parser-enums.d.ts @@ -166,6 +166,7 @@ export const BrowserType: Readonly<{ }>; export const CPU: Readonly<{ '68K': "68k"; + ALPHA: "alpha"; ARM: "arm"; ARM_64: "arm64"; ARM_HF: "armhf"; diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 174d787..ecedb6d 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -175,6 +175,7 @@ const BrowserType = Object.freeze({ const CPU = Object.freeze({ '68K': '68k', + ALPHA: 'alpha', ARM : 'arm', ARM_64: 'arm64', ARM_HF: 'armhf', diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index b325e7b..7d8c28c 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -536,15 +536,15 @@ /( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i ], [[ARCHITECTURE, 'arm']], [ - /((ppc|powerpc)(64)?)( mac|;|\))/i // PowerPC - ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [ - / sun4\w[;\)]/i // SPARC ], [[ARCHITECTURE, 'sparc']], [ - - /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC - ], [[ARCHITECTURE, lowerize]] + /\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i, + /((ppc|powerpc)(64)?)( mac|;|\))/i, // PowerPC + /(?:osf1|[freopnt]{3,4}bsd) (alpha)/i // Alpha + ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [ + /winnt.+\[axp/i + ], [[ARCHITECTURE, 'alpha']] ], device : [[ diff --git a/test/data/ua/cpu/cpu-all.json b/test/data/ua/cpu/cpu-all.json index a4f68b1..e9b749e 100644 --- a/test/data/ua/cpu/cpu-all.json +++ b/test/data/ua/cpu/cpu-all.json @@ -87,6 +87,22 @@ "architecture" : "amd64" } }, + { + "desc" : "Alpha", + "ua" : "Mozilla/3.01 (WinNT; I) [AXP]", + "expect" : + { + "architecture" : "alpha" + } + }, + { + "desc" : "Alpha", + "ua" : "Mozilla/5.0 (X11; OpenBSD alpha; rv:78.0) Gecko/20100101 Firefox/78.0", + "expect" : + { + "architecture" : "alpha" + } + }, { "desc" : "ARM", "ua" : "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 635) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537",