UNPKG

4.92 kBSource Map (JSON)View Raw
1{"version":3,"file":"low-browser.esm.js","sources":["../src/low-browser.ts"],"sourcesContent":["/**\n * Internet Explorer and Microsoft Edge browsers definition.\n * Parses given user agent string\n *\n * @param userAgent - browser user agent\n *\n * @returns object with info about browser\n */\nconst lowBrowser = (userAgent: string): LowBrowserData => {\n const data: LowBrowserData = { userAgent }\n let m: RegExpMatchArray | null\n\n /** Check Mac Power PC */\n if (/Mac_PowerPC/i.test(userAgent)) {\n data.os = 'Mac_PowerPC'\n }\n\n /** Check Mac OS X */\n if (/Mac OS X/i.test(userAgent)) {\n data.os = 'Mac OS X'\n }\n\n /** Check Windows OS */\n m = userAgent.match(/(Windows.*?)[;)]/i)\n if (m) {\n data.os = m[1].trim()\n .replace(/NT(\\d)/i, 'NT $1')\n .replace(/(NT\\s\\d{1,2})$/i, '$1.0')\n }\n\n /** Check Trident version core */\n m = userAgent.match(/Trident[\\/\\s](\\d+\\.[\\d\\w]+)[;)]/i)\n if (m) {\n data.core = 'Trident'\n data.coreVersion = m[1].trim()\n }\n\n /** Check IE 11 */\n if (/rv:11\\.0/i.test(userAgent) && data.core === 'Trident') {\n data.name = 'IE'\n data.version = '11.0'\n }\n\n /** Check IE < 11 */\n const ieRegex = 'MSIE\\\\s(.*?)[;)]'\n m = userAgent.match(new RegExp(ieRegex, 'ig'))\n m = m ? m[m.length - 1].match(new RegExp(ieRegex, 'i')) : null\n if (m) {\n data.name = 'IE'\n data.version = m[1].trim()\n }\n\n /** Check IEMobile */\n m = userAgent.match(/IEMobile[\\/\\s](\\d+\\.[\\d\\w]+)[;)]/i)\n if (m) {\n data.name = 'IEMobile'\n data.version = m[1].trim()\n }\n\n /** Check EDGE browser */\n m = userAgent.match(/Edge[\\/\\s](.*?)\\.(\\d+)/i)\n if (m) {\n data.name = 'Edge'\n data.version = m[1].trim()\n\n const osBuild = +m[2]\n if (osBuild) {\n data.osBuild = osBuild\n }\n\n data.core = 'EdgeHTML'\n data.coreVersion = `${data.version}.${osBuild || 0}`\n }\n\n /** Check Xbox */\n if (/Xbox/i.test(userAgent)) {\n data.gamePlatform = /Xbox\\sOne/i.test(userAgent)\n ? 'Xbox One'\n : 'Xbox 360'\n }\n\n return data\n}\n\n/**\n * Parsed data from given user agent\n */\nexport interface LowBrowserData {\n /**\n * Input user agent string\n */\n userAgent: string\n\n /**\n * Browser Name\n */\n name?: 'Edge' | 'IE' | 'IEMobile'\n\n /**\n * Browser Version\n *\n * @example '5.5b1'\n */\n version?: string\n\n /**\n * Browser Core\n */\n core?: 'EdgeHTML' | 'Trident'\n\n /**\n * Browser Core Version\n *\n * @example '4.0b1'\n */\n coreVersion?: string\n\n /**\n * Operating System\n *\n * @example 'Windows NT 10.0'\n */\n os?: string\n\n /**\n * Operating System Build Number.\n * Only for Microsoft Edge browser\n *\n * @example 16299\n */\n osBuild?: number\n\n /**\n * Game Platforms\n */\n gamePlatform?: 'Xbox 360' | 'Xbox One'\n}\n\nexport default lowBrowser\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;;;;AAQA,MAAM,UAAU,GAAG,CAAC,SAAiB;IACnC,MAAM,IAAI,GAAmB,EAAE,SAAS,EAAE,CAAA;IAC1C,IAAI,CAA0B,CAAA;;IAG9B,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAClC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAA;KACxB;;IAGD,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC/B,IAAI,CAAC,EAAE,GAAG,UAAU,CAAA;KACrB;;IAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACxC,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aAClB,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;aAC3B,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;KACtC;;IAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;KAC/B;;IAGD,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;KACtB;;IAGD,MAAM,OAAO,GAAG,kBAAkB,CAAA;IAClC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9C,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAA;IAC9D,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;KAC3B;;IAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACxD,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;KAC3B;;IAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAE1B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;SACvB;QAED,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,EAAE,CAAA;KACrD;;IAGD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;cAC5C,UAAU;cACV,UAAU,CAAA;KACf;IAED,OAAO,IAAI,CAAA;CACZ,CAAA;;;;"}
\No newline at end of file