UNPKG

express-useragent

Version:

JS Library & ExpressJS user-agent middleware exposing

2 lines (1 loc) 22.2 kB
"use strict";var expressUseragent=(()=>{var W=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var N=Object.prototype.hasOwnProperty;var z=(i,e)=>{for(var t in e)W(i,t,{get:e[t],enumerable:!0})},j=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of R(e))!N.call(i,r)&&r!==t&&W(i,r,{get:()=>e[r],enumerable:!(s=V(e,r))||s.enumerable});return i};var J=i=>j(W({},"__esModule",{value:!0}),i);var fe={};z(fe,{UserAgent:()=>w,default:()=>de,hydrate:()=>K,parse:()=>I});var Z=["\\+https:\\/\\/developers.google.com\\/\\+\\/web\\/snippet\\/","ad\\smonitoring","adsbot","apex","applebot","archive.org_bot","baiduspider","bingbot","chromeheadless","cloudflare","cloudinary","crawler","curl","discordbot","duckduckbot","embedly","exabot","facebookexternalhit","facebot","flipboard","google","googlebot","gsa-crawler","gurujibot","guzzlehttp","heritrix","ia_archiver","insights","linkedinbot","ltx71","mediapartners","msnbot","odklbot","phantom\\.js","phantomjs","pingdom","pinterest","python","rtlnieuws","skypeuripreview","slackbot","slurp","spbot","telegrambot","test\\scertificate","testing","tiabot","tumblr ","twitterbot","vkshare","web\\sscraper","wget","yandexbot","whatsapp","orangebot","smtbot","qwantify","mj12bot","ahrefsbot","seznambot","panscient\\.com","duckduckgo-favicons-bot","uptimerobot","semrushbot","postman","dotbot","zoominfobot","ifttt","sogou","ru_bot","researchscan","nimbostratus-bot","slack-imgproxy","node-superagent","go-http-client","jersey","dataprovider.com","github-camo","dispatch","checkmarknetwork","screaming frog","whatweb","daum","netcraftsurveyagent","mojeekbot","surdotlybot","springbot"],U=new RegExp(`(${Z.join("|")})`,"i"),q=/silk/i,Y=/Silk-Accelerated=true/i,$=/smart-tv|smarttv|googletv|appletv|hbbtv|pov_tv|netcast.tv/i,Q=/mobile/i,ee=/mobile|^ios-/i,te=/dalvik/i,ie=/scale/i,se=/okhttp/i,ne=/applewebkit/i,re=/micromessenger/i,oe={isYaBrowser:!1,isAuthoritative:!0,isMobile:!1,isMobileNative:!1,isTablet:!1,isiPad:!1,isiPod:!1,isiPhone:!1,isiPhoneNative:!1,isAndroid:!1,isAndroidNative:!1,isBlackberry:!1,isOpera:!1,isIE:!1,isEdge:!1,isIECompatibilityMode:!1,isSafari:!1,isFirefox:!1,isWebkit:!1,isChrome:!1,isKonqueror:!1,isOmniWeb:!1,isSeaMonkey:!1,isFlock:!1,isAmaya:!1,isPhantomJS:!1,isEpiphany:!1,isDesktop:!1,isWindows:!1,isLinux:!1,isLinux64:!1,isMac:!1,isChromeOS:!1,isBada:!1,isSamsung:!1,isRaspberry:!1,isBot:!1,botName:"",isCurl:!1,isAndroidTablet:!1,isWinJs:!1,isKindleFire:!1,isSilk:!1,isCaptive:!1,isSmartTV:!1,isUC:!1,isFacebook:!1,isAlamoFire:!1,isElectron:!1,silkAccelerated:!1,browser:"unknown",version:"unknown",os:"unknown",platform:"unknown",isWechat:!1,isWindowsPhone:!1,SilkAccelerated:!1,geoIp:{},source:"",electronVersion:"",isDuckDuckGo:!1,clientHints:null};function v(){return{...oe,geoIp:{},source:"",electronVersion:"",botName:"",clientHints:null}}var y=i=>i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122||i===45||i===46||i===95,P=i=>i>=48&&i<=57,X=(i,e=0)=>{let t=i.indexOf("/",e);if(t<=e)return null;for(let r=e;r<t;r+=1)if(!y(i.charCodeAt(r)))return null;let s=t+1;for(;s<i.length&&y(i.charCodeAt(s));)s+=1;return s===t+1?null:{name:i.slice(e,t),version:i.slice(t+1,s)}},ae=(i,e)=>{let t=X(i);return(t==null?void 0:t.name.toLowerCase())===e.toLowerCase()?t.version:null},T=(i,e)=>{let t=i.toLowerCase(),s=-1,r="";for(let n of e){let l=t.indexOf(n.toLowerCase());l!==-1&&(s===-1||l<s)&&(s=l,r=n)}if(s===-1)return null;let a=s+r.length,u=a;for(;u<i.length&&y(i.charCodeAt(u));)u+=1;return u>a?i.slice(a,u):null},c=(i,e)=>T(i,e.map(t=>`${t}/`)),ue=i=>{let e=i.toLowerCase(),t=e.indexOf("msie");if(t!==-1){let n=t+4;for(;i[n]===" ";)n+=1;let l=n;for(;l<i.length;){let f=i.charCodeAt(l);if(!P(f)&&f!==46)break;l+=1}if(l>n)return i.slice(n,l)}let s=e.indexOf("trident/");if(s===-1)return null;let r=e.indexOf("rv:",s+8);if(r===-1)return null;let a=r+3,u=a;for(;u<i.length;){let n=i.charCodeAt(u);if(!P(n)&&n!==46)break;u+=1}return u>a?i.slice(a,u):null},L=(i,e)=>{let t=i.length;for(;t>0&&i.charCodeAt(t-1)===32;)t-=1;if(i[t-1]===")")t-=1;else if(e)return null;let s=t;for(;s>0&&y(i.charCodeAt(s-1));)s-=1;return s<t?i.slice(s,t):null},H=(i,e)=>{let t=e.toLowerCase(),s=0;for(;s<i.length;){let r=i.indexOf("(",s);if(r===-1)return null;let a=i.indexOf(")",r+1),u=a===-1?i.length:a,n=i.slice(r+1,u),l=n.toLowerCase();if(l.startsWith(t)){let f=0;for(;f<l.length;){let p=l.indexOf("os ",f);if(p===-1)break;let A=p+3;for(;n[A]===" ";)A+=1;let d=A;for(;d<n.length&&P(n.charCodeAt(d));)d+=1;let m=n[d];if(d>A&&(m==="."||m==="_")){let g=d+1;for(;g<n.length&&P(n.charCodeAt(g));)g+=1;if(g>d+1)return`(${n.slice(0,g)}`.replace("_",".")}f=p+3}}s=u+1}return null},le=/\sDdg\/\d+(?:\.\d+)*$/,S=class S{constructor(){this.versions={Edge:/(?:edge|edga|edgios|edg)\/([A-Za-z0-9_.-]+)/i,Firefox:/(?:firefox|fxios)\/([A-Za-z0-9_.-]+)/i,IE:/msie\s(\d+(?:\.\d+)?)|trident\/\d+(?:\.\d+)?;[^)]*\brv:(\d+(?:\.\d+)?)/i,YaBrowser:/(?:yabrowser|yowser)\/([A-Za-z0-9_.-]+)/i,Chrome:/(?:chrome|crios)\/([A-Za-z0-9_.-]+)/i,Chromium:/chromium\/([A-Za-z0-9_.-]+)/i,Safari:/(version|safari)\/([A-Za-z0-9_.-]+)/i,Opera:/version\/([A-Za-z0-9_.-]+)|OPR\/([A-Za-z0-9_.-]+)/i,Amaya:/amaya\/([A-Za-z0-9_.-]+)/i,SeaMonkey:/seamonkey\/([A-Za-z0-9_.-]+)/i,OmniWeb:/omniweb\/v([A-Za-z0-9_.-]+)/i,Flock:/flock\/([A-Za-z0-9_.-]+)/i,Epiphany:/epiphany\/([A-Za-z0-9_.-]+)/i,WinJs:/msapphost\/([A-Za-z0-9_.-]+)/i,PhantomJS:/phantomjs\/([A-Za-z0-9_.-]+)/i,AlamoFire:/alamofire\/([A-Za-z0-9_.-]+)/i,UC:/ucbrowser\/([A-Za-z0-9_.]+)/i,Facebook:/FBAV\/([A-Za-z0-9_.]+)/i,WebKit:/applewebkit\/([A-Za-z0-9_.]+)/i,Wechat:/micromessenger\/([A-Za-z0-9_.]+)/i,Electron:/Electron\/([A-Za-z0-9_.]+)/i,DuckDuckGo:/\sDdg\/(\d+(?:\.\d+)*)$/i};this.browsers={YaBrowser:/yabrowser|yowser/i,Edge:/edge|edga|edgios|edg/i,Amaya:/amaya/i,Konqueror:/konqueror/i,Epiphany:/epiphany/i,SeaMonkey:/seamonkey/i,Flock:/flock/i,OmniWeb:/omniweb/i,Chromium:/chromium/i,Chrome:/chrome|crios/i,Safari:/safari/i,IE:/msie|trident/i,Opera:/opera|OPR\//i,PS3:/playstation 3/i,PSP:/playstation portable/i,Firefox:/firefox|fxios/i,WinJs:/msapphost/i,PhantomJS:/phantomjs/i,AlamoFire:/alamofire/i,UC:/UCBrowser/i,Facebook:/FBA[NV]/,DuckDuckGo:/\sDdg\/[\d.]+$/i};this.os={Windows11:/\bwindows(?:\s|_|)11(?:\.\d+)?/i,Windows10:/windows nt 10\.0/i,Windows81:/windows nt 6\.3/i,Windows8:/windows nt 6\.2/i,Windows7:/windows nt 6\.1/i,UnknownWindows:/windows nt 6\.\d+/i,WindowsVista:/windows nt 6\.0/i,Windows2003:/windows nt 5\.2/i,WindowsXP:/windows nt 5\.1/i,Windows2000:/windows nt 5\.0/i,WindowsPhone81:/windows phone 8\.1/i,WindowsPhone80:/windows phone 8\.0/i,OSXCheetah:/os x 10[._]0/i,OSXPuma:/os x 10[._]1(\D|$)/i,OSXJaguar:/os x 10[._]2/i,OSXPanther:/os x 10[._]3/i,OSXTiger:/os x 10[._]4/i,OSXLeopard:/os x 10[._]5/i,OSXSnowLeopard:/os x 10[._]6/i,OSXLion:/os x 10[._]7/i,OSXMountainLion:/os x 10[._]8/i,OSXMavericks:/os x 10[._]9/i,OSXYosemite:/os x 10[._]10/i,OSXElCapitan:/os x 10[._]11/i,MacOSSierra:/os x 10[._]12/i,MacOSHighSierra:/os x 10[._]13/i,MacOSMojave:/os x 10[._]14/i,MacOSCatalina:/os x 10[._]15/i,MacOSBigSur:/(mac os x 10[._]16(?:[._]\d+)?|mac os (?:x )?11[._]\d+)/i,MacOSMonterey:/mac os (?:x )?12[._]\d+/i,MacOSVentura:/mac os (?:x )?13[._]\d+/i,MacOSSonoma:/mac os (?:x )?14[._]\d+/i,MacOSSequoia:/mac os (?:x )?15[._]\d+/i,MacOSTahoe:/mac os (?:x )?26[._]\d+/i,Mac:/os x/i,Linux:/linux/i,Linux64:/linux x86_64/i,ChromeOS:/cros/i,Wii:/wii/i,PS3:/playstation 3/i,PSP:/playstation portable/i,iOS:/ios/i,Bada:/Bada\/(\d+)\.(\d+)/i,Curl:/curl\/(\d+)\.(\d+)\.(\d+)/i,Electron:/Electron\/(\d+)\.(\d+)\.(\d+)/i};this.platform={Windows:/windows nt/i,WindowsPhone:/windows phone/i,Mac:/macintosh/i,Linux:/linux/i,Wii:/wii/i,Playstation:/playstation/i,iPad:/ipad/i,iPod:/ipod/i,iPhone:/iphone/i,Android:/android/i,Blackberry:/blackberry/i,Samsung:/samsung/i,Curl:/curl/i,Electron:/Electron/i,iOS:/^ios-/i};this.Agent=v()}reset(){return this.Agent=v(),this}testNginxGeoIP(e){return Object.entries(e!=null?e:{}).forEach(([t,s])=>{/^GEOIP/i.test(t)&&s!==void 0&&(this.Agent.geoIp[t]=Array.isArray(s)?s.join(","):s)}),this}parseClientHints(e){var l,f,p,A,d,m,g;let t=o=>{try{if(o==null)return"";if(Array.isArray(o)){let h=o[0];return typeof h!="string"?"":h.slice(0,S.MAX_HEADER_LENGTH)}return typeof o!="string"?"":o.slice(0,S.MAX_HEADER_LENGTH)}catch(h){return""}};if(e==null||typeof e!="object")return null;let s={};try{let o=0,h=50;for(let[b,k]of Object.entries(e)){if(++o>h)break;typeof b=="string"&&(s[b.toLowerCase()]=t(k))}}catch(o){return null}let r=s["sec-ch-ua"];if(!r)return null;let a=o=>{try{if(!o||typeof o!="string")return[];let h=[],b=/"([^"]{1,128})";\s*v="([^"]{1,64})"/g,k,O=0;for(;(k=b.exec(o))!==null&&!(++O>S.MAX_BRAND_COUNT);)h.push({brand:k[1],version:k[2]});return h}catch(h){return[]}},u=o=>{try{return typeof o!="string"?!1:o==="?1"}catch(h){return!1}},n=o=>{try{if(typeof o!="string")return"";let h=o.slice(0,256),b=/^"([^"]*)"$/.exec(h);return b?b[1]:h}catch(h){return""}};try{let o={brands:a(r),mobile:u((l=s["sec-ch-ua-mobile"])!=null?l:""),platform:n((f=s["sec-ch-ua-platform"])!=null?f:""),platformVersion:n((p=s["sec-ch-ua-platform-version"])!=null?p:""),architecture:n((A=s["sec-ch-ua-arch"])!=null?A:""),bitness:n((d=s["sec-ch-ua-bitness"])!=null?d:""),model:n((m=s["sec-ch-ua-model"])!=null?m:""),fullVersionList:a((g=s["sec-ch-ua-full-version-list"])!=null?g:"")};return this.Agent.clientHints=o,o}catch(o){return null}}testDuckDuckGo(){var e,t,s,r,a;if((e=this.Agent.clientHints)!=null&&e.brands&&this.Agent.clientHints.brands.some(n=>n.brand==="DuckDuckGo")){this.Agent.isDuckDuckGo=!0,this.Agent.browser="DuckDuckGo",this.Agent.version=(t=this.getDuckDuckGoVersion())!=null?t:"unknown";return}if((s=this.Agent.clientHints)!=null&&s.fullVersionList&&this.Agent.clientHints.fullVersionList.some(n=>n.brand==="DuckDuckGo")){this.Agent.isDuckDuckGo=!0,this.Agent.browser="DuckDuckGo",this.Agent.version=(r=this.getDuckDuckGoVersion())!=null?r:"unknown";return}le.test(this.Agent.source)&&(this.Agent.isDuckDuckGo=!0,this.Agent.browser="DuckDuckGo",this.Agent.version=(a=this.getDuckDuckGoVersion())!=null?a:"unknown")}testBot(){let e=this.Agent.source.toLowerCase(),t=U.exec(e);if(t){let s=t[1];if(s==="google"&&(e.includes("tiktok")||e.includes("trill")||e.includes("bytedance"))){this.Agent.isBot=!1,this.Agent.botName="";return}this.Agent.isBot=!0,this.Agent.botName=s}else this.Agent.isAuthoritative?(this.Agent.isBot=!1,this.Agent.botName=""):(this.Agent.isBot=/bot/i.test(this.Agent.source),this.Agent.botName=this.Agent.isBot?"bot":"")}testSmartTV(){this.Agent.isSmartTV=$.test(this.Agent.source.toLowerCase())}testMobile(){this.Agent.isWindows||this.Agent.isLinux||this.Agent.isMac||this.Agent.isChromeOS?this.Agent.isDesktop=!0:(this.Agent.isAndroid||this.Agent.isSamsung)&&(this.Agent.isMobile=!0),(this.Agent.isiPad||this.Agent.isiPod||this.Agent.isiPhone||this.Agent.isBada||this.Agent.isBlackberry||this.Agent.isAndroid||this.Agent.isWindowsPhone)&&(this.Agent.isMobile=!0,this.Agent.isDesktop=!1),ee.test(this.Agent.source)&&(this.Agent.isMobile=!0,this.Agent.isDesktop=!1),te.test(this.Agent.source)&&(this.Agent.isAndroidNative=!0,this.Agent.isMobileNative=!0),se.test(this.Agent.source)&&(this.Agent.isAndroidNative=!0,this.Agent.isMobileNative=!0,this.Agent.isMobile=!0,this.Agent.isAndroid=!0,this.Agent.isDesktop=!1),ie.test(this.Agent.source)&&(this.Agent.isiPhoneNative=!0,this.Agent.isMobileNative=!0)}testAndroidTablet(){this.Agent.isAndroid&&!Q.test(this.Agent.source)&&(this.Agent.isAndroidTablet=!0)}testTablet(){(this.Agent.isiPad||this.Agent.isAndroidTablet||this.Agent.isKindleFire)&&(this.Agent.isTablet=!0),/tablet/i.test(this.Agent.source)&&(this.Agent.isTablet=!0)}testCompatibilityMode(){if(!this.Agent.isIE)return;let e=/Trident\/(\d)\.0/i.exec(this.Agent.source);if(!e)return;let t=parseInt(e[1],10),s=parseInt(String(this.Agent.version),10);s===7&&t===7&&(this.Agent.isIECompatibilityMode=!0,this.Agent.version="11.0"),s===7&&t===6&&(this.Agent.isIECompatibilityMode=!0,this.Agent.version="10.0"),s===7&&t===5&&(this.Agent.isIECompatibilityMode=!0,this.Agent.version="9.0"),s===7&&t===4&&(this.Agent.isIECompatibilityMode=!0,this.Agent.version="8.0")}testSilk(){return q.test(this.Agent.source)&&(this.Agent.isSilk=!0),Y.test(this.Agent.source)&&(this.Agent.silkAccelerated=!0,this.Agent.SilkAccelerated=!0),this.Agent.isSilk?"Silk":!1}testKindleFire(){let{source:e}=this.Agent;return/KFOT/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire"):/KFTT/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HD"):/KFJWI/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HD 8.9"):/KFJWA/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HD 8.9 4G"):/KFSOWI/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HD 7"):/KFTHWI/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HDX 7"):/KFTHWA/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HDX 7 4G"):/KFAPWI/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HDX 8.9"):/KFAPWA/gi.test(e)?(this.Agent.isKindleFire=!0,"Kindle Fire HDX 8.9 4G"):!1}testCaptiveNetwork(){return/CaptiveNetwork/gi.test(this.Agent.source)?(this.Agent.isCaptive=!0,this.Agent.isMac=!0,this.Agent.platform="Apple Mac","CaptiveNetwork"):!1}testWebkit(){this.Agent.browser==="unknown"&&ne.test(this.Agent.source)&&(this.Agent.browser="Apple WebKit",this.Agent.isWebkit=!0)}testWechat(){re.test(this.Agent.source)&&(this.Agent.isWechat=!0,this.Agent.version=this.getWechatVersion(this.Agent.source))}parse(e){return new S().hydrate(e).Agent}hydrateFromHeaders(e,t){return this.hydrate(e),this.parseClientHints(t),this.testDuckDuckGo(),this}hydrate(e){return this.Agent=v(),this.Agent.source=e.trim(),this.Agent.os=this.getOS(this.Agent.source),this.Agent.platform=this.getPlatform(this.Agent.source),this.Agent.browser=this.getBrowser(this.Agent.source),this.Agent.version=this.getBrowserVersion(this.Agent.source),this.Agent.electronVersion=this.getElectronVersion(this.Agent.source),this.testBot(),this.testSmartTV(),this.testMobile(),this.testAndroidTablet(),this.testTablet(),this.testCompatibilityMode(),this.testSilk(),this.testKindleFire(),this.testCaptiveNetwork(),this.testWebkit(),this.testWechat(),this}getBrowser(e){let t=this.Agent;if(this.browsers.YaBrowser.test(e))return t.isYaBrowser=!0,"YaBrowser";if(this.browsers.AlamoFire.test(e))return t.isAlamoFire=!0,"AlamoFire";if(this.browsers.Edge.test(e))return t.isEdge=!0,"Edge";if(this.browsers.PhantomJS.test(e))return t.isPhantomJS=!0,"PhantomJS";if(this.browsers.Konqueror.test(e))return t.isKonqueror=!0,"Konqueror";if(this.browsers.Amaya.test(e))return t.isAmaya=!0,"Amaya";if(this.browsers.Epiphany.test(e))return t.isEpiphany=!0,"Epiphany";if(this.browsers.SeaMonkey.test(e))return t.isSeaMonkey=!0,"SeaMonkey";if(this.browsers.Flock.test(e))return t.isFlock=!0,"Flock";if(this.browsers.OmniWeb.test(e))return t.isOmniWeb=!0,"OmniWeb";if(this.browsers.Opera.test(e))return t.isOpera=!0,"Opera";if(this.browsers.Chromium.test(e))return t.isChrome=!0,"Chromium";if(this.browsers.Facebook.test(e))return t.isFacebook=!0,"Facebook";if(this.browsers.Chrome.test(e))return t.isChrome=!0,"Chrome";if(this.browsers.WinJs.test(e))return t.isWinJs=!0,"WinJs";if(this.browsers.IE.test(e))return t.isIE=!0,"IE";if(this.browsers.Firefox.test(e))return t.isFirefox=!0,"Firefox";if(/android/i.test(e)&&/version\//i.test(e)&&/mobile safari\//i.test(e)&&!/chrome/i.test(e)&&!/silk/i.test(e))return t.isAndroid=!0,"Android Browser";if(this.browsers.Safari.test(e))return t.isSafari=!0,"Safari";if(this.browsers.PS3.test(e))return"ps3";if(this.browsers.PSP.test(e))return"psp";if(this.browsers.UC.test(e))return t.isUC=!0,"UCBrowser";if(e.includes("Dalvik"))return"unknown";if(!e.startsWith("Mozilla")){let s=X(e);if(s)return t.isAuthoritative=!1,s.name}return"unknown"}getBrowserVersion(e){var r,a,u,n,l,f,p,A,d,m,g,o,h,b,k,O,M,x,C,D,_,B,F;let s=this.Agent.browser;switch(s){case"Edge":return(r=c(e,["edge","edga","edgios","edg"]))!=null?r:"unknown";case"PhantomJS":return(a=c(e,["phantomjs"]))!=null?a:"unknown";case"YaBrowser":return(u=c(e,["yabrowser","yowser"]))!=null?u:"unknown";case"Chrome":return(n=c(e,["chrome","crios"]))!=null?n:"unknown";case"Chromium":return(l=c(e,["chromium"]))!=null?l:"unknown";case"Safari":return(f=c(e,["version","safari"]))!=null?f:"unknown";case"Opera":return(p=c(e,["version","OPR"]))!=null?p:"unknown";case"Firefox":return(A=c(e,["firefox","fxios"]))!=null?A:"unknown";case"WinJs":return(d=c(e,["msapphost"]))!=null?d:"unknown";case"IE":return(m=ue(e))!=null?m:"unknown";case"ps3":return(g=L(e,!0))!=null?g:"unknown";case"psp":return(o=L(e,!1))!=null?o:"unknown";case"Amaya":return(h=c(e,["amaya"]))!=null?h:"unknown";case"Epiphany":return(b=c(e,["epiphany"]))!=null?b:"unknown";case"SeaMonkey":return(k=c(e,["seamonkey"]))!=null?k:"unknown";case"Flock":return(O=c(e,["flock"]))!=null?O:"unknown";case"OmniWeb":return(M=T(e,["omniweb/v"]))!=null?M:"unknown";case"UCBrowser":return(x=c(e,["ucbrowser"]))!=null?x:"unknown";case"Facebook":return(C=c(e,["FBAV"]))!=null?C:"unknown";case"Android Browser":return(D=c(e,["version","safari"]))!=null?D:"unknown";case"DuckDuckGo":return(_=this.getDuckDuckGoVersion())!=null?_:"unknown";default:if(s!=="unknown")return(B=ae(e,s))!=null?B:"unknown";if(this.testWebkit(),this.Agent.isWebkit)return(F=c(e,["applewebkit"]))!=null?F:"unknown"}return"unknown"}getWechatVersion(e){let t=e.match(this.versions.Wechat);return t?t[1]:"unknown"}getDuckDuckGoVersion(){let e=this.Agent.clientHints;if(e){let s=e.fullVersionList.find(a=>a.brand==="DuckDuckGo");if(s)return s.version;let r=e.brands.find(a=>a.brand==="DuckDuckGo");if(r)return r.version}let t=this.Agent.source.match(this.versions.DuckDuckGo);return t?t[1]:null}getElectronVersion(e){let t=e.match(this.versions.Electron);return t?(this.Agent.isElectron=!0,t[1]):""}getOS(e){if(this.os.WindowsVista.test(e))return this.Agent.isWindows=!0,"Windows Vista";if(this.os.Windows7.test(e))return this.Agent.isWindows=!0,"Windows 7";if(this.os.Windows8.test(e))return this.Agent.isWindows=!0,"Windows 8";if(this.os.Windows81.test(e))return this.Agent.isWindows=!0,"Windows 8.1";if(this.os.Windows11.test(e))return this.Agent.isWindows=!0,"Windows 11";if(this.os.Windows10.test(e))return this.Agent.isWindows=!0,"Windows 10.0";if(this.os.Windows2003.test(e))return this.Agent.isWindows=!0,"Windows 2003";if(this.os.WindowsXP.test(e))return this.Agent.isWindows=!0,"Windows XP";if(this.os.Windows2000.test(e))return this.Agent.isWindows=!0,"Windows 2000";if(this.os.WindowsPhone81.test(e))return this.Agent.isWindowsPhone=!0,"Windows Phone 8.1";if(this.os.WindowsPhone80.test(e))return this.Agent.isWindowsPhone=!0,"Windows Phone 8.0";if(this.os.Linux64.test(e))return this.Agent.isLinux=!0,this.Agent.isLinux64=!0,"Linux 64";if(this.os.Linux.test(e))return this.Agent.isLinux=!0,"Linux";if(this.os.ChromeOS.test(e))return this.Agent.isChromeOS=!0,"Chrome OS";if(this.os.Wii.test(e))return"Wii";if(this.os.PS3.test(e)||this.os.PSP.test(e))return"Playstation";if(this.os.OSXCheetah.test(e))return this.Agent.isMac=!0,"OS X Cheetah";if(this.os.OSXPuma.test(e))return this.Agent.isMac=!0,"OS X Puma";if(this.os.OSXJaguar.test(e))return this.Agent.isMac=!0,"OS X Jaguar";if(this.os.OSXPanther.test(e))return this.Agent.isMac=!0,"OS X Panther";if(this.os.OSXTiger.test(e))return this.Agent.isMac=!0,"OS X Tiger";if(this.os.OSXLeopard.test(e))return this.Agent.isMac=!0,"OS X Leopard";if(this.os.OSXSnowLeopard.test(e))return this.Agent.isMac=!0,"OS X Snow Leopard";if(this.os.OSXLion.test(e))return this.Agent.isMac=!0,"OS X Lion";if(this.os.OSXMountainLion.test(e))return this.Agent.isMac=!0,"OS X Mountain Lion";if(this.os.OSXMavericks.test(e))return this.Agent.isMac=!0,"OS X Mavericks";if(this.os.OSXYosemite.test(e))return this.Agent.isMac=!0,"OS X Yosemite";if(this.os.OSXElCapitan.test(e))return this.Agent.isMac=!0,"OS X El Capitan";if(this.os.MacOSSierra.test(e))return this.Agent.isMac=!0,"macOS Sierra";if(this.os.MacOSHighSierra.test(e))return this.Agent.isMac=!0,"macOS High Sierra";if(this.os.MacOSMojave.test(e))return this.Agent.isMac=!0,"macOS Mojave";if(this.os.MacOSCatalina.test(e))return this.Agent.isMac=!0,"macOS Catalina";if(this.os.MacOSBigSur.test(e))return this.Agent.isMac=!0,"macOS Big Sur";if(this.os.MacOSMonterey.test(e))return this.Agent.isMac=!0,"macOS Monterey";if(this.os.MacOSVentura.test(e))return this.Agent.isMac=!0,"macOS Ventura";if(this.os.MacOSSonoma.test(e))return this.Agent.isMac=!0,"macOS Sonoma";if(this.os.MacOSSequoia.test(e))return this.Agent.isMac=!0,"macOS Sequoia";if(this.os.MacOSTahoe.test(e))return this.Agent.isMac=!0,"macOS Tahoe";if(this.os.Mac.test(e))return this.Agent.isMac=!0,"OS X";let t=H(e,"iPad");if(t)return this.Agent.isiPad=!0,t;let s=H(e,"iPhone");return s?(this.Agent.isiPhone=!0,s):this.os.Bada.test(e)?(this.Agent.isBada=!0,"Bada"):this.os.Curl.test(e)?(this.Agent.isCurl=!0,"Curl"):this.os.iOS.test(e)?(this.Agent.isiPhone=!0,"iOS"):this.os.Electron.test(e)?(this.Agent.isElectron=!0,"Electron"):"unknown"}getPlatform(e){return this.platform.Windows.test(e)?"Microsoft Windows":this.platform.WindowsPhone.test(e)?(this.Agent.isWindowsPhone=!0,"Microsoft Windows Phone"):this.platform.Mac.test(e)?"Apple Mac":this.platform.Curl.test(e)?"Curl":this.platform.Electron.test(e)?(this.Agent.isElectron=!0,"Electron"):this.platform.Android.test(e)?(this.Agent.isAndroid=!0,this.platform.Samsung.test(e)&&(this.Agent.isSamsung=!0),"Android"):this.platform.Blackberry.test(e)?(this.Agent.isBlackberry=!0,"Blackberry"):this.platform.Linux.test(e)?"Linux":this.platform.Wii.test(e)?"Wii":this.platform.Playstation.test(e)?"Playstation":this.platform.iPad.test(e)?(this.Agent.isiPad=!0,"iPad"):this.platform.iPod.test(e)?(this.Agent.isiPod=!0,"iPod"):this.platform.iPhone.test(e)?(this.Agent.isiPhone=!0,"iPhone"):this.platform.Samsung.test(e)?(this.Agent.isSamsung=!0,"Samsung"):this.platform.iOS.test(e)?"Apple iOS":"unknown"}};S.MAX_HEADER_LENGTH=2048,S.MAX_BRAND_COUNT=20;var w=S;var he=new w,I=i=>new w().parse(i),K=i=>new w().hydrate(i),G=Object.assign(he,{UserAgent:w,parse:I,hydrate:K}),ce=i=>typeof i.window=="object"&&i.window===i&&typeof i.document=="object",E=globalThis;ce(E)&&(E.UserAgent=w,E.useragent=G);var de=G;return J(fe);})();