web-launch-kit 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"launch-kit.mjs","sources":["../node_modules/web-platform-kit/dist/platform-kit.mjs","../node_modules/web-event-kit/dist/event-kit.mjs","../../utils/get-global.ts","../../utils/create-hidden-element.ts","../node_modules/web-locale-kit/dist/locale-kit.mjs","../../utils/get-id.ts","../../utils/get-topmost-window.ts","../../index.ts"],"sourcesContent":["var version = \"0.0.5\";\nvar packageJSON = {\n\tversion: version};\n\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n if (typeof global !== 'undefined')\n return global;\n return {};\n}\nvar GLOBAL = getGlobal();\nvar NAVIGATOR = GLOBAL.navigator;\nvar USER_AGENT = typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null && typeof NAVIGATOR.userAgent === 'string' ? NAVIGATOR.userAgent : '';\nvar USER_AGENT_DATA = typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null ? NAVIGATOR.userAgentData : undefined;\nvar OS_RESOLVER_MAP = [\n [/windows nt (6\\.[23]); arm/i, 'windows', 'RT'],\n [/windows (?:phone|mobile|iot)(?: os)?[\\/ ]?([\\d.]*( se)?)/i, 'windows'],\n [/win 9x 4\\.90/i, 'windows', 'ME'],\n [/windows[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i, 'windows'],\n [/windows nt ?([\\d.)]*)(?!.+xbox)/i, 'windows', resolveWindowsVersion],\n [/\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d.;]*)/i, 'windows', resolveWindowsVersion],\n [/windows ce\\/?([\\d.]*)/i, 'windows'],\n [/[adehimnop]{4,7}\\b(?:.*os (\\w+) like mac|; opera)/i, 'ios', resolveUnderscoreVersion],\n [/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\\/ ]([\\w.]+)/i, 'ios', resolveUnderscoreVersion],\n [/cfnetwork\\/.+darwin/i, 'ios', resolveUnderscoreVersion],\n [/mac os x ?([\\w. ]*)/i, 'macos', resolveUnderscoreVersion],\n [/(?:macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i, 'macos', resolveUnderscoreVersion],\n [/droid ([\\w.]+)\\b.+(android[- ]x86)/i, 'android'],\n [/android\\w*[-\\/.; ]?([\\d.]*)/i, 'android'],\n];\nvar BROWSER_RESOLVER_MAP = [\n [/\\b(?:crmo|crios)\\/([\\w.]+)/i, 'chrome'],\n [/webview.+edge\\/([\\w.]+)/i, 'edge'],\n [/edg(?:e|ios|a)?\\/([\\w.]+)/i, 'edge'],\n [/opera mini\\/([-\\w.]+)/i, 'opera'],\n [/opera [mobileta]{3,6}\\b.+version\\/([-\\w.]+)/i, 'opera'],\n [/opera(?:.+version\\/|[\\/ ]+)([\\w.]+)/i, 'opera'],\n [/opios[\\/ ]+([\\w.]+)/i, 'opera'],\n [/\\bop(?:rg)?x\\/([\\w.]+)/i, 'opera'],\n [/\\bopr\\/([\\w.]+)/i, 'opera'],\n [/iemobile(?:browser|boat|jet)[\\/ ]?([\\d.]*)/i, 'ie'],\n [/(?:ms|\\()ie ([\\w.]+)/i, 'ie'],\n [/trident.+rv[: ]([\\w.]{1,9})\\b.+like gecko/i, 'ie'],\n [/\\bfocus\\/([\\w.]+)/i, 'firefox'],\n [/\\bopt\\/([\\w.]+)/i, 'opera'],\n [/coast\\/([\\w.]+)/i, 'opera'],\n [/fxios\\/([\\w.-]+)/i, 'firefox'],\n [/samsungbrowser\\/([\\w.]+)/i, 'samsung'],\n [/headlesschrome(?:\\/([\\w.]+)| )/i, 'chrome'],\n [/wv\\).+chrome\\/([\\w.]+).+edgw\\//i, 'edge'],\n [/ wv\\).+chrome\\/([\\w.]+)/i, 'chrome'],\n [/chrome\\/([\\w.]+) mobile/i, 'chrome'],\n [/chrome\\/v?([\\w.]+)/i, 'chrome'],\n [/version\\/([\\w.,]+) .*mobile(?:\\/\\w+ | ?)safari/i, 'safari'],\n [/iphone .*mobile(?:\\/\\w+ | ?)safari/i, 'safari'],\n [/version\\/([\\w.,]+) .*safari/i, 'safari'],\n [/webkit.+?(?:mobile ?safari|safari)(\\/[\\w.]+)/i, 'safari', '1'],\n [/(?:iphone|ipad|ipod).+applewebkit(?!.*safari)/i, 'safari'],\n [/(?:mobile|tablet);.*firefox\\/([\\w.-]+)/i, 'firefox'],\n [/mobile vr; rv:([\\w.]+)\\).+firefox/i, 'firefox'],\n [/firefox\\/([\\w.]+)/i, 'firefox'],\n];\nvar ENGINE_RESOLVER_MAP = [\n [/windows.+ edge\\/([\\w.]+)/i, 'edgeHtml'],\n [/arkweb\\/([\\w.]+)/i, 'arkWeb'],\n [/webkit\\/537\\.36.+chrome\\/(?!27)([\\w.]+)/i, 'blink'],\n [/presto\\/([\\w.]+)/i, 'presto'],\n [/webkit\\/([\\w.]+)/i, 'webKit'],\n [/trident\\/([\\w.]+)/i, 'trident'],\n [/netfront\\/([\\w.]+)/i, 'netFront'],\n [/khtml[\\/ ]\\(?([\\w.]+)/i, 'khtml'],\n [/tasman[\\/ ]\\(?([\\w.]+)/i, 'tasman'],\n [/rv:([\\w.]{1,9})\\b.+gecko/i, 'gecko']\n];\nvar IN_APP_BROWSER_RESOLVER_MAP = [\n [/kakaotalk/i, 'kakaotalk'],\n [/\\bline\\/[\\d.]/i, 'line'],\n [/instagram/i, 'instagram'],\n [/\\bfban\\/|\\bfbav\\/|fb_iab/i, 'facebook'],\n [/naver\\(inapp/i, 'naver'],\n [/daumapps/i, 'daum'],\n [/\\bband\\/[\\d.]/i, 'band'],\n [/micromessenger/i, 'wechat'],\n [/twitter for|twitterandroid/i, 'twitter'],\n [/musical_ly|bytedancewebview|\\btiktok/i, 'tiktok'],\n];\nvar HIGH_ENTROPY_BRAND_NAME_MAP = {\n 'Google Chrome': 'Chrome',\n 'Microsoft Edge': 'Edge',\n 'Microsoft Edge WebView2': 'Edge WebView2',\n 'Android WebView': 'Chrome WebView',\n 'HeadlessChrome': 'Chrome Headless',\n 'OperaMobile': 'Opera Mobi',\n};\nvar currentUserAgent = USER_AGENT;\nvar parsedCache = null;\nvar parsedFromHighEntropyValuesOSName = undefined;\nvar parsedFromHighEntropyValuesOSVersion = undefined;\nvar parsedFromHighEntropyValuesBrowserName = undefined;\nvar parsedFromHighEntropyValuesBrowserVersion = undefined;\nvar parsedFromHighEntropyValuesEngineVersion = undefined;\nvar parsedFromHighEntropyValuesDevice = null;\nvar ready;\nfunction resolveWindowsVersion(string) {\n if (typeof string === 'undefined')\n return '';\n var mapped = {\n '4.90': 'ME',\n '3.51': 'NT 3.51',\n '4.0': 'NT 4.0',\n '5.0': '2000',\n '5.1': 'XP',\n '5.2': 'XP',\n '6.0': 'Vista',\n '6.1': '7',\n '6.2': '8',\n '6.3': '8.1',\n '6.4': '10',\n '10.0': '10'\n }[string.replace(/[^\\d.]/g, '')];\n if (typeof mapped !== 'undefined')\n return mapped;\n return string;\n}\nfunction resolveUnderscoreVersion(string) {\n if (typeof string === 'undefined')\n return '';\n return string.replace(/_/g, '.');\n}\nfunction resolveVersion(string, resolver) {\n if (typeof resolver === 'function')\n return resolver(string);\n if (typeof resolver === 'string')\n return resolver;\n if (typeof string === 'undefined')\n return '';\n return string;\n}\nfunction compareVersion(lhs, rhs) {\n var pa = lhs.split('.');\n var pb = rhs.split('.');\n var length = Math.max(pa.length, pb.length);\n for (var i = 0; i < length; i++) {\n var a = void 0;\n var b = void 0;\n if (i < pa.length)\n a = parseInt(pa[i], 10);\n else\n a = 0;\n if (i < pb.length)\n b = parseInt(pb[i], 10);\n else\n b = 0;\n if (a > b)\n return 1;\n if (a < b)\n return -1;\n }\n return 0;\n}\nfunction parseOS() {\n var name = 'unknown';\n var version = '';\n for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {\n var map = OS_RESOLVER_MAP[i];\n var matched = currentUserAgent.match(map[0]);\n if (matched !== null) {\n name = map[1];\n version = resolveVersion(matched[1], map[2]);\n break;\n }\n }\n if (name === 'ios' && compareVersion(version, '18.6') === 0) {\n var execs = /\\) Version\\/([\\d.]+)/.exec(currentUserAgent);\n if (execs !== null) {\n var major = parseInt(execs[1].split('.')[0], 10);\n if (major >= 26)\n version = execs[1];\n }\n }\n if (currentUserAgent === USER_AGENT) {\n if (typeof parsedFromHighEntropyValuesOSName !== 'undefined')\n name = parsedFromHighEntropyValuesOSName;\n if (typeof parsedFromHighEntropyValuesOSVersion !== 'undefined')\n version = parsedFromHighEntropyValuesOSVersion;\n if (name === 'macos' && typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null && typeof NAVIGATOR.standalone !== 'undefined' && typeof NAVIGATOR.maxTouchPoints === 'number' && NAVIGATOR.maxTouchPoints > 2)\n name = 'ios';\n }\n return {\n name: name,\n version: version\n };\n}\nfunction parseBrowser() {\n var name = 'unknown';\n var version = '';\n for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {\n var map = BROWSER_RESOLVER_MAP[i];\n var matched = currentUserAgent.match(map[0]);\n if (matched !== null) {\n name = map[1];\n version = resolveVersion(matched[1], map[2]);\n break;\n }\n }\n if (currentUserAgent === USER_AGENT) {\n if (typeof parsedFromHighEntropyValuesBrowserName !== 'undefined')\n name = parsedFromHighEntropyValuesBrowserName;\n if (typeof parsedFromHighEntropyValuesBrowserVersion !== 'undefined')\n version = parsedFromHighEntropyValuesBrowserVersion;\n }\n return {\n name: name,\n version: version\n };\n}\nfunction parseEngine() {\n var name = 'unknown';\n var version = '';\n for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {\n var map = ENGINE_RESOLVER_MAP[i];\n var matched = currentUserAgent.match(map[0]);\n if (matched !== null) {\n name = map[1];\n version = resolveVersion(matched[1], map[2]);\n break;\n }\n }\n if (currentUserAgent === USER_AGENT) {\n if (typeof parsedFromHighEntropyValuesEngineVersion !== 'undefined')\n version = parsedFromHighEntropyValuesEngineVersion;\n }\n return {\n name: name,\n version: version\n };\n}\nfunction parseInAppBrowser() {\n for (var i = 0; i < IN_APP_BROWSER_RESOLVER_MAP.length; i++) {\n if (IN_APP_BROWSER_RESOLVER_MAP[i][0].test(currentUserAgent))\n return IN_APP_BROWSER_RESOLVER_MAP[i][1];\n }\n return null;\n}\nfunction parseWebview() {\n if (/; ?wv\\)/i.test(currentUserAgent))\n return true;\n if (/\\bversion\\/[\\d.]+ chrome\\//i.test(currentUserAgent))\n return true;\n if (/\\belectron\\//i.test(currentUserAgent))\n return true;\n if (/iphone|ipad|ipod/i.test(currentUserAgent) && /applewebkit/i.test(currentUserAgent) && /safari/i.test(currentUserAgent) === false)\n return true;\n return parseInAppBrowser() !== null;\n}\nfunction parseDevice() {\n if (currentUserAgent === USER_AGENT && parsedFromHighEntropyValuesDevice !== null)\n return parsedFromHighEntropyValuesDevice;\n var osName = getParsedCache().os.name;\n if (osName === 'ios') {\n if (/ipad/i.test(currentUserAgent) || /macintosh/i.test(currentUserAgent))\n return 'tablet';\n return 'mobile';\n }\n if (osName === 'android')\n return /\\bmobile\\b/i.test(currentUserAgent) ? 'mobile' : 'tablet';\n if (osName === 'windows' || osName === 'macos')\n return 'desktop';\n return 'unknown';\n}\nfunction getParsedCache() {\n if (parsedCache !== null && parsedCache.userAgent === currentUserAgent)\n return parsedCache;\n parsedCache = {\n userAgent: currentUserAgent,\n os: parseOS(),\n browser: parseBrowser(),\n engine: parseEngine(),\n };\n return parsedCache;\n}\nfunction invalidateCache() {\n parsedCache = null;\n parsedFromHighEntropyValuesOSName = undefined;\n parsedFromHighEntropyValuesOSVersion = undefined;\n parsedFromHighEntropyValuesBrowserName = undefined;\n parsedFromHighEntropyValuesBrowserVersion = undefined;\n parsedFromHighEntropyValuesEngineVersion = undefined;\n parsedFromHighEntropyValuesDevice = null;\n}\nfunction normalizeBrand(entry) {\n if (entry === null || typeof entry === 'undefined')\n return { brand: '', version: '' };\n if (typeof entry === 'string')\n return { brand: entry, version: '' };\n return { brand: entry.brand, version: entry.version };\n}\nfunction resolvedThenable() {\n if (typeof Promise === 'function')\n return Promise.resolve();\n var thenable = {\n then: function (onFulfilled) {\n if (typeof onFulfilled === 'function')\n onFulfilled(undefined);\n return thenable;\n },\n catch: function () {\n return thenable;\n },\n finally: function (onFinally) {\n if (typeof onFinally === 'function')\n onFinally();\n return thenable;\n },\n };\n return thenable;\n}\nfunction parseFromHighEntropyValues() {\n if (typeof USER_AGENT_DATA === 'undefined' || typeof USER_AGENT_DATA.getHighEntropyValues === 'undefined')\n return resolvedThenable();\n return USER_AGENT_DATA\n .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'platform', 'platformVersion', 'formFactors'])\n .then(function (result) {\n try {\n var brands = result.fullVersionList || result.brands || [];\n var platformVersion = result.platformVersion;\n var platform = result.platform;\n var browserName = getParsedCache().browser.name;\n var prevBrandName = null;\n for (var i = 0; i < brands.length; i++) {\n var brand = normalizeBrand(brands[i]);\n var brandVersion = brand.version;\n var brandName = brand.brand;\n if (/not.a.brand/i.test(brandName))\n continue;\n if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {\n brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;\n prevBrandName = browserName;\n if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {\n browserName = brandName;\n if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')\n parsedFromHighEntropyValuesBrowserName = 'chrome';\n else if (browserName === 'Edge' || browserName === 'Edge WebView2')\n parsedFromHighEntropyValuesBrowserName = 'edge';\n else if (browserName === 'Opera Mobi')\n parsedFromHighEntropyValuesBrowserName = 'opera';\n parsedFromHighEntropyValuesBrowserVersion = brandVersion;\n }\n prevBrandName = brandName;\n }\n if (brandName === 'Chromium')\n parsedFromHighEntropyValuesEngineVersion = brandVersion;\n }\n if (typeof platformVersion === 'string') {\n if (getParsedCache().os.name === 'windows') {\n if (parseInt(platformVersion.split('.')[0], 10) >= 13)\n parsedFromHighEntropyValuesOSVersion = '11';\n else\n parsedFromHighEntropyValuesOSVersion = '10';\n }\n else {\n parsedFromHighEntropyValuesOSVersion = platformVersion;\n }\n }\n if (typeof platform === 'string') {\n if (/android/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'android';\n else if (/ios|iphone|ipad/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'ios';\n else if (/windows|win32/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'windows';\n else if (/macos|macintel/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'macos';\n }\n var formFactors = result.formFactors;\n if (typeof formFactors !== 'undefined' && formFactors !== null && typeof formFactors.length === 'number') {\n for (var i = 0; i < formFactors.length; i++) {\n var formFactor = String(formFactors[i]).toLowerCase();\n if (formFactor === 'tablet')\n parsedFromHighEntropyValuesDevice = 'tablet';\n else if (formFactor === 'mobile')\n parsedFromHighEntropyValuesDevice = 'mobile';\n else if (formFactor === 'desktop')\n parsedFromHighEntropyValuesDevice = 'desktop';\n }\n }\n if (parsedFromHighEntropyValuesDevice === null && result.mobile === true)\n parsedFromHighEntropyValuesDevice = 'mobile';\n }\n catch (_) {\n }\n finally {\n parsedCache = null;\n }\n })\n .catch(function () {\n parsedCache = null;\n });\n}\nready = parseFromHighEntropyValues();\nvar PlatformKit = {\n version: packageJSON.version,\n get ready() {\n return ready;\n },\n whenReady: function (callback) {\n if (typeof callback !== 'function')\n return;\n ready.then(function () {\n callback();\n });\n },\n set userAgent(userAgent) {\n if (currentUserAgent === userAgent)\n return;\n currentUserAgent = userAgent;\n invalidateCache();\n ready = userAgent === USER_AGENT ? parseFromHighEntropyValues() : resolvedThenable();\n },\n reset: function () {\n if (currentUserAgent === USER_AGENT)\n return;\n currentUserAgent = USER_AGENT;\n invalidateCache();\n ready = parseFromHighEntropyValues();\n },\n get userAgent() {\n return currentUserAgent;\n },\n get os() {\n return getParsedCache().os;\n },\n get browser() {\n return getParsedCache().browser;\n },\n get engine() {\n return getParsedCache().engine;\n },\n get device() {\n return parseDevice();\n },\n get webview() {\n return parseWebview();\n },\n get inAppBrowser() {\n return parseInAppBrowser();\n },\n get node() {\n var nodeProcess = GLOBAL.process;\n return typeof nodeProcess !== 'undefined' && nodeProcess !== null && typeof nodeProcess.versions !== 'undefined' && nodeProcess.versions !== null && typeof nodeProcess.versions.node !== 'undefined';\n },\n get standalone() {\n var osName = getParsedCache().os.name;\n if (osName === 'ios')\n return typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null && NAVIGATOR.standalone === true;\n if (typeof GLOBAL.matchMedia !== 'function')\n return false;\n try {\n return GLOBAL.matchMedia('(display-mode: standalone)').matches === true;\n }\n catch (_) {\n return false;\n }\n },\n compareVersion: function (lhs, rhs) {\n return compareVersion(lhs, rhs);\n }\n};\n\nexport { PlatformKit as default };\n//# sourceMappingURL=platform-kit.mjs.map\n","function getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n if (typeof global !== 'undefined')\n return global;\n return {};\n}\n\nvar version = \"0.0.3\";\nvar packageJSON = {\n\tversion: version};\n\nvar GLOBAL$3 = getGlobal();\nvar VENDORS = ['', 'webkit', 'moz', 'ms', 'MS', 'o', 'O'];\n// https://cordova.apache.org/docs/en/latest/cordova/events/events.html\nvar CORDOVA_DOCUMENT_EVENTS = ['deviceready', 'pause', 'resume', 'backbutton', 'menubutton', 'searchbutton', 'startcallbutton', 'endcallbutton', 'volumedownbutton', 'volumeupbutton', 'activated', 'cordovacallbackerror'];\n// iOS `<video>` fullscreen events have no `on` attribute but are valid on any element exposing `webkitEnterFullscreen` — they must pass through untouched.\nvar IOS_VIDEO_FULLSCREEN_EVENTS = ['webkitbeginfullscreen', 'webkitendfullscreen', 'webkitpresentationmodechanged'];\nvar TYPE_ALIAS_MAP = {\n 'wheel': ['wheel', 'mousewheel', 'DOMMouseScroll'],\n 'fullscreenchange': ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange', 'msfullscreenchange'],\n 'fullscreenerror': ['fullscreenerror', 'webkitfullscreenerror', 'mozfullscreenerror', 'MSFullscreenError', 'msfullscreenerror'],\n 'pointerdown': ['pointerdown', 'MSPointerDown'],\n 'pointermove': ['pointermove', 'MSPointerMove'],\n 'pointerup': ['pointerup', 'MSPointerUp'],\n 'pointercancel': ['pointercancel', 'MSPointerCancel'],\n 'pointerover': ['pointerover', 'MSPointerOver'],\n 'pointerout': ['pointerout', 'MSPointerOut'],\n 'pointerenter': ['pointerenter', 'MSPointerEnter', 'mouseenter'],\n 'pointerleave': ['pointerleave', 'MSPointerLeave', 'mouseleave'],\n 'gotpointercapture': ['gotpointercapture', 'MSGotPointerCapture'],\n 'lostpointercapture': ['lostpointercapture', 'MSLostPointerCapture'],\n 'pointerlockchange': ['pointerlockchange', 'webkitpointerlockchange', 'mozpointerlockchange', 'mspointerlockchange'],\n 'pointerlockerror': ['pointerlockerror', 'webkitpointerlockerror', 'mozpointerlockerror', 'mspointerlockerror'],\n 'touchstart': ['touchstart', 'pointerdown', 'MSPointerDown'],\n 'touchmove': ['touchmove', 'pointermove', 'MSPointerMove'],\n 'touchend': ['touchend', 'pointerup', 'MSPointerUp'],\n 'touchcancel': ['touchcancel', 'pointercancel', 'MSPointerCancel'],\n 'transitionrun': ['transitionrun', 'webkitTransitionRun'],\n 'transitionstart': ['transitionstart', 'webkitTransitionStart'],\n 'transitionend': ['transitionend', 'webkitTransitionEnd', 'oTransitionEnd', 'otransitionend', 'MSTransitionEnd'],\n 'animationstart': ['animationstart', 'webkitAnimationStart', 'oanimationstart', 'MSAnimationStart'],\n 'animationiteration': ['animationiteration', 'webkitAnimationIteration', 'oanimationiteration', 'MSAnimationIteration'],\n 'animationend': ['animationend', 'webkitAnimationEnd', 'oanimationend', 'MSAnimationEnd'],\n 'visibilitychange': ['visibilitychange', 'webkitvisibilitychange', 'mozvisibilitychange', 'msvisibilitychange'],\n};\nvar FULLSCREEN_REQUEST_MAP = {\n '': ['requestFullscreen'],\n 'webkit': ['webkitRequestFullscreen', 'webkitRequestFullScreen'],\n 'moz': ['mozRequestFullScreen', 'mozRequestFullscreen'],\n 'ms': ['msRequestFullscreen'],\n 'MS': ['msRequestFullscreen'],\n};\nfunction asRecord(value) {\n return value;\n}\nfunction hasOnProperty(host, name) {\n if (typeof host === 'undefined' || host === null)\n return false;\n if (typeof asRecord(host)['on' + name] !== 'undefined')\n return true;\n var lower = name.toLowerCase();\n return lower !== name && typeof asRecord(host)['on' + lower] !== 'undefined';\n}\nfunction probeHosts(target) {\n var hosts = [target];\n if (typeof GLOBAL$3.document !== 'undefined' && target !== GLOBAL$3.document)\n hosts.push(GLOBAL$3.document);\n if (target !== GLOBAL$3)\n hosts.push(GLOBAL$3);\n return hosts;\n}\nfunction extractVendorPrefix(name) {\n for (var i = 1; i < VENDORS.length; i++) {\n if (name.indexOf(VENDORS[i]) === 0)\n return VENDORS[i];\n }\n return '';\n}\nfunction testStyleSupport(name, styleProperty) {\n if (typeof GLOBAL$3.document === 'undefined' || typeof GLOBAL$3.document.documentElement === 'undefined')\n return false;\n var style = GLOBAL$3.document.documentElement.style;\n if (typeof style === 'undefined' || style === null)\n return false;\n var prefix = extractVendorPrefix(name);\n var property;\n if (prefix === '')\n property = styleProperty;\n else\n property = prefix + styleProperty.charAt(0).toUpperCase() + styleProperty.slice(1);\n return typeof asRecord(style)[property] !== 'undefined';\n}\nfunction testFullscreenSupport(name) {\n if (typeof GLOBAL$3.document === 'undefined' || typeof GLOBAL$3.document.documentElement === 'undefined')\n return false;\n var element = GLOBAL$3.document.documentElement;\n var methods = FULLSCREEN_REQUEST_MAP[extractVendorPrefix(name)];\n if (typeof methods === 'undefined')\n return false;\n for (var i = 0; i < methods.length; i++) {\n if (typeof asRecord(element)[methods[i]] === 'function')\n return true;\n }\n return false;\n}\nfunction isEventTypeSupported(target, name) {\n var hosts = probeHosts(target);\n for (var i = 0; i < hosts.length; i++) {\n if (hasOnProperty(hosts[i], name))\n return true;\n }\n var lower = name.toLowerCase();\n if (lower.indexOf('transition') > -1)\n return testStyleSupport(name, 'transition');\n if (lower.indexOf('animation') > -1)\n return testStyleSupport(name, 'animation');\n if (lower.indexOf('fullscreen') > -1)\n return testFullscreenSupport(name);\n return false;\n}\nfunction resolveEventType(target, type) {\n if (target === GLOBAL$3.document && CORDOVA_DOCUMENT_EVENTS.indexOf(type) > -1)\n return type;\n if (typeof asRecord(target)['webkitEnterFullscreen'] === 'function' && IOS_VIDEO_FULLSCREEN_EVENTS.indexOf(type) > -1)\n return type;\n var candidates = typeof TYPE_ALIAS_MAP[type] !== 'undefined' ? TYPE_ALIAS_MAP[type] : [type];\n for (var i = 0; i < candidates.length; i++) {\n if (isEventTypeSupported(target, candidates[i]))\n return candidates[i];\n }\n var hosts = probeHosts(target);\n for (var i = 1; i < VENDORS.length; i++) {\n for (var j = 0; j < candidates.length; j++) {\n var name_1 = VENDORS[i] + candidates[j];\n for (var k = 0; k < hosts.length; k++) {\n if (hasOnProperty(hosts[k], name_1))\n return name_1;\n }\n }\n }\n return type;\n}\n\nvar GLOBAL$2 = getGlobal();\nvar SUPPORTED = {\n once: false,\n passive: false,\n capture: false,\n some: false,\n all: false,\n};\nvar NOOP$1 = function () {\n};\nfunction resolveProbeTarget() {\n if (typeof GLOBAL$2.document !== 'undefined' && typeof GLOBAL$2.document.createDocumentFragment === 'function') {\n try {\n return GLOBAL$2.document.createDocumentFragment();\n }\n catch (_) {\n }\n }\n if (typeof GLOBAL$2.EventTarget === 'function') {\n try {\n return new GLOBAL$2.EventTarget();\n }\n catch (_) {\n }\n }\n return undefined;\n}\n(function detectSupportedListenerOptions() {\n var probe = resolveProbeTarget();\n if (typeof probe === 'undefined' || typeof probe.addEventListener !== 'function')\n return;\n var options = {};\n try {\n Object.defineProperty(options, 'once', {\n get: function () {\n SUPPORTED.once = true;\n return false;\n },\n });\n Object.defineProperty(options, 'passive', {\n get: function () {\n SUPPORTED.passive = true;\n return false;\n },\n });\n Object.defineProperty(options, 'capture', {\n get: function () {\n SUPPORTED.capture = true;\n return false;\n },\n });\n probe.addEventListener('test', NOOP$1, options);\n probe.removeEventListener('test', NOOP$1, options);\n }\n catch (_) {\n }\n SUPPORTED.some = SUPPORTED.once || SUPPORTED.passive || SUPPORTED.capture;\n SUPPORTED.all = SUPPORTED.once && SUPPORTED.passive && SUPPORTED.capture;\n})();\nvar SUPPORTED_LISTENER_OPTIONS = SUPPORTED;\nfunction normalizeListenerOptions(options) {\n if (typeof options === 'boolean')\n return { capture: options, once: false, passive: false, signal: undefined };\n if (typeof options === 'object' && options !== null) {\n return {\n capture: options.capture === true,\n once: options.once === true,\n passive: options.passive === true,\n signal: options.signal,\n };\n }\n return {\n capture: Boolean(options),\n once: false,\n passive: false,\n signal: undefined\n };\n}\nfunction toNativeListenerOptions(normalized) {\n if (SUPPORTED.passive)\n return {\n capture: normalized.capture,\n passive: normalized.passive\n };\n if (SUPPORTED.capture)\n return {\n capture: normalized.capture\n };\n return normalized.capture;\n}\n\nvar GLOBAL$1 = getGlobal();\nvar TOUCH_TYPES = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\nvar POINTER_PHASE_MAP = {\n 'pointerdown': 'start',\n 'MSPointerDown': 'start',\n 'pointermove': 'move',\n 'MSPointerMove': 'move',\n 'pointerup': 'end',\n 'MSPointerUp': 'end',\n 'pointercancel': 'cancel',\n 'MSPointerCancel': 'cancel',\n};\nvar ACTIVE_TOUCHES = [];\nfunction isTouchEventType(type) {\n return TOUCH_TYPES.indexOf(type) > -1;\n}\nfunction isPointerEventType(type) {\n return typeof POINTER_PHASE_MAP[type] !== 'undefined';\n}\nfunction createTouchList(touches) {\n var list = touches.slice();\n list.item = function (index) {\n if (index >= 0 && index < list.length)\n return list[index];\n return null;\n };\n return list;\n}\nfunction findTouchIndex(identifier) {\n for (var i = 0; i < ACTIVE_TOUCHES.length; i++) {\n if (ACTIVE_TOUCHES[i].identifier === identifier)\n return i;\n }\n return -1;\n}\nfunction scrollOffsetX() {\n if (typeof GLOBAL$1.pageXOffset === 'number')\n return GLOBAL$1.pageXOffset;\n if (typeof GLOBAL$1.document !== 'undefined' && typeof GLOBAL$1.document.documentElement !== 'undefined')\n return GLOBAL$1.document.documentElement.scrollLeft;\n return 0;\n}\nfunction scrollOffsetY() {\n if (typeof GLOBAL$1.pageYOffset === 'number')\n return GLOBAL$1.pageYOffset;\n if (typeof GLOBAL$1.document !== 'undefined' && typeof GLOBAL$1.document.documentElement !== 'undefined')\n return GLOBAL$1.document.documentElement.scrollTop;\n return 0;\n}\nfunction createSyntheticTouch(event, target) {\n var clientX = typeof event.clientX === 'number' ? event.clientX : 0;\n var clientY = typeof event.clientY === 'number' ? event.clientY : 0;\n return {\n identifier: typeof event.pointerId === 'number' ? event.pointerId : 0,\n target: target,\n screenX: typeof event.screenX === 'number' ? event.screenX : 0,\n screenY: typeof event.screenY === 'number' ? event.screenY : 0,\n clientX: clientX,\n clientY: clientY,\n pageX: typeof event.pageX === 'number' ? event.pageX : clientX + scrollOffsetX(),\n pageY: typeof event.pageY === 'number' ? event.pageY : clientY + scrollOffsetY(),\n radiusX: typeof event.width === 'number' ? event.width / 2 : 0,\n radiusY: typeof event.height === 'number' ? event.height / 2 : 0,\n rotationAngle: typeof event.rotation === 'number' ? event.rotation : 0,\n force: typeof event.pressure === 'number' ? event.pressure : 0,\n };\n}\nfunction defineTouchList(event, property, list, patches) {\n var holder = event;\n var had = false;\n try {\n had = Object.prototype.hasOwnProperty.call(event, property);\n }\n catch (_) {\n }\n patches.push({ property: property, had: had, previous: had ? holder[property] : undefined });\n try {\n Object.defineProperty(event, property, { value: list, configurable: true });\n }\n catch (_) {\n holder[property] = list;\n }\n}\nfunction filterByTarget(touches, target) {\n var filtered = [];\n for (var i = 0; i < touches.length; i++) {\n if (touches[i].target === target)\n filtered.push(touches[i]);\n }\n return filtered;\n}\nfunction synthesizeTouchEvent(event, resolvedType, patches) {\n var phase = POINTER_PHASE_MAP[resolvedType];\n if (typeof phase === 'undefined')\n return;\n var pointerEvent = event;\n var eventTarget = event.target;\n var index = findTouchIndex(typeof pointerEvent.pointerId === 'number' ? pointerEvent.pointerId : 0);\n var originTarget = index > -1 ? ACTIVE_TOUCHES[index].target : eventTarget;\n var touch = createSyntheticTouch(pointerEvent, originTarget);\n if (phase === 'start' || phase === 'move') {\n if (index > -1)\n ACTIVE_TOUCHES[index] = touch;\n else\n ACTIVE_TOUCHES.push(touch);\n }\n else {\n if (index > -1)\n ACTIVE_TOUCHES.splice(index, 1);\n }\n defineTouchList(event, 'touches', createTouchList(ACTIVE_TOUCHES), patches);\n defineTouchList(event, 'targetTouches', createTouchList(filterByTarget(ACTIVE_TOUCHES, originTarget)), patches);\n defineTouchList(event, 'changedTouches', createTouchList([touch]), patches);\n}\n\nvar KEY_CODE_MAP = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Numpad5',\n 13: 'Enter',\n 16: 'ShiftLeft',\n 17: 'ControlLeft',\n 18: 'AltLeft',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: 'Space',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 48: 'Digit0',\n 49: 'Digit1',\n 50: 'Digit2',\n 51: 'Digit3',\n 52: 'Digit4',\n 53: 'Digit5',\n 54: 'Digit6',\n 55: 'Digit7',\n 56: 'Digit8',\n 57: 'Digit9',\n 65: 'KeyA',\n 66: 'KeyB',\n 67: 'KeyC',\n 68: 'KeyD',\n 69: 'KeyE',\n 70: 'KeyF',\n 71: 'KeyG',\n 72: 'KeyH',\n 73: 'KeyI',\n 74: 'KeyJ',\n 75: 'KeyK',\n 76: 'KeyL',\n 77: 'KeyM',\n 78: 'KeyN',\n 79: 'KeyO',\n 80: 'KeyP',\n 81: 'KeyQ',\n 82: 'KeyR',\n 83: 'KeyS',\n 84: 'KeyT',\n 85: 'KeyU',\n 86: 'KeyV',\n 87: 'KeyW',\n 88: 'KeyX',\n 89: 'KeyY',\n 90: 'KeyZ',\n 91: 'MetaLeft',\n 92: 'MetaRight',\n 93: 'ContextMenu',\n 96: 'Numpad0',\n 97: 'Numpad1',\n 98: 'Numpad2',\n 99: 'Numpad3',\n 100: 'Numpad4',\n 101: 'Numpad5',\n 102: 'Numpad6',\n 103: 'Numpad7',\n 104: 'Numpad8',\n 105: 'Numpad9',\n 106: 'NumpadMultiply',\n 107: 'NumpadAdd',\n 109: 'NumpadSubtract',\n 110: 'NumpadDecimal',\n 111: 'NumpadDivide',\n 112: 'F1',\n 113: 'F2',\n 114: 'F3',\n 115: 'F4',\n 116: 'F5',\n 117: 'F6',\n 118: 'F7',\n 119: 'F8',\n 120: 'F9',\n 121: 'F10',\n 122: 'F11',\n 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 186: 'Semicolon',\n 187: 'Equal',\n 188: 'Comma',\n 189: 'Minus',\n 190: 'Period',\n 191: 'Slash',\n 192: 'Backquote',\n 219: 'BracketLeft',\n 220: 'Backslash',\n 221: 'BracketRight',\n 222: 'Quote',\n 226: 'IntlBackslash',\n};\n\nvar GLOBAL = getGlobal();\nvar LISTENER_STORE = [];\nvar NOOP = function () {\n};\nvar STORE_KEY = '__webEventKitListeners__';\nfunction resolveBucket(target, create) {\n var holder = target;\n try {\n var existing = holder[STORE_KEY];\n if (typeof existing !== 'undefined' && existing !== null)\n return existing;\n if (!create)\n return LISTENER_STORE;\n var bucket = [];\n try {\n Object.defineProperty(target, STORE_KEY, { value: bucket, configurable: true, enumerable: false, writable: true });\n }\n catch (_) {\n holder[STORE_KEY] = bucket;\n }\n if (holder[STORE_KEY] !== bucket)\n return LISTENER_STORE;\n return bucket;\n }\n catch (_) {\n return LISTENER_STORE;\n }\n}\nfunction findListenerRecord(target, type, callback, capture) {\n var bucket = resolveBucket(target, false);\n for (var i = 0; i < bucket.length; i++) {\n var record = bucket[i];\n if (record.target === target && record.type === type && record.callback === callback && record.capture === capture)\n return record;\n }\n return undefined;\n}\nfunction removeListenerRecord(record) {\n var bucket = record.bucket;\n for (var i = 0; i < bucket.length; i++) {\n if (bucket[i] === record) {\n bucket.splice(i, 1);\n return;\n }\n }\n}\nfunction preventDefaultPolyfill() {\n this.returnValue = false;\n}\nfunction stopPropagationPolyfill() {\n this.cancelBubble = true;\n}\nfunction passivePreventDefault() {\n // Per spec, preventDefault() inside a passive listener does nothing.\n}\nfunction invokeCallback(callback, target, event) {\n if (typeof callback === 'function')\n return callback.call(target, event);\n if (typeof callback === 'object' && callback !== null && typeof callback.handleEvent === 'function')\n return callback.handleEvent(event);\n}\nfunction patchEventProperty(event, property, value, patches) {\n var holder = event;\n var had = false;\n try {\n had = Object.prototype.hasOwnProperty.call(event, property);\n }\n catch (_) {\n }\n patches.push({ property: property, had: had, previous: had ? holder[property] : undefined });\n defineEventProperty(event, property, value);\n}\nfunction restoreEventProperties(event, patches) {\n var holder = event;\n for (var i = patches.length - 1; i >= 0; i--) {\n var patch = patches[i];\n try {\n if (patch.had)\n defineEventProperty(event, patch.property, patch.previous);\n else\n delete holder[patch.property];\n }\n catch (_) {\n }\n }\n patches.length = 0;\n}\nfunction defineEventProperty(event, property, value) {\n try {\n Object.defineProperty(event, property, { value: value, configurable: true });\n }\n catch (_) {\n try {\n event[property] = value;\n }\n catch (__) {\n }\n }\n}\nfunction fixLegacyEvent(event, target) {\n if (typeof event.currentTarget === 'undefined' || event.currentTarget === null)\n defineEventProperty(event, 'currentTarget', target);\n if ((typeof event.target === 'undefined' || event.target === null) && typeof event.srcElement !== 'undefined')\n defineEventProperty(event, 'target', event.srcElement);\n if (typeof event.preventDefault !== 'function')\n event.preventDefault = preventDefaultPolyfill.bind(event);\n if (typeof event.stopPropagation !== 'function')\n event.stopPropagation = stopPropagationPolyfill.bind(event);\n}\nfunction fixKeyboardEvent(event) {\n if (typeof event.keyCode === 'number' && typeof event.code === 'undefined') {\n var code = KEY_CODE_MAP[event.keyCode];\n if (typeof code === 'string')\n defineEventProperty(event, 'code', code);\n }\n}\nfunction createDispatcher(record) {\n return function (event) {\n if (typeof event === 'undefined')\n event = GLOBAL.event; // IE: implicit global event object\n if (typeof event === 'undefined' || event === null)\n return;\n if (record.released)\n return;\n fixLegacyEvent(event, record.target);\n if (record.once)\n releaseListenerRecord(record);\n var patches = [];\n if (record.passive && !SUPPORTED_LISTENER_OPTIONS.passive)\n patchEventProperty(event, 'preventDefault', passivePreventDefault.bind(event), patches);\n if (record.resolvedType !== record.type)\n patchEventProperty(event, 'type', record.type, patches);\n if (record.touch)\n synthesizeTouchEvent(event, record.resolvedType, patches);\n fixKeyboardEvent(event);\n try {\n invokeCallback(record.callback, record.target, event);\n }\n finally {\n restoreEventProperties(event, patches);\n }\n };\n}\nfunction attachNativeListener(record) {\n var target = record.target;\n if (typeof target.addEventListener === 'function') {\n target.addEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));\n return true;\n }\n if (typeof target.attachEvent === 'function') {\n target.attachEvent('on' + record.resolvedType, record.wrapper);\n return true;\n }\n return false;\n}\nfunction detachNativeListener(record) {\n var target = record.target;\n if (typeof target.removeEventListener === 'function')\n return target.removeEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));\n if (typeof target.detachEvent === 'function')\n return target.detachEvent('on' + record.resolvedType, record.wrapper);\n}\nfunction releaseListenerRecord(record) {\n if (record.released)\n return;\n record.released = true;\n removeListenerRecord(record);\n try {\n detachNativeListener(record);\n }\n catch (_) {\n }\n if (typeof record.signal !== 'undefined' && typeof record.onAbort === 'function' && typeof record.signal.removeEventListener === 'function') {\n try {\n record.signal.removeEventListener('abort', record.onAbort, false);\n }\n catch (_) {\n }\n }\n record.onAbort = undefined;\n}\nfunction createEventPolyfill(type, init) {\n try {\n return new Event(type, init);\n }\n catch (_) {\n }\n var event = GLOBAL.document.createEvent('Event');\n event.initEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true);\n return event;\n}\nfunction createCustomEventPolyfill(type, init) {\n try {\n return new CustomEvent(type, init);\n }\n catch (_) {\n }\n var event = GLOBAL.document.createEvent('CustomEvent');\n event.initCustomEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true, typeof init !== 'undefined' && typeof init.detail !== 'undefined' ? init.detail : null);\n return event;\n}\nvar EventKit = {\n version: packageJSON.version,\n utils: {\n get supportedOptions() {\n return {\n once: SUPPORTED_LISTENER_OPTIONS.once,\n passive: SUPPORTED_LISTENER_OPTIONS.passive,\n capture: SUPPORTED_LISTENER_OPTIONS.capture,\n some: SUPPORTED_LISTENER_OPTIONS.some,\n all: SUPPORTED_LISTENER_OPTIONS.all,\n };\n },\n resolveType: resolveEventType,\n createEvent: createEventPolyfill,\n createCustomEvent: createCustomEventPolyfill,\n },\n add: function (target, type, callback, options) {\n if (typeof target === 'undefined' || target === null)\n return NOOP;\n if (typeof type !== 'string' || type.length === 0)\n return NOOP;\n if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))\n return NOOP;\n var normalized = normalizeListenerOptions(options);\n var existing = findListenerRecord(target, type, callback, normalized.capture);\n if (typeof existing !== 'undefined')\n return NOOP;\n if (typeof normalized.signal !== 'undefined' && normalized.signal.aborted)\n return NOOP;\n var resolvedType = resolveEventType(target, type);\n var bucket = resolveBucket(target, true);\n var record = {\n bucket: bucket,\n target: target,\n type: type,\n callback: callback,\n wrapper: NOOP,\n resolvedType: resolvedType,\n capture: normalized.capture,\n once: normalized.once,\n passive: normalized.passive,\n signal: normalized.signal,\n onAbort: undefined,\n touch: isTouchEventType(type) && isPointerEventType(resolvedType),\n released: false,\n };\n record.wrapper = createDispatcher(record);\n if (!attachNativeListener(record))\n return NOOP;\n bucket.push(record);\n if (typeof record.signal !== 'undefined' && typeof record.signal.addEventListener === 'function') {\n record.onAbort = function () {\n releaseListenerRecord(record);\n };\n record.signal.addEventListener('abort', record.onAbort, false);\n }\n return function () {\n releaseListenerRecord(record);\n };\n },\n remove: function (target, type, callback, options) {\n if (typeof target === 'undefined' || target === null)\n return;\n if (typeof type !== 'string' || type.length === 0)\n return;\n if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))\n return;\n var normalized = normalizeListenerOptions(options);\n var record = findListenerRecord(target, type, callback, normalized.capture);\n if (typeof record !== 'undefined')\n return releaseListenerRecord(record);\n var resolvedType = resolveEventType(target, type);\n if (typeof target.removeEventListener === 'function')\n return target.removeEventListener(resolvedType, callback, toNativeListenerOptions(normalized));\n if (typeof target.detachEvent === 'function' && typeof callback === 'function')\n return target.detachEvent('on' + resolvedType, callback);\n },\n};\n\nexport { EventKit as default };\n//# sourceMappingURL=event-kit.mjs.map\n","declare const global: unknown;\n\nexport interface CordovaInAppBrowserLike {\n open(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n}\n\nexport interface CordovaLike {\n InAppBrowser?: CordovaInAppBrowserLike;\n}\n\nexport interface MapLike<K, V> {\n get(key: K): V | undefined;\n\n has(key: K): boolean;\n\n set(key: K, value: V): this;\n\n delete(key: K): boolean;\n}\n\nexport interface MapLikeConstructor {\n new<K, V>(): MapLike<K, V>;\n}\n\nexport interface DocumentLike extends Document {\n webkitVisibilityState?: 'hidden' | 'visible';\n mozVisibilityState?: 'hidden' | 'visible';\n msVisibilityState?: 'hidden' | 'visible';\n webkitHidden?: boolean;\n mozHidden?: boolean;\n msHidden?: boolean;\n}\n\nexport interface GlobalLike {\n navigator?: Navigator;\n document?: DocumentLike;\n window?: WindowProxy;\n top?: WindowProxy | null;\n localStorage?: Storage;\n fetch?: (input: string) => Promise<Response>;\n cordova?: CordovaLike;\n Map?: MapLikeConstructor;\n showOpenFilePicker?: (options?: unknown) => Promise<FileSystemFileHandle[]>;\n showDirectoryPicker?: (options?: unknown) => Promise<FileSystemDirectoryHandle>;\n\n open?(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n}\n\nexport function getGlobal(): GlobalLike {\n if (typeof globalThis !== 'undefined') return globalThis as unknown as GlobalLike;\n if (typeof self !== 'undefined') return self as unknown as GlobalLike;\n if (typeof window !== 'undefined') return window as unknown as GlobalLike;\n if (typeof global !== 'undefined') return global as GlobalLike;\n\n return {};\n}\n","import {getGlobal} from \"./get-global\";\n\ninterface HTMLPresentationAttributes {\n width?: string;\n height?: string;\n border?: string;\n frameBorder?: string;\n scrolling?: string;\n cellPadding?: string;\n cellSpacing?: string;\n frame?: string;\n rules?: string;\n noWrap?: boolean;\n}\n\nexport function createHiddenElement<K extends keyof HTMLElementTagNameMap>(tagName: K, focusable: boolean = true): HTMLElementTagNameMap[K] {\n const document: Document = getGlobal().document as Document;\n const element: HTMLElementTagNameMap[K] & HTMLPresentationAttributes = document.createElement(tagName) as HTMLElementTagNameMap[K] & HTMLPresentationAttributes;\n\n if (typeof element.width !== 'undefined') element.width = '0';\n if (typeof element.height !== 'undefined') element.height = '0';\n if (typeof element.border !== 'undefined') element.border = '0';\n if (typeof element.frameBorder !== 'undefined') element.frameBorder = '0';\n if (typeof element.scrolling !== 'undefined') element.scrolling = 'no';\n if (typeof element.cellPadding !== 'undefined') element.cellPadding = '0';\n if (typeof element.cellSpacing !== 'undefined') element.cellSpacing = '0';\n if (typeof element.frame !== 'undefined') element.frame = 'void';\n if (typeof element.rules !== 'undefined') element.rules = 'none';\n if (typeof element.noWrap !== 'undefined') element.noWrap = true;\n\n element.tabIndex = -1;\n element.setAttribute('role', 'presentation');\n\n if (focusable) {\n element.setAttribute('aria-hidden', 'false');\n\n element.style.width = '1px';\n element.style.height = '1px';\n } else {\n element.setAttribute('aria-hidden', 'true');\n\n element.style.width = '0';\n element.style.height = '0';\n element.style.zIndex = '-9999';\n element.style.display = 'none';\n element.style.visibility = 'hidden';\n element.style.pointerEvents = 'none';\n }\n\n element.style.position = 'absolute';\n element.style.top = '0';\n element.style.left = '0';\n element.style.padding = '0';\n element.style.margin = '0';\n element.style.border = 'none';\n element.style.outline = 'hidden';\n element.style.clip = 'rect(1px, 1px, 1px, 1px)';\n element.style.clipPath = 'inset(50%)';\n element.style.overflow = 'hidden';\n element.style.whiteSpace = 'nowrap';\n\n return element;\n}\n","var version = \"0.0.5\";\nvar packageJSON = {\n\tversion: version};\n\nvar RTL_LANGUAGES = ['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'iw', 'ji', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi'];\nvar RTL_SCRIPTS = ['Adlm', 'Arab', 'Aran', 'Hebr', 'Mand', 'Mend', 'Nkoo', 'Rohg', 'Samr', 'Syrc', 'Thaa', 'Yezi'];\nvar LANGUAGE_PATTERN = /^[A-Za-z]{2,8}$/;\nvar SCRIPT_PATTERN = /^[A-Za-z]{4}$/;\nvar REGION_PATTERN = /^(?:[A-Za-z]{2}|[0-9]{3})$/;\nvar VARIANT_PATTERN = /^(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3})$/;\nvar SINGLETON_PATTERN = /^[A-Za-z0-9]$/;\nvar EXTENSION_PATTERN = /^[A-Za-z0-9]{1,8}$/;\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n if (typeof global !== 'undefined')\n return global;\n return {};\n}\nfunction freeze(values) {\n return typeof Object.freeze === 'function' ? Object.freeze(values) : values;\n}\nfunction contains(values, value) {\n for (var i = 0; i < values.length; i++) {\n if (values[i] === value)\n return true;\n }\n return false;\n}\nfunction getIntlLocaleConstructor() {\n if (typeof Intl === 'undefined')\n return undefined;\n var constructor = Intl.Locale;\n return typeof constructor === 'function' ? constructor : undefined;\n}\nfunction parseTag(raw) {\n if (raw === null || typeof raw !== 'string')\n return null;\n var value = raw.replace(/_/g, '-');\n if (value.length === 0)\n return null;\n if (value === 'C' || value.toLowerCase() === 'posix')\n value = 'en-US';\n var dot = value.indexOf('.');\n if (dot !== -1)\n value = value.slice(0, dot);\n var at = value.indexOf('@');\n if (at !== -1)\n value = value.slice(0, at);\n if (value.length === 0)\n return null;\n var segments = value.split('-');\n if (LANGUAGE_PATTERN.test(segments[0]) === false)\n return null;\n var language = segments[0].toLowerCase();\n var index = 1;\n var script = null;\n if (index < segments.length && SCRIPT_PATTERN.test(segments[index])) {\n script = segments[index].charAt(0).toUpperCase() + segments[index].slice(1).toLowerCase();\n index++;\n }\n var region = null;\n if (index < segments.length && REGION_PATTERN.test(segments[index])) {\n region = segments[index].toUpperCase();\n index++;\n }\n var variants = [];\n while (index < segments.length && VARIANT_PATTERN.test(segments[index])) {\n variants.push(segments[index].toLowerCase());\n index++;\n }\n var extensions = [];\n while (index < segments.length) {\n var singleton = segments[index];\n if (SINGLETON_PATTERN.test(singleton) === false)\n return null;\n var isPrivateUse = singleton.toLowerCase() === 'x';\n var parts = [singleton.toLowerCase()];\n index++;\n while (index < segments.length) {\n var segment = segments[index];\n if (EXTENSION_PATTERN.test(segment) === false)\n return null;\n if (segment.length === 1 && isPrivateUse === false)\n break;\n parts.push(segment.toLowerCase());\n index++;\n }\n if (parts.length < 2)\n return null;\n extensions.push(parts.join('-'));\n }\n var base = [language];\n if (script !== null)\n base.push(script);\n if (region !== null)\n base.push(region);\n for (var i = 0; i < variants.length; i++)\n base.push(variants[i]);\n var baseName = base.join('-');\n return {\n tag: extensions.length === 0 ? baseName : baseName + '-' + extensions.join('-'),\n baseName: baseName,\n language: language,\n script: script,\n region: region,\n variants: freeze(variants),\n extensions: freeze(extensions),\n };\n}\nfunction isRTL(subtags) {\n if (subtags.script !== null)\n return contains(RTL_SCRIPTS, subtags.script);\n return contains(RTL_LANGUAGES, subtags.language);\n}\nfunction expandTag(tag) {\n var parsed = parseTag(tag);\n if (parsed === null)\n return freeze([]);\n var segments = parsed.baseName.split('-');\n var chain = [];\n for (var i = segments.length; i > 0; i--)\n chain.push(segments.slice(0, i).join('-'));\n return freeze(chain);\n}\nfunction toLookupKey(tag) {\n var parsed = parseTag(tag);\n return (parsed === null ? tag : parsed.baseName).toLowerCase();\n}\nfunction lookupTag(supported, preferred, fallback) {\n if (supported === null || typeof supported === 'undefined' || typeof supported.length !== 'number')\n return fallback;\n var keys = [];\n for (var i = 0; i < supported.length; i++)\n keys.push(toLookupKey(supported[i]));\n for (var i = 0; i < preferred.length; i++) {\n var chain = expandTag(preferred[i]);\n for (var j = 0; j < chain.length; j++) {\n var candidate = chain[j].toLowerCase();\n var prefix = candidate + '-';\n for (var k = 0; k < keys.length; k++) {\n if (keys[k] === candidate)\n return supported[k];\n }\n for (var k = 0; k < keys.length; k++) {\n if (keys[k].indexOf(prefix) === 0)\n return supported[k];\n }\n }\n }\n return fallback;\n}\nfunction resolveDirection(primary) {\n if (primary === null)\n return false;\n var IntlLocale = getIntlLocaleConstructor();\n if (typeof IntlLocale !== 'undefined') {\n try {\n var intlLocale = new IntlLocale(primary.tag);\n if (typeof intlLocale.getTextInfo === 'function')\n return intlLocale.getTextInfo().direction === 'rtl';\n if (typeof intlLocale.textInfo !== 'undefined')\n return intlLocale.textInfo.direction === 'rtl';\n }\n catch (_) {\n }\n }\n return isRTL(primary);\n}\nvar subtags = null;\nvar language = null;\nvar languages = freeze([]);\nvar fallbacks = freeze([]);\nvar timezone = null;\nvar offset = 0;\nvar rtl = false;\nfunction resolveLanguages(candidates) {\n var resolved = [];\n var primary = null;\n for (var i = 0; i < candidates.length; i++) {\n var parsed = parseTag(candidates[i]);\n if (parsed === null)\n continue;\n if (contains(resolved, parsed.baseName))\n continue;\n if (primary === null)\n primary = parsed;\n resolved.push(parsed.baseName);\n }\n subtags = primary;\n language = primary === null ? null : primary.baseName;\n languages = freeze(resolved);\n fallbacks = primary === null ? freeze([]) : expandTag(primary.baseName);\n rtl = resolveDirection(primary);\n}\nfunction collectEnvironmentLanguages() {\n var candidates = [];\n var navigatorLike = getGlobal().navigator;\n if (typeof navigatorLike !== 'undefined' && navigatorLike !== null) {\n if (typeof navigatorLike.languages !== 'undefined' && navigatorLike.languages !== null) {\n for (var i = 0; i < navigatorLike.languages.length; i++)\n candidates.push(navigatorLike.languages[i]);\n }\n candidates.push(navigatorLike.language);\n candidates.push(navigatorLike.userLanguage);\n candidates.push(navigatorLike.browserLanguage);\n candidates.push(navigatorLike.systemLanguage);\n }\n if (typeof Intl !== 'undefined') {\n try {\n candidates.push(Intl.DateTimeFormat().resolvedOptions().locale);\n }\n catch (_) {\n }\n }\n return candidates;\n}\nvar ENVIRONMENT_LANGUAGES = collectEnvironmentLanguages();\nresolveLanguages(ENVIRONMENT_LANGUAGES);\nif (typeof Intl !== 'undefined') {\n try {\n timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n catch (_) {\n }\n}\ntry {\n offset = new Date().getTimezoneOffset() * -1;\n}\ncatch (_) {\n}\nvar LocaleKit = {\n version: packageJSON.version,\n get language() {\n return language;\n },\n get languages() {\n return languages;\n },\n set languages(value) {\n resolveLanguages(typeof value === 'string' ? [value] : value);\n },\n get subtags() {\n return subtags;\n },\n get fallbacks() {\n return fallbacks;\n },\n get timezone() {\n return timezone;\n },\n get offset() {\n return offset;\n },\n get rtl() {\n return rtl;\n },\n reset: function () {\n resolveLanguages(ENVIRONMENT_LANGUAGES);\n },\n parse: function (tag) {\n return parseTag(tag);\n },\n expand: function (tag) {\n return expandTag(tag);\n },\n lookup: function (supported, fallback) {\n return lookupTag(supported, languages, typeof fallback === 'undefined' ? null : fallback);\n },\n};\nif (typeof Object.freeze === 'function')\n Object.freeze(LocaleKit);\n\nexport { LocaleKit as default };\n//# sourceMappingURL=locale-kit.mjs.map\n","import LocaleKit from \"web-locale-kit\";\nimport {getGlobal, GlobalLike, MapLike} from \"./get-global\";\n\nconst GLOBAL: GlobalLike = getGlobal();\n\ninterface IdCache {\n get(mode: string, query: string): string | undefined;\n\n set(mode: string, query: string, id: string): void;\n}\n\ninterface IOSAndMacOSLookupAppInfo {\n resultCount?: number;\n results?: IOSAndMacOSLookupAppResult[];\n}\n\ninterface IOSAndMacOSLookupAppResult {\n trackId: number;\n}\n\ninterface WindowsAppInfo {\n Products?: WindowsAppProduct[];\n Product?: WindowsAppProduct;\n}\n\ninterface WindowsAppProduct {\n ProductId?: string;\n}\n\nconst CACHE_PREFIX: string = 'web-launch-kit:';\nconst TRACK_ID = 'track-id';\nconst PRODUCT_ID = 'product-id';\nconst TRACK_ID_CACHE_TTL: number = 1000 * 60 * 60;\n\nfunction toCacheKey(mode: string, query: string): string {\n return CACHE_PREFIX + mode + ':' + query;\n}\nconst idCache: IdCache = (function (): IdCache {\n let supportsLocalStorage: boolean;\n\n try {\n if (typeof GLOBAL.localStorage === 'undefined' || GLOBAL.localStorage === null) {\n supportsLocalStorage = false;\n } else {\n const key: string = '__id_cache_test__';\n\n GLOBAL.localStorage.setItem(key, '');\n GLOBAL.localStorage.removeItem(key);\n\n supportsLocalStorage = true;\n }\n } catch (_: unknown) {\n // Safari Private Mode / Storage Disabled / Quota Exceeded\n supportsLocalStorage = false;\n }\n\n if (supportsLocalStorage) {\n return {\n get(mode: string, query: string): string | undefined {\n try {\n const item: string | null = (GLOBAL.localStorage as Storage).getItem(toCacheKey(mode, query));\n\n if (item == null) return undefined;\n\n const split: string[] = item.split('|');\n\n if (split.length !== 2) return undefined;\n\n const expiry: number = +split[0];\n\n if (isNotANumber(expiry) || expiry < getNow()) {\n (GLOBAL.localStorage as Storage).removeItem(toCacheKey(mode, query));\n\n return undefined;\n }\n\n return split[1];\n } catch (_: unknown) {\n return undefined;\n }\n },\n\n set(mode: string, query: string, id: string): void {\n try {\n (GLOBAL.localStorage as Storage).setItem(toCacheKey(mode, query), getNow() + TRACK_ID_CACHE_TTL + '|' + id);\n } catch (_: unknown) {\n return;\n }\n }\n }\n }\n\n if (typeof GLOBAL.Map !== 'undefined') {\n const cache: MapLike<string, string | undefined> = new GLOBAL.Map<string, string | undefined>();\n\n return {\n get(mode: string, query: string): string | undefined {\n const item: string | undefined = cache.get(toCacheKey(mode, query));\n\n if (typeof item === 'undefined') return undefined;\n\n const split: string[] = item.split('|');\n\n if (split.length !== 2) return undefined;\n\n const expiry: number = +split[0];\n\n if (isNotANumber(expiry) || expiry < getNow()) {\n cache.delete(toCacheKey(mode, query));\n\n return undefined;\n }\n\n return split[1];\n },\n\n set(mode: string, query: string, id: string): void {\n cache.set(toCacheKey(mode, query), getNow() + TRACK_ID_CACHE_TTL + '|' + id);\n },\n }\n }\n\n const cache: Record<string, string | undefined> = Object.create(null);\n\n return {\n get(mode: string, query: string): string | undefined {\n const item: string | undefined = cache[toCacheKey(mode, query)];\n\n if (typeof item === 'undefined') return undefined;\n\n const split: string[] = item.split('|');\n\n if (split.length !== 2) return undefined;\n\n const expiry: number = +split[0];\n\n if (isNotANumber(expiry) || expiry < getNow()) {\n try {\n delete cache[toCacheKey(mode, query)];\n } catch (_: unknown) {\n cache[toCacheKey(mode, query)] = undefined;\n }\n\n return undefined;\n }\n\n return split[1];\n },\n\n set(mode: string, query: string, id: string): void {\n cache[toCacheKey(mode, query)] = getNow() + TRACK_ID_CACHE_TTL + '|' + id;\n }\n }\n})();\n\nfunction isNotANumber(value: number): boolean {\n return value !== value;\n}\n\nfunction getNow(): number {\n if (typeof Date.now !== 'undefined') return Date.now();\n return (new Date).getTime();\n}\n\nfunction requestGet<T>(url: string, async: true): Promise<T | undefined>;\nfunction requestGet<T>(url: string, async?: false): T | undefined;\nfunction requestGet<T>(url: string, async: boolean = false): Promise<T | undefined> | (T | undefined) {\n if (typeof GLOBAL.fetch === 'function' && async) {\n return GLOBAL.fetch(url)\n .then(function (response: Response): Promise<any> {\n return response.json();\n })\n .catch(function (_: unknown): void {\n return undefined;\n });\n } else {\n try {\n const xhr: XMLHttpRequest = new XMLHttpRequest();\n\n xhr.open('GET', url, async);\n xhr.send();\n\n const status: number = xhr.status;\n\n if (status >= 200 && status < 300) return JSON.parse(xhr.response);\n return undefined;\n } catch (_: unknown) {\n return undefined;\n }\n }\n}\n\nfunction resolveGetProductIdURL(packageFamilyName: string): string {\n const locales: readonly string[] = LocaleKit.languages;\n let locale: string = 'en-US';\n let country: string = 'US';\n\n for (let i: number = 0; i < locales.length; i++) {\n const candidate: string = locales[i];\n\n if (candidate.indexOf('-') === -1) continue;\n\n const subtags: string[] = candidate.split('-');\n\n for (let j: number = 1; j < subtags.length; j++) {\n const subtag: string = subtags[j];\n\n if (/^[A-Za-z]{2}$/.test(subtag) || /^\\d{3}$/.test(subtag)) {\n locale = candidate;\n country = subtag;\n break;\n }\n }\n\n if (locale === candidate) break;\n }\n\n return 'https://displaycatalog.md.mp.microsoft.com/v7.0/products/lookup?value=' + encodeURIComponent(packageFamilyName) + '&market=' + encodeURIComponent(country) + '&languages=' + encodeURIComponent(locale) + '&alternateId=PackageFamilyName';\n}\n\nfunction resolveGetTrackIdURL(bundleId: string): string {\n return 'https://itunes.apple.com/lookup?bundleId=' + encodeURIComponent(bundleId);\n}\n\nfunction parseGetProductIdResponse(response: WindowsAppInfo | undefined): string | undefined {\n if (typeof response === 'undefined') return undefined;\n\n let product: WindowsAppProduct | undefined | null = undefined;\n\n if (typeof response.Products !== 'undefined') product = response.Products[0];\n else if (typeof response.Product !== 'undefined') product = response.Product;\n\n if (typeof product === 'undefined' || product === null) return undefined;\n\n return product.ProductId;\n}\n\nfunction parseGetTrackIdResponse(response: IOSAndMacOSLookupAppInfo | undefined): string | undefined {\n if (typeof response === 'undefined' || typeof response.results === 'undefined') return undefined;\n\n const results: IOSAndMacOSLookupAppResult[] = response.results;\n\n if (results.length === 0) return undefined;\n\n const result: IOSAndMacOSLookupAppResult = results[0];\n\n if (typeof result === 'undefined') return undefined;\n\n return '' + result.trackId;\n}\n\nexport function getProductId(packageFamilyName: string): string | undefined {\n const cache: string | undefined = idCache.get(PRODUCT_ID, packageFamilyName);\n\n if (typeof cache !== 'undefined') return cache;\n\n try {\n const productId: string | undefined = parseGetProductIdResponse(requestGet<WindowsAppInfo>(resolveGetProductIdURL(packageFamilyName)));\n\n if (typeof productId === 'undefined') return undefined;\n\n idCache.set(PRODUCT_ID, packageFamilyName, productId);\n\n return productId;\n } catch (_: unknown) {\n return undefined;\n }\n}\n\nexport function getTrackId(bundleId: string): string | undefined {\n const cache: string | undefined = idCache.get(TRACK_ID, bundleId);\n\n if (typeof cache !== 'undefined') return cache;\n\n try {\n const trackId: string | undefined = parseGetTrackIdResponse(requestGet<IOSAndMacOSLookupAppInfo>(resolveGetTrackIdURL(bundleId)));\n\n if (typeof trackId === 'undefined') return undefined;\n\n idCache.set(TRACK_ID, bundleId, trackId);\n\n return trackId;\n } catch (_: unknown) {\n return undefined;\n }\n}\n\nexport function getProductIdAsync(packageFamilyName: string): Promise<string | undefined> {\n const cache: string | undefined = idCache.get(PRODUCT_ID, packageFamilyName);\n\n if (typeof cache !== 'undefined') return Promise.resolve(cache);\n\n try {\n return requestGet<WindowsAppInfo>(resolveGetProductIdURL(packageFamilyName), true)\n .then(parseGetProductIdResponse)\n .then(function (productId: string | undefined): string | undefined {\n if (typeof productId === 'undefined') return undefined;\n\n idCache.set(PRODUCT_ID, packageFamilyName, productId);\n\n return productId;\n });\n } catch (_: unknown) {\n return Promise.resolve(undefined);\n }\n}\n\nexport function getTrackIdAsync(bundleId: string): Promise<string | undefined> {\n const cache: string | undefined = idCache.get(TRACK_ID, bundleId);\n\n if (typeof cache !== 'undefined') return Promise.resolve(cache);\n\n try {\n return requestGet<IOSAndMacOSLookupAppInfo>(resolveGetTrackIdURL(bundleId), true)\n .then(parseGetTrackIdResponse)\n .then(function (trackId: string | undefined): string | undefined {\n if (typeof trackId === 'undefined') return undefined;\n\n idCache.set(TRACK_ID, bundleId, trackId);\n\n return trackId;\n });\n } catch (_: unknown) {\n return Promise.resolve(undefined);\n }\n}\n","import {getGlobal, GlobalLike} from \"./get-global\";\n\nexport function getTopmostWindow(): WindowProxy {\n const globalLike: GlobalLike = getGlobal();\n\n try {\n if (typeof globalLike.top !== 'undefined' && globalLike.top !== null && globalLike.top !== globalLike.window) {\n void globalLike.top.location.href;\n return globalLike.top;\n }\n } catch (_: unknown) {\n }\n\n return globalLike as unknown as WindowProxy;\n}\n","import packageJSON from \"./package.json\" with {type: 'json'};\nimport PlatformKit, {Browsers, type OS} from 'web-platform-kit';\nimport EventKit from 'web-event-kit';\nimport {createHiddenElement} from \"./utils/create-hidden-element\";\nimport {getProductId, getProductIdAsync, getTrackId, getTrackIdAsync} from \"./utils/get-id\";\nimport {getTopmostWindow} from \"./utils/get-topmost-window\";\nimport {DocumentLike, getGlobal, GlobalLike} from \"./utils/get-global\";\n\ninterface FileSystemDirectoryHandleLike extends FileSystemDirectoryHandle {\n values(): AsyncIterator<FileSystemHandle>;\n}\n\ninterface OpenFilePickerOptions {\n excludeAcceptAllOption?: boolean;\n id?: string;\n multiple?: boolean;\n startIn?: OpenPickerStartIn;\n types?: {\n description?: string;\n accept: Record<string, string[]>;\n }[];\n}\n\ninterface OpenDirectoryPickerOptions {\n id?: string;\n mode?: 'read' | 'readwrite';\n startIn?: OpenPickerStartIn;\n}\n\ninterface IteratorYieldResult<TYield> {\n done?: false;\n value: TYield;\n}\n\ninterface IteratorReturnResult<TReturn> {\n done: true;\n value: TReturn;\n}\n\ninterface AsyncIterator<T, TReturn = any, TNext = any> {\n next(...[value]: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;\n\n return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;\n\n throw?(e?: any): Promise<IteratorResult<T, TReturn>>;\n}\n\ntype IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;\nexport declare type URLCandidate = URL | string;\nexport declare type URLCandidateOrFallback = URLCandidate | (() => any);\nexport declare type URLStringOrFallback = string | (() => any);\nexport declare type OpenPickerStartIn = 'desktop' | 'documents' | 'downloads' | 'music' | 'pictures' | 'videos';\nexport declare type AppOpenedBy = 'scheme' | 'universal' | 'intent' | 'fallback' | 'store';\n\nexport enum SettingType {\n General = 'general',\n Network = 'network',\n Display = 'display',\n Appearance = 'appearance',\n Accessibility = 'accessibility',\n Battery = 'battery',\n Datetime = 'datetime',\n Language = 'language',\n Accounts = 'accounts',\n Storage = 'storage',\n}\n\ninterface CordovaPlugin {\n InAppBrowser?: CordovaInAppBrowser;\n}\n\ninterface CordovaInAppBrowser {\n open(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n}\n\ninterface EventConfig {\n target?: EventTarget;\n type?: string;\n}\n\ninterface FocusEventConfig {\n focus: EventConfig;\n blur: EventConfig;\n visibilitychange: EventConfig;\n}\n\ninterface IntentInfo {\n scheme?: string;\n packageName?: string;\n fallback?: string;\n}\n\nexport declare interface AppInfo {\n scheme?: URLCandidate;\n fallback?: URLCandidateOrFallback;\n timeout?: number;\n allowAppStore?: boolean;\n allowWebStore?: boolean;\n}\n\nexport declare interface AndroidAppInfo extends AppInfo {\n intent?: URLCandidate;\n packageName?: string;\n assumeAllowedInApp?: boolean;\n}\n\nexport declare interface IOSAppInfo extends AppInfo {\n universal?: URLCandidate;\n bundleId?: string;\n trackId?: string;\n assumeAllowedInApp?: boolean;\n}\n\nexport declare interface WindowsAppInfo extends AppInfo {\n packageFamilyName?: string;\n productId?: string;\n}\n\nexport declare interface MacOSAppInfo extends AppInfo {\n bundleId?: string;\n trackId?: string;\n}\n\nexport declare interface AppOpenOptions {\n android?: AndroidAppInfo;\n ios?: IOSAppInfo;\n windows?: WindowsAppInfo;\n macos?: MacOSAppInfo;\n}\n\nexport declare interface TelephoneOptions {\n to?: string;\n}\n\nexport declare interface MessageOptions {\n to?: string | string[];\n body?: string;\n}\n\nexport declare interface MailOptions {\n to?: string | string[];\n cc?: string | string[];\n bcc?: string | string[];\n subject?: string;\n body?: string;\n}\n\nexport declare interface FilepickerOptions {\n accept?: string | string[];\n id?: string;\n directory?: boolean;\n multiple?: boolean;\n startIn?: OpenPickerStartIn;\n}\n\nexport declare interface MapOptions {\n query?: string;\n coordinate?: [number, number];\n label?: string;\n directions?: {\n destination: string | [number, number];\n origin?: string | [number, number];\n };\n zoom?: number;\n fallback?: URLStringOrFallback;\n}\n\n/**\n * Auxiliary helpers for {@link LaunchKitInstance} — environment probes and store-id lookups.\n */\ninterface LaunchKitUtils {\n /**\n * Whether Android `intent://` links can launch apps in the current browser.\n *\n * @remarks\n * `false` outside Android, for browsers with known intent regressions\n * (certain Firefox/Opera ranges), and inside in-app browsers where intent\n * cannot launch (Facebook, Instagram, TikTok, WeChat, QQ, Qzone, Baidu, Weibo).\n */\n get canOpenIntent(): boolean;\n\n /**\n * Whether iOS universal links are available in the current environment.\n *\n * @remarks\n * `false` outside iOS or below iOS 9, and inside in-app browsers known to block\n * universal links: WeChat below 7.0.5, QQ, QQBrowser, UC Browser, and Qzone.\n * Weibo is partner-gated — this getter reports the non-partner default; whitelisted\n * apps opt back in per call via `AppInfo.assumeAllowedInApp` instead.\n */\n get canOpenUniversal(): boolean;\n\n /**\n * Whether {@link LaunchKitInstance.setting} can open settings on this platform.\n *\n * @remarks\n * `false` on iOS, on Windows below 10, and on macOS below 10.10.\n */\n get canOpenSetting(): boolean;\n\n /**\n * Looks up an App Store `trackId` from an iOS/macOS bundle id (async, non-blocking).\n *\n * @param bundleId - The app's bundle identifier (e.g. `'com.example.app'`).\n * @returns The numeric track id as a string, or `undefined` if not found.\n *\n * @remarks\n * Uses `fetch` and caches results for one hour; failures resolve to `undefined`\n * rather than throwing. The synchronous `getTrackId` named export exists for internal\n * use but blocks the main thread.\n */\n getTrackId(bundleId: string): Promise<string | undefined>;\n\n /**\n * Looks up a Microsoft Store `ProductId` from a package family name (async, non-blocking).\n *\n * @param packageFamilyName - The Windows package family name.\n * @returns The product id, or `undefined` if not found.\n *\n * @remarks\n * Uses `fetch` and caches results for one hour; failures resolve to `undefined`\n * rather than throwing. Market and language are derived from the bundled locale detection.\n */\n getProductId(packageFamilyName: string): Promise<string | undefined>;\n}\n\n/**\n * Launcher for external apps and communication intents from the web.\n *\n * Opens installed apps via deep links / custom schemes, Android `intent://` URLs,\n * and iOS universal links — trying each candidate in order until one succeeds, with\n * App Store / web-store fallbacks. Also covers `tel`, `sms`, `mailto`, a file picker,\n * and system-settings deep links.\n *\n * @remarks\n * App-opening relies on focus/visibility heuristics with per-OS timeouts; results\n * indicate a candidate was attempted and the page appeared to background, not a hard\n * confirmation of launch. Deep links need a real user gesture — call these methods\n * from within a click/tap handler, or universal links and custom schemes fall back\n * to the web instead of opening the app.\n *\n * @example\n * ```ts\n * const openedBy = await LaunchKit.app({\n * android: {\n * scheme: 'ms-excel://',\n * packageName: 'com.microsoft.office.excel',\n * intent: 'intent://#Intent;scheme=ms-excel;package=com.microsoft.office.excel;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.microsoft.office.excel;end',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 1000,\n * },\n * ios: {\n * scheme: 'ms-excel://',\n * bundleId: 'com.microsoft.Office.Excel',\n * trackId: '586683407',\n * universal: 'https://1drv.ms/x/c/7f3d9a02c81b4e65/IQBk2wYfN8pTQ5vHmR9xLzUcAeXtP0jWnK4oD3iFgZs7bQY?e=Rk9mZ2',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 2000,\n * },\n * windows: {\n * scheme: 'ms-excel://',\n * packageFamilyName: 'Microsoft.Office.Desktop_8wekyb3d8bbwe',\n * productId: 'cfq7ttc0pr28',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 750,\n * },\n * macos: {\n * scheme: 'ms-excel://',\n * bundleId: 'com.microsoft.Excel',\n * trackId: '462058435',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 750,\n * }\n * });\n * ```\n */\nexport interface LaunchKitInstance {\n /**\n * The installed package version.\n */\n readonly version: string;\n\n /**\n * Enum of system-settings panes (alias of the named {@link SettingType} export).\n */\n readonly SettingType: typeof SettingType;\n\n /**\n * Pauses on a `debugger` statement before each launch attempt. Defaults to `false`.\n *\n * @remarks\n * Calling a launch method from the DevTools console leaves the page without focus and\n * without user activation, so the attempt fails and app-switch detection cannot work.\n * Neither can be restored programmatically. With this on, execution pauses before the\n * navigation and pressing resume hands both back, so a console-driven test behaves like\n * a real tap. Leave it off outside that workflow — every launch method routes through\n * the same place.\n *\n * @example\n * ```ts\n * LaunchKit.debug = true;\n * await LaunchKit.app({ ios: { scheme: 'myapp://' } });\n * ```\n */\n get debug(): boolean;\n\n set debug(value: boolean);\n\n /**\n * Auxiliary helpers: capability probes and async store-id lookups.\n */\n readonly utils: LaunchKitUtils;\n\n /**\n * Attempts to open an installed app for the current OS, trying each resolved\n * candidate in order until one appears to launch it.\n *\n * @param options - Per-platform launch info; only the block matching the current OS is used.\n * @returns The route that opened the app: `'scheme'`, `'universal'`, `'intent'`, `'fallback'`, or `'store'`.\n *\n * @remarks\n * Candidates are ordered per platform (e.g. iOS: universal → scheme → fallback →\n * store). A resolved value means that route was attempted and the page backgrounded,\n * not a guaranteed launch. Rejects when the OS is undetected or no candidate can be\n * built for it. `bundleId` / `packageFamilyName` are resolved to a store id via a\n * blocking lookup when the store fallback is needed.\n */\n app(options?: AppOpenOptions): Promise<AppOpenedBy>;\n\n /**\n * Opens the dialer with a `tel:` URL.\n *\n * @param options - The recipient number in `to`.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Per RFC 3966, `+` is preserved and visual separators (spaces, dashes, dots,\n * parens) are stripped before dialing.\n */\n telephone(options?: TelephoneOptions): Promise<void>;\n\n /**\n * Opens the SMS composer with an `sms:` URL.\n *\n * @param options - One or more recipients in `to`, and an optional `body`.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Body prefill uses OS-specific delimiters (`?`/`&`/`;`); iOS 7 in particular cannot\n * prefill the body at all. Recipients are sanitized to digits, `+`, `-`, and `.`.\n */\n message(options?: MessageOptions): Promise<void>;\n\n /**\n * Opens the mail composer with a `mailto:` URL.\n *\n * @param options - `to` / `cc` / `bcc` (each a string or array), plus optional `subject` and `body`.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Encodes fields per RFC 6068. The body's line breaks are normalized to CRLF.\n */\n mail(options?: MailOptions): Promise<void>;\n\n /**\n * Opens a map at a location, search query, or route — building the right URL for\n * the current OS and falling back to Google Maps on the web.\n *\n * @param options - The map intent: a `query`, a `coordinate`, or `directions`, plus optional `zoom` / `label`.\n * @returns Resolves once a map URL opens, or rejects when every candidate fails.\n *\n * @remarks\n * Takes an intent rather than a URL and generates the per-OS form: `maps://` on\n * iOS/macOS, `geo:` on Android, `bingmaps:` on Windows, with a Google Maps web URL\n * as the shared fallback. Android's `geo:` scheme has no standard directions support,\n * so routes are only expressed through the Google Maps fallback. On Windows the native\n * Maps app was discontinued, so `bingmaps:` usually fails and the web fallback takes over.\n * `label` renders a named pin on iOS/macOS/Windows; it is ignored on Android,\n * where non-Google `geo:` handlers misread the labelled form as a search query.\n *\n * @example\n * ```ts\n * // Search for a place\n * await LaunchKit.map({ query: 'Seoul City Hall' })\n *\n * // Show a coordinate with a labelled pin\n * await LaunchKit.map({ coordinate: [37.5665, 126.9780], label: 'Seoul City Hall', zoom: 15 })\n *\n * // Directions (origin defaults to current location when omitted)\n * await LaunchKit.map({ directions: { destination: 'Seoul Station', origin: [37.5665, 126.9780] } })\n * ```\n */\n map(options?: MapOptions): Promise<void>;\n\n /**\n * Opens a file or directory picker and resolves with the chosen files.\n *\n * @param options - `accept` filters, `directory` for folder selection, `multiple`, `id`, and `startIn`.\n * @returns The selected files; an empty array if the user cancels.\n *\n * @remarks\n * Uses the File System Access API (`showOpenFilePicker` / `showDirectoryPicker`)\n * where available, falling back to a hidden `<input type=\"file\">`. Directory\n * selection is recursive and populates each file's `webkitRelativePath`.\n */\n filepicker(options?: FilepickerOptions): Promise<File[]>;\n\n /**\n * Opens a system-settings pane where the platform supports it.\n *\n * @param type - The settings pane to open; defaults to {@link SettingType.General}.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Not supported on iOS (settings schemes are private API) and rejects there, and on\n * Windows below 10 / macOS below 10.10. Some Android panes fall back to the general\n * settings screen on older API levels; macOS 13+ uses the newer System Settings schema.\n */\n setting(type?: SettingType): Promise<void>;\n}\n\nconst SETTING_URL: Record<'android' | 'windows' | 'macos' | 'macos13', Record<SettingType, string>> = {\n android: {\n general: 'intent:#Intent;action=android.settings.SETTINGS;end',\n network: 'intent:#Intent;action=android.settings.WIFI_SETTINGS;end',\n display: 'intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end',\n appearance: 'intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end',\n accessibility: 'intent:#Intent;action=android.settings.ACCESSIBILITY_SETTINGS;end',\n battery: 'intent:#Intent;action=android.settings.BATTERY_SAVER_SETTINGS;end',\n datetime: 'intent:#Intent;action=android.settings.DATE_SETTINGS;end',\n language: 'intent:#Intent;action=android.settings.LOCALE_SETTINGS;end',\n accounts: 'intent:#Intent;action=android.settings.SYNC_SETTINGS;end',\n storage: 'intent:#Intent;action=android.settings.INTERNAL_STORAGE_SETTINGS;end',\n },\n windows: {\n general: 'ms-settings:system',\n network: 'ms-settings:network',\n display: 'ms-settings:display',\n appearance: 'ms-settings:colors',\n accessibility: 'ms-settings:easeofaccess',\n battery: 'ms-settings:batterysaver',\n datetime: 'ms-settings:dateandtime',\n language: 'ms-settings:regionlanguage',\n accounts: 'ms-settings:emailandaccounts',\n storage: 'ms-settings:storagesense',\n },\n macos: {\n general: 'x-apple.systempreferences:',\n network: 'x-apple.systempreferences:com.apple.preference.network',\n display: 'x-apple.systempreferences:com.apple.preference.displays',\n appearance: 'x-apple.systempreferences:com.apple.preference.general',\n accessibility: 'x-apple.systempreferences:com.apple.preference.universalaccess',\n battery: 'x-apple.systempreferences:com.apple.preference.energysaver',\n datetime: 'x-apple.systempreferences:com.apple.preference.datetime',\n language: 'x-apple.systempreferences:com.apple.Localization',\n accounts: 'x-apple.systempreferences:com.apple.preferences.internetaccounts',\n storage: 'x-apple.systempreferences:',\n },\n macos13: {\n general: 'x-apple.systempreferences:com.apple.General-Settings.extension',\n network: 'x-apple.systempreferences:com.apple.Network-Settings.extension',\n display: 'x-apple.systempreferences:com.apple.Displays-Settings.extension',\n appearance: 'x-apple.systempreferences:com.apple.Appearance-Settings.extension',\n accessibility: 'x-apple.systempreferences:com.apple.Accessibility-Settings.extension',\n battery: 'x-apple.systempreferences:com.apple.Battery-Settings.extension',\n datetime: 'x-apple.systempreferences:com.apple.Date-Time-Settings.extension',\n language: 'x-apple.systempreferences:com.apple.Localization-Settings.extension',\n accounts: 'x-apple.systempreferences:com.apple.Internet-Accounts-Settings.extension',\n storage: 'x-apple.systempreferences:com.apple.settings.Storage',\n }\n}\n\nconst ANDROID_DEFAULT_TIMEOUT: number = 1000;\nconst IOS_DEFAULT_TIMEOUT: number = 2000;\nconst WINDOWS_DEFAULT_TIMEOUT: number = 750;\nconst MACOS_DEFAULT_TIMEOUT: number = 750;\nconst DEFAULT_TIMEOUT: number = 750;\nconst GLOBAL: GlobalLike = getGlobal();\nconst NAVIGATOR: Navigator | undefined = GLOBAL.navigator;\nlet CLEANUP_INPUT_ELEMENT: null | (() => void) = null;\nlet DEBUG: boolean = false;\n\nfunction createTypeGuard<T>(tag: string): (value: unknown) => value is T {\n return function (value: unknown): value is T {\n return Object.prototype.toString.call(value) === '[object ' + tag + ']';\n }\n}\n\nconst isURL: (value: unknown) => value is URL = createTypeGuard<URL>('URL');\nconst isDOMException: (value: unknown) => value is DOMException = createTypeGuard<DOMException>('DOMException');\nconst isArray: (value: unknown) => value is Array<unknown> = createTypeGuard<Array<unknown>>('Array');\nconst isPromise: (value: unknown) => value is Promise<unknown> = createTypeGuard<Promise<unknown>>('Promise');\nconst isHTMLInputElement: (value: unknown) => value is HTMLInputElement = createTypeGuard<HTMLInputElement>('HTMLInputElement');\n\nfunction isHTMLInputElementLike(value: unknown): value is HTMLInputElement {\n if (isHTMLInputElement(value)) return true;\n\n // IE <= 8 reports DOM elements as '[object Object]'; detect structurally via nodeType 1 + tagName instead\n const maybe: HTMLInputElement = value as HTMLInputElement;\n\n return typeof maybe === 'object'\n && maybe !== null\n && maybe.nodeType === 1\n && typeof maybe.tagName === 'string'\n && maybe.tagName.toUpperCase() === 'INPUT';\n}\n\nfunction getDefaultTimeout(): number {\n switch (PlatformKit.os.name) {\n case 'android':\n return ANDROID_DEFAULT_TIMEOUT;\n case 'ios':\n return IOS_DEFAULT_TIMEOUT;\n case 'windows':\n return WINDOWS_DEFAULT_TIMEOUT;\n case 'macos':\n return MACOS_DEFAULT_TIMEOUT;\n default:\n return DEFAULT_TIMEOUT;\n }\n}\n\nfunction isDocumentHidden(): boolean {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: DocumentLike = top.document as DocumentLike;\n\n if (topDocument.visibilityState === 'hidden') return true;\n if (topDocument.webkitVisibilityState === 'hidden') return true;\n if (topDocument.mozVisibilityState === 'hidden') return true;\n if (topDocument.msVisibilityState === 'hidden') return true;\n if (typeof topDocument.hidden !== 'undefined') return topDocument.hidden;\n if (typeof topDocument.webkitHidden !== 'undefined') return topDocument.webkitHidden;\n if (typeof topDocument.mozHidden !== 'undefined') return topDocument.mozHidden;\n if (typeof topDocument.msHidden !== 'undefined') return topDocument.msHidden;\n if (typeof topDocument.hasFocus === 'function') return !topDocument.hasFocus();\n\n return true;\n}\n\nfunction dispatchClickEvent(element: HTMLElement, view: WindowProxy = GLOBAL as unknown as WindowProxy): void {\n let fake: MouseEvent;\n\n try {\n fake = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: view\n });\n } catch (_: unknown) {\n // ES5 or Browsers in the ES5~ES6 transition period\n fake = (GLOBAL.document as Document).createEvent('MouseEvents');\n\n fake.initMouseEvent('click', true, true, view, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n }\n\n element.dispatchEvent(fake);\n}\n\nfunction hasFocus(document: Document): boolean {\n if (typeof document.hasFocus === 'function') return document.hasFocus();\n return false;\n}\n\nfunction focus(target: WindowProxy | HTMLOrSVGElement): void {\n try {\n target.focus({preventScroll: true});\n } catch (_: unknown) {\n try {\n target.focus();\n } catch (_: unknown) {\n }\n }\n}\n\nfunction restoreFocus(): boolean {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n\n focus(top);\n\n if (hasFocus(topDocument)) return true;\n\n const hadBodyTabIndex: boolean = topDocument.body.hasAttribute('tabindex');\n\n if (!hadBodyTabIndex) topDocument.body.setAttribute('tabindex', '-1');\n\n focus(topDocument.body);\n\n if (hasFocus(topDocument)) return true;\n\n if (!hadBodyTabIndex) topDocument.body.removeAttribute('tabindex');\n\n let input: HTMLInputElement | undefined = undefined;\n\n try {\n input = createHiddenElement('input');\n\n if (typeof input === 'undefined') return false;\n\n input.type = 'text';\n input.readOnly = true;\n\n topDocument.body.appendChild(input);\n\n focus(input);\n\n try {\n input.select();\n } catch (_: unknown) {\n }\n\n if (hasFocus(topDocument)) return true;\n } catch (_: unknown) {\n } finally {\n if (typeof input !== 'undefined' && input !== null) {\n try {\n input.blur();\n } catch (_: unknown) {\n }\n\n try {\n topDocument.body.removeChild(input);\n } catch (_: unknown) {\n }\n }\n }\n\n return hasFocus(topDocument);\n}\n\nfunction stripURL<T>(value: T): (T extends URL ? string : T) {\n return isURL(value) ? value.toString() as T extends URL ? string : T : value as Exclude<T, URL>;\n}\n\nfunction resolveFocusEventConfig(): FocusEventConfig {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n\n if (typeof GLOBAL.cordova !== 'undefined') {\n return {\n focus: {\n target: topDocument,\n type: 'resume',\n },\n blur: {\n target: topDocument,\n type: 'pause',\n },\n visibilitychange: {}\n };\n } else if (PlatformKit.os.name === 'ios') {\n if (PlatformKit.compareVersion(PlatformKit.os.version, '8.0') >= 0) {\n return {\n focus: {},\n blur: {},\n visibilitychange: {\n target: topDocument,\n type: 'visibilitychange',\n }\n };\n } else {\n return {\n focus: {\n target: top,\n type: 'pageshow',\n },\n blur: {\n target: top,\n type: 'pagehide',\n },\n visibilitychange: {}\n }\n }\n } else if (typeof (GLOBAL.document as Document).addEventListener === 'function') {\n return {\n focus: {\n target: top,\n type: 'focus',\n },\n blur: {\n target: top,\n type: 'blur',\n },\n visibilitychange: {\n target: topDocument,\n type: 'visibilitychange',\n }\n };\n } else {\n return {\n focus: {\n target: topDocument,\n type: 'focus',\n },\n blur: {\n target: topDocument,\n type: 'blur',\n },\n visibilitychange: {\n target: topDocument,\n type: 'visibilitychange',\n }\n }\n }\n}\n\nfunction openURL(tried: number, url: string, timeout: number): Promise<void> {\n const config: FocusEventConfig = resolveFocusEventConfig();\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n let anchor: HTMLAnchorElement | undefined = undefined;\n let iframe: HTMLIFrameElement | undefined = undefined;\n\n function open(): void {\n if (typeof GLOBAL.cordova !== 'undefined' && GLOBAL.cordova !== null) {\n if (typeof GLOBAL.cordova.InAppBrowser !== 'undefined') {\n // required `cordova plugin add cordova-plugin-inappbrowser`\n GLOBAL.cordova.InAppBrowser.open(url, '_system');\n } else if (typeof GLOBAL.open === 'function') {\n GLOBAL.open(url, '_system');\n }\n\n return;\n }\n\n if (isUserActivationActive() || tried === 0) {\n top.location.href = url;\n } else {\n try {\n anchor = createHiddenElement('a');\n anchor.href = url;\n topDocument.body.appendChild(anchor);\n\n dispatchClickEvent(anchor, top);\n } catch (_: unknown) {\n } finally {\n if (typeof anchor !== 'undefined') {\n try {\n topDocument.body.removeChild(anchor);\n } catch (_: unknown) {\n }\n }\n }\n }\n\n try {\n iframe = createHiddenElement('iframe');\n iframe.src = url;\n topDocument.body.appendChild(iframe);\n\n setTimeout(function (): void {\n if (typeof iframe !== 'undefined') {\n try {\n topDocument.body.removeChild(iframe);\n } catch (_: unknown) {\n }\n }\n }, 500);\n\n return;\n } catch (_: unknown) {\n }\n }\n\n return new Promise<void>(function (resolve: () => void, reject: () => void): void {\n // Opt-in only. Calling a launch method from the DevTools console leaves the page without focus or user activation, and neither can be restored programmatically — pausing here lets the developer hand both back by pressing resume.\n if (DEBUG) debugger;\n\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n let resolved: boolean = false;\n\n function cleanup(): void {\n if (typeof timeoutId !== 'undefined') {\n clearTimeout(timeoutId);\n\n timeoutId = undefined;\n }\n\n try {\n if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined') EventKit.remove(config.blur.target, config.blur.type, onblur);\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.remove(config.focus.target, config.focus.type, onfocus);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n } catch (_: unknown) {\n // cross-origin window\n }\n\n if (typeof anchor !== 'undefined') {\n try {\n topDocument.body.removeChild(anchor);\n } catch (_: unknown) {\n }\n }\n\n if (typeof iframe !== 'undefined') {\n try {\n topDocument.body.removeChild(iframe);\n } catch (_: unknown) {\n }\n }\n }\n\n function done(success: boolean): void {\n if (resolved) return;\n\n resolved = true;\n\n cleanup();\n if (success) resolve();\n else reject();\n }\n\n function onblur(): void {\n if (typeof timeoutId !== 'undefined') {\n clearTimeout(timeoutId);\n\n timeoutId = undefined;\n }\n\n if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined') EventKit.remove(config.blur.target, config.blur.type, onblur);\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.add(config.focus.target, config.focus.type, onfocus);\n }\n\n function onfocus(): void {\n done(true);\n }\n\n function onvisibilitychange(): void {\n if (isDocumentHidden()) onblur();\n else onfocus();\n }\n\n timeoutId = setTimeout(function (): void {\n done(false);\n }, timeout);\n\n if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined') EventKit.add(config.blur.target, config.blur.type, onblur);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n\n if (!hasFocus(topDocument)) restoreFocus();\n\n try {\n open();\n } catch (_: unknown) {\n done(false);\n }\n });\n}\n\nfunction resolveOptions(option: AppOpenOptions): [[AppOpenedBy, URLStringOrFallback][], number] {\n const resolved: [AppOpenedBy, URLStringOrFallback][] = [];\n const os: OS = PlatformKit.os.name;\n\n if (os === 'unknown') throw new Error('Cannot resolve app open options: unsupported or undetected OS. (userAgent: \"' + PlatformKit.userAgent + '\")');\n\n // common\n let scheme: string | undefined;\n let fallback: URLStringOrFallback | undefined;\n let allowAppStore: boolean | undefined;\n let allowWebStore: boolean | undefined;\n let allowScheme: boolean;\n let assumeAllowedInApp: boolean;\n let timeout: number | undefined;\n\n // android\n let intent: string | undefined;\n let packageName: string | undefined;\n\n // ios & macos\n let bundleId: string | undefined;\n let trackId: string | undefined;\n\n // ios\n let universal: string | undefined;\n\n // windows\n let packageFamilyName: string | undefined;\n let productId: string | undefined;\n\n switch (os) {\n case 'android':\n if (typeof option.android === 'undefined') return [[], 0];\n\n intent = stripURL(option.android.intent);\n scheme = stripURL(option.android.scheme);\n fallback = stripURL(option.android.fallback);\n packageName = option.android.packageName;\n assumeAllowedInApp = option.android.assumeAllowedInApp === true;\n allowAppStore = option.android.allowAppStore;\n allowWebStore = option.android.allowWebStore;\n allowScheme = canOpenScheme(assumeAllowedInApp);\n timeout = option.android.timeout;\n\n // intent ⭢ scheme / packageName / fallback\n if (typeof intent !== 'undefined' && (typeof scheme === 'undefined' || typeof packageName === 'undefined' || typeof fallback === 'undefined')) {\n const parsed: IntentInfo = parseIntentURL(intent);\n\n if (typeof parsed.scheme !== 'undefined' && typeof scheme === 'undefined') scheme = parsed.scheme;\n if (typeof parsed.packageName !== 'undefined' && typeof packageName === 'undefined') packageName = parsed.packageName;\n if (typeof parsed.fallback !== 'undefined' && typeof fallback === 'undefined') fallback = parsed.fallback;\n }\n\n // scheme / packageName / fallback ⭢ intent\n if (typeof scheme !== 'undefined' && typeof intent === 'undefined') intent = createIntentURL(scheme, packageName, fallback);\n\n // default android timeout\n if (typeof timeout === 'undefined') timeout = ANDROID_DEFAULT_TIMEOUT;\n\n // intent ⭢ scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof intent !== 'undefined' && canOpenIntent()) resolved.push(['intent', intent]);\n if (typeof scheme !== 'undefined' && allowScheme) resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof packageName !== 'undefined') {\n if (allowAppStore && allowScheme) resolved.push(['store', createAppStoreURL(packageName, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(packageName, os)]);\n }\n\n return [resolved, timeout];\n case 'ios':\n if (typeof option.ios === 'undefined') return [[], 0];\n\n universal = stripURL(option.ios.universal);\n scheme = stripURL(option.ios.scheme);\n fallback = stripURL(option.ios.fallback);\n bundleId = option.ios.bundleId;\n trackId = option.ios.trackId;\n assumeAllowedInApp = option.ios.assumeAllowedInApp === true;\n allowAppStore = option.ios.allowAppStore;\n allowWebStore = option.ios.allowWebStore;\n allowScheme = canOpenScheme(assumeAllowedInApp);\n timeout = option.ios.timeout;\n\n // bundle id ⭢ track id\n if (typeof bundleId !== 'undefined' && typeof trackId === 'undefined') trackId = getTrackId(bundleId);\n\n // default ios timeout\n if (typeof timeout === 'undefined') timeout = IOS_DEFAULT_TIMEOUT;\n\n // universal ⭢ scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof universal !== 'undefined' && canOpenUniversal(assumeAllowedInApp)) resolved.push(['universal', universal]);\n if (typeof scheme !== 'undefined' && allowScheme) resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof trackId !== 'undefined') {\n if (allowAppStore && allowScheme) resolved.push(['store', createAppStoreURL(trackId, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(trackId, os)]);\n }\n\n return [resolved, timeout];\n case 'windows':\n if (typeof option.windows === 'undefined') return [[], 0];\n\n scheme = stripURL(option.windows.scheme);\n fallback = stripURL(option.windows.fallback);\n packageFamilyName = option.windows.packageFamilyName;\n productId = option.windows.productId;\n allowAppStore = option.windows.allowAppStore;\n allowWebStore = option.windows.allowWebStore;\n timeout = option.windows.timeout;\n\n // package family name ⭢ product id\n if (typeof packageFamilyName !== 'undefined' && typeof productId === 'undefined') productId = getProductId(packageFamilyName);\n\n // default windows timeout\n if (typeof timeout === 'undefined') timeout = WINDOWS_DEFAULT_TIMEOUT;\n\n // scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof scheme !== 'undefined') resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof productId !== 'undefined') {\n if (allowAppStore) resolved.push(['store', createAppStoreURL(productId, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(productId, os)]);\n }\n\n return [resolved, timeout];\n case 'macos':\n if (typeof option.macos === 'undefined') return [[], 0];\n\n scheme = stripURL(option.macos.scheme);\n fallback = stripURL(option.macos.fallback);\n bundleId = option.macos.bundleId;\n trackId = option.macos.trackId;\n allowAppStore = option.macos.allowAppStore;\n allowWebStore = option.macos.allowWebStore;\n timeout = option.macos.timeout;\n\n // bundle id ⭢ track id\n if (typeof bundleId !== 'undefined' && typeof trackId === 'undefined') trackId = getTrackId(bundleId);\n\n // default macos timeout\n if (typeof timeout === 'undefined') timeout = MACOS_DEFAULT_TIMEOUT;\n\n // scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof scheme !== 'undefined') resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof trackId !== 'undefined') {\n if (allowAppStore) resolved.push(['store', createAppStoreURL(trackId, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(trackId, os)]);\n }\n\n return [resolved, timeout];\n }\n}\n\nfunction canOpenIntent(): boolean {\n if (PlatformKit.os.name !== 'android') return false;\n\n const browser: Browsers = PlatformKit.browser.name;\n const version: string = PlatformKit.browser.version;\n\n // Browser: Samsung Internet\n // Version: 17.0.1.69 ≤ v < 17.0.4.3 (17.0.1.69, 17.0.2.69)\n // Bug: `intent://` links open a blank tab instead of launching the target app. (window.open(_blank))\n // Rationale: The regression is reported for 17.0.1; Test results show that the bug persists up to version 17.0.2.69.\n // Sources: https://forum.developer.samsung.com/t/chrome-intent-scheme/20237\n // if (browser === 'samsung' && PlatformKit.compareVersion(version, '17.0.1.69') >= 0 && PlatformKit.compareVersion(version, '17.0.4.3') < 0) return false;\n\n // Browser: Firefox\n // Version: v < 41.0\n // Bug: `intent://` links cannot launch apps because Intent URI handling is not implemented yet.\n // Rationale: The Firefox for Android 41.0 release notes list “Open Android applications from a webpage via Intent URIs” as a new feature, implying earlier versions did not support it.\n // Sources: https://bugzilla.mozilla.org/show_bug.cgi?id=851693\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '41.0') < 0) return false;\n\n // Browser: Firefox\n // Version: 59.0 ≤ v < 68.11.0\n // Bug: When an `intent://` URL contains a `package` parameter, Firefox may incorrectly redirect to the Play Store (or fail to launch the installed app) even if the app is already installed.\n // Rationale: Bugzilla bug 851693 comments report a regression in the 59.x range where a `package` parameter causes Play Store redirection; no explicit fix is documented for 58–68 Fennec, and 68.11.0 is announced as the final Fennec release, so we conservatively assume the entire 58–68.10.* range is impacted.\n // Sources: https://bugzilla.mozilla.org/show_bug.cgi?id=1453784\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '59.0') >= 0 && PlatformKit.compareVersion(version, '68.11.0') < 0) return false;\n\n // Browser: Firefox\n // Version: 80.0 ≤ v < 82.0\n // Bug: Index links / `intent://` URLs may open the Play Store instead of the already-installed target app when loaded inside Firefox for Android (Fenix).\n // Rationale: GitHub issue mozilla-mobile/fenix#12746 and related Support threads describe installed apps being ignored and links going to Play Store starting from 79; follow-up comments indicate fixes landing and QA verification around 81–82.\n // Sources: https://github.com/mozilla-mobile/fenix/issues/12746\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '80.0') >= 0 && PlatformKit.compareVersion(version, '82.0') < 0) return false;\n\n // Browser: Firefox\n // Version: 96.0 ≤ v < 107.0\n // Bug: `S.browser_fallback_url` is always followed even when the target app is installed and should handle the intent, causing the fallback URL to load unnecessarily and potentially leaking SameSite=Strict cookies across contexts.\n // Rationale: Fenix issue #23397 reports `S.browser_fallback_url` always being executed in 96.2.0, and CVE-2022-45413 documents the SameSite cookie leak for Firefox for Android versions prior to 107, so we treat 96–106.* as affected.\n // Sources: https://github.com/mozilla-mobile/fenix/issues/23397\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '96.0') >= 0 && PlatformKit.compareVersion(version, '107.0') < 0) return false;\n\n // Browser: Opera\n // Version: v < 14.0\n // Bug: Presto-based Opera for Android does not reliably support Chrome-style `intent://` links for launching installed apps.\n // Rationale: Opera switched from Presto to Chromium around Opera 14; prior to this, its engine did not fully implement Chrome-specific Android Intent URI semantics.\n // Sources: https://forums.opera.com/topic/11318\n if (browser === 'opera' && PlatformKit.compareVersion(version, '14.0') < 0) return false;\n\n // Browser: WeChat / QQ / Qzone / Baidu / Weibo (Android in-app browsers)\n // Bug: `intent://` has no chance to launch in these webviews; the Weibo partner whitelist covers scheme / universal link only, not intent.\n // Rationale: See isFullyBlockedInAppBrowser and isPartnerAppOnly — the single sources of truth for these environments.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n if (isFullyBlockedInAppBrowser() || isPartnerAppOnly()) return false;\n\n // Browser: Facebook / Instagram / TikTok in-app browsers\n // Version:\n // Bug: `intent://` links are blocked; evidence is intent-specific, so custom schemes are NOT gated by this check.\n // Rationale: WeChat was moved to isFullyBlockedInAppBrowser (full block: scheme + intent + market) and removed from this tail to keep a single source of truth.\n // Sources: https://developers.facebook.com/community/threads/470205278761649\n return !(/(?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/[\\w.]+;/i.test(PlatformKit.userAgent) || /instagram[\\/ ][-\\w.]+/i.test(PlatformKit.userAgent) || /musical_ly(?:.+app_?version\\/|_)[\\w.]+/i.test(PlatformKit.userAgent) || /ultralite app_version\\/[\\w.]+/i.test(PlatformKit.userAgent));\n}\n\nfunction canOpenUniversal(assumeAllowedInApp: boolean = false): boolean {\n if (PlatformKit.os.name !== 'ios' || PlatformKit.compareVersion(PlatformKit.os.version, '9.0') < 0) return false;\n\n // Partner-gated environments (Weibo): bypassable only by declared partnership; hard blocks below are never bypassed\n if (isPartnerAppOnly() && !assumeAllowedInApp) return false;\n\n const userAgent: string = PlatformKit.userAgent;\n\n // Browser: WeChat (iOS in-app browser)\n // Version: v < 7.0.5\n // Bug: Universal Links inside the WeChat webview do not launch third-party apps; 7.0.5 lifted the restriction.\n // Rationale: Originally observed by callapp-lib (2019); re-confirmed by 2023 field reports stating Safari supports UL,\n // WeChat supports it from 7.0.5, while UC/QQ browsers still do not. Note that a Universal Link only triggers\n // when it is cross-domain relative to the current page — same-domain links are treated as in-page navigation by iOS.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n const wechat: RegExpMatchArray | null = userAgent.match(/micromessenger\\/(\\d+(?:\\.\\d+)*)/i);\n\n if (wechat !== null && PlatformKit.compareVersion(wechat[1], '7.0.5') < 0) return false;\n\n // Browser: QQ (iOS) / QQBrowser / UC Browser\n // Version:\n // Bug: Universal Links navigate to the fallback website instead of launching the target app.\n // Rationale: QQ app blocked UL since 2018-12-23 and QQBrowser since 2019-05-01 (callapp-lib field notes); UC and QQ browsers are still reported as unsupported as of 2023.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n if (/ qq\\/[\\d.]+/i.test(userAgent) || /m?qqbrowser\\/[\\d.]+/i.test(userAgent) || /ucbrowser\\/[\\d.]+/i.test(userAgent)) return false;\n\n // Browser: Qzone (iOS in-app browser)\n // Version:\n // Bug: Universal Links are blocked; no partner escape hatch is known (unlike Weibo — see isPartnerAppOnly).\n // Rationale: Based on callapp-lib observations (2019); no independent re-verification found after 2019, so we conservatively keep it blocked.\n // Sources: https://github.com/suanmei/callapp-lib/blob/master/src/index.ts\n return !/qzone\\/.*_qz_[\\d.]+/i.test(userAgent);\n}\n\nfunction canOpenScheme(assumeAllowedInApp: boolean = false): boolean {\n const os: OS = PlatformKit.os.name;\n\n if (os === 'android') return !isFullyBlockedInAppBrowser() && (!isPartnerAppOnly() || assumeAllowedInApp);\n if (os === 'ios') return !/micromessenger\\/[\\w.]+/i.test(PlatformKit.userAgent) && (!isPartnerAppOnly() || assumeAllowedInApp);\n\n // No in-app scheme blocklist evidence on windows / macos\n return true;\n}\n\nfunction isFullyBlockedInAppBrowser(): boolean {\n // Android-only judgment: on iOS, WeChat >= 7.0.5 allows Universal Links (see canOpenUniversal)\n if (PlatformKit.os.name !== 'android') return false;\n\n const userAgent: string = PlatformKit.userAgent;\n\n // Browser: WeChat / QQ / Qzone / Baidu (Android in-app browsers)\n // Bug: Custom schemes, intent:// and market:// are all blocked (whitelist-only webviews), so every non-https candidate burns its timeout without any chance of launching.\n // Rationale: callapp-lib routes these environments straight to the fallback URL on Android; 2023 field reports confirm all Android launch methods remain banned inside WeChat. Weibo is partner-gated rather than fully blocked — see isPartnerAppOnly.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n return /micromessenger\\/[\\w.]+/i.test(userAgent) || / qq\\/[\\d.]+/i.test(userAgent) || /qzone\\/.*_qz_[\\d.]+/i.test(userAgent) || /baiduboxapp\\/[\\d.]+/i.test(userAgent);\n}\n\nfunction isPartnerAppOnly(): boolean {\n // Browser: Weibo (iOS & Android in-app browser)\n // Version:\n // Bug: Launches are whitelist-gated: only apps registered as Weibo partners can open via scheme / universal link; non-partner apps are routed straight to the store (iOS) or fallback (Android).\n // Rationale: callapp-lib models this as the `isSupportWeibo` opt-in — `Browser.isWeibo && !isSupportWeibo` appears in both its iOS and Android branches, and Weibo is the only environment given a partner escape hatch there. Partnership cannot be detected at runtime; callers declare it via AppInfo.assumeAllowedInApp.\n // Sources: https://github.com/suanmei/callapp-lib/blob/master/src/index.ts\n return /weibo.*weibo__[\\d.]+/i.test(PlatformKit.userAgent);\n}\n\n// `ms-settings:` needs Windows 10. `PlatformKit.os.version` mixes marketing names with\n// numbers, and `compareVersion` cannot rank the names — `'95'` and `'98'` parse as numbers\n// larger than 10, while `'XP'` and `'NT 4.0'` parse as NaN. Both would otherwise pass.\nfunction canOpenWindowsSetting(version: string): boolean {\n if (version.length === 0) return false;\n\n // Non-numeric marketing names — XP, Vista, ME, RT, NT x.x, server 20xx — all predate 10\n if (/^\\d/.test(version) === false) return false;\n\n // Numeric names that are not kernel versions\n if (version === '95' || version === '98' || version === '2000') return false;\n\n return PlatformKit.compareVersion(version, '10') >= 0;\n}\n\nfunction canOpenSetting(): boolean {\n const os: OS = PlatformKit.os.name;\n const version: string = PlatformKit.os.version;\n\n return !(\n os === 'unknown'\n || (os === 'android' && !canOpenIntent())\n || os === 'ios'\n || (os === 'windows' && !canOpenWindowsSetting(version))\n || (os === 'macos' && PlatformKit.compareVersion(version, '10.10') < 0)\n );\n}\n\nfunction parseIntentURL(intent: string): IntentInfo {\n const parsed: IntentInfo = {};\n const split: string[] = intent.split('#Intent;');\n\n if (split.length !== 2) return parsed;\n\n const host: string = split[0].replace(/^intent:\\/\\//i, '');\n const parameterString: string = split[1].replace(/;?end\\s*$/i, '');\n const parameters: string[] = parameterString.split(';');\n const extras: Record<string, string> = {};\n\n for (let i: number = 0; i < parameters.length; i++) {\n const part: string = parameters[i];\n const index: number = part.indexOf('=');\n\n if (index !== -1) extras[part.substring(0, index)] = part.substring(index + 1);\n }\n\n if (typeof extras['scheme'] !== 'undefined') {\n if (host.length > 0) parsed.scheme = extras['scheme'] + '://' + host;\n else parsed.scheme = extras['scheme'] + '://';\n }\n\n if (typeof extras['package'] !== 'undefined') parsed.packageName = extras['package'];\n\n if (typeof extras['S.browser_fallback_url'] !== 'undefined') {\n let fallback: string = extras['S.browser_fallback_url'];\n\n try {\n fallback = decodeURIComponent(fallback);\n } catch (_: unknown) {\n }\n\n if (/^https?:\\/\\//i.test(fallback)) parsed.fallback = fallback;\n }\n\n return parsed;\n}\n\nfunction createIntentURL(scheme: string, packageName?: string, fallback?: string | (() => any)): string {\n const split: string[] = scheme.split('://');\n const prefix: string = split[0];\n const suffix: string = split[1];\n\n let intent: string = 'intent://';\n\n if (typeof suffix !== 'undefined') intent += suffix;\n\n intent += '#Intent;scheme=' + prefix + ';' + 'action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;';\n\n if (typeof packageName !== 'undefined') intent += 'package=' + packageName + ';';\n if (typeof fallback !== 'undefined' && typeof fallback === 'string') intent += 'S.browser_fallback_url=' + encodeURIComponent(fallback) + ';';\n else if (typeof packageName !== 'undefined') intent += 'S.browser_fallback_url=' + encodeURIComponent(createAppStoreURL(packageName, 'android')!) + ';';\n\n return intent + 'end';\n}\n\nfunction createAppStoreURL(id: string, os: Exclude<OS, 'unknown'>): string {\n switch (os) {\n case 'android':\n return 'market://details?id=' + id;\n case 'ios':\n return 'itms-apps://itunes.apple.com/app/id' + id + '?mt=8';\n case 'windows':\n return 'ms-windows-store://pdp/?ProductId=' + id;\n case 'macos':\n return 'macappstore://itunes.apple.com/app/id' + id + '?mt=12';\n default:\n return os satisfies never;\n }\n}\n\nfunction createWebStoreURL(id: string, os: Exclude<OS, 'unknown'>): string {\n switch (os) {\n case 'android':\n return 'https://play.google.com/store/apps/details?id=' + id;\n case 'ios':\n return 'https://itunes.apple.com/app/id' + id + '?mt=8';\n case 'windows':\n return 'https://apps.microsoft.com/detail/' + id;\n case 'macos':\n return 'https://apps.apple.com/app/id' + id + '?mt=12';\n default:\n return os satisfies never;\n }\n}\n\nfunction escapeURIComponentString(value: string): string {\n return encodeURIComponent(value)\n .replace(/[!'()*]/g, function (char: string): string {\n return '%' + char.charCodeAt(0).toString(16);\n });\n}\n\nfunction sanitizeSMSRecipient(value: string): string {\n return value.replace(/[^\\d+\\-.]/g, '');\n}\n\nfunction escapeURIComponentMailAddressString(value: string): string {\n return escapeURIComponentString(value)\n .replace(/%40/g, '@')\n .replace(/%2C/gi, ',');\n}\n\nfunction encodeMailBody(value: string): string {\n return escapeURIComponentString(value.replace(/\\r\\n|\\n|\\r/g, '\\r\\n'));\n}\n\nfunction encodeMapValue(value: string | [number, number]): string {\n if (isArray(value)) return value[0] + ',' + value[1];\n\n return escapeURIComponentString(value);\n}\n\nfunction encodeBingRoutePoint(value: string | [number, number] | undefined): string {\n if (typeof value === 'undefined') return '';\n if (isArray(value)) return 'pos.' + value[0] + '_' + value[1];\n\n return escapeURIComponentString(value);\n}\n\nfunction toArray(value: string | string[] | undefined): string[] {\n return typeof value === 'undefined' ? [] : typeof value === 'string' ? [value] : value;\n}\n\nfunction joining<T>(values: ArrayLike<T>, mapfn: ((value: T) => string) | undefined = undefined, separator: string = ','): string {\n const length: number = values.length;\n let result: string = '';\n\n for (let i: number = 0; i < length; i++) {\n if (i !== 0) result += separator;\n\n if (typeof mapfn !== 'undefined') result += mapfn(values[i]);\n else result += values[i];\n }\n\n return result;\n}\n\nfunction tokenize(string: string): string[] {\n if (string === '') return [];\n\n return string\n .split(/\\s*[,,]\\s*/)\n .filter(function (string: string): boolean {\n return string !== '';\n });\n}\n\nfunction flatten<T>(arrays: T[][]): T[] {\n const result: T[] = [];\n\n for (let i: number = 0; i < arrays.length; i++) {\n const sub: T[] = arrays[i];\n\n for (let j: number = 0; j < sub.length; j++) {\n result.push(sub[j]);\n }\n }\n\n return result;\n}\n\nfunction isUserActivationActive(): boolean {\n return typeof NAVIGATOR !== 'undefined' && typeof NAVIGATOR.userActivation !== 'undefined' && NAVIGATOR.userActivation.isActive;\n}\n\nfunction canShowDirectoryPicker(): boolean {\n return typeof GLOBAL.showDirectoryPicker === 'function';\n}\n\nfunction canShowOpenFilePicker(): boolean {\n return typeof GLOBAL.showOpenFilePicker === 'function';\n}\n\nfunction isFileSystemFileHandle(handle: FileSystemHandle): handle is FileSystemFileHandle {\n return handle.kind === 'file';\n}\n\nfunction isFileSystemDirectoryHandle(handle: FileSystemHandle): handle is FileSystemDirectoryHandle {\n return handle.kind === 'directory';\n}\n\nfunction fileListToArray(fileList: FileList | null): File[] {\n const files: File[] = [];\n\n if (fileList === null) return files;\n\n for (let i: number = 0; i < fileList.length; i++) {\n const file: File = fileList[i];\n\n files.push(file);\n }\n\n return files;\n}\n\nfunction setWebkitRelativePath(file: File, path: string = file.webkitRelativePath): File {\n Object.defineProperty(\n file,\n 'webkitRelativePath',\n {\n value: path,\n writable: false,\n configurable: true,\n enumerable: true,\n }\n );\n\n return file;\n}\n\nfunction resolveFile(module: HTMLInputElement | Promise<FileSystemDirectoryHandle> | Promise<FileSystemFileHandle[]>): Promise<File[]> {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n const config: FocusEventConfig = resolveFocusEventConfig();\n\n function resolveFileSystemHandle(module: Promise<FileSystemDirectoryHandle> | Promise<FileSystemFileHandle[]>, resolve: (files: File[]) => void, reject: (reason?: any) => void): void {\n module\n .then(function (result: FileSystemDirectoryHandle | FileSystemFileHandle[]) {\n if (isArray(result)) {\n const handles: Promise<File>[] = [];\n\n for (let i: number = 0; i < result.length; i++) handles[i] = result[i].getFile();\n\n return Promise\n .all(handles)\n .then(resolve)\n .catch(reject);\n } else if (isFileSystemDirectoryHandle(result)) {\n return walk(result, result.name)\n .then(resolve)\n .catch(reject);\n }\n })\n .catch(function (error: unknown): void {\n if (isDOMException(error) && error.name === 'AbortError') return resolve([]);\n\n reject(error);\n });\n }\n\n function resolveInput(module: HTMLInputElement, resolve: (files: File[]) => void): void {\n let resolved: boolean = false;\n\n function done(success: boolean): void {\n if (resolved) return;\n\n resolved = true;\n cleanup();\n\n if (!success) return resolve([]);\n\n resolve(fileListToArray(module.files));\n }\n\n function onfocus(): void {\n setTimeout(function (): void {\n if (module.value.length > 0) done(true);\n else done(false);\n }, 1000);\n }\n\n function onvisibilitychange(): void {\n if (!isDocumentHidden()) onfocus();\n }\n\n function onclick(): void {\n done(false);\n }\n\n module.onchange = function (): void {\n done(true);\n };\n\n if (CLEANUP_INPUT_ELEMENT !== null) CLEANUP_INPUT_ELEMENT();\n\n if (typeof module.oncancel !== 'undefined') {\n module.oncancel = function (): void {\n done(false);\n };\n } else {\n module.onclick = function (): void {\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.add(config.focus.target, config.focus.type, onfocus);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n setTimeout(function (): void {\n EventKit.add(topDocument, 'click', onclick);\n }, 100);\n\n CLEANUP_INPUT_ELEMENT = function (): void {\n done(false);\n };\n }\n }\n\n function cleanup(): void {\n CLEANUP_INPUT_ELEMENT = null;\n\n try {\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.remove(config.focus.target, config.focus.type, onfocus);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n EventKit.remove(topDocument, 'click', onclick);\n } catch (_) {\n }\n }\n\n dispatchClickEvent(module);\n }\n\n return new Promise(function (resolve: (files: File[]) => void, reject: (reason?: any) => void): void {\n if (isPromise(module)) return resolveFileSystemHandle(module, resolve, reject);\n else if (isHTMLInputElementLike(module)) return resolveInput(module, resolve);\n else reject(new TypeError('resolveFile expects an HTMLInputElement or a file-system handle Promise, but received: ' + Object.prototype.toString.call(module)));\n });\n}\n\nfunction walk(directory: FileSystemDirectoryHandle, basePath: string = ''): Promise<File[]> {\n return new Promise(function (resolve: (files: File[]) => void, reject: (reason?: any) => void): void {\n const iterator: AsyncIterator<FileSystemHandle> = (directory as FileSystemDirectoryHandleLike).values();\n const handles: FileSystemHandle[] = [];\n\n function collectNext(): void {\n iterator\n .next()\n .then(function (result: IteratorResult<FileSystemHandle>): void {\n if (result.done) {\n processHandles();\n return;\n }\n\n handles.push(result.value);\n collectNext();\n })\n .catch(reject);\n }\n\n function processHandles(): void {\n const promises: Promise<File[]>[] = [];\n\n for (let i: number = 0; i < handles.length; i++) {\n const handle: FileSystemHandle = handles[i];\n const name: string = handle.name;\n let path: string;\n\n if (basePath === '') path = name;\n else path = basePath + '/' + name;\n\n if (isFileSystemFileHandle(handle)) {\n const filePromise: Promise<File[]> = handle\n .getFile()\n .then(function (file: File): File[] {\n return [setWebkitRelativePath(file, path)];\n });\n\n promises.push(filePromise);\n } else if (isFileSystemDirectoryHandle(handle)) {\n promises.push(walk(handle, path));\n }\n }\n\n Promise\n .all(promises)\n .then(flatten)\n .then(resolve)\n .catch(reject);\n }\n\n collectNext();\n });\n}\n\nconst LaunchKit: LaunchKitInstance = {\n SettingType: SettingType,\n version: packageJSON.version,\n\n get debug(): boolean {\n return DEBUG;\n },\n\n set debug(value: boolean) {\n DEBUG = value === true;\n },\n\n utils: {\n get canOpenIntent(): boolean {\n return canOpenIntent();\n },\n\n get canOpenUniversal(): boolean {\n return canOpenUniversal();\n },\n\n get canOpenSetting(): boolean {\n return canOpenSetting();\n },\n\n getTrackId: getTrackIdAsync,\n getProductId: getProductIdAsync,\n },\n\n app(options: AppOpenOptions = {}): Promise<AppOpenedBy> {\n let resolved: [[AppOpenedBy, URLStringOrFallback][], number];\n\n try {\n resolved = resolveOptions(options);\n } catch (error: unknown) {\n return Promise.reject(error);\n }\n\n const urls: [AppOpenedBy, URLStringOrFallback][] = resolved[0];\n const timeout: number = resolved[1];\n\n if (urls.length === 0) return Promise.reject(new Error('No openable URL candidates were resolved for the current OS (\"' + PlatformKit.os.name + '\"). Provide at least one of: scheme, intent, universal, fallback, or store id for this platform.'));\n\n return new Promise(function (resolve: (value: AppOpenedBy) => void, reject: (urlOpenError: Error) => void): Promise<void> | void {\n const tried: string[] = [];\n\n function openURLSequential(index: number = 0): Promise<void> | void {\n if (index >= urls.length) return reject(new Error('Failed to open the application using all available URLs.\\n\\n' + 'Attempted URLs:\\n' + joining(tried, undefined, '\\n↓\\n')));\n\n const entry: [AppOpenedBy, URLStringOrFallback] = urls[index];\n const by: AppOpenedBy = entry[0];\n const url: URLStringOrFallback = entry[1];\n\n if (typeof url === 'string') {\n tried[index] = url;\n\n return openURL(index, url, timeout)\n .then(function (): void {\n resolve(by);\n })\n .catch(function (): void {\n openURLSequential(index + 1);\n });\n } else {\n tried[index] = '[function fallback]';\n\n try {\n url();\n } catch (_: unknown) {\n return openURLSequential(index + 1);\n }\n\n resolve(by);\n }\n }\n\n return openURLSequential();\n });\n },\n\n telephone(options: TelephoneOptions = {}): Promise<void> {\n let url: string = 'tel:';\n\n // RFC 3966: '+' is a delimiter and MUST NOT be percent-encoded; visual separators (- . space parens) are stripped before dialing\n // https://datatracker.ietf.org/doc/html/rfc3966#section-3\n if (typeof options.to !== 'undefined') url += options.to.replace(/[^\\d+*#]/g, '');\n\n return openURL(0, url, getDefaultTimeout());\n },\n\n message(options: MessageOptions = {}): Promise<void> {\n const to: string[] = toArray(options.to);\n let url: string = 'sms:';\n\n // Apple URL Scheme Reference: sms recipient may contain only 0-9, '+', '-', '.'\n // https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html\n if (to.length > 0) url += joining(to, sanitizeSMSRecipient);\n\n if (typeof options.body !== 'undefined') {\n // iOS < 7 needs ';body=', iOS 7 cannot prefill body at all, iOS 8+ needs '&body=', everything else follows RFC 5724 '?body='\n // https://weblog.west-wind.com/posts/2013/Oct/09/Prefilling-an-SMS-on-Mobile-Devices-with-the-sms-Uri-Scheme\n if (PlatformKit.os.name !== 'ios') url += '?';\n else if (PlatformKit.compareVersion(PlatformKit.os.version, '8.0') >= 0) url += '&';\n else url += ';';\n\n url += 'body=' + escapeURIComponentString(options.body);\n }\n\n return openURL(0, url, getDefaultTimeout());\n },\n\n mail(options: MailOptions = {}): Promise<void> {\n const params: string[] = [];\n const to: string[] = toArray(options.to);\n const cc: string[] = toArray(options.cc);\n const bcc: string[] = toArray(options.bcc);\n let url: string = 'mailto:';\n\n // mailto: — RFC 6068\n // https://datatracker.ietf.org/doc/html/rfc6068\n if (to.length > 0) url += joining(to, escapeURIComponentMailAddressString);\n if (cc.length > 0) params.push('cc=' + joining(cc, escapeURIComponentMailAddressString));\n if (bcc.length > 0) params.push('bcc=' + joining(bcc, escapeURIComponentMailAddressString));\n if (typeof options.subject === 'string') params.push('subject=' + escapeURIComponentString(options.subject));\n if (typeof options.body === 'string') params.push('body=' + encodeMailBody(options.body));\n\n if (params.length > 0) url += '?' + joining(params, undefined, '&');\n\n return openURL(0, url, getDefaultTimeout());\n },\n\n map(options: MapOptions = {}): Promise<void> {\n const params: string[] = [];\n const urls: URLStringOrFallback[] = [];\n let url: string = '';\n\n switch (PlatformKit.os.name) {\n case 'android':\n if (typeof options.coordinate !== 'undefined') {\n url = 'geo:' + options.coordinate[0] + ',' + options.coordinate[1];\n } else if (typeof options.query !== 'undefined') {\n url = 'geo:0,0';\n params.push('q=' + escapeURIComponentString(options.query));\n } else {\n url = 'geo:0,0';\n }\n\n if (typeof options.zoom !== 'undefined') params.push('z=' + options.zoom);\n if (params.length > 0) url = url + '?' + joining(params, undefined, '&');\n\n urls.push(url);\n\n break;\n case 'ios':\n case 'macos':\n if (typeof options.directions !== 'undefined') {\n if (typeof options.directions.destination !== 'undefined') params.push('daddr=' + encodeMapValue(options.directions.destination));\n if (typeof options.directions.origin !== 'undefined') params.push('saddr=' + encodeMapValue(options.directions.origin));\n } else if (typeof options.coordinate !== 'undefined') {\n params.push('ll=' + options.coordinate[0] + ',' + options.coordinate[1]);\n\n if (typeof options.label !== 'undefined') params.push('q=' + escapeURIComponentString(options.label));\n } else if (typeof options.query !== 'undefined') {\n params.push('q=' + escapeURIComponentString(options.query));\n }\n\n if (typeof options.zoom !== 'undefined') params.push('z=' + options.zoom);\n\n urls.push('maps://?' + joining(params, undefined, '&'));\n\n break;\n case 'windows':\n if (typeof options.directions !== 'undefined') {\n params.push('rtp=' + encodeBingRoutePoint(options.directions.origin) + '~' + encodeBingRoutePoint(options.directions.destination));\n } else if (typeof options.coordinate !== 'undefined') {\n params.push('cp=' + options.coordinate[0] + '~' + options.coordinate[1]);\n\n if (typeof options.label !== 'undefined') params.push('q=' + escapeURIComponentString(options.label));\n } else if (typeof options.query !== 'undefined') {\n params.push('where=' + escapeURIComponentString(options.query));\n }\n\n if (typeof options.zoom !== 'undefined') params.push('lvl=' + options.zoom);\n\n urls.push('bingmaps:?' + joining(params, undefined, '&'));\n }\n\n if (typeof options.fallback !== 'undefined') {\n urls.push(stripURL(options.fallback));\n } else {\n const params: string[] = ['api=1'];\n\n if (typeof options.directions !== 'undefined') {\n params.push('destination=' + encodeMapValue(options.directions.destination));\n\n if (typeof options.directions.origin !== 'undefined') params.push('origin=' + encodeMapValue(options.directions.origin));\n\n urls.push('https://www.google.com/maps/dir/?' + joining(params, undefined, '&'));\n } else {\n if (typeof options.coordinate !== 'undefined') params.push('query=' + options.coordinate[0] + ',' + options.coordinate[1]);\n else if (typeof options.query !== 'undefined') params.push('query=' + escapeURIComponentString(options.query));\n if (typeof options.zoom !== 'undefined') params.push('zoom=' + options.zoom);\n\n urls.push('https://www.google.com/maps/search/?' + joining(params, undefined, '&'));\n }\n }\n\n return new Promise(function (resolve: () => void, reject: (urlOpenError: Error) => void): Promise<void> | void {\n const tried: string[] = [];\n\n function openURLSequential(index: number = 0): Promise<void> | void {\n if (index >= urls.length) return reject(new Error('Failed to open a map using all available URLs.\\n\\nAttempted URLs:\\n' + joining(tried, undefined, '\\n↓\\n')));\n\n const url: URLStringOrFallback = urls[index];\n\n if (typeof url === 'string') {\n tried[index] = url;\n\n return openURL(index, url, getDefaultTimeout())\n .then(function (): void {\n resolve();\n })\n .catch(function (): void {\n openURLSequential(index + 1);\n });\n } else {\n tried[index] = '[function fallback]';\n\n url();\n resolve();\n }\n }\n\n return openURLSequential();\n });\n },\n\n filepicker(options: FilepickerOptions = {}): Promise<File[]> {\n let module: HTMLInputElement | Promise<FileSystemDirectoryHandle> | Promise<FileSystemFileHandle[]>;\n let accepts: string[] = [];\n\n if (isArray(options.accept)) accepts = options.accept;\n else if (typeof options.accept === 'string') accepts = tokenize(options.accept);\n\n if (options.directory) {\n if (canShowDirectoryPicker()) {\n const option: OpenDirectoryPickerOptions = {mode: 'read'};\n\n if (typeof options.id !== 'undefined') option.id = options.id;\n if (typeof options.startIn !== 'undefined') option.startIn = options.startIn;\n\n module = (GLOBAL.showDirectoryPicker as (options?: unknown) => Promise<FileSystemDirectoryHandle>)(option);\n } else {\n const input: HTMLInputElement = createHiddenElement('input');\n\n input.type = 'file';\n input.webkitdirectory = true;\n input.accept = accepts.join(',');\n\n module = input;\n }\n } else {\n if (canShowOpenFilePicker()) {\n const option: OpenFilePickerOptions = {};\n\n if (typeof options.id !== 'undefined') option.id = options.id;\n if (typeof options.startIn !== 'undefined') option.startIn = options.startIn;\n if (typeof options.multiple !== 'undefined') option.multiple = options.multiple;\n\n if (accepts.length > 0) {\n const acceptObject: Record<string, string[]> = {};\n\n option.excludeAcceptAllOption = true;\n option.types = [{\n description: '',\n accept: acceptObject,\n }];\n\n for (let i: number = 0; i < accepts.length; i++) {\n const accept: string = accepts[i];\n\n if (accept.startsWith('.')) {\n if (typeof acceptObject['application/octet-stream'] === 'undefined') acceptObject['application/octet-stream'] = [];\n\n acceptObject['application/octet-stream'].push(accept);\n } else if (accept.includes('/')) {\n acceptObject[accept] = [];\n }\n }\n }\n\n module = (GLOBAL.showOpenFilePicker as (options?: unknown) => Promise<FileSystemFileHandle[]>)(option);\n } else {\n const input: HTMLInputElement = createHiddenElement('input');\n\n input.type = 'file';\n input.accept = accepts.join(',');\n if (typeof options.multiple !== 'undefined') input.multiple = options.multiple;\n\n module = input;\n }\n }\n\n return resolveFile(module);\n },\n\n setting(type: SettingType = SettingType.General): Promise<void> {\n const os: OS = PlatformKit.os.name;\n const version: string = PlatformKit.os.version;\n const urls: string[] = [];\n\n if (!canOpenSetting()) return Promise.reject(new Error('Opening system settings is not supported on this platform. (userAgent: \"' + PlatformKit.userAgent + '\")'));\n\n switch (os) {\n case 'android':\n // https://developer.android.com/reference/android/provider/Settings\n if (\n (type === 'accessibility' && PlatformKit.compareVersion(version, '2.0') < 0) // API 5\n || (type === 'battery' && PlatformKit.compareVersion(version, '5.1') < 0) // API 22\n || (type === 'accounts' && PlatformKit.compareVersion(version, '1.5') < 0) // API 3\n || (type === 'storage' && PlatformKit.compareVersion(version, '1.5') < 0) // API 3\n || type === 'general'\n ) {\n urls.push(SETTING_URL.android.general);\n break;\n }\n\n urls.push(SETTING_URL.android[type]);\n urls.push(SETTING_URL.android.general);\n break;\n case 'windows':\n urls.push(SETTING_URL.windows[type]);\n break;\n case 'macos':\n // https://www.apple.com/uk/newsroom/2018/06/apple-introduces-macos-mojave/\n if (type === 'appearance' && PlatformKit.compareVersion(version, '10.14') < 0) urls.push(SETTING_URL.macos.general);\n else if (PlatformKit.compareVersion(version, '13.0') < 0) urls.push(SETTING_URL.macos[type]);\n else urls.push(SETTING_URL.macos13[type]);\n }\n\n return new Promise(function (resolve: () => void, reject: (urlOpenError: Error) => void): Promise<void> | void {\n function openURLSequential(index: number = 0): Promise<void> | void {\n if (index >= urls.length) return reject(new Error('Failed to open the \"' + type + '\" settings pane using all available URLs.\\n\\nAttempted URLs:\\n' + joining(urls, undefined, '\\n↓\\n')));\n\n return openURL(index, urls[index], DEFAULT_TIMEOUT)\n .then(function (): void {\n resolve();\n })\n .catch(function (): void {\n openURLSequential(index + 1);\n });\n }\n\n return openURLSequential();\n });\n },\n}\n\nexport default LaunchKit;\n"],"names":["version","packageJSON","getGlobal","GLOBAL","NAVIGATOR","GLOBAL$1"],"mappings":"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","x_google_ignoreList":[0,1,4]}
1
+ {"version":3,"file":"launch-kit.mjs","sources":["../node_modules/web-platform-kit/dist/platform-kit.mjs","../node_modules/web-event-kit/dist/event-kit.mjs","../../utils/get-global.ts","../../utils/create-hidden-element.ts","../node_modules/web-locale-kit/dist/locale-kit.mjs","../../utils/get-id.ts","../../utils/get-topmost-window.ts","../../index.ts"],"sourcesContent":["var version = \"0.0.5\";\nvar packageJSON = {\n\tversion: version};\n\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n if (typeof global !== 'undefined')\n return global;\n return {};\n}\nvar GLOBAL = getGlobal();\nvar NAVIGATOR = GLOBAL.navigator;\nvar USER_AGENT = typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null && typeof NAVIGATOR.userAgent === 'string' ? NAVIGATOR.userAgent : '';\nvar USER_AGENT_DATA = typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null ? NAVIGATOR.userAgentData : undefined;\nvar OS_RESOLVER_MAP = [\n [/windows nt (6\\.[23]); arm/i, 'windows', 'RT'],\n [/windows (?:phone|mobile|iot)(?: os)?[\\/ ]?([\\d.]*( se)?)/i, 'windows'],\n [/win 9x 4\\.90/i, 'windows', 'ME'],\n [/windows[\\/ ](1[01]|2000|3\\.1|7|8(\\.1)?|9[58]|me|server 20\\d\\d( r2)?|vista|xp)/i, 'windows'],\n [/windows nt ?([\\d.)]*)(?!.+xbox)/i, 'windows', resolveWindowsVersion],\n [/\\bwin(?=3| ?9|n)(?:nt| 9x )?([\\d.;]*)/i, 'windows', resolveWindowsVersion],\n [/windows ce\\/?([\\d.]*)/i, 'windows'],\n [/[adehimnop]{4,7}\\b(?:.*os (\\w+) like mac|; opera)/i, 'ios', resolveUnderscoreVersion],\n [/(?:ios;fbsv|ios(?=.+ip(?:ad|hone))|ip(?:ad|hone)(?: |.+i(?:pad)?)os)[\\/ ]([\\w.]+)/i, 'ios', resolveUnderscoreVersion],\n [/cfnetwork\\/.+darwin/i, 'ios', resolveUnderscoreVersion],\n [/mac os x ?([\\w. ]*)/i, 'macos', resolveUnderscoreVersion],\n [/(?:macintosh|mac_powerpc\\b)(?!.+(haiku|morphos))/i, 'macos', resolveUnderscoreVersion],\n [/droid ([\\w.]+)\\b.+(android[- ]x86)/i, 'android'],\n [/android\\w*[-\\/.; ]?([\\d.]*)/i, 'android'],\n];\nvar BROWSER_RESOLVER_MAP = [\n [/\\b(?:crmo|crios)\\/([\\w.]+)/i, 'chrome'],\n [/webview.+edge\\/([\\w.]+)/i, 'edge'],\n [/edg(?:e|ios|a)?\\/([\\w.]+)/i, 'edge'],\n [/opera mini\\/([-\\w.]+)/i, 'opera'],\n [/opera [mobileta]{3,6}\\b.+version\\/([-\\w.]+)/i, 'opera'],\n [/opera(?:.+version\\/|[\\/ ]+)([\\w.]+)/i, 'opera'],\n [/opios[\\/ ]+([\\w.]+)/i, 'opera'],\n [/\\bop(?:rg)?x\\/([\\w.]+)/i, 'opera'],\n [/\\bopr\\/([\\w.]+)/i, 'opera'],\n [/iemobile(?:browser|boat|jet)[\\/ ]?([\\d.]*)/i, 'ie'],\n [/(?:ms|\\()ie ([\\w.]+)/i, 'ie'],\n [/trident.+rv[: ]([\\w.]{1,9})\\b.+like gecko/i, 'ie'],\n [/\\bfocus\\/([\\w.]+)/i, 'firefox'],\n [/\\bopt\\/([\\w.]+)/i, 'opera'],\n [/coast\\/([\\w.]+)/i, 'opera'],\n [/fxios\\/([\\w.-]+)/i, 'firefox'],\n [/samsungbrowser\\/([\\w.]+)/i, 'samsung'],\n [/headlesschrome(?:\\/([\\w.]+)| )/i, 'chrome'],\n [/wv\\).+chrome\\/([\\w.]+).+edgw\\//i, 'edge'],\n [/ wv\\).+chrome\\/([\\w.]+)/i, 'chrome'],\n [/chrome\\/([\\w.]+) mobile/i, 'chrome'],\n [/chrome\\/v?([\\w.]+)/i, 'chrome'],\n [/version\\/([\\w.,]+) .*mobile(?:\\/\\w+ | ?)safari/i, 'safari'],\n [/iphone .*mobile(?:\\/\\w+ | ?)safari/i, 'safari'],\n [/version\\/([\\w.,]+) .*safari/i, 'safari'],\n [/webkit.+?(?:mobile ?safari|safari)(\\/[\\w.]+)/i, 'safari', '1'],\n [/(?:iphone|ipad|ipod).+applewebkit(?!.*safari)/i, 'safari'],\n [/(?:mobile|tablet);.*firefox\\/([\\w.-]+)/i, 'firefox'],\n [/mobile vr; rv:([\\w.]+)\\).+firefox/i, 'firefox'],\n [/firefox\\/([\\w.]+)/i, 'firefox'],\n];\nvar ENGINE_RESOLVER_MAP = [\n [/windows.+ edge\\/([\\w.]+)/i, 'edgeHtml'],\n [/arkweb\\/([\\w.]+)/i, 'arkWeb'],\n [/webkit\\/537\\.36.+chrome\\/(?!27)([\\w.]+)/i, 'blink'],\n [/presto\\/([\\w.]+)/i, 'presto'],\n [/webkit\\/([\\w.]+)/i, 'webKit'],\n [/trident\\/([\\w.]+)/i, 'trident'],\n [/netfront\\/([\\w.]+)/i, 'netFront'],\n [/khtml[\\/ ]\\(?([\\w.]+)/i, 'khtml'],\n [/tasman[\\/ ]\\(?([\\w.]+)/i, 'tasman'],\n [/rv:([\\w.]{1,9})\\b.+gecko/i, 'gecko']\n];\nvar IN_APP_BROWSER_RESOLVER_MAP = [\n [/kakaotalk/i, 'kakaotalk'],\n [/\\bline\\/[\\d.]/i, 'line'],\n [/instagram/i, 'instagram'],\n [/\\bfban\\/|\\bfbav\\/|fb_iab/i, 'facebook'],\n [/naver\\(inapp/i, 'naver'],\n [/daumapps/i, 'daum'],\n [/\\bband\\/[\\d.]/i, 'band'],\n [/micromessenger/i, 'wechat'],\n [/twitter for|twitterandroid/i, 'twitter'],\n [/musical_ly|bytedancewebview|\\btiktok/i, 'tiktok'],\n];\nvar HIGH_ENTROPY_BRAND_NAME_MAP = {\n 'Google Chrome': 'Chrome',\n 'Microsoft Edge': 'Edge',\n 'Microsoft Edge WebView2': 'Edge WebView2',\n 'Android WebView': 'Chrome WebView',\n 'HeadlessChrome': 'Chrome Headless',\n 'OperaMobile': 'Opera Mobi',\n};\nvar currentUserAgent = USER_AGENT;\nvar parsedCache = null;\nvar parsedFromHighEntropyValuesOSName = undefined;\nvar parsedFromHighEntropyValuesOSVersion = undefined;\nvar parsedFromHighEntropyValuesBrowserName = undefined;\nvar parsedFromHighEntropyValuesBrowserVersion = undefined;\nvar parsedFromHighEntropyValuesEngineVersion = undefined;\nvar parsedFromHighEntropyValuesDevice = null;\nvar ready;\nfunction resolveWindowsVersion(string) {\n if (typeof string === 'undefined')\n return '';\n var mapped = {\n '4.90': 'ME',\n '3.51': 'NT 3.51',\n '4.0': 'NT 4.0',\n '5.0': '2000',\n '5.1': 'XP',\n '5.2': 'XP',\n '6.0': 'Vista',\n '6.1': '7',\n '6.2': '8',\n '6.3': '8.1',\n '6.4': '10',\n '10.0': '10'\n }[string.replace(/[^\\d.]/g, '')];\n if (typeof mapped !== 'undefined')\n return mapped;\n return string;\n}\nfunction resolveUnderscoreVersion(string) {\n if (typeof string === 'undefined')\n return '';\n return string.replace(/_/g, '.');\n}\nfunction resolveVersion(string, resolver) {\n if (typeof resolver === 'function')\n return resolver(string);\n if (typeof resolver === 'string')\n return resolver;\n if (typeof string === 'undefined')\n return '';\n return string;\n}\nfunction compareVersion(lhs, rhs) {\n var pa = lhs.split('.');\n var pb = rhs.split('.');\n var length = Math.max(pa.length, pb.length);\n for (var i = 0; i < length; i++) {\n var a = void 0;\n var b = void 0;\n if (i < pa.length)\n a = parseInt(pa[i], 10);\n else\n a = 0;\n if (i < pb.length)\n b = parseInt(pb[i], 10);\n else\n b = 0;\n if (a > b)\n return 1;\n if (a < b)\n return -1;\n }\n return 0;\n}\nfunction parseOS() {\n var name = 'unknown';\n var version = '';\n for (var i = 0; i < OS_RESOLVER_MAP.length; i++) {\n var map = OS_RESOLVER_MAP[i];\n var matched = currentUserAgent.match(map[0]);\n if (matched !== null) {\n name = map[1];\n version = resolveVersion(matched[1], map[2]);\n break;\n }\n }\n if (name === 'ios' && compareVersion(version, '18.6') === 0) {\n var execs = /\\) Version\\/([\\d.]+)/.exec(currentUserAgent);\n if (execs !== null) {\n var major = parseInt(execs[1].split('.')[0], 10);\n if (major >= 26)\n version = execs[1];\n }\n }\n if (currentUserAgent === USER_AGENT) {\n if (typeof parsedFromHighEntropyValuesOSName !== 'undefined')\n name = parsedFromHighEntropyValuesOSName;\n if (typeof parsedFromHighEntropyValuesOSVersion !== 'undefined')\n version = parsedFromHighEntropyValuesOSVersion;\n if (name === 'macos' && typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null && typeof NAVIGATOR.standalone !== 'undefined' && typeof NAVIGATOR.maxTouchPoints === 'number' && NAVIGATOR.maxTouchPoints > 2)\n name = 'ios';\n }\n return {\n name: name,\n version: version\n };\n}\nfunction parseBrowser() {\n var name = 'unknown';\n var version = '';\n for (var i = 0; i < BROWSER_RESOLVER_MAP.length; i++) {\n var map = BROWSER_RESOLVER_MAP[i];\n var matched = currentUserAgent.match(map[0]);\n if (matched !== null) {\n name = map[1];\n version = resolveVersion(matched[1], map[2]);\n break;\n }\n }\n if (currentUserAgent === USER_AGENT) {\n if (typeof parsedFromHighEntropyValuesBrowserName !== 'undefined')\n name = parsedFromHighEntropyValuesBrowserName;\n if (typeof parsedFromHighEntropyValuesBrowserVersion !== 'undefined')\n version = parsedFromHighEntropyValuesBrowserVersion;\n }\n return {\n name: name,\n version: version\n };\n}\nfunction parseEngine() {\n var name = 'unknown';\n var version = '';\n for (var i = 0; i < ENGINE_RESOLVER_MAP.length; i++) {\n var map = ENGINE_RESOLVER_MAP[i];\n var matched = currentUserAgent.match(map[0]);\n if (matched !== null) {\n name = map[1];\n version = resolveVersion(matched[1], map[2]);\n break;\n }\n }\n if (currentUserAgent === USER_AGENT) {\n if (typeof parsedFromHighEntropyValuesEngineVersion !== 'undefined')\n version = parsedFromHighEntropyValuesEngineVersion;\n }\n return {\n name: name,\n version: version\n };\n}\nfunction parseInAppBrowser() {\n for (var i = 0; i < IN_APP_BROWSER_RESOLVER_MAP.length; i++) {\n if (IN_APP_BROWSER_RESOLVER_MAP[i][0].test(currentUserAgent))\n return IN_APP_BROWSER_RESOLVER_MAP[i][1];\n }\n return null;\n}\nfunction parseWebview() {\n if (/; ?wv\\)/i.test(currentUserAgent))\n return true;\n if (/\\bversion\\/[\\d.]+ chrome\\//i.test(currentUserAgent))\n return true;\n if (/\\belectron\\//i.test(currentUserAgent))\n return true;\n if (/iphone|ipad|ipod/i.test(currentUserAgent) && /applewebkit/i.test(currentUserAgent) && /safari/i.test(currentUserAgent) === false)\n return true;\n return parseInAppBrowser() !== null;\n}\nfunction parseDevice() {\n if (currentUserAgent === USER_AGENT && parsedFromHighEntropyValuesDevice !== null)\n return parsedFromHighEntropyValuesDevice;\n var osName = getParsedCache().os.name;\n if (osName === 'ios') {\n if (/ipad/i.test(currentUserAgent) || /macintosh/i.test(currentUserAgent))\n return 'tablet';\n return 'mobile';\n }\n if (osName === 'android')\n return /\\bmobile\\b/i.test(currentUserAgent) ? 'mobile' : 'tablet';\n if (osName === 'windows' || osName === 'macos')\n return 'desktop';\n return 'unknown';\n}\nfunction getParsedCache() {\n if (parsedCache !== null && parsedCache.userAgent === currentUserAgent)\n return parsedCache;\n parsedCache = {\n userAgent: currentUserAgent,\n os: parseOS(),\n browser: parseBrowser(),\n engine: parseEngine(),\n };\n return parsedCache;\n}\nfunction invalidateCache() {\n parsedCache = null;\n parsedFromHighEntropyValuesOSName = undefined;\n parsedFromHighEntropyValuesOSVersion = undefined;\n parsedFromHighEntropyValuesBrowserName = undefined;\n parsedFromHighEntropyValuesBrowserVersion = undefined;\n parsedFromHighEntropyValuesEngineVersion = undefined;\n parsedFromHighEntropyValuesDevice = null;\n}\nfunction normalizeBrand(entry) {\n if (entry === null || typeof entry === 'undefined')\n return { brand: '', version: '' };\n if (typeof entry === 'string')\n return { brand: entry, version: '' };\n return { brand: entry.brand, version: entry.version };\n}\nfunction resolvedThenable() {\n if (typeof Promise === 'function')\n return Promise.resolve();\n var thenable = {\n then: function (onFulfilled) {\n if (typeof onFulfilled === 'function')\n onFulfilled(undefined);\n return thenable;\n },\n catch: function () {\n return thenable;\n },\n finally: function (onFinally) {\n if (typeof onFinally === 'function')\n onFinally();\n return thenable;\n },\n };\n return thenable;\n}\nfunction parseFromHighEntropyValues() {\n if (typeof USER_AGENT_DATA === 'undefined' || typeof USER_AGENT_DATA.getHighEntropyValues === 'undefined')\n return resolvedThenable();\n return USER_AGENT_DATA\n .getHighEntropyValues(['brands', 'fullVersionList', 'mobile', 'platform', 'platformVersion', 'formFactors'])\n .then(function (result) {\n try {\n var brands = result.fullVersionList || result.brands || [];\n var platformVersion = result.platformVersion;\n var platform = result.platform;\n var browserName = getParsedCache().browser.name;\n var prevBrandName = null;\n for (var i = 0; i < brands.length; i++) {\n var brand = normalizeBrand(brands[i]);\n var brandVersion = brand.version;\n var brandName = brand.brand;\n if (/not.a.brand/i.test(brandName))\n continue;\n if (prevBrandName === null || (/Chrom/.test(prevBrandName) && brandName !== 'Chromium') || (prevBrandName === 'Edge' && /WebView2/.test(brandName))) {\n brandName = HIGH_ENTROPY_BRAND_NAME_MAP[brandName] || brandName;\n prevBrandName = browserName;\n if (prevBrandName === null || /Chrom/.test(prevBrandName) || !/Chrom/.test(brandName)) {\n browserName = brandName;\n if (browserName === 'Chrome' || browserName === 'Chrome WebView' || browserName === 'Chrome Headless')\n parsedFromHighEntropyValuesBrowserName = 'chrome';\n else if (browserName === 'Edge' || browserName === 'Edge WebView2')\n parsedFromHighEntropyValuesBrowserName = 'edge';\n else if (browserName === 'Opera Mobi')\n parsedFromHighEntropyValuesBrowserName = 'opera';\n parsedFromHighEntropyValuesBrowserVersion = brandVersion;\n }\n prevBrandName = brandName;\n }\n if (brandName === 'Chromium')\n parsedFromHighEntropyValuesEngineVersion = brandVersion;\n }\n if (typeof platformVersion === 'string') {\n if (getParsedCache().os.name === 'windows') {\n if (parseInt(platformVersion.split('.')[0], 10) >= 13)\n parsedFromHighEntropyValuesOSVersion = '11';\n else\n parsedFromHighEntropyValuesOSVersion = '10';\n }\n else {\n parsedFromHighEntropyValuesOSVersion = platformVersion;\n }\n }\n if (typeof platform === 'string') {\n if (/android/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'android';\n else if (/ios|iphone|ipad/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'ios';\n else if (/windows|win32/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'windows';\n else if (/macos|macintel/i.test(platform))\n parsedFromHighEntropyValuesOSName = 'macos';\n }\n var formFactors = result.formFactors;\n if (typeof formFactors !== 'undefined' && formFactors !== null && typeof formFactors.length === 'number') {\n for (var i = 0; i < formFactors.length; i++) {\n var formFactor = String(formFactors[i]).toLowerCase();\n if (formFactor === 'tablet')\n parsedFromHighEntropyValuesDevice = 'tablet';\n else if (formFactor === 'mobile')\n parsedFromHighEntropyValuesDevice = 'mobile';\n else if (formFactor === 'desktop')\n parsedFromHighEntropyValuesDevice = 'desktop';\n }\n }\n if (parsedFromHighEntropyValuesDevice === null && result.mobile === true)\n parsedFromHighEntropyValuesDevice = 'mobile';\n }\n catch (_) {\n }\n finally {\n parsedCache = null;\n }\n })\n .catch(function () {\n parsedCache = null;\n });\n}\nready = parseFromHighEntropyValues();\nvar PlatformKit = {\n version: packageJSON.version,\n get ready() {\n return ready;\n },\n whenReady: function (callback) {\n if (typeof callback !== 'function')\n return;\n ready.then(function () {\n callback();\n });\n },\n set userAgent(userAgent) {\n if (currentUserAgent === userAgent)\n return;\n currentUserAgent = userAgent;\n invalidateCache();\n ready = userAgent === USER_AGENT ? parseFromHighEntropyValues() : resolvedThenable();\n },\n reset: function () {\n if (currentUserAgent === USER_AGENT)\n return;\n currentUserAgent = USER_AGENT;\n invalidateCache();\n ready = parseFromHighEntropyValues();\n },\n get userAgent() {\n return currentUserAgent;\n },\n get os() {\n return getParsedCache().os;\n },\n get browser() {\n return getParsedCache().browser;\n },\n get engine() {\n return getParsedCache().engine;\n },\n get device() {\n return parseDevice();\n },\n get webview() {\n return parseWebview();\n },\n get inAppBrowser() {\n return parseInAppBrowser();\n },\n get node() {\n var nodeProcess = GLOBAL.process;\n return typeof nodeProcess !== 'undefined' && nodeProcess !== null && typeof nodeProcess.versions !== 'undefined' && nodeProcess.versions !== null && typeof nodeProcess.versions.node !== 'undefined';\n },\n get standalone() {\n var osName = getParsedCache().os.name;\n if (osName === 'ios')\n return typeof NAVIGATOR !== 'undefined' && NAVIGATOR !== null && NAVIGATOR.standalone === true;\n if (typeof GLOBAL.matchMedia !== 'function')\n return false;\n try {\n return GLOBAL.matchMedia('(display-mode: standalone)').matches === true;\n }\n catch (_) {\n return false;\n }\n },\n compareVersion: function (lhs, rhs) {\n return compareVersion(lhs, rhs);\n }\n};\n\nexport { PlatformKit as default };\n//# sourceMappingURL=platform-kit.mjs.map\n","function getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n if (typeof global !== 'undefined')\n return global;\n return {};\n}\n\nvar version = \"0.0.3\";\nvar packageJSON = {\n\tversion: version};\n\nvar GLOBAL$3 = getGlobal();\nvar VENDORS = ['', 'webkit', 'moz', 'ms', 'MS', 'o', 'O'];\n// https://cordova.apache.org/docs/en/latest/cordova/events/events.html\nvar CORDOVA_DOCUMENT_EVENTS = ['deviceready', 'pause', 'resume', 'backbutton', 'menubutton', 'searchbutton', 'startcallbutton', 'endcallbutton', 'volumedownbutton', 'volumeupbutton', 'activated', 'cordovacallbackerror'];\n// iOS `<video>` fullscreen events have no `on` attribute but are valid on any element exposing `webkitEnterFullscreen` — they must pass through untouched.\nvar IOS_VIDEO_FULLSCREEN_EVENTS = ['webkitbeginfullscreen', 'webkitendfullscreen', 'webkitpresentationmodechanged'];\nvar TYPE_ALIAS_MAP = {\n 'wheel': ['wheel', 'mousewheel', 'DOMMouseScroll'],\n 'fullscreenchange': ['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange', 'MSFullscreenChange', 'msfullscreenchange'],\n 'fullscreenerror': ['fullscreenerror', 'webkitfullscreenerror', 'mozfullscreenerror', 'MSFullscreenError', 'msfullscreenerror'],\n 'pointerdown': ['pointerdown', 'MSPointerDown'],\n 'pointermove': ['pointermove', 'MSPointerMove'],\n 'pointerup': ['pointerup', 'MSPointerUp'],\n 'pointercancel': ['pointercancel', 'MSPointerCancel'],\n 'pointerover': ['pointerover', 'MSPointerOver'],\n 'pointerout': ['pointerout', 'MSPointerOut'],\n 'pointerenter': ['pointerenter', 'MSPointerEnter', 'mouseenter'],\n 'pointerleave': ['pointerleave', 'MSPointerLeave', 'mouseleave'],\n 'gotpointercapture': ['gotpointercapture', 'MSGotPointerCapture'],\n 'lostpointercapture': ['lostpointercapture', 'MSLostPointerCapture'],\n 'pointerlockchange': ['pointerlockchange', 'webkitpointerlockchange', 'mozpointerlockchange', 'mspointerlockchange'],\n 'pointerlockerror': ['pointerlockerror', 'webkitpointerlockerror', 'mozpointerlockerror', 'mspointerlockerror'],\n 'touchstart': ['touchstart', 'pointerdown', 'MSPointerDown'],\n 'touchmove': ['touchmove', 'pointermove', 'MSPointerMove'],\n 'touchend': ['touchend', 'pointerup', 'MSPointerUp'],\n 'touchcancel': ['touchcancel', 'pointercancel', 'MSPointerCancel'],\n 'transitionrun': ['transitionrun', 'webkitTransitionRun'],\n 'transitionstart': ['transitionstart', 'webkitTransitionStart'],\n 'transitionend': ['transitionend', 'webkitTransitionEnd', 'oTransitionEnd', 'otransitionend', 'MSTransitionEnd'],\n 'animationstart': ['animationstart', 'webkitAnimationStart', 'oanimationstart', 'MSAnimationStart'],\n 'animationiteration': ['animationiteration', 'webkitAnimationIteration', 'oanimationiteration', 'MSAnimationIteration'],\n 'animationend': ['animationend', 'webkitAnimationEnd', 'oanimationend', 'MSAnimationEnd'],\n 'visibilitychange': ['visibilitychange', 'webkitvisibilitychange', 'mozvisibilitychange', 'msvisibilitychange'],\n};\nvar FULLSCREEN_REQUEST_MAP = {\n '': ['requestFullscreen'],\n 'webkit': ['webkitRequestFullscreen', 'webkitRequestFullScreen'],\n 'moz': ['mozRequestFullScreen', 'mozRequestFullscreen'],\n 'ms': ['msRequestFullscreen'],\n 'MS': ['msRequestFullscreen'],\n};\nfunction asRecord(value) {\n return value;\n}\nfunction hasOnProperty(host, name) {\n if (typeof host === 'undefined' || host === null)\n return false;\n if (typeof asRecord(host)['on' + name] !== 'undefined')\n return true;\n var lower = name.toLowerCase();\n return lower !== name && typeof asRecord(host)['on' + lower] !== 'undefined';\n}\nfunction probeHosts(target) {\n var hosts = [target];\n if (typeof GLOBAL$3.document !== 'undefined' && target !== GLOBAL$3.document)\n hosts.push(GLOBAL$3.document);\n if (target !== GLOBAL$3)\n hosts.push(GLOBAL$3);\n return hosts;\n}\nfunction extractVendorPrefix(name) {\n for (var i = 1; i < VENDORS.length; i++) {\n if (name.indexOf(VENDORS[i]) === 0)\n return VENDORS[i];\n }\n return '';\n}\nfunction testStyleSupport(name, styleProperty) {\n if (typeof GLOBAL$3.document === 'undefined' || typeof GLOBAL$3.document.documentElement === 'undefined')\n return false;\n var style = GLOBAL$3.document.documentElement.style;\n if (typeof style === 'undefined' || style === null)\n return false;\n var prefix = extractVendorPrefix(name);\n var property;\n if (prefix === '')\n property = styleProperty;\n else\n property = prefix + styleProperty.charAt(0).toUpperCase() + styleProperty.slice(1);\n return typeof asRecord(style)[property] !== 'undefined';\n}\nfunction testFullscreenSupport(name) {\n if (typeof GLOBAL$3.document === 'undefined' || typeof GLOBAL$3.document.documentElement === 'undefined')\n return false;\n var element = GLOBAL$3.document.documentElement;\n var methods = FULLSCREEN_REQUEST_MAP[extractVendorPrefix(name)];\n if (typeof methods === 'undefined')\n return false;\n for (var i = 0; i < methods.length; i++) {\n if (typeof asRecord(element)[methods[i]] === 'function')\n return true;\n }\n return false;\n}\nfunction isEventTypeSupported(target, name) {\n var hosts = probeHosts(target);\n for (var i = 0; i < hosts.length; i++) {\n if (hasOnProperty(hosts[i], name))\n return true;\n }\n var lower = name.toLowerCase();\n if (lower.indexOf('transition') > -1)\n return testStyleSupport(name, 'transition');\n if (lower.indexOf('animation') > -1)\n return testStyleSupport(name, 'animation');\n if (lower.indexOf('fullscreen') > -1)\n return testFullscreenSupport(name);\n return false;\n}\nfunction resolveEventType(target, type) {\n if (target === GLOBAL$3.document && CORDOVA_DOCUMENT_EVENTS.indexOf(type) > -1)\n return type;\n if (typeof asRecord(target)['webkitEnterFullscreen'] === 'function' && IOS_VIDEO_FULLSCREEN_EVENTS.indexOf(type) > -1)\n return type;\n var candidates = typeof TYPE_ALIAS_MAP[type] !== 'undefined' ? TYPE_ALIAS_MAP[type] : [type];\n for (var i = 0; i < candidates.length; i++) {\n if (isEventTypeSupported(target, candidates[i]))\n return candidates[i];\n }\n var hosts = probeHosts(target);\n for (var i = 1; i < VENDORS.length; i++) {\n for (var j = 0; j < candidates.length; j++) {\n var name_1 = VENDORS[i] + candidates[j];\n for (var k = 0; k < hosts.length; k++) {\n if (hasOnProperty(hosts[k], name_1))\n return name_1;\n }\n }\n }\n return type;\n}\n\nvar GLOBAL$2 = getGlobal();\nvar SUPPORTED = {\n once: false,\n passive: false,\n capture: false,\n some: false,\n all: false,\n};\nvar NOOP$1 = function () {\n};\nfunction resolveProbeTarget() {\n if (typeof GLOBAL$2.document !== 'undefined' && typeof GLOBAL$2.document.createDocumentFragment === 'function') {\n try {\n return GLOBAL$2.document.createDocumentFragment();\n }\n catch (_) {\n }\n }\n if (typeof GLOBAL$2.EventTarget === 'function') {\n try {\n return new GLOBAL$2.EventTarget();\n }\n catch (_) {\n }\n }\n return undefined;\n}\n(function detectSupportedListenerOptions() {\n var probe = resolveProbeTarget();\n if (typeof probe === 'undefined' || typeof probe.addEventListener !== 'function')\n return;\n var options = {};\n try {\n Object.defineProperty(options, 'once', {\n get: function () {\n SUPPORTED.once = true;\n return false;\n },\n });\n Object.defineProperty(options, 'passive', {\n get: function () {\n SUPPORTED.passive = true;\n return false;\n },\n });\n Object.defineProperty(options, 'capture', {\n get: function () {\n SUPPORTED.capture = true;\n return false;\n },\n });\n probe.addEventListener('test', NOOP$1, options);\n probe.removeEventListener('test', NOOP$1, options);\n }\n catch (_) {\n }\n SUPPORTED.some = SUPPORTED.once || SUPPORTED.passive || SUPPORTED.capture;\n SUPPORTED.all = SUPPORTED.once && SUPPORTED.passive && SUPPORTED.capture;\n})();\nvar SUPPORTED_LISTENER_OPTIONS = SUPPORTED;\nfunction normalizeListenerOptions(options) {\n if (typeof options === 'boolean')\n return { capture: options, once: false, passive: false, signal: undefined };\n if (typeof options === 'object' && options !== null) {\n return {\n capture: options.capture === true,\n once: options.once === true,\n passive: options.passive === true,\n signal: options.signal,\n };\n }\n return {\n capture: Boolean(options),\n once: false,\n passive: false,\n signal: undefined\n };\n}\nfunction toNativeListenerOptions(normalized) {\n if (SUPPORTED.passive)\n return {\n capture: normalized.capture,\n passive: normalized.passive\n };\n if (SUPPORTED.capture)\n return {\n capture: normalized.capture\n };\n return normalized.capture;\n}\n\nvar GLOBAL$1 = getGlobal();\nvar TOUCH_TYPES = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\nvar POINTER_PHASE_MAP = {\n 'pointerdown': 'start',\n 'MSPointerDown': 'start',\n 'pointermove': 'move',\n 'MSPointerMove': 'move',\n 'pointerup': 'end',\n 'MSPointerUp': 'end',\n 'pointercancel': 'cancel',\n 'MSPointerCancel': 'cancel',\n};\nvar ACTIVE_TOUCHES = [];\nfunction isTouchEventType(type) {\n return TOUCH_TYPES.indexOf(type) > -1;\n}\nfunction isPointerEventType(type) {\n return typeof POINTER_PHASE_MAP[type] !== 'undefined';\n}\nfunction createTouchList(touches) {\n var list = touches.slice();\n list.item = function (index) {\n if (index >= 0 && index < list.length)\n return list[index];\n return null;\n };\n return list;\n}\nfunction findTouchIndex(identifier) {\n for (var i = 0; i < ACTIVE_TOUCHES.length; i++) {\n if (ACTIVE_TOUCHES[i].identifier === identifier)\n return i;\n }\n return -1;\n}\nfunction scrollOffsetX() {\n if (typeof GLOBAL$1.pageXOffset === 'number')\n return GLOBAL$1.pageXOffset;\n if (typeof GLOBAL$1.document !== 'undefined' && typeof GLOBAL$1.document.documentElement !== 'undefined')\n return GLOBAL$1.document.documentElement.scrollLeft;\n return 0;\n}\nfunction scrollOffsetY() {\n if (typeof GLOBAL$1.pageYOffset === 'number')\n return GLOBAL$1.pageYOffset;\n if (typeof GLOBAL$1.document !== 'undefined' && typeof GLOBAL$1.document.documentElement !== 'undefined')\n return GLOBAL$1.document.documentElement.scrollTop;\n return 0;\n}\nfunction createSyntheticTouch(event, target) {\n var clientX = typeof event.clientX === 'number' ? event.clientX : 0;\n var clientY = typeof event.clientY === 'number' ? event.clientY : 0;\n return {\n identifier: typeof event.pointerId === 'number' ? event.pointerId : 0,\n target: target,\n screenX: typeof event.screenX === 'number' ? event.screenX : 0,\n screenY: typeof event.screenY === 'number' ? event.screenY : 0,\n clientX: clientX,\n clientY: clientY,\n pageX: typeof event.pageX === 'number' ? event.pageX : clientX + scrollOffsetX(),\n pageY: typeof event.pageY === 'number' ? event.pageY : clientY + scrollOffsetY(),\n radiusX: typeof event.width === 'number' ? event.width / 2 : 0,\n radiusY: typeof event.height === 'number' ? event.height / 2 : 0,\n rotationAngle: typeof event.rotation === 'number' ? event.rotation : 0,\n force: typeof event.pressure === 'number' ? event.pressure : 0,\n };\n}\nfunction defineTouchList(event, property, list, patches) {\n var holder = event;\n var had = false;\n try {\n had = Object.prototype.hasOwnProperty.call(event, property);\n }\n catch (_) {\n }\n patches.push({ property: property, had: had, previous: had ? holder[property] : undefined });\n try {\n Object.defineProperty(event, property, { value: list, configurable: true });\n }\n catch (_) {\n holder[property] = list;\n }\n}\nfunction filterByTarget(touches, target) {\n var filtered = [];\n for (var i = 0; i < touches.length; i++) {\n if (touches[i].target === target)\n filtered.push(touches[i]);\n }\n return filtered;\n}\nfunction synthesizeTouchEvent(event, resolvedType, patches) {\n var phase = POINTER_PHASE_MAP[resolvedType];\n if (typeof phase === 'undefined')\n return;\n var pointerEvent = event;\n var eventTarget = event.target;\n var index = findTouchIndex(typeof pointerEvent.pointerId === 'number' ? pointerEvent.pointerId : 0);\n var originTarget = index > -1 ? ACTIVE_TOUCHES[index].target : eventTarget;\n var touch = createSyntheticTouch(pointerEvent, originTarget);\n if (phase === 'start' || phase === 'move') {\n if (index > -1)\n ACTIVE_TOUCHES[index] = touch;\n else\n ACTIVE_TOUCHES.push(touch);\n }\n else {\n if (index > -1)\n ACTIVE_TOUCHES.splice(index, 1);\n }\n defineTouchList(event, 'touches', createTouchList(ACTIVE_TOUCHES), patches);\n defineTouchList(event, 'targetTouches', createTouchList(filterByTarget(ACTIVE_TOUCHES, originTarget)), patches);\n defineTouchList(event, 'changedTouches', createTouchList([touch]), patches);\n}\n\nvar KEY_CODE_MAP = {\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Numpad5',\n 13: 'Enter',\n 16: 'ShiftLeft',\n 17: 'ControlLeft',\n 18: 'AltLeft',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 32: 'Space',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 45: 'Insert',\n 46: 'Delete',\n 48: 'Digit0',\n 49: 'Digit1',\n 50: 'Digit2',\n 51: 'Digit3',\n 52: 'Digit4',\n 53: 'Digit5',\n 54: 'Digit6',\n 55: 'Digit7',\n 56: 'Digit8',\n 57: 'Digit9',\n 65: 'KeyA',\n 66: 'KeyB',\n 67: 'KeyC',\n 68: 'KeyD',\n 69: 'KeyE',\n 70: 'KeyF',\n 71: 'KeyG',\n 72: 'KeyH',\n 73: 'KeyI',\n 74: 'KeyJ',\n 75: 'KeyK',\n 76: 'KeyL',\n 77: 'KeyM',\n 78: 'KeyN',\n 79: 'KeyO',\n 80: 'KeyP',\n 81: 'KeyQ',\n 82: 'KeyR',\n 83: 'KeyS',\n 84: 'KeyT',\n 85: 'KeyU',\n 86: 'KeyV',\n 87: 'KeyW',\n 88: 'KeyX',\n 89: 'KeyY',\n 90: 'KeyZ',\n 91: 'MetaLeft',\n 92: 'MetaRight',\n 93: 'ContextMenu',\n 96: 'Numpad0',\n 97: 'Numpad1',\n 98: 'Numpad2',\n 99: 'Numpad3',\n 100: 'Numpad4',\n 101: 'Numpad5',\n 102: 'Numpad6',\n 103: 'Numpad7',\n 104: 'Numpad8',\n 105: 'Numpad9',\n 106: 'NumpadMultiply',\n 107: 'NumpadAdd',\n 109: 'NumpadSubtract',\n 110: 'NumpadDecimal',\n 111: 'NumpadDivide',\n 112: 'F1',\n 113: 'F2',\n 114: 'F3',\n 115: 'F4',\n 116: 'F5',\n 117: 'F6',\n 118: 'F7',\n 119: 'F8',\n 120: 'F9',\n 121: 'F10',\n 122: 'F11',\n 123: 'F12',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 186: 'Semicolon',\n 187: 'Equal',\n 188: 'Comma',\n 189: 'Minus',\n 190: 'Period',\n 191: 'Slash',\n 192: 'Backquote',\n 219: 'BracketLeft',\n 220: 'Backslash',\n 221: 'BracketRight',\n 222: 'Quote',\n 226: 'IntlBackslash',\n};\n\nvar GLOBAL = getGlobal();\nvar LISTENER_STORE = [];\nvar NOOP = function () {\n};\nvar STORE_KEY = '__webEventKitListeners__';\nfunction resolveBucket(target, create) {\n var holder = target;\n try {\n var existing = holder[STORE_KEY];\n if (typeof existing !== 'undefined' && existing !== null)\n return existing;\n if (!create)\n return LISTENER_STORE;\n var bucket = [];\n try {\n Object.defineProperty(target, STORE_KEY, { value: bucket, configurable: true, enumerable: false, writable: true });\n }\n catch (_) {\n holder[STORE_KEY] = bucket;\n }\n if (holder[STORE_KEY] !== bucket)\n return LISTENER_STORE;\n return bucket;\n }\n catch (_) {\n return LISTENER_STORE;\n }\n}\nfunction findListenerRecord(target, type, callback, capture) {\n var bucket = resolveBucket(target, false);\n for (var i = 0; i < bucket.length; i++) {\n var record = bucket[i];\n if (record.target === target && record.type === type && record.callback === callback && record.capture === capture)\n return record;\n }\n return undefined;\n}\nfunction removeListenerRecord(record) {\n var bucket = record.bucket;\n for (var i = 0; i < bucket.length; i++) {\n if (bucket[i] === record) {\n bucket.splice(i, 1);\n return;\n }\n }\n}\nfunction preventDefaultPolyfill() {\n this.returnValue = false;\n}\nfunction stopPropagationPolyfill() {\n this.cancelBubble = true;\n}\nfunction passivePreventDefault() {\n // Per spec, preventDefault() inside a passive listener does nothing.\n}\nfunction invokeCallback(callback, target, event) {\n if (typeof callback === 'function')\n return callback.call(target, event);\n if (typeof callback === 'object' && callback !== null && typeof callback.handleEvent === 'function')\n return callback.handleEvent(event);\n}\nfunction patchEventProperty(event, property, value, patches) {\n var holder = event;\n var had = false;\n try {\n had = Object.prototype.hasOwnProperty.call(event, property);\n }\n catch (_) {\n }\n patches.push({ property: property, had: had, previous: had ? holder[property] : undefined });\n defineEventProperty(event, property, value);\n}\nfunction restoreEventProperties(event, patches) {\n var holder = event;\n for (var i = patches.length - 1; i >= 0; i--) {\n var patch = patches[i];\n try {\n if (patch.had)\n defineEventProperty(event, patch.property, patch.previous);\n else\n delete holder[patch.property];\n }\n catch (_) {\n }\n }\n patches.length = 0;\n}\nfunction defineEventProperty(event, property, value) {\n try {\n Object.defineProperty(event, property, { value: value, configurable: true });\n }\n catch (_) {\n try {\n event[property] = value;\n }\n catch (__) {\n }\n }\n}\nfunction fixLegacyEvent(event, target) {\n if (typeof event.currentTarget === 'undefined' || event.currentTarget === null)\n defineEventProperty(event, 'currentTarget', target);\n if ((typeof event.target === 'undefined' || event.target === null) && typeof event.srcElement !== 'undefined')\n defineEventProperty(event, 'target', event.srcElement);\n if (typeof event.preventDefault !== 'function')\n event.preventDefault = preventDefaultPolyfill.bind(event);\n if (typeof event.stopPropagation !== 'function')\n event.stopPropagation = stopPropagationPolyfill.bind(event);\n}\nfunction fixKeyboardEvent(event) {\n if (typeof event.keyCode === 'number' && typeof event.code === 'undefined') {\n var code = KEY_CODE_MAP[event.keyCode];\n if (typeof code === 'string')\n defineEventProperty(event, 'code', code);\n }\n}\nfunction createDispatcher(record) {\n return function (event) {\n if (typeof event === 'undefined')\n event = GLOBAL.event; // IE: implicit global event object\n if (typeof event === 'undefined' || event === null)\n return;\n if (record.released)\n return;\n fixLegacyEvent(event, record.target);\n if (record.once)\n releaseListenerRecord(record);\n var patches = [];\n if (record.passive && !SUPPORTED_LISTENER_OPTIONS.passive)\n patchEventProperty(event, 'preventDefault', passivePreventDefault.bind(event), patches);\n if (record.resolvedType !== record.type)\n patchEventProperty(event, 'type', record.type, patches);\n if (record.touch)\n synthesizeTouchEvent(event, record.resolvedType, patches);\n fixKeyboardEvent(event);\n try {\n invokeCallback(record.callback, record.target, event);\n }\n finally {\n restoreEventProperties(event, patches);\n }\n };\n}\nfunction attachNativeListener(record) {\n var target = record.target;\n if (typeof target.addEventListener === 'function') {\n target.addEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));\n return true;\n }\n if (typeof target.attachEvent === 'function') {\n target.attachEvent('on' + record.resolvedType, record.wrapper);\n return true;\n }\n return false;\n}\nfunction detachNativeListener(record) {\n var target = record.target;\n if (typeof target.removeEventListener === 'function')\n return target.removeEventListener(record.resolvedType, record.wrapper, toNativeListenerOptions(record));\n if (typeof target.detachEvent === 'function')\n return target.detachEvent('on' + record.resolvedType, record.wrapper);\n}\nfunction releaseListenerRecord(record) {\n if (record.released)\n return;\n record.released = true;\n removeListenerRecord(record);\n try {\n detachNativeListener(record);\n }\n catch (_) {\n }\n if (typeof record.signal !== 'undefined' && typeof record.onAbort === 'function' && typeof record.signal.removeEventListener === 'function') {\n try {\n record.signal.removeEventListener('abort', record.onAbort, false);\n }\n catch (_) {\n }\n }\n record.onAbort = undefined;\n}\nfunction createEventPolyfill(type, init) {\n try {\n return new Event(type, init);\n }\n catch (_) {\n }\n var event = GLOBAL.document.createEvent('Event');\n event.initEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true);\n return event;\n}\nfunction createCustomEventPolyfill(type, init) {\n try {\n return new CustomEvent(type, init);\n }\n catch (_) {\n }\n var event = GLOBAL.document.createEvent('CustomEvent');\n event.initCustomEvent(type, typeof init !== 'undefined' && init.bubbles === true, typeof init !== 'undefined' && init.cancelable === true, typeof init !== 'undefined' && typeof init.detail !== 'undefined' ? init.detail : null);\n return event;\n}\nvar EventKit = {\n version: packageJSON.version,\n utils: {\n get supportedOptions() {\n return {\n once: SUPPORTED_LISTENER_OPTIONS.once,\n passive: SUPPORTED_LISTENER_OPTIONS.passive,\n capture: SUPPORTED_LISTENER_OPTIONS.capture,\n some: SUPPORTED_LISTENER_OPTIONS.some,\n all: SUPPORTED_LISTENER_OPTIONS.all,\n };\n },\n resolveType: resolveEventType,\n createEvent: createEventPolyfill,\n createCustomEvent: createCustomEventPolyfill,\n },\n add: function (target, type, callback, options) {\n if (typeof target === 'undefined' || target === null)\n return NOOP;\n if (typeof type !== 'string' || type.length === 0)\n return NOOP;\n if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))\n return NOOP;\n var normalized = normalizeListenerOptions(options);\n var existing = findListenerRecord(target, type, callback, normalized.capture);\n if (typeof existing !== 'undefined')\n return NOOP;\n if (typeof normalized.signal !== 'undefined' && normalized.signal.aborted)\n return NOOP;\n var resolvedType = resolveEventType(target, type);\n var bucket = resolveBucket(target, true);\n var record = {\n bucket: bucket,\n target: target,\n type: type,\n callback: callback,\n wrapper: NOOP,\n resolvedType: resolvedType,\n capture: normalized.capture,\n once: normalized.once,\n passive: normalized.passive,\n signal: normalized.signal,\n onAbort: undefined,\n touch: isTouchEventType(type) && isPointerEventType(resolvedType),\n released: false,\n };\n record.wrapper = createDispatcher(record);\n if (!attachNativeListener(record))\n return NOOP;\n bucket.push(record);\n if (typeof record.signal !== 'undefined' && typeof record.signal.addEventListener === 'function') {\n record.onAbort = function () {\n releaseListenerRecord(record);\n };\n record.signal.addEventListener('abort', record.onAbort, false);\n }\n return function () {\n releaseListenerRecord(record);\n };\n },\n remove: function (target, type, callback, options) {\n if (typeof target === 'undefined' || target === null)\n return;\n if (typeof type !== 'string' || type.length === 0)\n return;\n if (typeof callback !== 'function' && (typeof callback !== 'object' || callback === null))\n return;\n var normalized = normalizeListenerOptions(options);\n var record = findListenerRecord(target, type, callback, normalized.capture);\n if (typeof record !== 'undefined')\n return releaseListenerRecord(record);\n var resolvedType = resolveEventType(target, type);\n if (typeof target.removeEventListener === 'function')\n return target.removeEventListener(resolvedType, callback, toNativeListenerOptions(normalized));\n if (typeof target.detachEvent === 'function' && typeof callback === 'function')\n return target.detachEvent('on' + resolvedType, callback);\n },\n};\n\nexport { EventKit as default };\n//# sourceMappingURL=event-kit.mjs.map\n","declare const global: unknown;\n\nexport interface CordovaInAppBrowserLike {\n open(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n}\n\nexport interface CordovaLike {\n InAppBrowser?: CordovaInAppBrowserLike;\n}\n\nexport interface MapLike<K, V> {\n get(key: K): V | undefined;\n\n has(key: K): boolean;\n\n set(key: K, value: V): this;\n\n delete(key: K): boolean;\n}\n\nexport interface MapLikeConstructor {\n new<K, V>(): MapLike<K, V>;\n}\n\nexport interface DocumentLike extends Document {\n webkitVisibilityState?: 'hidden' | 'visible';\n mozVisibilityState?: 'hidden' | 'visible';\n msVisibilityState?: 'hidden' | 'visible';\n webkitHidden?: boolean;\n mozHidden?: boolean;\n msHidden?: boolean;\n}\n\nexport interface GlobalLike {\n navigator?: Navigator;\n document?: DocumentLike;\n window?: WindowProxy;\n top?: WindowProxy | null;\n localStorage?: Storage;\n fetch?: (input: string) => Promise<Response>;\n cordova?: CordovaLike;\n Map?: MapLikeConstructor;\n showOpenFilePicker?: (options?: unknown) => Promise<FileSystemFileHandle[]>;\n showDirectoryPicker?: (options?: unknown) => Promise<FileSystemDirectoryHandle>;\n\n open?(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n}\n\nexport function getGlobal(): GlobalLike {\n if (typeof globalThis !== 'undefined') return globalThis as unknown as GlobalLike;\n if (typeof self !== 'undefined') return self as unknown as GlobalLike;\n if (typeof window !== 'undefined') return window as unknown as GlobalLike;\n if (typeof global !== 'undefined') return global as GlobalLike;\n\n return {};\n}\n","import {getGlobal} from \"./get-global\";\n\ninterface HTMLPresentationAttributes {\n width?: string;\n height?: string;\n border?: string;\n frameBorder?: string;\n scrolling?: string;\n cellPadding?: string;\n cellSpacing?: string;\n frame?: string;\n rules?: string;\n noWrap?: boolean;\n}\n\nexport function createHiddenElement<K extends keyof HTMLElementTagNameMap>(tagName: K, focusable: boolean = true): HTMLElementTagNameMap[K] {\n const document: Document = getGlobal().document as Document;\n const element: HTMLElementTagNameMap[K] & HTMLPresentationAttributes = document.createElement(tagName) as HTMLElementTagNameMap[K] & HTMLPresentationAttributes;\n\n if (typeof element.width !== 'undefined') element.width = '0';\n if (typeof element.height !== 'undefined') element.height = '0';\n if (typeof element.border !== 'undefined') element.border = '0';\n if (typeof element.frameBorder !== 'undefined') element.frameBorder = '0';\n if (typeof element.scrolling !== 'undefined') element.scrolling = 'no';\n if (typeof element.cellPadding !== 'undefined') element.cellPadding = '0';\n if (typeof element.cellSpacing !== 'undefined') element.cellSpacing = '0';\n if (typeof element.frame !== 'undefined') element.frame = 'void';\n if (typeof element.rules !== 'undefined') element.rules = 'none';\n if (typeof element.noWrap !== 'undefined') element.noWrap = true;\n\n element.tabIndex = -1;\n element.setAttribute('role', 'presentation');\n\n if (focusable) {\n element.setAttribute('aria-hidden', 'false');\n\n element.style.width = '1px';\n element.style.height = '1px';\n } else {\n element.setAttribute('aria-hidden', 'true');\n\n element.style.width = '0';\n element.style.height = '0';\n element.style.zIndex = '-9999';\n element.style.display = 'none';\n element.style.visibility = 'hidden';\n element.style.pointerEvents = 'none';\n }\n\n element.style.position = 'absolute';\n element.style.top = '0';\n element.style.left = '0';\n element.style.padding = '0';\n element.style.margin = '0';\n element.style.border = 'none';\n element.style.outline = 'hidden';\n element.style.clip = 'rect(1px, 1px, 1px, 1px)';\n element.style.clipPath = 'inset(50%)';\n element.style.overflow = 'hidden';\n element.style.whiteSpace = 'nowrap';\n\n return element;\n}\n","var version = \"0.0.5\";\nvar packageJSON = {\n\tversion: version};\n\nvar RTL_LANGUAGES = ['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'iw', 'ji', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi'];\nvar RTL_SCRIPTS = ['Adlm', 'Arab', 'Aran', 'Hebr', 'Mand', 'Mend', 'Nkoo', 'Rohg', 'Samr', 'Syrc', 'Thaa', 'Yezi'];\nvar LANGUAGE_PATTERN = /^[A-Za-z]{2,8}$/;\nvar SCRIPT_PATTERN = /^[A-Za-z]{4}$/;\nvar REGION_PATTERN = /^(?:[A-Za-z]{2}|[0-9]{3})$/;\nvar VARIANT_PATTERN = /^(?:[A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3})$/;\nvar SINGLETON_PATTERN = /^[A-Za-z0-9]$/;\nvar EXTENSION_PATTERN = /^[A-Za-z0-9]{1,8}$/;\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n if (typeof global !== 'undefined')\n return global;\n return {};\n}\nfunction freeze(values) {\n return typeof Object.freeze === 'function' ? Object.freeze(values) : values;\n}\nfunction contains(values, value) {\n for (var i = 0; i < values.length; i++) {\n if (values[i] === value)\n return true;\n }\n return false;\n}\nfunction getIntlLocaleConstructor() {\n if (typeof Intl === 'undefined')\n return undefined;\n var constructor = Intl.Locale;\n return typeof constructor === 'function' ? constructor : undefined;\n}\nfunction parseTag(raw) {\n if (raw === null || typeof raw !== 'string')\n return null;\n var value = raw.replace(/_/g, '-');\n if (value.length === 0)\n return null;\n if (value === 'C' || value.toLowerCase() === 'posix')\n value = 'en-US';\n var dot = value.indexOf('.');\n if (dot !== -1)\n value = value.slice(0, dot);\n var at = value.indexOf('@');\n if (at !== -1)\n value = value.slice(0, at);\n if (value.length === 0)\n return null;\n var segments = value.split('-');\n if (LANGUAGE_PATTERN.test(segments[0]) === false)\n return null;\n var language = segments[0].toLowerCase();\n var index = 1;\n var script = null;\n if (index < segments.length && SCRIPT_PATTERN.test(segments[index])) {\n script = segments[index].charAt(0).toUpperCase() + segments[index].slice(1).toLowerCase();\n index++;\n }\n var region = null;\n if (index < segments.length && REGION_PATTERN.test(segments[index])) {\n region = segments[index].toUpperCase();\n index++;\n }\n var variants = [];\n while (index < segments.length && VARIANT_PATTERN.test(segments[index])) {\n variants.push(segments[index].toLowerCase());\n index++;\n }\n var extensions = [];\n while (index < segments.length) {\n var singleton = segments[index];\n if (SINGLETON_PATTERN.test(singleton) === false)\n return null;\n var isPrivateUse = singleton.toLowerCase() === 'x';\n var parts = [singleton.toLowerCase()];\n index++;\n while (index < segments.length) {\n var segment = segments[index];\n if (EXTENSION_PATTERN.test(segment) === false)\n return null;\n if (segment.length === 1 && isPrivateUse === false)\n break;\n parts.push(segment.toLowerCase());\n index++;\n }\n if (parts.length < 2)\n return null;\n extensions.push(parts.join('-'));\n }\n var base = [language];\n if (script !== null)\n base.push(script);\n if (region !== null)\n base.push(region);\n for (var i = 0; i < variants.length; i++)\n base.push(variants[i]);\n var baseName = base.join('-');\n return {\n tag: extensions.length === 0 ? baseName : baseName + '-' + extensions.join('-'),\n baseName: baseName,\n language: language,\n script: script,\n region: region,\n variants: freeze(variants),\n extensions: freeze(extensions),\n };\n}\nfunction isRTL(subtags) {\n if (subtags.script !== null)\n return contains(RTL_SCRIPTS, subtags.script);\n return contains(RTL_LANGUAGES, subtags.language);\n}\nfunction expandTag(tag) {\n var parsed = parseTag(tag);\n if (parsed === null)\n return freeze([]);\n var segments = parsed.baseName.split('-');\n var chain = [];\n for (var i = segments.length; i > 0; i--)\n chain.push(segments.slice(0, i).join('-'));\n return freeze(chain);\n}\nfunction toLookupKey(tag) {\n var parsed = parseTag(tag);\n return (parsed === null ? tag : parsed.baseName).toLowerCase();\n}\nfunction lookupTag(supported, preferred, fallback) {\n if (supported === null || typeof supported === 'undefined' || typeof supported.length !== 'number')\n return fallback;\n var keys = [];\n for (var i = 0; i < supported.length; i++)\n keys.push(toLookupKey(supported[i]));\n for (var i = 0; i < preferred.length; i++) {\n var chain = expandTag(preferred[i]);\n for (var j = 0; j < chain.length; j++) {\n var candidate = chain[j].toLowerCase();\n var prefix = candidate + '-';\n for (var k = 0; k < keys.length; k++) {\n if (keys[k] === candidate)\n return supported[k];\n }\n for (var k = 0; k < keys.length; k++) {\n if (keys[k].indexOf(prefix) === 0)\n return supported[k];\n }\n }\n }\n return fallback;\n}\nfunction resolveDirection(primary) {\n if (primary === null)\n return false;\n var IntlLocale = getIntlLocaleConstructor();\n if (typeof IntlLocale !== 'undefined') {\n try {\n var intlLocale = new IntlLocale(primary.tag);\n if (typeof intlLocale.getTextInfo === 'function')\n return intlLocale.getTextInfo().direction === 'rtl';\n if (typeof intlLocale.textInfo !== 'undefined')\n return intlLocale.textInfo.direction === 'rtl';\n }\n catch (_) {\n }\n }\n return isRTL(primary);\n}\nvar subtags = null;\nvar language = null;\nvar languages = freeze([]);\nvar fallbacks = freeze([]);\nvar timezone = null;\nvar offset = 0;\nvar rtl = false;\nfunction resolveLanguages(candidates) {\n var resolved = [];\n var primary = null;\n for (var i = 0; i < candidates.length; i++) {\n var parsed = parseTag(candidates[i]);\n if (parsed === null)\n continue;\n if (contains(resolved, parsed.baseName))\n continue;\n if (primary === null)\n primary = parsed;\n resolved.push(parsed.baseName);\n }\n subtags = primary;\n language = primary === null ? null : primary.baseName;\n languages = freeze(resolved);\n fallbacks = primary === null ? freeze([]) : expandTag(primary.baseName);\n rtl = resolveDirection(primary);\n}\nfunction collectEnvironmentLanguages() {\n var candidates = [];\n var navigatorLike = getGlobal().navigator;\n if (typeof navigatorLike !== 'undefined' && navigatorLike !== null) {\n if (typeof navigatorLike.languages !== 'undefined' && navigatorLike.languages !== null) {\n for (var i = 0; i < navigatorLike.languages.length; i++)\n candidates.push(navigatorLike.languages[i]);\n }\n candidates.push(navigatorLike.language);\n candidates.push(navigatorLike.userLanguage);\n candidates.push(navigatorLike.browserLanguage);\n candidates.push(navigatorLike.systemLanguage);\n }\n if (typeof Intl !== 'undefined') {\n try {\n candidates.push(Intl.DateTimeFormat().resolvedOptions().locale);\n }\n catch (_) {\n }\n }\n return candidates;\n}\nvar ENVIRONMENT_LANGUAGES = collectEnvironmentLanguages();\nresolveLanguages(ENVIRONMENT_LANGUAGES);\nif (typeof Intl !== 'undefined') {\n try {\n timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n catch (_) {\n }\n}\ntry {\n offset = new Date().getTimezoneOffset() * -1;\n}\ncatch (_) {\n}\nvar LocaleKit = {\n version: packageJSON.version,\n get language() {\n return language;\n },\n get languages() {\n return languages;\n },\n set languages(value) {\n resolveLanguages(typeof value === 'string' ? [value] : value);\n },\n get subtags() {\n return subtags;\n },\n get fallbacks() {\n return fallbacks;\n },\n get timezone() {\n return timezone;\n },\n get offset() {\n return offset;\n },\n get rtl() {\n return rtl;\n },\n reset: function () {\n resolveLanguages(ENVIRONMENT_LANGUAGES);\n },\n parse: function (tag) {\n return parseTag(tag);\n },\n expand: function (tag) {\n return expandTag(tag);\n },\n lookup: function (supported, fallback) {\n return lookupTag(supported, languages, typeof fallback === 'undefined' ? null : fallback);\n },\n};\nif (typeof Object.freeze === 'function')\n Object.freeze(LocaleKit);\n\nexport { LocaleKit as default };\n//# sourceMappingURL=locale-kit.mjs.map\n","import LocaleKit from \"web-locale-kit\";\nimport {getGlobal, GlobalLike, MapLike} from \"./get-global\";\n\nconst GLOBAL: GlobalLike = getGlobal();\n\ninterface IdCache {\n get(mode: string, query: string): string | undefined;\n\n set(mode: string, query: string, id: string): void;\n}\n\ninterface IOSAndMacOSLookupAppInfo {\n resultCount?: number;\n results?: IOSAndMacOSLookupAppResult[];\n}\n\ninterface IOSAndMacOSLookupAppResult {\n trackId: number;\n}\n\ninterface WindowsAppInfo {\n Products?: WindowsAppProduct[];\n Product?: WindowsAppProduct;\n}\n\ninterface WindowsAppProduct {\n ProductId?: string;\n}\n\nconst CACHE_PREFIX: string = 'web-launch-kit:';\nconst TRACK_ID = 'track-id';\nconst PRODUCT_ID = 'product-id';\nconst TRACK_ID_CACHE_TTL: number = 1000 * 60 * 60;\n\nfunction toCacheKey(mode: string, query: string): string {\n return CACHE_PREFIX + mode + ':' + query;\n}\nconst idCache: IdCache = (function (): IdCache {\n let supportsLocalStorage: boolean;\n\n try {\n if (typeof GLOBAL.localStorage === 'undefined' || GLOBAL.localStorage === null) {\n supportsLocalStorage = false;\n } else {\n const key: string = '__id_cache_test__';\n\n GLOBAL.localStorage.setItem(key, '');\n GLOBAL.localStorage.removeItem(key);\n\n supportsLocalStorage = true;\n }\n } catch (_: unknown) {\n // Safari Private Mode / Storage Disabled / Quota Exceeded\n supportsLocalStorage = false;\n }\n\n if (supportsLocalStorage) {\n return {\n get(mode: string, query: string): string | undefined {\n try {\n const item: string | null = (GLOBAL.localStorage as Storage).getItem(toCacheKey(mode, query));\n\n if (item == null) return undefined;\n\n const split: string[] = item.split('|');\n\n if (split.length !== 2) return undefined;\n\n const expiry: number = +split[0];\n\n if (isNotANumber(expiry) || expiry < getNow()) {\n (GLOBAL.localStorage as Storage).removeItem(toCacheKey(mode, query));\n\n return undefined;\n }\n\n return split[1];\n } catch (_: unknown) {\n return undefined;\n }\n },\n\n set(mode: string, query: string, id: string): void {\n try {\n (GLOBAL.localStorage as Storage).setItem(toCacheKey(mode, query), getNow() + TRACK_ID_CACHE_TTL + '|' + id);\n } catch (_: unknown) {\n return;\n }\n }\n }\n }\n\n if (typeof GLOBAL.Map !== 'undefined') {\n const cache: MapLike<string, string | undefined> = new GLOBAL.Map<string, string | undefined>();\n\n return {\n get(mode: string, query: string): string | undefined {\n const item: string | undefined = cache.get(toCacheKey(mode, query));\n\n if (typeof item === 'undefined') return undefined;\n\n const split: string[] = item.split('|');\n\n if (split.length !== 2) return undefined;\n\n const expiry: number = +split[0];\n\n if (isNotANumber(expiry) || expiry < getNow()) {\n cache.delete(toCacheKey(mode, query));\n\n return undefined;\n }\n\n return split[1];\n },\n\n set(mode: string, query: string, id: string): void {\n cache.set(toCacheKey(mode, query), getNow() + TRACK_ID_CACHE_TTL + '|' + id);\n },\n }\n }\n\n const cache: Record<string, string | undefined> = Object.create(null);\n\n return {\n get(mode: string, query: string): string | undefined {\n const item: string | undefined = cache[toCacheKey(mode, query)];\n\n if (typeof item === 'undefined') return undefined;\n\n const split: string[] = item.split('|');\n\n if (split.length !== 2) return undefined;\n\n const expiry: number = +split[0];\n\n if (isNotANumber(expiry) || expiry < getNow()) {\n try {\n delete cache[toCacheKey(mode, query)];\n } catch (_: unknown) {\n cache[toCacheKey(mode, query)] = undefined;\n }\n\n return undefined;\n }\n\n return split[1];\n },\n\n set(mode: string, query: string, id: string): void {\n cache[toCacheKey(mode, query)] = getNow() + TRACK_ID_CACHE_TTL + '|' + id;\n }\n }\n})();\n\nfunction isNotANumber(value: number): boolean {\n return value !== value;\n}\n\nfunction getNow(): number {\n if (typeof Date.now !== 'undefined') return Date.now();\n return (new Date).getTime();\n}\n\nfunction requestGet<T>(url: string, async: true): Promise<T | undefined>;\nfunction requestGet<T>(url: string, async?: false): T | undefined;\nfunction requestGet<T>(url: string, async: boolean = false): Promise<T | undefined> | (T | undefined) {\n if (typeof GLOBAL.fetch === 'function' && async) {\n return GLOBAL.fetch(url)\n .then(function (response: Response): Promise<any> {\n return response.json();\n })\n .catch(function (_: unknown): void {\n return undefined;\n });\n } else {\n try {\n const xhr: XMLHttpRequest = new XMLHttpRequest();\n\n xhr.open('GET', url, async);\n xhr.send();\n\n const status: number = xhr.status;\n\n if (status >= 200 && status < 300) return JSON.parse(xhr.response);\n return undefined;\n } catch (_: unknown) {\n return undefined;\n }\n }\n}\n\nfunction resolveGetProductIdURL(packageFamilyName: string): string {\n const locales: readonly string[] = LocaleKit.languages;\n let locale: string = 'en-US';\n let country: string = 'US';\n\n for (let i: number = 0; i < locales.length; i++) {\n const candidate: string = locales[i];\n\n if (candidate.indexOf('-') === -1) continue;\n\n const subtags: string[] = candidate.split('-');\n\n for (let j: number = 1; j < subtags.length; j++) {\n const subtag: string = subtags[j];\n\n if (/^[A-Za-z]{2}$/.test(subtag) || /^\\d{3}$/.test(subtag)) {\n locale = candidate;\n country = subtag;\n break;\n }\n }\n\n if (locale === candidate) break;\n }\n\n return 'https://displaycatalog.md.mp.microsoft.com/v7.0/products/lookup?value=' + encodeURIComponent(packageFamilyName) + '&market=' + encodeURIComponent(country) + '&languages=' + encodeURIComponent(locale) + '&alternateId=PackageFamilyName';\n}\n\nfunction resolveGetTrackIdURL(bundleId: string): string {\n return 'https://itunes.apple.com/lookup?bundleId=' + encodeURIComponent(bundleId);\n}\n\nfunction parseGetProductIdResponse(response: WindowsAppInfo | undefined): string | undefined {\n if (typeof response === 'undefined') return undefined;\n\n let product: WindowsAppProduct | undefined | null = undefined;\n\n if (typeof response.Products !== 'undefined') product = response.Products[0];\n else if (typeof response.Product !== 'undefined') product = response.Product;\n\n if (typeof product === 'undefined' || product === null) return undefined;\n\n return product.ProductId;\n}\n\nfunction parseGetTrackIdResponse(response: IOSAndMacOSLookupAppInfo | undefined): string | undefined {\n if (typeof response === 'undefined' || typeof response.results === 'undefined') return undefined;\n\n const results: IOSAndMacOSLookupAppResult[] = response.results;\n\n if (results.length === 0) return undefined;\n\n const result: IOSAndMacOSLookupAppResult = results[0];\n\n if (typeof result === 'undefined') return undefined;\n\n return '' + result.trackId;\n}\n\nexport function getProductId(packageFamilyName: string): string | undefined {\n const cache: string | undefined = idCache.get(PRODUCT_ID, packageFamilyName);\n\n if (typeof cache !== 'undefined') return cache;\n\n try {\n const productId: string | undefined = parseGetProductIdResponse(requestGet<WindowsAppInfo>(resolveGetProductIdURL(packageFamilyName)));\n\n if (typeof productId === 'undefined') return undefined;\n\n idCache.set(PRODUCT_ID, packageFamilyName, productId);\n\n return productId;\n } catch (_: unknown) {\n return undefined;\n }\n}\n\nexport function getTrackId(bundleId: string): string | undefined {\n const cache: string | undefined = idCache.get(TRACK_ID, bundleId);\n\n if (typeof cache !== 'undefined') return cache;\n\n try {\n const trackId: string | undefined = parseGetTrackIdResponse(requestGet<IOSAndMacOSLookupAppInfo>(resolveGetTrackIdURL(bundleId)));\n\n if (typeof trackId === 'undefined') return undefined;\n\n idCache.set(TRACK_ID, bundleId, trackId);\n\n return trackId;\n } catch (_: unknown) {\n return undefined;\n }\n}\n\nexport function getProductIdAsync(packageFamilyName: string): Promise<string | undefined> {\n const cache: string | undefined = idCache.get(PRODUCT_ID, packageFamilyName);\n\n if (typeof cache !== 'undefined') return Promise.resolve(cache);\n\n try {\n return requestGet<WindowsAppInfo>(resolveGetProductIdURL(packageFamilyName), true)\n .then(parseGetProductIdResponse)\n .then(function (productId: string | undefined): string | undefined {\n if (typeof productId === 'undefined') return undefined;\n\n idCache.set(PRODUCT_ID, packageFamilyName, productId);\n\n return productId;\n });\n } catch (_: unknown) {\n return Promise.resolve(undefined);\n }\n}\n\nexport function getTrackIdAsync(bundleId: string): Promise<string | undefined> {\n const cache: string | undefined = idCache.get(TRACK_ID, bundleId);\n\n if (typeof cache !== 'undefined') return Promise.resolve(cache);\n\n try {\n return requestGet<IOSAndMacOSLookupAppInfo>(resolveGetTrackIdURL(bundleId), true)\n .then(parseGetTrackIdResponse)\n .then(function (trackId: string | undefined): string | undefined {\n if (typeof trackId === 'undefined') return undefined;\n\n idCache.set(TRACK_ID, bundleId, trackId);\n\n return trackId;\n });\n } catch (_: unknown) {\n return Promise.resolve(undefined);\n }\n}\n","import {getGlobal, GlobalLike} from \"./get-global\";\n\nexport function getTopmostWindow(): WindowProxy {\n const globalLike: GlobalLike = getGlobal();\n\n try {\n if (typeof globalLike.top !== 'undefined' && globalLike.top !== null && globalLike.top !== globalLike.window) {\n void globalLike.top.location.href;\n return globalLike.top;\n }\n } catch (_: unknown) {\n }\n\n return globalLike as unknown as WindowProxy;\n}\n","import packageJSON from \"./package.json\" with {type: 'json'};\nimport PlatformKit, {Browsers, type OS} from 'web-platform-kit';\nimport EventKit from 'web-event-kit';\nimport {createHiddenElement} from \"./utils/create-hidden-element\";\nimport {getProductId, getProductIdAsync, getTrackId, getTrackIdAsync} from \"./utils/get-id\";\nimport {getTopmostWindow} from \"./utils/get-topmost-window\";\nimport {DocumentLike, getGlobal, GlobalLike} from \"./utils/get-global\";\n\ninterface FileSystemDirectoryHandleLike extends FileSystemDirectoryHandle {\n values(): AsyncIterator<FileSystemHandle>;\n}\n\ninterface OpenFilePickerOptions {\n excludeAcceptAllOption?: boolean;\n id?: string;\n multiple?: boolean;\n startIn?: OpenPickerStartIn;\n types?: {\n description?: string;\n accept: Record<string, string[]>;\n }[];\n}\n\ninterface OpenDirectoryPickerOptions {\n id?: string;\n mode?: 'read' | 'readwrite';\n startIn?: OpenPickerStartIn;\n}\n\ninterface IteratorYieldResult<TYield> {\n done?: false;\n value: TYield;\n}\n\ninterface IteratorReturnResult<TReturn> {\n done: true;\n value: TReturn;\n}\n\ninterface AsyncIterator<T, TReturn = any, TNext = any> {\n next(...[value]: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;\n\n return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;\n\n throw?(e?: any): Promise<IteratorResult<T, TReturn>>;\n}\n\ntype IteratorResult<T, TReturn = any> = IteratorYieldResult<T> | IteratorReturnResult<TReturn>;\ndeclare type URLCandidate = URL | string;\ndeclare type URLCandidateOrFallback = URLCandidate | (() => any);\ndeclare type URLStringOrFallback = string | (() => any);\nexport declare type OpenPickerStartIn = 'desktop' | 'documents' | 'downloads' | 'music' | 'pictures' | 'videos';\nexport declare type AppOpenedBy = 'scheme' | 'universal' | 'intent' | 'fallback' | 'store';\nexport declare type LaunchErrorCode = 'unsupported-os' | 'no-candidates' | 'all-failed';\n\nexport declare interface LaunchAttempt {\n readonly by: AppOpenedBy;\n readonly url: string;\n readonly index: number;\n readonly total: number;\n}\n\nexport declare interface LaunchError extends Error {\n readonly code: LaunchErrorCode;\n readonly attempted: readonly LaunchAttempt[];\n}\n\nexport enum SettingType {\n General = 'general',\n Network = 'network',\n Display = 'display',\n Appearance = 'appearance',\n Accessibility = 'accessibility',\n Battery = 'battery',\n Datetime = 'datetime',\n Language = 'language',\n Accounts = 'accounts',\n Storage = 'storage',\n}\n\ninterface EventConfig {\n target?: EventTarget;\n type?: string;\n}\n\ninterface FocusEventConfig {\n focus: EventConfig;\n blur: EventConfig;\n visibilitychange: EventConfig;\n}\n\ninterface IntentInfo {\n scheme?: string;\n packageName?: string;\n fallback?: string;\n}\n\nexport declare interface AppInfo {\n scheme?: URLCandidate;\n fallback?: URLCandidateOrFallback;\n timeout?: number;\n allowAppStore?: boolean;\n allowWebStore?: boolean;\n}\n\nexport declare interface AndroidAppInfo extends AppInfo {\n intent?: URLCandidate;\n packageName?: string;\n allowIntent?: boolean;\n assumeAllowedInApp?: boolean;\n}\n\nexport declare interface IOSAppInfo extends AppInfo {\n universal?: URLCandidate;\n bundleId?: string;\n trackId?: string;\n assumeAllowedInApp?: boolean;\n}\n\nexport declare interface WindowsAppInfo extends AppInfo {\n packageFamilyName?: string;\n productId?: string;\n}\n\nexport declare interface MacOSAppInfo extends AppInfo {\n bundleId?: string;\n trackId?: string;\n}\n\nexport declare interface AppOpenOptions {\n android?: AndroidAppInfo;\n ios?: IOSAppInfo;\n windows?: WindowsAppInfo;\n macos?: MacOSAppInfo;\n onAttempt?: (attempt: LaunchAttempt) => void;\n}\n\nexport declare interface TelephoneOptions {\n to?: string;\n}\n\nexport declare interface MessageOptions {\n to?: string | string[];\n body?: string;\n}\n\nexport declare interface MailOptions {\n to?: string | string[];\n cc?: string | string[];\n bcc?: string | string[];\n subject?: string;\n body?: string;\n}\n\nexport declare interface FilepickerOptions {\n accept?: string | string[];\n id?: string;\n directory?: boolean;\n multiple?: boolean;\n startIn?: OpenPickerStartIn;\n}\n\nexport declare interface MapOptions {\n query?: string;\n coordinate?: [number, number];\n label?: string;\n directions?: {\n destination: string | [number, number];\n origin?: string | [number, number];\n };\n zoom?: number;\n fallback?: URLStringOrFallback;\n onAttempt?: (attempt: LaunchAttempt) => void;\n}\n\n/**\n * Auxiliary helpers for {@link LaunchKitInstance} — environment probes and store-id lookups.\n */\ninterface LaunchKitUtils {\n /**\n * Whether Android `intent://` links can launch apps in the current browser.\n *\n * @remarks\n * `false` outside Android, for browsers with known intent regressions\n * (certain Firefox/Opera ranges), and inside in-app browsers where intent\n * cannot launch (Facebook, Instagram, TikTok, WeChat, QQ, Qzone, Baidu, Weibo).\n */\n get canOpenIntent(): boolean;\n\n /**\n * Whether iOS universal links are available in the current environment.\n *\n * @remarks\n * `false` outside iOS or below iOS 9, and inside in-app browsers known to block\n * universal links: WeChat below 7.0.5, QQ, QQBrowser, UC Browser, and Qzone.\n * Weibo is partner-gated — this getter reports the non-partner default; whitelisted\n * apps opt back in per call via `AppInfo.assumeAllowedInApp` instead.\n */\n get canOpenUniversal(): boolean;\n\n /**\n * Whether {@link LaunchKitInstance.setting} can open settings on this platform.\n *\n * @remarks\n * `false` on iOS, on Windows below 10, and on macOS below 10.10.\n */\n get canOpenSetting(): boolean;\n\n /**\n * Looks up an App Store `trackId` from an iOS/macOS bundle id (async, non-blocking).\n *\n * @param bundleId - The app's bundle identifier (e.g. `'com.example.app'`).\n * @returns The numeric track id as a string, or `undefined` if not found.\n *\n * @remarks\n * Uses `fetch` and caches results for one hour; failures resolve to `undefined`\n * rather than throwing. The synchronous `getTrackId` named export exists for internal\n * use but blocks the main thread.\n */\n getTrackId(bundleId: string): Promise<string | undefined>;\n\n /**\n * Looks up a Microsoft Store `ProductId` from a package family name (async, non-blocking).\n *\n * @param packageFamilyName - The Windows package family name.\n * @returns The product id, or `undefined` if not found.\n *\n * @remarks\n * Uses `fetch` and caches results for one hour; failures resolve to `undefined`\n * rather than throwing. Market and language are derived from the bundled locale detection.\n */\n getProductId(packageFamilyName: string): Promise<string | undefined>;\n}\n\n/**\n * Launcher for external apps and communication intents from the web.\n *\n * Opens installed apps via deep links / custom schemes, Android `intent://` URLs,\n * and iOS universal links — trying each candidate in order until one succeeds, with\n * App Store / web-store fallbacks. Also covers `tel`, `sms`, `mailto`, a file picker,\n * and system-settings deep links.\n *\n * @remarks\n * App-opening relies on focus/visibility heuristics with per-OS timeouts; results\n * indicate a candidate was attempted and the page appeared to background, not a hard\n * confirmation of launch. Deep links need a real user gesture — call these methods\n * from within a click/tap handler, or universal links and custom schemes fall back\n * to the web instead of opening the app.\n *\n * @example\n * ```ts\n * const openedBy = await LaunchKit.app({\n * android: {\n * scheme: 'ms-excel://',\n * packageName: 'com.microsoft.office.excel',\n * intent: 'intent://#Intent;scheme=ms-excel;package=com.microsoft.office.excel;action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;S.browser_fallback_url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.microsoft.office.excel;end',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 1000,\n * },\n * ios: {\n * scheme: 'ms-excel://',\n * bundleId: 'com.microsoft.Office.Excel',\n * trackId: '586683407',\n * universal: 'https://1drv.ms/x/c/7f3d9a02c81b4e65/IQBk2wYfN8pTQ5vHmR9xLzUcAeXtP0jWnK4oD3iFgZs7bQY?e=Rk9mZ2',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 2000,\n * },\n * windows: {\n * scheme: 'ms-excel://',\n * packageFamilyName: 'Microsoft.Office.Desktop_8wekyb3d8bbwe',\n * productId: 'cfq7ttc0pr28',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 750,\n * },\n * macos: {\n * scheme: 'ms-excel://',\n * bundleId: 'com.microsoft.Excel',\n * trackId: '462058435',\n * fallback: 'https://www.microsoft.com/ko-kr/microsoft-365/excel',\n * allowAppStore: true,\n * allowWebStore: false,\n * timeout: 750,\n * }\n * });\n * ```\n */\nexport interface LaunchKitInstance {\n /**\n * The installed package version.\n */\n readonly version: string;\n\n /**\n * Enum of system-settings panes (alias of the named {@link SettingType} export).\n */\n readonly SettingType: typeof SettingType;\n\n /**\n * Pauses on a `debugger` statement before each launch attempt. Defaults to `false`.\n *\n * @remarks\n * Calling a launch method from the DevTools console leaves the page without focus and\n * without user activation, so the attempt fails and app-switch detection cannot work.\n * Neither can be restored programmatically. With this on, execution pauses before the\n * navigation and pressing resume hands both back, so a console-driven test behaves like\n * a real tap. Leave it off outside that workflow — every launch method routes through\n * the same place.\n *\n * @example\n * ```ts\n * LaunchKit.debug = true;\n * await LaunchKit.app({ ios: { scheme: 'myapp://' } });\n * ```\n */\n get debug(): boolean;\n\n set debug(value: boolean);\n\n /**\n * Auxiliary helpers: capability probes and async store-id lookups.\n */\n readonly utils: LaunchKitUtils;\n\n /**\n * Attempts to open an installed app for the current OS, trying each resolved\n * candidate in order until one appears to launch it.\n *\n * @param options - Per-platform launch info; only the block matching the current OS is used.\n * @returns The route that opened the app: `'scheme'`, `'universal'`, `'intent'`, `'fallback'`, or `'store'`.\n *\n * @remarks\n * Candidates are ordered per platform (e.g. iOS: universal → scheme → fallback →\n * store). A resolved value means that route was attempted and the page backgrounded,\n * not a guaranteed launch. Rejects when the OS is undetected or no candidate can be\n * built for it. `bundleId` / `packageFamilyName` are resolved to a store id via a\n * blocking lookup when the store fallback is needed.\n */\n app(options?: AppOpenOptions): Promise<AppOpenedBy>;\n\n\n /**\n * Opens the dialer with a `tel:` URL.\n *\n * @param options - The recipient number in `to`.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Per RFC 3966, `+` is preserved and visual separators (spaces, dashes, dots,\n * parens) are stripped before dialing.\n */\n telephone(options?: TelephoneOptions): Promise<void>;\n\n /**\n * Opens the SMS composer with an `sms:` URL.\n *\n * @param options - One or more recipients in `to`, and an optional `body`.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Body prefill uses OS-specific delimiters (`?`/`&`/`;`); iOS 7 in particular cannot\n * prefill the body at all. Recipients are sanitized to digits, `+`, `-`, and `.`.\n */\n message(options?: MessageOptions): Promise<void>;\n\n /**\n * Opens the mail composer with a `mailto:` URL.\n *\n * @param options - `to` / `cc` / `bcc` (each a string or array), plus optional `subject` and `body`.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Encodes fields per RFC 6068. The body's line breaks are normalized to CRLF.\n */\n mail(options?: MailOptions): Promise<void>;\n\n /**\n * Opens a map at a location, search query, or route — building the right URL for\n * the current OS and falling back to Google Maps on the web.\n *\n * @param options - The map intent: a `query`, a `coordinate`, or `directions`, plus optional `zoom` / `label`.\n * @returns Resolves once a map URL opens, or rejects when every candidate fails.\n *\n * @remarks\n * Takes an intent rather than a URL and generates the per-OS form: `maps://` on\n * iOS/macOS, `geo:` on Android, `bingmaps:` on Windows, with a Google Maps web URL\n * as the shared fallback. Android's `geo:` scheme has no standard directions support,\n * so routes are only expressed through the Google Maps fallback. On Windows the native\n * Maps app was discontinued, so `bingmaps:` usually fails and the web fallback takes over.\n * `label` renders a named pin on iOS/macOS/Windows; it is ignored on Android,\n * where non-Google `geo:` handlers misread the labelled form as a search query.\n *\n * @example\n * ```ts\n * // Search for a place\n * await LaunchKit.map({ query: 'Seoul City Hall' })\n *\n * // Show a coordinate with a labelled pin\n * await LaunchKit.map({ coordinate: [37.5665, 126.9780], label: 'Seoul City Hall', zoom: 15 })\n *\n * // Directions (origin defaults to current location when omitted)\n * await LaunchKit.map({ directions: { destination: 'Seoul Station', origin: [37.5665, 126.9780] } })\n * ```\n */\n map(options?: MapOptions): Promise<AppOpenedBy>;\n\n /**\n * Opens a file or directory picker and resolves with the chosen files.\n *\n * @param options - `accept` filters, `directory` for folder selection, `multiple`, `id`, and `startIn`.\n * @returns The selected files; an empty array if the user cancels.\n *\n * @remarks\n * Uses the File System Access API (`showOpenFilePicker` / `showDirectoryPicker`)\n * where available, falling back to a hidden `<input type=\"file\">`. Directory\n * selection is recursive and populates each file's `webkitRelativePath`.\n */\n filepicker(options?: FilepickerOptions): Promise<File[]>;\n\n /**\n * Opens a system-settings pane where the platform supports it.\n *\n * @param type - The settings pane to open; defaults to {@link SettingType.General}.\n * @returns Resolves once the launch attempt settles.\n *\n * @remarks\n * Not supported on iOS (settings schemes are private API) and rejects there, and on\n * Windows below 10 / macOS below 10.10. Some Android panes fall back to the general\n * settings screen on older API levels; macOS 13+ uses the newer System Settings schema.\n */\n setting(type?: SettingType): Promise<void>;\n}\n\nconst SETTING_URL: Record<'android' | 'windows' | 'macos' | 'macos13', Record<SettingType, string>> = {\n android: {\n general: 'intent:#Intent;action=android.settings.SETTINGS;end',\n network: 'intent:#Intent;action=android.settings.WIFI_SETTINGS;end',\n display: 'intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end',\n appearance: 'intent:#Intent;action=android.settings.DISPLAY_SETTINGS;end',\n accessibility: 'intent:#Intent;action=android.settings.ACCESSIBILITY_SETTINGS;end',\n battery: 'intent:#Intent;action=android.settings.BATTERY_SAVER_SETTINGS;end',\n datetime: 'intent:#Intent;action=android.settings.DATE_SETTINGS;end',\n language: 'intent:#Intent;action=android.settings.LOCALE_SETTINGS;end',\n accounts: 'intent:#Intent;action=android.settings.SYNC_SETTINGS;end',\n storage: 'intent:#Intent;action=android.settings.INTERNAL_STORAGE_SETTINGS;end',\n },\n windows: {\n general: 'ms-settings:system',\n network: 'ms-settings:network',\n display: 'ms-settings:display',\n appearance: 'ms-settings:colors',\n accessibility: 'ms-settings:easeofaccess',\n battery: 'ms-settings:batterysaver',\n datetime: 'ms-settings:dateandtime',\n language: 'ms-settings:regionlanguage',\n accounts: 'ms-settings:emailandaccounts',\n storage: 'ms-settings:storagesense',\n },\n macos: {\n general: 'x-apple.systempreferences:',\n network: 'x-apple.systempreferences:com.apple.preference.network',\n display: 'x-apple.systempreferences:com.apple.preference.displays',\n appearance: 'x-apple.systempreferences:com.apple.preference.general',\n accessibility: 'x-apple.systempreferences:com.apple.preference.universalaccess',\n battery: 'x-apple.systempreferences:com.apple.preference.energysaver',\n datetime: 'x-apple.systempreferences:com.apple.preference.datetime',\n language: 'x-apple.systempreferences:com.apple.Localization',\n accounts: 'x-apple.systempreferences:com.apple.preferences.internetaccounts',\n storage: 'x-apple.systempreferences:',\n },\n macos13: {\n general: 'x-apple.systempreferences:com.apple.General-Settings.extension',\n network: 'x-apple.systempreferences:com.apple.Network-Settings.extension',\n display: 'x-apple.systempreferences:com.apple.Displays-Settings.extension',\n appearance: 'x-apple.systempreferences:com.apple.Appearance-Settings.extension',\n accessibility: 'x-apple.systempreferences:com.apple.Accessibility-Settings.extension',\n battery: 'x-apple.systempreferences:com.apple.Battery-Settings.extension',\n datetime: 'x-apple.systempreferences:com.apple.Date-Time-Settings.extension',\n language: 'x-apple.systempreferences:com.apple.Localization-Settings.extension',\n accounts: 'x-apple.systempreferences:com.apple.Internet-Accounts-Settings.extension',\n storage: 'x-apple.systempreferences:com.apple.settings.Storage',\n }\n}\n\nconst ANDROID_DEFAULT_TIMEOUT: number = 1000;\nconst IOS_DEFAULT_TIMEOUT: number = 2000;\nconst WINDOWS_DEFAULT_TIMEOUT: number = 750;\nconst MACOS_DEFAULT_TIMEOUT: number = 750;\nconst DEFAULT_TIMEOUT: number = 750;\nconst GLOBAL: GlobalLike = getGlobal();\nconst NAVIGATOR: Navigator | undefined = GLOBAL.navigator;\nlet CLEANUP_INPUT_ELEMENT: null | (() => void) = null;\nlet DEBUG: boolean = false;\nlet APP_IN_FLIGHT: Promise<AppOpenedBy> | null = null;\n\nfunction createTypeGuard<T>(tag: string): (value: unknown) => value is T {\n return function (value: unknown): value is T {\n return Object.prototype.toString.call(value) === '[object ' + tag + ']';\n }\n}\n\nconst isURL: (value: unknown) => value is URL = createTypeGuard<URL>('URL');\nconst isDOMException: (value: unknown) => value is DOMException = createTypeGuard<DOMException>('DOMException');\nconst isArray: (value: unknown) => value is Array<unknown> = createTypeGuard<Array<unknown>>('Array');\nconst isPromise: (value: unknown) => value is Promise<unknown> = createTypeGuard<Promise<unknown>>('Promise');\nconst isHTMLInputElement: (value: unknown) => value is HTMLInputElement = createTypeGuard<HTMLInputElement>('HTMLInputElement');\n\nfunction isHTMLInputElementLike(value: unknown): value is HTMLInputElement {\n if (isHTMLInputElement(value)) return true;\n\n // IE <= 8 reports DOM elements as '[object Object]'; detect structurally via nodeType 1 + tagName instead\n const maybe: HTMLInputElement = value as HTMLInputElement;\n\n return typeof maybe === 'object'\n && maybe !== null\n && maybe.nodeType === 1\n && typeof maybe.tagName === 'string'\n && maybe.tagName.toUpperCase() === 'INPUT';\n}\n\nfunction getDefaultTimeout(): number {\n switch (PlatformKit.os.name) {\n case 'android':\n return ANDROID_DEFAULT_TIMEOUT;\n case 'ios':\n return IOS_DEFAULT_TIMEOUT;\n case 'windows':\n return WINDOWS_DEFAULT_TIMEOUT;\n case 'macos':\n return MACOS_DEFAULT_TIMEOUT;\n default:\n return DEFAULT_TIMEOUT;\n }\n}\n\nfunction isDocumentHidden(): boolean {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: DocumentLike = top.document as DocumentLike;\n\n if (topDocument.visibilityState === 'hidden') return true;\n if (topDocument.webkitVisibilityState === 'hidden') return true;\n if (topDocument.mozVisibilityState === 'hidden') return true;\n if (topDocument.msVisibilityState === 'hidden') return true;\n if (typeof topDocument.hidden !== 'undefined') return topDocument.hidden;\n if (typeof topDocument.webkitHidden !== 'undefined') return topDocument.webkitHidden;\n if (typeof topDocument.mozHidden !== 'undefined') return topDocument.mozHidden;\n if (typeof topDocument.msHidden !== 'undefined') return topDocument.msHidden;\n if (typeof topDocument.hasFocus === 'function') return !topDocument.hasFocus();\n\n return true;\n}\n\nfunction dispatchClickEvent(element: HTMLElement, view: WindowProxy = GLOBAL as unknown as WindowProxy): void {\n let fake: MouseEvent;\n\n try {\n fake = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: view\n });\n } catch (_: unknown) {\n // ES5 or Browsers in the ES5~ES6 transition period\n fake = (GLOBAL.document as Document).createEvent('MouseEvents');\n\n fake.initMouseEvent('click', true, true, view, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n }\n\n element.dispatchEvent(fake);\n}\n\nfunction hasFocus(document: Document): boolean {\n if (typeof document.hasFocus === 'function') return document.hasFocus();\n return false;\n}\n\nfunction focus(target: WindowProxy | HTMLOrSVGElement): void {\n try {\n target.focus({preventScroll: true});\n } catch (_: unknown) {\n try {\n target.focus();\n } catch (_: unknown) {\n }\n }\n}\n\nfunction restoreFocus(): boolean {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n\n focus(top);\n\n if (hasFocus(topDocument)) return true;\n\n const hadBodyTabIndex: boolean = topDocument.body.hasAttribute('tabindex');\n\n if (!hadBodyTabIndex) topDocument.body.setAttribute('tabindex', '-1');\n\n focus(topDocument.body);\n\n if (hasFocus(topDocument)) return true;\n\n if (!hadBodyTabIndex) topDocument.body.removeAttribute('tabindex');\n\n let input: HTMLInputElement | undefined = undefined;\n\n try {\n input = createHiddenElement('input');\n\n if (typeof input === 'undefined') return false;\n\n input.type = 'text';\n input.readOnly = true;\n\n topDocument.body.appendChild(input);\n\n focus(input);\n\n try {\n input.select();\n } catch (_: unknown) {\n }\n\n if (hasFocus(topDocument)) return true;\n } catch (_: unknown) {\n } finally {\n if (typeof input !== 'undefined' && input !== null) {\n try {\n input.blur();\n } catch (_: unknown) {\n }\n\n try {\n topDocument.body.removeChild(input);\n } catch (_: unknown) {\n }\n }\n }\n\n return hasFocus(topDocument);\n}\n\nfunction stripURL<T>(value: T): (T extends URL ? string : T) {\n return isURL(value) ? value.toString() as T extends URL ? string : T : value as Exclude<T, URL>;\n}\n\nfunction resolveFocusEventConfig(): FocusEventConfig {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n\n if (typeof GLOBAL.cordova !== 'undefined') {\n return {\n focus: {\n target: topDocument,\n type: 'resume',\n },\n blur: {\n target: topDocument,\n type: 'pause',\n },\n visibilitychange: {}\n };\n } else if (PlatformKit.os.name === 'ios') {\n if (PlatformKit.compareVersion(PlatformKit.os.version, '8.0') >= 0) {\n return {\n focus: {},\n blur: {},\n visibilitychange: {\n target: topDocument,\n type: 'visibilitychange',\n }\n };\n } else {\n return {\n focus: {\n target: top,\n type: 'pageshow',\n },\n blur: {\n target: top,\n type: 'pagehide',\n },\n visibilitychange: {}\n }\n }\n } else if (typeof (GLOBAL.document as Document).addEventListener === 'function') {\n return {\n focus: {\n target: top,\n type: 'focus',\n },\n blur: {\n target: top,\n type: 'blur',\n },\n visibilitychange: {\n target: topDocument,\n type: 'visibilitychange',\n }\n };\n } else {\n return {\n focus: {\n target: topDocument,\n type: 'focus',\n },\n blur: {\n target: topDocument,\n type: 'blur',\n },\n visibilitychange: {\n target: topDocument,\n type: 'visibilitychange',\n }\n }\n }\n}\n\nfunction openURL(tried: number, url: string, timeout: number, terminal: boolean = false): Promise<void> {\n const config: FocusEventConfig = resolveFocusEventConfig();\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n let anchor: HTMLAnchorElement | undefined = undefined;\n let iframe: HTMLIFrameElement | undefined = undefined;\n\n function open(): void {\n if (typeof GLOBAL.cordova !== 'undefined' && GLOBAL.cordova !== null) {\n if (typeof GLOBAL.cordova.InAppBrowser !== 'undefined') {\n // required `cordova plugin add cordova-plugin-inappbrowser`\n GLOBAL.cordova.InAppBrowser.open(url, '_system');\n } else if (typeof GLOBAL.open === 'function') {\n GLOBAL.open(url, '_system');\n }\n\n return;\n }\n\n if (isUserActivationActive() || tried === 0) {\n top.location.href = url;\n } else {\n try {\n anchor = createHiddenElement('a');\n anchor.href = url;\n topDocument.body.appendChild(anchor);\n\n dispatchClickEvent(anchor, top);\n } catch (_: unknown) {\n } finally {\n if (typeof anchor !== 'undefined') {\n try {\n topDocument.body.removeChild(anchor);\n } catch (_: unknown) {\n }\n }\n }\n }\n\n // The nudge iframe exists to poke custom schemes on engines that ignore a location\n // change; a page navigation needs none, and would fetch the same URL twice.\n if (terminal) return;\n\n try {\n iframe = createHiddenElement('iframe');\n iframe.src = url;\n topDocument.body.appendChild(iframe);\n\n setTimeout(function (): void {\n if (typeof iframe !== 'undefined') {\n try {\n topDocument.body.removeChild(iframe);\n } catch (_: unknown) {\n }\n }\n }, 500);\n\n return;\n } catch (_: unknown) {\n }\n }\n\n if (terminal) {\n return new Promise<void>(function (resolve: () => void, reject: () => void): void {\n try {\n open();\n resolve();\n } catch (_: unknown) {\n reject();\n }\n });\n }\n\n return new Promise<void>(function (resolve: () => void, reject: () => void): void {\n // Opt-in only. Calling a launch method from the DevTools console leaves the page without focus or user activation, and neither can be restored programmatically — pausing here lets the developer hand both back by pressing resume.\n if (DEBUG) debugger;\n\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n let resolved: boolean = false;\n\n function cleanup(): void {\n if (typeof timeoutId !== 'undefined') {\n clearTimeout(timeoutId);\n\n timeoutId = undefined;\n }\n\n try {\n if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined') EventKit.remove(config.blur.target, config.blur.type, onblur);\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.remove(config.focus.target, config.focus.type, onfocus);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n } catch (_: unknown) {\n // cross-origin window\n }\n\n if (typeof anchor !== 'undefined') {\n try {\n topDocument.body.removeChild(anchor);\n } catch (_: unknown) {\n }\n }\n\n if (typeof iframe !== 'undefined') {\n try {\n topDocument.body.removeChild(iframe);\n } catch (_: unknown) {\n }\n }\n }\n\n function done(success: boolean): void {\n if (resolved) return;\n\n resolved = true;\n\n cleanup();\n if (success) resolve();\n else reject();\n }\n\n function onblur(): void {\n if (typeof timeoutId !== 'undefined') {\n clearTimeout(timeoutId);\n\n timeoutId = undefined;\n }\n\n if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined') EventKit.remove(config.blur.target, config.blur.type, onblur);\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.add(config.focus.target, config.focus.type, onfocus);\n }\n\n function onfocus(): void {\n done(true);\n }\n\n function onvisibilitychange(): void {\n if (isDocumentHidden()) onblur();\n else onfocus();\n }\n\n timeoutId = setTimeout(function (): void {\n done(false);\n }, timeout);\n\n if (typeof config.blur.target !== 'undefined' && typeof config.blur.type !== 'undefined') EventKit.add(config.blur.target, config.blur.type, onblur);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n\n if (!hasFocus(topDocument)) restoreFocus();\n\n try {\n open();\n } catch (_: unknown) {\n done(false);\n }\n });\n}\n\nconst FUNCTION_FALLBACK_LABEL: string = '[function fallback]';\nconst CANCEL_DELAY: number = 1000;\n\nfunction createLaunchError(code: LaunchErrorCode, message: string, attempted: LaunchAttempt[]): LaunchError {\n const error: LaunchError = new Error(message) as LaunchError;\n const holder: Record<string, unknown> = error as unknown as Record<string, unknown>;\n\n holder['code'] = code;\n holder['attempted'] = attempted;\n\n return error;\n}\n\nfunction isWebURL(url: string): boolean {\n return /^https?:\\/\\//i.test(url);\n}\n\nfunction isTerminalCandidate(by: AppOpenedBy, url: string): boolean {\n return (by === 'fallback' || by === 'store') && isWebURL(url);\n}\n\nfunction notifyAttempt(onAttempt: ((attempt: LaunchAttempt) => void) | undefined, attempt: LaunchAttempt): void {\n if (typeof onAttempt !== 'function') return;\n\n try {\n onAttempt(attempt);\n } catch (_: unknown) {\n }\n}\n\nfunction describeAttempts(attempted: LaunchAttempt[]): string {\n const routes: string[] = [];\n\n for (let i: number = 0; i < attempted.length; i++) routes.push(attempted[i].by);\n\n return ' ' + attempted.length + ' candidate(s) attempted (' + joining(routes, undefined, ' \\u2b62 ') + '). Read error.attempted for the URLs.';\n}\n\nfunction runCandidates(candidates: [AppOpenedBy, URLStringOrFallback][], timeout: number, onAttempt: ((attempt: LaunchAttempt) => void) | undefined, failure: string): Promise<AppOpenedBy> {\n return new Promise<AppOpenedBy>(function (resolve: (value: AppOpenedBy) => void, reject: (error: LaunchError) => void): void {\n const attempted: LaunchAttempt[] = [];\n const total: number = candidates.length;\n\n function step(index: number): void {\n if (index >= total) return reject(createLaunchError('all-failed', failure + describeAttempts(attempted), attempted));\n\n const by: AppOpenedBy = candidates[index][0];\n const url: URLStringOrFallback = candidates[index][1];\n const attempt: LaunchAttempt = {\n by: by,\n url: typeof url === 'string' ? url : FUNCTION_FALLBACK_LABEL,\n index: index,\n total: total,\n };\n\n attempted.push(attempt);\n notifyAttempt(onAttempt, attempt);\n\n if (typeof url !== 'string') {\n try {\n url();\n } catch (_: unknown) {\n return step(index + 1);\n }\n\n return resolve(by);\n }\n\n openURL(index, url, timeout, isTerminalCandidate(by, url))\n .then(function (): void {\n resolve(by);\n })\n .catch(function (): void {\n step(index + 1);\n });\n }\n\n step(0);\n });\n}\n\nfunction resolveOptions(option: AppOpenOptions): [[AppOpenedBy, URLStringOrFallback][], number] {\n const resolved: [AppOpenedBy, URLStringOrFallback][] = [];\n const os: OS = PlatformKit.os.name;\n\n if (os === 'unknown') throw createLaunchError('unsupported-os', 'Cannot resolve app open options: unsupported or undetected OS. (userAgent: \"' + PlatformKit.userAgent + '\")', []);\n\n // common\n let scheme: string | undefined;\n let fallback: URLStringOrFallback | undefined;\n let allowAppStore: boolean | undefined;\n let allowWebStore: boolean | undefined;\n let allowScheme: boolean;\n let assumeAllowedInApp: boolean;\n let timeout: number | undefined;\n\n // android\n let intent: string | undefined;\n let packageName: string | undefined;\n let allowIntent: boolean = true;\n\n // ios & macos\n let bundleId: string | undefined;\n let trackId: string | undefined;\n\n // ios\n let universal: string | undefined;\n\n // windows\n let packageFamilyName: string | undefined;\n let productId: string | undefined;\n\n switch (os) {\n case 'android':\n if (typeof option.android === 'undefined') return [[], 0];\n\n allowIntent = option.android.allowIntent !== false;\n intent = stripURL(option.android.intent);\n scheme = stripURL(option.android.scheme);\n fallback = stripURL(option.android.fallback);\n packageName = option.android.packageName;\n assumeAllowedInApp = option.android.assumeAllowedInApp === true;\n allowAppStore = option.android.allowAppStore;\n allowWebStore = option.android.allowWebStore;\n allowScheme = canOpenScheme(assumeAllowedInApp);\n timeout = option.android.timeout;\n\n // intent ⭢ scheme / packageName / fallback\n if (typeof intent !== 'undefined' && (typeof scheme === 'undefined' || typeof packageName === 'undefined' || typeof fallback === 'undefined')) {\n const parsed: IntentInfo = parseIntentURL(intent);\n\n if (typeof parsed.scheme !== 'undefined' && typeof scheme === 'undefined') scheme = parsed.scheme;\n if (typeof parsed.packageName !== 'undefined' && typeof packageName === 'undefined') packageName = parsed.packageName;\n if (typeof parsed.fallback !== 'undefined' && typeof fallback === 'undefined') fallback = parsed.fallback;\n }\n\n // scheme / packageName / fallback ⭢ intent\n if (allowIntent && typeof scheme !== 'undefined' && typeof intent === 'undefined') intent = createIntentURL(scheme, packageName, fallback);\n\n // default android timeout\n if (typeof timeout === 'undefined') timeout = ANDROID_DEFAULT_TIMEOUT;\n\n // intent ⭢ scheme ⭢ fallback ⭢ app store ⭢ web store\n if (allowIntent && typeof intent !== 'undefined' && canOpenIntent()) resolved.push(['intent', intent]);\n if (typeof scheme !== 'undefined' && allowScheme) resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof packageName !== 'undefined') {\n if (allowAppStore && allowScheme) resolved.push(['store', createAppStoreURL(packageName, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(packageName, os)]);\n }\n\n return [resolved, timeout];\n case 'ios':\n if (typeof option.ios === 'undefined') return [[], 0];\n\n universal = stripURL(option.ios.universal);\n scheme = stripURL(option.ios.scheme);\n fallback = stripURL(option.ios.fallback);\n bundleId = option.ios.bundleId;\n trackId = option.ios.trackId;\n assumeAllowedInApp = option.ios.assumeAllowedInApp === true;\n allowAppStore = option.ios.allowAppStore;\n allowWebStore = option.ios.allowWebStore;\n allowScheme = canOpenScheme(assumeAllowedInApp);\n timeout = option.ios.timeout;\n\n // bundle id ⭢ track id\n if (typeof bundleId !== 'undefined' && typeof trackId === 'undefined') trackId = getTrackId(bundleId);\n\n // default ios timeout\n if (typeof timeout === 'undefined') timeout = IOS_DEFAULT_TIMEOUT;\n\n // universal ⭢ scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof universal !== 'undefined' && canOpenUniversal(assumeAllowedInApp)) resolved.push(['universal', universal]);\n if (typeof scheme !== 'undefined' && allowScheme) resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof trackId !== 'undefined') {\n if (allowAppStore && allowScheme) resolved.push(['store', createAppStoreURL(trackId, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(trackId, os)]);\n }\n\n return [resolved, timeout];\n case 'windows':\n if (typeof option.windows === 'undefined') return [[], 0];\n\n scheme = stripURL(option.windows.scheme);\n fallback = stripURL(option.windows.fallback);\n packageFamilyName = option.windows.packageFamilyName;\n productId = option.windows.productId;\n allowAppStore = option.windows.allowAppStore;\n allowWebStore = option.windows.allowWebStore;\n timeout = option.windows.timeout;\n\n // package family name ⭢ product id\n if (typeof packageFamilyName !== 'undefined' && typeof productId === 'undefined') productId = getProductId(packageFamilyName);\n\n // default windows timeout\n if (typeof timeout === 'undefined') timeout = WINDOWS_DEFAULT_TIMEOUT;\n\n // scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof scheme !== 'undefined') resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof productId !== 'undefined') {\n if (allowAppStore) resolved.push(['store', createAppStoreURL(productId, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(productId, os)]);\n }\n\n return [resolved, timeout];\n case 'macos':\n if (typeof option.macos === 'undefined') return [[], 0];\n\n scheme = stripURL(option.macos.scheme);\n fallback = stripURL(option.macos.fallback);\n bundleId = option.macos.bundleId;\n trackId = option.macos.trackId;\n allowAppStore = option.macos.allowAppStore;\n allowWebStore = option.macos.allowWebStore;\n timeout = option.macos.timeout;\n\n // bundle id ⭢ track id\n if (typeof bundleId !== 'undefined' && typeof trackId === 'undefined') trackId = getTrackId(bundleId);\n\n // default macos timeout\n if (typeof timeout === 'undefined') timeout = MACOS_DEFAULT_TIMEOUT;\n\n // scheme ⭢ fallback ⭢ app store ⭢ web store\n if (typeof scheme !== 'undefined') resolved.push(['scheme', scheme]);\n if (typeof fallback !== 'undefined') resolved.push(['fallback', fallback]);\n if (typeof trackId !== 'undefined') {\n if (allowAppStore) resolved.push(['store', createAppStoreURL(trackId, os)]);\n if (allowWebStore) resolved.push(['store', createWebStoreURL(trackId, os)]);\n }\n\n return [resolved, timeout];\n }\n}\n\nfunction canOpenIntent(): boolean {\n if (PlatformKit.os.name !== 'android') return false;\n\n const browser: Browsers = PlatformKit.browser.name;\n const version: string = PlatformKit.browser.version;\n\n // Browser: Samsung Internet\n // Version: 17.0.1.69 ≤ v < 17.0.4.3 (17.0.1.69, 17.0.2.69)\n // Bug: `intent://` links open a blank tab instead of launching the target app. (window.open(_blank))\n // Rationale: The regression is reported for 17.0.1; Test results show that the bug persists up to version 17.0.2.69.\n // Sources: https://forum.developer.samsung.com/t/chrome-intent-scheme/20237\n // if (browser === 'samsung' && PlatformKit.compareVersion(version, '17.0.1.69') >= 0 && PlatformKit.compareVersion(version, '17.0.4.3') < 0) return false;\n\n // Browser: Firefox\n // Version: v < 41.0\n // Bug: `intent://` links cannot launch apps because Intent URI handling is not implemented yet.\n // Rationale: The Firefox for Android 41.0 release notes list “Open Android applications from a webpage via Intent URIs” as a new feature, implying earlier versions did not support it.\n // Sources: https://bugzilla.mozilla.org/show_bug.cgi?id=851693\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '41.0') < 0) return false;\n\n // Browser: Firefox\n // Version: 59.0 ≤ v < 68.11.0\n // Bug: When an `intent://` URL contains a `package` parameter, Firefox may incorrectly redirect to the Play Store (or fail to launch the installed app) even if the app is already installed.\n // Rationale: Bugzilla bug 851693 comments report a regression in the 59.x range where a `package` parameter causes Play Store redirection; no explicit fix is documented for 58–68 Fennec, and 68.11.0 is announced as the final Fennec release, so we conservatively assume the entire 58–68.10.* range is impacted.\n // Sources: https://bugzilla.mozilla.org/show_bug.cgi?id=1453784\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '59.0') >= 0 && PlatformKit.compareVersion(version, '68.11.0') < 0) return false;\n\n // Browser: Firefox\n // Version: 80.0 ≤ v < 82.0\n // Bug: Index links / `intent://` URLs may open the Play Store instead of the already-installed target app when loaded inside Firefox for Android (Fenix).\n // Rationale: GitHub issue mozilla-mobile/fenix#12746 and related Support threads describe installed apps being ignored and links going to Play Store starting from 79; follow-up comments indicate fixes landing and QA verification around 81–82.\n // Sources: https://github.com/mozilla-mobile/fenix/issues/12746\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '80.0') >= 0 && PlatformKit.compareVersion(version, '82.0') < 0) return false;\n\n // Browser: Firefox\n // Version: 96.0 ≤ v < 107.0\n // Bug: `S.browser_fallback_url` is always followed even when the target app is installed and should handle the intent, causing the fallback URL to load unnecessarily and potentially leaking SameSite=Strict cookies across contexts.\n // Rationale: Fenix issue #23397 reports `S.browser_fallback_url` always being executed in 96.2.0, and CVE-2022-45413 documents the SameSite cookie leak for Firefox for Android versions prior to 107, so we treat 96–106.* as affected.\n // Sources: https://github.com/mozilla-mobile/fenix/issues/23397\n if (browser === 'firefox' && PlatformKit.compareVersion(version, '96.0') >= 0 && PlatformKit.compareVersion(version, '107.0') < 0) return false;\n\n // Browser: Opera\n // Version: v < 14.0\n // Bug: Presto-based Opera for Android does not reliably support Chrome-style `intent://` links for launching installed apps.\n // Rationale: Opera switched from Presto to Chromium around Opera 14; prior to this, its engine did not fully implement Chrome-specific Android Intent URI semantics.\n // Sources: https://forums.opera.com/topic/11318\n if (browser === 'opera' && PlatformKit.compareVersion(version, '14.0') < 0) return false;\n\n // Browser: WeChat / QQ / Qzone / Baidu / Weibo (Android in-app browsers)\n // Bug: `intent://` has no chance to launch in these webviews; the Weibo partner whitelist covers scheme / universal link only, not intent.\n // Rationale: See isFullyBlockedInAppBrowser and isPartnerAppOnly — the single sources of truth for these environments.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n if (isFullyBlockedInAppBrowser() || isPartnerAppOnly()) return false;\n\n // Browser: Facebook / Instagram / TikTok in-app browsers\n // Version:\n // Bug: `intent://` links are blocked; evidence is intent-specific, so custom schemes are NOT gated by this check.\n // Rationale: WeChat was moved to isFullyBlockedInAppBrowser (full block: scheme + intent + market) and removed from this tail to keep a single source of truth.\n // Sources: https://developers.facebook.com/community/threads/470205278761649\n return !(/(?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/[\\w.]+;/i.test(PlatformKit.userAgent) || /instagram[\\/ ][-\\w.]+/i.test(PlatformKit.userAgent) || /musical_ly(?:.+app_?version\\/|_)[\\w.]+/i.test(PlatformKit.userAgent) || /ultralite app_version\\/[\\w.]+/i.test(PlatformKit.userAgent));\n}\n\nfunction canOpenUniversal(assumeAllowedInApp: boolean = false): boolean {\n if (PlatformKit.os.name !== 'ios' || PlatformKit.compareVersion(PlatformKit.os.version, '9.0') < 0) return false;\n\n // Partner-gated environments (Weibo): bypassable only by declared partnership; hard blocks below are never bypassed\n if (isPartnerAppOnly() && !assumeAllowedInApp) return false;\n\n const userAgent: string = PlatformKit.userAgent;\n\n // Browser: WeChat (iOS in-app browser)\n // Version: v < 7.0.5\n // Bug: Universal Links inside the WeChat webview do not launch third-party apps; 7.0.5 lifted the restriction.\n // Rationale: Originally observed by callapp-lib (2019); re-confirmed by 2023 field reports stating Safari supports UL,\n // WeChat supports it from 7.0.5, while UC/QQ browsers still do not. Note that a Universal Link only triggers\n // when it is cross-domain relative to the current page — same-domain links are treated as in-page navigation by iOS.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n const wechat: RegExpMatchArray | null = userAgent.match(/micromessenger\\/(\\d+(?:\\.\\d+)*)/i);\n\n if (wechat !== null && PlatformKit.compareVersion(wechat[1], '7.0.5') < 0) return false;\n\n // Browser: QQ (iOS) / QQBrowser / UC Browser\n // Version:\n // Bug: Universal Links navigate to the fallback website instead of launching the target app.\n // Rationale: QQ app blocked UL since 2018-12-23 and QQBrowser since 2019-05-01 (callapp-lib field notes); UC and QQ browsers are still reported as unsupported as of 2023.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n if (/ qq\\/[\\d.]+/i.test(userAgent) || /m?qqbrowser\\/[\\d.]+/i.test(userAgent) || /ucbrowser\\/[\\d.]+/i.test(userAgent)) return false;\n\n // Browser: Qzone (iOS in-app browser)\n // Version:\n // Bug: Universal Links are blocked; no partner escape hatch is known (unlike Weibo — see isPartnerAppOnly).\n // Rationale: Based on callapp-lib observations (2019); no independent re-verification found after 2019, so we conservatively keep it blocked.\n // Sources: https://github.com/suanmei/callapp-lib/blob/master/src/index.ts\n return !/qzone\\/.*_qz_[\\d.]+/i.test(userAgent);\n}\n\nfunction canOpenScheme(assumeAllowedInApp: boolean = false): boolean {\n const os: OS = PlatformKit.os.name;\n\n if (os === 'android') return !isFullyBlockedInAppBrowser() && (!isPartnerAppOnly() || assumeAllowedInApp);\n if (os === 'ios') return !/micromessenger\\/[\\w.]+/i.test(PlatformKit.userAgent) && (!isPartnerAppOnly() || assumeAllowedInApp);\n\n // No in-app scheme blocklist evidence on windows / macos\n return true;\n}\n\nfunction isFullyBlockedInAppBrowser(): boolean {\n // Android-only judgment: on iOS, WeChat >= 7.0.5 allows Universal Links (see canOpenUniversal)\n if (PlatformKit.os.name !== 'android') return false;\n\n const userAgent: string = PlatformKit.userAgent;\n\n // Browser: WeChat / QQ / Qzone / Baidu (Android in-app browsers)\n // Bug: Custom schemes, intent:// and market:// are all blocked (whitelist-only webviews), so every non-https candidate burns its timeout without any chance of launching.\n // Rationale: callapp-lib routes these environments straight to the fallback URL on Android; 2023 field reports confirm all Android launch methods remain banned inside WeChat. Weibo is partner-gated rather than fully blocked — see isPartnerAppOnly.\n // Sources: https://www.redream.cn/2023/11/29/h5%E5%94%A4%E8%B5%B7app/\n return /micromessenger\\/[\\w.]+/i.test(userAgent) || / qq\\/[\\d.]+/i.test(userAgent) || /qzone\\/.*_qz_[\\d.]+/i.test(userAgent) || /baiduboxapp\\/[\\d.]+/i.test(userAgent);\n}\n\nfunction isPartnerAppOnly(): boolean {\n // Browser: Weibo (iOS & Android in-app browser)\n // Version:\n // Bug: Launches are whitelist-gated: only apps registered as Weibo partners can open via scheme / universal link; non-partner apps are routed straight to the store (iOS) or fallback (Android).\n // Rationale: callapp-lib models this as the `isSupportWeibo` opt-in — `Browser.isWeibo && !isSupportWeibo` appears in both its iOS and Android branches, and Weibo is the only environment given a partner escape hatch there. Partnership cannot be detected at runtime; callers declare it via AppInfo.assumeAllowedInApp.\n // Sources: https://github.com/suanmei/callapp-lib/blob/master/src/index.ts\n return /weibo.*weibo__[\\d.]+/i.test(PlatformKit.userAgent);\n}\n\n// `ms-settings:` needs Windows 10. `PlatformKit.os.version` mixes marketing names with\n// numbers, and `compareVersion` cannot rank the names — `'95'` and `'98'` parse as numbers\n// larger than 10, while `'XP'` and `'NT 4.0'` parse as NaN. Both would otherwise pass.\nfunction canOpenWindowsSetting(version: string): boolean {\n if (version.length === 0) return false;\n\n // Non-numeric marketing names — XP, Vista, ME, RT, NT x.x, server 20xx — all predate 10\n if (/^\\d/.test(version) === false) return false;\n\n // Numeric names that are not kernel versions\n if (version === '95' || version === '98' || version === '2000') return false;\n\n return PlatformKit.compareVersion(version, '10') >= 0;\n}\n\nfunction canOpenSetting(): boolean {\n const os: OS = PlatformKit.os.name;\n const version: string = PlatformKit.os.version;\n\n return !(\n os === 'unknown'\n || (os === 'android' && !canOpenIntent())\n || os === 'ios'\n || (os === 'windows' && !canOpenWindowsSetting(version))\n || (os === 'macos' && PlatformKit.compareVersion(version, '10.10') < 0)\n );\n}\n\nfunction parseIntentURL(intent: string): IntentInfo {\n const parsed: IntentInfo = {};\n const split: string[] = intent.split('#Intent;');\n\n if (split.length !== 2) return parsed;\n\n const host: string = split[0].replace(/^intent:\\/\\//i, '');\n const parameterString: string = split[1].replace(/;?end\\s*$/i, '');\n const parameters: string[] = parameterString.split(';');\n const extras: Record<string, string> = {};\n\n for (let i: number = 0; i < parameters.length; i++) {\n const part: string = parameters[i];\n const index: number = part.indexOf('=');\n\n if (index !== -1) extras[part.substring(0, index)] = part.substring(index + 1);\n }\n\n if (typeof extras['scheme'] !== 'undefined') {\n if (host.length > 0) parsed.scheme = extras['scheme'] + '://' + host;\n else parsed.scheme = extras['scheme'] + '://';\n }\n\n if (typeof extras['package'] !== 'undefined') parsed.packageName = extras['package'];\n\n if (typeof extras['S.browser_fallback_url'] !== 'undefined') {\n let fallback: string = extras['S.browser_fallback_url'];\n\n try {\n fallback = decodeURIComponent(fallback);\n } catch (_: unknown) {\n }\n\n if (/^https?:\\/\\//i.test(fallback)) parsed.fallback = fallback;\n }\n\n return parsed;\n}\n\nfunction createIntentURL(scheme: string, packageName?: string, fallback?: string | (() => any)): string {\n const split: string[] = scheme.split('://');\n const prefix: string = split[0];\n const suffix: string = split[1];\n\n let intent: string = 'intent://';\n\n if (typeof suffix !== 'undefined') intent += suffix;\n\n intent += '#Intent;scheme=' + prefix + ';' + 'action=android.intent.action.VIEW;category=android.intent.category.BROWSABLE;';\n\n if (typeof packageName !== 'undefined') intent += 'package=' + packageName + ';';\n if (typeof fallback !== 'undefined' && typeof fallback === 'string') intent += 'S.browser_fallback_url=' + encodeURIComponent(fallback) + ';';\n else if (typeof packageName !== 'undefined') intent += 'S.browser_fallback_url=' + encodeURIComponent(createAppStoreURL(packageName, 'android')!) + ';';\n\n return intent + 'end';\n}\n\nfunction createAppStoreURL(id: string, os: Exclude<OS, 'unknown'>): string {\n switch (os) {\n case 'android':\n return 'market://details?id=' + id;\n case 'ios':\n return 'itms-apps://itunes.apple.com/app/id' + id + '?mt=8';\n case 'windows':\n return 'ms-windows-store://pdp/?ProductId=' + id;\n case 'macos':\n return 'macappstore://itunes.apple.com/app/id' + id + '?mt=12';\n default:\n return os satisfies never;\n }\n}\n\nfunction createWebStoreURL(id: string, os: Exclude<OS, 'unknown'>): string {\n switch (os) {\n case 'android':\n return 'https://play.google.com/store/apps/details?id=' + id;\n case 'ios':\n return 'https://itunes.apple.com/app/id' + id + '?mt=8';\n case 'windows':\n return 'https://apps.microsoft.com/detail/' + id;\n case 'macos':\n return 'https://apps.apple.com/app/id' + id + '?mt=12';\n default:\n return os satisfies never;\n }\n}\n\nfunction escapeURIComponentString(value: string): string {\n return encodeURIComponent(value)\n .replace(/[!'()*]/g, function (char: string): string {\n return '%' + char.charCodeAt(0).toString(16);\n });\n}\n\nfunction sanitizeSMSRecipient(value: string): string {\n return value.replace(/[^\\d+\\-.]/g, '');\n}\n\nfunction escapeURIComponentMailAddressString(value: string): string {\n return escapeURIComponentString(value)\n .replace(/%40/g, '@')\n .replace(/%2C/gi, ',');\n}\n\nfunction encodeMailBody(value: string): string {\n return escapeURIComponentString(value.replace(/\\r\\n|\\n|\\r/g, '\\r\\n'));\n}\n\nfunction encodeMapValue(value: string | [number, number]): string {\n if (isArray(value)) return value[0] + ',' + value[1];\n\n return escapeURIComponentString(value);\n}\n\nfunction encodeBingRoutePoint(value: string | [number, number] | undefined): string {\n if (typeof value === 'undefined') return '';\n if (isArray(value)) return 'pos.' + value[0] + '_' + value[1];\n\n return escapeURIComponentString(value);\n}\n\nfunction toArray(value: string | string[] | undefined): string[] {\n return typeof value === 'undefined' ? [] : typeof value === 'string' ? [value] : value;\n}\n\nfunction joining<T>(values: ArrayLike<T>, mapfn: ((value: T) => string) | undefined = undefined, separator: string = ','): string {\n const length: number = values.length;\n let result: string = '';\n\n for (let i: number = 0; i < length; i++) {\n if (i !== 0) result += separator;\n\n if (typeof mapfn !== 'undefined') result += mapfn(values[i]);\n else result += values[i];\n }\n\n return result;\n}\n\nfunction tokenize(string: string): string[] {\n if (string === '') return [];\n\n return string\n .split(/\\s*[,,]\\s*/)\n .filter(function (string: string): boolean {\n return string !== '';\n });\n}\n\nfunction flatten<T>(arrays: T[][]): T[] {\n const result: T[] = [];\n\n for (let i: number = 0; i < arrays.length; i++) {\n const sub: T[] = arrays[i];\n\n for (let j: number = 0; j < sub.length; j++) {\n result.push(sub[j]);\n }\n }\n\n return result;\n}\n\nfunction isUserActivationActive(): boolean {\n return typeof NAVIGATOR !== 'undefined' && typeof NAVIGATOR.userActivation !== 'undefined' && NAVIGATOR.userActivation.isActive;\n}\n\nfunction canShowDirectoryPicker(): boolean {\n return typeof GLOBAL.showDirectoryPicker === 'function';\n}\n\nfunction canShowOpenFilePicker(): boolean {\n return typeof GLOBAL.showOpenFilePicker === 'function';\n}\n\nfunction isFileSystemFileHandle(handle: FileSystemHandle): handle is FileSystemFileHandle {\n return handle.kind === 'file';\n}\n\nfunction isFileSystemDirectoryHandle(handle: FileSystemHandle): handle is FileSystemDirectoryHandle {\n return handle.kind === 'directory';\n}\n\nfunction fileListToArray(fileList: FileList | null): File[] {\n const files: File[] = [];\n\n if (fileList === null) return files;\n\n for (let i: number = 0; i < fileList.length; i++) {\n const file: File = fileList[i];\n\n files.push(file);\n }\n\n return files;\n}\n\nfunction setWebkitRelativePath(file: File, path: string = file.webkitRelativePath): File {\n Object.defineProperty(\n file,\n 'webkitRelativePath',\n {\n value: path,\n writable: false,\n configurable: true,\n enumerable: true,\n }\n );\n\n return file;\n}\n\nfunction resolveFile(module: HTMLInputElement | Promise<FileSystemDirectoryHandle> | Promise<FileSystemFileHandle[]>): Promise<File[]> {\n const top: WindowProxy = getTopmostWindow();\n const topDocument: Document = top.document;\n const config: FocusEventConfig = resolveFocusEventConfig();\n\n function resolveFileSystemHandle(module: Promise<FileSystemDirectoryHandle> | Promise<FileSystemFileHandle[]>, resolve: (files: File[]) => void, reject: (reason?: any) => void): void {\n module\n .then(function (result: FileSystemDirectoryHandle | FileSystemFileHandle[]) {\n if (isArray(result)) {\n const handles: Promise<File>[] = [];\n\n for (let i: number = 0; i < result.length; i++) handles[i] = result[i].getFile();\n\n return Promise\n .all(handles)\n .then(resolve)\n .catch(reject);\n } else if (isFileSystemDirectoryHandle(result)) {\n return walk(result, result.name)\n .then(resolve)\n .catch(reject);\n }\n })\n .catch(function (error: unknown): void {\n if (isDOMException(error) && error.name === 'AbortError') return resolve([]);\n\n reject(error);\n });\n }\n\n function resolveInput(module: HTMLInputElement, resolve: (files: File[]) => void): void {\n let resolved: boolean = false;\n\n function done(success: boolean): void {\n if (resolved) return;\n\n resolved = true;\n cleanup();\n\n if (!success) return resolve([]);\n\n resolve(fileListToArray(module.files));\n }\n\n function onfocus(): void {\n setTimeout(function (): void {\n if (module.value.length > 0) done(true);\n else done(false);\n }, CANCEL_DELAY);\n }\n\n function onvisibilitychange(): void {\n if (!isDocumentHidden()) onfocus();\n }\n\n function onclick(): void {\n done(false);\n }\n\n module.onchange = function (): void {\n done(true);\n };\n\n if (CLEANUP_INPUT_ELEMENT !== null) CLEANUP_INPUT_ELEMENT();\n\n if (typeof module.oncancel !== 'undefined') {\n module.oncancel = function (): void {\n done(false);\n };\n } else {\n module.onclick = function (): void {\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.add(config.focus.target, config.focus.type, onfocus);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.add(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n setTimeout(function (): void {\n EventKit.add(topDocument, 'click', onclick);\n }, 100);\n\n CLEANUP_INPUT_ELEMENT = function (): void {\n done(false);\n };\n }\n }\n\n function cleanup(): void {\n CLEANUP_INPUT_ELEMENT = null;\n\n try {\n if (typeof config.focus.target !== 'undefined' && typeof config.focus.type !== 'undefined') EventKit.remove(config.focus.target, config.focus.type, onfocus);\n if (typeof config.visibilitychange.target !== 'undefined' && typeof config.visibilitychange.type !== 'undefined') EventKit.remove(config.visibilitychange.target, config.visibilitychange.type, onvisibilitychange);\n EventKit.remove(topDocument, 'click', onclick);\n } catch (_) {\n }\n }\n\n dispatchClickEvent(module);\n }\n\n return new Promise(function (resolve: (files: File[]) => void, reject: (reason?: any) => void): void {\n if (isPromise(module)) return resolveFileSystemHandle(module, resolve, reject);\n else if (isHTMLInputElementLike(module)) return resolveInput(module, resolve);\n else reject(new TypeError('resolveFile expects an HTMLInputElement or a file-system handle Promise, but received: ' + Object.prototype.toString.call(module)));\n });\n}\n\nfunction walk(directory: FileSystemDirectoryHandle, basePath: string = ''): Promise<File[]> {\n return new Promise(function (resolve: (files: File[]) => void, reject: (reason?: any) => void): void {\n const iterator: AsyncIterator<FileSystemHandle> = (directory as FileSystemDirectoryHandleLike).values();\n const handles: FileSystemHandle[] = [];\n\n function collectNext(): void {\n iterator\n .next()\n .then(function (result: IteratorResult<FileSystemHandle>): void {\n if (result.done) {\n processHandles();\n return;\n }\n\n handles.push(result.value);\n collectNext();\n })\n .catch(reject);\n }\n\n function processHandles(): void {\n const promises: Promise<File[]>[] = [];\n\n for (let i: number = 0; i < handles.length; i++) {\n const handle: FileSystemHandle = handles[i];\n const name: string = handle.name;\n let path: string;\n\n if (basePath === '') path = name;\n else path = basePath + '/' + name;\n\n if (isFileSystemFileHandle(handle)) {\n const filePromise: Promise<File[]> = handle\n .getFile()\n .then(function (file: File): File[] {\n return [setWebkitRelativePath(file, path)];\n });\n\n promises.push(filePromise);\n } else if (isFileSystemDirectoryHandle(handle)) {\n promises.push(walk(handle, path));\n }\n }\n\n Promise\n .all(promises)\n .then(flatten)\n .then(resolve)\n .catch(reject);\n }\n\n collectNext();\n });\n}\n\nconst LaunchKit: LaunchKitInstance = {\n SettingType: SettingType,\n version: packageJSON.version,\n\n get debug(): boolean {\n return DEBUG;\n },\n\n set debug(value: boolean) {\n DEBUG = value === true;\n },\n\n utils: {\n get canOpenIntent(): boolean {\n return canOpenIntent();\n },\n\n get canOpenUniversal(): boolean {\n return canOpenUniversal();\n },\n\n get canOpenSetting(): boolean {\n return canOpenSetting();\n },\n\n getTrackId: getTrackIdAsync,\n getProductId: getProductIdAsync,\n },\n\n app(options: AppOpenOptions = {}): Promise<AppOpenedBy> {\n if (APP_IN_FLIGHT !== null) return APP_IN_FLIGHT;\n\n let resolved: [[AppOpenedBy, URLStringOrFallback][], number];\n\n try {\n resolved = resolveOptions(options);\n } catch (error: unknown) {\n return Promise.reject(error);\n }\n\n const urls: [AppOpenedBy, URLStringOrFallback][] = resolved[0];\n const timeout: number = resolved[1];\n\n if (urls.length === 0) return Promise.reject(createLaunchError('no-candidates', 'No openable URL candidates were resolved for the current OS (\"' + PlatformKit.os.name + '\"). Provide at least one of: scheme, intent, universal, fallback, or store id for this platform.', []));\n\n const attempt: Promise<AppOpenedBy> = runCandidates(urls, timeout, options.onAttempt, 'Failed to open the application.');\n\n function release(): void {\n if (APP_IN_FLIGHT === attempt) APP_IN_FLIGHT = null;\n }\n\n APP_IN_FLIGHT = attempt;\n\n attempt.then(release, release);\n\n return attempt;\n },\n\n telephone(options: TelephoneOptions = {}): Promise<void> {\n let url: string = 'tel:';\n\n // RFC 3966: '+' is a delimiter and MUST NOT be percent-encoded; visual separators (- . space parens) are stripped before dialing\n // https://datatracker.ietf.org/doc/html/rfc3966#section-3\n if (typeof options.to !== 'undefined') url += options.to.replace(/[^\\d+*#]/g, '');\n\n return openURL(0, url, getDefaultTimeout());\n },\n\n message(options: MessageOptions = {}): Promise<void> {\n const to: string[] = toArray(options.to);\n let url: string = 'sms:';\n\n // Apple URL Scheme Reference: sms recipient may contain only 0-9, '+', '-', '.'\n // https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/SMSLinks/SMSLinks.html\n if (to.length > 0) url += joining(to, sanitizeSMSRecipient);\n\n if (typeof options.body !== 'undefined') {\n // iOS < 7 needs ';body=', iOS 7 cannot prefill body at all, iOS 8+ needs '&body=', everything else follows RFC 5724 '?body='\n // https://weblog.west-wind.com/posts/2013/Oct/09/Prefilling-an-SMS-on-Mobile-Devices-with-the-sms-Uri-Scheme\n if (PlatformKit.os.name !== 'ios') url += '?';\n else if (PlatformKit.compareVersion(PlatformKit.os.version, '8.0') >= 0) url += '&';\n else url += ';';\n\n url += 'body=' + escapeURIComponentString(options.body);\n }\n\n return openURL(0, url, getDefaultTimeout());\n },\n\n mail(options: MailOptions = {}): Promise<void> {\n const params: string[] = [];\n const to: string[] = toArray(options.to);\n const cc: string[] = toArray(options.cc);\n const bcc: string[] = toArray(options.bcc);\n let url: string = 'mailto:';\n\n // mailto: — RFC 6068\n // https://datatracker.ietf.org/doc/html/rfc6068\n if (to.length > 0) url += joining(to, escapeURIComponentMailAddressString);\n if (cc.length > 0) params.push('cc=' + joining(cc, escapeURIComponentMailAddressString));\n if (bcc.length > 0) params.push('bcc=' + joining(bcc, escapeURIComponentMailAddressString));\n if (typeof options.subject === 'string') params.push('subject=' + escapeURIComponentString(options.subject));\n if (typeof options.body === 'string') params.push('body=' + encodeMailBody(options.body));\n\n if (params.length > 0) url += '?' + joining(params, undefined, '&');\n\n return openURL(0, url, getDefaultTimeout());\n },\n\n map(options: MapOptions = {}): Promise<AppOpenedBy> {\n const params: string[] = [];\n const candidates: [AppOpenedBy, URLStringOrFallback][] = [];\n let url: string = '';\n\n switch (PlatformKit.os.name) {\n case 'android':\n if (typeof options.coordinate !== 'undefined') {\n url = 'geo:' + options.coordinate[0] + ',' + options.coordinate[1];\n } else if (typeof options.query !== 'undefined') {\n url = 'geo:0,0';\n params.push('q=' + escapeURIComponentString(options.query));\n } else {\n url = 'geo:0,0';\n }\n\n if (typeof options.zoom !== 'undefined') params.push('z=' + options.zoom);\n if (params.length > 0) url = url + '?' + joining(params, undefined, '&');\n\n candidates.push(['scheme', url]);\n\n break;\n case 'ios':\n case 'macos':\n if (typeof options.directions !== 'undefined') {\n if (typeof options.directions.destination !== 'undefined') params.push('daddr=' + encodeMapValue(options.directions.destination));\n if (typeof options.directions.origin !== 'undefined') params.push('saddr=' + encodeMapValue(options.directions.origin));\n } else if (typeof options.coordinate !== 'undefined') {\n params.push('ll=' + options.coordinate[0] + ',' + options.coordinate[1]);\n\n if (typeof options.label !== 'undefined') params.push('q=' + escapeURIComponentString(options.label));\n } else if (typeof options.query !== 'undefined') {\n params.push('q=' + escapeURIComponentString(options.query));\n }\n\n if (typeof options.zoom !== 'undefined') params.push('z=' + options.zoom);\n\n candidates.push(['scheme', 'maps://?' + joining(params, undefined, '&')]);\n\n break;\n case 'windows':\n if (typeof options.directions !== 'undefined') {\n params.push('rtp=' + encodeBingRoutePoint(options.directions.origin) + '~' + encodeBingRoutePoint(options.directions.destination));\n } else if (typeof options.coordinate !== 'undefined') {\n params.push('cp=' + options.coordinate[0] + '~' + options.coordinate[1]);\n\n if (typeof options.label !== 'undefined') params.push('q=' + escapeURIComponentString(options.label));\n } else if (typeof options.query !== 'undefined') {\n params.push('where=' + escapeURIComponentString(options.query));\n }\n\n if (typeof options.zoom !== 'undefined') params.push('lvl=' + options.zoom);\n\n candidates.push(['scheme', 'bingmaps:?' + joining(params, undefined, '&')]);\n }\n\n if (typeof options.fallback !== 'undefined') {\n candidates.push(['fallback', stripURL(options.fallback)]);\n } else {\n const params: string[] = ['api=1'];\n\n if (typeof options.directions !== 'undefined') {\n params.push('destination=' + encodeMapValue(options.directions.destination));\n\n if (typeof options.directions.origin !== 'undefined') params.push('origin=' + encodeMapValue(options.directions.origin));\n\n candidates.push(['fallback', 'https://www.google.com/maps/dir/?' + joining(params, undefined, '&')]);\n } else {\n if (typeof options.coordinate !== 'undefined') params.push('query=' + options.coordinate[0] + ',' + options.coordinate[1]);\n else if (typeof options.query !== 'undefined') params.push('query=' + escapeURIComponentString(options.query));\n if (typeof options.zoom !== 'undefined') params.push('zoom=' + options.zoom);\n\n candidates.push(['fallback', 'https://www.google.com/maps/search/?' + joining(params, undefined, '&')]);\n }\n }\n\n return runCandidates(candidates, getDefaultTimeout(), options.onAttempt, 'Failed to open a map.');\n },\n\n filepicker(options: FilepickerOptions = {}): Promise<File[]> {\n let module: HTMLInputElement | Promise<FileSystemDirectoryHandle> | Promise<FileSystemFileHandle[]>;\n let accepts: string[] = [];\n\n if (isArray(options.accept)) accepts = options.accept;\n else if (typeof options.accept === 'string') accepts = tokenize(options.accept);\n\n if (options.directory) {\n if (canShowDirectoryPicker()) {\n const option: OpenDirectoryPickerOptions = {mode: 'read'};\n\n if (typeof options.id !== 'undefined') option.id = options.id;\n if (typeof options.startIn !== 'undefined') option.startIn = options.startIn;\n\n module = (GLOBAL.showDirectoryPicker as (options?: unknown) => Promise<FileSystemDirectoryHandle>)(option);\n } else {\n const input: HTMLInputElement = createHiddenElement('input');\n\n input.type = 'file';\n input.webkitdirectory = true;\n input.accept = accepts.join(',');\n\n module = input;\n }\n } else {\n if (canShowOpenFilePicker()) {\n const option: OpenFilePickerOptions = {};\n\n if (typeof options.id !== 'undefined') option.id = options.id;\n if (typeof options.startIn !== 'undefined') option.startIn = options.startIn;\n if (typeof options.multiple !== 'undefined') option.multiple = options.multiple;\n\n if (accepts.length > 0) {\n const acceptObject: Record<string, string[]> = {};\n\n option.excludeAcceptAllOption = true;\n option.types = [{\n description: '',\n accept: acceptObject,\n }];\n\n for (let i: number = 0; i < accepts.length; i++) {\n const accept: string = accepts[i];\n\n if (accept.startsWith('.')) {\n if (typeof acceptObject['application/octet-stream'] === 'undefined') acceptObject['application/octet-stream'] = [];\n\n acceptObject['application/octet-stream'].push(accept);\n } else if (accept.includes('/')) {\n acceptObject[accept] = [];\n }\n }\n }\n\n module = (GLOBAL.showOpenFilePicker as (options?: unknown) => Promise<FileSystemFileHandle[]>)(option);\n } else {\n const input: HTMLInputElement = createHiddenElement('input');\n\n input.type = 'file';\n input.accept = accepts.join(',');\n if (typeof options.multiple !== 'undefined') input.multiple = options.multiple;\n\n module = input;\n }\n }\n\n return resolveFile(module);\n },\n\n setting(type: SettingType = SettingType.General): Promise<void> {\n const os: OS = PlatformKit.os.name;\n const version: string = PlatformKit.os.version;\n const urls: string[] = [];\n\n if (!canOpenSetting()) return Promise.reject(new Error('Opening system settings is not supported on this platform. (userAgent: \"' + PlatformKit.userAgent + '\")'));\n\n switch (os) {\n case 'android':\n // https://developer.android.com/reference/android/provider/Settings\n if (\n (type === 'accessibility' && PlatformKit.compareVersion(version, '2.0') < 0) // API 5\n || (type === 'battery' && PlatformKit.compareVersion(version, '5.1') < 0) // API 22\n || (type === 'accounts' && PlatformKit.compareVersion(version, '1.5') < 0) // API 3\n || (type === 'storage' && PlatformKit.compareVersion(version, '1.5') < 0) // API 3\n || type === 'general'\n ) {\n urls.push(SETTING_URL.android.general);\n break;\n }\n\n urls.push(SETTING_URL.android[type]);\n urls.push(SETTING_URL.android.general);\n break;\n case 'windows':\n urls.push(SETTING_URL.windows[type]);\n break;\n case 'macos':\n // https://www.apple.com/uk/newsroom/2018/06/apple-introduces-macos-mojave/\n if (type === 'appearance' && PlatformKit.compareVersion(version, '10.14') < 0) urls.push(SETTING_URL.macos.general);\n else if (PlatformKit.compareVersion(version, '13.0') < 0) urls.push(SETTING_URL.macos[type]);\n else urls.push(SETTING_URL.macos13[type]);\n }\n\n return new Promise(function (resolve: () => void, reject: (urlOpenError: Error) => void): Promise<void> | void {\n function openURLSequential(index: number = 0): Promise<void> | void {\n if (index >= urls.length) return reject(new Error('Failed to open the \"' + type + '\" settings pane using all available URLs.\\n\\nAttempted URLs:\\n' + joining(urls, undefined, '\\n↓\\n')));\n\n return openURL(index, urls[index], DEFAULT_TIMEOUT)\n .then(function (): void {\n resolve();\n })\n .catch(function (): void {\n openURLSequential(index + 1);\n });\n }\n\n return openURLSequential();\n });\n },\n}\n\nexport default LaunchKit;\n"],"names":["version","packageJSON","getGlobal","GLOBAL","NAVIGATOR","GLOBAL$1"],"mappings":"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","x_google_ignoreList":[0,1,4]}