diff --git a/src/enums/ua-parser-enums.d.ts b/src/enums/ua-parser-enums.d.ts index b41dfc4..70abdc8 100644 --- a/src/enums/ua-parser-enums.d.ts +++ b/src/enums/ua-parser-enums.d.ts @@ -152,6 +152,7 @@ export const Browser: Readonly<{ WHALE: "Whale"; WOLVIC: "Wolvic"; YANDEX: "Yandex"; + ZALO: "Zalo"; }>; export const BrowserType: Readonly<{ CRAWLER: "crawler"; diff --git a/src/enums/ua-parser-enums.js b/src/enums/ua-parser-enums.js index 2ae437c..c4e8213 100644 --- a/src/enums/ua-parser-enums.js +++ b/src/enums/ua-parser-enums.js @@ -156,7 +156,8 @@ const Browser = Object.freeze({ WEIBO: 'Weibo', WHALE: 'Whale', WOLVIC: 'Wolvic', - YANDEX: 'Yandex' + YANDEX: 'Yandex', + ZALO: 'Zalo' // TODO : test! }); diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index ae91dbd..d547711 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -434,6 +434,8 @@ ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [ /\[(linkedin)app\]/i // LinkedIn App for iOS & Android ], [NAME, [TYPE, INAPP]], [ + /(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i // Zalo + ], [[NAME, /(.+)/, 'Zalo'], VERSION, [TYPE, INAPP]], [ /(chromium)[\/ ]([-\w\.]+)/i // Chromium ], [NAME, VERSION], [ diff --git a/test/data/ua/browser/browser-all.json b/test/data/ua/browser/browser-all.json index 3fc0e5e..8f80b25 100644 --- a/test/data/ua/browser/browser-all.json +++ b/test/data/ua/browser/browser-all.json @@ -2675,5 +2675,27 @@ "major" : "10", "type" : "inapp" } + }, + { + "desc" : "Zalo on iOS", + "ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Zalo/20.05.01 Mobile/15E148", + "expect" : + { + "name" : "Zalo", + "version" : "20.05.01", + "major" : "20", + "type" : "inapp" + } + }, + { + "desc" : "Zalo on Android", + "ua" : "Mozilla/5.0 (Linux; Android 10; Vsmart Live Build/QKQ1.190918.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 Zalo/20.04.02.r1", + "expect" : + { + "name" : "Zalo", + "version" : "20.04.02.r1", + "major" : "20", + "type" : "inapp" + } } ] \ No newline at end of file