UNPKG

native-fn

Version:
2 lines (1 loc) 12.3 kB
!function(e,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(e="undefined"!=typeof globalThis?globalThis:e||self).Platform=i()}(this,(function(){"use strict";function e(e){if(void 0===e)return"";var i={"4.90":"ME","NT3.51":"NT 3.11","NT4.0":"NT 4.0","NT 5.0":"2000","NT 5.1":"XP","NT 5.2":"XP","NT 6.0":"Vista","NT 6.1":"7","NT 6.2":"8","NT 6.3":"8.1","NT 6.4":"10","NT 10.0":"10",ARM:"RT"}[e];return void 0!==i?i:e}function i(e){return void 0===e?"":e.replace(/_/g,".")}var n,o,r,a;!function(e){e.Unknown="Unknown",e.Android="Android",e.iOS="iOS",e.Windows="Windows",e.MacOS="MacOS"}(n||(n={})),function(e){e.Unknown="Unknown",e.Mobile="Mobile",e.Desktop="Desktop"}(o||(o={})),function(e){e.Unknown="Unknown",e.EdgeHTML="EdgeHTML",e.ArkWeb="ArkWeb",e.Blink="Blink",e.Presto="Presto",e.WebKit="WebKit",e.Trident="Trident",e.NetFront="NetFront",e.KHTML="KHTML",e.Tasman="Tasman",e.Gecko="Gecko"}(r||(r={})),function(e){e.Unknown="Unknown",e.Chrome="Chrome",e.Safari="Safari",e.Edge="Edge",e.Firefox="Firefox",e.Opera="Opera",e.IE="IE",e.SamsungInternet="SamsungInternet"}(a||(a={}));var t=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",s={"Google Chrome":"Chrome","Microsoft Edge":"Edge","Microsoft Edge WebView2":"Edge WebView2","Android WebView":"Chrome WebView",HeadlessChrome:"Chrome Headless",OperaMobile:"Opera Mobi"},l=["ae","ar","arc","bcc","bqi","ckb","dv","fa","glk","he","iw","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"],g=[[/windows nt (6\.[23]); arm/i,n.Windows,e],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,n.Windows,e],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,n.Windows,e],[/windows nt ?([\d.)]*)(?!.+xbox)/i,n.Windows,e],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,n.Windows,e],[/windows ce\/?([\d.]*)/i,n.Windows,e],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,n.iOS,i],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,n.iOS,i],[/cfnetwork\/.+darwin/i,n.iOS,i],[/mac os x ?([\w. ]*)/i,n.MacOS,i],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,n.MacOS,i],[/droid ([\w.]+)\b.+(android[- ]x86)/i,n.Android],[/android\w*[-\/.; ]?([\d.]*)/i,n.Android]],d=[[/windows.+ edge\/([\w.]+)/i,r.EdgeHTML],[/arkweb\/([\w.]+)/i,r.ArkWeb],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i,r.Blink],[/presto\/([\w.]+)/i,r.Presto],[/webkit\/([\w.]+)/i,r.WebKit],[/trident\/([\w.]+)/i,r.Trident],[/netfront\/([\w.]+)/i,r.NetFront],[/khtml[\/ ]\(?([\w.]+)/i,r.KHTML],[/tasman[\/ ]\(?([\w.]+)/i,r.Tasman],[/rv:([\w.]{1,9})\b.+gecko/i,r.Gecko]],u=[[/\b(?:crmo|crios)\/([\w.]+)/i,a.Chrome],[/webview.+edge\/([\w.]+)/i,a.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,a.Edge],[/opera mini\/([-\w.]+)/i,a.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,a.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,a.Opera],[/opios[\/ ]+([\w.]+)/i,a.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,a.Opera],[/\bopr\/([\w.]+)/i,a.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,a.IE],[/(?:ms|\()ie ([\w.]+)/i,a.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,a.IE],[/\bfocus\/([\w.]+)/i,a.Firefox],[/\bopt\/([\w.]+)/i,a.Opera],[/coast\/([\w.]+)/i,a.Opera],[/fxios\/([\w.-]+)/i,a.Firefox],[/samsungbrowser\/([\w.]+)/i,a.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,a.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,a.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,a.Chrome],[/chrome\/([\w.]+) mobile/i,a.Chrome],[/chrome\/v?([\w.]+)/i,a.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,a.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,a.Safari],[/version\/([\w.,]+) .*safari/i,a.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,a.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,a.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,a.Firefox],[/firefox\/([\w.]+)/i,a.Firefox]],c=[/ daum[ /]/i,/ deusu\//i,/(?:^|[^g])news(?!sapphire)/i,/(?<! (?:channel\/|google\/))google(?!(app|\/google| pixel))/i,/(?<! cu)bots?(?:\b|_)/i,/(?<!lib)http/i,/(?<![hg]m)score/i,/(?<!cam)scan/i,/24x7/i,/@[a-z][\w-]+\./i,/\(\)/i,/\.com\b/i,/\b\w+\.ai/i,/\bmanus-user\//i,/\bort\//i,/\bperl\b/i,/\bsecurityheaders\b/i,/\btime\//i,/\|/i,/^[\w .\-(?:)%]+(?:\/v?\d+(?:\.\d+)?(?:\.\d{1,10})*?)?(?:,|$)/i,/^[^ ]{50,}$/i,/^\d+\b/i,/^\W/i,/^\w*search\b/i,/^\w+\/[\w()]*$/i,/^\w+\/\d\.\d\s\([\w@]+\)$/i,/^active/i,/^ad muncher/i,/^amaya/i,/^apache\//i,/^avsdevicesdk\//i,/^azure/i,/^biglotron/i,/^bot/i,/^bw\//i,/^clamav[ /]/i,/^client\//i,/^cobweb\//i,/^custom/i,/^ddg[_-]android/i,/^discourse/i,/^dispatch\/\d/i,/^downcast\//i,/^duckduckgo/i,/^email/i,/^facebook/i,/^getright\//i,/^gozilla\//i,/^hobbit/i,/^hotzonu/i,/^hwcdn\//i,/^igetter\//i,/^jeode\//i,/^jetty\//i,/^jigsaw/i,/^microsoft bits/i,/^movabletype/i,/^mozilla\/\d\.\d\s[\w.-]+$/i,/^mozilla\/\d\.\d\s\(compatible;?(?:\s[\w-.]+\/\d+\.\d+)?\)$/i,/^navermailapp/i,/^netsurf/i,/^offline/i,/^openai\//i,/^owler/i,/^php/i,/^postman/i,/^python/i,/^rank/i,/^read/i,/^reed/i,/^rest/i,/^rss/i,/^snapchat/i,/^space bison/i,/^svn/i,/^swcd /i,/^taringa/i,/^thumbor\//i,/^track/i,/^w3c/i,/^webbandit\//i,/^webcopier/i,/^wget/i,/^whatsapp/i,/^wordpress/i,/^xenu link sleuth/i,/^yahoo/i,/^yandex/i,/^zdm\/\d/i,/^zoom marketplace\//i,/advisor/i,/agent\b/i,/analyzer/i,/archive/i,/ask jeeves\/teoma/i,/audit/i,/bit\.ly\//i,/bluecoat drtr/i,/browsex/i,/burpcollaborator/i,/capture/i,/catch/i,/check\b/i,/checker/i,/chrome-lighthouse/i,/chromeframe/i,/classifier/i,/cloudflare/i,/convertify/i,/crawl/i,/cypress\//i,/dareboost/i,/datanyze/i,/dejaclick/i,/detect/i,/dmbrowser/i,/download/i,/exaleadcloudview/i,/feed/i,/fetcher/i,/firephp/i,/functionize/i,/grab/i,/headless/i,/httrack/i,/hubspot marketing grader/i,/ibisbrowser/i,/infrawatch/i,/insight/i,/inspect/i,/iplabel/i,/java(?!;)/i,/library/i,/linkcheck/i,/mail\.ru\//i,/manager/i,/measure/i,/neustar wpm/i,/node\b/i,/nutch/i,/offbyone/i,/onetrust/i,/optimize/i,/pageburst/i,/pagespeed/i,/parser/i,/phantomjs/i,/pingdom/i,/powermarks/i,/preview/i,/proxy/i,/ptst[ /]\d/i,/retriever/i,/rexx;/i,/rigor/i,/rss\b/i,/scrape/i,/server/i,/sogou/i,/sparkler\//i,/speedcurve/i,/spider/i,/splash/i,/statuscake/i,/supercleaner/i,/synapse/i,/synthetic/i,/tools/i,/torrent/i,/transcoder/i,/url/i,/validator/i,/virtuoso/i,/wappalyzer/i,/webglance/i,/webkit2png/i,/whatcms\//i,/xtate\//i],m=t,b={get os(){return function(){for(var e={name:n.Unknown,version:""},i=0;i<g.length;i++){var o=g[i],r=o[0],a=o[1],s=o[2],l=b.userAgent.match(r);if(null!==l){e.name=a,e.version=v(l[1],s);break}}if(e.name===n.iOS&&0===function(e,i){for(var n=e.split("."),o=i.split("."),r=Math.max(n.length,o.length),a=0;a<r;a++){var t=void 0,s=void 0;if((t=a<n.length?parseInt(n[a],10):0)>(s=a<o.length?parseInt(o[a],10):0))return 1;if(t<s)return-1}return 0}(e.version,"18.6")){var d=/\) Version\/([\d.]+)/.exec(b.userAgent);null!==d&&parseInt(d[1].substring(0,2),10)>=26&&(e.version=d[1])}b.userAgent===t&&(void 0!==w.name&&(e.name=w.name),void 0!==w.version&&(e.version=w.version));return e}()},get engine(){return function(){for(var e={name:r.Unknown,version:""},i=0;i<d.length;i++){var n=d[i],o=n[0],a=n[1],s=n[2],l=b.userAgent.match(o);if(null!==l){e.name=a,e.version=v(l[1],s);break}}b.userAgent===t&&(void 0!==p.name&&(e.name=p.name),void 0!==p.version&&(e.version=p.version));return e}()},get browser(){return function(){for(var e={name:a.Unknown,version:""},i=0;i<u.length;i++){var n=u[i],o=n[0],r=n[1],s=n[2],l=b.userAgent.match(o);if(null!==l){e.name=r,e.version=v(l[1],s);break}}b.userAgent===t&&(void 0!==f.name&&(e.name=f.name),void 0!==f.version&&(e.version=f.version));return e}()},get userAgent(){return m},set userAgent(e){m=e},get locale(){return function(){var e={language:null,languages:[],timezone:null,timezoneOffset:0,isRTL:!1},i=null;function n(e){for(var i=0;i<e.length;i++)o(e[i])}function o(i){"string"==typeof(i=k(i))&&-1===e.languages.indexOf(i)&&(null===e.language&&(e.language=i),e.languages.push(i))}if("undefined"!=typeof Intl){try{o(Intl.DateTimeFormat().resolvedOptions().locale)}catch(e){}try{e.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}void 0!==globalThis.navigator&&(void 0!==globalThis.navigator.languages&&n(globalThis.navigator.languages),void 0!==globalThis.navigator.language&&o(globalThis.navigator.language),void 0!==globalThis.navigator.userLanguage&&o(globalThis.navigator.userLanguage),void 0!==globalThis.navigator.browserLanguage&&o(globalThis.navigator.browserLanguage),void 0!==globalThis.navigator.systemLanguage&&o(globalThis.navigator.systemLanguage));try{e.timezoneOffset=(new Date).getTimezoneOffset()}catch(e){}if("string"==typeof e.language){if("undefined"!=typeof Intl&&void 0!==Intl.Locale)try{var r=new Intl.Locale(e.language);"function"==typeof r.getTextInfo?i="rtl"===r.getTextInfo().direction:void 0!==r.textInfo&&(i="rtl"===r.textInfo.direction)}catch(e){}if("boolean"!=typeof i){var a=/^([A-Za-z]{1,8})(?:[-_][A-Za-z0-9]{1,8})*$/.exec(e.language);if(null!==a)for(var t=a[1].toLowerCase(),s=0;s<l.length;s++)if(l[s]===t){i=!0;break}}}"boolean"==typeof i&&(e.isRTL=i);return e}()},get device(){return b.userAgent===t&&null!==h?h:b.os.name===n.iOS||b.os.name===n.Android?o.Mobile:b.os.name===n.Windows||b.os.name===n.MacOS?o.Desktop:o.Unknown},get renderer(){return function(){if(void 0===globalThis.document)return"";var e=globalThis.document.createElement("canvas");if("function"!=typeof e.getContext)return"";var i=e.getContext("webgl2")||e.getContext("experimental-webgl")||e.getContext("webgl");if(null===i)return"";if(i instanceof WebGLRenderingContext||"getParameter"in i&&"function"==typeof i.getParameter){var n=i.getExtension("WEBGL_debug_renderer_info");return null===n?i.getParameter(i.RENDERER):i.getParameter(n.UNMASKED_RENDERER_WEBGL)}return""}()},get isWebview(){return/; ?wv|applewebkit(?!.*safari)/i.test(b.userAgent)},get isNode(){return void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node},get isStandalone(){return b.os.name===n.iOS?"standalone"in globalThis.navigator&&!!globalThis.navigator.standalone:"matchMedia"in globalThis&&globalThis.matchMedia("(display-mode: standalone)").matches},get isBot(){return function(){for(var e=0;e<c.length;e++)if(c[e].test(b.userAgent))return!0;return!1}()},Constants:{OS:n,Engines:r,Browsers:a,Devices:o},Errors:{}},w={},f={},p={},h=null;function v(e,i){return"function"==typeof i?i(e):"string"==typeof i?i:void 0===e?"":e}function k(e){if(null==e)return e;if(0===e.length)return null;if("C"===(e=e.replace(/_/g,"-"))||"posix"===e.toLowerCase())return"en-US";if(-1!==e.indexOf("."))return k(e.split(".")[0]);if(-1!==e.indexOf("@"))return k(e.split("@")[0]);var i=e.split("-");return 0===i.length?null:(i[0]=i[0].toLowerCase(),i.length>1&&2===i[1].length&&(i[1]=i[1].toUpperCase()),i.length>2&&4===i[1].length&&(i[1]=i[1].charAt(0).toUpperCase()+i[1].slice(1).toLowerCase()),i.join("-"))}return void 0!==globalThis.navigator&&void 0!==globalThis.navigator.userAgentData&&void 0!==globalThis.navigator.userAgentData.getHighEntropyValues&&globalThis.navigator.userAgentData.getHighEntropyValues(["brands","fullVersionList","mobile","model","platform","platformVersion","architecture","formFactors","bitness","uaFullVersion","wow64"]).then((function(e){try{for(var i=e.fullVersionList||e.brands||[],r=e.platformVersion,t=e.platform,l=b.browser.name,g=null,d=0;d<i.length;d++){var u=null==(v=i[d])?{brand:"",version:""}:"string"==typeof v?{brand:v,version:""}:{brand:v.brand,version:v.version},c=u.version,m=u.brand;/not.a.brand/i.test(m)||((null===g||/Chrom/.test(g)&&"Chromium"!==m||"Edge"===g&&/WebView2/.test(m))&&(m=s[m]||m,null!==(g=l)&&!/Chrom/.test(g)&&/Chrom/.test(m)||("Chrome"===(l=m)||"Chrome WebView"===l||"Chrome Headless"===l?f.name=a.Chrome:"Edge"===l||"Edge WebView2"===l?f.name=a.Edge:"Opera Mobi"===l&&(f.name=a.Opera),f.version=c),g=m),"Chromium"===m&&(p.version=c))}"string"==typeof r&&(b.os.name===n.Windows?w.version=parseInt(r.split(".")[0],10)>=13?"11":"10":w.version=r),"string"==typeof t&&(/android/i.test(t)?w.name=n.Android:/ios|iphone|ipad/i.test(t)?w.name=n.iOS:/windows|win32/i.test(t)?w.name=n.Windows:/macos|macintel/i.test(t)&&(w.name=n.MacOS)),!0===e.mobile&&(h=o.Mobile)}catch(e){}var v})),b}));