UNPKG

native-fn

Version:
1,400 lines (1,388 loc) 99.7 kB
'use strict'; var version = "1.0.90"; var packageJSON = { version: version}; function resolveWindowsVersion(string) { if (typeof string === 'undefined') return ''; var mapped = { '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' }[string]; if (typeof mapped !== 'undefined') return mapped; return string; } function resolveUnderscoreVersion(string) { if (typeof string === 'undefined') return ''; return string.replace(/_/g, '.'); } var OS; (function (OS) { OS["Unknown"] = "Unknown"; OS["Android"] = "Android"; OS["iOS"] = "iOS"; OS["Windows"] = "Windows"; OS["MacOS"] = "MacOS"; })(OS || (OS = {})); var Devices; (function (Devices) { Devices["Unknown"] = "Unknown"; Devices["Mobile"] = "Mobile"; Devices["Desktop"] = "Desktop"; })(Devices || (Devices = {})); var Engines; (function (Engines) { Engines["Unknown"] = "Unknown"; Engines["EdgeHTML"] = "EdgeHTML"; Engines["ArkWeb"] = "ArkWeb"; Engines["Blink"] = "Blink"; Engines["Presto"] = "Presto"; Engines["WebKit"] = "WebKit"; Engines["Trident"] = "Trident"; Engines["NetFront"] = "NetFront"; Engines["KHTML"] = "KHTML"; Engines["Tasman"] = "Tasman"; Engines["Gecko"] = "Gecko"; })(Engines || (Engines = {})); var Browsers; (function (Browsers) { Browsers["Unknown"] = "Unknown"; Browsers["Chrome"] = "Chrome"; Browsers["Safari"] = "Safari"; Browsers["Edge"] = "Edge"; Browsers["Firefox"] = "Firefox"; Browsers["Opera"] = "Opera"; Browsers["IE"] = "IE"; Browsers["SamsungInternet"] = "SamsungInternet"; })(Browsers || (Browsers = {})); var USER_AGENT = typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgent === 'string' ? globalThis.navigator.userAgent : ''; var HIGH_ENTROPY_BRAND_NAME_MAP = { 'Google Chrome': 'Chrome', 'Microsoft Edge': 'Edge', 'Microsoft Edge WebView2': 'Edge WebView2', 'Android WebView': 'Chrome WebView', 'HeadlessChrome': 'Chrome Headless', 'OperaMobile': 'Opera Mobi', }; var RTL_LANGUAGES = ['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'iw', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']; var OS_RESOLVER_MAP = [ [/windows nt (6\.[23]); arm/i, OS.Windows, resolveWindowsVersion], [/windows (?:phone|mobile|iot)(?: os)?[\/ ]?([\d.]*( se)?)/i, OS.Windows, resolveWindowsVersion], [/windows[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i, OS.Windows, resolveWindowsVersion], [/windows nt ?([\d.)]*)(?!.+xbox)/i, OS.Windows, resolveWindowsVersion], [/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d.;]*)/i, OS.Windows, resolveWindowsVersion], [/windows ce\/?([\d.]*)/i, OS.Windows, resolveWindowsVersion], [/[adehimnop]{4,7}\b(?:.*os (\w+) like mac|; opera)/i, OS.iOS, resolveUnderscoreVersion], [/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\/ ]([\w.]+)/i, OS.iOS, resolveUnderscoreVersion], [/cfnetwork\/.+darwin/i, OS.iOS, resolveUnderscoreVersion], [/mac os x ?([\w. ]*)/i, OS.MacOS, resolveUnderscoreVersion], [/(?:macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i, OS.MacOS, resolveUnderscoreVersion], [/droid ([\w.]+)\b.+(android[- ]x86)/i, OS.Android], [/android\w*[-\/.; ]?([\d.]*)/i, OS.Android], ]; var ENGINE_RESOLVER_MAP = [ [/windows.+ edge\/([\w.]+)/i, Engines.EdgeHTML], [/arkweb\/([\w.]+)/i, Engines.ArkWeb], [/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i, Engines.Blink], [/presto\/([\w.]+)/i, Engines.Presto], [/webkit\/([\w.]+)/i, Engines.WebKit], [/trident\/([\w.]+)/i, Engines.Trident], [/netfront\/([\w.]+)/i, Engines.NetFront], [/khtml[\/ ]\(?([\w.]+)/i, Engines.KHTML], [/tasman[\/ ]\(?([\w.]+)/i, Engines.Tasman], [/rv:([\w.]{1,9})\b.+gecko/i, Engines.Gecko] ]; var BROWSER_RESOLVER_MAP = [ [/\b(?:crmo|crios)\/([\w.]+)/i, Browsers.Chrome], [/webview.+edge\/([\w.]+)/i, Browsers.Edge], [/edg(?:e|ios|a)?\/([\w.]+)/i, Browsers.Edge], [/opera mini\/([-\w.]+)/i, Browsers.Opera], [/opera [mobileta]{3,6}\b.+version\/([-\w.]+)/i, Browsers.Opera], [/opera(?:.+version\/|[\/ ]+)([\w.]+)/i, Browsers.Opera], [/opios[\/ ]+([\w.]+)/i, Browsers.Opera], [/\bop(?:rg)?x\/([\w.]+)/i, Browsers.Opera], [/\bopr\/([\w.]+)/i, Browsers.Opera], [/iemobile(?:browser|boat|jet)[\/ ]?([\d.]*)/i, Browsers.IE], [/(?:ms|\()ie ([\w.]+)/i, Browsers.IE], [/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i, Browsers.IE], [/\bfocus\/([\w.]+)/i, Browsers.Firefox], [/\bopt\/([\w.]+)/i, Browsers.Opera], [/coast\/([\w.]+)/i, Browsers.Opera], [/fxios\/([\w.-]+)/i, Browsers.Firefox], [/samsungbrowser\/([\w.]+)/i, Browsers.SamsungInternet], [/headlesschrome(?:\/([\w.]+)| )/i, Browsers.Chrome], [/wv\).+chrome\/([\w.]+).+edgw\//i, Browsers.Edge], [/ wv\).+(chrome)\/([\w.]+)/i, Browsers.Chrome], [/chrome\/([\w.]+) mobile/i, Browsers.Chrome], [/chrome\/v?([\w.]+)/i, Browsers.Chrome], [/version\/([\w.,]+) .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari], [/iphone .*mobile(?:\/\w+ | ?)safari/i, Browsers.Safari], [/version\/([\w.,]+) .*safari/i, Browsers.Safari], [/webkit.+?(?:mobile ?safari|safari)(\/[\w.]+)/i, Browsers.Safari, '1'], [/(?:mobile|tablet);.*firefox\/([\w.-]+)/i, Browsers.Firefox], [/mobile vr; rv:([\w.]+)\).+firefox/i, Browsers.Firefox], [/firefox\/([\w.]+)/i, Browsers.Firefox], ]; var BOT_REGEXP = [ / 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 ]; var _a$1, _b, _c, _d, _e; var AppOpenState; (function (AppOpenState) { AppOpenState[AppOpenState["Scheme"] = 0] = "Scheme"; AppOpenState[AppOpenState["Universal"] = 1] = "Universal"; AppOpenState[AppOpenState["Intent"] = 2] = "Intent"; AppOpenState[AppOpenState["Fallback"] = 3] = "Fallback"; AppOpenState[AppOpenState["Store"] = 4] = "Store"; })(AppOpenState || (AppOpenState = {})); var MessengerType; (function (MessengerType) { MessengerType["Telephone"] = "telephone"; MessengerType["Message"] = "message"; MessengerType["Mail"] = "mail"; })(MessengerType || (MessengerType = {})); var SettingType; (function (SettingType) { SettingType["General"] = "general"; SettingType["Network"] = "network"; SettingType["Display"] = "display"; SettingType["Appearance"] = "appearance"; SettingType["Accessibility"] = "accessibility"; SettingType["Battery"] = "battery"; SettingType["Datetime"] = "datetime"; SettingType["Language"] = "language"; SettingType["Accounts"] = "accounts"; SettingType["Storage"] = "storage"; })(SettingType || (SettingType = {})); var SETTING_URL = (_a$1 = {}, _a$1[OS.Android] = (_b = {}, _b[SettingType.General] = 'intent:#Intent;action=android.settings.SETTINGS;end', _b[SettingType.Network] = 'intent:#Intent;action=android.settings.WIFI_SETTINGS;end', _b[SettingType.Display] = 'intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end', _b[SettingType.Appearance] = 'intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end', _b[SettingType.Accessibility] = 'intent:#Intent;action=android.settings.ACCESSIBILITY_SETTINGS;end', _b[SettingType.Battery] = 'intent:#Intent;action=android.settings.BATTERY_SAVER_SETTINGS;end', _b[SettingType.Datetime] = 'intent:#Intent;action=android.settings.DATE_SETTINGS;end', _b[SettingType.Language] = 'intent:#Intent;action=android.settings.LOCALE_SETTINGS;end', _b[SettingType.Accounts] = 'intent:#Intent;action=android.settings.SYNC_SETTINGS;end', _b[SettingType.Storage] = 'intent:#Intent;action=android.settings.INTERNAL_STORAGE_SETTINGS;end', _b), _a$1[OS.Windows] = (_c = {}, _c[SettingType.General] = 'ms-settings:system', _c[SettingType.Network] = 'ms-settings:network', _c[SettingType.Display] = 'ms-settings:display', _c[SettingType.Appearance] = 'ms-settings:colors', _c[SettingType.Accessibility] = 'ms-settings:easeofaccess', _c[SettingType.Battery] = 'ms-settings:batterysaver', _c[SettingType.Datetime] = 'ms-settings:dateandtime', _c[SettingType.Language] = 'ms-settings:regionlanguage', _c[SettingType.Accounts] = 'ms-settings:emailandaccounts', _c[SettingType.Storage] = 'ms-settings:storagesense', _c), _a$1[OS.MacOS] = (_d = {}, _d[SettingType.General] = 'x-apple.systempreferences:', _d[SettingType.Network] = 'x-apple.systempreferences:com.apple.preference.network', _d[SettingType.Display] = 'x-apple.systempreferences:com.apple.preference.displays', _d[SettingType.Appearance] = 'x-apple.systempreferences:com.apple.preference.general', _d[SettingType.Accessibility] = 'x-apple.systempreferences:com.apple.preference.universalaccess', _d[SettingType.Battery] = 'x-apple.systempreferences:com.apple.preference.energysaver', _d[SettingType.Datetime] = 'x-apple.systempreferences:com.apple.preference.datetime', _d[SettingType.Language] = 'x-apple.systempreferences:com.apple.Localization', _d[SettingType.Accounts] = 'x-apple.systempreferences:com.apple.preferences.internetaccounts', _d[SettingType.Storage] = 'x-apple.systempreferences:', _d), _a$1['MacOS13+'] = (_e = {}, _e[SettingType.General] = 'x-apple.systempreferences:com.apple.General-Settings.extension', _e[SettingType.Network] = 'x-apple.systempreferences:com.apple.Network-Settings.extension', _e[SettingType.Display] = 'x-apple.systempreferences:com.apple.Displays-Settings.extension', _e[SettingType.Appearance] = 'x-apple.systempreferences:com.apple.Appearance-Settings.extension', _e[SettingType.Accessibility] = 'x-apple.systempreferences:com.apple.Accessibility-Settings.extension', _e[SettingType.Battery] = 'x-apple.systempreferences:com.apple.Battery-Settings.extension', _e[SettingType.Datetime] = 'x-apple.systempreferences:com.apple.Date-Time-Settings.extension', _e[SettingType.Language] = 'x-apple.systempreferences:com.apple.Localization-Settings.extension', _e[SettingType.Accounts] = 'x-apple.systempreferences:com.apple.Internet-Accounts-Settings.extension', _e[SettingType.Storage] = 'x-apple.systempreferences:com.apple.settings.Storage', _e), _a$1); function createCustomError(name, Base) { if (Base === void 0) { Base = Error; } function CustomError(message) { if (!(this instanceof CustomError)) return new CustomError(message); var error = new Base(message || ''); if (typeof Object.setPrototypeOf === 'function') Object.setPrototypeOf(error, CustomError.prototype); else error.__proto__ = CustomError.prototype; error.name = name; if (typeof message !== 'undefined') error.message = message; if (typeof Symbol !== 'undefined' && Symbol.toStringTag) { try { Object.defineProperty(error, Symbol.toStringTag, { value: name, writable: false, enumerable: false, configurable: true }); } catch (_) { } } if (typeof Error.captureStackTrace === 'function') { Error.captureStackTrace(error, CustomError); } else if (Base.captureStackTrace && typeof Base.captureStackTrace === 'function') { Base.captureStackTrace(error, CustomError); } else { try { var tempError = new Base(); if (tempError.stack) error.stack = tempError.stack; } catch (_) { } } return error; } CustomError.prototype = Object.create(Base.prototype, { constructor: { value: CustomError, writable: true, enumerable: false, configurable: true } }); try { Object.defineProperty(CustomError.prototype, 'name', { value: name, writable: true, enumerable: false, configurable: true }); } catch (_) { try { CustomError.prototype.name = name; } catch (_) { } } try { Object.defineProperty(CustomError, 'name', { value: name, writable: false, enumerable: false, configurable: true }); } catch (_) { } return CustomError; } var URLOpenError = createCustomError('URLOpenError'); function compareVersion(lhs, rhs) { var pa = lhs.split('.'); var pb = rhs.split('.'); var length = Math.max(pa.length, pb.length); for (var i = 0; i < length; i++) { var a = void 0; var b = void 0; if (i < pa.length) a = parseInt(pa[i], 10); else a = 0; if (i < pb.length) b = parseInt(pb[i], 10); else b = 0; if (a > b) return 1; if (a < b) return -1; } return 0; } function getTopmostWindow() { try { if (globalThis.top && globalThis.top !== window) { void globalThis.top.location.href; return globalThis.top; } } catch (_) { } return window; } function createHiddenElement(tagName, focusable) { if (focusable === void 0) { focusable = true; } if (typeof globalThis.document === 'undefined') return undefined; var element = globalThis.document.createElement(tagName); if ('width' in element) element.width = '0'; if ('height' in element) element.height = '0'; if ('border' in element) element.border = '0'; if ('frameBorder' in element) element.frameBorder = '0'; if ('scrolling' in element) element.scrolling = 'no'; if ('cellPadding' in element) element.cellPadding = '0'; if ('cellSpacing' in element) element.cellSpacing = '0'; if ('frame' in element) element.frame = 'void'; if ('rules' in element) element.rules = 'none'; if ('noWrap' in element) element.noWrap = true; element.tabIndex = -1; element.setAttribute('role', 'presentation'); if (focusable) { element.style.width = '1px'; element.style.height = '1px'; } else { element.setAttribute('aria-hidden', 'true'); element.style.width = '0'; element.style.height = '0'; element.style.zIndex = '-9999'; element.style.display = 'none'; element.style.visibility = 'hidden'; element.style.pointerEvents = 'none'; } element.style.position = 'absolute'; element.style.top = '0'; element.style.left = '0'; element.style.padding = '0'; element.style.margin = '0'; element.style.border = 'none'; element.style.outline = 'none'; element.style.clip = 'rect(1px, 1px, 1px, 1px)'; element.style.clipPath = 'inset(50%)'; element.style.overflow = 'hidden'; element.style.whiteSpace = 'nowrap'; return element; } function dispatchClickEvent(element, view) { if (view === void 0) { view = window; } var fake; try { fake = new MouseEvent('click', { bubbles: true, cancelable: true, view: view }); } catch (_) { fake = globalThis.document.createEvent('MouseEvents'); fake.initMouseEvent('click', true, true, view, 0, 0, 0, 0, 0, false, false, false, false, 0, null); } element.dispatchEvent(fake); } function capitalize(_) { var groups = []; for (var _i = 1; _i < arguments.length; _i++) { groups[_i - 1] = arguments[_i]; } var result = ''; for (var i = 0; i < groups.length - 2; i++) { var arg = groups[i]; if (typeof arg !== 'undefined') result = result + arg.charAt(0).toUpperCase() + arg.slice(1); } return result; } function preventDefaultPolyfill() { this.returnValue = false; } function stopPropagationPolyfill() { this.cancelBubble = true; } var EVENT_TYPE_REGEXP = /(animation)(start|iteration|end|cancel)|(transition)(start|run|end|cancel)|(fullscreen)(change|error)|(lost|got)(pointer)(capture)|(pointer)(lock)(change|error)|(pointer)(cancel|down|enter|leave|move|out|over|up)/i; var VENDORS = ['', 'webkit', 'moz', 'ms', 'MS', 'o', 'O']; var LEGACY_TYPE_MAP = { 'wheel': ['wheel', 'mousewheel', 'DOMMouseScroll'], 'focus': ['focus', 'focusin'], 'blur': ['blur', 'focusout'], 'beforeinput': ['beforeinput', 'textInput'], }; var EventListenerUtils = { useStd: typeof globalThis.document !== 'undefined' && typeof globalThis.document.addEventListener === 'function', add: function (target, eventListenerOptions) { if (eventListenerOptions === void 0) { eventListenerOptions = { callback: null, options: false }; } var callback = eventListenerOptions.callback; if (typeof target === 'undefined' || callback === null) return; var type = EventListenerUtils.withVender(target, eventListenerOptions.type); var options = eventListenerOptions.options; if (typeof target.addEventListener === 'function') { try { return target.addEventListener(type, callback, options); } catch (_) { } } if (typeof target.addListener === 'function') { if (typeof target.matches === 'boolean') { try { return target.addListener(callback); } catch (_) { } } else { try { return target.addListener(type, callback); } catch (_) { } } } function wrapper(event) { if (typeof event === 'undefined') event = globalThis.event; if (typeof event === 'undefined') return; event.currentTarget = target; if (typeof event.preventDefault !== 'function') event.preventDefault = preventDefaultPolyfill; if (typeof event.stopPropagation !== 'function') event.stopPropagation = stopPropagationPolyfill; if (typeof callback === 'function') callback.call(target, event); else if (callback && typeof callback.handleEvent === 'function') callback.handleEvent.call(target, event); } if (typeof target.attachEvent === 'function') { if (callback.__ieWrapper) return target.attachEvent('on' + type, callback.__ieWrapper); return target.attachEvent('on' + type, callback.__ieWrapper = wrapper); } }, remove: function (target, eventListenerOptions) { if (eventListenerOptions === void 0) { eventListenerOptions = { callback: null, options: false }; } var callback = eventListenerOptions.callback; if (typeof target === 'undefined' || callback === null) return; var type = EventListenerUtils.withVender(target, eventListenerOptions.type); var options = eventListenerOptions.options; if (typeof target.removeEventListener === 'function') { try { return target.removeEventListener(type, callback, options); } catch (_) { } } if (typeof target.removeListener === 'function') { if (typeof target.matches === 'boolean') { try { return target.removeListener(callback); } catch (_) { } } else { try { return target.removeListener(type, callback); } catch (_) { } } } if (typeof target.detachEvent === 'function') { var wrapper = callback.__ieWrapper; if (typeof wrapper !== 'undefined') { target.detachEvent('on' + type, wrapper); delete callback.__ieWrapper; } return; } }, withVender: function (target, type) { if (typeof type === 'undefined') return ''; if (target === globalThis.document && ['deviceready', 'pause', 'resume', 'backbutton', 'menubutton', 'searchbutton', 'startcallbutton', 'endcallbutton', 'volumedownbutton', 'volumeupbutton', 'activated', 'cordovacallbackerror'].indexOf(type) > -1) return type; if (typeof target.webkitEnterFullscreen !== 'undefined' && ['webkitbeginfullscreen', 'webkitendfullscreen', 'webkitpresentationmodechanged'].indexOf(type) > -1) return type; var types; if (type in LEGACY_TYPE_MAP) types = LEGACY_TYPE_MAP[type]; else if (EVENT_TYPE_REGEXP.test(type)) types = [type, type.replace(EVENT_TYPE_REGEXP, capitalize)]; else types = [type]; for (var i = 0; i < VENDORS.length; i++) { for (var j = 0; j < types.length; j++) { var name_1 = VENDORS[i] + types[j]; if (typeof target['on' + name_1] !== 'undefined') return name_1; } } return ''; } }; var userAgent = USER_AGENT; var Platform = { get os() { return getOS(); }, get engine() { return getEngine(); }, get browser() { return getBrowser(); }, get userAgent() { return userAgent; }, set userAgent(value) { userAgent = value; }, get locale() { return getLocale(); }, get device() { return getDevice(); }, get renderer() { return getRenderer(); }, get isWebview() { return getIsWebview(); }, get isNode() { return getIsNode(); }, get isStandalone() { return getIsStandalone(); }, get isBot() { return getIsBot(); }, Constants: { OS: OS, Engines: Engines, Browsers: Browsers, Devices: Devices, }, Errors: {}, }; var parsedFromHighEntropyValuesOS = {}; var parsedFromHighEntropyValuesBrowser = {}; var parsedFromHighEntropyValuesEngine = {}; var parsedFromHighEntropyValuesDevice = null; function resolveVersion(string, resolver) { if (typeof resolver === 'function') return resolver(string); if (typeof resolver === 'string') return resolver; if (typeof string === 'undefined') return ''; return string; } function normalizeBrand(entry) { if (entry === null || typeof entry === 'undefined') return { brand: '', version: '' }; if (typeof entry === 'string') return { brand: entry, version: '' }; return { brand: entry.brand, version: entry.version }; } function normalizeLocale(locale) { if (locale === null || typeof locale === 'undefined') return locale; if (locale.length === 0) return null; locale = locale.replace(/_/g, '-'); if (locale === 'C' || locale.toLowerCase() === 'posix') return 'en-US'; if (locale.indexOf('.') !== -1) return normalizeLocale(locale.split('.')[0]); if (locale.indexOf('@') !== -1) return normalizeLocale(locale.split('@')[0]); var parts = locale.split('-'); if (parts.length === 0) return null; parts[0] = parts[0].toLowerCase(); if (parts.length > 1 && parts[1].length === 2) parts[1] = parts[1].toUpperCase(); if (parts.length > 2 && parts[1].length === 4) parts[1] = parts[1].charAt(0).toUpperCase() + parts[1].slice(1).toLowerCase(); return parts.join('-'); } function getRenderer() { if (typeof globalThis.document === 'undefined') return ''; var canvas = globalThis.document.createElement('canvas'); if (typeof canvas.getContext !== 'function') return ''; var context = canvas.getContext('webgl2') || canvas.getContext('experimental-webgl') || canvas.getContext('webgl'); if (context === null) return ''; if (context instanceof WebGLRenderingContext || 'getParameter' in context && typeof context.getParameter === 'function') { var extension = context.getExtension('WEBGL_debug_renderer_info'); if (extension === null) return context.getParameter(context.RENDERER); else return context.getParameter(extension.UNMASKED_RENDERER_WEBGL); } else { return ''; } } function getLocale() { var locale = { language: null, languages: [], timezone: null, offset: 0, isRTL: false, }; var isRTL = null; function addLanguages(language) { for (var i = 0; i < language.length; i++) addLanguage(language[i]); } function addLanguage(language) { language = normalizeLocale(language); if (typeof language === "string" && locale.languages.indexOf(language) === -1) { if (locale.language === null) locale.language = language; locale.languages.push(language); } } if (typeof Intl !== 'undefined') { try { addLanguage(Intl.DateTimeFormat().resolvedOptions().locale); } catch (_) { } try { locale.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; } catch (_) { } } if (typeof globalThis.navigator !== 'undefined') { if (typeof globalThis.navigator.languages !== 'undefined') addLanguages(globalThis.navigator.languages); if (typeof globalThis.navigator.language !== 'undefined') addLanguage(globalThis.navigator.language); if (typeof globalThis.navigator.userLanguage !== 'undefined') addLanguage(globalThis.navigator.userLanguage); if (typeof globalThis.navigator.browserLanguage !== 'undefined') addLanguage(globalThis.navigator.browserLanguage); if (typeof globalThis.navigator.systemLanguage !== 'undefined') addLanguage(globalThis.navigator.systemLanguage); } try { locale.offset = new Date().getTimezoneOffset() * -1; } catch (_) { } if (typeof locale.language === 'string') { if (typeof Intl !== 'undefined' && typeof Intl.Locale !== 'undefined') { try { var intlLocale = new Intl.Locale(locale.language); if (typeof intlLocale.getTextInfo === 'function') isRTL = intlLocale.getTextInfo().direction === 'rtl'; else if (typeof intlLocale.textInfo !== 'undefined') isRTL = intlLocale.textInfo.direction === 'rtl'; } catch (_) { } } if (typeof isRTL !== 'boolean') { var matched = /^([A-Za-z]{1,8})(?:[-_][A-Za-z0-9]{1,8})*$/.exec(locale.language); if (matched !== null) { var language = matched[1].toLowerCase(); for (var i = 0; i < RTL_LANGUAGES.length; i++) { if (RTL_LANGUAGES[i] === language) { isRTL = true; break; } } } } } if (typeof isRTL === 'boolean') locale.isRTL = isRTL; return locale; } function getOS() { var result = { name: OS.Unknown, version: '' }; for (var i = 0; i < OS_RESOLVER_MAP.length; i++) { var map = OS_RESOLVER_MAP[i]; var regexp = map[0]; var os = map[1]; var resolver = map[2]; var matched = Platform.userAgent.match(regexp); if (matched !== null) { result.name = os; result.version = resolveVersion(matched[1], resolver); break; } } if (result.name === OS.iOS && compareVersion(result.version, '18.6') === 0) { var version = /\) Version\/([\d.]+)/.exec(Platform.userAgent); if (version !== null && parseInt(version[1].substring(0, 2), 10) >= 26) result.version = version[1]; } if (Platform.userAgent === USER_AGENT) { if (typeof parsedFromHighEntropyValuesOS.name !== 'undefined') result.name = parsedFromHighEntropyValuesOS.name; if (typeof parsedFromHighEntropyValuesOS.version !== 'undefined') result.version = parsedFromHighEntropyValuesOS.version; } return result; } function getEngine() { var result = { name: Engines.Unknown, version: '' }; for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) { var map = ENGINE_RESOLVER_MAP[i]; var regexp = map[0]; var engine = map[1]; var resolver = map[2]; var matched = Platform.userAgent.match(regexp); if (matched !== null) { result.name = engine; result.version = resolveVersion(matched[1], resolver); break; } } if (Platform.userAgent === USER_AGENT) { if (typeof parsedFromHighEntropyValuesEngine.name !== 'undefined') result.name = parsedFromHighEntropyValuesEngine.name; if (typeof parsedFromHighEntropyValuesEngine.version !== 'undefined') result.version = parsedFromHighEntropyValuesEngine.version; } return result; } function getBrowser() { var result = { name: Browsers.Unknown, version: '' }; for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) { var map = BROWSER_RESOLVER_MAP[i]; var regexp = map[0]; var browser = map[1]; var resolver = map[2]; var matched = Platform.userAgent.match(regexp); if (matched !== null) { result.name = browser; result.version = resolveVersion(matched[1], resolver); break; } } if (Platform.userAgent === USER_AGENT) { if (typeof parsedFromHighEntropyValuesBrowser.name !== 'undefined') result.name = parsedFromHighEntropyValuesBrowser.name; if (typeof parsedFromHighEntropyValuesBrowser.version !== 'undefined') result.version = parsedFromHighEntropyValuesBrowser.version; } return result; } function getDevice() { if (Platform.userAgent === USER_AGENT && parsedFromHighEntropyValuesDevice !== null) return parsedFromHighEntropyValuesDevice; if (Platform.os.name === OS.iOS || Platform.os.name === OS.Android) return Devices.Mobile; if (Platform.os.name === OS.Windows || Platform.os.name === OS.MacOS) return Devices.Desktop; return Devices.Unknown; } function getIsWebview() { return /; ?wv|applewebkit(?!.*safari)/i.test(Platform.userAgent); } function getIsNode() { return typeof globalThis.process !== 'undefined' && typeof globalThis.process.versions !== 'undefined' && typeof globalThis.process.versions.node !== 'undefined'; } function getIsStandalone() { if (Platform.os.name === OS.iOS) return 'standalone' in globalThis.navigator && !!globalThis.navigator.standalone; if (!('matchMedia' in globalThis)) return false; return globalThis.matchMedia('(display-mode: standalone)').matches; } function getIsBot() { for (var i = 0; i < BOT_REGEXP.length; i++) if (BOT_REGEXP[i].test(Platform.userAgent)) return true; return false; } function parseFromHighEntropyValues() { if (typeof globalThis.navigator !== 'undefined' && typeof globalThis.navigator.userAgentData !== 'undefined' && typeof globalThis.navigator.userAgentData.getHighEntropyValues !== 'undefined') { globalThis.navigator.userAgentData.getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'model', 'platform', 'platformVersion', 'architecture', 'formFactors', 'bitness', 'uaFullVersion', 'wow64']) .then(function (result) { try { var brands = result.fullVersionList || result.brands || []; var platformVersion = result.platformVersion; var platform = result.platform; var browserName = Platform.browser.name; var prevBrandName = null; for (var i = 0; i < brands.length; i++) { var brand = normalizeBrand(brands[i]); var brandVersion = brand.version; var brandName = brand.brand; if (/not.a.brand/i.test(brandName)) continue; if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) { brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName; prevBrandName = browserName; if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) { browserName = brandName; if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless') parsedFromHighEntropyValuesBrowser.name = Browsers.Chrome; else if (browserName === 'Edge' || browserName === 'Edge WebView2') parsedFromHighEntropyValuesBrowser.name = Browsers.Edge; else if (browserName === 'Opera Mobi') parsedFromHighEntropyValuesBrowser.name = Browsers.Opera; parsedFromHighEntropyValuesBrowser.version = brandVersion; } prevBrandName = brandName; } if (brandName === 'Chromium') parsedFromHighEntropyValuesEngine.version = brandVersion; } if (typeof platformVersion === 'string') { if (Platform.os.name === OS.Windows) parsedFromHighEntropyValuesOS.version = parseInt(platformVersion.split('.')[0], 10) >= 13 ? '11' : '10'; else parsedFromHighEntropyValuesOS.version = platformVersion; } if (typeof platform === 'string') { if (/android/i.test(platform)) parsedFromHighEntropyValuesOS.name = OS.Android; else if (/ios|iphone|ipad/i.test(platform)) parsedFromHighEntropyValuesOS.name = OS.iOS; else if (/windows|win32/i.test(platform)) parsedFromHighEntropyValuesOS.name = OS.Windows; else if (/macos|macintel/i.test(platform)) parsedFromHighEntropyValuesOS.name = OS.MacOS; } if (result.mobile === true) parsedFromHighEntropyValuesDevice = Devices.Mobile; } catch (_) { } }); } } parseFromHighEntropyValues(); var _a; var App = { open: open, messenger: (_a = {}, _a[MessengerType.Telephone] = openMessengerTelephone, _a[MessengerType.Message] = openMessengerMessage, _a[MessengerType.Mail] = openMessengerMail, _a), setting: setting, file: file, contact: contact, Constants: { AppOpenState: AppOpenState, MessengerType: MessengerType, SettingType: SettingType }, Errors: { URLOpenError: URLOpenError, } }; function getTrackId(bundle) { try { var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://itunes.apple.com/lookup?bundleId=' + bundle, false); xhr.send(); if (xhr.status === 200) { try { return parseLookupBundleIdResponse(JSON.parse(xhr.response)); } catch (_) { return undefined; } } return undefined; } catch (_) { return undefined; } } function parseLookupBundleIdResponse(response) { if (typeof response.results === 'undefined') return undefined; var results = response.results; if (results.length === 0) return undefined; var result = results[0]; if (typeof result === 'undefined') return undefined; return "" + result.trackId; } function createIntentURL(scheme, packageName, fallback) { var split = scheme.split('://'); var prefix = split[0]; var suffix = split[1]; var intent = 'intent://'; if (typeof suffix !== 'undefined') intent = intent + suffix; intent = intent + '#Intent;' + 'scheme=' + prefix + ';' + 'action=android.intent.action.VIEW;' + 'category=android.intent.category.BROWSABLE;'; if (typeof packageName !== 'undefined') intent = intent + 'package=' + packageName + ';'; if (typeof fallback !== 'undefined' && typeof fallback === 'string') intent = intent + 'S.browser_fallback_url=' + encodeURIComponent(fallback) + ';'; else if (typeof packageName !== 'undefined') intent = intent + 'S.browser_fallback_url=' + encodeURIComponent(createAppStoreURL(packageName, OS.Android)) + ';'; return intent + 'end'; } function parseIntentURL(intent) { var parsed = {}; var split = intent.split('#Intent;'); var host = split[0].substring(9); var suffix = split[1]; var parameterString = suffix.substring(0, suffix.length - 4); var parameters = parameterString.split(';'); var extras = {}; for (var i = 0; i < parameters.length; i++) { var part = parameters[i]; var index = part.indexOf('='); if (index !== -1) extras[part.substring(0, index)] = part.substring(index + 1); } if (typeof extras['scheme'] !== 'undefined') parsed.scheme = (extras['scheme'] + '://' + host); if (typeof extras['package'] !== 'undefined') parsed.packageName = extras['package']; if (typeof extras['S.browser_fallback_url'] !== 'undefined') parsed.fallback = extras['S.browser_fallback_url']; return parsed; } function createAppStoreURL(packageName, os) { if (typeof packageName === 'undefined') return undefined; switch (os) { case OS.Android: return 'market://details?id=' + packageName; case OS.iOS: return 'itms-apps://itunes.apple.com/app/id' + packageName + '?mt=8'; case OS.Windows: return 'ms-windows-store://pdp/?ProductId=' + packageName; case OS.MacOS: return 'macappstore://itunes.apple.com/app/id' + packageName + '?mt=12'; default: throw new URLOpenError('Unsupported OS: \"' + Platform.userAgent + '\"'); } } function createWebStoreURL(packageName, os) { if (typeof packageName === 'undefined') return undefined; switch (os) { case OS.Android: return 'https://play.google.com/store/apps/details?id=' + packageName; case OS.iOS: return 'https://itunes.apple.com/app/id' + packageName + '?mt=8'; case OS.Windows: return 'https://apps.microsoft.com/detail/' + packageName; case OS.MacOS: return 'https://apps.apple.com/app/id' + packageName + '?mt=12'; default: throw new URLOpenError('Unsupported OS: \"' + Platform.userAgent + '\"'); } } function getDefaultTimeoutByOS(os) { switch (os) { case OS.iOS: return 2000; case OS.Android: return 1000; default: return 750; } } function canOpenIntentURL() { if (Platform.os.name !== OS.Android) return false; var version = Platform.browser.version; if (Platform.browser.name === Browsers.SamsungInternet && compareVersion(version, '17.0.1.69') >= 0 && compareVersion(version, '17.0.7.34') < 0) return false; if (Platform.browser.name === Browsers.Firefox && compareVersion(version, '41.0') < 0) return false; if (Platform.browser.name === Browsers.Firefox && compareVersion(version, '58.0') >= 0 && compareVersion(version, '68.11.0') < 0) return false; if (Platform.browser.name === Browsers.Firefox && compareVersion(version, '79.0') >= 0 && compareVersion(version, '81.2.0') < 0) return false; if (Platform.browser.name === Browsers.Firefox && compareVersion(version, '96.0') >= 0 && compareVersion(version, '107.0') < 0) return false; if (Platform.browser.name === Browsers.Opera && compareVersion(version, '14.0') < 0) return false; return !(/(?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/[\w.]+;/i.test(Platform.userAgent) || /instagram[\/ ][-\w.]+/i.test(Platform.userAgent) || /micromessenger\/([\w.]+)/i.test(Platform.userAgent) || /musical_ly(?:.+app_?version\/|_)[\w.]+/i.test(Platform.userAgent) || /ultralite app_version\/[\w.]+/i.test(Platform.userAgent)); } function canOpenUniversalURL() { return Platform.os.name === OS.iOS && compareVersion(Platform.os.version, '9.0') >= 0; } function getURLOpenError(tried) { var triedURLString = ''; for (var i = 0; i < tried.length; i++) triedURLString += '\n' + (i + 1) + ': ' + tried[i]; if (triedURLString.length > 0) triedURLString = '\n' + triedURLString + '\n'; return new URLOpenError('Failed to open any of the provided URLs: ' + triedURLString); } function openURLViaHref(url, index) { var top = getTopmostWindow(); var topDocument = top.document; var a = undefined; try { if (index === 0) { top.location.href = url; return; } a = createHiddenElement('a'); if (typeof a === 'undefined') return; a.href = url; topDocument.body.appendChild(a); dispatchClickEvent(a, top); return a; } catch (_) { } finally { if (typeof a !== 'undefined') { try { topDocument.body.removeChild(a); } catch (_) { } } } } function openURLViaIframe(url) { var top = getTopmostWindow(); var topDocument = top.document; var iframe = undefined; try { iframe = createHiddenElement('iframe'); if (typeof iframe === 'undefined') return; iframe.src = url; topDocument.body.appendChild(iframe); globalThis.setTimeout(function () { if (typeof iframe !== 'undefined') { try { topDocument.body.removeChild(iframe); } catch (_) { } } }, 500); } catch (_) { } return iframe; } function isDocumentHidden() { var top = getTopmostWindow(); var topDocument = top.document; if (topDocument.visibilityState === 'hidden') return true; if (topDocument.webkitVisibilityState === 'hidden') return true; if (topDocument.mozVisibilityState === 'hidden') return true; if (topDocument.msVisibilityState === 'hidden') return true; if (typeof topDocument.hidden !== 'undefined') return topDocument.hidden; if (typeof topDocument.webkitHidden !== 'undefined') return topDocument.webkitHidden; if (typeof topDocument.mozHidden !== 'undefined') return topDocument.mozHidden; if (typeof topDocument.msHidden !== 'undefined') return topDocument.msHidden; if (typeof topDocument.hasFocus === 'function') return !topDocument.hasFocus(); return true; } function hasFocus(document) { if (typeof document.hasFocus === 'function') return document.hasFocus(); return false; } function focus(target) { try { target.focus({ preventScroll: true }); } catch (_) { try { target.focus(); } catch (_) { } } } function restoreFocus() { var top = getTopmostWindow(); var topDocument = top.document; focus(top); if (hasFocus(topDocument)) return true; if (topDocument.body.tabIndex < 0) topDocument.body.tabIndex = -1; focus(topDocument.body); if (hasFocus(topDocument)) return true; var input = undefined; try { input = createHiddenElement('input'); if (typeof input === 'undefined') return false; input.type = 'text'; input.readOnly = true; topDocument.body.appendChild(input); focus(input); try { input.select(); } catch (_) { } if (hasFocus(topDocument)) return true; } catch (_) { } finally { if (typeof input !== 'undefined' && input !== null) { try { input.blur(); } catch (_) { } try { topDocument.body.removeChild(input); } catch (_) { } } } return hasFocus(topDocument); } function tryOpenURL(url, index, timeout) { var top = getTopmostWindow(); var topDocument = top.document; var eventType = { focus: undefined, blur: undefined, visibilitychange: undefined }; var eventTarget = { focus: undefined, blur: undefined, visibilitychange: undefined }; if (typeof globalThis.cordova !== 'undefined') { eventTarget = { focus: topDocument, blur: topDocument }; eventType = { focus: 'resume', blur: 'pause' }; } else if (Platform.os.name === OS.iOS) { if (compareVersion(Platform.os.version, '8.0') >= 0) { eventTarget = { visibilitychange: topDocument }; eventType = { visibilitychange: 'visibilitychange' }; } else { eventTarget = { focus: top, blur: top }; eventType = { focus: 'pageshow', blur: 'pagehide' }; } } else { if (EventListenerUtils.useStd) { eventTarget = { focus: top, blur: top, visibilitychange: topDocument }; eventType = {