8 if (/Android/i.test(ua)) {
9 // android must be tested before linux
11 } else if (/iOS|iPhone|Macintosh|Darwin|OS\s*X|macOS|mac/i.test(ua)) {
13 } else if (/^ms$|Microsoft|Windows|win32|win|PowerShell/i.test(ua)) {
14 // 'win' must be tested after 'darwin'
16 } else if (/Linux|curl|wget/i.test(ua)) {
23 function getArch(ua) {
28 if (/arm64|arm8|armv8/i.test(ua)) {
30 } else if (/arm7|armv7/i.test(ua)) {
32 } else if (/arm6|armv6/i.test(ua)) {
34 } else if (/ppc64/i.test(ua)) {
36 } else if (/mips64/i.test(ua)) {
38 } else if (/mips/i.test(ua)) {
40 } else if (/(amd64|x64|_64)\b/i.test(ua)) {
41 // must come after ppc64/mips64
43 } else if (/(3|6|x|_)86\b/i.test(ua)) {
44 // must come after x86_64
47 // TODO handle explicit invalid different
52 module.exports.os = getOs;
53 module.exports.arch = getArch;