UNPKG

native-fn

Version:
2 lines (1 loc) 14.4 kB
"use strict";var e;!function(e){e.Unknown="unknown",e.Light="light",e.Dark="dark"}(e||(e={}));var i,n,r,o,a=void 0!==globalThis.matchMedia?globalThis.matchMedia("(prefers-color-scheme: dark)"):{matches:!1,media:"not all",onchange:null,addListener:function(){},removeListener:function(){},addEventListener:function(){},removeEventListener:function(){},dispatchEvent:function(){return!1}},t="not all"!==a.media,s="document"in globalThis?globalThis.document.createElement("canvas").getContext("2d",{willReadFrequently:!0}):null,l=[];function g(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 d(e){return void 0===e?"":e.replace(/_/g,".")}!function(e){e.Unknown="Unknown",e.Android="Android",e.iOS="iOS",e.Windows="Windows",e.MacOS="MacOS"}(i||(i={})),function(e){e.Unknown="Unknown",e.Mobile="Mobile",e.Desktop="Desktop"}(n||(n={})),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"}(o||(o={}));var u=void 0!==globalThis.navigator&&"string"==typeof globalThis.navigator.userAgent?globalThis.navigator.userAgent:"",c={"Google Chrome":"Chrome","Microsoft Edge":"Edge","Microsoft Edge WebView2":"Edge WebView2","Android WebView":"Chrome WebView",HeadlessChrome:"Chrome Headless",OperaMobile:"Opera Mobi"},m=["ae","ar","arc","bcc","bqi","ckb","dv","fa","glk","he","iw","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"],v=[[/windows nt (6\.[23]); arm/i,i.Windows,g],[/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i,i.Windows,g],[/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i,i.Windows,g],[/windows nt ?([\d.)]*)(?!.+xbox)/i,i.Windows,g],[/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i,i.Windows,g],[/windows ce\/?([\d.]*)/i,i.Windows,g],[/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i,i.iOS,d],[/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i,i.iOS,d],[/cfnetwork\/.+darwin/i,i.iOS,d],[/mac os x ?([\w. ]*)/i,i.MacOS,d],[/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i,i.MacOS,d],[/droid ([\w.]+)\b.+(android[- ]x86)/i,i.Android],[/android\w*[-\/.; ]?([\d.]*)/i,i.Android]],b=[[/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]],f=[[/\b(?:crmo|crios)\/([\w.]+)/i,o.Chrome],[/webview.+edge\/([\w.]+)/i,o.Edge],[/edg(?:e|ios|a)?\/([\w.]+)/i,o.Edge],[/opera mini\/([-\w.]+)/i,o.Opera],[/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i,o.Opera],[/opera(?:.+version\/|[\/ ]+)([\w.]+)/i,o.Opera],[/opios[\/ ]+([\w.]+)/i,o.Opera],[/\bop(?:rg)?x\/([\w.]+)/i,o.Opera],[/\bopr\/([\w.]+)/i,o.Opera],[/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i,o.IE],[/(?:ms|\()ie ([\w.]+)/i,o.IE],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i,o.IE],[/\bfocus\/([\w.]+)/i,o.Firefox],[/\bopt\/([\w.]+)/i,o.Opera],[/coast\/([\w.]+)/i,o.Opera],[/fxios\/([\w.-]+)/i,o.Firefox],[/samsungbrowser\/([\w.]+)/i,o.SamsungInternet],[/headlesschrome(?:\/([\w.]+)| )/i,o.Chrome],[/wv\).+chrome\/([\w.]+).+edgw\//i,o.Edge],[/ wv\).+(chrome)\/([\w.]+)/i,o.Chrome],[/chrome\/([\w.]+) mobile/i,o.Chrome],[/chrome\/v?([\w.]+)/i,o.Chrome],[/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i,o.Safari],[/iphone .*mobile(?:\/\w+ | ?)safari/i,o.Safari],[/version\/([\w.,]+) .*safari/i,o.Safari],[/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i,o.Safari,"1"],[/(?:mobile|tablet);.*firefox\/([\w.-]+)/i,o.Firefox],[/mobile vr; rv:([\w.]+)\).+firefox/i,o.Firefox],[/firefox\/([\w.]+)/i,o.Firefox]],w=[/ 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],h=u,p={get os(){return function(){for(var e={name:i.Unknown,version:""},n=0;n<v.length;n++){var r=v[n],o=r[0],a=r[1],t=r[2],s=p.userAgent.match(o);if(null!==s){e.name=a,e.version=E(s[1],t);break}}if(e.name===i.iOS&&0===function(e,i){for(var n=e.split("."),r=i.split("."),o=Math.max(n.length,r.length),a=0;a<o;a++){var t=void 0,s=void 0;if((t=a<n.length?parseInt(n[a],10):0)>(s=a<r.length?parseInt(r[a],10):0))return 1;if(t<s)return-1}return 0}(e.version,"18.6")){var l=/\) Version\/([\d.]+)/.exec(p.userAgent);null!==l&&parseInt(l[1].substring(0,2),10)>=26&&(e.version=l[1])}p.userAgent===u&&(void 0!==k.name&&(e.name=k.name),void 0!==k.version&&(e.version=k.version));return e}()},get engine(){return function(){for(var e={name:r.Unknown,version:""},i=0;i<b.length;i++){var n=b[i],o=n[0],a=n[1],t=n[2],s=p.userAgent.match(o);if(null!==s){e.name=a,e.version=E(s[1],t);break}}p.userAgent===u&&(void 0!==x.name&&(e.name=x.name),void 0!==x.version&&(e.version=x.version));return e}()},get browser(){return function(){for(var e={name:o.Unknown,version:""},i=0;i<f.length;i++){var n=f[i],r=n[0],a=n[1],t=n[2],s=p.userAgent.match(r);if(null!==s){e.name=a,e.version=E(s[1],t);break}}p.userAgent===u&&(void 0!==T.name&&(e.name=T.name),void 0!==T.version&&(e.version=T.version));return e}()},get userAgent(){return h},set userAgent(e){h=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++)r(e[i])}function r(i){"string"==typeof(i=L(i))&&-1===e.languages.indexOf(i)&&(null===e.language&&(e.language=i),e.languages.push(i))}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&&n(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){}if("string"==typeof e.language){if("undefined"!=typeof Intl&&void 0!==Intl.Locale)try{var o=new Intl.Locale(e.language);"function"==typeof o.getTextInfo?i="rtl"===o.getTextInfo().direction:void 0!==o.textInfo&&(i="rtl"===o.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<m.length;s++)if(m[s]===t){i=!0;break}}}"boolean"==typeof i&&(e.isRTL=i);return e}()},get device(){return p.userAgent===u&&null!==y?y:p.os.name===i.iOS||p.os.name===i.Android?n.Mobile:p.os.name===i.Windows||p.os.name===i.MacOS?n.Desktop:n.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(p.userAgent)},get isNode(){return void 0!==globalThis.process&&void 0!==globalThis.process.versions&&void 0!==globalThis.process.versions.node},get isStandalone(){return p.os.name===i.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<w.length;e++)if(w[e].test(p.userAgent))return!0;return!1}()},Constants:{OS:i,Engines:r,Browsers:o,Devices:n},Errors:{}},k={},T={},x={},y=null;function E(e,i){return"function"==typeof i?i(e):"string"==typeof i?i:void 0===e?"":e}function L(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 L(e.split(".")[0]);if(-1!==e.indexOf("@"))return L(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("-"))}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 r=e.fullVersionList||e.brands||[],a=e.platformVersion,t=e.platform,s=p.browser.name,l=null,g=0;g<r.length;g++){var d=null==(v=r[g])?{brand:"",version:""}:"string"==typeof v?{brand:v,version:""}:{brand:v.brand,version:v.version},u=d.version,m=d.brand;/not.a.brand/i.test(m)||((null===l||/Chrom/.test(l)&&"Chromium"!==m||"Edge"===l&&/WebView2/.test(m))&&(m=c[m]||m,null!==(l=s)&&!/Chrom/.test(l)&&/Chrom/.test(m)||("Chrome"===(s=m)||"Chrome WebView"===s||"Chrome Headless"===s?T.name=o.Chrome:"Edge"===s||"Edge WebView2"===s?T.name=o.Edge:"Opera Mobi"===s&&(T.name=o.Opera),T.version=u),l=m),"Chromium"===m&&(x.version=u))}"string"==typeof a&&(p.os.name===i.Windows?k.version=parseInt(a.split(".")[0],10)>=13?"11":"10":k.version=a),"string"==typeof t&&(/android/i.test(t)?k.name=i.Android:/ios|iphone|ipad/i.test(t)?k.name=i.iOS:/windows|win32/i.test(t)?k.name=i.Windows:/macos|macintel/i.test(t)&&(k.name=i.MacOS)),!0===e.mobile&&(y=n.Mobile)}catch(e){}var v}));var I=null,C=null,O={get value(){return p.browser.name===o.SamsungInternet?A():M()},onchange:function(e,i){void 0===i&&(i=!1);var n={fn:e,capture:!1,once:!1};"boolean"==typeof i&&(i={capture:i});void 0!==i.capture&&(n.capture=i.capture);void 0!==i.once&&(n.once=i.once);void 0!==i.signal&&(n.signal=i.signal);var r=N(n);-1===r?(l.push(n),1===l.length&&(p.browser.name===o.SamsungInternet?(I=A(),C=globalThis.setInterval((function(){var e=A();e!==I&&(I=e,W(e))}),2e3)):(t=n.capture,I=M(),"function"==typeof a.addEventListener?a.addEventListener("change",S,t):"function"==typeof a.addListener&&a.addListener(S)))):l[r].once&&!n.once&&(l[r].once=!1);var t;void 0!==n.signal&&(n.signal.aborted?z(n):n.signal.addEventListener("abort",(function e(){void 0!==n.signal&&n.signal.removeEventListener("abort",e),z(n)})));return function(){z(n)}},Constants:{Appearances:e},Errors:{}};function A(){var i=new Image;if(i.src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMXYxSDB6Ii8+PC9zdmc+",null===s)return e.Light;s.drawImage(i,0,0);var n=s.getImageData(0,0,1,1).data;return(n[0]&n[1]&n[2])<255?e.Dark:e.Light}function M(){return t?a.matches?e.Dark:e.Light:e.Unknown}function S(i){var n;(n=i.matches?e.Dark:e.Light)!==I&&W(I=n)}function W(e){for(var i=0;i<l.length;i++){var n=l[i];n.fn(e),n.once&&z(n)}}function z(e){var i,n=N(e);-1!==n&&l.splice(n,1),0===l.length&&(p.browser.name===o.SamsungInternet?(I=null,null!==C&&(clearInterval(C),C=null)):(i=e.capture,I=null,"function"==typeof a.removeEventListener?a.removeEventListener("change",S,i):"function"==typeof a.removeListener&&a.removeListener(S)))}function N(e){for(var i=0;i<l.length;i++)if(l[i].fn===e.fn&&l[i].capture===e.capture)return i;return-1}module.exports=O;