diff --git a/README.md b/README.md index 2b5c0c4..84a9104 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,11 @@ Don't hesitate to support the project on Github or [OpenCollective](https://open The library is made to help to detect what browser your user has and gives you a convenient API to filter the users somehow depending on their browsers. Check it out on this page: https://bowser-js.github.io/bowser-online/. -### ⚠️ Version 2.0 breaking changes ⚠️ +### ⚠️ Breaking changes ⚠️ -Version 2.0 has drastically changed the API. All available methods are on the [docs page](https://bowser-js.github.io/bowser/docs/). +**Version 3.0 (Current)**: Browser names are now returned in lowercase (e.g., `"chrome"`, `"firefox"` instead of `"Chrome"`, `"Firefox"`). This change improves compatibility with downstream libraries that perform case-sensitive string comparisons. If you need the display name with proper casing, use `Bowser.BROWSER_MAP[alias]`. + +**Version 2.0**: Version 2.0 has drastically changed the API. All available methods are on the [docs page](https://bowser-js.github.io/bowser/docs/). _For legacy code, check out the [1.x](https://github.com/lancedikson/bowser/tree/v1.x) branch and install it through `npm install bowser@1.9.4`._ @@ -50,7 +52,7 @@ Often we need to pick users' browser properties such as the name, the version, t const browser = Bowser.getParser(window.navigator.userAgent); console.log(`The current browser name is "${browser.getBrowserName()}"`); -// The current browser name is "Internet Explorer" +// The current browser name is "internet explorer" ``` or @@ -61,7 +63,7 @@ console.log(browser.getBrowser()); // outputs { - name: "Internet Explorer" + name: "internet explorer" version: "11.0" } ``` @@ -74,7 +76,7 @@ console.log(Bowser.parse(window.navigator.userAgent)); // outputs { browser: { - name: "Internet Explorer" + name: "internet explorer" version: "11.0" }, os: { diff --git a/src/constants.js b/src/constants.js index 9ce0c25..e7f7e0b 100644 --- a/src/constants.js +++ b/src/constants.js @@ -1,46 +1,46 @@ // NOTE: this list must be up-to-date with browsers listed in // test/acceptance/useragentstrings.yml export const BROWSER_ALIASES_MAP = { - 'Amazon Silk': 'amazon_silk', - 'Android Browser': 'android', - Bada: 'bada', - BlackBerry: 'blackberry', - Chrome: 'chrome', - Chromium: 'chromium', - Electron: 'electron', - Epiphany: 'epiphany', - Firefox: 'firefox', - Focus: 'focus', - Generic: 'generic', - 'Google Search': 'google_search', - Googlebot: 'googlebot', - 'Internet Explorer': 'ie', - 'K-Meleon': 'k_meleon', - Maxthon: 'maxthon', - 'Microsoft Edge': 'edge', - 'MZ Browser': 'mz', - 'NAVER Whale Browser': 'naver', - Opera: 'opera', - 'Opera Coast': 'opera_coast', - 'Pale Moon': 'pale_moon', - PhantomJS: 'phantomjs', - Puffin: 'puffin', - QupZilla: 'qupzilla', - QQ: 'qq', - QQLite: 'qqlite', - Safari: 'safari', - Sailfish: 'sailfish', - 'Samsung Internet for Android': 'samsung_internet', - SeaMonkey: 'seamonkey', - Sleipnir: 'sleipnir', - Swing: 'swing', - Tizen: 'tizen', - 'UC Browser': 'uc', - Vivaldi: 'vivaldi', - 'WebOS Browser': 'webos', - WeChat: 'wechat', - 'Yandex Browser': 'yandex', - Roku: 'roku', + 'amazon silk': 'amazon_silk', + 'android browser': 'android', + bada: 'bada', + blackberry: 'blackberry', + chrome: 'chrome', + chromium: 'chromium', + electron: 'electron', + epiphany: 'epiphany', + firefox: 'firefox', + focus: 'focus', + generic: 'generic', + 'google search': 'google_search', + googlebot: 'googlebot', + 'internet explorer': 'ie', + 'k-meleon': 'k_meleon', + maxthon: 'maxthon', + 'microsoft edge': 'edge', + 'mz browser': 'mz', + 'naver whale browser': 'naver', + opera: 'opera', + 'opera coast': 'opera_coast', + 'pale moon': 'pale_moon', + phantomjs: 'phantomjs', + puffin: 'puffin', + qupzilla: 'qupzilla', + 'qq browser': 'qq', + 'qq browser lite': 'qqlite', + safari: 'safari', + sailfish: 'sailfish', + 'samsung internet for android': 'samsung_internet', + seamonkey: 'seamonkey', + sleipnir: 'sleipnir', + swing: 'swing', + tizen: 'tizen', + 'uc browser': 'uc', + vivaldi: 'vivaldi', + 'webos browser': 'webos', + wechat: 'wechat', + 'yandex browser': 'yandex', + roku: 'roku', }; export const BROWSER_MAP = { diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 997d724..4accc06 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -33,7 +33,7 @@ const browsersList = [ test: [/googlebot/i], describe(ua) { const browser = { - name: 'Googlebot', + name: 'googlebot', }; const version = Utils.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -50,7 +50,7 @@ const browsersList = [ test: [/opera/i], describe(ua) { const browser = { - name: 'Opera', + name: 'opera', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -67,7 +67,7 @@ const browsersList = [ test: [/opr\/|opios/i], describe(ua) { const browser = { - name: 'Opera', + name: 'opera', }; const version = Utils.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -82,7 +82,7 @@ const browsersList = [ test: [/SamsungBrowser/i], describe(ua) { const browser = { - name: 'Samsung Internet for Android', + name: 'samsung internet for android', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -97,7 +97,7 @@ const browsersList = [ test: [/Whale/i], describe(ua) { const browser = { - name: 'NAVER Whale Browser', + name: 'naver whale browser', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, ua); @@ -112,7 +112,7 @@ const browsersList = [ test: [/PaleMoon/i], describe(ua) { const browser = { - name: 'Pale Moon', + name: 'pale moon', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i, ua); @@ -127,7 +127,7 @@ const browsersList = [ test: [/MZBrowser/i], describe(ua) { const browser = { - name: 'MZ Browser', + name: 'mz browser', }; const version = Utils.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -142,7 +142,7 @@ const browsersList = [ test: [/focus/i], describe(ua) { const browser = { - name: 'Focus', + name: 'focus', }; const version = Utils.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -157,7 +157,7 @@ const browsersList = [ test: [/swing/i], describe(ua) { const browser = { - name: 'Swing', + name: 'swing', }; const version = Utils.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -172,7 +172,7 @@ const browsersList = [ test: [/coast/i], describe(ua) { const browser = { - name: 'Opera Coast', + name: 'opera coast', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -187,7 +187,7 @@ const browsersList = [ test: [/opt\/\d+(?:.?_?\d+)+/i], describe(ua) { const browser = { - name: 'Opera Touch', + name: 'opera touch', }; const version = Utils.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -202,7 +202,7 @@ const browsersList = [ test: [/yabrowser/i], describe(ua) { const browser = { - name: 'Yandex Browser', + name: 'yandex browser', }; const version = Utils.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -217,7 +217,7 @@ const browsersList = [ test: [/ucbrowser/i], describe(ua) { const browser = { - name: 'UC Browser', + name: 'uc browser', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -232,7 +232,7 @@ const browsersList = [ test: [/Maxthon|mxios/i], describe(ua) { const browser = { - name: 'Maxthon', + name: 'maxthon', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -247,7 +247,7 @@ const browsersList = [ test: [/epiphany/i], describe(ua) { const browser = { - name: 'Epiphany', + name: 'epiphany', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -262,7 +262,7 @@ const browsersList = [ test: [/puffin/i], describe(ua) { const browser = { - name: 'Puffin', + name: 'puffin', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -277,7 +277,7 @@ const browsersList = [ test: [/sleipnir/i], describe(ua) { const browser = { - name: 'Sleipnir', + name: 'sleipnir', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -292,7 +292,7 @@ const browsersList = [ test: [/k-meleon/i], describe(ua) { const browser = { - name: 'K-Meleon', + name: 'k-meleon', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -307,7 +307,7 @@ const browsersList = [ test: [/micromessenger/i], describe(ua) { const browser = { - name: 'WeChat', + name: 'wechat', }; const version = Utils.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -337,7 +337,7 @@ const browsersList = [ test: [/msie|trident/i], describe(ua) { const browser = { - name: 'Internet Explorer', + name: 'internet explorer', }; const version = Utils.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, ua); @@ -352,7 +352,7 @@ const browsersList = [ test: [/\sedg\//i], describe(ua) { const browser = { - name: 'Microsoft Edge', + name: 'microsoft edge', }; const version = Utils.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, ua); @@ -368,7 +368,7 @@ const browsersList = [ test: [/edg([ea]|ios)/i], describe(ua) { const browser = { - name: 'Microsoft Edge', + name: 'microsoft edge', }; const version = Utils.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, ua); @@ -384,7 +384,7 @@ const browsersList = [ test: [/vivaldi/i], describe(ua) { const browser = { - name: 'Vivaldi', + name: 'vivaldi', }; const version = Utils.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, ua); @@ -399,7 +399,7 @@ const browsersList = [ test: [/seamonkey/i], describe(ua) { const browser = { - name: 'SeaMonkey', + name: 'seamonkey', }; const version = Utils.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, ua); @@ -414,7 +414,7 @@ const browsersList = [ test: [/sailfish/i], describe(ua) { const browser = { - name: 'Sailfish', + name: 'sailfish', }; const version = Utils.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, ua); @@ -430,7 +430,7 @@ const browsersList = [ test: [/silk/i], describe(ua) { const browser = { - name: 'Amazon Silk', + name: 'amazon silk', }; const version = Utils.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, ua); @@ -445,7 +445,7 @@ const browsersList = [ test: [/phantom/i], describe(ua) { const browser = { - name: 'PhantomJS', + name: 'phantomjs', }; const version = Utils.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, ua); @@ -460,7 +460,7 @@ const browsersList = [ test: [/slimerjs/i], describe(ua) { const browser = { - name: 'SlimerJS', + name: 'slimerjs', }; const version = Utils.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, ua); @@ -475,7 +475,7 @@ const browsersList = [ test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe(ua) { const browser = { - name: 'BlackBerry', + name: 'blackberry', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, ua); @@ -490,7 +490,7 @@ const browsersList = [ test: [/(web|hpw)[o0]s/i], describe(ua) { const browser = { - name: 'WebOS Browser', + name: 'webos browser', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, ua); @@ -505,7 +505,7 @@ const browsersList = [ test: [/bada/i], describe(ua) { const browser = { - name: 'Bada', + name: 'bada', }; const version = Utils.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, ua); @@ -520,7 +520,7 @@ const browsersList = [ test: [/tizen/i], describe(ua) { const browser = { - name: 'Tizen', + name: 'tizen', }; const version = Utils.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -535,7 +535,7 @@ const browsersList = [ test: [/qupzilla/i], describe(ua) { const browser = { - name: 'QupZilla', + name: 'qupzilla', }; const version = Utils.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -550,7 +550,7 @@ const browsersList = [ test: [/firefox|iceweasel|fxios/i], describe(ua) { const browser = { - name: 'Firefox', + name: 'firefox', }; const version = Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -565,7 +565,7 @@ const browsersList = [ test: [/electron/i], describe(ua) { const browser = { - name: 'Electron', + name: 'electron', }; const version = Utils.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, ua); @@ -580,7 +580,7 @@ const browsersList = [ test: [/MiuiBrowser/i], describe(ua) { const browser = { - name: 'Miui', + name: 'miui', }; const version = Utils.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i, ua); @@ -595,7 +595,7 @@ const browsersList = [ test: [/chromium/i], describe(ua) { const browser = { - name: 'Chromium', + name: 'chromium', }; const version = Utils.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -610,7 +610,7 @@ const browsersList = [ test: [/chrome|crios|crmo/i], describe(ua) { const browser = { - name: 'Chrome', + name: 'chrome', }; const version = Utils.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, ua); @@ -625,7 +625,7 @@ const browsersList = [ test: [/GSA/i], describe(ua) { const browser = { - name: 'Google Search', + name: 'google search', }; const version = Utils.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, ua); @@ -646,7 +646,7 @@ const browsersList = [ }, describe(ua) { const browser = { - name: 'Android Browser', + name: 'android browser', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -663,7 +663,7 @@ const browsersList = [ test: [/playstation 4/i], describe(ua) { const browser = { - name: 'PlayStation 4', + name: 'playstation 4', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua); @@ -680,7 +680,7 @@ const browsersList = [ test: [/safari|applewebkit/i], describe(ua) { const browser = { - name: 'Safari', + name: 'safari', }; const version = Utils.getFirstMatch(commonVersionIdentifier, ua); diff --git a/src/parser.js b/src/parser.js index db10657..a5c2a78 100644 --- a/src/parser.js +++ b/src/parser.js @@ -31,7 +31,7 @@ class Parser { * @typedef ParsedResult * @property {Object} browser * @property {String|undefined} [browser.name] - * Browser name, like `"Chrome"` or `"Internet Explorer"` + * Browser name in lowercase, like `"chrome"` or `"internet explorer"` * @property {String|undefined} [browser.version] Browser version as a String `"12.01.45334.10"` * @property {Object} os * @property {String|undefined} [os.name] OS name, like `"Windows"` or `"macOS"` diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index 9fedcb4..52485ae 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -4,7 +4,7 @@ ua: "Mozilla/5.0 (Linux; Android 7.0; HUAWEI CAN-L01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "71.0.3578.99" os: name: "Android" @@ -20,7 +20,7 @@ ua: "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 9 Build/LMY48T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "47.0.2526.83" os: name: "Android" @@ -35,7 +35,7 @@ ua: "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "32.0.1700.99" os: name: "Android" @@ -50,7 +50,7 @@ ua: "Mozilla/5.0 (Linux; Android 4.3; Galaxy Nexus Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Mobile Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "32.0.1700.99" os: name: "Android" @@ -65,7 +65,7 @@ ua: "Mozilla/5.0 (Linux; Android 4.1; Galaxy Nexus Build/JRN84D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19" spec: browser: - name: "Chrome" + name: "chrome" version: "18.0.1025.166" os: name: "Android" @@ -81,7 +81,7 @@ ua: "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Xoom Build/IML77) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Safari/535.7" spec: browser: - name: "Chrome" + name: "chrome" version: "16.0.912.75" os: name: "Android" @@ -96,7 +96,7 @@ ua: "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7" spec: browser: - name: "Chrome" + name: "chrome" version: "16.0.912.75" os: name: "Android" @@ -112,7 +112,7 @@ ua: "Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3" spec: browser: - name: "Chrome" + name: "chrome" version: "19.0.1084.60" os: name: "iOS" @@ -128,7 +128,7 @@ ua: "Mozilla/5.0 (iPad; U; CPU OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3" spec: browser: - name: "Chrome" + name: "chrome" version: "19.0.1084.60" os: name: "iOS" @@ -144,7 +144,7 @@ ua: "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "30.0.1599.17" os: name: "Windows" @@ -158,7 +158,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "29.0.1547.62" os: name: "Windows" @@ -172,7 +172,7 @@ ua: "Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "29.0.1547.57" os: name: "Chrome OS" @@ -183,7 +183,7 @@ ua: "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "29.0.1547.2" os: name: "Windows" @@ -197,7 +197,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "28.0.1468.0" os: name: "Windows" @@ -211,7 +211,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "49.0.2623.112" os: name: "macOS" @@ -226,7 +226,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.57 Safari/534.24" spec: browser: - name: "Chrome" + name: "chrome" version: "11.0.696.57" os: name: "macOS" @@ -242,7 +242,7 @@ ua: "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.462.0 Safari/534.3" spec: browser: - name: "Chrome" + name: "chrome" version: "6.0.462.0" os: name: "Linux" @@ -255,7 +255,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/50.0.2661.95 Mobile/13E238 Safari/601.1.46" spec: browser: - name: "Chrome" + name: "chrome" version: "50.0.2661.95" os: name: "iOS" @@ -271,7 +271,7 @@ ua: "Mozilla/5.0 (Linux; Android 5.0.2; SM-T705 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.105 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "49.0.2623.105" os: name: "Android" @@ -285,7 +285,7 @@ ua: "Mozilla/5.0 (Linux; Android 6.0.99; Build/NPC91K) AppleWebKit/537.36(KHTML, like Gecko) Chrome/50.0.2661.86 Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "50.0.2661.86" os: name: "Android" @@ -299,7 +299,7 @@ ua: "Mozilla/5.0 (Linux; Android 7.0; Nexus 6P Build/NRD90T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "63.0.3239.111" os: name: "Android" @@ -314,7 +314,7 @@ ua: "Mozilla/5.0 (Linux; Android 8.0.0; LG-H870 Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "68.0.3440.91" os: name: "Android" @@ -327,7 +327,7 @@ - ua: "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Roku/DVP-7.53 (147.53E04068A)" spec: browser: - name: "Chrome" + name: "chrome" version: "60.0.3112.113" os: name: "Roku" @@ -340,7 +340,7 @@ ua: "Mozilla/5.0 (Linux; Android 9; Nokia 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "85.0.4183.127" os: name: "Android" @@ -356,7 +356,7 @@ ua: "Mozilla/5.0 (Linux; Android 10; SM-G970F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3396.81 Mobile Safari/537.36" spec: browser: - name: "Chrome" + name: "chrome" version: "75.0.3396.81" os: name: "Android" @@ -387,7 +387,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true" spec: browser: - name: "Amazon Silk" + name: "amazon silk" version: "3.4" os: name: "Android" @@ -404,7 +404,7 @@ ua: "Mozilla/5.0 (Linux; U; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Safari/535.19 Silk-Accelerated=true" spec: browser: - name: "Amazon Silk" + name: "amazon silk" version: "3.4" os: name: "Linux" @@ -419,7 +419,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=true" spec: browser: - name: "Amazon Silk" + name: "amazon silk" version: "1.0.13.81_10003810" os: name: "Android" @@ -435,7 +435,7 @@ ua: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.22.153_10033210) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true" spec: browser: - name: "Amazon Silk" + name: "amazon silk" version: "1.0.22.153_10033210" os: name: "macOS" @@ -452,7 +452,7 @@ ua: "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Safari/537.36 OPR/19.0.1340.69721" spec: browser: - name: "Opera" + name: "opera" version: "19.0.1340.69721" os: name: "Android" @@ -467,7 +467,7 @@ ua: "Mozilla/5.0 (Linux; Android 4.3; Galaxy Nexus Build/JWR66Y) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.72 Mobile Safari/537.36 OPR/19.0.1340.69721" spec: browser: - name: "Opera" + name: "opera" version: "19.0.1340.69721" os: name: "Android" @@ -482,7 +482,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100" spec: browser: - name: "Opera" + name: "opera" version: "15.0.1147.100" os: name: "Windows" @@ -496,7 +496,7 @@ ua: "Opera/9.80 (Android 4.3; Linux; Opera Mobi/ADR-1309251116) Presto/2.11.355 Version/12.10" spec: browser: - name: "Opera" + name: "opera" version: "12.10" os: name: "Android" @@ -511,7 +511,7 @@ ua: "Opera/9.80 (Android 4.4.2; Linux; Opera Tablet/ADR-1309251116) Presto/2.11.355 Version/12.10" spec: browser: - name: "Opera" + name: "opera" version: "12.10" os: name: "Android" @@ -526,7 +526,7 @@ ua: "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14" spec: browser: - name: "Opera" + name: "opera" version: "12.14" os: name: "Windows" @@ -541,7 +541,7 @@ ua: "Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14" spec: browser: - name: "Opera" + name: "opera" version: "12.14" os: name: "Windows" @@ -556,7 +556,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14" spec: browser: - name: "Opera" + name: "opera" version: "12.14" os: name: "Windows" @@ -569,7 +569,7 @@ ua: "Opera/12.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.02" spec: browser: - name: "Opera" + name: "opera" version: "12.02" os: name: "Windows" @@ -584,7 +584,7 @@ ua: "Opera/9.80 (X11; Linux i686; U; es-ES) Presto/2.8.131 Version/11.11" spec: browser: - name: "Opera" + name: "opera" version: "11.11" os: name: "Linux" @@ -597,7 +597,7 @@ ua: "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.7; U; en) Presto/2.7.62 Version/11.01" spec: browser: - name: "Opera" + name: "opera" version: "11.01" os: name: "macOS" @@ -613,7 +613,7 @@ ua: "Opera/9.80 (Windows NT 5.2; U; zh-cn) Presto/2.6.30 Version/10.63" spec: browser: - name: "Opera" + name: "opera" version: "10.63" os: name: "Windows" @@ -628,7 +628,7 @@ ua: "Opera/9.80 (X11; Linux i686; U; it) Presto/2.5.24 Version/10.54" spec: browser: - name: "Opera" + name: "opera" version: "10.54" os: name: "Linux" @@ -641,7 +641,7 @@ ua: "Opera/9.70 (Linux ppc64 ; U; en) Presto/2.2.1" spec: browser: - name: "Opera" + name: "opera" version: "9.70" os: name: "Linux" @@ -654,7 +654,7 @@ ua: "Opera/9.63 (X11; Linux i686)" spec: browser: - name: "Opera" + name: "opera" version: "9.63" os: name: "Linux" @@ -665,7 +665,7 @@ ua: "Mozilla/5.0 (X11; Linux i686; U; en) Opera 8.52" spec: browser: - name: "Opera" + name: "opera" version: "8.52" os: name: "Linux" @@ -676,7 +676,7 @@ ua: "Mozilla/5.0 (iPod touch; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) OPiOS/14.0.0.104835 Mobile/13G35 Safari/9537.53" spec: browser: - name: "Opera" + name: "opera" version: "14.0.0.104835" os: name: "iOS" @@ -692,7 +692,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 6.0; R1 HD Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Mobile Safari/537.36 OPR/18.0.2254.106542" spec: browser: - name: "Opera" + name: "opera" version: "18.0.2254.106542" os: name: "Android" @@ -739,7 +739,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3420 (beta) Yowser/2.0 Safari/537.36" spec: browser: - name: "Yandex Browser" + name: "yandex browser" version: "15.4.2272.3420" os: name: "macOS" @@ -754,7 +754,7 @@ ua: "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 YaBrowser/15.4.2272.3608.00 Mobile Safari/537.36" spec: browser: - name: "Yandex Browser" + name: "yandex browser" version: "15.4.2272.3608.00" os: name: "Android" @@ -769,7 +769,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 YaBrowser/19.3.3.157.10 Mobile/15E148 Safari/605.1" spec: browser: - name: "Yandex Browser" + name: "yandex browser" version: "19.3.3.157.10" os: name: "iOS" @@ -786,7 +786,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2" spec: browser: - name: "Safari" + name: "safari" version: "5.1.7" os: name: "macOS" @@ -802,7 +802,7 @@ ua: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1" spec: browser: - name: "Safari" + name: "safari" version: "5.0.5" os: name: "macOS" @@ -818,7 +818,7 @@ ua: "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" spec: browser: - name: "Safari" + name: "safari" version: "5.0.2" os: name: "Windows" @@ -833,7 +833,7 @@ ua: "Mozilla/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+" spec: browser: - name: "Safari" + name: "safari" version: "5.0" os: name: "Linux" @@ -846,7 +846,7 @@ ua: "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-en) AppleWebKit/533.16 (KHTML, like Gecko) Version/4.1 Safari/533.16" spec: browser: - name: "Safari" + name: "safari" version: "4.1" os: name: "Windows" @@ -861,7 +861,7 @@ ua: "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_6_1; en_GB, en_US) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10" spec: browser: - name: "Safari" + name: "safari" version: "4.0.4" os: name: "macOS" @@ -877,7 +877,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A" spec: browser: - name: "Safari" + name: "safari" version: "7.0.3" os: name: "macOS" @@ -893,7 +893,7 @@ ua: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_7; de-de) AppleWebKit/525.28.3 (KHTML, like Gecko) Version/3.2.3 Safari/525.28.3" spec: browser: - name: "Safari" + name: "safari" version: "3.2.3" os: name: "macOS" @@ -909,7 +909,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a" spec: browser: - name: "Safari" + name: "safari" os: name: "iOS" version: "7.0.4" @@ -924,7 +924,7 @@ ua: "Mozilla/5.0 (iPhone Simulator; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5" spec: browser: - name: "Safari" + name: "safari" version: "5.0.2" os: name: "iOS" @@ -940,7 +940,7 @@ ua: "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3" spec: browser: - name: "Safari" + name: "safari" version: "3.0" os: name: "iOS" @@ -956,7 +956,7 @@ ua: "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B5097d Safari/6531.22.7" spec: browser: - name: "Safari" + name: "safari" version: "4.0.5" os: name: "iOS" @@ -972,7 +972,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13) AppleWebKit/604.1.31 (KHTML, like Gecko) Version/11.0 Safari/604.1.31" spec: browser: - name: "Safari" + name: "safari" version: "11.0" os: name: "macOS" @@ -988,7 +988,7 @@ ua: "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_2; en-gb) AppleWebKit/526+ (KHTML, like Gecko) Version/3.1 iPhone" spec: browser: - name: "Safari" + name: "safari" version: "3.1" os: name: "macOS" @@ -1005,7 +1005,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_0 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13A344 Safari/601.1" spec: browser: - name: "Safari" + name: "safari" version: "9.0" os: name: "iOS" @@ -1021,7 +1021,7 @@ ua: "Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53" spec: browser: - name: "Safari" + name: "safari" version: "7.0" os: name: "iOS" @@ -1037,7 +1037,7 @@ ua: "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25" spec: browser: - name: "Safari" + name: "safari" version: "6.0" os: name: "iOS" @@ -1053,7 +1053,7 @@ ua: "Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3" spec: browser: - name: "Safari" + name: "safari" version: "5.1" os: name: "iOS" @@ -1069,7 +1069,7 @@ ua: "Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5" spec: browser: - name: "Safari" + name: "safari" version: "5.0.2" os: name: "iOS" @@ -1085,7 +1085,7 @@ ua: "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; es-es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B360 Safari/531.21.10" spec: browser: - name: "Safari" + name: "safari" version: "4.0.4" os: name: "iOS" @@ -1101,7 +1101,7 @@ ua: "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53" spec: browser: - name: "Safari" + name: "safari" version: "7.0" os: name: "iOS" @@ -1117,7 +1117,7 @@ ua: "Mozilla/5.0 (iPod; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3" spec: browser: - name: "Safari" + name: "safari" version: "5.1" os: name: "iOS" @@ -1133,7 +1133,7 @@ ua: "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5" spec: browser: - name: "Safari" + name: "safari" version: "5.0.2" os: name: "iOS" @@ -1149,7 +1149,7 @@ ua: "Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3" spec: browser: - name: "Safari" + name: "safari" version: "3.0" os: name: "iOS" @@ -1165,7 +1165,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E238 Safari/601.1" spec: browser: - name: "Safari" + name: "safari" version: "9.0" os: name: "iOS" @@ -1180,7 +1180,7 @@ - ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77 [FBAN/FBIOS;FBDV/iPhone7,2;FBMD/iPhone;FBSN/iOS;FBSV/11.4.1;FBSS/2;FBCR/vfnl;FBID/phone;FBLC/nl_NL;FBOP/5;FBRV/0]" spec: browser: - name: "Safari" + name: "safari" os: name: "iOS" version: "11.4.1" @@ -1196,7 +1196,7 @@ ua: "Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; MAARJS; rv:11.0) like Gecko" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows" @@ -1211,7 +1211,7 @@ ua: "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows" @@ -1226,7 +1226,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; ARM; Touch; WPDesktop)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "10.0" os: name: "Windows" @@ -1241,7 +1241,7 @@ ua: "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; Media Center PC 6.0; rv:11.0) like Gecko" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows" @@ -1256,7 +1256,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "10.6" os: name: "Windows" @@ -1271,7 +1271,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "10.0" os: name: "Windows" @@ -1286,7 +1286,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "9.0" os: name: "Windows" @@ -1301,7 +1301,7 @@ ua: "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "8.0" os: name: "Windows" @@ -1316,7 +1316,7 @@ ua: "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "7.0" os: name: "Windows" @@ -1329,7 +1329,7 @@ ua: "Mozilla/4.0 (compatible; MSIE 6.1; Windows XP; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "6.1" os: name: "Windows" @@ -1342,7 +1342,7 @@ ua: "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0) (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "6.0" os: name: "Windows" @@ -1355,7 +1355,7 @@ ua: "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "5.01" os: name: "Windows" @@ -1368,7 +1368,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; Xbox; Xbox One)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "10.0" os: name: "Windows" @@ -1383,7 +1383,7 @@ ua: "Mozilla/5.0 (Windows NT 6.3; ARM; Trident/7.0; Touch; rv:11.0) like Gecko" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows" @@ -1398,7 +1398,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; LCTE; rv:11.0)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows" @@ -1413,7 +1413,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920; Vodafone)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "10.0" os: name: "Windows Phone" @@ -1428,7 +1428,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "10.0" os: name: "Windows Phone" @@ -1443,7 +1443,7 @@ ua: "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "9.0" os: name: "Windows Phone" @@ -1457,7 +1457,7 @@ ua: "Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; Nokia;N70)" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "7.0" os: name: "Windows Phone" @@ -1472,7 +1472,7 @@ ua: "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; Microsoft; Lumia 640 LTE) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows Phone" @@ -1486,7 +1486,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0; Zoom 3.6.0; InfoPath.3; rv:11.0) like Gecko" spec: browser: - name: "Internet Explorer" + name: "internet explorer" version: "11.0" os: name: "Windows" @@ -1502,7 +1502,7 @@ ua: 'Mozilla/5.0 (Linux; Android 8.0; Pixel XL Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.0 Mobile Safari/537.36 EdgA/41.1.35.1' spec: browser: - name: "Microsoft Edge" + name: "microsoft edge" version: "41.1.35.1" os: name: "Android" @@ -1517,7 +1517,7 @@ ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89 Safari/603.2.4 EdgiOS/41.1.35.1' spec: browser: - name: "Microsoft Edge" + name: "microsoft edge" version: "41.1.35.1" os: name: "iOS" @@ -1533,7 +1533,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0" spec: browser: - name: "Microsoft Edge" + name: "microsoft edge" version: "12.0" os: name: "Windows" @@ -1548,7 +1548,7 @@ ua: "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; DEVICE INFO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Mobile Safari/537.36 Edge/12.0" spec: browser: - name: "Microsoft Edge" + name: "microsoft edge" version: "12.0" os: name: "Windows Phone" @@ -1562,7 +1562,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24" spec: browser: - name: "Microsoft Edge" + name: "microsoft edge" version: "74.1.96.24" os: name: "Windows" @@ -1576,7 +1576,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3739.0 Safari/537.36 Edg/75.0.109.0" spec: browser: - name: "Microsoft Edge" + name: "microsoft edge" version: "75.0.109.0" os: name: "Windows" @@ -1591,7 +1591,7 @@ ua: "Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0" spec: browser: - name: "Firefox" + name: "firefox" version: "26.0" os: {} platform: @@ -1603,7 +1603,7 @@ ua: "Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0" spec: browser: - name: "Firefox" + name: "firefox" version: "26.0" os: {} platform: @@ -1615,7 +1615,7 @@ ua: "Mozilla/5.0 (Mobile; LG-D300; rv:18.1) Gecko/18.1 Firefox/18.1" spec: browser: - name: "Firefox" + name: "firefox" version: "18.1" os: {} platform: @@ -1627,7 +1627,7 @@ ua: "Mozilla/5.0 (Android; Mobile; rv:27.0) Gecko/27.0 Firefox/27.0" spec: browser: - name: "Firefox" + name: "firefox" version: "27.0" os: name: "Android" @@ -1641,7 +1641,7 @@ ua: "Mozilla/5.0 (Android; Tablet; rv:26.0) Gecko/26.0 Firefox/26.0" spec: browser: - name: "Firefox" + name: "firefox" version: "26.0" os: name: "Android" @@ -1655,7 +1655,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0" spec: browser: - name: "Firefox" + name: "firefox" version: "25.0" os: name: "Windows" @@ -1670,7 +1670,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0" spec: browser: - name: "Firefox" + name: "firefox" version: "24.0" os: name: "macOS" @@ -1686,7 +1686,7 @@ ua: "Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0" spec: browser: - name: "Firefox" + name: "firefox" version: "21.0" os: name: "Linux" @@ -1699,7 +1699,7 @@ ua: "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20121202 Firefox/17.0 Iceweasel/17.0.1" spec: browser: - name: "Firefox" + name: "firefox" version: "17.0" os: name: "Linux" @@ -1712,7 +1712,7 @@ ua: "Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120724 Debian Iceweasel/15.0" spec: browser: - name: "Firefox" + name: "firefox" version: "15.0" os: name: "Linux" @@ -1725,7 +1725,7 @@ ua: "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:15.0) Gecko/20120910144328 Firefox/15.0.2" spec: browser: - name: "Firefox" + name: "firefox" version: "15.0.2" os: name: "Windows" @@ -1740,7 +1740,7 @@ ua: "Mozilla/5.0 (Windows; U; Windows NT 6.1; WOW64; en-US; rv:2.0.4) Gecko/20120718 AskTbAVR-IDW/3.12.5.17700 Firefox/14.0.1" spec: browser: - name: "Firefox" + name: "firefox" version: "14.0.1" os: name: "Windows" @@ -1755,7 +1755,7 @@ ua: "Mozilla/5.0 (Windows NT 5.1; rv:6.0) Gecko/20100101 Firefox/6.0 FirePHP/0.6" spec: browser: - name: "Firefox" + name: "firefox" version: "6.0" os: name: "Windows" @@ -1770,7 +1770,7 @@ ua: "Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20100101 Firefox/4.2a1pre" spec: browser: - name: "Firefox" + name: "firefox" version: "4.2" os: name: "Linux" @@ -1783,7 +1783,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0) Gecko/20100101 Firefox/4.0" spec: browser: - name: "Firefox" + name: "firefox" version: "4.0" os: name: "macOS" @@ -1799,7 +1799,7 @@ ua: "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2b1) Gecko/20091014 Firefox/3.6b1 GTB5" spec: browser: - name: "Firefox" + name: "firefox" version: "3.6" os: name: "Windows" @@ -1814,7 +1814,7 @@ ua: "Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.15) Gecko/2009101601 Firefox 2.1 (.NET CLR 3.5.30729)" spec: browser: - name: "Firefox" + name: "firefox" version: "2.1" os: name: "Windows" @@ -1829,7 +1829,7 @@ ua: "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061014 Firefox/1.5.0.7" spec: browser: - name: "Firefox" + name: "firefox" version: "1.5.0.7" os: name: "Linux" @@ -1842,7 +1842,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) FxiOS/3.0 Mobile/13E238 Safari/601.1.46" spec: browser: - name: "Firefox" + name: "firefox" version: "3.0" os: name: "iOS" @@ -1858,7 +1858,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0" spec: browser: - name: "Firefox" + name: "firefox" version: "68.0" os: name: "macOS" @@ -1874,7 +1874,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/21.0 Version/13.0.3 Safari/605.1.15" spec: browser: - name: "Firefox" + name: "firefox" version: "21.0" os: name: "iOS" @@ -1890,7 +1890,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/24.1 Safari/605.1.15" spec: browser: - name: "Firefox" + name: "firefox" version: "24.1" os: name: "iOS" @@ -1906,7 +1906,7 @@ ua: "Mozilla/5.0 (Windows NT 5.2; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1" spec: browser: - name: "SeaMonkey" + name: "seamonkey" version: "2.7.1" os: name: "Windows" @@ -1921,7 +1921,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1" spec: browser: - name: "SeaMonkey" + name: "seamonkey" version: "2.7.1" os: name: "macOS" @@ -1937,7 +1937,7 @@ ua: "Mozilla/5.0 (X11; Linux i686; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1" spec: browser: - name: "SeaMonkey" + name: "seamonkey" version: "2.7.1" os: name: "Linux" @@ -1951,10 +1951,10 @@ ua: "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.1.0.4633 Mobile Safari/537.10+" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "10.1.0.4633" os: - name: "BlackBerry" + name: "blackberry" version: "10" platform: type: "mobile" @@ -1965,10 +1965,10 @@ ua: "Mozilla/5.0 (BB10; Kbd) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.1.0.1429 Mobile Safari/537.10+" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "10.1.0.1429" os: - name: "BlackBerry" + name: "blackberry" version: "10" platform: type: "mobile" @@ -1979,10 +1979,10 @@ ua: "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "7.2.1.0" os: - name: "BlackBerry" + name: "blackberry" version: "2.1.0" platform: type: "tablet" @@ -1993,10 +1993,10 @@ ua: "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Version/7.1.0.7 Safari/534.11" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "7.1.0.7" os: - name: "BlackBerry" + name: "blackberry" version: "1.0.0" platform: type: "tablet" @@ -2007,10 +2007,10 @@ ua: "Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "7.1.0.346" os: - name: "BlackBerry" + name: "blackberry" version: "" platform: type: "mobile" @@ -2021,10 +2021,10 @@ ua: "Mozilla/5.0 (BlackBerry; U; BlackBerry 9360; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.530 Mobile Safari/534.11+" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "7.0.0.530" os: - name: "BlackBerry" + name: "blackberry" version: "" platform: type: "mobile" @@ -2035,10 +2035,10 @@ ua: "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.450 Mobile Safari/534.8+" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "6.0.0.450" os: - name: "BlackBerry" + name: "blackberry" version: "" platform: type: "mobile" @@ -2049,10 +2049,10 @@ ua: "BlackBerry9800/5.0.0.862 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/331 UNTRUSTED/1.0 3gpp-gba" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "5.0.0.862" os: - name: "BlackBerry" + name: "blackberry" version: "5" platform: type: "mobile" @@ -2062,10 +2062,10 @@ ua: "BlackBerry8320/4.5.0.52 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "4.5.0.52" os: - name: "BlackBerry" + name: "blackberry" version: "4" platform: type: "mobile" @@ -2075,10 +2075,10 @@ ua: "BlackBerry8700/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179" spec: browser: - name: "BlackBerry" + name: "blackberry" version: "4.1.0" os: - name: "BlackBerry" + name: "blackberry" version: "4" platform: type: "mobile" @@ -2181,7 +2181,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.4.2; de-de; Nexus 7 Build/KOT49H) AppleWebKit/537.16 (KHTML, like Gecko) Version/4.0 Mobile Safari/537.16" spec: browser: - name: "Android Browser" + name: "android browser" version: "4.0" os: name: "Android" @@ -2197,7 +2197,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.3; de-de; Galaxy Nexus Build/JWR66Y) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" spec: browser: - name: "Android Browser" + name: "android browser" version: "4.0" os: name: "Android" @@ -2213,7 +2213,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.2; en-us; Nexus 10 Build/JVP15I) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30" spec: browser: - name: "Android Browser" + name: "android browser" version: "4.0" os: name: "Android" @@ -2229,7 +2229,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 3.2; de-de; A100 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13" spec: browser: - name: "Android Browser" + name: "android browser" version: "4.0" os: name: "Android" @@ -2244,7 +2244,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; T-Mobile G2 Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1" spec: browser: - name: "Android Browser" + name: "android browser" version: "4.0" os: name: "Android" @@ -2259,7 +2259,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 2.2; en-us; GT-I5800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1" spec: browser: - name: "Android Browser" + name: "android browser" version: "4.0" os: name: "Android" @@ -2274,7 +2274,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 1.6; ar-us; SonyEricssonX10i Build/R2BA026) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1" spec: browser: - name: "Android Browser" + name: "android browser" version: "3.1.2" os: name: "Android" @@ -2290,10 +2290,10 @@ ua: "Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500XPKJ1; U; Bada/2.0; it-it) AppleWebKit/534.20 (KHTML, like Gecko) Dolfin/3.0 WVGA SMM-MMS/1.2.0 OPN-B" spec: browser: - name: "Bada" + name: "bada" version: "3.0" os: - name: "Bada" + name: "bada" version: "2.0" platform: type: "mobile" @@ -2304,10 +2304,10 @@ ua: "Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500XXJL2; U; Bada/1.2; de-de) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.2 Mobile WVGA SMM-MMS/1.2.0 OPN-B" spec: browser: - name: "Bada" + name: "bada" version: "2.2" os: - name: "Bada" + name: "bada" version: "1.2" platform: type: "mobile" @@ -2318,10 +2318,10 @@ ua: "Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-S8500/S8500XXJF4; U; Bada/1.0; fr-fr) AppleWebKit/533.1 (KHTML, like Gecko) Dolfin/2.0 Mobile WVGA SMM-MMS/1.2.0 OPN-B" spec: browser: - name: "Bada" + name: "bada" version: "2.0" os: - name: "Bada" + name: "bada" version: "1.0" platform: type: "mobile" @@ -2333,10 +2333,10 @@ ua: "Mozilla/5.0 (Linux; Tizen 2.2; sdk) AppleWebKit/537.3 (KHTML, like Gecko) Version/2.2 Mobile Safari/537.3" spec: browser: - name: "Tizen" + name: "tizen" version: "2.2" os: - name: "Tizen" + name: "tizen" version: "2.2" platform: type: "mobile" @@ -2347,10 +2347,10 @@ ua: "Mozilla/5.0 (Linux; Tizen 2.1; sdk) AppleWebKit/537.3 (KHTML, like Gecko) Version/2.1 Mobile Safari/537.3" spec: browser: - name: "Tizen" + name: "tizen" version: "2.1" os: - name: "Tizen" + name: "tizen" version: "2.1" platform: type: "mobile" @@ -2361,10 +2361,10 @@ ua: "Mozilla/5.0 (Linux; U; Tizen 2.0; en-us) AppleWebKit/537.1 (KHTML, like Gecko) Mobile TizenBrowser/2.0" spec: browser: - name: "Tizen" + name: "tizen" version: "2.0" os: - name: "Tizen" + name: "tizen" version: "2.0" platform: type: "mobile" @@ -2375,10 +2375,10 @@ ua: "Mozilla/5.0 (Linux; U; Tizen/1.0 like Android; en-us; AppleWebKit/534.46 (KHTML, like Gecko) Tizen Browser/1.0 Mobile" spec: browser: - name: "Tizen" + name: "tizen" version: "1.0" os: - name: "Tizen" + name: "tizen" version: "1.0" platform: type: "mobile" @@ -2389,10 +2389,10 @@ ua: "Mozilla/5.0 (SAMSUNG; SAMSUNG-GT-i9500/1.0; U; Tizen/1.0 like Android; en-us) AppleWebKit/534.46 (KHTML, like Gecko) SLP Browser/1.0 Mobile" spec: browser: - name: "Tizen" + name: "tizen" version: "1.0" os: - name: "Tizen" + name: "tizen" version: "1.0" platform: type: "mobile" @@ -2431,7 +2431,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.5.0 Safari/534.34" spec: browser: - name: "PhantomJS" + name: "phantomjs" version: "1.5.0" os: name: "macOS" @@ -2447,7 +2447,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36 Vivaldi/1.0.303.52" spec: browser: - name: "Vivaldi" + name: "vivaldi" version: "1.0.303.52" os: name: "macOS" @@ -2462,7 +2462,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36 Vivaldi/1.0.303.52" spec: browser: - name: "Vivaldi" + name: "vivaldi" version: "1.0.303.52" os: name: "Windows" @@ -2501,7 +2501,7 @@ ua: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" spec: browser: - name: "Googlebot" + name: "googlebot" version: "2.1" os: {} platform: @@ -2512,7 +2512,7 @@ ua: "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" spec: browser: - name: "Googlebot" + name: "googlebot" version: "2.1" os: name: "Android" @@ -2527,7 +2527,7 @@ ua: "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36" spec: browser: - name: "Googlebot" + name: "googlebot" version: "2.1" os: {} platform: @@ -2540,7 +2540,7 @@ ua: "Mozilla/5.0 (iPad; U; CPU OS 9 like Mac OS X; en-us; iPad4,4) AppleWebKit/534.46 (KHTML, like Gecko) MicroMessenger/6.5.2.501 U3/1 Safari/7543.48.3" spec: browser: - name: "WeChat" + name: "wechat" version: "6.5.2.501" os: name: "iOS" @@ -2556,7 +2556,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SM-T210R Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 MicroMessenger/6.1.0" spec: browser: - name: "WeChat" + name: "wechat" version: "6.1.0" os: name: "Android" @@ -2571,7 +2571,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X; en-US) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/13E238 MicroMessenger/6.6.1 Mobile" spec: browser: - name: "WeChat" + name: "wechat" version: "6.6.1" os: name: "iOS" @@ -2587,7 +2587,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat" spec: browser: - name: "WeChat" + name: "wechat" version: "6.5.2.501" os: name: "macOS" @@ -2604,7 +2604,7 @@ ua: "Mozilla/5.0 (iPad; U; CPU OS 9 like Mac OS X; en-us; iPad4,4) AppleWebKit/534.46 (KHTML, like Gecko) UCBrowser/2.4.0.367 U3/1 Safari/7543.48.3" spec: browser: - name: "UC Browser" + name: "uc browser" version: "2.4.0.367" os: name: "iOS" @@ -2620,7 +2620,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; SM-T210R Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30 UCBrowser/2.3.2.300" spec: browser: - name: "UC Browser" + name: "uc browser" version: "4.0" os: name: "Android" @@ -2635,7 +2635,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X; en-US) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/13E238 UCBrowser/10.7.0.782 Mobile" spec: browser: - name: "UC Browser" + name: "uc browser" version: "10.7.0.782" os: name: "iOS" @@ -2683,7 +2683,7 @@ ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13E238 Safari/601.1 MXiOS/4.8.6.59" spec: browser: - name: "Maxthon" + name: "maxthon" version: "9.0" os: name: "iOS" @@ -2699,7 +2699,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/4.1.0.4000 Chrome/26.0.1410.43 Safari/537.1" spec: browser: - name: "Maxthon" + name: "maxthon" version: "4.1.0.4000" os: name: "Windows" @@ -2729,7 +2729,7 @@ ua: "Mozilla/5.0 (X11; U; Linux x86_64; zh-TW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36 Puffin/3.7.0IT" spec: browser: - name: "Puffin" + name: "puffin" version: "3.7.0" os: name: "Linux" @@ -2742,7 +2742,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Sleipnir/6.1.4" spec: browser: - name: "Sleipnir" + name: "sleipnir" version: "6.1.4" os: name: "Windows" @@ -2773,7 +2773,7 @@ ua: "Mozilla/5.0 (Linux; Ubuntu 14.04 like Android 4.4) AppleWebKit/537.36 Chromium/35.0.1870.2 Mobile Safari/537.36" spec: browser: - name: "Chromium" + name: "chromium" version: "35.0.1870.2" os: name: "Linux" @@ -2785,7 +2785,7 @@ ua: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/50.0.2661.102 Chrome/50.0.2661.102 Safari/537.36" spec: browser: - name: "Chromium" + name: "chromium" version: "50.0.2661.102" os: name: "Linux" @@ -2812,7 +2812,7 @@ ua: "Mozilla/5.0 (Linux; Android 5.0.2; SAMSUNG SM-G925F Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/4.0 Chrome/44.0.2403.133 Mobile Safari/537.36" spec: browser: - name: "Samsung Internet for Android" + name: "samsung internet for android" version: "4.0" os: name: "Android" @@ -2915,7 +2915,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36" spec: browser: - name: "QQ Browser" + name: "qq browser" version: "5.0" os: name: "Android" @@ -2929,7 +2929,7 @@ ua: "Mozilla/5.0 (iPhone 84; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 MQQBrowser/7.8.0 Mobile/14G60 Safari/8536.25 MttCustomUA/2 QBWebViewType/1 WKType/1" spec: browser: - name: "QQ Browser" + name: "qq browser" version: "7.8.0" os: name: "iOS" @@ -2945,7 +2945,7 @@ ua: "Mozilla/5.0 (Linux; U; Android 9; zh-cn; DUK-AL20 Build/HUAWEIDUK-AL20) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/9.6 Mobile Safari/537.36" spec: browser: - name: "QQ Browser" + name: "qq browser" version: "9.6" os: name: "Android" @@ -2960,7 +2960,7 @@ ua: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2141.400 QQBrowser/9.5.10219.400" spec: browser: - name: "QQ Browser" + name: "qq browser" version: "9.5.10219.400" os: name: "Windows" @@ -2974,7 +2974,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36 QQBrowser/3.8.3858.400" spec: browser: - name: "QQ Browser" + name: "qq browser" version: "3.8.3858.400" os: name: "macOS" @@ -3007,7 +3007,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) my-app/1.0.0 Chrome/78.0.3904.113 Electron/7.1.2 Safari/537.36" spec: browser: - name: "Electron" + name: "electron" version: "7.1.2" os: name: "Windows" @@ -3021,7 +3021,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.146 Electron/6.1.5 Safari/537.36" spec: browser: - name: "Electron" + name: "electron" version: "6.1.5" os: name: "Windows" @@ -3035,7 +3035,7 @@ ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.113 Electron/7.1.2 Safari/537.36" spec: browser: - name: "Electron" + name: "electron" version: "7.1.2" os: name: "macOS" @@ -3050,7 +3050,7 @@ ua: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.113 Electron/7.1.2 Safari/537.36" spec: browser: - name: "Electron" + name: "electron" version: "7.1.2" os: name: "Linux" @@ -3091,7 +3091,7 @@ ua: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Goanna/4.8 Firefox/68.0 PaleMoon/29.1.1" spec: browser: - name: "Pale Moon" + name: "pale moon" version: "29.1.1" os: name: "Windows" @@ -3106,7 +3106,7 @@ ua: "Mozilla/5.0 (X11; Linux i686; rv:45.9) Gecko/20100101 Goanna/3.2 Firefox/45.9 PaleMoon/27.2.0" spec: browser: - name: "Pale Moon" + name: "pale moon" version: "27.2.0" os: name: "Linux" diff --git a/test/unit/parser.js b/test/unit/parser.js index 66036fd..6fbad57 100644 --- a/test/unit/parser.js +++ b/test/unit/parser.js @@ -28,13 +28,13 @@ test('Parser.parseBrowser is being called when the Parser.getBrowser() is called const spy = sinon.spy(parser, 'parseBrowser'); const b = parser.getBrowser(); t.truthy(spy.called); - t.is(b.name, 'Opera'); + t.is(b.name, 'opera'); t.is(b.version, '43.0.2442.1165'); parser.parseBrowser.restore(); }); test('Parser.getBrowserName returns a correct result', (t) => { - t.is(parser.getBrowserName(), 'Opera'); + t.is(parser.getBrowserName(), 'opera'); }); test('Parser.getBrowserVersion returns a correct result', (t) => { @@ -220,8 +220,8 @@ test('Parser.isBrowser should pass when loosely checking', (t) => { }); test('Parser.isBrowser should pass for non-aliased browsers', (t) => { - t.is(focusParser.isBrowser('Focus', true), true); - t.is(focusParser.isBrowser('Focus', false), true); + t.is(focusParser.isBrowser('focus', true), true); + t.is(focusParser.isBrowser('focus', false), true); }); test('Parser.isEngine should pass', (t) => { diff --git a/test/unit/utils.js b/test/unit/utils.js index 1c2a9d5..806e899 100644 --- a/test/unit/utils.js +++ b/test/unit/utils.js @@ -129,8 +129,8 @@ test('assign', (t) => { }); test('getBrowserAlias', (t) => { - t.is(getBrowserAlias('Microsoft Edge'), 'edge'); - t.is(getBrowserAlias('Unexisting Browser'), void 0); + t.is(getBrowserAlias('microsoft edge'), 'edge'); + t.is(getBrowserAlias('unexisting browser'), void 0); }); test('getBrowserTypeByAlias', (t) => {