UNPKG

native-fn

Version:
2 lines (1 loc) 13 kB
"use strict";var e,o,r,i,n;!function(e){e.Unknown="Unknown",e.Android="Android",e.iOS="iOS",e.Windows="Windows",e.MacOS="MacOS"}(e||(e={})),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"}(i||(i={})),function(e){e.Unknown="Unknown",e.ReactNative="ReactNative",e.Electron="Electron",e.Cordova="Cordova"}(n||(n={}));var a=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",t={"Google Chrome":"Chrome","Microsoft Edge":"Edge","Microsoft Edge WebView2":"Edge WebView2","Android WebView":"Chrome WebView",HeadlessChrome:"Chrome Headless",OperaMobile:"Opera Mobi"};var s="loading",l=[],m=0,g={os:{name:e.Unknown,version:""},engine:{name:r.Unknown,version:""},browser:{name:i.Unknown,version:""},crossPlatformFramework:n.Unknown,userAgent:a,get readyState(){return s},get locale(){return function(){var e={language:null,languages:[],timezone:null,timezoneOffset:0};function o(e){for(var o=0;o<e.length;o++)r(e[o])}function r(o){"string"==typeof(o=E(o))&&-1===e.languages.indexOf(o)&&(null===e.language&&(e.language=o),e.languages.push(o))}if(g.crossPlatformFramework===n.ReactNative)try{var i=require("react-native").NativeModules;if(void 0!==i.SettingsManager){var a=i.SettingsManager;if(void 0!==a)if(void 0!==(s="function"==typeof a.getConstants?a.getConstants():a)&&void 0!==s.settings){var t=s.settings;"string"==typeof t.AppleLocale&&r(t.AppleLocale),Array.isArray(t.AppleLanguages)&&t.AppleLanguages.length>0&&o(t.AppleLanguages)}}if(void 0!==i.I18nManager){var s,l=i.I18nManager;if(void 0!==l)void 0!==(s="function"==typeof l.getConstants?l.getConstants():l)&&void 0!==s.localeIdentifier&&r(s.localeIdentifier)}}catch(e){}if(g.crossPlatformFramework===n.Electron)try{var m=require("electron").app;void 0!==m.getLocale&&r(m.getLocale()),void 0!==m.getSystemLocale&&r(m.getSystemLocale()),void 0!==m.getPreferredSystemLanguages&&o(m.getPreferredSystemLanguages())}catch(e){}if("undefined"!=typeof Intl){try{r(Intl.DateTimeFormat().resolvedOptions().locale)}catch(e){}try{e.timezone=Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}void 0!==globalThis.navigator&&(void 0!==globalThis.navigator.languages&&o(globalThis.navigator.languages),void 0!==globalThis.navigator.language&&r(globalThis.navigator.language),void 0!==globalThis.navigator.userLanguage&&r(globalThis.navigator.userLanguage),void 0!==globalThis.navigator.browserLanguage&&r(globalThis.navigator.browserLanguage),void 0!==globalThis.navigator.systemLanguage&&r(globalThis.navigator.systemLanguage));try{e.timezoneOffset=(new Date).getTimezoneOffset()}catch(e){}return e}()},get device(){return this.os.name===e.iOS||this.os.name===e.Android?o.Mobile:this.os.name===e.Windows||this.os.name===e.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 o=e.getContext("webgl2")||e.getContext("experimental-webgl")||e.getContext("webgl");if(null===o)return"";if(o instanceof WebGLRenderingContext||"getParameter"in o&&"function"==typeof o.getParameter){var r=o.getExtension("WEBGL_debug_renderer_info");return null===r?o.getParameter(o.RENDERER):o.getParameter(r.UNMASKED_RENDERER_WEBGL)}return""}()},get isWebview(){return/; ?wv|applewebkit(?!.*safari)/i.test(this.userAgent)},get isNode(){return void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node},get isStandalone(){return this.os.name===e.iOS?"standalone"in globalThis.navigator&&!!globalThis.navigator.standalone:"matchMedia"in globalThis&&globalThis.matchMedia("(display-mode: standalone)").matches},onready:function(e){if("complete"===this.readyState)try{e(this)}catch(e){}else l.push(e)}};function d(e){if(void 0===e)return"";var o={"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!==o?o:e}function c(e){return void 0===e?"":e.replace(/_/g,".")}var v=[[/windows nt (6\.[23]); arm/i,e.Windows,d],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,e.Windows,d],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,e.Windows,d],[/windows nt ?([\d.)]*)(?!.+xbox)/i,e.Windows,d],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,e.Windows,d],[/windows ce\/?([\d.]*)/i,e.Windows,d],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,e.iOS,c],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,e.iOS,c],[/cfnetwork\/.+darwin/i,e.iOS,c],[/mac os x ?([\w. ]*)/i,e.MacOS,c],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,e.MacOS,c],[/droid ([\w.]+)\b.+(android[- ]x86)/i,e.Android],[/android\w*[-\/.; ]?([\d.]*)/i,e.Android]],u=[[/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]],w=[[/\b(?:crmo|crios)\/([\w.]+)/i,i.Chrome],[/webview.+edge\/([\w.]+)/i,i.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,i.Edge],[/opera mini\/([-\w.]+)/i,i.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,i.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,i.Opera],[/opios[\/ ]+([\w.]+)/i,i.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,i.Opera],[/\bopr\/([\w.]+)/i,i.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,i.IE],[/(?:ms|\()ie ([\w.]+)/i,i.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,i.IE],[/\bfocus\/([\w.]+)/i,i.Firefox],[/\bopt\/([\w.]+)/i,i.Opera],[/coast\/([\w.]+)/i,i.Opera],[/fxios\/([\w.-]+)/i,i.Firefox],[/samsungbrowser\/([\w.]+)/i,i.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,i.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,i.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,i.Chrome],[/chrome\/([\w.]+) mobile/i,i.Chrome],[/chrome\/v?([\w.]+)/i,i.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,i.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,i.Safari],[/version\/([\w.,]+) .*safari/i,i.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,i.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,i.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,i.Firefox],[/firefox\/([\w.]+)/i,i.Firefox]];function f(){m--,b()}function b(){if(0===m&&"loading"===s){s="complete";for(var e=0;e<l.length;e++)try{l[e](g)}catch(e){}l.length=0}}function h(e,o){return 10===e.major&&0===e.minor&&e.build>=22e3?"11":10===e.major&&0===e.minor&&e.build<22e3?"10":6===e.major&&3===e.minor?"8.1":6===e.major&&2===e.minor?"8":6===e.major&&1===e.minor?"7":6===e.major&&0===e.minor?"Vista":5===e.major&&1===e.minor||5===e.major&&2===e.minor?"XP":5===e.major&&0===e.minor?"2000":4===e.major&&90===e.minor?"ME":4===e.major&&0===e.minor?"NT 4.0":3===e.major&&51===e.minor?"NT 3.11":o}function p(e,o){return e.major>=24?e.major-9+"."+e.minor+"."+e.build:23===e.major?"14."+e.minor+"."+e.build:22===e.major?"13."+e.minor+"."+e.build:21===e.major?"12."+e.minor+"."+e.build:20===e.major?"11."+e.minor+"."+e.build:19===e.major?"10.15."+e.minor:18===e.major?"10.14."+e.minor:17===e.major?"10.13."+e.minor:16===e.major?"10.12."+e.minor:15===e.major?"10.11."+e.minor:14===e.major?"10.10."+e.minor:13===e.major?"10.9."+e.minor:e.major>=5&&e.major<=12?"10."+(e.major-4)+"."+e.minor:o}function T(e,o){return e.major>=36?"16":35===e.major?"15":34===e.major?"14":33===e.major?"13":32===e.major?"12.1":31===e.major?"12":30===e.major?"11":29===e.major?"10":28===e.major?"9":27===e.major?"8.1":26===e.major?"8.0":25===e.major?"7.1":24===e.major?"7.0":23===e.major?"6.0":22===e.major?"5.1":21===e.major?"5.0":20===e.major||19===e.major?"4.4":18===e.major?"4.3":17===e.major?"4.2":16===e.major?"4.1":15===e.major?"4.0.3":14===e.major?"4.0":13===e.major?"3.2":12===e.major?"3.1":11===e.major?"3.0":10===e.major?"2.3.3":9===e.major?"2.3":8===e.major?"2.2":7===e.major?"2.1":6===e.major?"2.0.1":5===e.major?"2.0":4===e.major?"1.6":3===e.major?"1.5":2===e.major?"1.1":1===e.major?"1.0":o}function j(e,o){return"function"==typeof o?o(e):"string"==typeof o?o:void 0===e?"":e}function k(e){var o=e.split(".");return{major:parseInt(o[0]||"0"),minor:parseInt(o[1]||"0"),build:parseInt(o[2]||"0")}}function O(){if(g.crossPlatformFramework=n.Cordova,void 0!==globalThis.device)switch(globalThis.device.platform){case"Android":g.os={name:e.Android,version:globalThis.device.version};break;case"iOS":g.os={name:e.iOS,version:globalThis.device.version}}f()}function E(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 E(e.split(".")[0]);if(-1!==e.indexOf("@"))return E(e.split("@")[0]);var o=e.split("-");return 0===o.length?null:(o[0]=o[0].toLowerCase(),o.length>1&&2===o[1].length&&(o[1]=o[1].toUpperCase()),o.length>2&&4===o[1].length&&(o[1]=o[1].charAt(0).toUpperCase()+o[1].slice(1).toLowerCase()),o.join("-"))}!function(){(void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.electron||/ electron\//i.test(a))&&(g.crossPlatformFramework=n.Electron),void 0!==globalThis.navigator&&"ReactNative"===globalThis.navigator.product&&(g.crossPlatformFramework=n.ReactNative);for(var r=0;r<v.length;r++){var s=(E=v[r])[0],l=E[1],d=E[2];if(null!==(S=g.userAgent.match(s))){g.os={name:l,version:j(S[1],d)};break}}for(g.os.name===e.iOS&&0===function(e,o){for(var r=e.split("."),i=o.split("."),n=Math.max(r.length,i.length),a=0;a<n;a++){var t=void 0,s=void 0;if((t=a<r.length?parseInt(r[a],10):0)>(s=a<i.length?parseInt(i[a],10):0))return 1;if(t<s)return-1}return 0}(g.os.version,"18.6")&&null!==(y=/\) Version\/([\d.]+)/.exec(g.userAgent))&&parseInt(y[1].substring(0,2),10)>=26&&(g.os.version=y[1]),r=0;r<u.length;r++){s=(E=u[r])[0];var c=E[1];d=E[2];if(null!==(S=g.userAgent.match(s))){g.engine={name:c,version:j(S[1],d)};break}}for(r=0;r<w.length;r++){s=(E=w[r])[0];var E,S,C=E[1];d=E[2];if(null!==(S=g.userAgent.match(s))){g.browser={name:C,version:j(S[1],d)};break}}if(g.crossPlatformFramework===n.ReactNative)try{l=(M=require("react-native").Platform).OS;var y=k(A=""+M.Version);switch(l){case"android":g.os={name:e.Android,version:T(y,A)};break;case"ios":g.os={name:e.iOS,version:A};break;case"windows":g.os={name:e.Windows,version:h(y,A)};break;case"macos":g.os={name:e.MacOS,version:A}}}catch(e){}if(g.isNode)try{var A,M=(l=require("os")).platform();y=k(A=l.release());switch(M){case"win32":g.os={name:e.Windows,version:h(y,A)};break;case"darwin":g.os={name:e.MacOS,version:p(y,A)};break;case"android":g.os={name:e.Android,version:A};break;case"linux":/android/i.test(A)&&(g.os={name:e.Android,version:A})}}catch(e){}void 0!==globalThis.document&&(void 0!==globalThis.device?O():globalThis.document.addEventListener("deviceready",O,!1)),void 0!==globalThis.navigator&&void 0!==globalThis.navigator.userAgentData&&void 0!==globalThis.navigator.userAgentData.getHighEntropyValues&&(m++,globalThis.navigator.userAgentData.getHighEntropyValues(["brands","fullVersionList","mobile","model","platform","platformVersion","architecture","formFactors","bitness","uaFullVersion","wow64"]).then((function(r){try{for(var n=r.fullVersionList||r.brands||[],a=r.platformVersion,s=r.platform,l=g.browser.name,m=null,d=0;d<n.length;d++){var c=null==(w=n[d])?{brand:"",version:""}:"string"==typeof w?{brand:w,version:""}:{brand:w.brand,version:w.version},v=c.version,u=c.brand;/not.a.brand/i.test(u)||((null===m||/Chrom/.test(m)&&"Chromium"!==u||"Edge"===m&&/WebView2/.test(u))&&(u=t[u]||u,null!==(m=l)&&!/Chrom/.test(m)&&/Chrom/.test(u)||("Chrome"===(l=u)||"Chrome WebView"===l||"Chrome Headless"===l?g.browser.name=i.Chrome:"Edge"===l||"Edge WebView2"===l?g.browser.name=i.Edge:"Opera Mobi"===l&&(g.browser.name=i.Opera),g.browser.version=v),m=u),"Chromium"===u&&(g.engine.version=v))}"string"==typeof a&&(g.os.name===e.Windows?g.os.version=parseInt(a.split(".")[0],10)>=13?"11":"10":g.os.version=a),"string"==typeof s&&(/android/i.test(s)?g.os.name=e.Android:/ios|iphone|ipad/i.test(s)?g.os.name=e.iOS:/windows|win32/i.test(s)?g.os.name=e.Windows:/macos|macintel/i.test(s)&&(g.os.name=e.MacOS)),!0===r.mobile&&(g.device=o.Mobile)}catch(e){}finally{f()}var w}))),b()}();var S={installed:!1,name:"Platform",module:g,Constants:{OS:e,Devices:o,Engines:r,Browsers:i,CrossPlatformFramework:n},Errors:{}};module.exports=S;