native-fn 1.0.20 → 1.0.21

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,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/polyfill/promise.min.js", "../src/index.js", "../src/utils/freeze.js", "../src/os.js", "../src/engine.js", "../src/utils/matchMedia.js", "../src/appearance.js", "../src/theme.js", "../src/utils/openURL.js", "../src/utils/createCustomError.js", "../src/utils/initializationError.js", "../src/utils/urlOpenError.js", "../src/app.js", "../src/utils/userNotSelectedError.js", "../src/camera.js", "../src/messenger.js", "../src/geolocation.js", "../package.json"],
4
- "sourcesContent": ["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t():\"function\"==typeof define&&define.amd?define(t):t()}(0,function(){\"use strict\";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function r(e,n){if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var f=n.then;if(\"function\"==typeof f)return void f.call(n,function(t){r(e,t)},function(n){o[e]={status:\"rejected\",reason:n},0==--i&&t(o)})}o[e]={status:\"fulfilled\",value:n},0==--i&&t(o)}if(!e||\"undefined\"==typeof e.length)return n(new TypeError(typeof e+\" \"+e+\" is not iterable(cannot read property Symbol(Symbol.iterator))\"));var o=Array.prototype.slice.call(e);if(0===o.length)return t([]);for(var i=o.length,f=0;o.length>f;f++)r(f,o[f])})}function n(e,t){this.name=\"AggregateError\",this.errors=e,this.message=t||\"\"}function r(e){var t=this;return new t(function(r,o){if(!e||\"undefined\"==typeof e.length)return o(new TypeError(\"Promise.any accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return o();for(var f=[],u=0;i.length>u;u++)try{t.resolve(i[u]).then(r)[\"catch\"](function(e){f.push(e),f.length===i.length&&o(new n(f,\"All promises were rejected\"))})}catch(c){o(c)}})}function o(e){return!(!e||\"undefined\"==typeof e.length)}function i(){}function f(e){if(!(this instanceof f))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,f._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(o){return void a(t.promise,o)}c(t.promise,r)}else(1===e._state?c:a)(t.promise,e._value)})):e._deferreds.push(t)}function c(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof f)return e._state=3,e._value=t,void l(e);if(\"function\"==typeof n)return void s(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,l(e)}catch(r){a(e,r)}}function a(e,t){e._state=2,e._value=t,l(e)}function l(e){2===e._state&&0===e._deferreds.length&&f._immediateFn(function(){e._handled||f._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)u(e,e._deferreds[t]);e._deferreds=null}function s(e,t){var n=!1;try{e(function(e){n||(n=!0,c(t,e))},function(e){n||(n=!0,a(t,e))})}catch(r){if(n)return;n=!0,a(t,r)}}n.prototype=Error.prototype;var d=setTimeout;f.prototype[\"catch\"]=function(e){return this.then(null,e)},f.prototype.then=function(e,t){var n=new this.constructor(i);return u(this,new function(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}(e,t,n)),n},f.prototype[\"finally\"]=e,f.all=function(e){return new f(function(t,n){function r(e,o){try{if(o&&(\"object\"==typeof o||\"function\"==typeof o)){var u=o.then;if(\"function\"==typeof u)return void u.call(o,function(t){r(e,t)},n)}i[e]=o,0==--f&&t(i)}catch(c){n(c)}}if(!o(e))return n(new TypeError(\"Promise.all accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},f.any=r,f.allSettled=t,f.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.race=function(e){return new f(function(t,n){if(!o(e))return n(new TypeError(\"Promise.race accepts an array\"));for(var r=0,i=e.length;i>r;r++)f.resolve(e[r]).then(t,n)})},f._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){d(e,0)},f._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var p=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw Error(\"unable to locate global object\")}();\"function\"!=typeof p.Promise?p.Promise=f:(p.Promise.prototype[\"finally\"]||(p.Promise.prototype[\"finally\"]=e),p.Promise.allSettled||(p.Promise.allSettled=t),p.Promise.any||(p.Promise.any=r))});\n", "'use strict';\n\nimport(\"./polyfill/promise.min\");\nimport freeze from \"./utils/freeze.js\";\n\nimport OS from \"./os.js\";\nimport Engine from \"./engine.js\";\nimport Appearance from \"./appearance.js\";\nimport Theme from \"./theme.js\";\nimport App from \"./app.js\";\nimport Camera from \"./camera.js\";\nimport Messenger from \"./messenger.js\";\nimport Geolocation from \"./geolocation.js\";\n\nimport InitializationError from \"./utils/initializationError.js\";\nimport URLOpenError from \"./utils/urlOpenError.js\";\nimport UserNotSelectedError from \"./utils/userNotSelectedError.js\";\n\nimport packageJSON from '../package.json';\n\nconst Error = {\n\tInitializationError,\n\tURLOpenError,\n\tUserNotSelectedError,\n};\n\nconst Version = packageJSON.version\n\nconst Native = freeze({\n\tversion: packageJSON.version,\n\tOS,\n\tEngine,\n\tAppearance,\n\tTheme,\n\tApp,\n\tCamera,\n\tMessenger,\n\tGeolocation,\n\tError,\n\tVersion\n});\n\nif (typeof globalThis !== 'undefined') {\n\tglobalThis.Native = Native;\n}\n\nexport {\n\tNative,\n\tApp,\n\tOS,\n\tEngine,\n\tAppearance,\n\tTheme,\n\tCamera,\n\tMessenger,\n\tGeolocation,\n\tError,\n\tVersion\n};\n", "/**\n * @template T\n * @param obj {T}\n * @returns {Readonly<T>}\n */\nexport default function freeze(obj) {\n\tif (typeof Object.freeze !== \"function\") {\n\t\tvar keys = Object.keys(obj);\n\t\t\n\t\tfor (var i = 0, key = keys[i]; i < keys.length; i++) {\n\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\ttry {\n\t\t\t\t\tObject.defineProperty(obj, key, {\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tconfigurable: false\n\t\t\t\t\t});\n\t\t\t\t} catch (_) {\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn obj;\n\t}\n\t\n\treturn Object.freeze(obj);\n}\n", "import freeze from \"./utils/freeze.js\";\n\n/**\n * @param str {string | undefined}\n * @returns {string | undefined}\n */\nfunction parseWindowsVersion(str) {\n\tvar map = {\n\t\t\"4.90\": \"ME\",\n\t\t\"NT3.51\": \"NT 3.11\",\n\t\t\"NT4.0\": \"NT 4.0\",\n\t\t\"NT 5.0\": \"2000\",\n\t\t\"NT 5.1\": \"XP\",\n\t\t\"NT 5.2\": \"XP\",\n\t\t\"NT 6.0\": \"Vista\",\n\t\t\"NT 6.1\": \"7\",\n\t\t\"NT 6.2\": \"8\",\n\t\t\"NT 6.3\": \"8.1\",\n\t\t\"NT 6.4\": \"10\",\n\t\t\"NT 10.0\": \"10\",\n\t\t\"ARM\": \"RT\"\n\t};\n\t\n\tvar mapped = map[str];\n\t\n\tif (mapped !== void 0) {\n\t\treturn mapped;\n\t}\n\t\n\treturn str;\n}\n\n/**\n * @param str {string | undefined}\n * @returns {string | undefined}\n */\nfunction parseIOSOrMacVersion(str) {\n\tif (str === void 0) {\n\t\treturn void 0;\n\t}\n\t\n\treturn str.replace(/_/g, \".\");\n}\n\nfunction getRenderer() {\n\t/** @type {HTMLCanvasElement} */\n\tvar canvas = document.createElement(\"CANVAS\");\n\t\n\tif (typeof canvas.getContext !== \"function\") return void 0;\n\t\n\tvar gl = canvas.getContext(\"experimental-webgl\") || canvas.getContext(\"webgl\");\n\t\n\tif (gl === null) return void 0;\n\t\n\tvar extension = gl.getExtension(\"WEBGL_debug_renderer_info\");\n\t\n\tif (typeof gl.getParameter !== \"function\") return void 0;\n\t\n\tif (extension == null) return gl.getParameter(gl.RENDERER);\n\t\n\treturn gl.getParameter(extension.UNMASKED_RENDERER_WEBGL);\n}\n\n/**\n * @type {NativeOS}\n */\nvar OS = (function (ua) {\n\tvar matched,\n\t\tresult = {\n\t\t\trenderer: getRenderer(),\n\t\t\tname: \"Unknown\",\n\t\t\tversion: void 0,\n\t\t},\n\t\t/** @type {[RegExp, string, undefined | ((matched: string | undefined) => string | undefined)][]} */\n\t\tmaps = [\n\t\t\t[/android\\w*[-\\/.; ]?([\\d.]*)/i, \"Android\"],\n\t\t\t[/microsoft windows (vista|xp)/i, \"Windows\"],\n\t\t\t[/windows (?:phone(?: os)?|mobile|iot)[\\/ ]?([.\\w ]*)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/windows nt 6\\.2; (arm)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/windows[\\/ ]([ntce\\d. ]+\\w)(?!.+xbox)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/(?:win(?=[39n])|win 9x )([nt\\d.]+)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/[adehimnop]{4,7}\\b(?:.*os (\\w+) like mac|; opera)/i, \"iOS\", parseIOSOrMacVersion],\n\t\t\t[/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d.]+)/i, \"iOS\", parseIOSOrMacVersion],\n\t\t\t[/cfnetwork\\/.+darwin/i, \"iOS\"],\n\t\t\t[/mac os x ?([\\w. ]*)/i, \"MacOS\", parseIOSOrMacVersion],\n\t\t\t[/(?:macintosh|mac_powerpc\\b)(?!.+haiku)/i, \"MacOS\", parseIOSOrMacVersion],\n\t\t];\n\t\n\tfor (var i = 0; i < maps.length; i++) {\n\t\tmatched = ua.match(maps[i][0]);\n\t\t\n\t\tif (matched !== null) {\n\t\t\tresult.name = maps[i][1];\n\t\t\tif (maps[i][2] !== void 0) {\n\t\t\t\tresult.version = maps[i][2](matched[1]);\n\t\t\t} else {\n\t\t\t\tresult.version = matched[1];\n\t\t\t}\n\t\t\t\n\t\t\treturn freeze(result);\n\t\t}\n\t}\n\t\n\treturn freeze(result);\n})(navigator.userAgent);\n\nexport default OS;\n", "import freeze from \"./utils/freeze.js\";\n\n/**\n * @param str {string | undefined}\n * @returns {string}\n */\nfunction parseLibWebVersion(str) {\n\treturn \"LibWeb\";\n}\n\n/**\n * @type {NativeEngine}\n */\nvar Engine = (function (ua) {\n\tvar matched,\n\t\tresult = {\n\t\t\tname: \"Unknown\",\n\t\t\tisWebView: /; ?wv|applewebkit(?!.*safari)/i.test(ua),\n\t\t\tversion: void 0,\n\t\t},\n\t\t/** @type {[RegExp, string, undefined | ((matched: string | undefined) => string | undefined)][]} */\n\t\tmaps = [\n\t\t\t[/windows.+ edge\\/([\\w.]+)/i, \"EdgeHTML\"],\n\t\t\t[/arkweb\\/([\\w.]+)/i, \"ArkWeb\"],\n\t\t\t[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w.]+)/i, \"Blink\"],\n\t\t\t[/presto\\/([\\w.]+)/i, \"Presto\"],\n\t\t\t[/webkit\\/([\\w.]+)/i, \"WebKit\"],\n\t\t\t[/trident\\/([\\w.]+)/i, \"Trident\"],\n\t\t\t[/netfront\\/([\\w.]+)/i, \"NetFront\"],\n\t\t\t[/netsurf\\/([\\w.]+)/i, \"NetSurf\"],\n\t\t\t[/amaya\\/([\\w.]+)/i, \"Amaya\"],\n\t\t\t[/lynx\\/([\\w.]+)/i, \"Lynx\"],\n\t\t\t[/w3m\\/([\\w.]+)/i, \"w3m\"],\n\t\t\t[/goanna\\/([\\w.]+)/i, \"Goanna\"],\n\t\t\t[/servo\\/([\\w.]+)/i, \"Servo\"],\n\t\t\t[/ekiohflow\\/([\\w.]+)/i, \"Flow\"],\n\t\t\t[/khtml[\\/ ]\\(?([\\w.]+)/i, \"KHTML\"],\n\t\t\t[/tasman[\\/ ]\\(?([\\w.]+)/i, \"Tasman\"],\n\t\t\t[/links[\\/ ]\\(?([\\w.]+)/i, \"Links\"],\n\t\t\t[/icab[\\/ ]([23]\\.[\\d.]+)/i, \"iCab\"],\n\t\t\t[/\\blibweb/i, \"LibWeb\", parseLibWebVersion],\n\t\t\t[/ladybird\\//i, \"LibWeb\", parseLibWebVersion],\n\t\t\t[/rv:([\\w.]{1,9})\\b.+gecko/i, \"Gecko\"],\n\t\t]\n\t\n\tfor (var i = 0; i < maps.length; i++) {\n\t\tmatched = ua.match(maps[i][0]);\n\t\t\n\t\tif (matched !== null) {\n\t\t\tresult.name = maps[i][1];\n\t\t\tif (maps[i][2] !== void 0) {\n\t\t\t\tresult.version = maps[i][2](matched[1]);\n\t\t\t} else {\n\t\t\t\tresult.version = matched[1];\n\t\t\t}\n\t\t\t\n\t\t\treturn freeze(result);\n\t\t}\n\t}\n\t\n\treturn freeze(result);\n})(navigator.userAgent);\n\nexport default Engine;\n", "export default (function () {\n\tif (typeof window.matchMedia === \"function\") {\n\t\treturn window.matchMedia;\n\t}\n\t\n\tvar media = window.styleMedia || window.media;\n\t\n\tif (media === void 0) {\n\t\tvar style = document.createElement(\"STYLE\"),\n\t\t\tinfo;\n\t\t\n\t\tstyle.type = \"text/css\";\n\t\tstyle.id = \"match-media-polyfill\";\n\t\t\n\t\tdocument.head.appendChild(style);\n\t\t\n\t\tif (typeof window.getComputedStyle === \"function\") {\n\t\t\tinfo = window.getComputedStyle(style);\n\t\t} else {\n\t\t\tinfo = style.currentStyle;\n\t\t}\n\t\t\n\t\tmedia = {\n\t\t\tmatchMedia: function (query) {\n\t\t\t\tvar text = \"@media \" + query + \"{ #\" + style.id + \" {width: 1px;} }\";\n\t\t\t\t\n\t\t\t\tif (style.styleSheet !== void 0) {\n\t\t\t\t\tstyle.styleSheet.cssText = text;\n\t\t\t\t} else {\n\t\t\t\t\tstyle.textContent = text;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn info.width === \"1px\";\n\t\t\t}\n\t\t};\n\t}\n\t\n\treturn function (query) {\n\t\treturn {\n\t\t\tmatches: media.matchMedia(query),\n\t\t\tmedia: query\n\t\t};\n\t};\n})();\n", "import freeze from \"./utils/freeze.js\";\nimport matchMedia from \"./utils/matchMedia.js\";\n\nvar listeners = [],\n\tquery = matchMedia(\"(prefers-color-scheme: dark)\");\n\n/**\n * @type {NativeAppearance}\n */\nvar Appearance = {\n\t/**\n\t * @param {(value: EnumValues<NativeAppearanceType>) => void} listener\n\t */\n\taddListener: function (listener) {\n\t\tfunction wrapped(event) {\n\t\t\tlistener(event.matches ? Appearance.Type.Dark : Appearance.Type.Light);\n\t\t}\n\t\t\n\t\tlisteners.push({original: listener, wrapped: wrapped});\n\t\t\n\t\tif (typeof query.addEventListener === \"function\") {\n\t\t\treturn query.addEventListener(\"change\", wrapped);\n\t\t} else if (typeof query.addListener === \"function\") {\n\t\t\treturn query.addListener(wrapped);\n\t\t}\n\t},\n\t/**\n\t * @param {(value: EnumValues<NativeAppearanceType>) => void} listener\n\t */\n\tremoveListener: function (listener) {\n\t\tfor (var i = 0; i < listeners.length; i++) {\n\t\t\tif (listeners[i].original === listener) {\n\t\t\t\tvar wrapped = listeners[i].wrapped;\n\t\t\t\t\n\t\t\t\tif (typeof query.removeEventListener === \"function\") {\n\t\t\t\t\tquery.removeEventListener(\"change\", wrapped);\n\t\t\t\t} else if (typeof query.removeListener === \"function\") {\n\t\t\t\t\treturn query.removeListener(wrapped);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlisteners.splice(i, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nObject.defineProperty(Appearance, \"value\", {\n\t/**\n\t * @returns {EnumValues<NativeAppearanceType>}\n\t */\n\tget: function () {\n\t\tif (query.matches) {\n\t\t\treturn Appearance.Type.Dark;\n\t\t} else {\n\t\t\treturn Appearance.Type.Light;\n\t\t}\n\t},\n\tconfigurable: false,\n\tenumerable: true,\n});\n\n/**\n * @enum {string}\n * @type {NativeAppearanceType}\n */\nAppearance.Type = freeze({\n\tLight: \"light\",\n\tDark: \"dark\",\n});\n\nexport default Appearance;\n", "import Appearance from \"./appearance.js\";\nimport freeze from \"./utils/freeze.js\";\n\n/** @type {EnumValues<NativeAppearanceType> | undefined} */\nvar listener,\n\t/** @type {Record<string, HTMLMetaElement>} */\n\tmetas = {\n\t\tlight: void 0,\n\t\tdark: void 0,\n\t\tiosStatusBar: void 0,\n\t\twindowsPhone: void 0,\n\t},\n\t/** @type {MutationObserver} */\n\tobserver,\n\t/** @type {((value: Partial<NativeThemeContent>) => void)[]} */\n\tobserverListeners = [],\n\t/** @type {((value: EnumValues<NativeAppearanceType>) => void)[]} */\n\tappearanceListeners = [];\n\n/**\n * @param attributes {[string, string][]}\n * @returns {HTMLMetaElement}\n */\nfunction getMeta(attributes) {\n\tvar query = \"\",\n\t\telement,\n\t\ti;\n\t\n\tfor (i = 0; i < attributes.length; i++) {\n\t\tquery += \"[\" + attributes[i][0] + \"='\" + attributes[i][1] + \"']\";\n\t}\n\t\n\telement = top.document.head.querySelector(\"meta\" + query);\n\t\n\tif (element === null) {\n\t\telement = top.document.createElement(\"META\");\n\t\t\n\t\tfor (i = 0; i < attributes.length; i++) {\n\t\t\telement[attributes[i][0]] = attributes[i][1];\n\t\t}\n\t\t\n\t\ttop.document.head.appendChild(element);\n\t}\n\t\n\treturn element;\n}\n\nfunction initMetas() {\n\tif (metas.light === void 0) {\n\t\tmetas.light = getMeta([[\"name\", \"theme-color\"], [\"media\", \"(prefers-color-scheme: light)\"]]);\n\t}\n\t\n\tif (metas.dark === void 0) {\n\t\tmetas.dark = getMeta([[\"name\", \"theme-color\"], [\"media\", \"(prefers-color-scheme: dark)\"]]);\n\t}\n\t\n\tif (metas.iosStatusBar === void 0) {\n\t\tmetas.iosStatusBar = getMeta([[\"name\", \"apple-mobile-web-app-status-bar-style\"]]);\n\t}\n\t\n\tif (metas.windowsPhone === void 0) {\n\t\tmetas.windowsPhone = getMeta([[\"name\", \"msapplication-navbutton-color\"]]);\n\t}\n}\n\n/**\n * @type {NativeTheme}\n */\nvar Theme = {\n\t/**\n\t * @param {(value: Partial<NativeThemeContent>) => void} listener\n\t */\n\taddListener: function (listener) {\n\t\tif (typeof window.MutationObserver !== \"function\") {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (observer === void 0) {\n\t\t\tobserver = new MutationObserver(function (mutations) {\n\t\t\t\tvar i,\n\t\t\t\t\tchanged = false;\n\t\t\t\t\n\t\t\t\tfor (i = 0; i < mutations.length; i++) {\n\t\t\t\t\tvar mutation = mutations[i],\n\t\t\t\t\t\ttarget = mutation.target,\n\t\t\t\t\t\ttype = mutation.type;\n\t\t\t\t\t\n\t\t\t\t\tif (type !== \"attributes\" || target.tagName !== \"META\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ([metas.light, metas.dark, metas.iosStatusBar, metas.windowsPhone].indexOf(target) !== -1) {\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (!changed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor (i = 0; i < observerListeners.length; i++) {\n\t\t\t\t\tobserverListeners[i](Theme.value);\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tobserver.observe(top.document.head, {attributes: true, childList: true, subtree: true});\n\t\t}\n\t\t\n\t\tfunction onAppearanceChange() {\n\t\t\tinitMetas();\n\t\t\t\n\t\t\tif (metas.dark.content !== metas.light.content) {\n\t\t\t\tlistener(Theme.value);\n\t\t\t}\n\t\t}\n\t\t\n\t\tAppearance.addListener(onAppearanceChange);\n\t\t\n\t\tappearanceListeners.push(onAppearanceChange);\n\t\tobserverListeners.push(listener);\n\t},\n\t/**\n\t * @param {(value: Partial<NativeThemeContent>) => void} listener\n\t */\n\tremoveListener: function (listener) {\n\t\tif (typeof window.MutationObserver !== \"function\" || observer === void 0) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < observerListeners.length; i++) {\n\t\t\tif (observerListeners[i] === listener) {\n\t\t\t\tobserverListeners.splice(i, 1);\n\t\t\t\tappearanceListeners.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (observerListeners.length === 0) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t},\n\t/**\n\t * @param theme {Partial<Record<NativeAppearanceType[keyof NativeAppearanceType], Partial<NativeThemeContent>>>}\n\t */\n\tsetTheme: function (theme) {\n\t\tinitMetas();\n\t\t\n\t\tif (listener !== void 0) {\n\t\t\tAppearance.removeListener(listener);\n\t\t\tlistener = void 0;\n\t\t}\n\t\t\n\t\tlistener = function (appearance) {\n\t\t\tvar color = theme[appearance];\n\t\t\t\n\t\t\tif (color !== void 0) {\n\t\t\t\tif (color.iosStatusBar !== void 0) {\n\t\t\t\t\tmetas.iosStatusBar.content = color.iosStatusBar;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (color.windowsPhone !== void 0) {\n\t\t\t\t\tmetas.windowsPhone.content = color.iosStatusBar;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tAppearance.addListener(listener);\n\t\t\n\t\tvar light = theme.light,\n\t\t\tdark = theme.dark;\n\t\t\n\t\tif (dark !== void 0 && dark.theme !== void 0) {\n\t\t\tmetas.dark.content = dark.theme;\n\t\t}\n\t\t\n\t\tif (light !== void 0) {\n\t\t\tif (light.theme !== void 0) {\n\t\t\t\tmetas.light.content = light.theme;\n\t\t\t}\n\t\t\t\n\t\t\tif (Appearance.value === \"light\") {\n\t\t\t\tif (light.iosStatusBar !== void 0) {\n\t\t\t\t\tmetas.iosStatusBar.content = light.iosStatusBar;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (light.windowsPhone !== void 0) {\n\t\t\t\t\tmetas.windowsPhone.content = light.windowsPhone;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (dark !== void 0) {\n\t\t\tif (dark.theme !== void 0) {\n\t\t\t\tmetas.dark.content = dark.theme;\n\t\t\t}\n\t\t\t\n\t\t\tif (Appearance.value === \"dark\") {\n\t\t\t\tif (dark.iosStatusBar !== void 0) {\n\t\t\t\t\tmetas.iosStatusBar.content = dark.iosStatusBar;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (dark.windowsPhone !== void 0) {\n\t\t\t\t\tmetas.windowsPhone.content = dark.windowsPhone;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nObject.defineProperty(Theme, \"value\", {\n\t/**\n\t * @returns {Partial<NativeThemeContent>}\n\t */\n\tget: function () {\n\t\tvar result = {};\n\t\t\n\t\tinitMetas();\n\t\t\n\t\tif (metas[Appearance.value].content !== \"\") {\n\t\t\tresult.theme = metas[Appearance.value].content;\n\t\t}\n\t\t\n\t\tif (metas.iosStatusBar.content !== \"\") {\n\t\t\tresult.iosStatusBar = metas.iosStatusBar.content;\n\t\t}\n\t\t\n\t\tif (metas.windowsPhone.content !== \"\") {\n\t\t\tresult.windowsPhone = metas.windowsPhone.content;\n\t\t}\n\t\t\n\t\treturn result;\n\t},\n\tconfigurable: false,\n\tenumerable: true,\n});\n\n/**\n * @enum {string}\n * @type {NativeThemeType}\n */\nTheme.Type = freeze({\n\tTheme: 'theme',\n\tIOSStatusBar: 'iosStatusBar',\n\tWindowsPhone: 'windowsPhone',\n});\n\nexport default Theme;\n", "/**\n * @returns {boolean}\n */\nfunction isDocumentHidden(target) {\n\tif (target.document.hidden !== void 0) {\n\t\treturn target.document.hidden;\n\t}\n\t\n\tif (target.document.webkitHidden !== void 0) {\n\t\treturn target.document.webkitHidden;\n\t}\n\t\n\treturn true;\n}\n\n/**\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @returns {void}\n */\nfunction openURLWithIFrame(target, url) {\n\tvar iframe = document.createElement(\"IFRAME\"),\n\t\tid;\n\t\n\tfunction onload() {\n\t\tiframe.removeEventListener(\"load\", onload);\n\t\tclearTimeout(id);\n\t\t\n\t\ttarget.document.body.removeChild(iframe);\n\t}\n\t\n\tiframe.src = url;\n\tiframe.style.display = \"none\";\n\t\n\ttarget.document.body.appendChild(iframe);\n\t\n\tiframe.addEventListener(\"load\", onload);\n\t\n\tid = setTimeout(onload, 2000);\n}\n\n/**\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {void}\n */\nfunction openURLWithHref(target, url, index) {\n\tif (index === 0) {\n\t\tlocation.href = url;\n\t} else {\n\t\tvar a = /** @type HTMLAnchorElement */ target.document.createElement(\"A\"),\n\t\t\tfake;\n\t\t\n\t\ta.href = url;\n\t\t\n\t\ttarget.document.body.appendChild(a);\n\t\t\n\t\ttry {\n\t\t\tfake = new target.MouseEvent(\"click\", {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tview: target\n\t\t\t});\n\t\t} catch (_) {\n\t\t\t// ES5 or Browsers in the ES5~ES6 transition period\n\t\t\tfake = target.document.createEvent(\"MouseEvents\");\n\t\t\t\n\t\t\tfake.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\t\t}\n\t\t\n\t\ta.dispatchEvent(fake);\n\t\t\n\t\ttarget.document.body.removeChild(a);\n\t}\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param timeout {number}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLAndroidOrWindowsOrMacOS(os, target, url, timeout, index) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar id;\n\t\t\n\t\tfunction onblur() {\n\t\t\tclearTimeout(id);\n\t\t\t\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t\ttarget.addEventListener(\"focus\", onfocus);\n\t\t}\n\t\t\n\t\tfunction onfocus() {\n\t\t\ttarget.removeEventListener(\"focus\", onfocus);\n\t\t\t\n\t\t\tresolve();\n\t\t}\n\t\t\n\t\tid = setTimeout(function () {\n\t\t\treject();\n\t\t\t\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t}, timeout);\n\t\t\n\t\ttarget.addEventListener(\"blur\", onblur);\n\t\t\n\t\topenURLWithHref(target, url, index);\n\t});\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLIOS(os, target, url, index) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar id,\n\t\t\tgoe8 = parseInt(os.version) >= 8;\n\t\t\n\t\tfunction onblur() {\n\t\t\tclearTimeout(id);\n\t\t\t\n\t\t\ttarget.addEventListener(\"focus\", onfocus);\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t}\n\t\t\n\t\tfunction onfocus() {\n\t\t\tid = setTimeout(function () {\n\t\t\t\tif (!isDocumentHidden(target)) {\n\t\t\t\t\treject();\n\t\t\t\t} else {\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (goe8) {\n\t\t\t\t\ttarget.document.removeEventListener(\"visibilitychange\", onvisibilitychange);\n\t\t\t\t} else {\n\t\t\t\t\ttarget.document.removeEventListener(\"pagehide\", onvisibilitychange);\n\t\t\t\t}\n\t\t\t}, 2000);\n\t\t\t\n\t\t\ttarget.removeEventListener(\"focus\", onfocus);\n\t\t}\n\t\t\n\t\tfunction onvisibilitychange() {\n\t\t\tclearTimeout(id);\n\t\t\t\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t\ttarget.removeEventListener(\"focus\", onfocus);\n\t\t\t\n\t\t\tif (goe8) {\n\t\t\t\ttarget.document.removeEventListener(\"visibilitychange\", onvisibilitychange);\n\t\t\t} else {\n\t\t\t\ttarget.document.removeEventListener(\"pagehide\", onvisibilitychange);\n\t\t\t}\n\t\t\t\n\t\t\tresolve();\n\t\t}\n\t\t\n\t\ttarget.addEventListener(\"blur\", onblur);\n\t\t\n\t\tif (goe8) {\n\t\t\ttarget.document.addEventListener(\"visibilitychange\", onvisibilitychange);\n\t\t} else {\n\t\t\ttarget.document.addEventListener(\"pagehide\", onvisibilitychange);\n\t\t}\n\t\t\n\t\topenURLWithHref(target, url, index);\n\t});\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLAndroid(os, target, url, index) {\n\treturn openURLAndroidOrWindowsOrMacOS(os, target, url, 1000, index);\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLWindowsOrMacOS(os, target, url, index) {\n\treturn openURLAndroidOrWindowsOrMacOS(os, target, url, 750, index);\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nexport default function openURL(os, target, url, index) {\n\tif (url) {\n\t\tswitch (os.name) {\n\t\t\tcase \"Android\":\n\t\t\t\treturn openURLAndroid(os, target, url, index);\n\t\t\tcase \"iOS\":\n\t\t\t\treturn openURLIOS(os, target, url, index);\n\t\t\tcase \"Windows\":\n\t\t\tcase \"MacOS\":\n\t\t\t\treturn openURLWindowsOrMacOS(os, target, url, index);\n\t\t}\n\t}\n\t\n\treturn Promise.reject();\n}\n", "export default function createCustomError(name) {\n\tfunction CustomError(message) {\n\t\tif (!(this instanceof CustomError)) {\n\t\t\treturn new CustomError(message);\n\t\t}\n\t\t\n\t\tthis.name = name;\n\t\tthis.message = message;\n\t\t\n\t\tif (Error.captureStackTrace) {\n\t\t\tError.captureStackTrace(this, CustomError);\n\t\t} else {\n\t\t\tthis.stack = new Error().stack;\n\t\t}\n\t}\n\t\n\tCustomError.prototype = Object.create(Error.prototype);\n\tCustomError.prototype.constructor = CustomError;\n\t\n\treturn CustomError;\n};\n", "import createCustomError from \"./createCustomError.js\";\n\nexport default createCustomError(\"InitializationError\");\n", "import createCustomError from \"./createCustomError.js\";\n\nexport default createCustomError(\"URLOpenError\");\n", "import OS from \"./os\";\nimport openURL from \"./utils/openURL\";\nimport freeze from \"./utils/freeze\";\nimport InitializationError from \"./utils/initializationError\";\nimport URLOpenError from \"./utils/urlOpenError\";\n\n/**\n * @param bundle {string}\n * @returns {number | undefined}\n */\nfunction getTrackId(bundle) {\n\ttry {\n\t\tvar xhr = new XMLHttpRequest();\n\t\t\n\t\txhr.open(\"GET\", \"http://itunes.apple.com/lookup?bundleId=\" + bundle, false);\n\t\txhr.send();\n\t\t\n\t\tif (xhr.status === 200) {\n\t\t\tvar response = JSON.parse(xhr.response);\n\t\t\t\n\t\t\tif (response.results.length > 0) {\n\t\t\t\treturn response.results[0].trackId;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn void 0;\n\t} catch (_) {\n\t\treturn void 0;\n\t}\n}\n\n/**\n * @param input {string}\n * @returns {string}\n */\nfunction addDelimiter(input) {\n\tif (/\\w+:\\/\\/.*/.test(input)) return input;\n\t\n\treturn input + \"://\";\n}\n\n/**\n * @param input {string}\n * @returns {string}\n */\nfunction clearDelimiter(input) {\n\treturn input.replace(/:\\/\\/.*$/, \"\");\n}\n\n/**\n * @param {NativeAppArgument} data\n * @type {NativeApp}\n * @constructor\n */\nvar App = function (data) {\n\tif (data === void 0) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.App': Illegal constructor.\");\n\t}\n\t\n\tthis.run = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(new InitializationError(\"Initialization error.\"));\n\t\t});\n\t};\n\t\n\tvar scheme,\n\t\tid,\n\t\tfallback,\n\t\tpackageName,\n\t\tready = Promise.resolve(),\n\t\turls = [],\n\t\tisOpenWebStore;\n\t\n\tswitch (OS.name) {\n\t\tcase \"Android\":\n\t\t\tif (data.android === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvar matched,\n\t\t\t\tintent,\n\t\t\t\tchromiumVersion,\n\t\t\t\tforceIntent;\n\t\t\t\n\t\t\tscheme = data.android.scheme;\n\t\t\tid = data.android.package;\n\t\t\tfallback = data.android.fallback;\n\t\t\tintent = data.android.intent;\n\t\t\tisOpenWebStore = data.android.isOpenWebStore;\n\t\t\tforceIntent = data.android.forceIntent;\n\t\t\t\n\t\t\tif (intent !== void 0 && scheme === void 0) {\n\t\t\t\tmatched = intent.match(/scheme=([^;]*)/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tscheme = matched[1] + \"://\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tmatched = intent.match(/intent:\\/\\/([^;]*)#Intent;/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tscheme = scheme + matched[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (intent !== void 0 && id === void 0) {\n\t\t\t\tmatched = intent.match(/package=([^;]*)/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tid = matched[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (intent !== void 0 && fallback === void 0) {\n\t\t\t\tmatched = intent.match(/S\\.browser_fallback_url=([^;]*)/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tfallback = matched[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (scheme === void 0 && id === void 0 && fallback === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (intent === void 0) {\n\t\t\t\tvar split = scheme.split(\"://\"),\n\t\t\t\t\tpre = split[0],\n\t\t\t\t\tsuf = split[1];\n\t\t\t\t\n\t\t\t\tintent = \"intent://\";\n\t\t\t\t\n\t\t\t\tif (suf !== void 0) {\n\t\t\t\t\tintent = intent + suf;\n\t\t\t\t} else {\n\t\t\t\t\tintent = intent + \"open\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tintent = intent + \"#Intent;\"\n\t\t\t\t\t+ \"scheme=\" + pre + \";\"\n\t\t\t\t\t+ \"action=android.intent.action.VIEW;\"\n\t\t\t\t\t+ \"category=android.intent.category.BROWSABLE;\";\n\t\t\t\t\n\t\t\t\tif (id !== void 0) {\n\t\t\t\t\tintent = intent + \"package=\" + id + \";\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (fallback !== void 0) {\n\t\t\t\t\tintent = intent + \"S.browser_fallback_url=\" + fallback + \";\";\n\t\t\t\t} else {\n\t\t\t\t\tintent = intent + \"S.browser_fallback_url=market://details?id=\" + id + \";\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tintent = intent + \"end\";\n\t\t\t}\n\t\t\t\n\t\t\tif (window.chrome !== void 0) {\n\t\t\t\tmatched = navigator.userAgent.match(/chrom(?:e|ium)\\/([\\w.]+)/i);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tchromiumVersion = parseInt(matched[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tdocument.querySelector(\"[NATIVE-OS-DEBUG]\").textContent += JSON.stringify({scheme, id, fallback, intent, isOpenWebStore, forceIntent, chromiumVersion}, null, 4);\n\t\t\t\n\t\t\tif (chromiumVersion >= 25 && intent !== void 0) {\n\t\t\t\tif (chromiumVersion <= 42) {\n\t\t\t\t\tready = new Promise(function (resolve) {\n\t\t\t\t\t\tvar iframe = top.document.createElement(\"IFRAME\"),\n\t\t\t\t\t\t\turl = \"intent://open#Intent;scheme=;end;\",\n\t\t\t\t\t\t\tresolved = false;\n\t\t\t\t\t\t\n\t\t\t\t\t\tfunction cleanup(supported) {\n\t\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\t\tresolve(supported);\n\t\t\t\t\t\t\t\tiframe.removeEventListener(\"load\", onload);\n\t\t\t\t\t\t\t\ttop.document.body.removeChild(iframe);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tfunction onload() {\n\t\t\t\t\t\t\tcleanup(iframe.src !== url);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tiframe.addEventListener(\"load\", onload);\n\t\t\t\t\t\tiframe.src = url;\n\t\t\t\t\t\t\n\t\t\t\t\t\ttop.document.body.appendChild(iframe);\n\t\t\t\t\t\t\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tcleanup(false);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (supported) {\n\t\t\t\t\t\t\tif (supported) {\n\t\t\t\t\t\t\t\turls.push([intent, App.State.Intent]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\turls.push([intent.replace(/package=.*?;/, \"\").replace(/S\\.browser_fallback_url=.*?;/, \"\"), App.State.Intent]);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (fallback !== void 0) {\n\t\t\t\t\t\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t\t\t\t\t\t} else if (id !== void 0) {\n\t\t\t\t\t\t\t\t\turls.push([\"market://details?id=\" + id, App.State.Store]);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\t\t\t\t\t\turls.push([\"https://play.google.com/store/apps/details?id=\" + id, App.State.Store]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\turls.push([intent, App.State.Intent]);\n\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (scheme !== void 0) {\n\t\t\t\turls.push([addDelimiter(scheme), App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\turls.push([\"market://details?id=\" + id, App.State.Store]);\n\t\t\t\t\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://play.google.com/store/apps/details?id=\" + id, App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tcase \"Windows\":\n\t\t\tif (data.windows === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tscheme = data.windows.scheme;\n\t\t\tid = data.windows.productId;\n\t\t\tisOpenWebStore = data.windows.isOpenWebStore;\n\t\t\tfallback = data.windows.fallback;\n\t\t\t\n\t\t\tif (scheme !== void 0) {\n\t\t\t\turls.push([addDelimiter(scheme), App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\turls.push([\"ms-windows-store://pdp/?ProductId=\" + id, App.State.Store]);\n\t\t\t\t\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://apps.microsoft.com/detail/\" + id, App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tcase \"iOS\":\n\t\t\tif (data.ios === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvar universal = data.ios.universal;\n\t\t\t\n\t\t\tscheme = data.ios.scheme;\n\t\t\tpackageName = data.ios.package;\n\t\t\tid = data.ios.trackId;\n\t\t\tfallback = data.ios.fallback;\n\t\t\t\n\t\t\tif (universal !== void 0 && parseInt(OS.version) >= 9) {\n\t\t\t\turls.push([universal, App.State.Universal]);\n\t\t\t} else if (scheme !== void 0) {\n\t\t\t\turls.push([scheme, App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (id === void 0 && packageName !== void 0) {\n\t\t\t\tid = getTrackId(packageName);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://itunes.apple.com/kr/app/id\" + id + \"?mt=8\", App.State.Store]);\n\t\t\t\t} else {\n\t\t\t\t\turls.push([\"itms-apps://itunes.apple.com/app/id\" + id + \"?mt=8\", App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tcase \"MacOS\":\n\t\t\tif (data.mac === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tscheme = data.mac.scheme;\n\t\t\tpackageName = data.mac.package;\n\t\t\tid = data.mac.trackId;\n\t\t\tfallback = data.mac.fallback;\n\t\t\tisOpenWebStore = data.mac.isOpenWebStore;\n\t\t\t\n\t\t\tif (scheme !== void 0) {\n\t\t\t\turls.push([addDelimiter(scheme), App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (id === void 0 && packageName !== void 0) {\n\t\t\t\tid = getTrackId(packageName);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\turls.push([\"macappstore://itunes.apple.com/app/id\" + id + \"?mt=12\", App.State.Store]);\n\t\t\t\t\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://apps.apple.com/us/app/id\" + id + \"?mt=12\", App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn;\n\t}\n\t\n\t/**\n\t * @param target {WindowProxy}\n\t * @returns {Promise<EnumValues<NativeAppState>>}\n\t */\n\tthis.run = function (target = top) {\n\t\tdocument.querySelector(\"[NATIVE-OS-DEBUG]\").textContent += JSON.stringify(urls, null, 4);\n\t\t\n\t\treturn ready.then(function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tfunction tryOpenURL(index = 0) {\n\t\t\t\t\tif (index >= urls.length) {\n\t\t\t\t\t\treturn reject(new URLOpenError(\"No url can be opened.\"));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar url = urls[index][0],\n\t\t\t\t\t\tstate = urls[index][1];\n\t\t\t\t\t\n\t\t\t\t\treturn openURL(OS, target, url, index)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tresolve(state);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\ttryOpenURL(++index);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn tryOpenURL();\n\t\t\t});\n\t\t});\n\t};\n};\n\n/**\n * @enum {number}\n * @type {NativeAppState}\n */\nApp.State = freeze({\n\tScheme: 0,\n\tUniversal: 1,\n\tIntent: 2,\n\tFallback: 3,\n\tStore: 4,\n});\n\nexport default App;\n", "import createCustomError from \"./createCustomError.js\";\n\nexport default createCustomError(\"UserNotSelectedError\");\n", "import OS from \"./os.js\";\nimport freeze from \"./utils/freeze.js\";\nimport matchMedia from \"./utils/matchMedia.js\";\nimport UserNotSelectedError from \"./utils/userNotSelectedError.js\";\nimport InitializationError from \"./utils/initializationError.js\";\n\nvar run = false;\n\n/**\n * @param type\n * @param stream\n * @param cleanups\n * @returns {Promise<Blob>}\n */\nfunction createCameraElement(type, stream, cleanups) {\n\tvar setting = stream.getVideoTracks()[0].getSettings(),\n\t\tbeforeOverflow = top.document.documentElement.style.overflow,\n\t\twidth = setting.width || 640,\n\t\theight = setting.height || 480,\n\t\tsample = createSampleElement(type),\n\t\tcontainer = createContainerElement(),\n\t\tvideo = createVideoElement(),\n\t\trecordButton = createRecordButtonElement(),\n\t\trecordButtonInner = createRecordButtonInnerElement(type),\n\t\tstopwatch = createStopwatchElement(),\n\t\tpaddingLeft = createPaddingElement(),\n\t\tpaddingRight = createPaddingElement(),\n\t\tcheck = createCheckButton(),\n\t\txMark = createXMarkButton(),\n\t\tpadding = top.innerHeight * 0.4 / height * width / 2,\n\t\trecording = false,\n\t\trecorder,\n\t\tchunks = [],\n\t\tt = 0,\n\t\tid;\n\t\n\trecordButton.appendChild(recordButtonInner);\n\tif (type === Camera.Type.Video) {\n\t\tcontainer.appendChild(stopwatch);\n\t}\n\tcontainer.appendChild(video);\n\tcontainer.appendChild(sample);\n\tcontainer.appendChild(recordButton);\n\tcontainer.appendChild(paddingLeft);\n\tcontainer.appendChild(paddingRight);\n\tcontainer.appendChild(check);\n\tcontainer.appendChild(xMark);\n\t\n\tvideo.style.left = sample.style.left = \"calc(50% - \" + padding + \"px)\";\n\tpaddingLeft.style.left = paddingRight.style.right = \"0\";\n\tcheck.style.left = xMark.style.right = \"calc(50% - \" + (padding - 50) + \"px)\";\n\tpaddingLeft.style.width = paddingRight.style.width = \"calc(50% - \" + padding + \"px)\";\n\t\n\tfunction clearVideoSourceObject() {\n\t}\n\t\n\tfunction clearStopwatchInterval() {\n\t\tif (id !== void 0) {\n\t\t\tclearInterval(id);\n\t\t\tid = void 0;\n\t\t}\n\t}\n\t\n\tfunction showSample(blob, resolve, reject) {\n\t\tblobToDataURL(blob)\n\t\t\t.then(function (dataURL) {\n\t\t\t\tsample.src = dataURL;\n\t\t\t\t\n\t\t\t\tvideo.style.display = recordButton.style.display = \"none\";\n\t\t\t\tsample.style.display = check.style.display = xMark.style.display = \"block\";\n\t\t\t\t\n\t\t\t\tcheck.onclick = function () {\n\t\t\t\t\tresolve({blob: blob, dataURL: dataURL});\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\txMark.onclick = function () {\n\t\t\t\t\tif (typeof window.URL === \"function\") {\n\t\t\t\t\t\tURL.revokeObjectURL(dataURL);\n\t\t\t\t\t} else if (typeof window.webkitURL === \"function\") {\n\t\t\t\t\t\twebkitURL.revokeObjectURL(dataURL);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tt = 0;\n\t\t\t\t\tvideo.style.display = recordButton.style.display = \"block\";\n\t\t\t\t\tsample.style.display = check.style.display = xMark.style.display = \"none\";\n\t\t\t\t};\n\t\t\t})\n\t\t\t.catch(function (e) {\n\t\t\t\treject(e);\n\t\t\t});\n\t}\n\t\n\tif (video.srcObject !== void 0) {\n\t\tvideo.srcObject = stream;\n\t\t\n\t\tclearVideoSourceObject = function () {\n\t\t\tvideo.srcObject = null;\n\t\t};\n\t} else if (video.mozSrcObject !== void 0) {\n\t\tvideo.mozSrcObject = stream;\n\t\t\n\t\tclearVideoSourceObject = function () {\n\t\t\tvideo.mozSrcObject = null;\n\t\t};\n\t}\n\t\n\tvideo.onloadedmetadata = function () {\n\t\tvideo.muted = true;\n\t\tvoid video.play();\n\t};\n\t\n\ttop.document.documentElement.style.overflow = \"hidden\";\n\ttop.document.body.appendChild(container);\n\t\n\tcleanups.push(\n\t\tfunction () {\n\t\t\ttop.document.documentElement.style.overflow = beforeOverflow;\n\t\t\ttop.document.body.removeChild(container);\n\t\t\t\n\t\t\tif (recorder !== void 0 && recorder.state !== \"inactive\") {\n\t\t\t\trecorder.stop();\n\t\t\t\trecorder = void 0;\n\t\t\t}\n\t\t\t\n\t\t\tclearVideoSourceObject();\n\t\t\tclearStopwatchInterval();\n\t\t}\n\t);\n\t\n\treturn new Promise(function (resolve, reject) {\n\t\ttop.document.addEventListener(\"keyup\", function onkeyup(e) {\n\t\t\tcleanups.push(\n\t\t\t\tfunction () {\n\t\t\t\t\ttop.document.removeEventListener(\"keyup\", onkeyup);\n\t\t\t\t}\n\t\t\t);\n\t\t\t\n\t\t\tif (e.keyCode === 27 || e.code === \"Escape\") {\n\t\t\t\treject(new UserNotSelectedError(\"User did not select.\"));\n\t\t\t}\n\t\t});\n\t\t\n\t\trecordButton.onclick = function () {\n\t\t\ttry {\n\t\t\t\tif (type === Camera.Type.Image) {\n\t\t\t\t\tplayCaptureSound();\n\t\t\t\t\t\n\t\t\t\t\tvar canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\t\n\t\t\t\t\tvar ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\n\t\t\t\t\tctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\n\t\t\t\t\tcanvasToBlob(canvas)\n\t\t\t\t\t\t.then(function (blob) {\n\t\t\t\t\t\t\tshowSample(blob, resolve, reject);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif (!recording) {\n\t\t\t\t\t\tplayRecordStartSound();\n\t\t\t\t\t\t\n\t\t\t\t\t\tid = setInterval(function () {\n\t\t\t\t\t\t\t++t;\n\t\t\t\t\t\t\tstopwatch.innerText = padLeft(t / 6000) + \":\" + padLeft((t / 100) % 60) + \":\" + padLeft(t % 100);\n\t\t\t\t\t\t}, 10);\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder = new MediaRecorder(video.srcObject || video.mozSrcObject);\n\t\t\t\t\t\tchunks = [];\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.ondataavailable = function (event) {\n\t\t\t\t\t\t\tif (event.data.size > 0) {\n\t\t\t\t\t\t\t\tchunks.push(event.data);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.onstop = function () {\n\t\t\t\t\t\t\tclearStopwatchInterval();\n\t\t\t\t\t\t\tshowSample(new Blob(chunks, {type: \"video/webm\"}), resolve, reject);\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.start();\n\t\t\t\t\t\t\n\t\t\t\t\t\trecordButtonInner.style.borderRadius = recordButtonInner.style.WebkitBorderRadius = recordButtonInner.style.MozBorderRadius = \"10%\";\n\t\t\t\t\t\trecordButtonInner.style.top = \"12px\";\n\t\t\t\t\t\trecordButtonInner.style.left = \"12px\";\n\t\t\t\t\t\trecordButtonInner.style.width = \"27px\";\n\t\t\t\t\t\trecordButtonInner.style.height = \"27px\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tplayRecordStopSound();\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.stop();\n\t\t\t\t\t\t\n\t\t\t\t\t\trecordButtonInner.style.borderRadius = recordButtonInner.style.WebkitBorderRadius = recordButtonInner.style.MozBorderRadius = \"50%\";\n\t\t\t\t\t\trecordButtonInner.style.left = \"3px\";\n\t\t\t\t\t\trecordButtonInner.style.top = \"3px\";\n\t\t\t\t\t\trecordButtonInner.style.width = \"44px\";\n\t\t\t\t\t\trecordButtonInner.style.height = \"44px\";\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\trecording = !recording;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t};\n\t});\n}\n\nfunction padLeft(number) {\n\tnumber = parseInt(number);\n\tif (number <= 9) return \"0\" + number;\n\treturn number;\n}\n\nfunction blobToDataURL(blob) {\n\treturn new Promise(function (resolve, reject) {\n\t\ttry {\n\t\t\tvar reader = new FileReader();\n\t\t\t\n\t\t\treader.onloadend = function () {\n\t\t\t\tresolve(reader.result);\n\t\t\t};\n\t\t\t\n\t\t\treader.onerror = function (e) {\n\t\t\t\treject(e);\n\t\t\t};\n\t\t\t\n\t\t\treader.readAsDataURL(blob);\n\t\t} catch (e) {\n\t\t\treject(e);\n\t\t}\n\t});\n}\n\nfunction canvasToBlob(canvas) {\n\treturn new Promise(function (resolve, reject) {\n\t\tif (typeof canvas.toBlob === \"function\") {\n\t\t\tcanvas.toBlob(\n\t\t\t\tfunction (blob) {\n\t\t\t\t\tresolve(blob);\n\t\t\t\t}\n\t\t\t\t, \"image/png\"\n\t\t\t);\n\t\t} else if (typeof canvas.msToBlob === \"function\") {\n\t\t\tresolve(canvas.msToBlob());\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tvar dataURL = canvas.toDataURL(\"image/png\"),\n\t\t\t\t\tbyteString = atob(dataURL.split(\",\")[1]),\n\t\t\t\t\tab = new ArrayBuffer(byteString.length),\n\t\t\t\t\tia = new Uint8Array(ab);\n\t\t\t\t\n\t\t\t\tfor (var i = 0; i < byteString.length; i++) {\n\t\t\t\t\tia[i] = byteString.charCodeAt(i);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tresolve(\n\t\t\t\t\tnew Blob(\n\t\t\t\t\t\t[ab],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: dataURL\n\t\t\t\t\t\t\t\t.split(\",\")[0]\n\t\t\t\t\t\t\t\t.split(\":\")[1]\n\t\t\t\t\t\t\t\t.split(\";\")[0]\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction createContainerElement() {\n\tvar div = document.createElement(\"DIV\"),\n\t\tbackground = createBackgroundElement();\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"0\";\n\tdiv.style.top = top.scrollY + \"px\";\n\tdiv.style.width = \"100%\";\n\tdiv.style.height = \"100%\";\n\tdiv.style.zIndex = \"\" + 0x7fffffff;\n\t\n\tdiv.appendChild(background);\n\t\n\treturn div;\n}\n\nfunction createPaddingElement() {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.top = \"0\";\n\tdiv.style.height = \"100%\";\n\tdiv.style.backgroundColor = \"#000\";\n\t\n\treturn div;\n}\n\n/**\n *\n * @returns {HTMLVideoElement & {mozSrcObject?: MediaProvider}}\n */\nfunction createVideoElement() {\n\tvar video = document.createElement(\"VIDEO\");\n\t\n\tvideo.style.position = \"absolute\";\n\tvideo.style.top = \"30%\";\n\tvideo.style.height = \"40%\";\n\t\n\tvideo.controls = false;\n\t\n\treturn video;\n}\n\nfunction createBackgroundElement() {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"0\";\n\tdiv.style.top = \"0\";\n\tdiv.style.width = \"100%\";\n\tdiv.style.height = \"100%\";\n\tdiv.style.backgroundColor = \"#111\";\n\t\n\treturn div;\n}\n\nfunction createStopwatchElement() {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"calc(50% - 50px)\";\n\tdiv.style.top = \"calc(20% - 12px)\";\n\tdiv.style.width = \"100px\";\n\tdiv.style.height = \"24px\";\n\tdiv.style.color = \"#FFF\";\n\tdiv.style.fontWeight = \"400\";\n\tdiv.style.textAlign = \"center\";\n\tdiv.style.fontVariantNumeric = \"tabular-nums\";\n\tdiv.style.fontFeatureSettings = div.style.WebkitFontFeatureSettings = div.style.MozFontFeatureSettings = \"\\\"tnum\\\"\";\n\tdiv.innerText = \"00:00:00\";\n\t\n\treturn div;\n}\n\nfunction createRecordButtonElement() {\n\tvar button = document.createElement(\"BUTTON\");\n\t\n\tbutton.style.position = \"relative\";\n\tbutton.style.left = \"calc(50% - 30px)\";\n\tbutton.style.top = \"calc(80% - 30px)\";\n\tbutton.style.width = \"60px\";\n\tbutton.style.height = \"60px\";\n\tbutton.style.backgroundColor = \"#FFFFFF00\";\n\tbutton.style.borderRadius = button.style.WebkitBorderRadius = button.style.MozBorderRadius = \"50%\";\n\tbutton.style.cursor = \"pointer\";\n\tbutton.style.border = \"5px solid #FFF\";\n\t\n\treturn button;\n}\n\nfunction createRecordButtonInnerElement(type) {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"3px\";\n\tdiv.style.top = \"3px\";\n\tdiv.style.width = \"44px\";\n\tdiv.style.height = \"44px\";\n\tdiv.style.borderRadius = \"50%\";\n\t\n\tif (type === Camera.Type.Image) {\n\t\tdiv.style.backgroundColor = \"#FFF\";\n\t} else {\n\t\tdiv.style.backgroundColor = \"#F00\";\n\t}\n\t\n\tif (matchMedia(\"(prefers-reduced-motion: no-preference)\").matches) {\n\t\tdiv.style.transitionProperty = div.style.WebkitTransitionProperty = div.style.MozTransitionProperty = \"border-radius, width, height, top, left\";\n\t\tdiv.style.transitionDuration = div.style.WebkitTransitionDuration = div.style.MozTransitionDuration = \"150ms\";\n\t\tdiv.style.transitionTimingFunction = div.style.WebkitTransitionTimingFunction = div.style.MozTransitionTimingFunction = \"ease\";\n\t}\n\t\n\treturn div;\n}\n\nfunction createSampleElement(type) {\n\tvar media;\n\t\n\tif (type === Camera.Type.Video) {\n\t\tmedia = document.createElement(\"VIDEO\");\n\t\t\n\t\tmedia.controls = true;\n\t} else {\n\t\tmedia = document.createElement(\"IMG\");\n\t}\n\t\n\tmedia.style.position = \"absolute\";\n\tmedia.style.top = \"30%\";\n\tmedia.style.height = \"40%\";\n\tmedia.style.display = \"none\";\n\t\n\treturn media;\n}\n\nfunction createCheckButton() {\n\tvar button = document.createElement(\"BUTTON\"),\n\t\tdiv = document.createElement(\"DIV\");\n\t\n\tbutton.style.display = \"none\";\n\tbutton.style.position = \"absolute\";\n\tbutton.style.top = \"calc(80% - 15px)\";\n\tbutton.style.width = \"30px\";\n\tbutton.style.height = \"30px\";\n\tdiv.style.position = \"relative\";\n\tdiv.style.top = \"-2px\";\n\tdiv.style.display = \"inline-block\";\n\tdiv.style.transform = div.style.webkitTransform = div.style.msTransform = div.style.OTransform = div.style.MozTransform = \"rotate(45deg)\";\n\tdiv.style.width = \"16px\";\n\tdiv.style.height = \"25px\";\n\tdiv.style.borderBottom = div.style.borderRight = \"5px solid #FFF\";\n\t\n\tbutton.appendChild(div);\n\t\n\treturn button;\n}\n\nfunction createXMarkButton() {\n\tvar button = document.createElement(\"BUTTON\"),\n\t\tdiv1 = document.createElement(\"DIV\"),\n\t\tdiv2 = document.createElement(\"DIV\");\n\t\n\tbutton.style.display = \"none\";\n\tbutton.style.position = \"absolute\";\n\tbutton.style.top = \"calc(80% - 15px)\";\n\tbutton.style.width = \"30px\";\n\tbutton.style.height = \"30px\";\n\tdiv1.style.position = div2.style.position = \"relative\";\n\tdiv1.style.top = \"1px\";\n\tdiv1.style.left = \"3px\";\n\tdiv1.style.display = div2.style.display = \"inline-block\";\n\tdiv1.style.transform = div1.style.webkitTransform = div1.style.msTransform = div1.style.OTransform = div1.style.MozTransform = \"rotate(45deg)\";\n\tdiv1.style.height = div2.style.height = \"28px\";\n\tdiv1.style.borderRight = div2.style.borderRight = \"5px solid #FFF\";\n\tdiv2.style.top = \"1px\";\n\tdiv2.style.left = \"-2px\";\n\tdiv2.style.transform = div2.style.webkitTransform = div2.style.msTransform = div2.style.OTransform = div2.style.MozTransform = \"rotate(315deg)\";\n\t\n\tbutton.appendChild(div1);\n\tbutton.appendChild(div2);\n\t\n\treturn button;\n}\n\nfunction playSound(base64) {\n\ttypeof window.Audio === \"function\" && void new Audio(\"data:audio/mpeg;base64,\" + base64).play();\n}\n\nfunction playRecordStartSound() {\n\tplaySound(\"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\");\n}\n\nfunction playRecordStopSound() {\n\tplaySound(\"SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYxLjQuMTAwAAAAAAAAAAAAAAD/+1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYaW5nAAAADwAAAAsAAAfUACcnJycnJycnJ2pqampqampqaoGBgYGBgYGBgY+Pj4+Pj4+Pj5+fn5+fn5+fn7q6urq6urq6usrKysrKysrKytjY2NjY2NjY2OXl5eXl5eXl5fLy8vLy8vLy8v///////////wAAAABMYXZjNjEuOS4AAAAAAAAAAAAAAAAkAkAAAAAAAAAH1D6K2fAAAAAAAAAAAAAAAAAAAAAA//sQRAAP8AAAf4AAAAgAAA/wAAABAAAB/hQAACAAAD/CgAAEAoYAgFAgD8SmUNBi+Bni3gcogFh/gKg//kTHAe9IIXNUBOa1EzAM7gAAAAALufiYXk+AyDmkRp6aRPjIjB4iKzqg1Ur/+6BkIgAA9xFSplIAAAAAD/DAAAAGwDVh2beAAGQFbXsMIAEkO0wQZvwJqhMTzakehnLUU3doYIh1dAAAAAAAAAAPfBWO8bvd9htZY7SIcxAEmJw4AAA5ll8zGYrDONC1kCMcqe+lMgI0dyL7vrAHdgRYAAAAD/+20gLTGiS0QxyiqLy0Z0LAC74LsgKbIX1ALeTA6VP/06mMuc0PyHeAXtBIAAdh4U4NI3VQVYAWAAg4AAAXmFLis16DJT7hGz+j6wbKDQBaIAAJGYMOGALQfwN+AGm+vUFTznekQrX//92X1LRLCp9isChAIaZ0KpAAeWBHAA+8AAAqYAQxNzgwDfBx/6JwPalMWhtAAAQDgAAAAAeeE6s7oCPUvfqNfWs2fbpPos3qr23KCY3AjgGQB0FwMhgiAmnPqChEacfNUGwAFgBiHf+olgITPPADB2gOAwGnAAAOvYUAB31lAsgAAAAAAAxZG0loP66gkfYlBPChKaYy8hOnSKKgDcpoCJWGB6CoSpK96EDJ5pnMqv2M/kEP29eD5oyGTzRkACvBgUE1TAAAAAAAAFfH2HSRIIUS6wDINyk1zCKgADOQAEQP+AAB+s8REuJjPmhNAPFA0ShtozIoBDqhJpY91UiUWOUh3DQysACJYDRQAAAP/1UVKu2RQVHCGFgC9QBsGDx/8AAB+VDFgErkLBz/+0Bk3gExBAhXf2AACBXg6s7ngAFDWBtXoKcEYC0C7XgDAFXxIdfAgmBUK9foayo6UdriDRTZrHAABSqEAAAAAN1JxK+PMBawA2QC4G4H7lMaB8tLxF0IFrMLAiozf/neicE5UhPAAA1IwEocrwwZ1QBtgEANwAAB+ylmLIqWJYBHMk0zUrur9sE2zSOAIAGQGhTqxY26AAALAG7ww8cUVcEKn/wu2BG90p/BowNjCIB/IyptAP/7EGT4gTDQBtV4LMEYCKCLFAAJA8NcHVWgJwRoHYNoYAAYDAAJMHAAOAAAGG9BJCBuUAUf/qAAAogGwS2k5rAADMUAfgSu4GA+3oc//NrCRFqohYoH6w0XFUxBTUUzLjEwMFVVVVVV//sgZPgBMN0HVfgJaKgKgBruAAABBVQ1VfT3gCBYBar6jmAFVVVVVQAN+OABsAABEsQyYCYq/ptln/yNZi0rvK/S+gAAbAYC8CIHOA0Sf+Z/+nto8O7xwqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7UGTzgAIlEtVuayAAHgGbTsOkAEVcMVn9QwAgU4Tru5BgBaqqqqqqqqqqqqqqqqqqqqoAEoAACpoGCqBSdUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+yBk+AExJRfV6FkqmBABax4AKDMDzF9VoWRKaCUFqxAAiNxVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZPiDsOIXVWoAFCoJoVoFASxRgwwrVcAfCCAWACsQAAAGVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk+IGwnAtXeAoyKAkhWmQACCUChCtXoAEA4BkAadAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGT2AfDFCtVoAUmIAqAZ4AAAAQKcb1OgHGngAAA/wAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOMP8FMJUEABMhoAAA/wAAABAAAB/gAAACAAAD/AAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\");\n}\n\nfunction playCaptureSound() {\n\tplaySound(\"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\");\n}\n\n/**\n * @param {NativeCameraArgument} data\n * @type {NativeCamera}\n * @constructor\n */\nvar Camera = function (data) {\n\tif (data == null || data.type == null || !Camera.isSupported || [Camera.Type.Image, Camera.Type.Video].indexOf(data.type) === -1) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.Camera': Illegal constructor.\");\n\t}\n\t\n\tvar self = this;\n\t\n\tthis.run = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(new InitializationError(\"Initialization error.\"));\n\t\t});\n\t};\n\t\n\tthis.bind = function (input) {\n\t\tinput[\"onclick\"] = function (e) {\n\t\t\te.preventDefault();\n\t\t\tself.run();\n\t\t};\n\t};\n\t\n\tvar type = data.type;\n\t\n\tswitch (OS.name) {\n\t\tcase \"Android\":\n\t\tcase \"iOS\":\n\t\t\tvar input = document.createElement(\"INPUT\");\n\t\t\t\n\t\t\tinput.type = \"file\";\n\t\t\tinput.capture = \"environment\";\n\t\t\tinput.accept = data.type + \"/*\";\n\t\t\t\n\t\t\tthis.run = function () {\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tinput.onchange = function () {\n\t\t\t\t\t\tvar files = input.files;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (files.length > 0) {\n\t\t\t\t\t\t\tvar blob = files[0];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tblobToDataURL(blob)\n\t\t\t\t\t\t\t\t.then(function (dataURL) {\n\t\t\t\t\t\t\t\t\tresolve({blob: blob, dataURL: dataURL});\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.catch(function (error) {\n\t\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(new UserNotSelectedError(\"User did not select.\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tinput.click();\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\treturn;\n\t\tcase \"Windows\":\n\t\tcase \"MacOS\":\n\t\t\tvar getUserMedia;\n\t\t\t\n\t\t\tif (navigator.mediaDevices && typeof navigator.mediaDevices.getUserMedia === \"function\") {\n\t\t\t\tgetUserMedia = function (constraints) {\n\t\t\t\t\treturn navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar legacy = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\n\t\t\t\t\n\t\t\t\tif (typeof legacy === \"function\") {\n\t\t\t\t\tgetUserMedia = function (constraints) {\n\t\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\t\tlegacy.call(navigator, constraints, resolve, reject);\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.run = function () {\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tif (run) {\n\t\t\t\t\t\treturn reject(new Error(\"Native.Camera is already running.\"));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\trun = true;\n\t\t\t\t\t\n\t\t\t\t\tvar cleanups = [];\n\t\t\t\t\t\n\t\t\t\t\tfunction clean() {\n\t\t\t\t\t\trun = false;\n\t\t\t\t\t\t\n\t\t\t\t\t\tfor (var i = 0; i < cleanups.length; i++) {\n\t\t\t\t\t\t\tcleanups[i]();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tgetUserMedia({video: true, audio: type === Camera.Type.Video})\n\t\t\t\t\t\t\t.then(function (stream) {\n\t\t\t\t\t\t\t\tcleanups.push(\n\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar tracks = stream.getTracks();\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < tracks.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\ttracks[i].stop();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tcreateCameraElement(type, stream, cleanups)\n\t\t\t\t\t\t\t\t\t.then(function (blob) {\n\t\t\t\t\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t\t\t\t\tclean();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\t\tclean();\n\t\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tclean();\n\t\t\t\t\t\treject(e);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t}\n};\n\n/**\n * @enum {string}\n * @type {NativeCameraType}\n */\nCamera.Type = freeze({\n\tImage: \"image\",\n\tVideo: \"video\",\n});\n\nObject.defineProperty(Camera, \"isSupported\", {\n\t/**\n\t * @returns {boolean}\n\t */\n\tget() {\n\t\treturn (\n\t\t\t\tOS.name === \"Android\"\n\t\t\t\t|| OS.name === \"iOS\"\n\t\t\t)\n\t\t\t|| (\n\t\t\t\t(\n\t\t\t\t\t(\n\t\t\t\t\t\ttypeof navigator.getUserMedia === \"function\"\n\t\t\t\t\t\t|| typeof navigator.webkitGetUserMedia === \"function\"\n\t\t\t\t\t\t|| typeof navigator.mozGetUserMedia === \"function\"\n\t\t\t\t\t\t|| typeof navigator.msGetUserMedia === \"function\"\n\t\t\t\t\t)\n\t\t\t\t\t|| (\n\t\t\t\t\t\tnavigator.mediaDevices !== void 0\n\t\t\t\t\t\t&& typeof navigator.mediaDevices.getUserMedia === \"function\"\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t&& new Blob([\"\u00E4\"]).size === 2\n\t\t\t\t&& typeof window.MediaRecorder === \"function\"\n\t\t\t);\n\t},\n\tconfigurable: false,\n\tenumerable: true,\n});\n\nexport default Camera;\n", "import OS from \"./os.js\";\nimport openURL from \"./utils/openURL.js\";\nimport freeze from \"./utils/freeze.js\";\nimport URLOpenError from \"./utils/urlOpenError.js\";\n\n/**\n * @param value {any}\n * @returns {boolean}\n */\nfunction isArrayLike(value) {\n\tif (value == null) return false;\n\t\n\tvar length = value.length;\n\t\n\treturn typeof length === \"number\" && length >= 0 && !(length % 1);\n}\n\n/**\n * @param str {string}\n * @returns {string}\n */\nfunction encode(str) {\n\treturn encodeURIComponent(str)\n\t\t.replace(/%20/g, \"%20\")\n\t\t.replace(/[!'()*]/g, function (c) {\n\t\t\treturn \"%\" + c.charCodeAt(0).toString(16);\n\t\t});\n}\n\n/**\n * @param value {object | HTMLFormElement | FormData}\n * @returns {object | null}\n */\nfunction normalizeValue(value) {\n\tif (value == null) return null;\n\tif (value instanceof HTMLFormElement) return normalizeValue(new FormData(value));\n\tif (value instanceof FormData) {\n\t\tvar obj = {};\n\t\t\n\t\tvalue.forEach(function (v, k) {\n\t\t\tif (obj.hasOwnProperty(k)) {\n\t\t\t\tif (!Array.isArray(obj[k])) {\n\t\t\t\t\tobj[k] = [obj[k]];\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tobj[k].push(v);\n\t\t\t} else {\n\t\t\t\tobj[k] = v;\n\t\t\t}\n\t\t});\n\t\t\n\t\treturn obj;\n\t}\n\treturn value;\n}\n\n/**\n * @param value\n * @param prefix\n * @returns {string}\n */\nfunction stringify(value, prefix = \"\") {\n\tif (typeof value !== \"string\" && isArrayLike(value)) {\n\t\tvar str = \"\";\n\t\t\n\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\tstr += encode(value[i]);\n\t\t\t\n\t\t\tif (i !== value.length - 1) {\n\t\t\t\tstr += \",\";\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif (value == null) return \"\";\n\tif (value instanceof HTMLInputElement) return prefix + encode(value.value);\n\tif (value instanceof HTMLElement) return prefix + encode(value.innerText);\n\tif (value instanceof Node) return prefix + encode(value.textContent);\n\treturn prefix + encode(value);\n}\n\n/**\n * @param {NativeMessengerArgument} data\n * @type {NativeMessenger}\n * @constructor\n */\nvar Messenger = function (data) {\n\tif (data == null || data.type == null || [Messenger.Type.Telephone, Messenger.Type.SMS, Messenger.Type.Mail].indexOf(data.type) === -1) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.Messenger': Illegal constructor.\");\n\t}\n\t\n\tdata = normalizeValue(data);\n\t\n\tvar url = data.type\n\t\t+ \":\"\n\t\t+ stringify(data.to)\n\t\t+ \"?\"\n\t\t+ stringify(data.cc, \"cc=\")\n\t\t+ stringify(data.bcc, \"&bcc=\")\n\t\t+ stringify(data.subject, \"&subject=\")\n\t\t+ stringify(data.body, \"&body=\");\n\t\n\tthis.run = function (target = top) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\topenURL(OS, target, url)\n\t\t\t\t.then(function () {\n\t\t\t\t\tresolve();\n\t\t\t\t})\n\t\t\t\t.catch(function () {\n\t\t\t\t\treturn reject(new URLOpenError(\"No url can be opened.\"));\n\t\t\t\t});\n\t\t});\n\t}\n};\n\n/**\n * @enum {string}\n * @type {NativeMessengerType}\n */\nMessenger.Type = freeze({\n\tTelephone: \"tel\",\n\tSMS: \"sms\",\n\tMail: \"mailto\",\n});\n\nexport default Messenger;\n", "var checkPermissionInterval = 6e4,\n\tcoordinateAPIInterval = 6e3;\n\n/**\n * @param degrees {number}\n * @returns {number}\n */\nfunction degrees2Radians(degrees) {\n\treturn degrees * Math.PI / 180;\n}\n\n/**\n * @param coordinate1 {Coordinate}\n * @param coordinate2 {Coordinate}\n * @returns {number}\n */\nfunction angle(coordinate1, coordinate2) {\n\tvar cosineDeltaLongitude = Math.cos(degrees2Radians(coordinate1.longitude - coordinate2.longitude)),\n\t\tcosineDifferenceLatitude = Math.cos(degrees2Radians(coordinate1.latitude - coordinate2.latitude)),\n\t\tcosineSumLatitude = Math.cos(degrees2Radians(coordinate1.latitude + coordinate2.latitude));\n\t\n\treturn Math.acos(((cosineDeltaLongitude * (cosineDifferenceLatitude + cosineSumLatitude)) + (cosineDifferenceLatitude - cosineSumLatitude)) / 2);\n}\n\n/**\n * @param coordinate1 {Coordinate}\n * @param coordinate2 {Coordinate}\n * @returns {number}\n */\nfunction distance(coordinate1, coordinate2) {\n\tif (coordinate1 === void 0 || coordinate2 === void 0) {\n\t\treturn 0;\n\t}\n\t\n\tif (coordinate1.latitude === coordinate2.latitude && coordinate1.longitude === coordinate2.longitude) {\n\t\treturn 0;\n\t}\n\t\n\treturn 6.384e6 * angle(coordinate1, coordinate2);\n}\n\n/**\n * @param url {string}\n * @param fn {(data: any) => void}\n * @returns {void}\n */\nfunction jsonp(url, fn) {\n\tvar script = top.document.createElement(\"SCRIPT\"),\n\t\tcallback = \"_\" + Math.floor(Math.random() * (1 << 30)),\n\t\tprefix = \"?\";\n\t\n\tif (/\\?[^&=]*=[^&=]*/.test(url)) {\n\t\tprefix = \"&\";\n\t}\n\t\n\tscript.src = url + prefix + \"callback=\" + callback;\n\t\n\tif (top[callback] !== void 0) {\n\t\treturn jsonp(url, fn);\n\t}\n\t\n\tfunction clear() {\n\t\ttry {\n\t\t\tdelete top[callback];\n\t\t} catch (_) {\n\t\t\ttop[callback] = void 0;\n\t\t}\n\t\t\n\t\tscript.parentNode.removeChild(script);\n\t}\n\t\n\ttop[callback] = function (data) {\n\t\tfn(data);\n\t};\n\t\n\tscript.onload = function () {\n\t\tclear();\n\t};\n\t\n\tscript.onerror = function () {\n\t\tclear();\n\t};\n\t\n\ttop.document.head.appendChild(script);\n}\n\n/**\n * @param {(coordinate: Coordinate) => void} successCallback\n * @param {() => void} [errorCallback]\n * @type {NativeGeolocation}\n * @constructor\n */\nvar Geolocation = function (successCallback, errorCallback) {\n\tif (successCallback == null) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.Geolocation': Illegal constructor.\");\n\t}\n\t\n\tvar native = navigator.geolocation !== void 0 && navigator.geolocation.watchPosition !== void 0,\n\t\tcheckPermissionIntervalId,\n\t\tid,\n\t\tbeforeCoordinate,\n\t\ttimestamp;\n\t\n\tif (navigator.permissions && navigator.permissions.query) {\n\t\tnavigator.permissions.query({name: \"geolocation\"})\n\t\t\t.then(function (permission) {\n\t\t\t\tpermission.addEventListener(\"change\", function () {\n\t\t\t\t\tsetNative(permission.state !== \"denied\");\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tsetNative(permission.state !== \"denied\");\n\t\t\t})\n\t\t\t.catch(function (_) {\n\t\t\t\tsetNative(false);\n\t\t\t});\n\t} else if (navigator.geolocation !== void 0 && navigator.geolocation.getCurrentPosition !== void 0) {\n\t\tcheckPermissionIntervalId = setInterval(function () {\n\t\t\tnavigator.geolocation.getCurrentPosition(function () {\n\t\t\t\tsetNative(true);\n\t\t\t}, function (error) {\n\t\t\t\tif (error.code === error.PERMISSION_DENIED) {\n\t\t\t\t\tsetNative(false);\n\t\t\t\t}\n\t\t\t})\n\t\t}, checkPermissionInterval);\n\t} else {\n\t\tsetNative(false);\n\t}\n\t\n\t/**\n\t * @param boolean {boolean}\n\t */\n\tfunction setNative(boolean) {\n\t\tif (native ^ boolean) {\n\t\t\tnative = boolean;\n\t\t\t\n\t\t\tif (id !== void 0) {\n\t\t\t\tif (boolean) {\n\t\t\t\t\tclearInterval(id);\n\t\t\t\t\t\n\t\t\t\t\tid = watchCoordinateNative();\n\t\t\t\t} else {\n\t\t\t\t\tnavigator.geolocation.clearWatch(id);\n\t\t\t\t\t\n\t\t\t\t\tid = watchCoordinateAPI();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * @param coordinate {Coordinate}\n\t */\n\tfunction calculateCoordinateDifference(coordinate) {\n\t\tcoordinate.distance = distance(beforeCoordinate, coordinate);\n\t\t\n\t\tif (coordinate.speed === void 0) {\n\t\t\tvar now = new Date().getTime();\n\t\t\t\n\t\t\tif (timestamp === void 0) {\n\t\t\t\tcoordinate.speed = 0;\n\t\t\t} else {\n\t\t\t\tvar timeDiff = (now - timestamp) / 1000;\n\t\t\t\t\n\t\t\t\tif (timeDiff > 0) {\n\t\t\t\t\tcoordinate.speed = coordinate.distance / timeDiff;\n\t\t\t\t} else {\n\t\t\t\t\tcoordinate.speed = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tbeforeCoordinate = coordinate;\n\t\ttimestamp = new Date().getTime();\n\t}\n\t\n\tfunction getCoordinateAPI() {\n\t\tif (native) {\n\t\t\tif (id !== void 0) {\n\t\t\t\tclearInterval(id);\n\t\t\t}\n\t\t\t\n\t\t\tid = watchCoordinateNative();\n\t\t\t\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tjsonp(\"http://ip-api.com/json/?fields=lat,lon,status\", function (data) {\n\t\t\tvar coordinate = {};\n\t\t\t\n\t\t\tif (data.status === \"success\") {\n\t\t\t\tcoordinate.latitude = data.lat;\n\t\t\t\tcoordinate.longitude = data.lon;\n\t\t\t\tcoordinate.accuracy = -1;\n\t\t\t\t\n\t\t\t\tif (beforeCoordinate !== void 0 && coordinate.latitude === beforeCoordinate.latitude && coordinate.longitude === beforeCoordinate.longitude) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcalculateCoordinateDifference(coordinate);\n\t\t\t\t\n\t\t\t\tsuccessCallback(coordinate);\n\t\t\t} else {\n\t\t\t\tif (errorCallback) {\n\t\t\t\t\terrorCallback();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\t/**\n\t * @returns {number}\n\t */\n\tfunction watchCoordinateAPI() {\n\t\tgetCoordinateAPI();\n\t\t\n\t\treturn setInterval(getCoordinateAPI, coordinateAPIInterval);\n\t}\n\t\n\t/**\n\t * @returns {number}\n\t */\n\tfunction watchCoordinateNative() {\n\t\treturn navigator.geolocation.watchPosition(function (position) {\n\t\t\tvar coordinate = {};\n\t\t\t\n\t\t\tcoordinate.latitude = position.coords.latitude;\n\t\t\tcoordinate.longitude = position.coords.longitude;\n\t\t\tcoordinate.accuracy = position.coords.accuracy;\n\t\t\t\n\t\t\tif (position.coords.altitude !== null) coordinate.altitude = position.coords.altitude;\n\t\t\tif (position.coords.altitudeAccuracy !== null) coordinate.altitudeAccuracy = position.coords.altitudeAccuracy;\n\t\t\tif (position.coords.heading !== null) coordinate.heading = position.coords.heading;\n\t\t\tif (position.coords.speed !== null) coordinate.speed = position.coords.speed;\n\t\t\t\n\t\t\tcalculateCoordinateDifference(coordinate);\n\t\t\t\n\t\t\tsuccessCallback(coordinate);\n\t\t}, function (error) {\n\t\t\tif (error.code === error.PERMISSION_DENIED) {\n\t\t\t\tnative = false;\n\t\t\t\t\n\t\t\t\tif (id !== void 0) {\n\t\t\t\t\tnavigator.geolocation.clearWatch(id);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tid = watchCoordinateAPI();\n\t\t\t} else {\n\t\t\t\tif (errorCallback) {\n\t\t\t\t\terrorCallback();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tthis.disconnect = function () {\n\t\tif (id !== void 0) {\n\t\t\tif (native) {\n\t\t\t\tnavigator.geolocation.clearWatch(id);\n\t\t\t} else {\n\t\t\t\tclearInterval(id);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (checkPermissionIntervalId !== void 0) {\n\t\t\tclearInterval(checkPermissionIntervalId);\n\t\t}\n\t\t\n\t\tid = void 0;\n\t\tbeforeCoordinate = void 0;\n\t\tcheckPermissionIntervalId = void 0;\n\t}\n\t\n\tthis.observe = function () {\n\t\tthis.disconnect();\n\t\t\n\t\tif (native) {\n\t\t\tid = watchCoordinateNative();\n\t\t} else {\n\t\t\tid = watchCoordinateAPI();\n\t\t}\n\t};\n};\n\nexport default Geolocation;\n", "{\n \"name\": \"native-fn\",\n \"version\": \"1.0.20\",\n \"description\": \" \",\n \"scripts\": {\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"build\": \"node build.js\"\n },\n \"author\": \"\",\n \"license\": \"MIT\",\n \"type\": \"module\",\n \"main\": \"dist/index.cjs\",\n \"require\": \"dist/index.cjs\",\n \"module\": \"dist/index.mjs\",\n \"umd\": \"dist/index.umd.js\",\n \"types\": \"dist/src/index.d.ts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\",\n \"umd\": \"./dist/index.umd.js\",\n \"types\": \"./dist/src/index.d.ts\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/pjy0509/native-fn\"\n },\n \"homepage\": \"https://pjy0509.github.io/example/native-fn/\",\n \"keywords\": [\n \"app\",\n \"app loader\",\n \"app launcher\",\n \"app-loader\",\n \"app-launcher\",\n \"appearance\",\n \"camera\",\n \"engine\",\n \"geolocation\",\n \"keyboard inset\",\n \"keyboard-inset\",\n \"messenger\",\n \"os\",\n \"safe area inset\",\n \"safe-area-inset\",\n \"theme\",\n \"titlebar area\",\n \"titlebar-area\"\n ],\n \"devDependencies\": {\n \"esbuild\": \"^0.21.4\",\n \"glob\": \"^10.4.1\",\n \"html-webpack-plugin\": \"^5.6.0\",\n \"ts-loader\": \"^9.5.1\",\n \"typescript\": \"^5.4.5\"\n }\n}\n"],
5
- "mappings": "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B,GAAA,CACE,KAAQ,YACR,QAAW,SACX,YAAe,IACf,QAAW,CACT,KAAQ,4CACR,MAAS,eACX,EACA,OAAU,GACV,QAAW,MACX,KAAQ,SACR,KAAQ,iBACR,QAAW,iBACX,OAAU,iBACV,IAAO,oBACP,MAAS,sBACT,QAAW,CACT,IAAK,CACH,OAAU,mBACV,QAAW,mBACX,IAAO,sBACP,MAAS,uBACX,CACF,EACA,WAAc,CACZ,KAAQ,MACR,IAAO,sCACT,EACA,SAAY,+CACZ,SAAY,CACV,MACA,aACA,eACA,aACA,eACA,aACA,SACA,SACA,cACA,iBACA,iBACA,YACA,KACA,kBACA,kBACA,QACA,gBACA,eACF,EACA,gBAAmB,CACjB,QAAW,UACX,KAAQ,UACR,sBAAuB,SACvB,YAAa,SACb,WAAc,QAChB,CACF,EhBtDA,iCAkBA,IAAMC,GAAQ,CACb,oBAAAC,EACA,aAAAC,EACA,qBAAAC,CACD,EAEMC,GAAUC,GAAY,QAEtBC,GAASC,EAAO,CACrB,QAASF,GAAY,QACrB,GAAAG,EACA,OAAAC,GACA,WAAAC,EACA,MAAAC,GACA,IAAAC,GACA,OAAAC,GACA,UAAAC,GACA,YAAAC,GACA,MAAAf,GACA,QAAAI,EACD,CAAC,EAEG,OAAO,WAAe,MACzB,WAAW,OAASE",
4
+ "sourcesContent": ["!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t():\"function\"==typeof define&&define.amd?define(t):t()}(0,function(){\"use strict\";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function r(e,n){if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var f=n.then;if(\"function\"==typeof f)return void f.call(n,function(t){r(e,t)},function(n){o[e]={status:\"rejected\",reason:n},0==--i&&t(o)})}o[e]={status:\"fulfilled\",value:n},0==--i&&t(o)}if(!e||\"undefined\"==typeof e.length)return n(new TypeError(typeof e+\" \"+e+\" is not iterable(cannot read property Symbol(Symbol.iterator))\"));var o=Array.prototype.slice.call(e);if(0===o.length)return t([]);for(var i=o.length,f=0;o.length>f;f++)r(f,o[f])})}function n(e,t){this.name=\"AggregateError\",this.errors=e,this.message=t||\"\"}function r(e){var t=this;return new t(function(r,o){if(!e||\"undefined\"==typeof e.length)return o(new TypeError(\"Promise.any accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return o();for(var f=[],u=0;i.length>u;u++)try{t.resolve(i[u]).then(r)[\"catch\"](function(e){f.push(e),f.length===i.length&&o(new n(f,\"All promises were rejected\"))})}catch(c){o(c)}})}function o(e){return!(!e||\"undefined\"==typeof e.length)}function i(){}function f(e){if(!(this instanceof f))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(e,this)}function u(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,f._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var r;try{r=n(e._value)}catch(o){return void a(t.promise,o)}c(t.promise,r)}else(1===e._state?c:a)(t.promise,e._value)})):e._deferreds.push(t)}function c(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof f)return e._state=3,e._value=t,void l(e);if(\"function\"==typeof n)return void s(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,l(e)}catch(r){a(e,r)}}function a(e,t){e._state=2,e._value=t,l(e)}function l(e){2===e._state&&0===e._deferreds.length&&f._immediateFn(function(){e._handled||f._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)u(e,e._deferreds[t]);e._deferreds=null}function s(e,t){var n=!1;try{e(function(e){n||(n=!0,c(t,e))},function(e){n||(n=!0,a(t,e))})}catch(r){if(n)return;n=!0,a(t,r)}}n.prototype=Error.prototype;var d=setTimeout;f.prototype[\"catch\"]=function(e){return this.then(null,e)},f.prototype.then=function(e,t){var n=new this.constructor(i);return u(this,new function(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}(e,t,n)),n},f.prototype[\"finally\"]=e,f.all=function(e){return new f(function(t,n){function r(e,o){try{if(o&&(\"object\"==typeof o||\"function\"==typeof o)){var u=o.then;if(\"function\"==typeof u)return void u.call(o,function(t){r(e,t)},n)}i[e]=o,0==--f&&t(i)}catch(c){n(c)}}if(!o(e))return n(new TypeError(\"Promise.all accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},f.any=r,f.allSettled=t,f.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===f?e:new f(function(t){t(e)})},f.reject=function(e){return new f(function(t,n){n(e)})},f.race=function(e){return new f(function(t,n){if(!o(e))return n(new TypeError(\"Promise.race accepts an array\"));for(var r=0,i=e.length;i>r;r++)f.resolve(e[r]).then(t,n)})},f._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){d(e,0)},f._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var p=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw Error(\"unable to locate global object\")}();\"function\"!=typeof p.Promise?p.Promise=f:(p.Promise.prototype[\"finally\"]||(p.Promise.prototype[\"finally\"]=e),p.Promise.allSettled||(p.Promise.allSettled=t),p.Promise.any||(p.Promise.any=r))});\n", "'use strict';\n\nimport(\"./polyfill/promise.min\");\nimport freeze from \"./utils/freeze.js\";\n\nimport OS from \"./os.js\";\nimport Engine from \"./engine.js\";\nimport Appearance from \"./appearance.js\";\nimport Theme from \"./theme.js\";\nimport App from \"./app.js\";\nimport Camera from \"./camera.js\";\nimport Messenger from \"./messenger.js\";\nimport Geolocation from \"./geolocation.js\";\n\nimport InitializationError from \"./utils/initializationError.js\";\nimport URLOpenError from \"./utils/urlOpenError.js\";\nimport UserNotSelectedError from \"./utils/userNotSelectedError.js\";\n\nimport packageJSON from '../package.json';\n\nconst Error = {\n\tInitializationError,\n\tURLOpenError,\n\tUserNotSelectedError,\n};\n\nconst Version = packageJSON.version\n\nconst Native = freeze({\n\tversion: packageJSON.version,\n\tOS,\n\tEngine,\n\tAppearance,\n\tTheme,\n\tApp,\n\tCamera,\n\tMessenger,\n\tGeolocation,\n\tError,\n\tVersion\n});\n\nif (typeof globalThis !== 'undefined') {\n\tglobalThis.Native = Native;\n}\n\nexport {\n\tNative,\n\tApp,\n\tOS,\n\tEngine,\n\tAppearance,\n\tTheme,\n\tCamera,\n\tMessenger,\n\tGeolocation,\n\tError,\n\tVersion\n};\n", "/**\n * @template T\n * @param obj {T}\n * @returns {Readonly<T>}\n */\nexport default function freeze(obj) {\n\tif (typeof Object.freeze !== \"function\") {\n\t\tvar keys = Object.keys(obj);\n\t\t\n\t\tfor (var i = 0, key = keys[i]; i < keys.length; i++) {\n\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\ttry {\n\t\t\t\t\tObject.defineProperty(obj, key, {\n\t\t\t\t\t\twritable: false,\n\t\t\t\t\t\tconfigurable: false\n\t\t\t\t\t});\n\t\t\t\t} catch (_) {\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn obj;\n\t}\n\t\n\treturn Object.freeze(obj);\n}\n", "import freeze from \"./utils/freeze.js\";\n\n/**\n * @param str {string | undefined}\n * @returns {string | undefined}\n */\nfunction parseWindowsVersion(str) {\n\tvar map = {\n\t\t\"4.90\": \"ME\",\n\t\t\"NT3.51\": \"NT 3.11\",\n\t\t\"NT4.0\": \"NT 4.0\",\n\t\t\"NT 5.0\": \"2000\",\n\t\t\"NT 5.1\": \"XP\",\n\t\t\"NT 5.2\": \"XP\",\n\t\t\"NT 6.0\": \"Vista\",\n\t\t\"NT 6.1\": \"7\",\n\t\t\"NT 6.2\": \"8\",\n\t\t\"NT 6.3\": \"8.1\",\n\t\t\"NT 6.4\": \"10\",\n\t\t\"NT 10.0\": \"10\",\n\t\t\"ARM\": \"RT\"\n\t};\n\t\n\tvar mapped = map[str];\n\t\n\tif (mapped !== void 0) {\n\t\treturn mapped;\n\t}\n\t\n\treturn str;\n}\n\n/**\n * @param str {string | undefined}\n * @returns {string | undefined}\n */\nfunction parseIOSOrMacVersion(str) {\n\tif (str === void 0) {\n\t\treturn void 0;\n\t}\n\t\n\treturn str.replace(/_/g, \".\");\n}\n\nfunction getRenderer() {\n\t/** @type {HTMLCanvasElement} */\n\tvar canvas = document.createElement(\"CANVAS\");\n\t\n\tif (typeof canvas.getContext !== \"function\") return void 0;\n\t\n\tvar gl = canvas.getContext(\"experimental-webgl\") || canvas.getContext(\"webgl\");\n\t\n\tif (gl === null) return void 0;\n\t\n\tvar extension = gl.getExtension(\"WEBGL_debug_renderer_info\");\n\t\n\tif (typeof gl.getParameter !== \"function\") return void 0;\n\t\n\tif (extension == null) return gl.getParameter(gl.RENDERER);\n\t\n\treturn gl.getParameter(extension.UNMASKED_RENDERER_WEBGL);\n}\n\n/**\n * @type {NativeOS}\n */\nvar OS = (function (ua) {\n\tvar matched,\n\t\tresult = {\n\t\t\trenderer: getRenderer(),\n\t\t\tname: \"Unknown\",\n\t\t\tversion: void 0,\n\t\t},\n\t\t/** @type {[RegExp, string, undefined | ((matched: string | undefined) => string | undefined)][]} */\n\t\tmaps = [\n\t\t\t[/android\\w*[-\\/.; ]?([\\d.]*)/i, \"Android\"],\n\t\t\t[/microsoft windows (vista|xp)/i, \"Windows\"],\n\t\t\t[/windows (?:phone(?: os)?|mobile|iot)[\\/ ]?([.\\w ]*)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/windows nt 6\\.2; (arm)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/windows[\\/ ]([ntce\\d. ]+\\w)(?!.+xbox)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/(?:win(?=[39n])|win 9x )([nt\\d.]+)/i, \"Windows\", parseWindowsVersion],\n\t\t\t[/[adehimnop]{4,7}\\b(?:.*os (\\w+) like mac|; opera)/i, \"iOS\", parseIOSOrMacVersion],\n\t\t\t[/(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d.]+)/i, \"iOS\", parseIOSOrMacVersion],\n\t\t\t[/cfnetwork\\/.+darwin/i, \"iOS\"],\n\t\t\t[/mac os x ?([\\w. ]*)/i, \"MacOS\", parseIOSOrMacVersion],\n\t\t\t[/(?:macintosh|mac_powerpc\\b)(?!.+haiku)/i, \"MacOS\", parseIOSOrMacVersion],\n\t\t];\n\t\n\tfor (var i = 0; i < maps.length; i++) {\n\t\tmatched = ua.match(maps[i][0]);\n\t\t\n\t\tif (matched !== null) {\n\t\t\tresult.name = maps[i][1];\n\t\t\tif (maps[i][2] !== void 0) {\n\t\t\t\tresult.version = maps[i][2](matched[1]);\n\t\t\t} else {\n\t\t\t\tresult.version = matched[1];\n\t\t\t}\n\t\t\t\n\t\t\treturn freeze(result);\n\t\t}\n\t}\n\t\n\treturn freeze(result);\n})(navigator.userAgent);\n\nexport default OS;\n", "import freeze from \"./utils/freeze.js\";\n\n/**\n * @param str {string | undefined}\n * @returns {string}\n */\nfunction parseLibWebVersion(str) {\n\treturn \"LibWeb\";\n}\n\n/**\n * @type {NativeEngine}\n */\nvar Engine = (function (ua) {\n\tvar matched,\n\t\tresult = {\n\t\t\tname: \"Unknown\",\n\t\t\tisWebView: /; ?wv|applewebkit(?!.*safari)/i.test(ua),\n\t\t\tversion: void 0,\n\t\t},\n\t\t/** @type {[RegExp, string, undefined | ((matched: string | undefined) => string | undefined)][]} */\n\t\tmaps = [\n\t\t\t[/windows.+ edge\\/([\\w.]+)/i, \"EdgeHTML\"],\n\t\t\t[/arkweb\\/([\\w.]+)/i, \"ArkWeb\"],\n\t\t\t[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w.]+)/i, \"Blink\"],\n\t\t\t[/presto\\/([\\w.]+)/i, \"Presto\"],\n\t\t\t[/webkit\\/([\\w.]+)/i, \"WebKit\"],\n\t\t\t[/trident\\/([\\w.]+)/i, \"Trident\"],\n\t\t\t[/netfront\\/([\\w.]+)/i, \"NetFront\"],\n\t\t\t[/netsurf\\/([\\w.]+)/i, \"NetSurf\"],\n\t\t\t[/amaya\\/([\\w.]+)/i, \"Amaya\"],\n\t\t\t[/lynx\\/([\\w.]+)/i, \"Lynx\"],\n\t\t\t[/w3m\\/([\\w.]+)/i, \"w3m\"],\n\t\t\t[/goanna\\/([\\w.]+)/i, \"Goanna\"],\n\t\t\t[/servo\\/([\\w.]+)/i, \"Servo\"],\n\t\t\t[/ekiohflow\\/([\\w.]+)/i, \"Flow\"],\n\t\t\t[/khtml[\\/ ]\\(?([\\w.]+)/i, \"KHTML\"],\n\t\t\t[/tasman[\\/ ]\\(?([\\w.]+)/i, \"Tasman\"],\n\t\t\t[/links[\\/ ]\\(?([\\w.]+)/i, \"Links\"],\n\t\t\t[/icab[\\/ ]([23]\\.[\\d.]+)/i, \"iCab\"],\n\t\t\t[/\\blibweb/i, \"LibWeb\", parseLibWebVersion],\n\t\t\t[/ladybird\\//i, \"LibWeb\", parseLibWebVersion],\n\t\t\t[/rv:([\\w.]{1,9})\\b.+gecko/i, \"Gecko\"],\n\t\t]\n\t\n\tfor (var i = 0; i < maps.length; i++) {\n\t\tmatched = ua.match(maps[i][0]);\n\t\t\n\t\tif (matched !== null) {\n\t\t\tresult.name = maps[i][1];\n\t\t\tif (maps[i][2] !== void 0) {\n\t\t\t\tresult.version = maps[i][2](matched[1]);\n\t\t\t} else {\n\t\t\t\tresult.version = matched[1];\n\t\t\t}\n\t\t\t\n\t\t\treturn freeze(result);\n\t\t}\n\t}\n\t\n\treturn freeze(result);\n})(navigator.userAgent);\n\nexport default Engine;\n", "export default (function () {\n\tif (typeof window.matchMedia === \"function\") {\n\t\treturn window.matchMedia;\n\t}\n\t\n\tvar media = window.styleMedia || window.media;\n\t\n\tif (media === void 0) {\n\t\tvar style = document.createElement(\"STYLE\"),\n\t\t\tinfo;\n\t\t\n\t\tstyle.type = \"text/css\";\n\t\tstyle.id = \"match-media-polyfill\";\n\t\t\n\t\tdocument.head.appendChild(style);\n\t\t\n\t\tif (typeof window.getComputedStyle === \"function\") {\n\t\t\tinfo = window.getComputedStyle(style);\n\t\t} else {\n\t\t\tinfo = style.currentStyle;\n\t\t}\n\t\t\n\t\tmedia = {\n\t\t\tmatchMedia: function (query) {\n\t\t\t\tvar text = \"@media \" + query + \"{ #\" + style.id + \" {width: 1px;} }\";\n\t\t\t\t\n\t\t\t\tif (style.styleSheet !== void 0) {\n\t\t\t\t\tstyle.styleSheet.cssText = text;\n\t\t\t\t} else {\n\t\t\t\t\tstyle.textContent = text;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn info.width === \"1px\";\n\t\t\t}\n\t\t};\n\t}\n\t\n\treturn function (query) {\n\t\treturn {\n\t\t\tmatches: media.matchMedia(query),\n\t\t\tmedia: query\n\t\t};\n\t};\n})();\n", "import freeze from \"./utils/freeze.js\";\nimport matchMedia from \"./utils/matchMedia.js\";\n\nvar listeners = [],\n\tquery = matchMedia(\"(prefers-color-scheme: dark)\");\n\n/**\n * @type {NativeAppearance}\n */\nvar Appearance = {\n\t/**\n\t * @param {(value: EnumValues<NativeAppearanceType>) => void} listener\n\t */\n\taddListener: function (listener) {\n\t\tfunction wrapped(event) {\n\t\t\tlistener(event.matches ? Appearance.Type.Dark : Appearance.Type.Light);\n\t\t}\n\t\t\n\t\tlisteners.push({original: listener, wrapped: wrapped});\n\t\t\n\t\tif (typeof query.addEventListener === \"function\") {\n\t\t\treturn query.addEventListener(\"change\", wrapped);\n\t\t} else if (typeof query.addListener === \"function\") {\n\t\t\treturn query.addListener(wrapped);\n\t\t}\n\t},\n\t/**\n\t * @param {(value: EnumValues<NativeAppearanceType>) => void} listener\n\t */\n\tremoveListener: function (listener) {\n\t\tfor (var i = 0; i < listeners.length; i++) {\n\t\t\tif (listeners[i].original === listener) {\n\t\t\t\tvar wrapped = listeners[i].wrapped;\n\t\t\t\t\n\t\t\t\tif (typeof query.removeEventListener === \"function\") {\n\t\t\t\t\tquery.removeEventListener(\"change\", wrapped);\n\t\t\t\t} else if (typeof query.removeListener === \"function\") {\n\t\t\t\t\treturn query.removeListener(wrapped);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlisteners.splice(i, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nObject.defineProperty(Appearance, \"value\", {\n\t/**\n\t * @returns {EnumValues<NativeAppearanceType>}\n\t */\n\tget: function () {\n\t\tif (query.matches) {\n\t\t\treturn Appearance.Type.Dark;\n\t\t} else {\n\t\t\treturn Appearance.Type.Light;\n\t\t}\n\t},\n\tconfigurable: false,\n\tenumerable: true,\n});\n\n/**\n * @enum {string}\n * @type {NativeAppearanceType}\n */\nAppearance.Type = freeze({\n\tLight: \"light\",\n\tDark: \"dark\",\n});\n\nexport default Appearance;\n", "import Appearance from \"./appearance.js\";\nimport freeze from \"./utils/freeze.js\";\n\n/** @type {EnumValues<NativeAppearanceType> | undefined} */\nvar listener,\n\t/** @type {Record<string, HTMLMetaElement>} */\n\tmetas = {\n\t\tlight: void 0,\n\t\tdark: void 0,\n\t\tiosStatusBar: void 0,\n\t\twindowsPhone: void 0,\n\t},\n\t/** @type {MutationObserver} */\n\tobserver,\n\t/** @type {((value: Partial<NativeThemeContent>) => void)[]} */\n\tobserverListeners = [],\n\t/** @type {((value: EnumValues<NativeAppearanceType>) => void)[]} */\n\tappearanceListeners = [];\n\n/**\n * @param attributes {[string, string][]}\n * @returns {HTMLMetaElement}\n */\nfunction getMeta(attributes) {\n\tvar query = \"\",\n\t\telement,\n\t\ti;\n\t\n\tfor (i = 0; i < attributes.length; i++) {\n\t\tquery += \"[\" + attributes[i][0] + \"='\" + attributes[i][1] + \"']\";\n\t}\n\t\n\telement = top.document.head.querySelector(\"meta\" + query);\n\t\n\tif (element === null) {\n\t\telement = top.document.createElement(\"META\");\n\t\t\n\t\tfor (i = 0; i < attributes.length; i++) {\n\t\t\telement[attributes[i][0]] = attributes[i][1];\n\t\t}\n\t\t\n\t\ttop.document.head.appendChild(element);\n\t}\n\t\n\treturn element;\n}\n\nfunction initMetas() {\n\tif (metas.light === void 0) {\n\t\tmetas.light = getMeta([[\"name\", \"theme-color\"], [\"media\", \"(prefers-color-scheme: light)\"]]);\n\t}\n\t\n\tif (metas.dark === void 0) {\n\t\tmetas.dark = getMeta([[\"name\", \"theme-color\"], [\"media\", \"(prefers-color-scheme: dark)\"]]);\n\t}\n\t\n\tif (metas.iosStatusBar === void 0) {\n\t\tmetas.iosStatusBar = getMeta([[\"name\", \"apple-mobile-web-app-status-bar-style\"]]);\n\t}\n\t\n\tif (metas.windowsPhone === void 0) {\n\t\tmetas.windowsPhone = getMeta([[\"name\", \"msapplication-navbutton-color\"]]);\n\t}\n}\n\n/**\n * @type {NativeTheme}\n */\nvar Theme = {\n\t/**\n\t * @param {(value: Partial<NativeThemeContent>) => void} listener\n\t */\n\taddListener: function (listener) {\n\t\tif (typeof window.MutationObserver !== \"function\") {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (observer === void 0) {\n\t\t\tobserver = new MutationObserver(function (mutations) {\n\t\t\t\tvar i,\n\t\t\t\t\tchanged = false;\n\t\t\t\t\n\t\t\t\tfor (i = 0; i < mutations.length; i++) {\n\t\t\t\t\tvar mutation = mutations[i],\n\t\t\t\t\t\ttarget = mutation.target,\n\t\t\t\t\t\ttype = mutation.type;\n\t\t\t\t\t\n\t\t\t\t\tif (type !== \"attributes\" || target.tagName !== \"META\") {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ([metas.light, metas.dark, metas.iosStatusBar, metas.windowsPhone].indexOf(target) !== -1) {\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (!changed) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor (i = 0; i < observerListeners.length; i++) {\n\t\t\t\t\tobserverListeners[i](Theme.value);\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tobserver.observe(top.document.head, {attributes: true, childList: true, subtree: true});\n\t\t}\n\t\t\n\t\tfunction onAppearanceChange() {\n\t\t\tinitMetas();\n\t\t\t\n\t\t\tif (metas.dark.content !== metas.light.content) {\n\t\t\t\tlistener(Theme.value);\n\t\t\t}\n\t\t}\n\t\t\n\t\tAppearance.addListener(onAppearanceChange);\n\t\t\n\t\tappearanceListeners.push(onAppearanceChange);\n\t\tobserverListeners.push(listener);\n\t},\n\t/**\n\t * @param {(value: Partial<NativeThemeContent>) => void} listener\n\t */\n\tremoveListener: function (listener) {\n\t\tif (typeof window.MutationObserver !== \"function\" || observer === void 0) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < observerListeners.length; i++) {\n\t\t\tif (observerListeners[i] === listener) {\n\t\t\t\tobserverListeners.splice(i, 1);\n\t\t\t\tappearanceListeners.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (observerListeners.length === 0) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t},\n\t/**\n\t * @param theme {Partial<Record<NativeAppearanceType[keyof NativeAppearanceType], Partial<NativeThemeContent>>>}\n\t */\n\tsetTheme: function (theme) {\n\t\tinitMetas();\n\t\t\n\t\tif (listener !== void 0) {\n\t\t\tAppearance.removeListener(listener);\n\t\t\tlistener = void 0;\n\t\t}\n\t\t\n\t\tlistener = function (appearance) {\n\t\t\tvar color = theme[appearance];\n\t\t\t\n\t\t\tif (color !== void 0) {\n\t\t\t\tif (color.iosStatusBar !== void 0) {\n\t\t\t\t\tmetas.iosStatusBar.content = color.iosStatusBar;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (color.windowsPhone !== void 0) {\n\t\t\t\t\tmetas.windowsPhone.content = color.iosStatusBar;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tAppearance.addListener(listener);\n\t\t\n\t\tvar light = theme.light,\n\t\t\tdark = theme.dark;\n\t\t\n\t\tif (dark !== void 0 && dark.theme !== void 0) {\n\t\t\tmetas.dark.content = dark.theme;\n\t\t}\n\t\t\n\t\tif (light !== void 0) {\n\t\t\tif (light.theme !== void 0) {\n\t\t\t\tmetas.light.content = light.theme;\n\t\t\t}\n\t\t\t\n\t\t\tif (Appearance.value === \"light\") {\n\t\t\t\tif (light.iosStatusBar !== void 0) {\n\t\t\t\t\tmetas.iosStatusBar.content = light.iosStatusBar;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (light.windowsPhone !== void 0) {\n\t\t\t\t\tmetas.windowsPhone.content = light.windowsPhone;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (dark !== void 0) {\n\t\t\tif (dark.theme !== void 0) {\n\t\t\t\tmetas.dark.content = dark.theme;\n\t\t\t}\n\t\t\t\n\t\t\tif (Appearance.value === \"dark\") {\n\t\t\t\tif (dark.iosStatusBar !== void 0) {\n\t\t\t\t\tmetas.iosStatusBar.content = dark.iosStatusBar;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (dark.windowsPhone !== void 0) {\n\t\t\t\t\tmetas.windowsPhone.content = dark.windowsPhone;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nObject.defineProperty(Theme, \"value\", {\n\t/**\n\t * @returns {Partial<NativeThemeContent>}\n\t */\n\tget: function () {\n\t\tvar result = {};\n\t\t\n\t\tinitMetas();\n\t\t\n\t\tif (metas[Appearance.value].content !== \"\") {\n\t\t\tresult.theme = metas[Appearance.value].content;\n\t\t}\n\t\t\n\t\tif (metas.iosStatusBar.content !== \"\") {\n\t\t\tresult.iosStatusBar = metas.iosStatusBar.content;\n\t\t}\n\t\t\n\t\tif (metas.windowsPhone.content !== \"\") {\n\t\t\tresult.windowsPhone = metas.windowsPhone.content;\n\t\t}\n\t\t\n\t\treturn result;\n\t},\n\tconfigurable: false,\n\tenumerable: true,\n});\n\n/**\n * @enum {string}\n * @type {NativeThemeType}\n */\nTheme.Type = freeze({\n\tTheme: 'theme',\n\tIOSStatusBar: 'iosStatusBar',\n\tWindowsPhone: 'windowsPhone',\n});\n\nexport default Theme;\n", "/**\n * @returns {boolean}\n */\nfunction isDocumentHidden(target) {\n\tif (target.document.hidden !== void 0) {\n\t\treturn target.document.hidden;\n\t}\n\t\n\tif (target.document.webkitHidden !== void 0) {\n\t\treturn target.document.webkitHidden;\n\t}\n\t\n\treturn true;\n}\n\n/**\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @returns {void}\n */\nfunction openURLWithIFrame(target, url) {\n\tvar iframe = document.createElement(\"IFRAME\"),\n\t\tid;\n\t\n\tfunction onload() {\n\t\tiframe.removeEventListener(\"load\", onload);\n\t\tclearTimeout(id);\n\t\t\n\t\ttarget.document.body.removeChild(iframe);\n\t}\n\t\n\tiframe.src = url;\n\tiframe.style.display = \"none\";\n\t\n\ttarget.document.body.appendChild(iframe);\n\t\n\tiframe.addEventListener(\"load\", onload);\n\t\n\tid = setTimeout(onload, 2000);\n}\n\n/**\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {void}\n */\nfunction openURLWithHref(target, url, index) {\n\tif (index === 0) {\n\t\tlocation.href = url;\n\t} else {\n\t\tvar a = /** @type HTMLAnchorElement */ target.document.createElement(\"A\"),\n\t\t\tfake;\n\t\t\n\t\ta.href = url;\n\t\t\n\t\ttarget.document.body.appendChild(a);\n\t\t\n\t\ttry {\n\t\t\tfake = new target.MouseEvent(\"click\", {\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true,\n\t\t\t\tview: target\n\t\t\t});\n\t\t} catch (_) {\n\t\t\t// ES5 or Browsers in the ES5~ES6 transition period\n\t\t\tfake = target.document.createEvent(\"MouseEvents\");\n\t\t\t\n\t\t\tfake.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\t\t}\n\t\t\n\t\ta.dispatchEvent(fake);\n\t\t\n\t\ttarget.document.body.removeChild(a);\n\t}\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param timeout {number}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLAndroidOrWindowsOrMacOS(os, target, url, timeout, index) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar id;\n\t\t\n\t\tfunction onblur() {\n\t\t\tclearTimeout(id);\n\t\t\t\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t\ttarget.addEventListener(\"focus\", onfocus);\n\t\t}\n\t\t\n\t\tfunction onfocus() {\n\t\t\ttarget.removeEventListener(\"focus\", onfocus);\n\t\t\t\n\t\t\tresolve();\n\t\t}\n\t\t\n\t\tid = setTimeout(function () {\n\t\t\treject();\n\t\t\t\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t}, timeout);\n\t\t\n\t\ttarget.addEventListener(\"blur\", onblur);\n\t\t\n\t\topenURLWithHref(target, url, index);\n\t});\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLIOS(os, target, url, index) {\n\treturn new Promise(function (resolve, reject) {\n\t\tvar id,\n\t\t\tgoe8 = parseInt(os.version) >= 8;\n\t\t\n\t\tfunction onblur() {\n\t\t\tclearTimeout(id);\n\t\t\t\n\t\t\ttarget.addEventListener(\"focus\", onfocus);\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t}\n\t\t\n\t\tfunction onfocus() {\n\t\t\tid = setTimeout(function () {\n\t\t\t\tif (!isDocumentHidden(target)) {\n\t\t\t\t\treject();\n\t\t\t\t} else {\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (goe8) {\n\t\t\t\t\ttarget.document.removeEventListener(\"visibilitychange\", onvisibilitychange);\n\t\t\t\t} else {\n\t\t\t\t\ttarget.document.removeEventListener(\"pagehide\", onvisibilitychange);\n\t\t\t\t}\n\t\t\t}, 2000);\n\t\t\t\n\t\t\ttarget.removeEventListener(\"focus\", onfocus);\n\t\t}\n\t\t\n\t\tfunction onvisibilitychange() {\n\t\t\tclearTimeout(id);\n\t\t\t\n\t\t\ttarget.removeEventListener(\"blur\", onblur);\n\t\t\ttarget.removeEventListener(\"focus\", onfocus);\n\t\t\t\n\t\t\tif (goe8) {\n\t\t\t\ttarget.document.removeEventListener(\"visibilitychange\", onvisibilitychange);\n\t\t\t} else {\n\t\t\t\ttarget.document.removeEventListener(\"pagehide\", onvisibilitychange);\n\t\t\t}\n\t\t\t\n\t\t\tresolve();\n\t\t}\n\t\t\n\t\ttarget.addEventListener(\"blur\", onblur);\n\t\t\n\t\tif (goe8) {\n\t\t\ttarget.document.addEventListener(\"visibilitychange\", onvisibilitychange);\n\t\t} else {\n\t\t\ttarget.document.addEventListener(\"pagehide\", onvisibilitychange);\n\t\t}\n\t\t\n\t\topenURLWithHref(target, url, index);\n\t});\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLAndroid(os, target, url, index) {\n\treturn openURLAndroidOrWindowsOrMacOS(os, target, url, 1000, index);\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nfunction openURLWindowsOrMacOS(os, target, url, index) {\n\treturn openURLAndroidOrWindowsOrMacOS(os, target, url, 750, index);\n}\n\n/**\n * @param os {NativeOS}\n * @param target {Window & typeof globalThis}\n * @param url {string}\n * @param index {number}\n * @returns {Promise<void>}\n */\nexport default function openURL(os, target, url, index) {\n\tif (url) {\n\t\tswitch (os.name) {\n\t\t\tcase \"Android\":\n\t\t\t\treturn openURLAndroid(os, target, url, index);\n\t\t\tcase \"iOS\":\n\t\t\t\treturn openURLIOS(os, target, url, index);\n\t\t\tcase \"Windows\":\n\t\t\tcase \"MacOS\":\n\t\t\t\treturn openURLWindowsOrMacOS(os, target, url, index);\n\t\t}\n\t}\n\t\n\treturn Promise.reject();\n}\n", "export default function createCustomError(name) {\n\tfunction CustomError(message) {\n\t\tif (!(this instanceof CustomError)) {\n\t\t\treturn new CustomError(message);\n\t\t}\n\t\t\n\t\tthis.name = name;\n\t\tthis.message = message;\n\t\t\n\t\tif (Error.captureStackTrace) {\n\t\t\tError.captureStackTrace(this, CustomError);\n\t\t} else {\n\t\t\tthis.stack = new Error().stack;\n\t\t}\n\t}\n\t\n\tCustomError.prototype = Object.create(Error.prototype);\n\tCustomError.prototype.constructor = CustomError;\n\t\n\treturn CustomError;\n};\n", "import createCustomError from \"./createCustomError.js\";\n\nexport default createCustomError(\"InitializationError\");\n", "import createCustomError from \"./createCustomError.js\";\n\nexport default createCustomError(\"URLOpenError\");\n", "import OS from \"./os\";\nimport openURL from \"./utils/openURL\";\nimport freeze from \"./utils/freeze\";\nimport InitializationError from \"./utils/initializationError\";\nimport URLOpenError from \"./utils/urlOpenError\";\n\n/**\n * @param bundle {string}\n * @returns {number | undefined}\n */\nfunction getTrackId(bundle) {\n\ttry {\n\t\tvar xhr = new XMLHttpRequest();\n\t\t\n\t\txhr.open(\"GET\", \"http://itunes.apple.com/lookup?bundleId=\" + bundle, false);\n\t\txhr.send();\n\t\t\n\t\tif (xhr.status === 200) {\n\t\t\tvar response = JSON.parse(xhr.response);\n\t\t\t\n\t\t\tif (response.results.length > 0) {\n\t\t\t\treturn response.results[0].trackId;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn void 0;\n\t} catch (_) {\n\t\treturn void 0;\n\t}\n}\n\n/**\n * @param input {string}\n * @returns {string}\n */\nfunction addDelimiter(input) {\n\tif (/\\w+:\\/\\/.*/.test(input)) return input;\n\t\n\treturn input + \"://\";\n}\n\n/**\n * @param input {string}\n * @returns {string}\n */\nfunction clearDelimiter(input) {\n\treturn input.replace(/:\\/\\/.*$/, \"\");\n}\n\n/**\n * @param {NativeAppArgument} data\n * @type {NativeApp}\n * @constructor\n */\nvar App = function (data) {\n\tif (data === void 0) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.App': Illegal constructor.\");\n\t}\n\t\n\tthis.run = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(new InitializationError(\"Initialization error.\"));\n\t\t});\n\t};\n\t\n\tvar scheme,\n\t\tid,\n\t\tfallback,\n\t\tpackageName,\n\t\tready = Promise.resolve(),\n\t\turls = [],\n\t\tisOpenWebStore;\n\t\n\tswitch (OS.name) {\n\t\tcase \"Android\":\n\t\t\tif (data.android === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvar matched,\n\t\t\t\tintent,\n\t\t\t\tchromiumVersion,\n\t\t\t\tforceIntent;\n\t\t\t\n\t\t\tscheme = data.android.scheme;\n\t\t\tid = data.android.package;\n\t\t\tfallback = data.android.fallback;\n\t\t\tintent = data.android.intent;\n\t\t\tisOpenWebStore = data.android.isOpenWebStore;\n\t\t\tforceIntent = data.android.forceIntent;\n\t\t\t\n\t\t\tif (intent !== void 0 && scheme === void 0) {\n\t\t\t\tmatched = intent.match(/scheme=([^;]*)/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tscheme = matched[1] + \"://\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tmatched = intent.match(/intent:\\/\\/([^;]*)#Intent;/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tscheme = scheme + matched[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (intent !== void 0 && id === void 0) {\n\t\t\t\tmatched = intent.match(/package=([^;]*)/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tid = matched[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (intent !== void 0 && fallback === void 0) {\n\t\t\t\tmatched = intent.match(/S\\.browser_fallback_url=([^;]*)/);\n\t\t\t\t\n\t\t\t\tif (matched !== null) {\n\t\t\t\t\tfallback = matched[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (scheme === void 0 && id === void 0 && fallback === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tif (intent === void 0) {\n\t\t\t\tvar split = scheme.split(\"://\"),\n\t\t\t\t\tpre = split[0],\n\t\t\t\t\tsuf = split[1];\n\t\t\t\t\n\t\t\t\tintent = \"intent://\";\n\t\t\t\t\n\t\t\t\tif (suf !== void 0) {\n\t\t\t\t\tintent = intent + suf;\n\t\t\t\t} else {\n\t\t\t\t\tintent = intent + \"open\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tintent = intent + \"#Intent;\"\n\t\t\t\t\t+ \"scheme=\" + pre + \";\"\n\t\t\t\t\t+ \"action=android.intent.action.VIEW;\"\n\t\t\t\t\t+ \"category=android.intent.category.BROWSABLE;\";\n\t\t\t\t\n\t\t\t\tif (id !== void 0) {\n\t\t\t\t\tintent = intent + \"package=\" + id + \";\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (fallback !== void 0) {\n\t\t\t\t\tintent = intent + \"S.browser_fallback_url=\" + fallback + \";\";\n\t\t\t\t} else {\n\t\t\t\t\tintent = intent + \"S.browser_fallback_url=market://details?id=\" + id + \";\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tintent = intent + \"end\";\n\t\t\t}\n\t\t\t\n\t\t\tmatched = navigator.userAgent.match(/chrom(?:e|ium)\\/([\\w.]+)/i);\n\t\t\t\n\t\t\tif (matched !== null) {\n\t\t\t\tchromiumVersion = parseInt(matched[1]);\n\t\t\t}\n\t\t\t\n\t\t\tif (chromiumVersion >= 25 && intent !== void 0) {\n\t\t\t\tif (chromiumVersion <= 42) {\n\t\t\t\t\tready = new Promise(function (resolve) {\n\t\t\t\t\t\tvar iframe = top.document.createElement(\"IFRAME\"),\n\t\t\t\t\t\t\turl = \"intent://open#Intent;scheme=;end;\",\n\t\t\t\t\t\t\tresolved = false;\n\t\t\t\t\t\t\n\t\t\t\t\t\tfunction cleanup(supported) {\n\t\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\t\tresolved = true;\n\t\t\t\t\t\t\t\tresolve(supported);\n\t\t\t\t\t\t\t\tiframe.removeEventListener(\"load\", onload);\n\t\t\t\t\t\t\t\ttop.document.body.removeChild(iframe);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tfunction onload() {\n\t\t\t\t\t\t\tcleanup(iframe.src !== url);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tiframe.addEventListener(\"load\", onload);\n\t\t\t\t\t\tiframe.src = url;\n\t\t\t\t\t\t\n\t\t\t\t\t\ttop.document.body.appendChild(iframe);\n\t\t\t\t\t\t\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tcleanup(false);\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t})\n\t\t\t\t\t\t.then(function (supported) {\n\t\t\t\t\t\t\tif (supported) {\n\t\t\t\t\t\t\t\turls.push([intent, App.State.Intent]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\turls.push([intent.replace(/package=.*?;/, \"\").replace(/S\\.browser_fallback_url=.*?;/, \"\"), App.State.Intent]);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (fallback !== void 0) {\n\t\t\t\t\t\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t\t\t\t\t\t} else if (id !== void 0) {\n\t\t\t\t\t\t\t\t\turls.push([\"market://details?id=\" + id, App.State.Store]);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\t\t\t\t\t\turls.push([\"https://play.google.com/store/apps/details?id=\" + id, App.State.Store]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\turls.push([intent, App.State.Intent]);\n\t\t\t\t\t\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if (scheme !== void 0) {\n\t\t\t\turls.push([addDelimiter(scheme), App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\turls.push([\"market://details?id=\" + id, App.State.Store]);\n\t\t\t\t\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://play.google.com/store/apps/details?id=\" + id, App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tcase \"Windows\":\n\t\t\tif (data.windows === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tscheme = data.windows.scheme;\n\t\t\tid = data.windows.productId;\n\t\t\tisOpenWebStore = data.windows.isOpenWebStore;\n\t\t\tfallback = data.windows.fallback;\n\t\t\t\n\t\t\tif (scheme !== void 0) {\n\t\t\t\turls.push([addDelimiter(scheme), App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\turls.push([\"ms-windows-store://pdp/?ProductId=\" + id, App.State.Store]);\n\t\t\t\t\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://apps.microsoft.com/detail/\" + id, App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tcase \"iOS\":\n\t\t\tif (data.ios === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tvar universal = data.ios.universal;\n\t\t\t\n\t\t\tscheme = data.ios.scheme;\n\t\t\tpackageName = data.ios.package;\n\t\t\tid = data.ios.trackId;\n\t\t\tfallback = data.ios.fallback;\n\t\t\t\n\t\t\tif (universal !== void 0 && parseInt(OS.version) >= 9) {\n\t\t\t\turls.push([universal, App.State.Universal]);\n\t\t\t} else if (scheme !== void 0) {\n\t\t\t\turls.push([scheme, App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (id === void 0 && packageName !== void 0) {\n\t\t\t\tid = getTrackId(packageName);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://itunes.apple.com/kr/app/id\" + id + \"?mt=8\", App.State.Store]);\n\t\t\t\t} else {\n\t\t\t\t\turls.push([\"itms-apps://itunes.apple.com/app/id\" + id + \"?mt=8\", App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tcase \"MacOS\":\n\t\t\tif (data.mac === void 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tscheme = data.mac.scheme;\n\t\t\tpackageName = data.mac.package;\n\t\t\tid = data.mac.trackId;\n\t\t\tfallback = data.mac.fallback;\n\t\t\tisOpenWebStore = data.mac.isOpenWebStore;\n\t\t\t\n\t\t\tif (scheme !== void 0) {\n\t\t\t\turls.push([addDelimiter(scheme), App.State.Scheme]);\n\t\t\t}\n\t\t\t\n\t\t\tif (id === void 0 && packageName !== void 0) {\n\t\t\t\tid = getTrackId(packageName);\n\t\t\t}\n\t\t\t\n\t\t\tif (fallback !== void 0) {\n\t\t\t\turls.push([fallback, App.State.Fallback]);\n\t\t\t} else if (id !== void 0) {\n\t\t\t\turls.push([\"macappstore://itunes.apple.com/app/id\" + id + \"?mt=12\", App.State.Store]);\n\t\t\t\t\n\t\t\t\tif (isOpenWebStore) {\n\t\t\t\t\turls.push([\"https://apps.apple.com/us/app/id\" + id + \"?mt=12\", App.State.Store]);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn;\n\t}\n\t\n\t/**\n\t * @param target {WindowProxy}\n\t * @returns {Promise<EnumValues<NativeAppState>>}\n\t */\n\tthis.run = function (target = top) {\n\t\tdocument.querySelector(\"[NATIVE-OS-DEBUG]\").textContent += JSON.stringify(urls, null, 4);\n\t\t\n\t\treturn ready.then(function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tfunction tryOpenURL(index = 0) {\n\t\t\t\t\tif (index >= urls.length) {\n\t\t\t\t\t\treturn reject(new URLOpenError(\"No url can be opened.\"));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar url = urls[index][0],\n\t\t\t\t\t\tstate = urls[index][1];\n\t\t\t\t\t\n\t\t\t\t\treturn openURL(OS, target, url, index)\n\t\t\t\t\t\t.then(function () {\n\t\t\t\t\t\t\tresolve(state);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\ttryOpenURL(++index);\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn tryOpenURL();\n\t\t\t});\n\t\t});\n\t};\n};\n\n/**\n * @enum {number}\n * @type {NativeAppState}\n */\nApp.State = freeze({\n\tScheme: 0,\n\tUniversal: 1,\n\tIntent: 2,\n\tFallback: 3,\n\tStore: 4,\n});\n\nexport default App;\n", "import createCustomError from \"./createCustomError.js\";\n\nexport default createCustomError(\"UserNotSelectedError\");\n", "import OS from \"./os.js\";\nimport freeze from \"./utils/freeze.js\";\nimport matchMedia from \"./utils/matchMedia.js\";\nimport UserNotSelectedError from \"./utils/userNotSelectedError.js\";\nimport InitializationError from \"./utils/initializationError.js\";\n\nvar run = false;\n\n/**\n * @param type\n * @param stream\n * @param cleanups\n * @returns {Promise<Blob>}\n */\nfunction createCameraElement(type, stream, cleanups) {\n\tvar setting = stream.getVideoTracks()[0].getSettings(),\n\t\tbeforeOverflow = top.document.documentElement.style.overflow,\n\t\twidth = setting.width || 640,\n\t\theight = setting.height || 480,\n\t\tsample = createSampleElement(type),\n\t\tcontainer = createContainerElement(),\n\t\tvideo = createVideoElement(),\n\t\trecordButton = createRecordButtonElement(),\n\t\trecordButtonInner = createRecordButtonInnerElement(type),\n\t\tstopwatch = createStopwatchElement(),\n\t\tpaddingLeft = createPaddingElement(),\n\t\tpaddingRight = createPaddingElement(),\n\t\tcheck = createCheckButton(),\n\t\txMark = createXMarkButton(),\n\t\tpadding = top.innerHeight * 0.4 / height * width / 2,\n\t\trecording = false,\n\t\trecorder,\n\t\tchunks = [],\n\t\tt = 0,\n\t\tid;\n\t\n\trecordButton.appendChild(recordButtonInner);\n\tif (type === Camera.Type.Video) {\n\t\tcontainer.appendChild(stopwatch);\n\t}\n\tcontainer.appendChild(video);\n\tcontainer.appendChild(sample);\n\tcontainer.appendChild(recordButton);\n\tcontainer.appendChild(paddingLeft);\n\tcontainer.appendChild(paddingRight);\n\tcontainer.appendChild(check);\n\tcontainer.appendChild(xMark);\n\t\n\tvideo.style.left = sample.style.left = \"calc(50% - \" + padding + \"px)\";\n\tpaddingLeft.style.left = paddingRight.style.right = \"0\";\n\tcheck.style.left = xMark.style.right = \"calc(50% - \" + (padding - 50) + \"px)\";\n\tpaddingLeft.style.width = paddingRight.style.width = \"calc(50% - \" + padding + \"px)\";\n\t\n\tfunction clearVideoSourceObject() {\n\t}\n\t\n\tfunction clearStopwatchInterval() {\n\t\tif (id !== void 0) {\n\t\t\tclearInterval(id);\n\t\t\tid = void 0;\n\t\t}\n\t}\n\t\n\tfunction showSample(blob, resolve, reject) {\n\t\tblobToDataURL(blob)\n\t\t\t.then(function (dataURL) {\n\t\t\t\tsample.src = dataURL;\n\t\t\t\t\n\t\t\t\tvideo.style.display = recordButton.style.display = \"none\";\n\t\t\t\tsample.style.display = check.style.display = xMark.style.display = \"block\";\n\t\t\t\t\n\t\t\t\tcheck.onclick = function () {\n\t\t\t\t\tresolve({blob: blob, dataURL: dataURL});\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\txMark.onclick = function () {\n\t\t\t\t\tif (typeof window.URL === \"function\") {\n\t\t\t\t\t\tURL.revokeObjectURL(dataURL);\n\t\t\t\t\t} else if (typeof window.webkitURL === \"function\") {\n\t\t\t\t\t\twebkitURL.revokeObjectURL(dataURL);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tt = 0;\n\t\t\t\t\tvideo.style.display = recordButton.style.display = \"block\";\n\t\t\t\t\tsample.style.display = check.style.display = xMark.style.display = \"none\";\n\t\t\t\t};\n\t\t\t})\n\t\t\t.catch(function (e) {\n\t\t\t\treject(e);\n\t\t\t});\n\t}\n\t\n\tif (video.srcObject !== void 0) {\n\t\tvideo.srcObject = stream;\n\t\t\n\t\tclearVideoSourceObject = function () {\n\t\t\tvideo.srcObject = null;\n\t\t};\n\t} else if (video.mozSrcObject !== void 0) {\n\t\tvideo.mozSrcObject = stream;\n\t\t\n\t\tclearVideoSourceObject = function () {\n\t\t\tvideo.mozSrcObject = null;\n\t\t};\n\t}\n\t\n\tvideo.onloadedmetadata = function () {\n\t\tvideo.muted = true;\n\t\tvoid video.play();\n\t};\n\t\n\ttop.document.documentElement.style.overflow = \"hidden\";\n\ttop.document.body.appendChild(container);\n\t\n\tcleanups.push(\n\t\tfunction () {\n\t\t\ttop.document.documentElement.style.overflow = beforeOverflow;\n\t\t\ttop.document.body.removeChild(container);\n\t\t\t\n\t\t\tif (recorder !== void 0 && recorder.state !== \"inactive\") {\n\t\t\t\trecorder.stop();\n\t\t\t\trecorder = void 0;\n\t\t\t}\n\t\t\t\n\t\t\tclearVideoSourceObject();\n\t\t\tclearStopwatchInterval();\n\t\t}\n\t);\n\t\n\treturn new Promise(function (resolve, reject) {\n\t\ttop.document.addEventListener(\"keyup\", function onkeyup(e) {\n\t\t\tcleanups.push(\n\t\t\t\tfunction () {\n\t\t\t\t\ttop.document.removeEventListener(\"keyup\", onkeyup);\n\t\t\t\t}\n\t\t\t);\n\t\t\t\n\t\t\tif (e.keyCode === 27 || e.code === \"Escape\") {\n\t\t\t\treject(new UserNotSelectedError(\"User did not select.\"));\n\t\t\t}\n\t\t});\n\t\t\n\t\trecordButton.onclick = function () {\n\t\t\ttry {\n\t\t\t\tif (type === Camera.Type.Image) {\n\t\t\t\t\tplayCaptureSound();\n\t\t\t\t\t\n\t\t\t\t\tvar canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\t\n\t\t\t\t\tvar ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\n\t\t\t\t\tctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\n\t\t\t\t\tcanvasToBlob(canvas)\n\t\t\t\t\t\t.then(function (blob) {\n\t\t\t\t\t\t\tshowSample(blob, resolve, reject);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tif (!recording) {\n\t\t\t\t\t\tplayRecordStartSound();\n\t\t\t\t\t\t\n\t\t\t\t\t\tid = setInterval(function () {\n\t\t\t\t\t\t\t++t;\n\t\t\t\t\t\t\tstopwatch.innerText = padLeft(t / 6000) + \":\" + padLeft((t / 100) % 60) + \":\" + padLeft(t % 100);\n\t\t\t\t\t\t}, 10);\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder = new MediaRecorder(video.srcObject || video.mozSrcObject);\n\t\t\t\t\t\tchunks = [];\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.ondataavailable = function (event) {\n\t\t\t\t\t\t\tif (event.data.size > 0) {\n\t\t\t\t\t\t\t\tchunks.push(event.data);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.onstop = function () {\n\t\t\t\t\t\t\tclearStopwatchInterval();\n\t\t\t\t\t\t\tshowSample(new Blob(chunks, {type: \"video/webm\"}), resolve, reject);\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.start();\n\t\t\t\t\t\t\n\t\t\t\t\t\trecordButtonInner.style.borderRadius = recordButtonInner.style.WebkitBorderRadius = recordButtonInner.style.MozBorderRadius = \"10%\";\n\t\t\t\t\t\trecordButtonInner.style.top = \"12px\";\n\t\t\t\t\t\trecordButtonInner.style.left = \"12px\";\n\t\t\t\t\t\trecordButtonInner.style.width = \"27px\";\n\t\t\t\t\t\trecordButtonInner.style.height = \"27px\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tplayRecordStopSound();\n\t\t\t\t\t\t\n\t\t\t\t\t\trecorder.stop();\n\t\t\t\t\t\t\n\t\t\t\t\t\trecordButtonInner.style.borderRadius = recordButtonInner.style.WebkitBorderRadius = recordButtonInner.style.MozBorderRadius = \"50%\";\n\t\t\t\t\t\trecordButtonInner.style.left = \"3px\";\n\t\t\t\t\t\trecordButtonInner.style.top = \"3px\";\n\t\t\t\t\t\trecordButtonInner.style.width = \"44px\";\n\t\t\t\t\t\trecordButtonInner.style.height = \"44px\";\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\trecording = !recording;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t};\n\t});\n}\n\nfunction padLeft(number) {\n\tnumber = parseInt(number);\n\tif (number <= 9) return \"0\" + number;\n\treturn number;\n}\n\nfunction blobToDataURL(blob) {\n\treturn new Promise(function (resolve, reject) {\n\t\ttry {\n\t\t\tvar reader = new FileReader();\n\t\t\t\n\t\t\treader.onloadend = function () {\n\t\t\t\tresolve(reader.result);\n\t\t\t};\n\t\t\t\n\t\t\treader.onerror = function (e) {\n\t\t\t\treject(e);\n\t\t\t};\n\t\t\t\n\t\t\treader.readAsDataURL(blob);\n\t\t} catch (e) {\n\t\t\treject(e);\n\t\t}\n\t});\n}\n\nfunction canvasToBlob(canvas) {\n\treturn new Promise(function (resolve, reject) {\n\t\tif (typeof canvas.toBlob === \"function\") {\n\t\t\tcanvas.toBlob(\n\t\t\t\tfunction (blob) {\n\t\t\t\t\tresolve(blob);\n\t\t\t\t}\n\t\t\t\t, \"image/png\"\n\t\t\t);\n\t\t} else if (typeof canvas.msToBlob === \"function\") {\n\t\t\tresolve(canvas.msToBlob());\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tvar dataURL = canvas.toDataURL(\"image/png\"),\n\t\t\t\t\tbyteString = atob(dataURL.split(\",\")[1]),\n\t\t\t\t\tab = new ArrayBuffer(byteString.length),\n\t\t\t\t\tia = new Uint8Array(ab);\n\t\t\t\t\n\t\t\t\tfor (var i = 0; i < byteString.length; i++) {\n\t\t\t\t\tia[i] = byteString.charCodeAt(i);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tresolve(\n\t\t\t\t\tnew Blob(\n\t\t\t\t\t\t[ab],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: dataURL\n\t\t\t\t\t\t\t\t.split(\",\")[0]\n\t\t\t\t\t\t\t\t.split(\":\")[1]\n\t\t\t\t\t\t\t\t.split(\";\")[0]\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction createContainerElement() {\n\tvar div = document.createElement(\"DIV\"),\n\t\tbackground = createBackgroundElement();\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"0\";\n\tdiv.style.top = top.scrollY + \"px\";\n\tdiv.style.width = \"100%\";\n\tdiv.style.height = \"100%\";\n\tdiv.style.zIndex = \"\" + 0x7fffffff;\n\t\n\tdiv.appendChild(background);\n\t\n\treturn div;\n}\n\nfunction createPaddingElement() {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.top = \"0\";\n\tdiv.style.height = \"100%\";\n\tdiv.style.backgroundColor = \"#000\";\n\t\n\treturn div;\n}\n\n/**\n *\n * @returns {HTMLVideoElement & {mozSrcObject?: MediaProvider}}\n */\nfunction createVideoElement() {\n\tvar video = document.createElement(\"VIDEO\");\n\t\n\tvideo.style.position = \"absolute\";\n\tvideo.style.top = \"30%\";\n\tvideo.style.height = \"40%\";\n\t\n\tvideo.controls = false;\n\t\n\treturn video;\n}\n\nfunction createBackgroundElement() {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"0\";\n\tdiv.style.top = \"0\";\n\tdiv.style.width = \"100%\";\n\tdiv.style.height = \"100%\";\n\tdiv.style.backgroundColor = \"#111\";\n\t\n\treturn div;\n}\n\nfunction createStopwatchElement() {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"calc(50% - 50px)\";\n\tdiv.style.top = \"calc(20% - 12px)\";\n\tdiv.style.width = \"100px\";\n\tdiv.style.height = \"24px\";\n\tdiv.style.color = \"#FFF\";\n\tdiv.style.fontWeight = \"400\";\n\tdiv.style.textAlign = \"center\";\n\tdiv.style.fontVariantNumeric = \"tabular-nums\";\n\tdiv.style.fontFeatureSettings = div.style.WebkitFontFeatureSettings = div.style.MozFontFeatureSettings = \"\\\"tnum\\\"\";\n\tdiv.innerText = \"00:00:00\";\n\t\n\treturn div;\n}\n\nfunction createRecordButtonElement() {\n\tvar button = document.createElement(\"BUTTON\");\n\t\n\tbutton.style.position = \"relative\";\n\tbutton.style.left = \"calc(50% - 30px)\";\n\tbutton.style.top = \"calc(80% - 30px)\";\n\tbutton.style.width = \"60px\";\n\tbutton.style.height = \"60px\";\n\tbutton.style.backgroundColor = \"#FFFFFF00\";\n\tbutton.style.borderRadius = button.style.WebkitBorderRadius = button.style.MozBorderRadius = \"50%\";\n\tbutton.style.cursor = \"pointer\";\n\tbutton.style.border = \"5px solid #FFF\";\n\t\n\treturn button;\n}\n\nfunction createRecordButtonInnerElement(type) {\n\tvar div = document.createElement(\"DIV\");\n\t\n\tdiv.style.position = \"absolute\";\n\tdiv.style.left = \"3px\";\n\tdiv.style.top = \"3px\";\n\tdiv.style.width = \"44px\";\n\tdiv.style.height = \"44px\";\n\tdiv.style.borderRadius = \"50%\";\n\t\n\tif (type === Camera.Type.Image) {\n\t\tdiv.style.backgroundColor = \"#FFF\";\n\t} else {\n\t\tdiv.style.backgroundColor = \"#F00\";\n\t}\n\t\n\tif (matchMedia(\"(prefers-reduced-motion: no-preference)\").matches) {\n\t\tdiv.style.transitionProperty = div.style.WebkitTransitionProperty = div.style.MozTransitionProperty = \"border-radius, width, height, top, left\";\n\t\tdiv.style.transitionDuration = div.style.WebkitTransitionDuration = div.style.MozTransitionDuration = \"150ms\";\n\t\tdiv.style.transitionTimingFunction = div.style.WebkitTransitionTimingFunction = div.style.MozTransitionTimingFunction = \"ease\";\n\t}\n\t\n\treturn div;\n}\n\nfunction createSampleElement(type) {\n\tvar media;\n\t\n\tif (type === Camera.Type.Video) {\n\t\tmedia = document.createElement(\"VIDEO\");\n\t\t\n\t\tmedia.controls = true;\n\t} else {\n\t\tmedia = document.createElement(\"IMG\");\n\t}\n\t\n\tmedia.style.position = \"absolute\";\n\tmedia.style.top = \"30%\";\n\tmedia.style.height = \"40%\";\n\tmedia.style.display = \"none\";\n\t\n\treturn media;\n}\n\nfunction createCheckButton() {\n\tvar button = document.createElement(\"BUTTON\"),\n\t\tdiv = document.createElement(\"DIV\");\n\t\n\tbutton.style.display = \"none\";\n\tbutton.style.position = \"absolute\";\n\tbutton.style.top = \"calc(80% - 15px)\";\n\tbutton.style.width = \"30px\";\n\tbutton.style.height = \"30px\";\n\tdiv.style.position = \"relative\";\n\tdiv.style.top = \"-2px\";\n\tdiv.style.display = \"inline-block\";\n\tdiv.style.transform = div.style.webkitTransform = div.style.msTransform = div.style.OTransform = div.style.MozTransform = \"rotate(45deg)\";\n\tdiv.style.width = \"16px\";\n\tdiv.style.height = \"25px\";\n\tdiv.style.borderBottom = div.style.borderRight = \"5px solid #FFF\";\n\t\n\tbutton.appendChild(div);\n\t\n\treturn button;\n}\n\nfunction createXMarkButton() {\n\tvar button = document.createElement(\"BUTTON\"),\n\t\tdiv1 = document.createElement(\"DIV\"),\n\t\tdiv2 = document.createElement(\"DIV\");\n\t\n\tbutton.style.display = \"none\";\n\tbutton.style.position = \"absolute\";\n\tbutton.style.top = \"calc(80% - 15px)\";\n\tbutton.style.width = \"30px\";\n\tbutton.style.height = \"30px\";\n\tdiv1.style.position = div2.style.position = \"relative\";\n\tdiv1.style.top = \"1px\";\n\tdiv1.style.left = \"3px\";\n\tdiv1.style.display = div2.style.display = \"inline-block\";\n\tdiv1.style.transform = div1.style.webkitTransform = div1.style.msTransform = div1.style.OTransform = div1.style.MozTransform = \"rotate(45deg)\";\n\tdiv1.style.height = div2.style.height = \"28px\";\n\tdiv1.style.borderRight = div2.style.borderRight = \"5px solid #FFF\";\n\tdiv2.style.top = \"1px\";\n\tdiv2.style.left = \"-2px\";\n\tdiv2.style.transform = div2.style.webkitTransform = div2.style.msTransform = div2.style.OTransform = div2.style.MozTransform = \"rotate(315deg)\";\n\t\n\tbutton.appendChild(div1);\n\tbutton.appendChild(div2);\n\t\n\treturn button;\n}\n\nfunction playSound(base64) {\n\ttypeof window.Audio === \"function\" && void new Audio(\"data:audio/mpeg;base64,\" + base64).play();\n}\n\nfunction playRecordStartSound() {\n\tplaySound(\"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\");\n}\n\nfunction playRecordStopSound() {\n\tplaySound(\"SUQzBAAAAAAAIlRTU0UAAAAOAAADTGF2ZjYxLjQuMTAwAAAAAAAAAAAAAAD/+1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYaW5nAAAADwAAAAsAAAfUACcnJycnJycnJ2pqampqampqaoGBgYGBgYGBgY+Pj4+Pj4+Pj5+fn5+fn5+fn7q6urq6urq6usrKysrKysrKytjY2NjY2NjY2OXl5eXl5eXl5fLy8vLy8vLy8v///////////wAAAABMYXZjNjEuOS4AAAAAAAAAAAAAAAAkAkAAAAAAAAAH1D6K2fAAAAAAAAAAAAAAAAAAAAAA//sQRAAP8AAAf4AAAAgAAA/wAAABAAAB/hQAACAAAD/CgAAEAoYAgFAgD8SmUNBi+Bni3gcogFh/gKg//kTHAe9IIXNUBOa1EzAM7gAAAAALufiYXk+AyDmkRp6aRPjIjB4iKzqg1Ur/+6BkIgAA9xFSplIAAAAAD/DAAAAGwDVh2beAAGQFbXsMIAEkO0wQZvwJqhMTzakehnLUU3doYIh1dAAAAAAAAAAPfBWO8bvd9htZY7SIcxAEmJw4AAA5ll8zGYrDONC1kCMcqe+lMgI0dyL7vrAHdgRYAAAAD/+20gLTGiS0QxyiqLy0Z0LAC74LsgKbIX1ALeTA6VP/06mMuc0PyHeAXtBIAAdh4U4NI3VQVYAWAAg4AAAXmFLis16DJT7hGz+j6wbKDQBaIAAJGYMOGALQfwN+AGm+vUFTznekQrX//92X1LRLCp9isChAIaZ0KpAAeWBHAA+8AAAqYAQxNzgwDfBx/6JwPalMWhtAAAQDgAAAAAeeE6s7oCPUvfqNfWs2fbpPos3qr23KCY3AjgGQB0FwMhgiAmnPqChEacfNUGwAFgBiHf+olgITPPADB2gOAwGnAAAOvYUAB31lAsgAAAAAAAxZG0loP66gkfYlBPChKaYy8hOnSKKgDcpoCJWGB6CoSpK96EDJ5pnMqv2M/kEP29eD5oyGTzRkACvBgUE1TAAAAAAAAFfH2HSRIIUS6wDINyk1zCKgADOQAEQP+AAB+s8REuJjPmhNAPFA0ShtozIoBDqhJpY91UiUWOUh3DQysACJYDRQAAAP/1UVKu2RQVHCGFgC9QBsGDx/8AAB+VDFgErkLBz/+0Bk3gExBAhXf2AACBXg6s7ngAFDWBtXoKcEYC0C7XgDAFXxIdfAgmBUK9foayo6UdriDRTZrHAABSqEAAAAAN1JxK+PMBawA2QC4G4H7lMaB8tLxF0IFrMLAiozf/neicE5UhPAAA1IwEocrwwZ1QBtgEANwAAB+ylmLIqWJYBHMk0zUrur9sE2zSOAIAGQGhTqxY26AAALAG7ww8cUVcEKn/wu2BG90p/BowNjCIB/IyptAP/7EGT4gTDQBtV4LMEYCKCLFAAJA8NcHVWgJwRoHYNoYAAYDAAJMHAAOAAAGG9BJCBuUAUf/qAAAogGwS2k5rAADMUAfgSu4GA+3oc//NrCRFqohYoH6w0XFUxBTUUzLjEwMFVVVVVV//sgZPgBMN0HVfgJaKgKgBruAAABBVQ1VfT3gCBYBar6jmAFVVVVVQAN+OABsAABEsQyYCYq/ptln/yNZi0rvK/S+gAAbAYC8CIHOA0Sf+Z/+nto8O7xwqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqv/7UGTzgAIlEtVuayAAHgGbTsOkAEVcMVn9QwAgU4Tru5BgBaqqqqqqqqqqqqqqqqqqqqoAEoAACpoGCqBSdUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+yBk+AExJRfV6FkqmBABax4AKDMDzF9VoWRKaCUFqxAAiNxVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZPiDsOIXVWoAFCoJoVoFASxRgwwrVcAfCCAWACsQAAAGVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+xBk+IGwnAtXeAoyKAkhWmQACCUChCtXoAEA4BkAadAAAARVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7EGT2AfDFCtVoAUmIAqAZ4AAAAQKcb1OgHGngAAA/wAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//sQZOMP8FMJUEABMhoAAA/wAAABAAAB/gAAACAAAD/AAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=\");\n}\n\nfunction playCaptureSound() {\n\tplaySound(\"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\");\n}\n\n/**\n * @param {NativeCameraArgument} data\n * @type {NativeCamera}\n * @constructor\n */\nvar Camera = function (data) {\n\tif (data == null || data.type == null || !Camera.isSupported || [Camera.Type.Image, Camera.Type.Video].indexOf(data.type) === -1) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.Camera': Illegal constructor.\");\n\t}\n\t\n\tvar self = this;\n\t\n\tthis.run = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(new InitializationError(\"Initialization error.\"));\n\t\t});\n\t};\n\t\n\tthis.bind = function (input) {\n\t\tinput[\"onclick\"] = function (e) {\n\t\t\te.preventDefault();\n\t\t\tself.run();\n\t\t};\n\t};\n\t\n\tvar type = data.type;\n\t\n\tswitch (OS.name) {\n\t\tcase \"Android\":\n\t\tcase \"iOS\":\n\t\t\tvar input = document.createElement(\"INPUT\");\n\t\t\t\n\t\t\tinput.type = \"file\";\n\t\t\tinput.capture = \"environment\";\n\t\t\tinput.accept = data.type + \"/*\";\n\t\t\t\n\t\t\tthis.run = function () {\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tinput.onchange = function () {\n\t\t\t\t\t\tvar files = input.files;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (files.length > 0) {\n\t\t\t\t\t\t\tvar blob = files[0];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tblobToDataURL(blob)\n\t\t\t\t\t\t\t\t.then(function (dataURL) {\n\t\t\t\t\t\t\t\t\tresolve({blob: blob, dataURL: dataURL});\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t.catch(function (error) {\n\t\t\t\t\t\t\t\t\treject(error);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject(new UserNotSelectedError(\"User did not select.\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t\n\t\t\t\t\tinput.click();\n\t\t\t\t});\n\t\t\t};\n\t\t\t\n\t\t\treturn;\n\t\tcase \"Windows\":\n\t\tcase \"MacOS\":\n\t\t\tvar getUserMedia;\n\t\t\t\n\t\t\tif (navigator.mediaDevices && typeof navigator.mediaDevices.getUserMedia === \"function\") {\n\t\t\t\tgetUserMedia = function (constraints) {\n\t\t\t\t\treturn navigator.mediaDevices.getUserMedia(constraints);\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar legacy = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\n\t\t\t\t\n\t\t\t\tif (typeof legacy === \"function\") {\n\t\t\t\t\tgetUserMedia = function (constraints) {\n\t\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\t\tlegacy.call(navigator, constraints, resolve, reject);\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis.run = function () {\n\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\tif (run) {\n\t\t\t\t\t\treturn reject(new Error(\"Native.Camera is already running.\"));\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\trun = true;\n\t\t\t\t\t\n\t\t\t\t\tvar cleanups = [];\n\t\t\t\t\t\n\t\t\t\t\tfunction clean() {\n\t\t\t\t\t\trun = false;\n\t\t\t\t\t\t\n\t\t\t\t\t\tfor (var i = 0; i < cleanups.length; i++) {\n\t\t\t\t\t\t\tcleanups[i]();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tgetUserMedia({video: true, audio: type === Camera.Type.Video})\n\t\t\t\t\t\t\t.then(function (stream) {\n\t\t\t\t\t\t\t\tcleanups.push(\n\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar tracks = stream.getTracks();\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < tracks.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\ttracks[i].stop();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tcreateCameraElement(type, stream, cleanups)\n\t\t\t\t\t\t\t\t\t.then(function (blob) {\n\t\t\t\t\t\t\t\t\t\tresolve(blob);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t.finally(function () {\n\t\t\t\t\t\t\t\t\t\tclean();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.catch(function (e) {\n\t\t\t\t\t\t\t\tclean();\n\t\t\t\t\t\t\t\treject(e);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tclean();\n\t\t\t\t\t\treject(e);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t};\n\t\t\tbreak;\n\t\tdefault:\n\t}\n};\n\n/**\n * @enum {string}\n * @type {NativeCameraType}\n */\nCamera.Type = freeze({\n\tImage: \"image\",\n\tVideo: \"video\",\n});\n\nObject.defineProperty(Camera, \"isSupported\", {\n\t/**\n\t * @returns {boolean}\n\t */\n\tget() {\n\t\treturn (\n\t\t\t\tOS.name === \"Android\"\n\t\t\t\t|| OS.name === \"iOS\"\n\t\t\t)\n\t\t\t|| (\n\t\t\t\t(\n\t\t\t\t\t(\n\t\t\t\t\t\ttypeof navigator.getUserMedia === \"function\"\n\t\t\t\t\t\t|| typeof navigator.webkitGetUserMedia === \"function\"\n\t\t\t\t\t\t|| typeof navigator.mozGetUserMedia === \"function\"\n\t\t\t\t\t\t|| typeof navigator.msGetUserMedia === \"function\"\n\t\t\t\t\t)\n\t\t\t\t\t|| (\n\t\t\t\t\t\tnavigator.mediaDevices !== void 0\n\t\t\t\t\t\t&& typeof navigator.mediaDevices.getUserMedia === \"function\"\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t&& new Blob([\"\u00E4\"]).size === 2\n\t\t\t\t&& typeof window.MediaRecorder === \"function\"\n\t\t\t);\n\t},\n\tconfigurable: false,\n\tenumerable: true,\n});\n\nexport default Camera;\n", "import OS from \"./os.js\";\nimport openURL from \"./utils/openURL.js\";\nimport freeze from \"./utils/freeze.js\";\nimport URLOpenError from \"./utils/urlOpenError.js\";\n\n/**\n * @param value {any}\n * @returns {boolean}\n */\nfunction isArrayLike(value) {\n\tif (value == null) return false;\n\t\n\tvar length = value.length;\n\t\n\treturn typeof length === \"number\" && length >= 0 && !(length % 1);\n}\n\n/**\n * @param str {string}\n * @returns {string}\n */\nfunction encode(str) {\n\treturn encodeURIComponent(str)\n\t\t.replace(/%20/g, \"%20\")\n\t\t.replace(/[!'()*]/g, function (c) {\n\t\t\treturn \"%\" + c.charCodeAt(0).toString(16);\n\t\t});\n}\n\n/**\n * @param value {object | HTMLFormElement | FormData}\n * @returns {object | null}\n */\nfunction normalizeValue(value) {\n\tif (value == null) return null;\n\tif (value instanceof HTMLFormElement) return normalizeValue(new FormData(value));\n\tif (value instanceof FormData) {\n\t\tvar obj = {};\n\t\t\n\t\tvalue.forEach(function (v, k) {\n\t\t\tif (obj.hasOwnProperty(k)) {\n\t\t\t\tif (!Array.isArray(obj[k])) {\n\t\t\t\t\tobj[k] = [obj[k]];\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tobj[k].push(v);\n\t\t\t} else {\n\t\t\t\tobj[k] = v;\n\t\t\t}\n\t\t});\n\t\t\n\t\treturn obj;\n\t}\n\treturn value;\n}\n\n/**\n * @param value\n * @param prefix\n * @returns {string}\n */\nfunction stringify(value, prefix = \"\") {\n\tif (typeof value !== \"string\" && isArrayLike(value)) {\n\t\tvar str = \"\";\n\t\t\n\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\tstr += encode(value[i]);\n\t\t\t\n\t\t\tif (i !== value.length - 1) {\n\t\t\t\tstr += \",\";\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif (value == null) return \"\";\n\tif (value instanceof HTMLInputElement) return prefix + encode(value.value);\n\tif (value instanceof HTMLElement) return prefix + encode(value.innerText);\n\tif (value instanceof Node) return prefix + encode(value.textContent);\n\treturn prefix + encode(value);\n}\n\n/**\n * @param {NativeMessengerArgument} data\n * @type {NativeMessenger}\n * @constructor\n */\nvar Messenger = function (data) {\n\tif (data == null || data.type == null || [Messenger.Type.Telephone, Messenger.Type.SMS, Messenger.Type.Mail].indexOf(data.type) === -1) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.Messenger': Illegal constructor.\");\n\t}\n\t\n\tdata = normalizeValue(data);\n\t\n\tvar url = data.type\n\t\t+ \":\"\n\t\t+ stringify(data.to)\n\t\t+ \"?\"\n\t\t+ stringify(data.cc, \"cc=\")\n\t\t+ stringify(data.bcc, \"&bcc=\")\n\t\t+ stringify(data.subject, \"&subject=\")\n\t\t+ stringify(data.body, \"&body=\");\n\t\n\tthis.run = function (target = top) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\topenURL(OS, target, url)\n\t\t\t\t.then(function () {\n\t\t\t\t\tresolve();\n\t\t\t\t})\n\t\t\t\t.catch(function () {\n\t\t\t\t\treturn reject(new URLOpenError(\"No url can be opened.\"));\n\t\t\t\t});\n\t\t});\n\t}\n};\n\n/**\n * @enum {string}\n * @type {NativeMessengerType}\n */\nMessenger.Type = freeze({\n\tTelephone: \"tel\",\n\tSMS: \"sms\",\n\tMail: \"mailto\",\n});\n\nexport default Messenger;\n", "var checkPermissionInterval = 6e4,\n\tcoordinateAPIInterval = 6e3;\n\n/**\n * @param degrees {number}\n * @returns {number}\n */\nfunction degrees2Radians(degrees) {\n\treturn degrees * Math.PI / 180;\n}\n\n/**\n * @param coordinate1 {Coordinate}\n * @param coordinate2 {Coordinate}\n * @returns {number}\n */\nfunction angle(coordinate1, coordinate2) {\n\tvar cosineDeltaLongitude = Math.cos(degrees2Radians(coordinate1.longitude - coordinate2.longitude)),\n\t\tcosineDifferenceLatitude = Math.cos(degrees2Radians(coordinate1.latitude - coordinate2.latitude)),\n\t\tcosineSumLatitude = Math.cos(degrees2Radians(coordinate1.latitude + coordinate2.latitude));\n\t\n\treturn Math.acos(((cosineDeltaLongitude * (cosineDifferenceLatitude + cosineSumLatitude)) + (cosineDifferenceLatitude - cosineSumLatitude)) / 2);\n}\n\n/**\n * @param coordinate1 {Coordinate}\n * @param coordinate2 {Coordinate}\n * @returns {number}\n */\nfunction distance(coordinate1, coordinate2) {\n\tif (coordinate1 === void 0 || coordinate2 === void 0) {\n\t\treturn 0;\n\t}\n\t\n\tif (coordinate1.latitude === coordinate2.latitude && coordinate1.longitude === coordinate2.longitude) {\n\t\treturn 0;\n\t}\n\t\n\treturn 6.384e6 * angle(coordinate1, coordinate2);\n}\n\n/**\n * @param url {string}\n * @param fn {(data: any) => void}\n * @returns {void}\n */\nfunction jsonp(url, fn) {\n\tvar script = top.document.createElement(\"SCRIPT\"),\n\t\tcallback = \"_\" + Math.floor(Math.random() * (1 << 30)),\n\t\tprefix = \"?\";\n\t\n\tif (/\\?[^&=]*=[^&=]*/.test(url)) {\n\t\tprefix = \"&\";\n\t}\n\t\n\tscript.src = url + prefix + \"callback=\" + callback;\n\t\n\tif (top[callback] !== void 0) {\n\t\treturn jsonp(url, fn);\n\t}\n\t\n\tfunction clear() {\n\t\ttry {\n\t\t\tdelete top[callback];\n\t\t} catch (_) {\n\t\t\ttop[callback] = void 0;\n\t\t}\n\t\t\n\t\tscript.parentNode.removeChild(script);\n\t}\n\t\n\ttop[callback] = function (data) {\n\t\tfn(data);\n\t};\n\t\n\tscript.onload = function () {\n\t\tclear();\n\t};\n\t\n\tscript.onerror = function () {\n\t\tclear();\n\t};\n\t\n\ttop.document.head.appendChild(script);\n}\n\n/**\n * @param {(coordinate: Coordinate) => void} successCallback\n * @param {() => void} [errorCallback]\n * @type {NativeGeolocation}\n * @constructor\n */\nvar Geolocation = function (successCallback, errorCallback) {\n\tif (successCallback == null) {\n\t\tthrow new TypeError(\"Failed to construct 'Native.Geolocation': Illegal constructor.\");\n\t}\n\t\n\tvar native = navigator.geolocation !== void 0 && navigator.geolocation.watchPosition !== void 0,\n\t\tcheckPermissionIntervalId,\n\t\tid,\n\t\tbeforeCoordinate,\n\t\ttimestamp;\n\t\n\tif (navigator.permissions && navigator.permissions.query) {\n\t\tnavigator.permissions.query({name: \"geolocation\"})\n\t\t\t.then(function (permission) {\n\t\t\t\tpermission.addEventListener(\"change\", function () {\n\t\t\t\t\tsetNative(permission.state !== \"denied\");\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tsetNative(permission.state !== \"denied\");\n\t\t\t})\n\t\t\t.catch(function (_) {\n\t\t\t\tsetNative(false);\n\t\t\t});\n\t} else if (navigator.geolocation !== void 0 && navigator.geolocation.getCurrentPosition !== void 0) {\n\t\tcheckPermissionIntervalId = setInterval(function () {\n\t\t\tnavigator.geolocation.getCurrentPosition(function () {\n\t\t\t\tsetNative(true);\n\t\t\t}, function (error) {\n\t\t\t\tif (error.code === error.PERMISSION_DENIED) {\n\t\t\t\t\tsetNative(false);\n\t\t\t\t}\n\t\t\t})\n\t\t}, checkPermissionInterval);\n\t} else {\n\t\tsetNative(false);\n\t}\n\t\n\t/**\n\t * @param boolean {boolean}\n\t */\n\tfunction setNative(boolean) {\n\t\tif (native ^ boolean) {\n\t\t\tnative = boolean;\n\t\t\t\n\t\t\tif (id !== void 0) {\n\t\t\t\tif (boolean) {\n\t\t\t\t\tclearInterval(id);\n\t\t\t\t\t\n\t\t\t\t\tid = watchCoordinateNative();\n\t\t\t\t} else {\n\t\t\t\t\tnavigator.geolocation.clearWatch(id);\n\t\t\t\t\t\n\t\t\t\t\tid = watchCoordinateAPI();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * @param coordinate {Coordinate}\n\t */\n\tfunction calculateCoordinateDifference(coordinate) {\n\t\tcoordinate.distance = distance(beforeCoordinate, coordinate);\n\t\t\n\t\tif (coordinate.speed === void 0) {\n\t\t\tvar now = new Date().getTime();\n\t\t\t\n\t\t\tif (timestamp === void 0) {\n\t\t\t\tcoordinate.speed = 0;\n\t\t\t} else {\n\t\t\t\tvar timeDiff = (now - timestamp) / 1000;\n\t\t\t\t\n\t\t\t\tif (timeDiff > 0) {\n\t\t\t\t\tcoordinate.speed = coordinate.distance / timeDiff;\n\t\t\t\t} else {\n\t\t\t\t\tcoordinate.speed = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tbeforeCoordinate = coordinate;\n\t\ttimestamp = new Date().getTime();\n\t}\n\t\n\tfunction getCoordinateAPI() {\n\t\tif (native) {\n\t\t\tif (id !== void 0) {\n\t\t\t\tclearInterval(id);\n\t\t\t}\n\t\t\t\n\t\t\tid = watchCoordinateNative();\n\t\t\t\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tjsonp(\"http://ip-api.com/json/?fields=lat,lon,status\", function (data) {\n\t\t\tvar coordinate = {};\n\t\t\t\n\t\t\tif (data.status === \"success\") {\n\t\t\t\tcoordinate.latitude = data.lat;\n\t\t\t\tcoordinate.longitude = data.lon;\n\t\t\t\tcoordinate.accuracy = -1;\n\t\t\t\t\n\t\t\t\tif (beforeCoordinate !== void 0 && coordinate.latitude === beforeCoordinate.latitude && coordinate.longitude === beforeCoordinate.longitude) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tcalculateCoordinateDifference(coordinate);\n\t\t\t\t\n\t\t\t\tsuccessCallback(coordinate);\n\t\t\t} else {\n\t\t\t\tif (errorCallback) {\n\t\t\t\t\terrorCallback();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\t/**\n\t * @returns {number}\n\t */\n\tfunction watchCoordinateAPI() {\n\t\tgetCoordinateAPI();\n\t\t\n\t\treturn setInterval(getCoordinateAPI, coordinateAPIInterval);\n\t}\n\t\n\t/**\n\t * @returns {number}\n\t */\n\tfunction watchCoordinateNative() {\n\t\treturn navigator.geolocation.watchPosition(function (position) {\n\t\t\tvar coordinate = {};\n\t\t\t\n\t\t\tcoordinate.latitude = position.coords.latitude;\n\t\t\tcoordinate.longitude = position.coords.longitude;\n\t\t\tcoordinate.accuracy = position.coords.accuracy;\n\t\t\t\n\t\t\tif (position.coords.altitude !== null) coordinate.altitude = position.coords.altitude;\n\t\t\tif (position.coords.altitudeAccuracy !== null) coordinate.altitudeAccuracy = position.coords.altitudeAccuracy;\n\t\t\tif (position.coords.heading !== null) coordinate.heading = position.coords.heading;\n\t\t\tif (position.coords.speed !== null) coordinate.speed = position.coords.speed;\n\t\t\t\n\t\t\tcalculateCoordinateDifference(coordinate);\n\t\t\t\n\t\t\tsuccessCallback(coordinate);\n\t\t}, function (error) {\n\t\t\tif (error.code === error.PERMISSION_DENIED) {\n\t\t\t\tnative = false;\n\t\t\t\t\n\t\t\t\tif (id !== void 0) {\n\t\t\t\t\tnavigator.geolocation.clearWatch(id);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tid = watchCoordinateAPI();\n\t\t\t} else {\n\t\t\t\tif (errorCallback) {\n\t\t\t\t\terrorCallback();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t\n\tthis.disconnect = function () {\n\t\tif (id !== void 0) {\n\t\t\tif (native) {\n\t\t\t\tnavigator.geolocation.clearWatch(id);\n\t\t\t} else {\n\t\t\t\tclearInterval(id);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (checkPermissionIntervalId !== void 0) {\n\t\t\tclearInterval(checkPermissionIntervalId);\n\t\t}\n\t\t\n\t\tid = void 0;\n\t\tbeforeCoordinate = void 0;\n\t\tcheckPermissionIntervalId = void 0;\n\t}\n\t\n\tthis.observe = function () {\n\t\tthis.disconnect();\n\t\t\n\t\tif (native) {\n\t\t\tid = watchCoordinateNative();\n\t\t} else {\n\t\t\tid = watchCoordinateAPI();\n\t\t}\n\t};\n};\n\nexport default Geolocation;\n", "{\n \"name\": \"native-fn\",\n \"version\": \"1.0.21\",\n \"description\": \" \",\n \"scripts\": {\n \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n \"build\": \"node build.js\"\n },\n \"author\": \"\",\n \"license\": \"MIT\",\n \"type\": \"module\",\n \"main\": \"dist/index.cjs\",\n \"require\": \"dist/index.cjs\",\n \"module\": \"dist/index.mjs\",\n \"umd\": \"dist/index.umd.js\",\n \"types\": \"dist/src/index.d.ts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.mjs\",\n \"require\": \"./dist/index.cjs\",\n \"umd\": \"./dist/index.umd.js\",\n \"types\": \"./dist/src/index.d.ts\"\n }\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/pjy0509/native-fn\"\n },\n \"homepage\": \"https://pjy0509.github.io/example/native-fn/\",\n \"keywords\": [\n \"app\",\n \"app loader\",\n \"app launcher\",\n \"app-loader\",\n \"app-launcher\",\n \"appearance\",\n \"camera\",\n \"engine\",\n \"geolocation\",\n \"keyboard inset\",\n \"keyboard-inset\",\n \"messenger\",\n \"os\",\n \"safe area inset\",\n \"safe-area-inset\",\n \"theme\",\n \"titlebar area\",\n \"titlebar-area\"\n ],\n \"devDependencies\": {\n \"esbuild\": \"^0.21.4\",\n \"glob\": \"^10.4.1\",\n \"html-webpack-plugin\": \"^5.6.0\",\n \"ts-loader\": \"^9.5.1\",\n \"typescript\": \"^5.4.5\"\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["promise_min_exports", "init_promise_min", "__esmMin", "e", "t", "n", "r", "f", "o", "i", "u", "c", "s", "a", "l", "d", "src_exports", "__export", "app_default", "appearance_default", "camera_default", "engine_default", "Error", "geolocation_default", "messenger_default", "Native", "os_default", "theme_default", "Version", "__toCommonJS", "freeze", "obj", "keys", "i", "key", "parseWindowsVersion", "str", "map", "mapped", "parseIOSOrMacVersion", "getRenderer", "canvas", "gl", "extension", "OS", "ua", "matched", "result", "maps", "i", "freeze", "os_default", "parseLibWebVersion", "str", "Engine", "ua", "matched", "result", "maps", "i", "freeze", "engine_default", "matchMedia_default", "media", "style", "info", "query", "text", "listeners", "query", "matchMedia_default", "Appearance", "listener", "wrapped", "event", "i", "freeze", "appearance_default", "listener", "metas", "observer", "observerListeners", "appearanceListeners", "getMeta", "attributes", "query", "element", "i", "initMetas", "Theme", "mutations", "changed", "mutation", "target", "type", "onAppearanceChange", "appearance_default", "theme", "appearance", "color", "light", "dark", "result", "freeze", "theme_default", "isDocumentHidden", "target", "openURLWithHref", "target", "url", "index", "a", "fake", "openURLAndroidOrWindowsOrMacOS", "os", "timeout", "resolve", "reject", "id", "onblur", "onfocus", "openURLIOS", "goe8", "isDocumentHidden", "onvisibilitychange", "openURLAndroid", "openURLWindowsOrMacOS", "openURL", "createCustomError", "name", "CustomError", "message", "initializationError_default", "createCustomError", "urlOpenError_default", "createCustomError", "getTrackId", "bundle", "xhr", "response", "addDelimiter", "input", "App", "data", "resolve", "reject", "initializationError_default", "scheme", "id", "fallback", "packageName", "ready", "urls", "isOpenWebStore", "os_default", "matched", "intent", "chromiumVersion", "forceIntent", "split", "pre", "suf", "iframe", "url", "resolved", "cleanup", "supported", "onload", "addDelimiter", "universal", "getTrackId", "target", "tryOpenURL", "index", "urlOpenError_default", "state", "openURL", "e", "freeze", "app_default", "userNotSelectedError_default", "createCustomError", "run", "createCameraElement", "type", "stream", "cleanups", "setting", "beforeOverflow", "width", "height", "sample", "createSampleElement", "container", "createContainerElement", "video", "createVideoElement", "recordButton", "createRecordButtonElement", "recordButtonInner", "createRecordButtonInnerElement", "stopwatch", "createStopwatchElement", "paddingLeft", "createPaddingElement", "paddingRight", "check", "createCheckButton", "xMark", "createXMarkButton", "padding", "recording", "recorder", "chunks", "t", "id", "Camera", "clearVideoSourceObject", "clearStopwatchInterval", "showSample", "blob", "resolve", "reject", "blobToDataURL", "dataURL", "e", "onkeyup", "userNotSelectedError_default", "playCaptureSound", "canvas", "ctx", "canvasToBlob", "playRecordStopSound", "playRecordStartSound", "padLeft", "event", "number", "reader", "byteString", "ab", "ia", "i", "div", "background", "createBackgroundElement", "button", "matchMedia_default", "media", "div1", "div2", "playSound", "base64", "data", "self", "initializationError_default", "input", "os_default", "files", "error", "getUserMedia", "constraints", "legacy", "clean", "tracks", "freeze", "camera_default", "isArrayLike", "value", "length", "encode", "str", "c", "normalizeValue", "obj", "v", "k", "stringify", "prefix", "i", "Messenger", "data", "url", "target", "resolve", "reject", "openURL", "os_default", "urlOpenError_default", "freeze", "messenger_default", "checkPermissionInterval", "coordinateAPIInterval", "degrees2Radians", "degrees", "angle", "coordinate1", "coordinate2", "cosineDeltaLongitude", "cosineDifferenceLatitude", "cosineSumLatitude", "distance", "jsonp", "url", "fn", "script", "callback", "prefix", "clear", "data", "Geolocation", "successCallback", "errorCallback", "native", "checkPermissionIntervalId", "id", "beforeCoordinate", "timestamp", "permission", "setNative", "_", "error", "boolean", "watchCoordinateNative", "watchCoordinateAPI", "calculateCoordinateDifference", "coordinate", "now", "timeDiff", "getCoordinateAPI", "position", "geolocation_default", "package_default", "Error", "initializationError_default", "urlOpenError_default", "userNotSelectedError_default", "Version", "package_default", "Native", "freeze", "os_default", "engine_default", "appearance_default", "theme_default", "app_default", "camera_default", "messenger_default", "geolocation_default"]
7
7
  }