UNPKG

4.95 kBSource Map (JSON)View Raw
1{"version":3,"file":"low-browser.umd.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":["const","let"],"mappings":";;;;;;;;;;;;;IAAA;;;;;;;;IAQAA,IAAM,UAAU,aAAI,SAAiB,EAAkB;QACrDA,IAAM,IAAI,GAAmB,aAAE,SAAS,EAAE,CAAA;QAC1CC,IAAI,CAA0B,CAAA;;QAG9B,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAClC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAA;SACxB;;QAGD,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC/B,IAAI,CAAC,EAAE,GAAG,UAAU,CAAA;SACrB;;QAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACxC,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBAClB,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;iBAC3B,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAA;SACtC;;QAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACvD,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;YACrB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;SAC/B;;QAGD,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;YAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;SACtB;;QAGDD,IAAM,OAAO,GAAG,kBAAkB,CAAA;QAClC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;QAC9C,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;QAC9D,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;SAC3B;;QAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACxD,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;YACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;SAC3B;;QAGD,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAC9C,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,IAAI,GAAG,MAAM,CAAA;YAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAE1BA,IAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACrB,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;aACvB;YAED,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;YACtB,IAAI,CAAC,WAAW,GAAG,CAAG,IAAI,CAAC,kBAAW,OAAO,IAAI,CAAC,CAAE,CAAA;SACrD;;QAGD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;kBAC5C,UAAU;kBACV,UAAU,CAAA;SACf;QAED,OAAO,IAAI,CAAA;KACZ,CAAA;;;;;;;;"}
\No newline at end of file