mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +03:00
4 lines
23 KiB
JavaScript
4 lines
23 KiB
JavaScript
/* UAParser.js v2.0.0
|
|
Copyright © 2012-2024 Faisal Salman <f@faisalman.com>
|
|
AGPLv3 License */
|
|
function U(i){for(var e={},t=0;t<i.length;t++)e[i[t].toUpperCase()]=i[t];return e}var M=500,R="user-agent",w="",c=" ",i="-",L="?",e=/_/g,V="function",n="undefined",l="object",F="string",u="browser",h="cpu",p="device",m="engine",f="os",g="result",v="name",k="type",x="vendor",y="version",C="architecture",B="major",S="model",G="console",_="mobile",r="tablet",t="smarttv",o="wearable",N="xr",D="embedded",$="inapp",W="brands",q="formFactors",X="fullVersionList",T="platform",K=T+"Version",Q="bitness",a="sec-ch-ua",Y=a+"-full-version-list",Z=a+"-arch",J=a+i+Q,ii=a+"-form-factors",ei=a+i+_,ti=a+i+S,oi=a+i+T,ri=oi+"-version",ai=[W,X,_,S,T,K,C,q,Q],i="Amazon",s="Apple",si="ASUS",ni="BlackBerry",z="Google",wi="Microsoft",bi="Motorola",di="Nvidia",ci="OnePlus",li="OPPO",ui="Samsung",hi="Sony",pi="Xiaomi",mi="Zebra",O="Chrome",fi="Chromium",b=O+"cast",gi="Edge",vi="Firefox",ki="Headless",d="Opera",xi="Facebook",yi="WebView",Ci="Android",Si="Windows",_i="Browser",qi="Mobile",Ti="Smart",H=qi+c,zi=c+_i,j=typeof window!==n&&window.navigator?window.navigator:void 0,A=j&&j.userAgentData?j.userAgentData:void 0,Oi=function(i,e){if(typeof i===l&&0<i.length){for(var t in i)if(I(i[t])==I(e))return!0;return!1}return!!ji(i)&&-1!==I(e).indexOf(I(i))},Hi=function(i,e){for(var t in i)return/^(browser|cpu|device|engine|os)$/.test(t)||!!e&&Hi(i[t])},ji=function(i){return typeof i===F},Ai=function(i){if(i){for(var e,t=[],o=Ei(i).split(","),r=0;r<o.length;r++)-1<o[r].indexOf(";")?(e=Ui(o[r]).split(";v="),t[r]={brand:e[0],version:e[1]}):t[r]=Ui(o[r]);return t}},I=function(i){return ji(i)?i.toLowerCase():i},Ii=function(i){return ji(i)?Pi(/[^\d\.]/g,i).split(".")[0]:void 0},P=function(i){for(var e in i){e=i[e];typeof e==l&&2==e.length?this[e[0]]=e[1]:this[e]=void 0}return this},Pi=function(i,e){return ji(e)?e.replace(i,w):e},Ei=function(i){return Pi(/\\?\"/g,i)},Ui=function(i,e){if(ji(i))return i=Pi(/^\s\s*/,i),typeof e===n?i:i.substring(0,M)},Mi=function(i,e){if(i&&e)for(var t,o,r,a,s,n=0;n<e.length&&!a;){for(var w=e[n],b=e[n+1],d=t=0;d<w.length&&!a&&w[d];)if(a=w[d++].exec(i))for(o=0;o<b.length;o++)s=a[++t],typeof(r=b[o])===l&&0<r.length?2===r.length?typeof r[1]==V?this[r[0]]=r[1].call(this,s):this[r[0]]=r[1]:3===r.length?typeof r[1]!==V||r[1].exec&&r[1].test?this[r[0]]=s?s.replace(r[1],r[2]):void 0:this[r[0]]=s?r[1].call(this,s,r[2]):void 0:4===r.length&&(this[r[0]]=s?r[3].call(this,s.replace(r[1],r[2])):void 0):this[r]=s||void 0;n+=2}},Ri=function(i,e){for(var t in e)if(typeof e[t]===l&&0<e[t].length){for(var o=0;o<e[t].length;o++)if(Oi(e[t][o],i))return t===L?void 0:t}else if(Oi(e[t],i))return t===L?void 0:t;return e.hasOwnProperty("*")?e["*"]:i},Li={embedded:"Automotive",mobile:qi,tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Vi={browser:[[/\b(?:crmo|crios)\/([-\w\.]+)/i],[y,[v,H+O]],[/edg(?:e|ios|a)?\/([-\w\.]+)/i],[y,[v,gi]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+ion\/([-\w\.]+)/i,/(opera)(?:.+ion\/|[\/ ]+)([-\w\.]+)/i],[v,y],[/opios[\/ ]+([-\w\.]+)/i],[y,[v,d+" Mini"]],[/\bop(?:rg)?x\/([-\w\.]+)/i],[y,[v,d+" GX"]],[/\bopr\/([-\w\.]+)/i],[y,[v,d]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[y,[v,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[y,[v,"Maxthon"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i,/(?:comodo_)?(dragon)\/([-\w\.]+)/i],[v,y],[/quark(?:pc)?\/([-\w\.]+)/i],[y,[v,"Quark"]],[/\bddg\/([\w\.]+)/i],[y,[v,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[y,[v,"UC"+_i]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[y,[v,"WeChat"]],[/konqueror\/([\w\.]+)/i],[y,[v,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[y,[v,"IE"]],[/ya(?:search)?browser\/([-\w\.]+)/i],[y,[v,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[y,[v,Ti+c+"Lenovo"+zi]],[/(avast|avg)\/([\w\.]+)/i],[[v,/(.+)/,"$1 Secure"+zi],y],[/\bfocus\/([\w\.]+)/i],[y,[v,vi+" Focus"]],[/\bopt\/([\w\.]+)/i],[y,[v,d+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[y,[v,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[y,[v,"Dolphin"]],[/coast\/([\w\.]+)/i],[y,[v,d+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[y,[v,"MIUI"+zi]],[/fxios\/([-\w\.]+)/i],[y,[v,H+vi]],[/\bqihoobrowser\/?([\w\.]*)/i],[y,[v,"360"]],[/\b(qq)\/([\w\.]+)/i],[[v,/(.+)/,"$1"+_i],y],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[v,/(.+)/,"$1"+zi],y],[/samsungbrowser\/([\w\.]+)/i],[y,[v,ui+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[y,[v,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[v,"Sogou"+c+qi],y],[/(electron)\/([-\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d+\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[v,y],[/(lbbrowser|rekonq)/i],[v],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[y,v],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([-\w\.]+);)/i],[[v,xi],y,[k,$]],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/(daum)apps[\/ ]([\w\.]+)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(instagram|snapchat)[\/ ]([-\w\.]+)/i,/\b(gsa)\/([\w\.]+) .*safari\//i],[v,y,[k,$]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[y,[v,"TikTok"],[k,$]],[/\[(linkedin)app/i],[v,[k,$]],[/(chromium)[\/ ]([-\w\.]+)/i],[v,y],[/headlesschrome(?:\/([-\w\.]+)| )/i],[y,[v,O+c+ki]],[/ wv\).+(chrome)\/([-\w\.]+)/i],[[v,O+c+yi],y],[/droid.+ version\/([-\w\.]+)\b.+(?:mobile safari|safari)/i],[y,[v,Ci+zi]],[/chrome\/([-\w\.]+) mobile/i],[y,[v,H+O]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([-\w\.]+)/i],[v,y],[/version\/([-\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[y,[v,H+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[v,H+"Safari"]],[/version\/([-\w\.\,]+) .*(safari)/i],[y,v],[/webkit.+?(mobile ?safari|safari)(\/[-\w\.]+)/i],[v,[y,"1"]],[/(webkit|khtml)\/([-\w\.]+)/i],[v,y],[/(?:mobile|tablet);.*(firefox)\/([-\w\.]+)/i],[[v,H+vi],y],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[v,"Netscape"],y],[/(wolvic|librewolf)\/([\w\.]+)/i],[v,y],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[y,[v,vi+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/\b(links) \(([\w\.]+)/i],[v,[y,e,"."]],[/(cobalt)\/([\w\.]+)/i],[v,[y,/[^\d\.]+./,w]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[C,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)\b/i],[[C,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[C,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[C,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[C,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[C,/ower/,w,I]],[/ sun4\w[;\)]/i],[[C,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[C,I]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[S,[x,ui],[k,r]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[S,[x,ui],[k,_]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(\/|;)/i],[S,[x,s],[k,_]],[/\((ipad);[-\w\),; ]+apple/i,/coremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[S,[x,s],[k,r]],[/(macintosh);/i],[S,[x,s]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[S,[x,"Sharp"],[k,_]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)( bui|\)|;)/i],[S,[x,"Honor"],[k,r]],[/honor([-\w ]+)[;\)]/i],[S,[x,"Honor"],[k,_]],[/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i],[S,[x,"Huawei"],[k,r]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[S,[x,"Huawei"],[k,_]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)( bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)( bui|\))/i],[[S,e,c],[x,pi],[k,r]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})( bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)( bui|\))/i,/ ([\w ]+) miui\/v?\d/i],[[S,e,c],[x,pi],[k,_]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[S,[x,li],[k,_]],[/\b(opd2(\d{3}a?))( bui|\))/i],[S,[x,Ri,{OnePlus:["304","403","203"],"*":li}],[k,r]],[/vivo (\w+)( bui|\))/i,/\b(v[12]\d{3}\w?[at])( bui|;)/i],[S,[x,"Vivo"],[k,_]],[/\b(rmx[1-3]\d{3})( bui|;|\))/i],[S,[x,"Realme"],[k,_]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+bui/i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[S,[x,bi],[k,_]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[S,[x,bi],[k,r]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[S,[x,"LG"],[k,r]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[S,[x,"LG"],[k,_]],[/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i],[S,[x,"Lenovo"],[k,r]],[/(nokia) (t[12][01])/i],[x,S,[k,r]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?(([-\w\.]*))/i],[[S,e,c],[k,_],[x,"Nokia"]],[/(pixel (c|tablet))\b/i],[S,[x,z],[k,r]],[/droid.+; (pixel[\daxl ]{0,6})( bui|\))/i],[S,[x,z],[k,_]],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[S,[x,hi],[k,_]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+( bui|\))/i],[[S,"Xperia Tablet"],[x,hi],[k,r]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)( bui|\))/i],[S,[x,ci],[k,_]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[S,[x,i],[k,r]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[S,/(.+)/g,"Fire Phone $1"],[x,i],[k,_]],[/(playbook);.+(rim)/i],[S,x,[k,r]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[S,[x,ni],[k,_]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[S,[x,si],[k,r]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[S,[x,si],[k,_]],[/(nexus 9)/i],[S,[x,"HTC"],[k,r]],[/(htc)[-;_ ]+([\w ]+(?=\)| bui))/i,/(zte)[- ]([\w ]+?)( bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!;|\.)|sony(?!-bra))[-_ ]?([-\w]*)/i],[x,[S,e,c],[k,_]],[/tcl (xess p17aa)/i,/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\w(\w|\w\w))?(\)| bui)/i],[S,[x,"TCL"],[k,r]],[/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i],[S,[x,"TCL"],[k,_]],[/(itel) ((\w+))/i],[[x,I],S,[k,Ri,{tablet:["p10001l","w7001"],"*":_}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[S,[x,"Acer"],[k,r]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[S,[x,"Meizu"],[k,_]],[/; ((?:power )?armor(?:[\w ]{0,8}))( bui|\))/i],[S,[x,"Ulefone"],[k,_]],[/; (energy ?\w+)( bui|\))/i,/; energizer ([\w ]+)( bui|\))/i],[S,[x,"Energizer"],[k,_]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)( bui|\))/i],[S,[x,"Cat"],[k,_]],[/((?:new )?andromax[\w- ]+)( bui|\))/i],[S,[x,Ti+"fren"],[k,_]],[/droid.+; (a(?:015|06[35]|142p?))/i],[S,[x,"Nothing"],[k,_]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[x,S,[k,r]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (hmd|imo) ([\w ]+?)( bui|\))/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w ]+?)( bui|\)|\/)/i,/(oppo) ?([\w ]+) bui/i],[x,S,[k,_]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[x,S,[k,r]],[/(surface duo)/i],[S,[x,wi],[k,r]],[/droid [\d\.]+; (fp\du?)( bui|\))/i],[S,[x,"Fairphone"],[k,_]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)( bui|\))/i],[S,[x,di],[k,r]],[/(sprint) (\w+)/i],[x,S,[k,_]],[/(kin\.[onetw]{3})/i],[[S,/\./g,c],[x,wi],[k,_]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[S,[x,mi],[k,r]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[S,[x,mi],[k,_]],[/smart-tv.+(samsung)/i],[x,[k,t]],[/hbbtv.+maple;(\d+)/i],[[S,/^/,Ti+"TV"],[x,ui],[k,t]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[x,"LG"],[k,t]],[/(apple) ?tv/i],[x,[S,s+" TV"],[k,t]],[/crkey.*devicetype\/chromecast/i],[[S,b+" Third Generation"],[x,z],[k,t]],[/crkey.*devicetype\/([^/]*)/i],[[S,/^/,b+c],[x,z],[k,t]],[/fuchsia.*crkey/i],[[S,b+" Nest Hub"],[x,z],[k,t]],[/crkey/i],[[S,b],[x,z],[k,t]],[/droid.+aft(\w+)( bui|\))/i],[S,[x,i],[k,t]],[/(shield \w+ tv)/i],[S,[x,di],[k,t]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[S,[x,"Sharp"],[k,t]],[/(bravia[\w ]+)( bui|\))/i],[S,[x,hi],[k,t]],[/(mi(tv|box)-?\w+) bui/i],[S,[x,pi],[k,t]],[/Hbbtv.*(technisat) (.*);/i],[x,S,[k,t]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[x,Ui],[S,Ui],[k,t]],[/droid.+; ([\w- ]+) (android tv|smart[- ]?tv)/i],[S,[k,t]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[k,t]],[/(ouya)/i,/(nintendo) (\w+)/i],[x,S,[k,G]],[/droid.+; (shield)( bui|\))/i],[S,[x,di],[k,G]],[/(playstation \w+)/i],[S,[x,hi],[k,G]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[S,[x,wi],[k,G]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[S,[x,ui],[k,o]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[x,S,[k,o]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[S,[x,li],[k,o]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[S,[x,s],[k,o]],[/(opwwe\d{3})/i],[S,[x,ci],[k,o]],[/(moto 360)/i],[S,[x,bi],[k,o]],[/(smartwatch 3)/i],[S,[x,hi],[k,o]],[/(g watch r)/i],[S,[x,"LG"],[k,o]],[/droid.+; (wt63?0{2,3})\)/i],[S,[x,mi],[k,o]],[/droid.+; (glass) \d/i],[S,[x,z],[k,N]],[/(pico) (4|neo3(?: link|pro)?)/i],[x,S,[k,N]],[/; (quest( \d| pro)?)/i],[S,[x,xi],[k,N]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[x,[k,D]],[/(aeobc)\b/i],[S,[x,i],[k,D]],[/(homepod).+mac os/i],[S,[x,s],[k,D]],[/windows iot/i],[[k,D]],[/droid .+?; ([^;]+?)( bui|; wv\)|\) applew).+? mobile safari/i],[S,[k,_]],[/droid .+?; ([^;]+?)( bui|\) applew).+?(?! mobile) safari/i],[S,[k,r]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[k,r]],[/(phone|mobile([;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[k,_]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[S,[x,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[y,[v,gi+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[v,y],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[y,[v,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[v,y],[/ladybird\//i],[[v,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[y,v]],os:[[/microsoft (windows) (vista|xp)/i],[v,y],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[v,y],[/windows [^;]+; (arm)/i,/windows[\/ ](?:nt)? ?([ce\d\. ]*\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )(?:nt)? ?([\d\.]*)/i],[[y,Ri,{ME:"4.90","NT 3.11":"3.51","NT 4.0":"4.0",2e3:"5.0",XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2",8.1:"6.3",10:["6.4","10.0"],RT:"ARM"}],[v,Si]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[y,e,"."],[v,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[v,"macOS"],[y,e,"."]],[/android ([\d\.]+).*crkey/i],[y,[v,b+c+Ci]],[/fuchsia.*crkey\/([\d\.]+)/i],[y,[v,b+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[y,[v,b+c+Ti+"Speaker"]],[/linux.*crkey\/([\d\.]+)/i],[y,[v,b+" Linux"]],[/crkey\/([\d\.]+)/i],[y,[v,b]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[y,v],[/(ubuntu) ([\w\.]+) like android/i],[[v,/(.+)/,"$1 Touch"],y],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[v,y],[/\(bb(10);/i],[y,[v,ni]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[y,[v,"Symbian"]],[/mozilla\/[^ ]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[y,[v,vi+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[y,[v,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[y,[v,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[v,O+" OS"],y],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) (\w+)/i,/(xbox); +xbox ([^\);]+)/i,/(pico) .+os([\w\.]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[v,y],[/(sunos) ?([\w\.\d]*)/i],[[v,"Solaris"],y],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[v,y]]},Fi=(d={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},P.call(d.init,[[u,[v,y,B,k]],[h,[C]],[p,[k,S,x]],[m,[v,y]],[f,[v,y]]]),P.call(d.isIgnore,[[u,[y,B]],[m,[y]],[f,[y]]]),P.call(d.isIgnoreRgx,[[u,/ ?browser$/i],[f,/ ?os$/i]]),P.call(d.toString,[[u,[v,y]],[h,[C]],[p,[x,S]],[m,[v,y]],[f,[v,y]]]),d),Bi=function(e,i){var t=Fi.init[i],o=Fi.isIgnore[i]||0,r=Fi.isIgnoreRgx[i]||0,a=Fi.toString[i]||0;function s(){P.call(this,t)}return s.prototype.getItem=function(){return e},s.prototype.withClientHints=function(){return A?A.getHighEntropyValues(ai).then(function(i){return e.setCH(new Gi(i,!1)).parseCH().get()}):e.parseCH().get()},s.prototype.withFeatureCheck=function(){return e.detectFeature().get()},i!=g&&(s.prototype.is=function(i){var e,t=!1;for(e in this)if(this.hasOwnProperty(e)&&!Oi(o,e)&&I(r?Pi(r,this[e]):this[e])==I(r?Pi(r,i):i)){if(t=!0,i!=n)break}else if(i==n&&t){t=!t;break}return t},s.prototype.toString=function(){var i,e=w;for(i in a)typeof this[a[i]]!==n&&(e+=(e?c:w)+this[a[i]]);return e||n}),A||(s.prototype.then=function(i){function e(){for(var i in t)t.hasOwnProperty(i)&&(this[i]=t[i])}var t=this,o=(e.prototype={is:s.prototype.is,toString:s.prototype.toString},new e);return i(o),o}),new s};function Gi(i,e){if(i=i||{},P.call(this,ai),e)P.call(this,[[W,Ai(i[a])],[X,Ai(i[Y])],[_,/\?1/.test(i[ei])],[S,Ei(i[ti])],[T,Ei(i[oi])],[K,Ei(i[ri])],[C,Ei(i[Z])],[q,Ai(i[ii])],[Q,Ei(i[J])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==n&&(this[t]=i[t])}function Ni(i,e,t,o){return this.get=function(i){return i?this.data.hasOwnProperty(i)?this.data[i]:void 0:this.data},this.set=function(i,e){return this.data[i]=e,this},this.setCH=function(i){return this.uaCH=i,this},this.detectFeature=function(){if(j&&j.userAgent==this.ua)switch(this.itemType){case u:j.brave&&typeof j.brave.isBrave==V&&this.set(v,"Brave");break;case p:!this.get(k)&&A&&A[_]&&this.set(k,_),"Macintosh"==this.get(S)&&j&&typeof j.standalone!==n&&j.maxTouchPoints&&2<j.maxTouchPoints&&this.set(S,"iPad").set(k,r);break;case f:!this.get(v)&&A&&A[T]&&this.set(v,A[T]);break;case g:var e=this.data,i=function(i){return e[i].getItem().detectFeature().get()};this.set(u,i(u)).set(h,i(h)).set(p,i(p)).set(m,i(m)).set(f,i(f))}return this},this.parseUA=function(){return this.itemType!=g&&Mi.call(this.data,this.ua,this.rgxMap),this.itemType==u&&this.set(B,Ii(this.get(y))),this},this.parseCH=function(){var i,e=this.uaCH,t=this.rgxMap;switch(this.itemType){case u:case m:var o,r=e[X]||e[W];if(r)for(var a in r){var s=r[a].brand||r[a],a=r[a].version;this.itemType!=u||/not.a.brand/i.test(s)||o&&(!/chrom/i.test(o)||s==fi)||(s=Ri(s,{Chrome:z+c+O,Edge:wi+c+gi,"Chrome WebView":Ci+c+yi,"Chrome Headless":ki+O}),this.set(v,s).set(y,a).set(B,Ii(a)),o=s),this.itemType==m&&s==fi&&this.set(y,a)}break;case h:var n=e[C];n&&("64"==e[Q]&&(n+="64"),Mi.call(this.data,n+";",t));break;case p:if(e[_]&&this.set(k,_),e[S]&&(this.set(S,e[S]),this.get(k)&&this.get(x)||(Mi.call(n={},Ci+" 9; "+e[S]+")",t),!this.get(k)&&n.type&&this.set(k,n.type),!this.get(x)&&n.vendor&&this.set(x,n.vendor))),e[q]){if("string"!=typeof e[q])for(var w=0;!i&&w<e[q].length;)i=Ri(e[q][w++],Li);else i=Ri(e[q],Li);this.set(k,i)}break;case f:var b,n=e[T];n&&(b=e[K],n==Si&&(b=13<=parseInt(Ii(b),10)?"11":"10"),this.set(v,n).set(y,b)),this.get(v)==Si&&"Xbox"==e[S]&&this.set(v,"Xbox").set(y,void 0);break;case g:var d=this.data,n=function(i){return d[i].getItem().setCH(e).parseCH().get()};this.set(u,n(u)).set(h,n(h)).set(p,n(p)).set(m,n(m)).set(f,n(f))}return this},P.call(this,[["itemType",i],["ua",e],["uaCH",o],["rgxMap",t],["data",Bi(this,i)]]),this}function E(i,e,t){var o,r,a,s,n;return typeof i===l?(e=Hi(i,!0)?(typeof e===l&&(t=e),i):void(t=i),i=void 0):typeof i!==F||Hi(e,!0)||(t=e,e=void 0),t&&typeof t.append===V&&(o={},t.forEach(function(i,e){o[e]=i}),t=o),this instanceof E?(r=typeof i===F?i:t&&t[R]?t[R]:j&&j.userAgent?j.userAgent:w,a=new Gi(t,!0),s=e?((i,e)=>{var t,o={},r=e;if(!Hi(e))for(var a in r={},e)for(var s in e[a])r[s]=e[a][s].concat(r[s]||[]);for(t in i)o[t]=r[t]&&r[t].length%2==0?r[t].concat(i[t]):i[t];return o})(Vi,e):Vi,P.call(this,[["getBrowser",(n=function(i){return i==g?function(){return new Ni(i,r,s,a).set("ua",r).set(u,this.getBrowser()).set(h,this.getCPU()).set(p,this.getDevice()).set(m,this.getEngine()).set(f,this.getOS()).get()}:function(){return new Ni(i,r,s[i],a).parseUA().get()}})(u)],["getCPU",n(h)],["getDevice",n(p)],["getEngine",n(m)],["getOS",n(f)],["getResult",n(g)],["getUA",function(){return r}],["setUA",function(i){return ji(i)&&(r=i.length>M?Ui(i,M):i),this}]]).setUA(r),this):new E(i,e,t).getResult()}E.VERSION="2.0.0",E.BROWSER=U([v,y,B,k]),E.CPU=U([C]),E.DEVICE=U([S,x,k,G,_,t,r,o,D]),E.ENGINE=E.OS=U([v,y]);export{E as UAParser}; |