ua-parser-js 2.0.2 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- /* UAParser.js v2.0.2
2
- Copyright © 2012-2024 Faisal Salman <f@faisalman.com>
1
+ /* UAParser.js v2.0.4
2
+ Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
3
3
  AGPLv3 License */
4
- function M(i){for(var e={},t=0;t<i.length;t++)e[i[t].toUpperCase()]=i[t];return e}var P=500,R="user-agent",w="",U="?",V="function",n="undefined",l="object",B="string",c="browser",u="cpu",h="device",p="engine",m="os",f="result",g="name",v="type",k="vendor",x="version",y="architecture",C="major",T="model",G="console",S="mobile",r="tablet",i="smarttv",e="wearable",L="xr",F="embedded",D="inapp",$="brands",_="formFactors",W="fullVersionList",q="platform",X="platformVersion",K="bitness",o="sec-ch-ua",Q=o+"-full-version-list",Y=o+"-arch",Z=o+"-"+K,J=o+"-form-factors",ii=o+"-"+S,ei=o+"-"+T,ti=o+"-"+q,oi=ti+"-version",ri=[$,W,S,T,q,X,y,_,K],ai="Amazon",t="Apple",si="ASUS",ni="BlackBerry",a="Google",wi="Huawei",bi="Lenovo",di="Honor",li="Microsoft",ci="Motorola",ui="Nvidia",hi="OnePlus",pi="OPPO",mi="Samsung",fi="Sony",gi="Xiaomi",vi="Zebra",ki="Chromium",s="Chromecast",xi="Firefox",b="Opera",yi="Facebook",d="Mobile ",Ci=" Browser",Ti="Windows",z=typeof window!==n&&window.navigator?window.navigator:void 0,O=z&&z.userAgentData?z.userAgentData:void 0,Si=function(i,e){if(typeof i===l&&0<i.length){for(var t in i)if(H(i[t])==H(e))return!0;return!1}return!!A(i)&&-1!==H(e).indexOf(H(i))},_i=function(i,e){for(var t in i)return/^(browser|cpu|device|engine|os)$/.test(t)||!!e&&_i(i[t])},A=function(i){return typeof i===B},qi=function(i){if(i){for(var e,t=[],o=j(/\\?\"/g,i).split(","),r=0;r<o.length;r++)-1<o[r].indexOf(";")?(e=Ai(o[r]).split(";v="),t[r]={brand:e[0],version:e[1]}):t[r]=Ai(o[r]);return t}},H=function(i){return A(i)?i.toLowerCase():i},zi=function(i){return A(i)?j(/[^\d\.]/g,i).split(".")[0]:void 0},N=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},j=function(i,e){return A(e)?e.replace(i,w):e},Oi=function(i){return j(/\\?\"/g,i)},Ai=function(i,e){if(A(i))return i=j(/^\s\s*/,i),typeof e===n?i:i.substring(0,P)},Hi=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}},E=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(Si(e[t][o],i))return t===U?void 0:t}else if(Si(e[t],i))return t===U?void 0:t;return e.hasOwnProperty("*")?e["*"]:i},Ni={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},ji={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Ei={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[x,[g,d+"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[x,[g,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[g,x],[/opios[\/ ]+([\w\.]+)/i],[x,[g,b+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[x,[g,b+" GX"]],[/\bopr\/([\w\.]+)/i],[x,[g,b]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[x,[g,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[x,[g,"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|(?=comodo_)?dragon)\/([-\w\.]+)/i,/(heytap|ovi|115)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[g,x],[/quark(?:pc)?\/([-\w\.]+)/i],[x,[g,"Quark"]],[/\bddg\/([\w\.]+)/i],[x,[g,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[x,[g,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[x,[g,"WeChat"]],[/konqueror\/([\w\.]+)/i],[x,[g,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[x,[g,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[x,[g,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[x,[g,"Smart "+bi+Ci]],[/(avast|avg)\/([\w\.]+)/i],[[g,/(.+)/,"$1 Secure"+Ci],x],[/\bfocus\/([\w\.]+)/i],[x,[g,xi+" Focus"]],[/\bopt\/([\w\.]+)/i],[x,[g,b+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[x,[g,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[x,[g,"Dolphin"]],[/coast\/([\w\.]+)/i],[x,[g,b+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[x,[g,"MIUI"+Ci]],[/fxios\/([\w\.-]+)/i],[x,[g,d+xi]],[/\bqihoobrowser\/?([\w\.]*)/i],[x,[g,"360"]],[/\b(qq)\/([\w\.]+)/i],[[g,/(.+)/,"$1Browser"],x],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[g,/(.+)/,"$1"+Ci],x],[/samsungbrowser\/([\w\.]+)/i],[x,[g,mi+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[x,[g,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[g,"Sogou Mobile"],x],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[g,x],[/(lbbrowser|rekonq)/i],[g],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[x,g],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[g,yi],x,[v,D]],[/(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],[g,x,[v,D]],[/\bgsa\/([\w\.]+) .*safari\//i],[x,[g,"GSA"],[v,D]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[x,[g,"TikTok"],[v,D]],[/\[(linkedin)app\]/i],[g,[v,D]],[/(chromium)[\/ ]([-\w\.]+)/i],[g,x],[/headlesschrome(?:\/([\w\.]+)| )/i],[x,[g,"Chrome Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[g,"Chrome WebView"],x],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[x,[g,"Android"+Ci]],[/chrome\/([\w\.]+) mobile/i],[x,[g,d+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[g,x],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[x,[g,d+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[g,d+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[x,g],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[g,[x,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[g,x],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[g,d+xi],x],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[g,"Netscape"],x],[/(wolvic|librewolf)\/([\w\.]+)/i],[g,x],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[x,[g,xi+" 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],[g,[x,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[g,[x,/[^\d\.]+./,w]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[y,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[y,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[y,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[y,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[y,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[y,/ower/,w,H]],[/ sun4\w[;\)]/i],[[y,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[y,H]]],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],[T,[k,mi],[v,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],[T,[k,mi],[v,S]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[T,[k,t],[v,S]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[T,[k,t],[v,r]],[/(macintosh);/i],[T,[k,t]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[T,[k,"Sharp"],[v,S]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[T,[k,di],[v,r]],[/honor([-\w ]+)[;\)]/i],[T,[k,di],[v,S]],[/\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],[T,[k,wi],[v,r]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[T,[k,wi],[v,S]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[T,/_/g," "],[k,gi],[v,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],[[T,/_/g," "],[k,gi],[v,S]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[T,[k,pi],[v,S]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[T,[k,E,{OnePlus:["304","403","203"],"*":pi}],[v,r]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[T,[k,"Vivo"],[v,S]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[T,[k,"Realme"],[v,S]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[T,[k,ci],[v,S]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[T,[k,ci],[v,r]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[T,[k,"LG"],[v,r]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,/\blg-?([\d\w]+) bui/i],[T,[k,"LG"],[v,S]],[/(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],[T,[k,bi],[v,r]],[/(nokia) (t[12][01])/i],[k,T,[v,r]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[T,/_/g," "],[v,S],[k,"Nokia"]],[/(pixel (c|tablet))\b/i],[T,[k,a],[v,r]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[T,[k,a],[v,S]],[/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],[T,[k,fi],[v,S]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[T,"Xperia Tablet"],[k,fi],[v,r]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[T,[k,hi],[v,S]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[T,[k,ai],[v,r]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[T,/(.+)/g,"Fire Phone $1"],[k,ai],[v,S]],[/(playbook);[-\w\),; ]+(rim)/i],[T,k,[v,r]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[T,[k,ni],[v,S]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[T,[k,si],[v,r]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[T,[k,si],[v,S]],[/(nexus 9)/i],[T,[k,"HTC"],[v,r]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[k,[T,/_/g," "],[v,S]],[/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],[T,[k,"TCL"],[v,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],[T,[k,"TCL"],[v,S]],[/(itel) ((\w+))/i],[[k,H],T,[v,E,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[T,[k,"Acer"],[v,r]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[T,[k,"Meizu"],[v,S]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[T,[k,"Ulefone"],[v,S]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[T,[k,"Energizer"],[v,S]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[T,[k,"Cat"],[v,S]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[T,[k,"Smartfren"],[v,S]],[/droid.+; (a(?:015|06[35]|142p?))/i],[T,[k,"Nothing"],[v,S]],[/(imo) (tab \w+)/i,/(infinix) (x1101b?)/i],[k,T,[v,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],[k,T,[v,S]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[k,T,[v,r]],[/(surface duo)/i],[T,[k,li],[v,r]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[T,[k,"Fairphone"],[v,S]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[T,[k,ui],[v,r]],[/(sprint) (\w+)/i],[k,T,[v,S]],[/(kin\.[onetw]{3})/i],[[T,/\./g," "],[k,li],[v,S]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[T,[k,vi],[v,r]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[T,[k,vi],[v,S]],[/smart-tv.+(samsung)/i],[k,[v,i]],[/hbbtv.+maple;(\d+)/i],[[T,/^/,"SmartTV"],[k,mi],[v,i]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[k,"LG"],[v,i]],[/(apple) ?tv/i],[k,[T,t+" TV"],[v,i]],[/crkey.*devicetype\/chromecast/i],[[T,s+" Third Generation"],[k,a],[v,i]],[/crkey.*devicetype\/([^/]*)/i],[[T,/^/,"Chromecast "],[k,a],[v,i]],[/fuchsia.*crkey/i],[[T,s+" Nest Hub"],[k,a],[v,i]],[/crkey/i],[[T,s],[k,a],[v,i]],[/droid.+aft(\w+)( bui|\))/i],[T,[k,ai],[v,i]],[/(shield \w+ tv)/i],[T,[k,ui],[v,i]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[T,[k,"Sharp"],[v,i]],[/(bravia[\w ]+)( bui|\))/i],[T,[k,fi],[v,i]],[/(mi(tv|box)-?\w+) bui/i],[T,[k,gi],[v,i]],[/Hbbtv.*(technisat) (.*);/i],[k,T,[v,i]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[k,Ai],[T,Ai],[v,i]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[T,[v,i]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[v,i]],[/(ouya)/i,/(nintendo) (\w+)/i],[k,T,[v,G]],[/droid.+; (shield)( bui|\))/i],[T,[k,ui],[v,G]],[/(playstation \w+)/i],[T,[k,fi],[v,G]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[T,[k,li],[v,G]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[T,[k,mi],[v,e]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[k,T,[v,e]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[T,[k,pi],[v,e]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[T,[k,t],[v,e]],[/(opwwe\d{3})/i],[T,[k,hi],[v,e]],[/(moto 360)/i],[T,[k,ci],[v,e]],[/(smartwatch 3)/i],[T,[k,fi],[v,e]],[/(g watch r)/i],[T,[k,"LG"],[v,e]],[/droid.+; (wt63?0{2,3})\)/i],[T,[k,vi],[v,e]],[/droid.+; (glass) \d/i],[T,[k,a],[v,L]],[/(pico) (4|neo3(?: link|pro)?)/i],[k,T,[v,L]],[/; (quest( \d| pro)?)/i],[T,[k,yi],[v,L]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[k,[v,F]],[/(aeobc)\b/i],[T,[k,ai],[v,F]],[/(homepod).+mac os/i],[T,[k,t],[v,F]],[/windows iot/i],[[v,F]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[T,[v,E,{mobile:"Mobile",xr:"VR","*":r}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[v,r]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[v,S]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[T,[k,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[x,[g,"EdgeHTML"]],[/(arkweb)\/([\w\.]+)/i],[g,x],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[x,[g,"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],[g,x],[/ladybird\//i],[[g,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[x,g]],os:[[/microsoft (windows) (vista|xp)/i],[g,x],[/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i],[g,[x,E,Ni]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[x,E,Ni],[g,Ti]],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[x,/_/g,"."],[g,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[g,"macOS"],[x,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[x,[g,s+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[x,[g,s+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[x,[g,s+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[x,[g,s+" Linux"]],[/crkey\/([\d\.]+)/i],[x,[g,s]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[x,g],[/(ubuntu) ([\w\.]+) like android/i],[[g,/(.+)/,"$1 Touch"],x],[/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i],[g,x],[/\(bb(10);/i],[x,[g,ni]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[x,[g,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[x,[g,xi+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[x,[g,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[x,[g,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[g,"Chrome OS"],x],[/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)(?: arm\w*| x86\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[g,x],[/(sunos) ?([\w\.\d]*)/i],[[g,"Solaris"],x],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[g,x]]},Ii=(b={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},N.call(b.init,[[c,[g,x,C,v]],[u,[y]],[h,[v,T,k]],[p,[g,x]],[m,[g,x]]]),N.call(b.isIgnore,[[c,[x,C]],[p,[x]],[m,[x]]]),N.call(b.isIgnoreRgx,[[c,/ ?browser$/i],[m,/ ?os$/i]]),N.call(b.toString,[[c,[g,x]],[u,[y]],[h,[k,T]],[p,[g,x]],[m,[g,x]]]),b),Mi=function(e,i){var t=Ii.init[i],o=Ii.isIgnore[i]||0,r=Ii.isIgnoreRgx[i]||0,a=Ii.toString[i]||0;function s(){N.call(this,t)}return s.prototype.getItem=function(){return e},s.prototype.withClientHints=function(){return O?O.getHighEntropyValues(ri).then(function(i){return e.setCH(new Pi(i,!1)).parseCH().get()}):e.parseCH().get()},s.prototype.withFeatureCheck=function(){return e.detectFeature().get()},i!=f&&(s.prototype.is=function(i){var e,t=!1;for(e in this)if(this.hasOwnProperty(e)&&!Si(o,e)&&H(r?j(r,this[e]):this[e])==H(r?j(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?" ":w)+this[a[i]]);return e||n}),O||(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 Pi(i,e){if(i=i||{},N.call(this,ri),e)N.call(this,[[$,qi(i[o])],[W,qi(i[Q])],[S,/\?1/.test(i[ii])],[T,Oi(i[ei])],[q,Oi(i[ti])],[X,Oi(i[oi])],[y,Oi(i[Y])],[_,qi(i[J])],[K,Oi(i[Z])]]);else for(var t in i)this.hasOwnProperty(t)&&typeof i[t]!==n&&(this[t]=i[t])}function Ri(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(z&&z.userAgent==this.ua)switch(this.itemType){case c:z.brave&&typeof z.brave.isBrave==V&&this.set(g,"Brave");break;case h:!this.get(v)&&O&&O[S]&&this.set(v,S),"Macintosh"==this.get(T)&&z&&typeof z.standalone!==n&&z.maxTouchPoints&&2<z.maxTouchPoints&&this.set(T,"iPad").set(v,r);break;case m:!this.get(g)&&O&&O[q]&&this.set(g,O[q]);break;case f:var e=this.data,i=function(i){return e[i].getItem().detectFeature().get()};this.set(c,i(c)).set(u,i(u)).set(h,i(h)).set(p,i(p)).set(m,i(m))}return this},this.parseUA=function(){return this.itemType!=f&&Hi.call(this.data,this.ua,this.rgxMap),this.itemType==c&&this.set(C,zi(this.get(x))),this},this.parseCH=function(){var i,e=this.uaCH,t=this.rgxMap;switch(this.itemType){case c:case p:var o,r=e[W]||e[$];if(r)for(var a in r){var s=r[a].brand||r[a],a=r[a].version;this.itemType!=c||/not.a.brand/i.test(s)||o&&(!/chrom/i.test(o)||s==ki)||(s=E(s,{Chrome:"Google Chrome",Edge:"Microsoft Edge","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome"}),this.set(g,s).set(x,a).set(C,zi(a)),o=s),this.itemType==p&&s==ki&&this.set(x,a)}break;case u:var n=e[y];n&&("64"==e[K]&&(n+="64"),Hi.call(this.data,n+";",t));break;case h:if(e[S]&&this.set(v,S),e[T]&&(this.set(T,e[T]),this.get(v)&&this.get(k)||(Hi.call(n={},"droid 9; "+e[T]+")",t),!this.get(v)&&n.type&&this.set(v,n.type),!this.get(k)&&n.vendor&&this.set(k,n.vendor))),e[_]){if("string"!=typeof e[_])for(var w=0;!i&&w<e[_].length;)i=E(e[_][w++],ji);else i=E(e[_],ji);this.set(v,i)}break;case m:var b,n=e[q];n&&(b=e[X],n==Ti&&(b=13<=parseInt(zi(b),10)?"11":"10"),this.set(g,n).set(x,b)),this.get(g)==Ti&&"Xbox"==e[T]&&this.set(g,"Xbox").set(x,void 0);break;case f:var d=this.data,n=function(i){return d[i].getItem().setCH(e).parseCH().get()};this.set(c,n(c)).set(u,n(u)).set(h,n(h)).set(p,n(p)).set(m,n(m))}return this},N.call(this,[["itemType",i],["ua",e],["uaCH",o],["rgxMap",t],["data",Mi(this,i)]]),this}function I(i,e,t){var o,r,a,s,n;return typeof i===l?(e=_i(i,!0)?(typeof e===l&&(t=e),i):void(t=i),i=void 0):typeof i!==B||_i(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 I?(r=typeof i===B?i:t&&t[R]?t[R]:z&&z.userAgent?z.userAgent:w,a=new Pi(t,!0),s=e?((i,e)=>{var t,o={},r=e;if(!_i(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})(Ei,e):Ei,N.call(this,[["getBrowser",(n=function(i){return i==f?function(){return new Ri(i,r,s,a).set("ua",r).set(c,this.getBrowser()).set(u,this.getCPU()).set(h,this.getDevice()).set(p,this.getEngine()).set(m,this.getOS()).get()}:function(){return new Ri(i,r,s[i],a).parseUA().get()}})(c)],["getCPU",n(u)],["getDevice",n(h)],["getEngine",n(p)],["getOS",n(m)],["getResult",n(f)],["getUA",function(){return r}],["setUA",function(i){return A(i)&&(r=i.length>P?Ai(i,P):i),this}]]).setUA(r),this):new I(i,e,t).getResult()}I.VERSION="2.0.2",I.BROWSER=M([g,x,C,v]),I.CPU=M([y]),I.DEVICE=M([T,k,v,G,S,i,r,e,F]),I.ENGINE=I.OS=M([g,x]);export{I as UAParser};
4
+ function I(i){for(var e={},o=0;o<i.length;o++)e[i[o].toUpperCase()]=i[o];return e}var B=500,P="user-agent",w="",U="?",L="function",n="undefined",l="object",R="string",c="browser",u="cpu",h="device",p="engine",m="os",f="result",g="name",v="type",k="vendor",x="version",y="architecture",C="major",S="model",G="console",_="mobile",r="tablet",i="smarttv",e="wearable",W="xr",N="embedded",F="inapp",D="brands",q="formFactors",$="fullVersionList",z="platform",X="platformVersion",Y="bitness",t="sec-ch-ua",K=t+"-full-version-list",Q=t+"-arch",Z=t+"-"+Y,J=t+"-form-factors",ii=t+"-"+_,ei=t+"-"+S,oi=t+"-"+z,ti=oi+"-version",ri=[D,$,_,S,z,X,y,q,Y],ai="Amazon",o="Apple",si="ASUS",ni="BlackBerry",a="Google",wi="Huawei",bi="Lenovo",di="Honor",li="Microsoft",ci="Motorola",ui="Nvidia",hi="OnePlus",pi="OPPO",mi="Samsung",fi="Sony",gi="Xiaomi",vi="Zebra",ki="Chromium",s="Chromecast",xi="Edge",yi="Firefox",b="Opera",Ci="Facebook",d="Mobile ",Si=" Browser",_i="Windows",T=typeof window!==n&&window.navigator?window.navigator:void 0,O=T&&T.userAgentData?T.userAgentData:void 0,qi=function(i,e){if(typeof i===l&&0<i.length){for(var o in i)if(M(e)==M(i[o]))return!0;return!1}return!!H(i)&&M(e)==M(i)},zi=function(i,e){for(var o in i)return/^(browser|cpu|device|engine|os)$/.test(o)||!!e&&zi(i[o])},H=function(i){return typeof i===R},Ti=function(i){if(i){for(var e,o=[],t=j(/\\?\"/g,i).split(","),r=0;r<t.length;r++)-1<t[r].indexOf(";")?(e=Mi(t[r]).split(";v="),o[r]={brand:e[0],version:e[1]}):o[r]=Mi(t[r]);return o}},M=function(i){return H(i)?i.toLowerCase():i},Oi=function(i){return H(i)?j(/[^\d\.]/g,i).split(".")[0]:void 0},A=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},j=function(i,e){return H(e)?e.replace(i,w):e},Hi=function(i){return j(/\\?\"/g,i)},Mi=function(i,e){if(H(i))return i=j(/^\s\s*/,i),typeof e===n?i:i.substring(0,B)},Ai=function(i,e){if(i&&e)for(var o,t,r,a,s,n=0;n<e.length&&!a;){for(var w=e[n],b=e[n+1],d=o=0;d<w.length&&!a&&w[d];)if(a=w[d++].exec(i))for(t=0;t<b.length;t++)s=a[++o],typeof(r=b[t])===l&&0<r.length?2===r.length?typeof r[1]==L?this[r[0]]=r[1].call(this,s):this[r[0]]=r[1]:3<=r.length&&(typeof r[1]!==L||r[1].exec&&r[1].test?3==r.length?this[r[0]]=s?s.replace(r[1],r[2]):void 0:4==r.length?this[r[0]]=s?r[3].call(this,s.replace(r[1],r[2])):void 0:4<r.length&&(this[r[0]]=s?r[3].apply(this,[s.replace(r[1],r[2])].concat(r.slice(4))):void 0):3<r.length?this[r[0]]=s?r[1].apply(this,r.slice(2)):void 0:this[r[0]]=s?r[1].call(this,s,r[2]):void 0):this[r]=s||void 0;n+=2}},E=function(i,e){for(var o in e)if(typeof e[o]===l&&0<e[o].length){for(var t=0;t<e[o].length;t++)if(qi(e[o][t],i))return o===U?void 0:o}else if(qi(e[o],i))return o===U?void 0:o;return e.hasOwnProperty("*")?e["*"]:i},ji={ME:"4.90","NT 3.51":"3.51","NT 4.0":"4.0",2e3:["5.0","5.01"],XP:["5.1","5.2"],Vista:"6.0",7:"6.1",8:"6.2",8.1:"6.3",10:["6.4","10.0"],NT:""},Ei={embedded:"Automotive",mobile:"Mobile",tablet:["Tablet","EInk"],smarttv:"TV",wearable:"Watch",xr:["VR","XR"],"?":["Desktop","Unknown"],"*":void 0},Vi={Chrome:"Google Chrome",Edge:"Microsoft Edge","Edge WebView2":"Microsoft Edge WebView2","Chrome WebView":"Android WebView","Chrome Headless":"HeadlessChrome","Huawei Browser":"HuaweiBrowser","MIUI Browser":"Miui Browser","Opera Mobi":"OperaMobile",Yandex:"YaBrowser"},Ii={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[x,[g,d+"Chrome"]],[/webview.+edge\/([\w\.]+)/i],[x,[g,xi+" WebView"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[x,[g,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[g,x],[/opios[\/ ]+([\w\.]+)/i],[x,[g,b+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[x,[g,b+" GX"]],[/\bopr\/([\w\.]+)/i],[x,[g,b]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[x,[g,"Baidu"]],[/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i],[x,[g,"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|(?=comodo_)?dragon|otter|dooble|(?:lg |qute)browser)\/([-\w\.]+)/i,/(heytap|ovi|115|surf)browser\/([\d\.]+)/i,/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i],[g,x],[/quark(?:pc)?\/([-\w\.]+)/i],[x,[g,"Quark"]],[/\bddg\/([\w\.]+)/i],[x,[g,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[x,[g,"UCBrowser"]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[x,[g,"WeChat"]],[/konqueror\/([\w\.]+)/i],[x,[g,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[x,[g,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[x,[g,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[x,[g,"Smart "+bi+Si]],[/(avast|avg)\/([\w\.]+)/i],[[g,/(.+)/,"$1 Secure"+Si],x],[/\bfocus\/([\w\.]+)/i],[x,[g,yi+" Focus"]],[/\bopt\/([\w\.]+)/i],[x,[g,b+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[x,[g,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[x,[g,"Dolphin"]],[/coast\/([\w\.]+)/i],[x,[g,b+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[x,[g,"MIUI"+Si]],[/fxios\/([\w\.-]+)/i],[x,[g,d+yi]],[/\bqihoobrowser\/?([\w\.]*)/i],[x,[g,"360"]],[/\b(qq)\/([\w\.]+)/i],[[g,/(.+)/,"$1Browser"],x],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[g,/(.+)/,"$1"+Si],x],[/samsungbrowser\/([\w\.]+)/i],[x,[g,mi+" Internet"]],[/metasr[\/ ]?([\d\.]+)/i],[x,[g,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[g,"Sogou Mobile"],x],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i],[g,x],[/(lbbrowser|rekonq)/i],[g],[/ome\/([\w\.]+) \w* ?(iron) saf/i,/ome\/([\w\.]+).+qihu (360)[es]e/i],[x,g],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[g,Ci],x,[v,F]],[/(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|klarna)[\/ ]([-\w\.]+)/i],[g,x,[v,F]],[/\bgsa\/([\w\.]+) .*safari\//i],[x,[g,"GSA"],[v,F]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[x,[g,"TikTok"],[v,F]],[/\[(linkedin)app\]/i],[g,[v,F]],[/(chromium)[\/ ]([-\w\.]+)/i],[g,x],[/headlesschrome(?:\/([\w\.]+)| )/i],[x,[g,"Chrome Headless"]],[/wv\).+chrome\/([\w\.]+).+edgw\//i],[x,[g,xi+" WebView2"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[g,"Chrome WebView"],x],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[x,[g,"Android"+Si]],[/chrome\/([\w\.]+) mobile/i],[x,[g,d+"Chrome"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[g,x],[/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i],[x,[g,d+"Safari"]],[/iphone .*mobile(?:\/\w+ | ?)safari/i],[[g,d+"Safari"]],[/version\/([\w\.\,]+) .*(safari)/i],[x,g],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[g,[x,"1"]],[/(webkit|khtml)\/([\w\.]+)/i],[g,x],[/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i],[[g,d+yi],x],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[g,"Netscape"],x],[/(wolvic|librewolf)\/([\w\.]+)/i],[g,x],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[x,[g,yi+" 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],[g,[x,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[g,[x,/[^\d\.]+./,w]]],cpu:[[/\b((amd|x|x86[-_]?|wow|win)64)\b/i],[[y,"amd64"]],[/(ia32(?=;))/i,/\b((i[346]|x)86)(pc)?\b/i],[[y,"ia32"]],[/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i],[[y,"arm64"]],[/\b(arm(v[67])?ht?n?[fl]p?)\b/i],[[y,"armhf"]],[/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i],[[y,"arm"]],[/((ppc|powerpc)(64)?)( mac|;|\))/i],[[y,/ower/,w,M]],[/ sun4\w[;\)]/i],[[y,"sparc"]],[/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i],[[y,M]]],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,[k,mi],[v,r]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,/sec-(sgh\w+)/i],[S,[k,mi],[v,_]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[S,[k,o],[v,_]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[S,[k,o],[v,r]],[/(macintosh);/i],[S,[k,o]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[S,[k,"Sharp"],[v,_]],[/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i],[S,[k,di],[v,r]],[/honor([-\w ]+)[;\)]/i],[S,[k,di],[v,_]],[/\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,[k,wi],[v,r]],[/(?:huawei)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[S,[k,wi],[v,_]],[/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i],[[S,/_/g," "],[k,gi],[v,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,/_/g," "],[k,gi],[v,_]],[/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-k]\w[1m]10)\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[S,[k,hi],[v,_]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[S,[k,pi],[v,_]],[/\b(opd2(\d{3}a?))(?: bui|\))/i],[S,[k,E,{OnePlus:["203","304","403","404","413","415"],"*":pi}],[v,r]],[/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i],[S,[k,"BLU"],[v,_]],[/; vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[S,[k,"Vivo"],[v,_]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[S,[k,"Realme"],[v,_]],[/(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,[k,bi],[v,r]],[/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i],[S,[k,bi],[v,_]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i],[S,[k,ci],[v,_]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[S,[k,ci],[v,r]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[S,[k,"LG"],[v,r]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,/\blg-?([\d\w]+) bui/i],[S,[k,"LG"],[v,_]],[/(nokia) (t[12][01])/i],[k,S,[v,r]],[/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,/nokia[-_ ]?(([-\w\. ]*))/i],[[S,/_/g," "],[v,_],[k,"Nokia"]],[/(pixel (c|tablet))\b/i],[S,[k,a],[v,r]],[/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i],[S,[k,a],[v,_]],[/(google) (pixelbook( go)?)/i],[k,S],[/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[S,[k,fi],[v,_]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[S,"Xperia Tablet"],[k,fi],[v,r]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[S,[k,ai],[v,r]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[S,/(.+)/g,"Fire Phone $1"],[k,ai],[v,_]],[/(playbook);[-\w\),; ]+(rim)/i],[S,k,[v,r]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[S,[k,ni],[v,_]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[S,[k,si],[v,r]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[S,[k,si],[v,_]],[/(nexus 9)/i],[S,[k,"HTC"],[v,r]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[k,[S,/_/g," "],[v,_]],[/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,[k,"TCL"],[v,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,[k,"TCL"],[v,_]],[/(itel) ((\w+))/i],[[k,M],S,[v,E,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[S,[k,"Acer"],[v,r]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[S,[k,"Meizu"],[v,_]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[S,[k,"Ulefone"],[v,_]],[/; (energy ?\w+)(?: bui|\))/i,/; energizer ([\w ]+)(?: bui|\))/i],[S,[k,"Energizer"],[v,_]],[/; cat (b35);/i,/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i],[S,[k,"Cat"],[v,_]],[/((?:new )?andromax[\w- ]+)(?: bui|\))/i],[S,[k,"Smartfren"],[v,_]],[/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i],[S,[k,"Nothing"],[v,_]],[/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i],[S,[k,"Archos"],[v,r]],[/archos ([\w ]+)( b|\))/i,/; (ac[3-6]\d\w{2,8})( b|\))/i],[S,[k,"Archos"],[v,_]],[/; (n159v)/i],[S,[k,"HMD"],[v,_]],[/(imo) (tab \w+)/i,/(infinix|tecno) (x1101b?|p904|dp(7c|8d|10a)( pro)?|p70[1-3]a?|p904|t1101)/i],[k,S,[v,r]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|tecno|micromax|advan)[-_ ]?([-\w]*)/i,/; (blu|hmd|imo|infinix|lava|oneplus|tcl)[_ ]([\w\+ ]+?)(?: bui|\)|; r)/i,/(hp) ([\w ]+\w)/i,/(microsoft); (lumia[\w ]+)/i,/(oppo) ?([\w ]+) bui/i],[k,S,[v,_]],[/(kobo)\s(ereader|touch)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i],[k,S,[v,r]],[/(surface duo)/i],[S,[k,li],[v,r]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[S,[k,"Fairphone"],[v,_]],[/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i],[S,[k,ui],[v,r]],[/(sprint) (\w+)/i],[k,S,[v,_]],[/(kin\.[onetw]{3})/i],[[S,/\./g," "],[k,li],[v,_]],[/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[S,[k,vi],[v,r]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[S,[k,vi],[v,_]],[/smart-tv.+(samsung)/i],[k,[v,i]],[/hbbtv.+maple;(\d+)/i],[[S,/^/,"SmartTV"],[k,mi],[v,i]],[/(vizio)(?: |.+model\/)(\w+-\w+)/i,/tcast.+(lg)e?. ([-\w]+)/i],[k,S,[v,i]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[k,"LG"],[v,i]],[/(apple) ?tv/i],[k,[S,o+" TV"],[v,i]],[/crkey.*devicetype\/chromecast/i],[[S,s+" Third Generation"],[k,a],[v,i]],[/crkey.*devicetype\/([^/]*)/i],[[S,/^/,"Chromecast "],[k,a],[v,i]],[/fuchsia.*crkey/i],[[S,s+" Nest Hub"],[k,a],[v,i]],[/crkey/i],[[S,s],[k,a],[v,i]],[/(portaltv)/i],[S,[k,Ci],[v,i]],[/droid.+aft(\w+)( bui|\))/i],[S,[k,ai],[v,i]],[/(shield \w+ tv)/i],[S,[k,ui],[v,i]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[S,[k,"Sharp"],[v,i]],[/(bravia[\w ]+)( bui|\))/i],[S,[k,fi],[v,i]],[/(mi(tv|box)-?\w+) bui/i],[S,[k,gi],[v,i]],[/Hbbtv.*(technisat) (.*);/i],[k,S,[v,i]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[k,/.+\/(\w+)/,"$1",E,{LG:"lge"}],[S,Mi],[v,i]],[/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i],[S,[v,i]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:|large screen[\w ]+safari)\b/i],[[v,i]],[/(playstation \w+)/i],[S,[k,fi],[v,G]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[S,[k,li],[v,G]],[/(ouya)/i,/(nintendo) (\w+)/i,/(retroid) (pocket ([^\)]+))/i],[k,S,[v,G]],[/droid.+; (shield)( bui|\))/i],[S,[k,ui],[v,G]],[/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i],[S,[k,mi],[v,e]],[/((pebble))app/i,/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i],[k,S,[v,e]],[/(ow(?:19|20)?we?[1-3]{1,3})/i],[S,[k,pi],[v,e]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[S,[k,o],[v,e]],[/(opwwe\d{3})/i],[S,[k,hi],[v,e]],[/(moto 360)/i],[S,[k,ci],[v,e]],[/(smartwatch 3)/i],[S,[k,fi],[v,e]],[/(g watch r)/i],[S,[k,"LG"],[v,e]],[/droid.+; (wt63?0{2,3})\)/i],[S,[k,vi],[v,e]],[/droid.+; (glass) \d/i],[S,[k,a],[v,W]],[/(pico) (4|neo3(?: link|pro)?)/i],[k,S,[v,W]],[/(quest( \d| pro)?s?).+vr/i],[S,[k,Ci],[v,W]],[/mobile vr; rv.+firefox/i],[[v,W]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[k,[v,N]],[/(aeobc)\b/i],[S,[k,ai],[v,N]],[/(homepod).+mac os/i],[S,[k,o],[v,N]],[/windows iot/i],[[v,N]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+?(mobile|vr|\d) safari/i],[S,[v,E,{mobile:"Mobile",xr:"VR","*":r}]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[v,r]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[v,_]],[/droid .+?; ([\w\. -]+)( bui|\))/i],[S,[k,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[x,[g,xi+"HTML"]],[/(arkweb)\/([\w\.]+)/i],[g,x],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[x,[g,"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],[g,x],[/ladybird\//i],[[g,"LibWeb"]],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[x,g]],os:[[/(windows nt) (6\.[23]); arm/i],[[g,/N/,"R"],[x,E,ji]],[/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i],[g,x],[/windows nt ?([\d\.\)]*)(?!.+xbox)/i,/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i],[[x,/(;|\))/g,"",E,ji],[g,_i]],[/(windows ce)\/?([\d\.]*)/i],[g,x],[/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[x,/_/g,"."],[g,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i],[[g,"macOS"],[x,/_/g,"."]],[/android ([\d\.]+).*crkey/i],[x,[g,s+" Android"]],[/fuchsia.*crkey\/([\d\.]+)/i],[x,[g,s+" Fuchsia"]],[/crkey\/([\d\.]+).*devicetype\/smartspeaker/i],[x,[g,s+" SmartSpeaker"]],[/linux.*crkey\/([\d\.]+)/i],[x,[g,s+" Linux"]],[/crkey\/([\d\.]+)/i],[x,[g,s]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[x,g],[/(ubuntu) ([\w\.]+) like android/i],[[g,/(.+)/,"$1 Touch"],x],[/(harmonyos)[\/ ]?([\d\.]*)/i,/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i],[g,x],[/\(bb(10);/i],[x,[g,ni]],[/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i],[x,[g,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[x,[g,yi+" OS"]],[/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i],[x,[g,"webOS"]],[/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i],[[x,E,{25:"120",24:"108",23:"94",22:"87",6:"79",5:"68",4:"53",3:"38",2:"538",1:"537","*":"TV"}],[g,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[x,[g,"watchOS"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[g,"Chrome OS"],x],[/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,/linux.+(mint)[\/\(\) ]?([\w\.]*)/i,/(mageia|vectorlinux|fuchsia|arcaos|arch(?= ?linux))[;l ]([\d\.]*)/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire|knoppix)(?: gnu[\/ ]linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/\b(aix)[; ]([1-9\.]{0,4})/i,/(hurd|linux|morphos)(?: (?:arm|x86|ppc)\w*| ?)([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) ?(r\d)?/i],[g,x],[/(sunos) ?([\d\.]*)/i],[[g,"Solaris"],x],[/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[g,x]]},Bi=(b={init:{},isIgnore:{},isIgnoreRgx:{},toString:{}},A.call(b.init,[[c,[g,x,C,v]],[u,[y]],[h,[v,S,k]],[p,[g,x]],[m,[g,x]]]),A.call(b.isIgnore,[[c,[x,C]],[p,[x]],[m,[x]]]),A.call(b.isIgnoreRgx,[[c,/ ?browser$/i],[m,/ ?os$/i]]),A.call(b.toString,[[c,[g,x]],[u,[y]],[h,[k,S]],[p,[g,x]],[m,[g,x]]]),b),Pi=function(e,i){var o=Bi.init[i],t=Bi.isIgnore[i]||0,r=Bi.isIgnoreRgx[i]||0,a=Bi.toString[i]||0;function s(){A.call(this,o)}return s.prototype.getItem=function(){return e},s.prototype.withClientHints=function(){return O?O.getHighEntropyValues(ri).then(function(i){return e.setCH(new Ui(i,!1)).parseCH().get()}):e.parseCH().get()},s.prototype.withFeatureCheck=function(){return e.detectFeature().get()},i!=f&&(s.prototype.is=function(i){var e,o=!1;for(e in this)if(this.hasOwnProperty(e)&&!qi(t,e)&&M(r?j(r,this[e]):this[e])==M(r?j(r,i):i)){if(o=!0,i!=n)break}else if(i==n&&o){o=!o;break}return o},s.prototype.toString=function(){var i,e=w;for(i in a)typeof this[a[i]]!==n&&(e+=(e?" ":w)+this[a[i]]);return e||n}),O||(s.prototype.then=function(i){function e(){for(var i in o)o.hasOwnProperty(i)&&(this[i]=o[i])}var o=this,t=(e.prototype={is:s.prototype.is,toString:s.prototype.toString},new e);return i(t),t}),new s};function Ui(i,e){if(i=i||{},A.call(this,ri),e)A.call(this,[[D,Ti(i[t])],[$,Ti(i[K])],[_,/\?1/.test(i[ii])],[S,Hi(i[ei])],[z,Hi(i[oi])],[X,Hi(i[ti])],[y,Hi(i[Q])],[q,Ti(i[J])],[Y,Hi(i[Z])]]);else for(var o in i)this.hasOwnProperty(o)&&typeof i[o]!==n&&(this[o]=i[o])}function Li(i,e,o,t){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(T&&T.userAgent==this.ua)switch(this.itemType){case c:T.brave&&typeof T.brave.isBrave==L&&this.set(g,"Brave");break;case h:!this.get(v)&&O&&O[_]&&this.set(v,_),"Macintosh"==this.get(S)&&T&&typeof T.standalone!==n&&T.maxTouchPoints&&2<T.maxTouchPoints&&this.set(S,"iPad").set(v,r);break;case m:!this.get(g)&&O&&O[z]&&this.set(g,O[z]);break;case f:var e=this.data,i=function(i){return e[i].getItem().detectFeature().get()};this.set(c,i(c)).set(u,i(u)).set(h,i(h)).set(p,i(p)).set(m,i(m))}return this},this.parseUA=function(){return this.itemType!=f&&Ai.call(this.data,this.ua,this.rgxMap),this.itemType==c&&this.set(C,Oi(this.get(x))),this},this.parseCH=function(){var i,e=this.uaCH,o=this.rgxMap;switch(this.itemType){case c:case p:var t,r=e[$]||e[D];if(r)for(var a in r){var s=r[a].brand||r[a],a=r[a].version;this.itemType==c&&!/not.a.brand/i.test(s)&&(!t||/Chrom/.test(t)&&s!=ki||t==xi&&/WebView2/.test(s))&&(s=E(s,Vi),(t=this.get(g))&&!/Chrom/.test(t)&&/Chrom/.test(s)||this.set(g,s).set(x,a).set(C,Oi(a)),t=s),this.itemType==p&&s==ki&&this.set(x,a)}break;case u:var n=e[y];n&&("64"==e[Y]&&(n+="64"),Ai.call(this.data,n+";",o));break;case h:if(e[_]&&this.set(v,_),e[S]&&(this.set(S,e[S]),this.get(v)&&this.get(k)||(Ai.call(n={},"droid 9; "+e[S]+")",o),!this.get(v)&&n.type&&this.set(v,n.type),!this.get(k)&&n.vendor&&this.set(k,n.vendor))),e[q]){if("string"!=typeof e[q])for(var w=0;!i&&w<e[q].length;)i=E(e[q][w++],Ei);else i=E(e[q],Ei);this.set(v,i)}break;case m:var b,n=e[z];n&&(b=e[X],n==_i&&(b=13<=parseInt(Oi(b),10)?"11":"10"),this.set(g,n).set(x,b)),this.get(g)==_i&&"Xbox"==e[S]&&this.set(g,"Xbox").set(x,void 0);break;case f:var d=this.data,n=function(i){return d[i].getItem().setCH(e).parseCH().get()};this.set(c,n(c)).set(u,n(u)).set(h,n(h)).set(p,n(p)).set(m,n(m))}return this},A.call(this,[["itemType",i],["ua",e],["uaCH",t],["rgxMap",o],["data",Pi(this,i)]]),this}function V(i,e,o){var t,r,a,s,n;return typeof i===l?(e=zi(i,!0)?(typeof e===l&&(o=e),i):void(o=i),i=void 0):typeof i!==R||zi(e,!0)||(o=e,e=void 0),o&&typeof o.append===L&&(t={},o.forEach(function(i,e){t[e]=i}),o=t),this instanceof V?(r=typeof i===R?i:o&&o[P]?o[P]:T&&T.userAgent?T.userAgent:w,a=new Ui(o,!0),s=e?((i,e)=>{var o,t={},r=e;if(!zi(e))for(var a in r={},e)for(var s in e[a])r[s]=e[a][s].concat(r[s]||[]);for(o in i)t[o]=r[o]&&r[o].length%2==0?r[o].concat(i[o]):i[o];return t})(Ii,e):Ii,A.call(this,[["getBrowser",(n=function(i){return i==f?function(){return new Li(i,r,s,a).set("ua",r).set(c,this.getBrowser()).set(u,this.getCPU()).set(h,this.getDevice()).set(p,this.getEngine()).set(m,this.getOS()).get()}:function(){return new Li(i,r,s[i],a).parseUA().get()}})(c)],["getCPU",n(u)],["getDevice",n(h)],["getEngine",n(p)],["getOS",n(m)],["getResult",n(f)],["getUA",function(){return r}],["setUA",function(i){return H(i)&&(r=i.length>B?Mi(i,B):i),this}]]).setUA(r),this):new V(i,e,o).getResult()}V.VERSION="2.0.4",V.BROWSER=I([g,x,C,v]),V.CPU=I([y]),V.DEVICE=I([S,k,v,G,_,i,r,e,N]),V.ENGINE=V.OS=I([g,x]);export{V as UAParser};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "title": "UAParser.js",
3
3
  "name": "ua-parser-js",
4
- "version": "2.0.2",
4
+ "version": "2.0.4",
5
5
  "author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
6
6
  "description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
7
7
  "keywords": [
@@ -25,14 +25,17 @@
25
25
  "contributors": [
26
26
  "Aamir Poonawalla <aamir@urx.com>",
27
27
  "Admas <mollases@users.noreply.github.com>",
28
+ "Aiyush <aiyushdhar85@gmail.com>",
28
29
  "algenon <m@antonz.ru>",
29
30
  "Alvin Portillo <alvin@8thwall.com>",
30
31
  "Amumu <yoyo837@hotmail.com>",
32
+ "Andreas Kogler <andreas.kogler@bitmovin.com>",
31
33
  "Andrea Vaghi <andrea.vaghi@jobrapido.com>",
32
34
  "Anton Zhiyanov <m@antonz.ru>",
33
35
  "Arturo Mejia <amejia@blim.com>",
34
36
  "Arun Rama Reddy <arunramareddy@gmail.com>",
35
37
  "Austin Pray <austin@austinpray.com>",
38
+ "Beat YT <66485277+Beat-YT@users.noreply.github.com>",
36
39
  "Bendeguz <symunona@gmail.com>",
37
40
  "Benjamin Bertrand <bertrand.design@gmail.com>",
38
41
  "Benjamin Urban <benjamin.urban@sueddeutsche.de>",
@@ -44,6 +47,8 @@
44
47
  "chenyuan-new <53860479+chenyuan-new@users.noreply.github.com>",
45
48
  "Christopher De Cairos <chris.decairos@gmail.com>",
46
49
  "Cyrille David <cyrille@qonto.eu>",
50
+ "Dai Jie <daijie@php.net>",
51
+ "Danila Rodichkin <daniluk4000@outlook.com>",
47
52
  "Dante <duanjl.china@gmail.com>",
48
53
  "Dario Vladovic <d.vladimyr@gmail.com>",
49
54
  "David Annez <david.annez@gmail.com>",
@@ -73,11 +78,15 @@
73
78
  "Grigory Dmitrenko <grigory@snsk.ru>",
74
79
  "gulpin <gulping.gulpin@gmail.com>",
75
80
  "Hans Ott <hansott@hotmail.be>",
81
+ "Harald Reingruber <74898239+haraldreingruber-dedalus@users.noreply.github.com>",
76
82
  "Hendrik Helwich <h.helwich@iplabs.de>",
77
83
  "Hermann Ebert <ebbmo@HE.local>",
78
84
  "hr6r <hedian@gmail.com>",
85
+ "Hyewon Kang <gpffps369@gmail.com>",
86
+ "Hyunbin <47051820+hyunbinseo@users.noreply.github.com>",
79
87
  "Igor Topal <i.topal@smartweb.com.ua>",
80
88
  "Ildar Kamalov <i.kamalov@adguard.com>",
89
+ "Ilya Daraseliya <idarase@gmail.com>",
81
90
  "insanehong <insane.hong@navercorp.com>",
82
91
  "jackpoll <jackpoll123456@gmail.com>",
83
92
  "Jacky Choo <jackychoo@adly-macbook.local>",
@@ -98,6 +107,7 @@
98
107
  "Liam Quinn <lquinn@blackberry.com>",
99
108
  "Lithin <lithin@webklipper.com>",
100
109
  "liujunlve <liujunlve@henhaoji.com>",
110
+ "lj0812 <xoyljlj@163.com>",
101
111
  "ll-syber <670159357@qq.com>",
102
112
  "Loris Guignard <loris.guignard@gmail.com>",
103
113
  "Lukas Drgon <lukas.drgon@gmail.com>",
@@ -111,6 +121,7 @@
111
121
  "Max Maurer <maxemanuel.maurer@gmail.com>",
112
122
  "Max Nordlund <max.nordlund@gmail.com>",
113
123
  "Michael Hess <mhess@connectify.me>",
124
+ "Mike <mikehuebner@me.com>",
114
125
  "MimyyK <michele.marais@hakisa.com>",
115
126
  "Mok <mok@moekm.com>",
116
127
  "nabetama <mao.nabeta@gmail.com>",
@@ -124,6 +135,7 @@
124
135
  "o.drapeza <o.drapeza@tinkoff.ru>",
125
136
  "Oscar Becerra <oscarbecerra@google.com>",
126
137
  "otakuSiD <otakusid@gmail.com>",
138
+ "Pablo Osés <opablo@gmail.com>",
127
139
  "Paris Morgan <paris@8thwall.com>",
128
140
  "patrick-nurt <github@pereira.dk>",
129
141
  "Pavel Studeny <studeny@avast.com>",
@@ -209,7 +221,7 @@
209
221
  "test:jshint": "jshint src/main",
210
222
  "test:lockfile-lint": "npx lockfile-lint -p package-lock.json",
211
223
  "test:mocha": "mocha test/unit",
212
- "test:playwright": "playwright test test/e2e --browser all"
224
+ "test:playwright": "npx playwright install && playwright test test/e2e --browser all"
213
225
  },
214
226
  "dependencies": {
215
227
  "detect-europe-js": "^0.1.2",
@@ -221,7 +233,6 @@
221
233
  "devDependencies": {
222
234
  "@babel/parser": "7.15.8",
223
235
  "@babel/traverse": "7.23.2",
224
- "@jazzer.js/core": "^1.4.0",
225
236
  "@playwright/test": "^1.49.0",
226
237
  "jshint": "~2.13.6",
227
238
  "mocha": "~8.2.0",
@@ -1,4 +1,4 @@
1
- // Type definitions for Enums submodule of UAParser.js v2.0.2
1
+ // Type definitions for Enums submodule of UAParser.js v2.0.4
2
2
  // Project: https://github.com/faisalman/ua-parser-js
3
3
  // Definitions by: Faisal Salman <https://github.com/faisalman>
4
4
 
@@ -32,10 +32,14 @@ export const Browser: Readonly<{
32
32
  DAUM: "Daum";
33
33
  DILLO: "Dillo";
34
34
  DOLPHIN: "Dolphin";
35
+ DOOBLE: 'Dooble',
35
36
  DORIS: "Doris";
36
37
  DRAGON: "Dragon";
37
38
  DUCKDUCKGO: "DuckDuckGo";
39
+ ECOSIA: "Ecosia";
38
40
  EDGE: "Edge";
41
+ EDGE_WEBVIEW: "Edge WebView";
42
+ EDGE_WEBVIEW2: "Edge WebView2";
39
43
  EPIPHANY: "Epiphany";
40
44
  FACEBOOK: "Facebook";
41
45
  FALKON: "Falkon";
@@ -73,6 +77,7 @@ export const Browser: Readonly<{
73
77
  KINDLE: "Kindle";
74
78
  LENOVO: "Smart Lenovo Browser";
75
79
  LADYBIRD: "Ladybird";
80
+ LG: "LG Browser";
76
81
  LIBREWOLF: "LibreWolf";
77
82
  LIEBAO: "LBBROWSER";
78
83
  LINE: "Line";
@@ -97,10 +102,12 @@ export const Browser: Readonly<{
97
102
  OMNIWEB: "OmniWeb";
98
103
  OPERA: "Opera";
99
104
  OPERA_COAST: "Opera Coast";
105
+ OPERA_GX: "Opera GX",
100
106
  OPERA_MINI: "Opera Mini";
101
107
  OPERA_MOBI: "Opera Mobi";
102
108
  OPERA_TABLET: "Opera Tablet";
103
109
  OPERA_TOUCH: "Opera Touch";
110
+ OTTER: "Otter";
104
111
  OVI: "OviBrowser";
105
112
  PALEMOON: "PaleMoon";
106
113
  PHANTOMJS: "PhantomJS";
@@ -112,6 +119,7 @@ export const Browser: Readonly<{
112
119
  QQ_LITE: "QQBrowserLite";
113
120
  QUARK: "Quark";
114
121
  QUPZILLA: "QupZilla";
122
+ QUTEBROWSER: "qutebrowser";
115
123
  REKONQ: "rekonq";
116
124
  ROCKMELT: "Rockmelt";
117
125
  SAFARI: "Safari";
@@ -128,6 +136,7 @@ export const Browser: Readonly<{
128
136
  SNAPCHAT: "Snapchat";
129
137
  SOGOU_EXPLORER: "Sogou Explorer";
130
138
  SOGOU_MOBILE: "Sogou Mobile";
139
+ SURF: "Surf";
131
140
  SWIFTFOX: "Swiftfox";
132
141
  TESLA: "Tesla";
133
142
  TIKTOK: "TikTok";
@@ -195,6 +204,7 @@ export const Vendor: Readonly<{
195
204
  ATT: "AT&T";
196
205
  BENQ: "BenQ";
197
206
  BLACKBERRY: "BlackBerry";
207
+ BLU: "BLU";
198
208
  CAT: "Cat";
199
209
  DELL: "Dell";
200
210
  ENERGIZER: "Energizer";
@@ -213,6 +223,7 @@ export const Vendor: Readonly<{
213
223
  ITEL: "itel";
214
224
  JOLLA: "Jolla";
215
225
  KOBO: "Kobo";
226
+ LAVA: "Lava";
216
227
  LENOVO: "Lenovo";
217
228
  LG: "LG";
218
229
  MEIZU: "Meizu";
@@ -233,6 +244,7 @@ export const Vendor: Readonly<{
233
244
  PICO: "Pico";
234
245
  POLYTRON: "Polytron";
235
246
  REALME: "Realme";
247
+ RETROID: "Retroid";
236
248
  RIM: "RIM";
237
249
  ROKU: "Roku";
238
250
  SAMSUNG: "Samsung";
@@ -247,6 +259,7 @@ export const Vendor: Readonly<{
247
259
  TESLA: "Tesla";
248
260
  ULEFONE: "Ulefone";
249
261
  VIVO: "Vivo";
262
+ VIZIO: "Vizio";
250
263
  VODAFONE: "Vodafone";
251
264
  XBOX: "Xbox";
252
265
  XIAOMI: "Xiaomi";
@@ -280,6 +293,7 @@ export const OS: Readonly<{
280
293
  AMIGA_OS: "Amiga OS";
281
294
  ANDROID: "Android";
282
295
  ANDROID_X86: "Android-x86";
296
+ ARCAOS: "ArcaOS";
283
297
  ARCH: "Arch";
284
298
  BADA: "Bada";
285
299
  BEOS: "BeOS";
@@ -310,6 +324,7 @@ export const OS: Readonly<{
310
324
  IOS: "iOS";
311
325
  JOLI: "Joli";
312
326
  KAIOS: "KaiOS";
327
+ KNOPPIX: "Knoppix";
313
328
  KUBUNTU: "Kubuntu";
314
329
  LINPUS: "Linpus";
315
330
  LINSPIRE: "Linspire";
@@ -358,9 +373,12 @@ export const OS: Readonly<{
358
373
  WATCHOS: "watchOS";
359
374
  WEBOS: "WebOS";
360
375
  WINDOWS: "Windows";
376
+ WINDOWS_CE: "Windows CE";
361
377
  WINDOWS_IOT: "Windows IoT";
362
378
  WINDOWS_MOBILE: "Windows Mobile";
363
379
  WINDOWS_PHONE: "Windows Phone";
380
+ WINDOWS_RT: "Windows RT";
364
381
  XBOX: "Xbox";
382
+ XUBUNTU: "Xubuntu";
365
383
  ZENWALK: "Zenwalk";
366
384
  }>;
@@ -1,5 +1,5 @@
1
1
  ///////////////////////////////////////////////
2
- /* Enums for UAParser.js v2.0.2
2
+ /* Enums for UAParser.js v2.0.4
3
3
  https://github.com/faisalman/ua-parser-js
4
4
  Author: Faisal Salman <f@faisalman.com>
5
5
  AGPLv3 License */
@@ -37,10 +37,14 @@ const Browser = Object.freeze({
37
37
  DAUM: 'Daum',
38
38
  DILLO: 'Dillo',
39
39
  DOLPHIN: 'Dolphin',
40
+ DOOBLE: 'Dooble',
40
41
  DORIS: 'Doris',
41
42
  DRAGON: 'Dragon',
42
43
  DUCKDUCKGO: 'DuckDuckGo',
44
+ ECOSIA: 'Ecosia',
43
45
  EDGE: 'Edge',
46
+ EDGE_WEBVIEW: 'Edge WebView',
47
+ EDGE_WEBVIEW2: 'Edge WebView2',
44
48
  EPIPHANY: 'Epiphany',
45
49
  FACEBOOK: 'Facebook',
46
50
  FALKON: 'Falkon',
@@ -78,6 +82,7 @@ const Browser = Object.freeze({
78
82
  KINDLE: 'Kindle',
79
83
  LENOVO: 'Smart Lenovo Browser',
80
84
  LADYBIRD: 'Ladybird',
85
+ LG: 'LG Browser',
81
86
  LIBREWOLF: 'LibreWolf',
82
87
  LIEBAO: 'LBBROWSER',
83
88
  LINE: 'Line',
@@ -102,10 +107,12 @@ const Browser = Object.freeze({
102
107
  OMNIWEB: 'OmniWeb',
103
108
  OPERA: 'Opera',
104
109
  OPERA_COAST: 'Opera Coast',
110
+ OPERA_GX: 'Opera GX',
105
111
  OPERA_MINI: 'Opera Mini',
106
112
  OPERA_MOBI: 'Opera Mobi',
107
113
  OPERA_TABLET: 'Opera Tablet',
108
114
  OPERA_TOUCH: 'Opera Touch',
115
+ OTTER: 'Otter',
109
116
  OVI: 'OviBrowser',
110
117
  PALEMOON: 'PaleMoon',
111
118
  PHANTOMJS: 'PhantomJS',
@@ -117,6 +124,7 @@ const Browser = Object.freeze({
117
124
  QQ_LITE: 'QQBrowserLite',
118
125
  QUARK: 'Quark',
119
126
  QUPZILLA: 'QupZilla',
127
+ QUTEBROWSER: 'qutebrowser',
120
128
  REKONQ: 'rekonq',
121
129
  ROCKMELT: 'Rockmelt',
122
130
  SAFARI: 'Safari',
@@ -133,6 +141,7 @@ const Browser = Object.freeze({
133
141
  SNAPCHAT: 'Snapchat',
134
142
  SOGOU_EXPLORER: 'Sogou Explorer',
135
143
  SOGOU_MOBILE: 'Sogou Mobile',
144
+ SURF: 'Surf',
136
145
  SWIFTFOX: 'Swiftfox',
137
146
  TESLA: 'Tesla',
138
147
  TIKTOK: 'TikTok',
@@ -206,6 +215,7 @@ const Vendor = Object.freeze({
206
215
  ATT: 'AT&T',
207
216
  BENQ: 'BenQ',
208
217
  BLACKBERRY: 'BlackBerry',
218
+ BLU: 'BLU',
209
219
  CAT: 'Cat',
210
220
  DELL: 'Dell',
211
221
  ENERGIZER: 'Energizer',
@@ -224,6 +234,7 @@ const Vendor = Object.freeze({
224
234
  ITEL: 'itel',
225
235
  JOLLA: 'Jolla',
226
236
  KOBO: 'Kobo',
237
+ LAVA: 'Lava',
227
238
  LENOVO: 'Lenovo',
228
239
  LG: 'LG',
229
240
  MEIZU: 'Meizu',
@@ -244,6 +255,7 @@ const Vendor = Object.freeze({
244
255
  PICO: 'Pico',
245
256
  POLYTRON: 'Polytron',
246
257
  REALME: 'Realme',
258
+ RETROID: 'Retroid',
247
259
  RIM: 'RIM',
248
260
  ROKU: 'Roku',
249
261
  SAMSUNG: 'Samsung',
@@ -258,6 +270,7 @@ const Vendor = Object.freeze({
258
270
  TESLA: 'Tesla',
259
271
  ULEFONE: 'Ulefone',
260
272
  VIVO: 'Vivo',
273
+ VIZIO: 'Vizio',
261
274
  VODAFONE: 'Vodafone',
262
275
  XBOX: 'Xbox',
263
276
  XIAOMI: 'Xiaomi',
@@ -295,6 +308,7 @@ const OS = Object.freeze({
295
308
  AMIGA_OS: 'Amiga OS',
296
309
  ANDROID: 'Android',
297
310
  ANDROID_X86: 'Android-x86',
311
+ ARCAOS: 'ArcaOS',
298
312
  ARCH: 'Arch',
299
313
  BADA: 'Bada',
300
314
  BEOS: 'BeOS',
@@ -325,6 +339,7 @@ const OS = Object.freeze({
325
339
  IOS: 'iOS',
326
340
  JOLI: 'Joli',
327
341
  KAIOS: 'KaiOS',
342
+ KNOPPIX: 'Knoppix',
328
343
  KUBUNTU: 'Kubuntu',
329
344
  LINPUS: 'Linpus',
330
345
  LINSPIRE: 'Linspire',
@@ -373,10 +388,13 @@ const OS = Object.freeze({
373
388
  WATCHOS: 'watchOS',
374
389
  WEBOS: 'WebOS',
375
390
  WINDOWS: 'Windows',
391
+ WINDOWS_CE: 'Windows CE',
376
392
  WINDOWS_IOT: 'Windows IoT',
377
393
  WINDOWS_MOBILE: 'Windows Mobile',
378
394
  WINDOWS_PHONE: 'Windows Phone',
395
+ WINDOWS_RT: 'Windows RT',
379
396
  XBOX: 'Xbox',
397
+ XUBUNTU: 'Xubuntu',
380
398
  ZENWALK: 'Zenwalk'
381
399
 
382
400
  // TODO : test!
@@ -3,7 +3,7 @@
3
3
  // Source: /src/enums/ua-parser-enums.js
4
4
 
5
5
  ///////////////////////////////////////////////
6
- /* Enums for UAParser.js v2.0.2
6
+ /* Enums for UAParser.js v2.0.4
7
7
  https://github.com/faisalman/ua-parser-js
8
8
  Author: Faisal Salman <f@faisalman.com>
9
9
  AGPLv3 License */
@@ -41,10 +41,14 @@ const Browser = Object.freeze({
41
41
  DAUM: 'Daum',
42
42
  DILLO: 'Dillo',
43
43
  DOLPHIN: 'Dolphin',
44
+ DOOBLE: 'Dooble',
44
45
  DORIS: 'Doris',
45
46
  DRAGON: 'Dragon',
46
47
  DUCKDUCKGO: 'DuckDuckGo',
48
+ ECOSIA: 'Ecosia',
47
49
  EDGE: 'Edge',
50
+ EDGE_WEBVIEW: 'Edge WebView',
51
+ EDGE_WEBVIEW2: 'Edge WebView2',
48
52
  EPIPHANY: 'Epiphany',
49
53
  FACEBOOK: 'Facebook',
50
54
  FALKON: 'Falkon',
@@ -82,6 +86,7 @@ const Browser = Object.freeze({
82
86
  KINDLE: 'Kindle',
83
87
  LENOVO: 'Smart Lenovo Browser',
84
88
  LADYBIRD: 'Ladybird',
89
+ LG: 'LG Browser',
85
90
  LIBREWOLF: 'LibreWolf',
86
91
  LIEBAO: 'LBBROWSER',
87
92
  LINE: 'Line',
@@ -106,10 +111,12 @@ const Browser = Object.freeze({
106
111
  OMNIWEB: 'OmniWeb',
107
112
  OPERA: 'Opera',
108
113
  OPERA_COAST: 'Opera Coast',
114
+ OPERA_GX: 'Opera GX',
109
115
  OPERA_MINI: 'Opera Mini',
110
116
  OPERA_MOBI: 'Opera Mobi',
111
117
  OPERA_TABLET: 'Opera Tablet',
112
118
  OPERA_TOUCH: 'Opera Touch',
119
+ OTTER: 'Otter',
113
120
  OVI: 'OviBrowser',
114
121
  PALEMOON: 'PaleMoon',
115
122
  PHANTOMJS: 'PhantomJS',
@@ -121,6 +128,7 @@ const Browser = Object.freeze({
121
128
  QQ_LITE: 'QQBrowserLite',
122
129
  QUARK: 'Quark',
123
130
  QUPZILLA: 'QupZilla',
131
+ QUTEBROWSER: 'qutebrowser',
124
132
  REKONQ: 'rekonq',
125
133
  ROCKMELT: 'Rockmelt',
126
134
  SAFARI: 'Safari',
@@ -137,6 +145,7 @@ const Browser = Object.freeze({
137
145
  SNAPCHAT: 'Snapchat',
138
146
  SOGOU_EXPLORER: 'Sogou Explorer',
139
147
  SOGOU_MOBILE: 'Sogou Mobile',
148
+ SURF: 'Surf',
140
149
  SWIFTFOX: 'Swiftfox',
141
150
  TESLA: 'Tesla',
142
151
  TIKTOK: 'TikTok',
@@ -210,6 +219,7 @@ const Vendor = Object.freeze({
210
219
  ATT: 'AT&T',
211
220
  BENQ: 'BenQ',
212
221
  BLACKBERRY: 'BlackBerry',
222
+ BLU: 'BLU',
213
223
  CAT: 'Cat',
214
224
  DELL: 'Dell',
215
225
  ENERGIZER: 'Energizer',
@@ -228,6 +238,7 @@ const Vendor = Object.freeze({
228
238
  ITEL: 'itel',
229
239
  JOLLA: 'Jolla',
230
240
  KOBO: 'Kobo',
241
+ LAVA: 'Lava',
231
242
  LENOVO: 'Lenovo',
232
243
  LG: 'LG',
233
244
  MEIZU: 'Meizu',
@@ -248,6 +259,7 @@ const Vendor = Object.freeze({
248
259
  PICO: 'Pico',
249
260
  POLYTRON: 'Polytron',
250
261
  REALME: 'Realme',
262
+ RETROID: 'Retroid',
251
263
  RIM: 'RIM',
252
264
  ROKU: 'Roku',
253
265
  SAMSUNG: 'Samsung',
@@ -262,6 +274,7 @@ const Vendor = Object.freeze({
262
274
  TESLA: 'Tesla',
263
275
  ULEFONE: 'Ulefone',
264
276
  VIVO: 'Vivo',
277
+ VIZIO: 'Vizio',
265
278
  VODAFONE: 'Vodafone',
266
279
  XBOX: 'Xbox',
267
280
  XIAOMI: 'Xiaomi',
@@ -299,6 +312,7 @@ const OS = Object.freeze({
299
312
  AMIGA_OS: 'Amiga OS',
300
313
  ANDROID: 'Android',
301
314
  ANDROID_X86: 'Android-x86',
315
+ ARCAOS: 'ArcaOS',
302
316
  ARCH: 'Arch',
303
317
  BADA: 'Bada',
304
318
  BEOS: 'BeOS',
@@ -329,6 +343,7 @@ const OS = Object.freeze({
329
343
  IOS: 'iOS',
330
344
  JOLI: 'Joli',
331
345
  KAIOS: 'KaiOS',
346
+ KNOPPIX: 'Knoppix',
332
347
  KUBUNTU: 'Kubuntu',
333
348
  LINPUS: 'Linpus',
334
349
  LINSPIRE: 'Linspire',
@@ -377,10 +392,13 @@ const OS = Object.freeze({
377
392
  WATCHOS: 'watchOS',
378
393
  WEBOS: 'WebOS',
379
394
  WINDOWS: 'Windows',
395
+ WINDOWS_CE: 'Windows CE',
380
396
  WINDOWS_IOT: 'Windows IoT',
381
397
  WINDOWS_MOBILE: 'Windows Mobile',
382
398
  WINDOWS_PHONE: 'Windows Phone',
399
+ WINDOWS_RT: 'Windows RT',
383
400
  XBOX: 'Xbox',
401
+ XUBUNTU: 'Xubuntu',
384
402
  ZENWALK: 'Zenwalk'
385
403
 
386
404
  // TODO : test!
@@ -1,4 +1,4 @@
1
- // Type definitions for Helpers submodule of UAParser.js v2.0.2
1
+ // Type definitions for Helpers submodule of UAParser.js v2.0.4
2
2
  // Project: https://github.com/faisalman/ua-parser-js
3
3
  // Definitions by: Faisal Salman <https://github.com/faisalman>
4
4