{"version":3,"sources":["lib/post-robot.js"],"names":["root","factory","exports","module","define","amd","postRobot","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","default","object","property","prototype","hasOwnProperty","p","s","_config","keys","forEach","key","_constants","getActualDomain","win","location","Error","protocol","CONSTANTS","FILE_PROTOCOL","host","getDomain","domain","window","mockDomain","indexOf","MOCK_PROTOCOL","isBlankDomain","href","err","isActuallySameDomain","desc","getOwnPropertyDescriptor","isSameDomain","getParent","parent","getOpener","opener","getParents","result","push","isAncestorParent","child","childParent","getFrames","frames","len","length","frame","_i","_frame","getAllChildFrames","_iterator","_isArray","Array","isArray","_i2","Symbol","iterator","_ref","next","done","_iterator2","_isArray2","_i3","_ref2","childFrame","getTop","top","_iterator3","_isArray3","_i4","_ref3","getAllFramesInWindow","concat","isFrameWindowClosed","contentWindow","parentNode","doc","ownerDocument","body","contains","isWindowClosed","allowMock","arguments","closed","message","mockclosed","index","iframeWindows","iframeFrames","getFrameByName","winFrames","_iterator4","_isArray4","_i6","_ref4","findChildFrameByName","_iterator5","_isArray5","_i7","_ref5","namedFrame","getAncestor","isPopup","Boolean","isIframe","anyMatch","collection1","collection2","_iterator8","_isArray8","_i10","_ref8","item1","_iterator9","_isArray9","_i11","_ref9","getDistanceFromTop","distance","getNthParent","isTop","linkFrameWindow","splice","_i5","cleanIframes","getUserAgent","navigator","mockUserAgent","userAgent","findFrameByName","isParent","frameParent","_iterator6","_isArray6","_i8","_ref6","isOpener","getAncestors","results","ancestor","isAncestor","actualParent","_iterator7","_isArray7","_i9","_ref7","isFullpage","getNthParentFromTop","isSameTopWindow","win1","win2","top1","top2","allFrames1","allFrames2","opener1","opener2","matchDomain","pattern","origin","WILDCARD","_util","isRegex","toString","match","JSON","stringify","some","subpattern","getDomainFromUrl","url","split","slice","join","onCloseWindow","callback","delay","maxtime","timeout","check","clearTimeout","setTimeout","cancel","isWindow","obj","self","_promise","ZalgoPromise","global","_conf","WINDOW_PROPS","POSTROBOT","registerSelf","_log","_serialize","_ready","_interface","INTERFACE","newObj","_receive","_send","_listeners","eachArray","item","eachObject","_key","each","_typeof","weakMapMemoize","once","constructor","stringifyError","stack","noop","addEventListener","event","handler","attachEvent","removeEventListener","detachEvent","uniqueID","chars","replace","charAt","Math","floor","random","replaceObject","depth","newobj","childItem","safeInterval","method","time","runInterval","getWindowType","_src2","WINDOW_TYPES","POPUP","IFRAME","FULLPAGE","jsonStringify","replacer","indent","objectToJSON","arrayToJSON","toJSON","jsonParse","parse","_src","called","apply","weakmap","WeakMap","arg","set","init","_global","initialized","_drivers","listenForMessages","_lib","initOnReady","listenForMethods","Promise","cleanUpWindow","_clean","_public","log","LOG_LEVELS","Function","bind","console","clearLogs","clear","CONFIG","LOG_TO_PAGE","container","document","getElementById","removeChild","writeToPage","level","args","createElement","id","style","cssText","appendChild","el","date","Date","payload","map","json","e","msg","innerHTML","color","warn","error","info","debug","childNodes","insertBefore","logLevel","LOG_LEVEL","unshift","pathname","toLowerCase","_len","_len2","_key2","_len3","_key3","_len4","_key4","POST_MESSAGE_TYPE","REQUEST","RESPONSE","ACK","POST_MESSAGE_ACK","SUCCESS","ERROR","POST_MESSAGE_NAMES","METHOD","READY","OPEN_TUNNEL","SERIALIZATION_TYPES","PROMISE","ZALGO_PROMISE","REGEX","SEND_STRATEGIES","POST_MESSAGE","BRIDGE","GLOBAL","BRIDGE_NAME_PREFIX","POSTROBOT_PROXY","POST_MESSAGE_NAMES_LIST","getRequestListener","nameListeners","requestListeners","_arr","WINDOW_WILDCARD","winQualifier","winListeners","_arr2","domainQualifier","__DOMAIN_REGEX__","regex","listener","resetListeners","responseListeners","addResponseListener","hash","getResponseListener","deleteResponseListener","addRequestListener","listenersCollection","_listenersCollection","_item","existingListener","strDomain","regexListeners","regexListener","delete","_extends","assign","target","source","sendMessage","try","options","type","sourceDomain","windowType","buildMessage","data","serializeMethods","ack","messages","serializedMessage","writable","_strategies","SEND_MESSAGE_STRATEGIES","strategyName","ALLOWED_POST_MESSAGE_METHODS","then","success","status","_weakmap","CrossDomainSafeWeakMap","hasNativeWeakMap","freeze","testWeakMap","testKey","_createClass","defineProperties","props","descriptor","Constructor","protoProps","staticProps","_native","counter","now","instance","TypeError","_classCallCheck","values","isSafeToReadWrite","entry","_cleanupClosedWindows","has","dispatchPossiblyUnhandledError","dispatchedErrors","j","possiblyUnhandledPromiseHandlers","onPossiblyUnhandledException","_utils","_exceptions","_this","resolved","rejected","errorHandled","handlers","_result","_error","isAsync","res","resolve","reject","isPromise","dispatch","_this2","_err","_this3","dispatching","_handlers$i","onSuccess","onError","promise","_this4","promises","count","context","_delay","all","Window","requestPromises","popupWindowsByWin","remoteWindows","methods","readyPromises","_defineProperty","_ALLOWED_POST_MESSAGE","ALLOW_POSTMESSAGE_POPUP","BRIDGE_TIMEOUT","ACK_TIMEOUT","RES_TIMEOUT","receiveMessage","parsedMessage","_types","RECEIVE_MESSAGE_TYPES","parseMessage","receivedMessages","deserializeMethods","messageListener","sourceElement","originalEvent","_RECEIVE_MESSAGE_TYPE","respond","fireAndForget","originalSource","catch","handleError","response","dom","postMessage","on","_src3","send","onWindowReady","isSerialized","__type__","serializeMethod","destination","__id__","__name__","deserializeMethod","wrapper","__xdomain__","deserializeError","__message__","deserializeZalgoPromise","prom","__then__","deserializePromise","deserializeRegex","RegExp","__source__","serializePromise","serializeZalgoPromise","meth","request","tagName","HTMLElement","hasResult","requestPromise","responseListener","ackTimeout","resTimeout","cycleTime","cycle","min","sendToParent","client","disable","bridge","_client","_server","listen","listenerOptions","errorHandler","requestListener","_handler","errorOnClose","interval","_on","onceListener"],"mappings":"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","file":"post-robot.js","sourcesContent":["!function(root, factory) {\n    \"object\" == typeof exports && \"object\" == typeof module ? module.exports = factory() : \"function\" == typeof define && define.amd ? define(\"postRobot\", [], factory) : \"object\" == typeof exports ? exports.postRobot = factory() : root.postRobot = factory();\n}(this, function() {\n    return function(modules) {\n        function __webpack_require__(moduleId) {\n            if (installedModules[moduleId]) return installedModules[moduleId].exports;\n            var module = installedModules[moduleId] = {\n                i: moduleId,\n                l: !1,\n                exports: {}\n            };\n            return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), \n            module.l = !0, module.exports;\n        }\n        var installedModules = {};\n        return __webpack_require__.m = modules, __webpack_require__.c = installedModules, \n        __webpack_require__.i = function(value) {\n            return value;\n        }, __webpack_require__.d = function(exports, name, getter) {\n            __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n                configurable: !1,\n                enumerable: !0,\n                get: getter\n            });\n        }, __webpack_require__.n = function(module) {\n            var getter = module && module.__esModule ? function() {\n                return module.default;\n            } : function() {\n                return module;\n            };\n            return __webpack_require__.d(getter, \"a\", getter), getter;\n        }, __webpack_require__.o = function(object, property) {\n            return Object.prototype.hasOwnProperty.call(object, property);\n        }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 25);\n    }([ function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _config = __webpack_require__(21);\n        Object.keys(_config).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _config[key];\n                }\n            });\n        });\n        var _constants = __webpack_require__(10);\n        Object.keys(_constants).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _constants[key];\n                }\n            });\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function getActualDomain(win) {\n            var location = win.location;\n            if (!location) throw new Error(\"Can not read window location\");\n            var protocol = location.protocol;\n            if (!protocol) throw new Error(\"Can not read window protocol\");\n            if (protocol === CONSTANTS.FILE_PROTOCOL) return \"file://\";\n            var host = location.host;\n            if (!host) throw new Error(\"Can not read window host\");\n            return protocol + \"//\" + host;\n        }\n        function getDomain(win) {\n            win = win || window;\n            var domain = getActualDomain(win);\n            return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;\n        }\n        function isBlankDomain(win) {\n            try {\n                if (!win.location.href) return !0;\n                if (\"about:blank\" === win.location.href) return !0;\n            } catch (err) {}\n            return !1;\n        }\n        function isActuallySameDomain(win) {\n            try {\n                var desc = Object.getOwnPropertyDescriptor(win, \"location\");\n                if (desc && !1 === desc.enumerable) return !1;\n            } catch (err) {}\n            try {\n                if (isBlankDomain(win)) return !0;\n                if (getActualDomain(win) === getActualDomain(window)) return !0;\n            } catch (err) {}\n            return !1;\n        }\n        function isSameDomain(win) {\n            if (!isActuallySameDomain(win)) return !1;\n            try {\n                if (isBlankDomain(win)) return !0;\n                if (getDomain(window) === getDomain(win)) return !0;\n            } catch (err) {}\n            return !1;\n        }\n        function getParent(win) {\n            if (win) try {\n                if (win.parent && win.parent !== win) return win.parent;\n            } catch (err) {\n                return;\n            }\n        }\n        function getOpener(win) {\n            if (win && !getParent(win)) try {\n                return win.opener;\n            } catch (err) {\n                return;\n            }\n        }\n        function getParents(win) {\n            var result = [];\n            try {\n                for (;win.parent !== win; ) result.push(win.parent), win = win.parent;\n            } catch (err) {}\n            return result;\n        }\n        function isAncestorParent(parent, child) {\n            if (!parent || !child) return !1;\n            var childParent = getParent(child);\n            return childParent ? childParent === parent : -1 !== getParents(child).indexOf(parent);\n        }\n        function getFrames(win) {\n            var result = [], frames = void 0;\n            try {\n                frames = win.frames;\n            } catch (err) {\n                frames = win;\n            }\n            var len = void 0;\n            try {\n                len = frames.length;\n            } catch (err) {}\n            if (0 === len) return result;\n            if (len) {\n                for (var i = 0; i < len; i++) {\n                    var frame = void 0;\n                    try {\n                        frame = frames[i];\n                    } catch (err) {\n                        continue;\n                    }\n                    result.push(frame);\n                }\n                return result;\n            }\n            for (var _i = 0; _i < 100; _i++) {\n                var _frame = void 0;\n                try {\n                    _frame = frames[_i];\n                } catch (err) {\n                    return result;\n                }\n                if (!_frame) return result;\n                result.push(_frame);\n            }\n            return result;\n        }\n        function getAllChildFrames(win) {\n            for (var result = [], _iterator = getFrames(win), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator](); ;) {\n                var _ref;\n                if (_isArray) {\n                    if (_i2 >= _iterator.length) break;\n                    _ref = _iterator[_i2++];\n                } else {\n                    if (_i2 = _iterator.next(), _i2.done) break;\n                    _ref = _i2.value;\n                }\n                var frame = _ref;\n                result.push(frame);\n                for (var _iterator2 = getAllChildFrames(frame), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator](); ;) {\n                    var _ref2;\n                    if (_isArray2) {\n                        if (_i3 >= _iterator2.length) break;\n                        _ref2 = _iterator2[_i3++];\n                    } else {\n                        if (_i3 = _iterator2.next(), _i3.done) break;\n                        _ref2 = _i3.value;\n                    }\n                    var childFrame = _ref2;\n                    result.push(childFrame);\n                }\n            }\n            return result;\n        }\n        function getTop(win) {\n            if (win) {\n                try {\n                    if (win.top) return win.top;\n                } catch (err) {}\n                if (getParent(win) === win) return win;\n                try {\n                    if (isAncestorParent(window, win) && window.top) return window.top;\n                } catch (err) {}\n                try {\n                    if (isAncestorParent(win, window) && window.top) return window.top;\n                } catch (err) {}\n                for (var _iterator3 = getAllChildFrames(win), _isArray3 = Array.isArray(_iterator3), _i4 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator](); ;) {\n                    var _ref3;\n                    if (_isArray3) {\n                        if (_i4 >= _iterator3.length) break;\n                        _ref3 = _iterator3[_i4++];\n                    } else {\n                        if (_i4 = _iterator3.next(), _i4.done) break;\n                        _ref3 = _i4.value;\n                    }\n                    var frame = _ref3;\n                    try {\n                        if (frame.top) return frame.top;\n                    } catch (err) {}\n                    if (getParent(frame) === frame) return frame;\n                }\n            }\n        }\n        function getAllFramesInWindow(win) {\n            var top = getTop(win);\n            return getAllChildFrames(top).concat(top);\n        }\n        function isTop(win) {\n            return win === getTop(win);\n        }\n        function isFrameWindowClosed(frame) {\n            if (!frame.contentWindow) return !0;\n            if (!frame.parentNode) return !0;\n            var doc = frame.ownerDocument;\n            return !(!doc || !doc.body || doc.body.contains(frame));\n        }\n        function isWindowClosed(win) {\n            var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n            try {\n                if (win === window) return !1;\n            } catch (err) {\n                return !0;\n            }\n            try {\n                if (!win) return !0;\n            } catch (err) {\n                return !0;\n            }\n            try {\n                if (win.closed) return !0;\n            } catch (err) {\n                return !err || \"Call was rejected by callee.\\r\\n\" !== err.message;\n            }\n            if (allowMock && isSameDomain(win)) try {\n                if (win.mockclosed) return !0;\n            } catch (err) {}\n            try {\n                if (!win.parent || !win.top) return !0;\n            } catch (err) {}\n            try {\n                var index = iframeWindows.indexOf(win);\n                if (-1 !== index) {\n                    var frame = iframeFrames[index];\n                    if (frame && isFrameWindowClosed(frame)) return !0;\n                }\n            } catch (err) {}\n            return !1;\n        }\n        function cleanIframes() {\n            for (var i = 0; i < iframeFrames.length; i++) isFrameWindowClosed(iframeFrames[i]) && (iframeFrames.splice(i, 1), \n            iframeWindows.splice(i, 1));\n            for (var _i5 = 0; _i5 < iframeWindows.length; _i5++) isWindowClosed(iframeWindows[_i5]) && (iframeFrames.splice(_i5, 1), \n            iframeWindows.splice(_i5, 1));\n        }\n        function linkFrameWindow(frame) {\n            if (cleanIframes(), frame && frame.contentWindow) try {\n                iframeWindows.push(frame.contentWindow), iframeFrames.push(frame);\n            } catch (err) {}\n        }\n        function getUserAgent(win) {\n            return win = win || window, win.navigator.mockUserAgent || win.navigator.userAgent;\n        }\n        function getFrameByName(win, name) {\n            for (var winFrames = getFrames(win), _iterator4 = winFrames, _isArray4 = Array.isArray(_iterator4), _i6 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator](); ;) {\n                var _ref4;\n                if (_isArray4) {\n                    if (_i6 >= _iterator4.length) break;\n                    _ref4 = _iterator4[_i6++];\n                } else {\n                    if (_i6 = _iterator4.next(), _i6.done) break;\n                    _ref4 = _i6.value;\n                }\n                var childFrame = _ref4;\n                try {\n                    if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame;\n                } catch (err) {}\n            }\n            try {\n                if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name];\n            } catch (err) {}\n            try {\n                if (-1 !== winFrames.indexOf(win[name])) return win[name];\n            } catch (err) {}\n        }\n        function findChildFrameByName(win, name) {\n            var frame = getFrameByName(win, name);\n            if (frame) return frame;\n            for (var _iterator5 = getFrames(win), _isArray5 = Array.isArray(_iterator5), _i7 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator](); ;) {\n                var _ref5;\n                if (_isArray5) {\n                    if (_i7 >= _iterator5.length) break;\n                    _ref5 = _iterator5[_i7++];\n                } else {\n                    if (_i7 = _iterator5.next(), _i7.done) break;\n                    _ref5 = _i7.value;\n                }\n                var childFrame = _ref5, namedFrame = findChildFrameByName(childFrame, name);\n                if (namedFrame) return namedFrame;\n            }\n        }\n        function findFrameByName(win, name) {\n            return getFrameByName(win, name) || findChildFrameByName(getTop(win), name);\n        }\n        function isParent(win, frame) {\n            var frameParent = getParent(frame);\n            if (frameParent) return frameParent === win;\n            for (var _iterator6 = getFrames(win), _isArray6 = Array.isArray(_iterator6), _i8 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator](); ;) {\n                var _ref6;\n                if (_isArray6) {\n                    if (_i8 >= _iterator6.length) break;\n                    _ref6 = _iterator6[_i8++];\n                } else {\n                    if (_i8 = _iterator6.next(), _i8.done) break;\n                    _ref6 = _i8.value;\n                }\n                if (_ref6 === frame) return !0;\n            }\n            return !1;\n        }\n        function isOpener(parent, child) {\n            return parent === getOpener(child);\n        }\n        function getAncestor(win) {\n            win = win || window;\n            var opener = getOpener(win);\n            if (opener) return opener;\n            var parent = getParent(win);\n            return parent || void 0;\n        }\n        function getAncestors(win) {\n            for (var results = [], ancestor = win; ancestor; ) (ancestor = getAncestor(ancestor)) && results.push(ancestor);\n            return results;\n        }\n        function isAncestor(parent, child) {\n            var actualParent = getAncestor(child);\n            if (actualParent) return actualParent === parent;\n            if (child === parent) return !1;\n            if (getTop(child) === child) return !1;\n            for (var _iterator7 = getFrames(parent), _isArray7 = Array.isArray(_iterator7), _i9 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator](); ;) {\n                var _ref7;\n                if (_isArray7) {\n                    if (_i9 >= _iterator7.length) break;\n                    _ref7 = _iterator7[_i9++];\n                } else {\n                    if (_i9 = _iterator7.next(), _i9.done) break;\n                    _ref7 = _i9.value;\n                }\n                if (_ref7 === child) return !0;\n            }\n            return !1;\n        }\n        function isPopup() {\n            return Boolean(getOpener(window));\n        }\n        function isIframe() {\n            return Boolean(getParent(window));\n        }\n        function isFullpage() {\n            return Boolean(!isIframe() && !isPopup());\n        }\n        function anyMatch(collection1, collection2) {\n            for (var _iterator8 = collection1, _isArray8 = Array.isArray(_iterator8), _i10 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator](); ;) {\n                var _ref8;\n                if (_isArray8) {\n                    if (_i10 >= _iterator8.length) break;\n                    _ref8 = _iterator8[_i10++];\n                } else {\n                    if (_i10 = _iterator8.next(), _i10.done) break;\n                    _ref8 = _i10.value;\n                }\n                for (var item1 = _ref8, _iterator9 = collection2, _isArray9 = Array.isArray(_iterator9), _i11 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator](); ;) {\n                    var _ref9;\n                    if (_isArray9) {\n                        if (_i11 >= _iterator9.length) break;\n                        _ref9 = _iterator9[_i11++];\n                    } else {\n                        if (_i11 = _iterator9.next(), _i11.done) break;\n                        _ref9 = _i11.value;\n                    }\n                    if (item1 === _ref9) return !0;\n                }\n            }\n        }\n        function getDistanceFromTop() {\n            for (var win = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window, distance = 0; win; ) (win = getParent(win)) && (distance += 1);\n            return distance;\n        }\n        function getNthParent(win) {\n            for (var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, i = 0; i < n; i++) win = getParent(win);\n            return win;\n        }\n        function getNthParentFromTop(win) {\n            var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;\n            return getNthParent(win, getDistanceFromTop(win) - n);\n        }\n        function isSameTopWindow(win1, win2) {\n            var top1 = getTop(win1), top2 = getTop(win2);\n            try {\n                if (top1 && top2) return top1 === top2;\n            } catch (err) {}\n            var allFrames1 = getAllFramesInWindow(win1), allFrames2 = getAllFramesInWindow(win2);\n            if (anyMatch(allFrames1, allFrames2)) return !0;\n            var opener1 = getOpener(top1), opener2 = getOpener(top2);\n            return (!opener1 || !anyMatch(getAllFramesInWindow(opener1), allFrames2)) && ((!opener2 || !anyMatch(getAllFramesInWindow(opener2), allFrames1)) && void 0);\n        }\n        function matchDomain(pattern, origin) {\n            if (\"string\" == typeof pattern) {\n                if (\"string\" == typeof origin) return pattern === CONSTANTS.WILDCARD || origin === pattern;\n                if ((0, _util.isRegex)(origin)) return !1;\n                if (Array.isArray(origin)) return !1;\n            }\n            return (0, _util.isRegex)(pattern) ? (0, _util.isRegex)(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !(0, \n            _util.isRegex)(origin) && pattern.some(function(subpattern) {\n                return matchDomain(subpattern, origin);\n            }));\n        }\n        function getDomainFromUrl(url) {\n            var domain = void 0;\n            return url.match(/^(https?|mock|file):\\/\\//) ? (domain = url, domain = domain.split(\"/\").slice(0, 3).join(\"/\")) : getDomain();\n        }\n        function onCloseWindow(win, callback) {\n            var delay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1e3, maxtime = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1 / 0, timeout = void 0;\n            return function check() {\n                if (isWindowClosed(win)) return timeout && clearTimeout(timeout), callback();\n                maxtime <= 0 ? clearTimeout(timeout) : (maxtime -= delay, timeout = setTimeout(check, delay));\n            }(), {\n                cancel: function() {\n                    timeout && clearTimeout(timeout);\n                }\n            };\n        }\n        function isWindow(obj) {\n            try {\n                if (obj && obj.self === obj) return !0;\n            } catch (err) {}\n            return !1;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.getActualDomain = getActualDomain, exports.getDomain = getDomain, exports.isBlankDomain = isBlankDomain, \n        exports.isActuallySameDomain = isActuallySameDomain, exports.isSameDomain = isSameDomain, \n        exports.getParent = getParent, exports.getOpener = getOpener, exports.getParents = getParents, \n        exports.isAncestorParent = isAncestorParent, exports.getFrames = getFrames, exports.getAllChildFrames = getAllChildFrames, \n        exports.getTop = getTop, exports.getAllFramesInWindow = getAllFramesInWindow, exports.isTop = isTop, \n        exports.isFrameWindowClosed = isFrameWindowClosed, exports.isWindowClosed = isWindowClosed, \n        exports.linkFrameWindow = linkFrameWindow, exports.getUserAgent = getUserAgent, \n        exports.getFrameByName = getFrameByName, exports.findChildFrameByName = findChildFrameByName, \n        exports.findFrameByName = findFrameByName, exports.isParent = isParent, exports.isOpener = isOpener, \n        exports.getAncestor = getAncestor, exports.getAncestors = getAncestors, exports.isAncestor = isAncestor, \n        exports.isPopup = isPopup, exports.isIframe = isIframe, exports.isFullpage = isFullpage, \n        exports.getDistanceFromTop = getDistanceFromTop, exports.getNthParent = getNthParent, \n        exports.getNthParentFromTop = getNthParentFromTop, exports.isSameTopWindow = isSameTopWindow, \n        exports.matchDomain = matchDomain, exports.getDomainFromUrl = getDomainFromUrl, \n        exports.onCloseWindow = onCloseWindow, exports.isWindow = isWindow;\n        var _util = __webpack_require__(16), CONSTANTS = {\n            MOCK_PROTOCOL: \"mock:\",\n            FILE_PROTOCOL: \"file:\",\n            WILDCARD: \"*\"\n        }, iframeWindows = [], iframeFrames = [];\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _promise = __webpack_require__(18);\n        Object.defineProperty(exports, \"ZalgoPromise\", {\n            enumerable: !0,\n            get: function() {\n                return _promise.ZalgoPromise;\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.global = void 0;\n        var _conf = __webpack_require__(0);\n        (exports.global = window[_conf.CONSTANTS.WINDOW_PROPS.POSTROBOT] = window[_conf.CONSTANTS.WINDOW_PROPS.POSTROBOT] || {}).registerSelf = function() {};\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _util = __webpack_require__(7);\n        Object.keys(_util).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _util[key];\n                }\n            });\n        });\n        var _log = __webpack_require__(9);\n        Object.keys(_log).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _log[key];\n                }\n            });\n        });\n        var _serialize = __webpack_require__(27);\n        Object.keys(_serialize).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _serialize[key];\n                }\n            });\n        });\n        var _ready = __webpack_require__(26);\n        Object.keys(_ready).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _ready[key];\n                }\n            });\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _interface = __webpack_require__(13);\n        Object.keys(_interface).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _interface[key];\n                }\n            });\n        });\n        var INTERFACE = function(obj) {\n            if (obj && obj.__esModule) return obj;\n            var newObj = {};\n            if (null != obj) for (var key in obj) Object.prototype.hasOwnProperty.call(obj, key) && (newObj[key] = obj[key]);\n            return newObj.default = obj, newObj;\n        }(_interface);\n        exports.default = INTERFACE;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _receive = __webpack_require__(22);\n        Object.keys(_receive).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _receive[key];\n                }\n            });\n        });\n        var _send = __webpack_require__(12);\n        Object.keys(_send).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _send[key];\n                }\n            });\n        });\n        var _listeners = __webpack_require__(11);\n        Object.keys(_listeners).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _listeners[key];\n                }\n            });\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function stringifyError(err) {\n            if (!err) return \"<unknown error: \" + Object.prototype.toString.call(err) + \">\";\n            if (\"string\" == typeof err) return err;\n            if (err instanceof Error) {\n                var stack = err && err.stack, message = err && err.message;\n                if (stack && message) return -1 !== stack.indexOf(message) ? stack : message + \"\\n\" + stack;\n                if (stack) return stack;\n                if (message) return message;\n            }\n            return \"function\" == typeof err.toString ? err.toString() : Object.prototype.toString.call(err);\n        }\n        function noop() {}\n        function addEventListener(obj, event, handler) {\n            return obj.addEventListener ? obj.addEventListener(event, handler) : obj.attachEvent(\"on\" + event, handler), \n            {\n                cancel: function() {\n                    obj.removeEventListener ? obj.removeEventListener(event, handler) : obj.detachEvent(\"on\" + event, handler);\n                }\n            };\n        }\n        function uniqueID() {\n            var chars = \"0123456789abcdef\";\n            return \"xxxxxxxxxx\".replace(/./g, function() {\n                return chars.charAt(Math.floor(Math.random() * chars.length));\n            });\n        }\n        function eachArray(item, callback) {\n            for (var i = 0; i < item.length; i++) callback(item[i], i);\n        }\n        function eachObject(item, callback) {\n            for (var _key in item) item.hasOwnProperty(_key) && callback(item[_key], _key);\n        }\n        function each(item, callback) {\n            Array.isArray(item) ? eachArray(item, callback) : \"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item && eachObject(item, callback);\n        }\n        function replaceObject(item, callback) {\n            var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\n            if (depth >= 100) throw new Error(\"Self-referential object passed, or object contained too many layers\");\n            var newobj = void 0;\n            if (\"object\" !== (void 0 === item ? \"undefined\" : _typeof(item)) || null === item || Array.isArray(item)) {\n                if (!Array.isArray(item)) throw new Error(\"Invalid type: \" + (void 0 === item ? \"undefined\" : _typeof(item)));\n                newobj = [];\n            } else newobj = {};\n            return each(item, function(childItem, key) {\n                var result = callback(childItem, key);\n                void 0 !== result ? newobj[key] = result : \"object\" === (void 0 === childItem ? \"undefined\" : _typeof(childItem)) && null !== childItem ? newobj[key] = replaceObject(childItem, callback, depth + 1) : newobj[key] = childItem;\n            }), newobj;\n        }\n        function safeInterval(method, time) {\n            function runInterval() {\n                timeout = setTimeout(runInterval, time), method.call();\n            }\n            var timeout = void 0;\n            return timeout = setTimeout(runInterval, time), {\n                cancel: function() {\n                    clearTimeout(timeout);\n                }\n            };\n        }\n        function isRegex(item) {\n            return \"[object RegExp]\" === Object.prototype.toString.call(item);\n        }\n        function getWindowType() {\n            return (0, _src2.isPopup)() ? _conf.CONSTANTS.WINDOW_TYPES.POPUP : (0, _src2.isIframe)() ? _conf.CONSTANTS.WINDOW_TYPES.IFRAME : _conf.CONSTANTS.WINDOW_TYPES.FULLPAGE;\n        }\n        function jsonStringify(obj, replacer, indent) {\n            var objectToJSON = void 0, arrayToJSON = void 0;\n            try {\n                if (\"{}\" !== JSON.stringify({}) && (objectToJSON = Object.prototype.toJSON, delete Object.prototype.toJSON), \n                \"{}\" !== JSON.stringify({})) throw new Error(\"Can not correctly serialize JSON objects\");\n                if (\"[]\" !== JSON.stringify([]) && (arrayToJSON = Array.prototype.toJSON, delete Array.prototype.toJSON), \n                \"[]\" !== JSON.stringify([])) throw new Error(\"Can not correctly serialize JSON objects\");\n            } catch (err) {\n                throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n            }\n            var result = JSON.stringify.call(this, obj, replacer, indent);\n            try {\n                objectToJSON && (Object.prototype.toJSON = objectToJSON), arrayToJSON && (Array.prototype.toJSON = arrayToJSON);\n            } catch (err) {\n                throw new Error(\"Can not repair JSON.stringify: \" + err.message);\n            }\n            return result;\n        }\n        function jsonParse(item) {\n            return JSON.parse(item);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.weakMapMemoize = exports.once = void 0;\n        var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n            return typeof obj;\n        } : function(obj) {\n            return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n        };\n        exports.stringifyError = stringifyError, exports.noop = noop, exports.addEventListener = addEventListener, \n        exports.uniqueID = uniqueID, exports.eachArray = eachArray, exports.eachObject = eachObject, \n        exports.each = each, exports.replaceObject = replaceObject, exports.safeInterval = safeInterval, \n        exports.isRegex = isRegex, exports.getWindowType = getWindowType, exports.jsonStringify = jsonStringify, \n        exports.jsonParse = jsonParse;\n        var _src = __webpack_require__(5), _src2 = __webpack_require__(1), _conf = __webpack_require__(0);\n        exports.once = function(method) {\n            if (!method) return method;\n            var called = !1;\n            return function() {\n                if (!called) return called = !0, method.apply(this, arguments);\n            };\n        }, exports.weakMapMemoize = function(method) {\n            var weakmap = new _src.WeakMap();\n            return function(arg) {\n                var result = weakmap.get(arg);\n                return void 0 !== result ? result : (result = method.call(this, arg), void 0 !== result && weakmap.set(arg, result), \n                result);\n            };\n        };\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function init() {\n            _global.global.initialized || ((0, _drivers.listenForMessages)(), (0, _lib.initOnReady)(), \n            (0, _lib.listenForMethods)()), _global.global.initialized = !0;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.Promise = exports.cleanUpWindow = void 0;\n        var _clean = __webpack_require__(20);\n        Object.defineProperty(exports, \"cleanUpWindow\", {\n            enumerable: !0,\n            get: function() {\n                return _clean.cleanUpWindow;\n            }\n        }), exports.init = init;\n        var _public = __webpack_require__(30);\n        Object.keys(_public).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _public[key];\n                }\n            });\n        });\n        var _src = __webpack_require__(2);\n        Object.defineProperty(exports, \"Promise\", {\n            enumerable: !0,\n            get: function() {\n                return _src.ZalgoPromise;\n            }\n        });\n        var _lib = __webpack_require__(4), _drivers = __webpack_require__(6), _global = __webpack_require__(3);\n        init();\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.log = void 0;\n        var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n            return typeof obj;\n        } : function(obj) {\n            return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n        }, _util = __webpack_require__(7), _conf = __webpack_require__(0), LOG_LEVELS = [ \"debug\", \"info\", \"warn\", \"error\" ];\n        Function.prototype.bind && window.console && \"object\" === _typeof(console.log) && [ \"log\", \"info\", \"warn\", \"error\" ].forEach(function(method) {\n            console[method] = this.bind(console[method], console);\n        }, Function.prototype.call);\n        var log = exports.log = {\n            clearLogs: function() {\n                if (window.console && window.console.clear && window.console.clear(), _conf.CONFIG.LOG_TO_PAGE) {\n                    var container = document.getElementById(\"postRobotLogs\");\n                    container && container.parentNode && container.parentNode.removeChild(container);\n                }\n            },\n            writeToPage: function(level, args) {\n                setTimeout(function() {\n                    var container = document.getElementById(\"postRobotLogs\");\n                    container || (container = document.createElement(\"div\"), container.id = \"postRobotLogs\", \n                    container.style.cssText = \"width: 800px; font-family: monospace; white-space: pre-wrap;\", \n                    document.body && document.body.appendChild(container));\n                    var el = document.createElement(\"div\"), date = new Date().toString().split(\" \")[4], payload = Array.prototype.slice.call(args).map(function(item) {\n                        if (\"string\" == typeof item) return item;\n                        if (!item) return Object.prototype.toString.call(item);\n                        var json = void 0;\n                        try {\n                            json = (0, _util.jsonStringify)(item, null, 2);\n                        } catch (e) {\n                            json = \"[object]\";\n                        }\n                        return \"\\n\\n\" + json + \"\\n\\n\";\n                    }).join(\" \"), msg = date + \" \" + level + \" \" + payload;\n                    el.innerHTML = msg;\n                    var color = {\n                        log: \"#ddd\",\n                        warn: \"orange\",\n                        error: \"red\",\n                        info: \"blue\",\n                        debug: \"#aaa\"\n                    }[level];\n                    el.style.cssText = \"margin-top: 10px; color: \" + color + \";\", container.childNodes.length ? container.insertBefore(el, container.childNodes[0]) : container.appendChild(el);\n                });\n            },\n            logLevel: function(level, args) {\n                setTimeout(function() {\n                    try {\n                        var logLevel = window.LOG_LEVEL || _conf.CONFIG.LOG_LEVEL;\n                        if (LOG_LEVELS.indexOf(level) < LOG_LEVELS.indexOf(logLevel)) return;\n                        if (args = Array.prototype.slice.call(args), args.unshift(\"\" + window.location.host + window.location.pathname), \n                        args.unshift(\"::\"), args.unshift(\"\" + (0, _util.getWindowType)().toLowerCase()), \n                        args.unshift(\"[post-robot]\"), _conf.CONFIG.LOG_TO_PAGE && log.writeToPage(level, args), \n                        !window.console) return;\n                        if (window.console[level] || (level = \"log\"), !window.console[level]) return;\n                        window.console[level].apply(window.console, args);\n                    } catch (err) {}\n                }, 1);\n            },\n            debug: function() {\n                for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) args[_key] = arguments[_key];\n                log.logLevel(\"debug\", args);\n            },\n            info: function() {\n                for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) args[_key2] = arguments[_key2];\n                log.logLevel(\"info\", args);\n            },\n            warn: function() {\n                for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) args[_key3] = arguments[_key3];\n                log.logLevel(\"warn\", args);\n            },\n            error: function() {\n                for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) args[_key4] = arguments[_key4];\n                log.logLevel(\"error\", args);\n            }\n        };\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var CONSTANTS = exports.CONSTANTS = {\n            POST_MESSAGE_TYPE: {\n                REQUEST: \"postrobot_message_request\",\n                RESPONSE: \"postrobot_message_response\",\n                ACK: \"postrobot_message_ack\"\n            },\n            POST_MESSAGE_ACK: {\n                SUCCESS: \"success\",\n                ERROR: \"error\"\n            },\n            POST_MESSAGE_NAMES: {\n                METHOD: \"postrobot_method\",\n                READY: \"postrobot_ready\",\n                OPEN_TUNNEL: \"postrobot_open_tunnel\"\n            },\n            WINDOW_TYPES: {\n                FULLPAGE: \"fullpage\",\n                POPUP: \"popup\",\n                IFRAME: \"iframe\"\n            },\n            WINDOW_PROPS: {\n                POSTROBOT: \"__postRobot__\"\n            },\n            SERIALIZATION_TYPES: {\n                METHOD: \"postrobot_method\",\n                ERROR: \"postrobot_error\",\n                PROMISE: \"postrobot_promise\",\n                ZALGO_PROMISE: \"postrobot_zalgo_promise\",\n                REGEX: \"regex\"\n            },\n            SEND_STRATEGIES: {\n                POST_MESSAGE: \"postrobot_post_message\",\n                BRIDGE: \"postrobot_bridge\",\n                GLOBAL: \"postrobot_global\"\n            },\n            MOCK_PROTOCOL: \"mock:\",\n            FILE_PROTOCOL: \"file:\",\n            BRIDGE_NAME_PREFIX: \"__postrobot_bridge__\",\n            POSTROBOT_PROXY: \"__postrobot_proxy__\",\n            WILDCARD: \"*\"\n        };\n        exports.POST_MESSAGE_NAMES_LIST = Object.keys(CONSTANTS.POST_MESSAGE_NAMES).map(function(key) {\n            return CONSTANTS.POST_MESSAGE_NAMES[key];\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function resetListeners() {\n            _global.global.responseListeners = {}, _global.global.requestListeners = {};\n        }\n        function addResponseListener(hash, listener) {\n            _global.global.responseListeners[hash] = listener;\n        }\n        function getResponseListener(hash) {\n            return _global.global.responseListeners[hash];\n        }\n        function deleteResponseListener(hash) {\n            delete _global.global.responseListeners[hash];\n        }\n        function getRequestListener(_ref) {\n            var name = _ref.name, win = _ref.win, domain = _ref.domain;\n            if (win === _conf.CONSTANTS.WILDCARD && (win = null), domain === _conf.CONSTANTS.WILDCARD && (domain = null), \n            !name) throw new Error(\"Name required to get request listener\");\n            var nameListeners = _global.global.requestListeners[name];\n            if (nameListeners) for (var _arr = [ win, _global.global.WINDOW_WILDCARD ], _i = 0; _i < _arr.length; _i++) {\n                var winQualifier = _arr[_i], winListeners = winQualifier && nameListeners.get(winQualifier);\n                if (winListeners) {\n                    for (var _arr2 = [ domain, _conf.CONSTANTS.WILDCARD ], _i2 = 0; _i2 < _arr2.length; _i2++) {\n                        var domainQualifier = _arr2[_i2];\n                        if (domainQualifier && (domainQualifier = domainQualifier.toString(), winListeners[domainQualifier])) return winListeners[domainQualifier];\n                    }\n                    if (winListeners[__DOMAIN_REGEX__]) for (var _iterator = winListeners[__DOMAIN_REGEX__], _isArray = Array.isArray(_iterator), _i3 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator](); ;) {\n                        var _ref3;\n                        if (_isArray) {\n                            if (_i3 >= _iterator.length) break;\n                            _ref3 = _iterator[_i3++];\n                        } else {\n                            if (_i3 = _iterator.next(), _i3.done) break;\n                            _ref3 = _i3.value;\n                        }\n                        var _ref4 = _ref3, regex = _ref4.regex, listener = _ref4.listener;\n                        if ((0, _src2.matchDomain)(regex, domain)) return listener;\n                    }\n                }\n            }\n        }\n        function addRequestListener(_ref5, listener) {\n            var name = _ref5.name, win = _ref5.win, domain = _ref5.domain;\n            if (!name || \"string\" != typeof name) throw new Error(\"Name required to add request listener\");\n            if (Array.isArray(win)) {\n                for (var listenersCollection = [], _iterator2 = win, _isArray2 = Array.isArray(_iterator2), _i4 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator](); ;) {\n                    var _ref6;\n                    if (_isArray2) {\n                        if (_i4 >= _iterator2.length) break;\n                        _ref6 = _iterator2[_i4++];\n                    } else {\n                        if (_i4 = _iterator2.next(), _i4.done) break;\n                        _ref6 = _i4.value;\n                    }\n                    var item = _ref6;\n                    listenersCollection.push(addRequestListener({\n                        name: name,\n                        domain: domain,\n                        win: item\n                    }, listener));\n                }\n                return {\n                    cancel: function() {\n                        for (var _iterator3 = listenersCollection, _isArray3 = Array.isArray(_iterator3), _i5 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator](); ;) {\n                            var _ref7;\n                            if (_isArray3) {\n                                if (_i5 >= _iterator3.length) break;\n                                _ref7 = _iterator3[_i5++];\n                            } else {\n                                if (_i5 = _iterator3.next(), _i5.done) break;\n                                _ref7 = _i5.value;\n                            }\n                            _ref7.cancel();\n                        }\n                    }\n                };\n            }\n            if (Array.isArray(domain)) {\n                for (var _listenersCollection = [], _iterator4 = domain, _isArray4 = Array.isArray(_iterator4), _i6 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator](); ;) {\n                    var _ref8;\n                    if (_isArray4) {\n                        if (_i6 >= _iterator4.length) break;\n                        _ref8 = _iterator4[_i6++];\n                    } else {\n                        if (_i6 = _iterator4.next(), _i6.done) break;\n                        _ref8 = _i6.value;\n                    }\n                    var _item = _ref8;\n                    _listenersCollection.push(addRequestListener({\n                        name: name,\n                        win: win,\n                        domain: _item\n                    }, listener));\n                }\n                return {\n                    cancel: function() {\n                        for (var _iterator5 = _listenersCollection, _isArray5 = Array.isArray(_iterator5), _i7 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator](); ;) {\n                            var _ref9;\n                            if (_isArray5) {\n                                if (_i7 >= _iterator5.length) break;\n                                _ref9 = _iterator5[_i7++];\n                            } else {\n                                if (_i7 = _iterator5.next(), _i7.done) break;\n                                _ref9 = _i7.value;\n                            }\n                            _ref9.cancel();\n                        }\n                    }\n                };\n            }\n            var existingListener = getRequestListener({\n                name: name,\n                win: win,\n                domain: domain\n            });\n            if (win && win !== _conf.CONSTANTS.WILDCARD || (win = _global.global.WINDOW_WILDCARD), \n            domain = domain || _conf.CONSTANTS.WILDCARD, existingListener) throw win && domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString() + \" for specified window\") : win ? new Error(\"Request listener already exists for \" + name + \" for specified window\") : domain ? new Error(\"Request listener already exists for \" + name + \" on domain \" + domain.toString()) : new Error(\"Request listener already exists for \" + name);\n            var requestListeners = _global.global.requestListeners, nameListeners = requestListeners[name];\n            nameListeners || (nameListeners = new _src.WeakMap(), requestListeners[name] = nameListeners);\n            var winListeners = nameListeners.get(win);\n            winListeners || (winListeners = {}, nameListeners.set(win, winListeners));\n            var strDomain = domain.toString();\n            winListeners[strDomain] = listener;\n            var regexListeners = winListeners[__DOMAIN_REGEX__], regexListener = void 0;\n            return (0, _lib.isRegex)(domain) && (regexListeners || (regexListeners = [], winListeners[__DOMAIN_REGEX__] = regexListeners), \n            regexListener = {\n                regex: domain,\n                listener: listener\n            }, regexListeners.push(regexListener)), {\n                cancel: function() {\n                    winListeners && (delete winListeners[strDomain], win && 0 === Object.keys(winListeners).length && nameListeners.delete(win), \n                    regexListener && regexListeners.splice(regexListeners.indexOf(regexListener, 1)));\n                }\n            };\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.resetListeners = resetListeners, exports.addResponseListener = addResponseListener, \n        exports.getResponseListener = getResponseListener, exports.deleteResponseListener = deleteResponseListener, \n        exports.getRequestListener = getRequestListener, exports.addRequestListener = addRequestListener, \n        __webpack_require__(2);\n        var _src = __webpack_require__(5), _src2 = __webpack_require__(1), _global = __webpack_require__(3), _lib = __webpack_require__(4), _conf = __webpack_require__(0);\n        _global.global.responseListeners = _global.global.responseListeners || {}, _global.global.requestListeners = _global.global.requestListeners || {}, \n        _global.global.WINDOW_WILDCARD = _global.global.WINDOW_WILDCARD || new function() {}();\n        var __DOMAIN_REGEX__ = \"__domain_regex__\";\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _defineProperty(obj, key, value) {\n            return key in obj ? Object.defineProperty(obj, key, {\n                value: value,\n                enumerable: !0,\n                configurable: !0,\n                writable: !0\n            }) : obj[key] = value, obj;\n        }\n        function buildMessage(win, message) {\n            var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, id = (0, \n            _lib.uniqueID)(), type = (0, _lib.getWindowType)(), sourceDomain = (0, _src.getDomain)(window);\n            return _extends({}, message, options, {\n                sourceDomain: sourceDomain,\n                id: message.id || id,\n                windowType: type\n            });\n        }\n        function sendMessage(win, message, domain) {\n            return _src2.ZalgoPromise.try(function() {\n                message = buildMessage(win, message, {\n                    data: (0, _lib.serializeMethods)(win, domain, message.data),\n                    domain: domain\n                });\n                var level = void 0;\n                if (level = -1 !== _conf.POST_MESSAGE_NAMES_LIST.indexOf(message.name) || message.type === _conf.CONSTANTS.POST_MESSAGE_TYPE.ACK ? \"debug\" : \"error\" === message.ack ? \"error\" : \"info\", \n                _lib.log.logLevel(level, [ \"\\n\\n\\t\", \"#send\", message.type.replace(/^postrobot_message_/, \"\"), \"::\", message.name, \"::\", domain || _conf.CONSTANTS.WILDCARD, \"\\n\\n\", message ]), \n                win === window) throw new Error(\"Attemping to send message to self\");\n                if ((0, _src.isWindowClosed)(win)) throw new Error(\"Window is closed\");\n                _lib.log.debug(\"Running send message strategies\", message);\n                var messages = [], serializedMessage = (0, _lib.jsonStringify)(_defineProperty({}, _conf.CONSTANTS.WINDOW_PROPS.POSTROBOT, message), null, 2);\n                return _src2.ZalgoPromise.map(Object.keys(_strategies.SEND_MESSAGE_STRATEGIES), function(strategyName) {\n                    return _src2.ZalgoPromise.try(function() {\n                        if (!_conf.CONFIG.ALLOWED_POST_MESSAGE_METHODS[strategyName]) throw new Error(\"Strategy disallowed: \" + strategyName);\n                        return _strategies.SEND_MESSAGE_STRATEGIES[strategyName](win, serializedMessage, domain);\n                    }).then(function() {\n                        return messages.push(strategyName + \": success\"), !0;\n                    }, function(err) {\n                        return messages.push(strategyName + \": \" + (0, _lib.stringifyError)(err) + \"\\n\"), \n                        !1;\n                    });\n                }).then(function(results) {\n                    var success = results.some(Boolean), status = message.type + \" \" + message.name + \" \" + (success ? \"success\" : \"error\") + \":\\n  - \" + messages.join(\"\\n  - \") + \"\\n\";\n                    if (_lib.log.debug(status), !success) throw new Error(status);\n                });\n            });\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _extends = Object.assign || function(target) {\n            for (var i = 1; i < arguments.length; i++) {\n                var source = arguments[i];\n                for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n            }\n            return target;\n        };\n        exports.sendMessage = sendMessage;\n        var _src = __webpack_require__(1), _src2 = __webpack_require__(2), _conf = __webpack_require__(0), _lib = __webpack_require__(4), _strategies = __webpack_require__(24);\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _weakmap = __webpack_require__(15);\n        Object.defineProperty(exports, \"WeakMap\", {\n            enumerable: !0,\n            get: function() {\n                return _weakmap.CrossDomainSafeWeakMap;\n            }\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function hasNativeWeakMap() {\n            if (!window.WeakMap) return !1;\n            if (!window.Object.freeze) return !1;\n            try {\n                var testWeakMap = new window.WeakMap(), testKey = {};\n                return window.Object.freeze(testKey), testWeakMap.set(testKey, \"__testvalue__\"), \n                \"__testvalue__\" === testWeakMap.get(testKey);\n            } catch (err) {\n                return !1;\n            }\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.hasNativeWeakMap = hasNativeWeakMap;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _classCallCheck(instance, Constructor) {\n            if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.CrossDomainSafeWeakMap = void 0;\n        var _createClass = function() {\n            function defineProperties(target, props) {\n                for (var i = 0; i < props.length; i++) {\n                    var descriptor = props[i];\n                    descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, \n                    \"value\" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);\n                }\n            }\n            return function(Constructor, protoProps, staticProps) {\n                return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), \n                Constructor;\n            };\n        }(), _src = __webpack_require__(1), _native = __webpack_require__(14), defineProperty = Object.defineProperty, counter = Date.now() % 1e9;\n        exports.CrossDomainSafeWeakMap = function() {\n            function CrossDomainSafeWeakMap() {\n                if (_classCallCheck(this, CrossDomainSafeWeakMap), counter += 1, this.name = \"__weakmap_\" + (1e9 * Math.random() >>> 0) + \"__\" + counter, \n                (0, _native.hasNativeWeakMap)()) try {\n                    this.weakmap = new window.WeakMap();\n                } catch (err) {}\n                this.keys = [], this.values = [];\n            }\n            return _createClass(CrossDomainSafeWeakMap, [ {\n                key: \"_cleanupClosedWindows\",\n                value: function() {\n                    for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {\n                        var value = keys[i];\n                        if ((0, _src.isWindowClosed)(value)) {\n                            if (weakmap) try {\n                                weakmap.delete(value);\n                            } catch (err) {}\n                            keys.splice(i, 1), this.values.splice(i, 1), i -= 1;\n                        }\n                    }\n                }\n            }, {\n                key: \"isSafeToReadWrite\",\n                value: function(key) {\n                    if ((0, _src.isWindow)(key)) return !1;\n                    try {\n                        key && key.self, key && key[this.name];\n                    } catch (err) {\n                        return !1;\n                    }\n                    return !0;\n                }\n            }, {\n                key: \"set\",\n                value: function(key, value) {\n                    if (!key) throw new Error(\"WeakMap expected key\");\n                    var weakmap = this.weakmap;\n                    if (weakmap) try {\n                        weakmap.set(key, value);\n                    } catch (err) {\n                        delete this.weakmap;\n                    }\n                    if (this.isSafeToReadWrite(key)) {\n                        var name = this.name, entry = key[name];\n                        entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {\n                            value: [ key, value ],\n                            writable: !0\n                        });\n                    } else {\n                        this._cleanupClosedWindows();\n                        var keys = this.keys, values = this.values, index = keys.indexOf(key);\n                        -1 === index ? (keys.push(key), values.push(value)) : values[index] = value;\n                    }\n                }\n            }, {\n                key: \"get\",\n                value: function(key) {\n                    if (!key) throw new Error(\"WeakMap expected key\");\n                    var weakmap = this.weakmap;\n                    if (weakmap) try {\n                        if (weakmap.has(key)) return weakmap.get(key);\n                    } catch (err) {\n                        delete this.weakmap;\n                    }\n                    if (!this.isSafeToReadWrite(key)) {\n                        this._cleanupClosedWindows();\n                        var keys = this.keys, index = keys.indexOf(key);\n                        if (-1 === index) return;\n                        return this.values[index];\n                    }\n                    var entry = key[this.name];\n                    if (entry && entry[0] === key) return entry[1];\n                }\n            }, {\n                key: \"delete\",\n                value: function(key) {\n                    if (!key) throw new Error(\"WeakMap expected key\");\n                    var weakmap = this.weakmap;\n                    if (weakmap) try {\n                        weakmap.delete(key);\n                    } catch (err) {\n                        delete this.weakmap;\n                    }\n                    if (this.isSafeToReadWrite(key)) {\n                        var entry = key[this.name];\n                        entry && entry[0] === key && (entry[0] = entry[1] = void 0);\n                    } else {\n                        this._cleanupClosedWindows();\n                        var keys = this.keys, index = keys.indexOf(key);\n                        -1 !== index && (keys.splice(index, 1), this.values.splice(index, 1));\n                    }\n                }\n            }, {\n                key: \"has\",\n                value: function(key) {\n                    if (!key) throw new Error(\"WeakMap expected key\");\n                    var weakmap = this.weakmap;\n                    if (weakmap) try {\n                        return weakmap.has(key);\n                    } catch (err) {\n                        delete this.weakmap;\n                    }\n                    if (this.isSafeToReadWrite(key)) {\n                        var entry = key[this.name];\n                        return !(!entry || entry[0] !== key);\n                    }\n                    return this._cleanupClosedWindows(), -1 !== this.keys.indexOf(key);\n                }\n            } ]), CrossDomainSafeWeakMap;\n        }();\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function isRegex(item) {\n            return \"[object RegExp]\" === Object.prototype.toString.call(item);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.isRegex = isRegex;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function dispatchPossiblyUnhandledError(err) {\n            if (-1 === dispatchedErrors.indexOf(err)) {\n                dispatchedErrors.push(err), setTimeout(function() {\n                    throw err;\n                }, 1);\n                for (var j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) possiblyUnhandledPromiseHandlers[j](err);\n            }\n        }\n        function onPossiblyUnhandledException(handler) {\n            return possiblyUnhandledPromiseHandlers.push(handler), {\n                cancel: function() {\n                    possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n                }\n            };\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.dispatchPossiblyUnhandledError = dispatchPossiblyUnhandledError, exports.onPossiblyUnhandledException = onPossiblyUnhandledException;\n        var possiblyUnhandledPromiseHandlers = [], dispatchedErrors = [];\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _classCallCheck(instance, Constructor) {\n            if (!(instance instanceof Constructor)) throw new TypeError(\"Cannot call a class as a function\");\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.ZalgoPromise = void 0;\n        var _createClass = function() {\n            function defineProperties(target, props) {\n                for (var i = 0; i < props.length; i++) {\n                    var descriptor = props[i];\n                    descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, \n                    \"value\" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor);\n                }\n            }\n            return function(Constructor, protoProps, staticProps) {\n                return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), \n                Constructor;\n            };\n        }(), _utils = __webpack_require__(19), _exceptions = __webpack_require__(17), ZalgoPromise = function() {\n            function ZalgoPromise(handler) {\n                var _this = this;\n                if (_classCallCheck(this, ZalgoPromise), this.resolved = !1, this.rejected = !1, \n                this.errorHandled = !1, this.handlers = [], handler) {\n                    var _result = void 0, _error = void 0, resolved = !1, rejected = !1, isAsync = !1;\n                    try {\n                        handler(function(res) {\n                            isAsync ? _this.resolve(res) : (resolved = !0, _result = res);\n                        }, function(err) {\n                            isAsync ? _this.reject(err) : (rejected = !0, _error = err);\n                        });\n                    } catch (err) {\n                        return void this.reject(err);\n                    }\n                    isAsync = !0, resolved ? this.resolve(_result) : rejected && this.reject(_error);\n                }\n            }\n            return _createClass(ZalgoPromise, [ {\n                key: \"resolve\",\n                value: function(result) {\n                    if (this.resolved || this.rejected) return this;\n                    if ((0, _utils.isPromise)(result)) throw new Error(\"Can not resolve promise with another promise\");\n                    return this.resolved = !0, this.value = result, this.dispatch(), this;\n                }\n            }, {\n                key: \"reject\",\n                value: function(error) {\n                    var _this2 = this;\n                    if (this.resolved || this.rejected) return this;\n                    if ((0, _utils.isPromise)(error)) throw new Error(\"Can not reject promise with another promise\");\n                    if (!error) {\n                        var _err = error && \"function\" == typeof error.toString ? error.toString() : Object.prototype.toString.call(error);\n                        error = new Error(\"Expected reject to be called with Error, got \" + _err);\n                    }\n                    return this.rejected = !0, this.error = error, this.errorHandled || setTimeout(function() {\n                        _this2.errorHandled || (0, _exceptions.dispatchPossiblyUnhandledError)(error);\n                    }, 1), this.dispatch(), this;\n                }\n            }, {\n                key: \"asyncReject\",\n                value: function(error) {\n                    this.errorHandled = !0, this.reject(error);\n                }\n            }, {\n                key: \"dispatch\",\n                value: function() {\n                    var _this3 = this, dispatching = this.dispatching, resolved = this.resolved, rejected = this.rejected, handlers = this.handlers;\n                    if (!dispatching && (resolved || rejected)) {\n                        this.dispatching = !0;\n                        for (var i = 0; i < handlers.length; i++) {\n                            (function(i) {\n                                var _handlers$i = handlers[i], onSuccess = _handlers$i.onSuccess, onError = _handlers$i.onError, promise = _handlers$i.promise, result = void 0;\n                                if (resolved) try {\n                                    result = onSuccess ? onSuccess(_this3.value) : _this3.value;\n                                } catch (err) {\n                                    return promise.reject(err), \"continue\";\n                                } else if (rejected) {\n                                    if (!onError) return promise.reject(_this3.error), \"continue\";\n                                    try {\n                                        result = onError(_this3.error);\n                                    } catch (err) {\n                                        return promise.reject(err), \"continue\";\n                                    }\n                                }\n                                result instanceof ZalgoPromise && (result.resolved || result.rejected) ? (result.resolved ? promise.resolve(result.value) : promise.reject(result.error), \n                                result.errorHandled = !0) : (0, _utils.isPromise)(result) ? result instanceof ZalgoPromise && (result.resolved || result.rejected) ? result.resolved ? promise.resolve(result.value) : promise.reject(result.error) : result.then(function(res) {\n                                    promise.resolve(res);\n                                }, function(err) {\n                                    promise.reject(err);\n                                }) : promise.resolve(result);\n                            })(i);\n                        }\n                        handlers.length = 0, this.dispatching = !1;\n                    }\n                }\n            }, {\n                key: \"then\",\n                value: function(onSuccess, onError) {\n                    if (onSuccess && \"function\" != typeof onSuccess && !onSuccess.call) throw new Error(\"Promise.then expected a function for success handler\");\n                    if (onError && \"function\" != typeof onError && !onError.call) throw new Error(\"Promise.then expected a function for error handler\");\n                    var promise = new ZalgoPromise();\n                    return this.handlers.push({\n                        promise: promise,\n                        onSuccess: onSuccess,\n                        onError: onError\n                    }), this.errorHandled = !0, this.dispatch(), promise;\n                }\n            }, {\n                key: \"catch\",\n                value: function(onError) {\n                    return this.then(void 0, onError);\n                }\n            }, {\n                key: \"finally\",\n                value: function(handler) {\n                    return this.then(function(result) {\n                        return ZalgoPromise.try(handler).then(function() {\n                            return result;\n                        });\n                    }, function(err) {\n                        return ZalgoPromise.try(handler).then(function() {\n                            throw err;\n                        });\n                    });\n                }\n            }, {\n                key: \"timeout\",\n                value: function(time, err) {\n                    var _this4 = this;\n                    if (this.resolved || this.rejected) return this;\n                    var timeout = setTimeout(function() {\n                        _this4.resolved || _this4.rejected || _this4.reject(err || new Error(\"Promise timed out after \" + time + \"ms\"));\n                    }, time);\n                    return this.then(function(result) {\n                        return clearTimeout(timeout), result;\n                    });\n                }\n            }, {\n                key: \"toPromise\",\n                value: function() {\n                    if (!window.Promise) throw new Error(\"Could not find window.Promise\");\n                    return window.Promise.resolve(this);\n                }\n            } ], [ {\n                key: \"resolve\",\n                value: function(value) {\n                    return value instanceof ZalgoPromise ? value : (0, _utils.isPromise)(value) ? new ZalgoPromise(function(resolve, reject) {\n                        return value.then(resolve, reject);\n                    }) : new ZalgoPromise().resolve(value);\n                }\n            }, {\n                key: \"reject\",\n                value: function(error) {\n                    return new ZalgoPromise().reject(error);\n                }\n            }, {\n                key: \"all\",\n                value: function(promises) {\n                    var promise = new ZalgoPromise(), count = promises.length, results = [];\n                    if (!count) return promise.resolve(results), promise;\n                    for (var i = 0; i < promises.length; i++) !function(i) {\n                        ZalgoPromise.resolve(promises[i]).then(function(result) {\n                            results[i] = result, 0 === (count -= 1) && promise.resolve(results);\n                        }, function(err) {\n                            promise.reject(err);\n                        });\n                    }(i);\n                    return promise;\n                }\n            }, {\n                key: \"map\",\n                value: function(promises, method) {\n                    var promise = new ZalgoPromise(), count = promises.length, results = [];\n                    if (!count) return promise.resolve(results), promise;\n                    for (var i = 0; i < promises.length; i++) !function(i) {\n                        ZalgoPromise.try(function() {\n                            return method(promises[i]);\n                        }).then(function(result) {\n                            results[i] = result, 0 === (count -= 1) && promise.resolve(results);\n                        }, function(err) {\n                            promise.reject(err);\n                        });\n                    }(i);\n                    return promise;\n                }\n            }, {\n                key: \"onPossiblyUnhandledException\",\n                value: function(handler) {\n                    return (0, _exceptions.onPossiblyUnhandledException)(handler);\n                }\n            }, {\n                key: \"try\",\n                value: function(method, context, args) {\n                    var result = void 0;\n                    try {\n                        result = method.apply(context, args || []);\n                    } catch (err) {\n                        return ZalgoPromise.reject(err);\n                    }\n                    return ZalgoPromise.resolve(result);\n                }\n            }, {\n                key: \"delay\",\n                value: function(_delay) {\n                    return new ZalgoPromise(function(resolve) {\n                        setTimeout(resolve, _delay);\n                    });\n                }\n            }, {\n                key: \"hash\",\n                value: function(obj) {\n                    var results = {}, promises = [];\n                    for (var key in obj) !function(key) {\n                        obj.hasOwnProperty(key) && promises.push(ZalgoPromise.resolve(obj[key]).then(function(result) {\n                            results[key] = result;\n                        }));\n                    }(key);\n                    return ZalgoPromise.all(promises).then(function() {\n                        return results;\n                    });\n                }\n            }, {\n                key: \"isPromise\",\n                value: function(value) {\n                    return !!(value && value instanceof ZalgoPromise) || (0, _utils.isPromise)(value);\n                }\n            } ]), ZalgoPromise;\n        }();\n        exports.ZalgoPromise = ZalgoPromise;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function isPromise(item) {\n            try {\n                if (!item) return !1;\n                if (window.Promise && item instanceof window.Promise) return !0;\n                if (window.Window && item instanceof window.Window) return !1;\n                if (window.constructor && item instanceof window.constructor) return !1;\n                if (toString) {\n                    var name = toString.call(item);\n                    if (\"[object Window]\" === name || \"[object global]\" === name || \"[object DOMWindow]\" === name) return !1;\n                }\n                if (\"function\" == typeof item.then) return !0;\n            } catch (err) {\n                return !1;\n            }\n            return !1;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.isPromise = isPromise;\n        var toString = {}.toString;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function cleanUpWindow(win) {\n            var requestPromises = _global.global.requestPromises.get(win);\n            if (requestPromises) for (var _iterator = requestPromises, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator](); ;) {\n                var _ref;\n                if (_isArray) {\n                    if (_i >= _iterator.length) break;\n                    _ref = _iterator[_i++];\n                } else {\n                    if (_i = _iterator.next(), _i.done) break;\n                    _ref = _i.value;\n                }\n                var promise = _ref;\n                promise.reject(new Error(\"No response from window - cleaned up\"));\n            }\n            _global.global.popupWindowsByWin && _global.global.popupWindowsByWin.delete(win), \n            _global.global.remoteWindows && _global.global.remoteWindows.delete(win), _global.global.requestPromises.delete(win), \n            _global.global.methods.delete(win), _global.global.readyPromises.delete(win);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.cleanUpWindow = cleanUpWindow;\n        var _global = __webpack_require__(3);\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _defineProperty(obj, key, value) {\n            return key in obj ? Object.defineProperty(obj, key, {\n                value: value,\n                enumerable: !0,\n                configurable: !0,\n                writable: !0\n            }) : obj[key] = value, obj;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.CONFIG = void 0;\n        var _ALLOWED_POST_MESSAGE, _constants = __webpack_require__(10), CONFIG = exports.CONFIG = {\n            ALLOW_POSTMESSAGE_POPUP: !0,\n            LOG_LEVEL: \"info\",\n            BRIDGE_TIMEOUT: 5e3,\n            ACK_TIMEOUT: 1e3,\n            RES_TIMEOUT: 1 / 0,\n            LOG_TO_PAGE: !1,\n            ALLOWED_POST_MESSAGE_METHODS: (_ALLOWED_POST_MESSAGE = {}, _defineProperty(_ALLOWED_POST_MESSAGE, _constants.CONSTANTS.SEND_STRATEGIES.POST_MESSAGE, !0), \n            _defineProperty(_ALLOWED_POST_MESSAGE, _constants.CONSTANTS.SEND_STRATEGIES.BRIDGE, !0), \n            _defineProperty(_ALLOWED_POST_MESSAGE, _constants.CONSTANTS.SEND_STRATEGIES.GLOBAL, !0), \n            _ALLOWED_POST_MESSAGE)\n        };\n        0 === window.location.href.indexOf(_constants.CONSTANTS.FILE_PROTOCOL) && (CONFIG.ALLOW_POSTMESSAGE_POPUP = !0);\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function parseMessage(message) {\n            var parsedMessage = void 0;\n            try {\n                parsedMessage = (0, _lib.jsonParse)(message);\n            } catch (err) {\n                return;\n            }\n            if (parsedMessage && \"object\" === (void 0 === parsedMessage ? \"undefined\" : _typeof(parsedMessage)) && null !== parsedMessage && (parsedMessage = parsedMessage[_conf.CONSTANTS.WINDOW_PROPS.POSTROBOT]) && \"object\" === (void 0 === parsedMessage ? \"undefined\" : _typeof(parsedMessage)) && null !== parsedMessage && parsedMessage.type && \"string\" == typeof parsedMessage.type && _types.RECEIVE_MESSAGE_TYPES[parsedMessage.type]) return parsedMessage;\n        }\n        function receiveMessage(event) {\n            if (!window || window.closed) throw new Error(\"Message recieved in closed window\");\n            try {\n                if (!event.source) return;\n            } catch (err) {\n                return;\n            }\n            var source = event.source, origin = event.origin, data = event.data, message = parseMessage(data);\n            if (message) {\n                if (!message.sourceDomain || \"string\" != typeof message.sourceDomain) throw new Error(\"Expected message to have sourceDomain\");\n                if (0 !== message.sourceDomain.indexOf(_conf.CONSTANTS.MOCK_PROTOCOL) && 0 !== message.sourceDomain.indexOf(_conf.CONSTANTS.FILE_PROTOCOL) || (origin = message.sourceDomain), \n                -1 === _global.global.receivedMessages.indexOf(message.id)) {\n                    _global.global.receivedMessages.push(message.id);\n                    var level = void 0;\n                    if (level = -1 !== _conf.POST_MESSAGE_NAMES_LIST.indexOf(message.name) || message.type === _conf.CONSTANTS.POST_MESSAGE_TYPE.ACK ? \"debug\" : \"error\" === message.ack ? \"error\" : \"info\", \n                    _lib.log.logLevel(level, [ \"\\n\\n\\t\", \"#receive\", message.type.replace(/^postrobot_message_/, \"\"), \"::\", message.name, \"::\", origin, \"\\n\\n\", message ]), \n                    (0, _src.isWindowClosed)(source)) return void _lib.log.debug(\"Source window is closed - can not send \" + message.type + \" \" + message.name);\n                    message.data && (message.data = (0, _lib.deserializeMethods)(source, origin, message.data)), \n                    _types.RECEIVE_MESSAGE_TYPES[message.type](source, origin, message);\n                }\n            }\n        }\n        function messageListener(event) {\n            try {\n                event.source;\n            } catch (err) {\n                return;\n            }\n            var messageEvent = {\n                source: event.source || event.sourceElement,\n                origin: event.origin || event.originalEvent && event.originalEvent.origin,\n                data: event.data\n            };\n            receiveMessage(messageEvent);\n        }\n        function listenForMessages() {\n            (0, _lib.addEventListener)(window, \"message\", messageListener);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n            return typeof obj;\n        } : function(obj) {\n            return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n        };\n        exports.receiveMessage = receiveMessage, exports.messageListener = messageListener, \n        exports.listenForMessages = listenForMessages;\n        var _src = __webpack_require__(1), _conf = __webpack_require__(0), _lib = __webpack_require__(4), _global = __webpack_require__(3), _types = __webpack_require__(23);\n        _global.global.receivedMessages = _global.global.receivedMessages || [];\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function _defineProperty(obj, key, value) {\n            return key in obj ? Object.defineProperty(obj, key, {\n                value: value,\n                enumerable: !0,\n                configurable: !0,\n                writable: !0\n            }) : obj[key] = value, obj;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.RECEIVE_MESSAGE_TYPES = void 0;\n        var _RECEIVE_MESSAGE_TYPE, _extends = Object.assign || function(target) {\n            for (var i = 1; i < arguments.length; i++) {\n                var source = arguments[i];\n                for (var key in source) Object.prototype.hasOwnProperty.call(source, key) && (target[key] = source[key]);\n            }\n            return target;\n        }, _src = __webpack_require__(2), _src2 = __webpack_require__(1), _conf = __webpack_require__(0), _lib = __webpack_require__(4), _send = __webpack_require__(12), _listeners = __webpack_require__(11);\n        exports.RECEIVE_MESSAGE_TYPES = (_RECEIVE_MESSAGE_TYPE = {}, _defineProperty(_RECEIVE_MESSAGE_TYPE, _conf.CONSTANTS.POST_MESSAGE_TYPE.ACK, function(source, origin, message) {\n            var options = (0, _listeners.getResponseListener)(message.hash);\n            if (!options) throw new Error(\"No handler found for post message ack for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n            if (!(0, _src2.matchDomain)(options.domain, origin)) throw new Error(\"Ack origin \" + origin + \" does not match domain \" + options.domain.toString());\n            options.ack = !0;\n        }), _defineProperty(_RECEIVE_MESSAGE_TYPE, _conf.CONSTANTS.POST_MESSAGE_TYPE.REQUEST, function(source, origin, message) {\n            function respond(data) {\n                return message.fireAndForget || (0, _src2.isWindowClosed)(source) ? _src.ZalgoPromise.resolve() : (0, \n                _send.sendMessage)(source, _extends({\n                    target: message.originalSource,\n                    hash: message.hash,\n                    name: message.name\n                }, data), origin);\n            }\n            var options = (0, _listeners.getRequestListener)({\n                name: message.name,\n                win: source,\n                domain: origin\n            });\n            return _src.ZalgoPromise.all([ respond({\n                type: _conf.CONSTANTS.POST_MESSAGE_TYPE.ACK\n            }), _src.ZalgoPromise.try(function() {\n                if (!options) throw new Error(\"No handler found for post message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n                if (!(0, _src2.matchDomain)(options.domain, origin)) throw new Error(\"Request origin \" + origin + \" does not match domain \" + options.domain.toString());\n                var data = message.data;\n                return options.handler({\n                    source: source,\n                    origin: origin,\n                    data: data\n                });\n            }).then(function(data) {\n                return respond({\n                    type: _conf.CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n                    ack: _conf.CONSTANTS.POST_MESSAGE_ACK.SUCCESS,\n                    data: data\n                });\n            }, function(err) {\n                var error = (0, _lib.stringifyError)(err).replace(/^Error: /, \"\");\n                return respond({\n                    type: _conf.CONSTANTS.POST_MESSAGE_TYPE.RESPONSE,\n                    ack: _conf.CONSTANTS.POST_MESSAGE_ACK.ERROR,\n                    error: error\n                });\n            }) ]).then(_lib.noop).catch(function(err) {\n                if (options && options.handleError) return options.handleError(err);\n                _lib.log.error((0, _lib.stringifyError)(err));\n            });\n        }), _defineProperty(_RECEIVE_MESSAGE_TYPE, _conf.CONSTANTS.POST_MESSAGE_TYPE.RESPONSE, function(source, origin, message) {\n            var options = (0, _listeners.getResponseListener)(message.hash);\n            if (!options) throw new Error(\"No handler found for post message response for message: \" + message.name + \" from \" + origin + \" in \" + window.location.protocol + \"//\" + window.location.host + window.location.pathname);\n            if (!(0, _src2.matchDomain)(options.domain, origin)) throw new Error(\"Response origin \" + origin + \" does not match domain \" + options.domain);\n            if ((0, _listeners.deleteResponseListener)(message.hash), message.ack === _conf.CONSTANTS.POST_MESSAGE_ACK.ERROR) return options.respond(new Error(message.error), null);\n            if (message.ack === _conf.CONSTANTS.POST_MESSAGE_ACK.SUCCESS) {\n                var data = message.data || message.response;\n                return options.respond(null, {\n                    source: source,\n                    origin: origin,\n                    data: data\n                });\n            }\n        }), _RECEIVE_MESSAGE_TYPE);\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.SEND_MESSAGE_STRATEGIES = void 0;\n        var _src = __webpack_require__(1), _conf = __webpack_require__(0), SEND_MESSAGE_STRATEGIES = exports.SEND_MESSAGE_STRATEGIES = {};\n        SEND_MESSAGE_STRATEGIES[_conf.CONSTANTS.SEND_STRATEGIES.POST_MESSAGE] = function(win, serializedMessage, domain) {\n            var domains = void 0;\n            domains = Array.isArray(domain) ? domain : domain ? [ domain ] : [ _conf.CONSTANTS.WILDCARD ], \n            domains = domains.map(function(dom) {\n                if (0 === dom.indexOf(_conf.CONSTANTS.MOCK_PROTOCOL)) {\n                    if (window.location.protocol === _conf.CONSTANTS.FILE_PROTOCOL) return _conf.CONSTANTS.WILDCARD;\n                    if (!(0, _src.isActuallySameDomain)(win)) throw new Error(\"Attempting to send messsage to mock domain \" + dom + \", but window is actually cross-domain\");\n                    return (0, _src.getActualDomain)(win);\n                }\n                return 0 === dom.indexOf(_conf.CONSTANTS.FILE_PROTOCOL) ? _conf.CONSTANTS.WILDCARD : dom;\n            }), domains.forEach(function(dom) {\n                return win.postMessage(serializedMessage, dom);\n            });\n        };\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        });\n        var _interface = __webpack_require__(8);\n        Object.keys(_interface).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _interface[key];\n                }\n            });\n        });\n        var INTERFACE = function(obj) {\n            if (obj && obj.__esModule) return obj;\n            var newObj = {};\n            if (null != obj) for (var key in obj) Object.prototype.hasOwnProperty.call(obj, key) && (newObj[key] = obj[key]);\n            return newObj.default = obj, newObj;\n        }(_interface);\n        exports.default = INTERFACE;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function initOnReady() {\n            (0, _interface.on)(_conf.CONSTANTS.POST_MESSAGE_NAMES.READY, {\n                window: _conf.CONSTANTS.WILDCARD,\n                domain: _conf.CONSTANTS.WILDCARD\n            }, function(event) {\n                var win = event.source, promise = _global.global.readyPromises.get(win);\n                promise ? promise.resolve(event) : (promise = new _src3.ZalgoPromise().resolve(event), \n                _global.global.readyPromises.set(win, promise));\n            });\n            var parent = (0, _src2.getAncestor)();\n            parent && (0, _interface.send)(parent, _conf.CONSTANTS.POST_MESSAGE_NAMES.READY, {}, {\n                domain: _conf.CONSTANTS.WILDCARD,\n                timeout: 1 / 0\n            }).catch(function(err) {\n                _log.log.debug((0, _util.stringifyError)(err));\n            });\n        }\n        function onWindowReady(win) {\n            var timeout = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 5e3, name = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"Window\", promise = _global.global.readyPromises.get(win);\n            return promise || (promise = new _src3.ZalgoPromise(), _global.global.readyPromises.set(win, promise), \n            setTimeout(function() {\n                return promise.reject(new Error(name + \" did not load after \" + timeout + \"ms\"));\n            }, timeout), promise);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.initOnReady = initOnReady, exports.onWindowReady = onWindowReady;\n        var _src = __webpack_require__(5), _src2 = __webpack_require__(1), _src3 = __webpack_require__(2), _conf = __webpack_require__(0), _interface = __webpack_require__(8), _log = __webpack_require__(9), _global = __webpack_require__(3), _util = __webpack_require__(7);\n        _global.global.readyPromises = _global.global.readyPromises || new _src.WeakMap();\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function isSerialized(item, type) {\n            return \"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item && item.__type__ === type;\n        }\n        function serializeMethod(destination, domain, method, name) {\n            var id = (0, _util.uniqueID)(), methods = _global.global.methods.get(destination);\n            return methods || (methods = {}, _global.global.methods.set(destination, methods)), \n            methods[id] = {\n                domain: domain,\n                method: method\n            }, {\n                __type__: _conf.CONSTANTS.SERIALIZATION_TYPES.METHOD,\n                __id__: id,\n                __name__: name\n            };\n        }\n        function serializeError(err) {\n            return {\n                __type__: _conf.CONSTANTS.SERIALIZATION_TYPES.ERROR,\n                __message__: (0, _util.stringifyError)(err)\n            };\n        }\n        function serializePromise(destination, domain, promise, name) {\n            return {\n                __type__: _conf.CONSTANTS.SERIALIZATION_TYPES.PROMISE,\n                __then__: serializeMethod(destination, domain, function(resolve, reject) {\n                    return promise.then(resolve, reject);\n                }, name + \".then\")\n            };\n        }\n        function serializeZalgoPromise(destination, domain, promise, name) {\n            return {\n                __type__: _conf.CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE,\n                __then__: serializeMethod(destination, domain, function(resolve, reject) {\n                    return promise.then(resolve, reject);\n                }, name + \".then\")\n            };\n        }\n        function serializeRegex(regex) {\n            return {\n                __type__: _conf.CONSTANTS.SERIALIZATION_TYPES.REGEX,\n                __source__: regex.source\n            };\n        }\n        function serializeMethods(destination, domain, obj) {\n            return (0, _util.replaceObject)({\n                obj: obj\n            }, function(item, key) {\n                return \"function\" == typeof item ? serializeMethod(destination, domain, item, key.toString()) : item instanceof Error ? serializeError(item) : window.Promise && item instanceof window.Promise ? serializePromise(destination, domain, item, key.toString()) : _src3.ZalgoPromise.isPromise(item) ? serializeZalgoPromise(destination, domain, item, key.toString()) : (0, \n                _util.isRegex)(item) ? serializeRegex(item) : void 0;\n            }).obj;\n        }\n        function deserializeMethod(source, origin, obj) {\n            function wrapper() {\n                var args = Array.prototype.slice.call(arguments);\n                return _log.log.debug(\"Call foreign method\", obj.__name__, args), (0, _interface.send)(source, _conf.CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n                    id: obj.__id__,\n                    name: obj.__name__,\n                    args: args\n                }, {\n                    domain: origin,\n                    timeout: 1 / 0\n                }).then(function(_ref2) {\n                    var data = _ref2.data;\n                    return _log.log.debug(\"Got foreign method result\", obj.__name__, data.result), data.result;\n                }, function(err) {\n                    throw _log.log.debug(\"Got foreign method error\", (0, _util.stringifyError)(err)), \n                    err;\n                });\n            }\n            return wrapper.__name__ = obj.__name__, wrapper.__xdomain__ = !0, wrapper.source = source, \n            wrapper.origin = origin, wrapper;\n        }\n        function deserializeError(source, origin, obj) {\n            return new Error(obj.__message__);\n        }\n        function deserializeZalgoPromise(source, origin, prom) {\n            return new _src3.ZalgoPromise(function(resolve, reject) {\n                return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n            });\n        }\n        function deserializePromise(source, origin, prom) {\n            return window.Promise ? new window.Promise(function(resolve, reject) {\n                return deserializeMethod(source, origin, prom.__then__)(resolve, reject);\n            }) : deserializeZalgoPromise(source, origin, prom);\n        }\n        function deserializeRegex(source, origin, item) {\n            return new RegExp(item.__source__);\n        }\n        function deserializeMethods(source, origin, obj) {\n            return (0, _util.replaceObject)({\n                obj: obj\n            }, function(item, key) {\n                if (\"object\" === (void 0 === item ? \"undefined\" : _typeof(item)) && null !== item) return isSerialized(item, _conf.CONSTANTS.SERIALIZATION_TYPES.METHOD) ? deserializeMethod(source, origin, item) : isSerialized(item, _conf.CONSTANTS.SERIALIZATION_TYPES.ERROR) ? deserializeError(source, origin, item) : isSerialized(item, _conf.CONSTANTS.SERIALIZATION_TYPES.PROMISE) ? deserializePromise(source, origin, item) : isSerialized(item, _conf.CONSTANTS.SERIALIZATION_TYPES.ZALGO_PROMISE) ? deserializeZalgoPromise(source, origin, item) : isSerialized(item, _conf.CONSTANTS.SERIALIZATION_TYPES.REGEX) ? deserializeRegex(source, origin, item) : void 0;\n            }).obj;\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.listenForMethods = void 0;\n        var _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(obj) {\n            return typeof obj;\n        } : function(obj) {\n            return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n        };\n        exports.serializeMethod = serializeMethod, exports.serializeMethods = serializeMethods, \n        exports.deserializeMethod = deserializeMethod, exports.deserializeError = deserializeError, \n        exports.deserializeZalgoPromise = deserializeZalgoPromise, exports.deserializePromise = deserializePromise, \n        exports.deserializeRegex = deserializeRegex, exports.deserializeMethods = deserializeMethods;\n        var _src = __webpack_require__(5), _src2 = __webpack_require__(1), _src3 = __webpack_require__(2), _conf = __webpack_require__(0), _util = __webpack_require__(7), _interface = __webpack_require__(8), _log = __webpack_require__(9), _global = __webpack_require__(3);\n        _global.global.methods = _global.global.methods || new _src.WeakMap();\n        exports.listenForMethods = (0, _util.once)(function() {\n            (0, _interface.on)(_conf.CONSTANTS.POST_MESSAGE_NAMES.METHOD, {\n                window: _conf.CONSTANTS.WILDCARD,\n                origin: _conf.CONSTANTS.WILDCARD\n            }, function(_ref) {\n                var source = _ref.source, origin = _ref.origin, data = _ref.data, methods = _global.global.methods.get(source);\n                if (!methods) throw new Error(\"Could not find any methods this window has privileges to call\");\n                var meth = methods[data.id];\n                if (!meth) throw new Error(\"Could not find method with id: \" + data.id);\n                if (!(0, _src2.matchDomain)(meth.domain, origin)) throw new Error(\"Method domain \" + meth.domain + \" does not match origin \" + origin);\n                return _log.log.debug(\"Call local method\", data.name, data.args), _src3.ZalgoPromise.try(function() {\n                    return meth.method.apply({\n                        source: source,\n                        origin: origin,\n                        data: data\n                    }, data.args);\n                }).then(function(result) {\n                    return {\n                        result: result,\n                        id: data.id,\n                        name: data.name\n                    };\n                });\n            });\n        });\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function request(options) {\n            return _src2.ZalgoPromise.try(function() {\n                if (!options.name) throw new Error(\"Expected options.name\");\n                var name = options.name, win = options.window, domain = void 0;\n                if (\"string\" == typeof win) {\n                    var el = document.getElementById(win);\n                    if (!el) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(win) + \" to be a valid element id\");\n                    if (\"iframe\" !== el.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(win) + \" to be an iframe\");\n                    if (!el.contentWindow) throw new Error(\"Iframe must have contentWindow.  Make sure it has a src attribute and is in the DOM.\");\n                    win = el.contentWindow;\n                } else if (win instanceof HTMLElement) {\n                    if (\"iframe\" !== win.tagName.toLowerCase()) throw new Error(\"Expected options.window \" + Object.prototype.toString.call(win) + \" to be an iframe\");\n                    if (win && !win.contentWindow) throw new Error(\"Iframe must have contentWindow.  Make sure it has a src attribute and is in the DOM.\");\n                    win && win.contentWindow && (win = win.contentWindow);\n                }\n                if (!win) throw new Error(\"Expected options.window to be a window object, iframe, or iframe element id.\");\n                domain = options.domain || _conf.CONSTANTS.WILDCARD;\n                var hash = options.name + \"_\" + (0, _lib.uniqueID)();\n                if ((0, _src3.isWindowClosed)(win)) throw new Error(\"Target window is closed\");\n                var hasResult = !1, requestPromises = _global.global.requestPromises.get(win);\n                requestPromises || (requestPromises = [], _global.global.requestPromises.set(win, requestPromises));\n                var requestPromise = _src2.ZalgoPromise.try(function() {\n                    if ((0, _src3.isAncestor)(window, win)) return _src2.ZalgoPromise.resolve((0, _lib.onWindowReady)(win));\n                }).then(function() {\n                    return new _src2.ZalgoPromise(function(resolve, reject) {\n                        var responseListener = {\n                            name: name,\n                            window: win,\n                            domain: domain,\n                            respond: function(err, result) {\n                                err || (hasResult = !0, requestPromises.splice(requestPromises.indexOf(requestPromise, 1))), \n                                err ? reject(err) : resolve(result);\n                            }\n                        };\n                        if ((0, _drivers.addResponseListener)(hash, responseListener), (0, _drivers.sendMessage)(win, {\n                            type: _conf.CONSTANTS.POST_MESSAGE_TYPE.REQUEST,\n                            hash: hash,\n                            name: name,\n                            data: options.data,\n                            fireAndForget: options.fireAndForget\n                        }, domain).catch(reject), options.fireAndForget) return resolve();\n                        var ackTimeout = _conf.CONFIG.ACK_TIMEOUT, resTimeout = options.timeout || _conf.CONFIG.RES_TIMEOUT, cycleTime = 100, cycle = function cycle() {\n                            if (!hasResult) {\n                                if ((0, _src3.isWindowClosed)(win)) return reject(responseListener.ack ? new Error(\"Window closed for \" + name + \" before response\") : new Error(\"Window closed for \" + name + \" before ack\"));\n                                ackTimeout -= cycleTime, resTimeout -= cycleTime;\n                                if (responseListener.ack) {\n                                    if (resTimeout === 1 / 0) return;\n                                    cycleTime = Math.min(resTimeout, 2e3);\n                                } else {\n                                    if (ackTimeout <= 0) return reject(new Error(\"No ack for postMessage \" + name + \" in \" + _conf.CONFIG.ACK_TIMEOUT + \"ms\"));\n                                    if (resTimeout <= 0) return reject(new Error(\"No response for postMessage \" + name + \" in \" + (options.timeout || _conf.CONFIG.RES_TIMEOUT) + \"ms\"));\n                                }\n                                setTimeout(cycle, cycleTime);\n                            }\n                        };\n                        setTimeout(cycle, cycleTime);\n                    });\n                });\n                return requestPromise.catch(function() {\n                    (0, _drivers.deleteResponseListener)(hash);\n                }), requestPromises.push(requestPromise), requestPromise;\n            });\n        }\n        function _send(window, name, data, options) {\n            return options = options || {}, options.window = window, options.name = name, options.data = data, \n            request(options);\n        }\n        function sendToParent(name, data, options) {\n            var win = (0, _src3.getAncestor)();\n            return win ? _send(win, name, data, options) : new _src2.ZalgoPromise(function(resolve, reject) {\n                return reject(new Error(\"Window does not have a parent\"));\n            });\n        }\n        function client() {\n            var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n            if (!options.window) throw new Error(\"Expected options.window\");\n            return {\n                send: function(name, data) {\n                    return _send(options.window, name, data, options);\n                }\n            };\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.send = void 0, exports.request = request, exports.sendToParent = sendToParent, \n        exports.client = client;\n        var _src = __webpack_require__(5), _src2 = __webpack_require__(2), _src3 = __webpack_require__(1), _conf = __webpack_require__(0), _drivers = __webpack_require__(6), _lib = __webpack_require__(4), _global = __webpack_require__(3);\n        _global.global.requestPromises = _global.global.requestPromises || new _src.WeakMap(), \n        exports.send = _send;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function disable() {\n            delete window[_conf.CONSTANTS.WINDOW_PROPS.POSTROBOT], window.removeEventListener(\"message\", _drivers.messageListener);\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.CONSTANTS = exports.CONFIG = void 0;\n        var _conf = __webpack_require__(0);\n        Object.defineProperty(exports, \"CONFIG\", {\n            enumerable: !0,\n            get: function() {\n                return _conf.CONFIG;\n            }\n        }), Object.defineProperty(exports, \"CONSTANTS\", {\n            enumerable: !0,\n            get: function() {\n                return _conf.CONSTANTS;\n            }\n        }), exports.disable = disable;\n        var _drivers = __webpack_require__(6);\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.bridge = exports.parent = void 0;\n        var _client = __webpack_require__(28);\n        Object.keys(_client).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _client[key];\n                }\n            });\n        });\n        var _server = __webpack_require__(31);\n        Object.keys(_server).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _server[key];\n                }\n            });\n        });\n        var _config = __webpack_require__(29);\n        Object.keys(_config).forEach(function(key) {\n            \"default\" !== key && \"__esModule\" !== key && Object.defineProperty(exports, key, {\n                enumerable: !0,\n                get: function() {\n                    return _config[key];\n                }\n            });\n        });\n        var _src = __webpack_require__(1);\n        exports.parent = (0, _src.getAncestor)(), exports.bridge = void 0;\n    }, function(module, exports, __webpack_require__) {\n        \"use strict\";\n        function listen(options) {\n            if (!options.name) throw new Error(\"Expected options.name\");\n            if (!options.handler) throw new Error(\"Expected options.handler\");\n            var listenerOptions = {\n                handler: options.handler,\n                handleError: options.errorHandler || function(err) {\n                    throw err;\n                },\n                window: options.window,\n                domain: options.domain || _conf.CONSTANTS.WILDCARD,\n                name: options.name\n            }, requestListener = (0, _drivers.addRequestListener)({\n                name: listenerOptions.name,\n                win: listenerOptions.window,\n                domain: listenerOptions.domain\n            }, listenerOptions);\n            if (options.once) {\n                var _handler = listenerOptions.handler;\n                listenerOptions.handler = (0, _lib.once)(function() {\n                    return requestListener.cancel(), _handler.apply(this, arguments);\n                });\n            }\n            if (listenerOptions.window && options.errorOnClose) var interval = (0, _lib.safeInterval)(function() {\n                (0, _src.isWindowClosed)(listenerOptions.window) && (interval.cancel(), listenerOptions.handleError(new Error(\"Post message target window is closed\")));\n            }, 50);\n            return {\n                cancel: function() {\n                    requestListener.cancel();\n                }\n            };\n        }\n        function _on(name, options, handler) {\n            return \"function\" == typeof options && (handler = options, options = {}), options = options || {}, \n            options.name = name, options.handler = handler || options.handler, listen(options);\n        }\n        function once(name) {\n            var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, handler = arguments[2];\n            \"function\" == typeof options && (handler = options, options = {}), options = options || {}, \n            handler = handler || options.handler;\n            var errorHandler = options.errorHandler, promise = new _src2.ZalgoPromise(function(resolve, reject) {\n                options = options || {}, options.name = name, options.once = !0, options.handler = function(event) {\n                    if (resolve(event), handler) return handler(event);\n                }, options.errorHandler = function(err) {\n                    if (reject(err), errorHandler) return errorHandler(err);\n                };\n            }), onceListener = listen(options);\n            return promise.cancel = onceListener.cancel, promise;\n        }\n        function listener() {\n            var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n            return {\n                on: function(name, handler) {\n                    return _on(name, options, handler);\n                }\n            };\n        }\n        Object.defineProperty(exports, \"__esModule\", {\n            value: !0\n        }), exports.on = void 0, exports.listen = listen, exports.once = once, exports.listener = listener;\n        var _src = __webpack_require__(1), _src2 = __webpack_require__(2), _lib = __webpack_require__(4), _drivers = __webpack_require__(6), _conf = __webpack_require__(0);\n        exports.on = _on;\n    } ]);\n});\n//# sourceMappingURL=post-robot.js.map"]}