{"version":3,"sources":["jsdelivr-header.js","/npm/pusher-platform@0.15.4/dist/web/pusher-platform.js"],"names":[],"mappings":"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","file":"/npm/pusher-platform@0.15.4/dist/web/pusher-platform.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/pusher-platform@0.15.4/dist/web/pusher-platform.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PusherPlatform\"] = factory();\n\telse\n\t\troot[\"PusherPlatform\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 10);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction responseToHeadersObject(headerStr) {\n    var headers = {};\n    if (!headerStr) {\n        return headers;\n    }\n    var headerPairs = headerStr.split('\\u000d\\u000a');\n    for (var _i = 0, headerPairs_1 = headerPairs; _i < headerPairs_1.length; _i++) {\n        var headerPair = headerPairs_1[_i];\n        var index = headerPair.indexOf('\\u003a\\u0020');\n        if (index > 0) {\n            var key = headerPair.substring(0, index);\n            var val = headerPair.substring(index + 2);\n            headers[key] = val;\n        }\n    }\n    return headers;\n}\nexports.responseToHeadersObject = responseToHeadersObject;\nvar ErrorResponse = (function () {\n    function ErrorResponse(statusCode, headers, info) {\n        this.statusCode = statusCode;\n        this.headers = headers;\n        this.info = info;\n    }\n    ErrorResponse.fromXHR = function (xhr) {\n        var errorInfo = xhr.responseText;\n        try {\n            errorInfo = JSON.parse(xhr.responseText);\n        }\n        catch (e) {\n        }\n        return new ErrorResponse(xhr.status, responseToHeadersObject(xhr.getAllResponseHeaders()), errorInfo);\n    };\n    return ErrorResponse;\n}());\nexports.ErrorResponse = ErrorResponse;\nvar NetworkError = (function () {\n    function NetworkError(error) {\n        this.error = error;\n    }\n    return NetworkError;\n}());\nexports.NetworkError = NetworkError;\nvar XhrReadyState;\n(function (XhrReadyState) {\n    XhrReadyState[XhrReadyState[\"UNSENT\"] = 0] = \"UNSENT\";\n    XhrReadyState[XhrReadyState[\"OPENED\"] = 1] = \"OPENED\";\n    XhrReadyState[XhrReadyState[\"HEADERS_RECEIVED\"] = 2] = \"HEADERS_RECEIVED\";\n    XhrReadyState[XhrReadyState[\"LOADING\"] = 3] = \"LOADING\";\n    XhrReadyState[XhrReadyState[\"DONE\"] = 4] = \"DONE\";\n})(XhrReadyState = exports.XhrReadyState || (exports.XhrReadyState = {}));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LogLevel;\n(function (LogLevel) {\n    LogLevel[LogLevel[\"VERBOSE\"] = 1] = \"VERBOSE\";\n    LogLevel[LogLevel[\"DEBUG\"] = 2] = \"DEBUG\";\n    LogLevel[LogLevel[\"INFO\"] = 3] = \"INFO\";\n    LogLevel[LogLevel[\"WARNING\"] = 4] = \"WARNING\";\n    LogLevel[LogLevel[\"ERROR\"] = 5] = \"ERROR\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\nvar ConsoleLogger = (function () {\n    function ConsoleLogger(threshold) {\n        if (threshold === void 0) { threshold = 2; }\n        this.threshold = threshold;\n        var groups = Array();\n        var hr = '--------------------------------------------------------------------------------';\n        if (!window.console.group) {\n            window.console.group = function (label) {\n                groups.push(label);\n                window.console.log('%c \\nBEGIN GROUP: %c', hr, label);\n            };\n        }\n        if (!window.console.groupEnd) {\n            window.console.groupEnd = function () {\n                window.console.log('END GROUP: %c\\n%c', groups.pop(), hr);\n            };\n        }\n    }\n    ConsoleLogger.prototype.verbose = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        this.log(window.console.log, LogLevel.VERBOSE, items);\n    };\n    ConsoleLogger.prototype.debug = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        this.log(window.console.log, LogLevel.DEBUG, items);\n    };\n    ConsoleLogger.prototype.info = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        this.log(window.console.info, LogLevel.INFO, items);\n    };\n    ConsoleLogger.prototype.warn = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        this.log(window.console.warn, LogLevel.WARNING, items);\n    };\n    ConsoleLogger.prototype.error = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n        this.log(window.console.error, LogLevel.ERROR, items);\n    };\n    ConsoleLogger.prototype.log = function (logFunction, level, items) {\n        var _this = this;\n        if (level >= this.threshold) {\n            var loggerSignature_1 = \"Logger.\" + LogLevel[level];\n            if (items.length > 1) {\n                window.console.group();\n                items.forEach(function (item) {\n                    _this.errorAwareLog(logFunction, item, loggerSignature_1);\n                });\n                window.console.groupEnd();\n            }\n            else {\n                this.errorAwareLog(logFunction, items[0], loggerSignature_1);\n            }\n        }\n    };\n    ConsoleLogger.prototype.errorAwareLog = function (logFunction, item, loggerSignature) {\n        if (item !== undefined && item.info && item.info.error_uri) {\n            var errorDesc = item.info.error_description;\n            var errorIntro = errorDesc ? errorDesc : 'An error has occurred';\n            logFunction(errorIntro + \". More information can be found at \" + item.info.error_uri + \". Error object: \", item);\n        }\n        else {\n            logFunction(loggerSignature + \": \", item);\n        }\n    };\n    return ConsoleLogger;\n}());\nexports.ConsoleLogger = ConsoleLogger;\nvar EmptyLogger = (function () {\n    function EmptyLogger() {\n    }\n    EmptyLogger.prototype.verbose = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n    };\n    EmptyLogger.prototype.debug = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n    };\n    EmptyLogger.prototype.info = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n    };\n    EmptyLogger.prototype.warn = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n    };\n    EmptyLogger.prototype.error = function () {\n        var items = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            items[_i] = arguments[_i];\n        }\n    };\n    return EmptyLogger;\n}());\nexports.EmptyLogger = EmptyLogger;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nexports.createRetryStrategyOptionsOrDefault = function (options) {\n    var initialTimeoutMillis = options.initialTimeoutMillis || 1000;\n    var maxTimeoutMillis = options.maxTimeoutMillis || 5000;\n    var limit = -1;\n    if (options.limit !== undefined && options.limit != null) {\n        limit = options.limit;\n    }\n    var increaseTimeout;\n    if (options.increaseTimeout !== undefined) {\n        increaseTimeout = options.increaseTimeout;\n    }\n    else {\n        increaseTimeout = function (currentTimeout) {\n            if (currentTimeout * 2 > maxTimeoutMillis) {\n                return maxTimeoutMillis;\n            }\n            else {\n                return currentTimeout * 2;\n            }\n        };\n    }\n    return {\n        increaseTimeout: increaseTimeout,\n        initialTimeoutMillis: initialTimeoutMillis,\n        limit: limit,\n        maxTimeoutMillis: maxTimeoutMillis,\n    };\n};\nvar Retry = (function () {\n    function Retry(waitTimeMillis) {\n        this.waitTimeMillis = waitTimeMillis;\n    }\n    return Retry;\n}());\nexports.Retry = Retry;\nvar DoNotRetry = (function () {\n    function DoNotRetry(error) {\n        this.error = error;\n    }\n    return DoNotRetry;\n}());\nexports.DoNotRetry = DoNotRetry;\nvar requestMethodIsSafe = function (method) {\n    method = method.toUpperCase();\n    return (method === 'GET' ||\n        method === 'HEAD' ||\n        method === 'OPTIONS' ||\n        method === 'SUBSCRIBE');\n};\nvar RetryResolution = (function () {\n    function RetryResolution(options, logger, retryUnsafeRequests) {\n        this.options = options;\n        this.logger = logger;\n        this.retryUnsafeRequests = retryUnsafeRequests;\n        this.currentRetryCount = 0;\n        this.initialTimeoutMillis = options.initialTimeoutMillis;\n        this.maxTimeoutMillis = options.maxTimeoutMillis;\n        this.limit = options.limit;\n        this.increaseTimeoutFunction = options.increaseTimeout;\n        this.currentBackoffMillis = this.initialTimeoutMillis;\n    }\n    RetryResolution.prototype.attemptRetry = function (error) {\n        this.logger.verbose(this.constructor.name + \": Error received\", error);\n        if (this.currentRetryCount >= this.limit && this.limit >= 0) {\n            this.logger.verbose(this.constructor.name + \": Retry count is over the maximum limit: \" + this.limit);\n            return new DoNotRetry(error);\n        }\n        if (error instanceof network_1.ErrorResponse && error.headers['Retry-After']) {\n            this.logger.verbose(this.constructor.name + \": Retry-After header is present, retrying in \" + error.headers['Retry-After']);\n            return new Retry(parseInt(error.headers['Retry-After'], 10) * 1000);\n        }\n        if (error instanceof network_1.NetworkError ||\n            (error instanceof network_1.ErrorResponse &&\n                requestMethodIsSafe(error.headers['Request-Method'])) ||\n            this.retryUnsafeRequests) {\n            return this.shouldSafeRetry(error);\n        }\n        if (error instanceof network_1.NetworkError) {\n            return this.shouldSafeRetry(error);\n        }\n        this.logger.verbose(this.constructor.name + \": Error is not retryable\", error);\n        return new DoNotRetry(error);\n    };\n    RetryResolution.prototype.shouldSafeRetry = function (error) {\n        if (error instanceof network_1.NetworkError) {\n            this.logger.verbose(this.constructor.name + \": It's a Network Error, will retry\", error);\n            return new Retry(this.calulateMillisToRetry());\n        }\n        else if (error instanceof network_1.ErrorResponse) {\n            if (error.statusCode >= 500 && error.statusCode < 600) {\n                this.logger.verbose(this.constructor.name + \": Error 5xx, will retry\");\n                return new Retry(this.calulateMillisToRetry());\n            }\n        }\n        this.logger.verbose(this.constructor.name + \": Error is not retryable\", error);\n        return new DoNotRetry(error);\n    };\n    RetryResolution.prototype.calulateMillisToRetry = function () {\n        this.currentBackoffMillis = this.increaseTimeoutFunction(this.currentBackoffMillis);\n        this.logger.verbose(this.constructor.name + \": Retrying in \" + this.currentBackoffMillis + \"ms\");\n        return this.currentBackoffMillis;\n    };\n    return RetryResolution;\n}());\nexports.RetryResolution = RetryResolution;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar logger_1 = __webpack_require__(1);\nvar request_1 = __webpack_require__(4);\nvar resuming_subscription_1 = __webpack_require__(5);\nvar retrying_subscription_1 = __webpack_require__(6);\nvar subscribe_strategy_1 = __webpack_require__(11);\nvar subscription_1 = __webpack_require__(12);\nvar token_providing_subscription_1 = __webpack_require__(7);\nvar http_1 = __webpack_require__(13);\nvar websocket_1 = __webpack_require__(14);\nvar transports_1 = __webpack_require__(8);\nvar BaseClient = (function () {\n    function BaseClient(options) {\n        this.options = options;\n        this.host = options.host.replace(/(\\/)+$/, '');\n        this.logger = options.logger || new logger_1.ConsoleLogger();\n        this.websocketTransport = new websocket_1.default(this.host);\n        this.httpTransport = new http_1.default(this.host, options.encrypted);\n        this.sdkProduct = options.sdkProduct || 'unknown';\n        this.sdkVersion = options.sdkVersion || 'unknown';\n        this.sdkPlatform = navigator\n            ? navigator.product === 'ReactNative' ? 'react-native' : 'web'\n            : 'node';\n    }\n    BaseClient.prototype.request = function (options, tokenParams) {\n        var _this = this;\n        if (options.tokenProvider) {\n            return options.tokenProvider\n                .fetchToken(tokenParams)\n                .then(function (token) {\n                if (options.headers !== undefined) {\n                    options.headers['Authorization'] = \"Bearer \" + token;\n                }\n                else {\n                    options.headers = (_a = {},\n                        _a['Authorization'] = \"Bearer \" + token,\n                        _a);\n                }\n                return options;\n                var _a;\n            })\n                .then(function (optionsWithToken) { return _this.makeRequest(optionsWithToken); });\n        }\n        return this.makeRequest(options);\n    };\n    BaseClient.prototype.subscribeResuming = function (path, headers, listeners, retryStrategyOptions, initialEventId, tokenProvider) {\n        var completeListeners = subscription_1.replaceMissingListenersWithNoOps(listeners);\n        var subscribeStrategyListeners = subscribe_strategy_1.subscribeStrategyListenersFromSubscriptionListeners(completeListeners);\n        var subscriptionStrategy = resuming_subscription_1.createResumingStrategy(retryStrategyOptions, token_providing_subscription_1.createTokenProvidingStrategy(transports_1.createTransportStrategy(path, this.websocketTransport, this.logger), this.logger, tokenProvider), this.logger, initialEventId);\n        var opened = false;\n        return subscriptionStrategy({\n            onEnd: subscribeStrategyListeners.onEnd,\n            onError: subscribeStrategyListeners.onError,\n            onEvent: subscribeStrategyListeners.onEvent,\n            onOpen: function (subHeaders) {\n                if (!opened) {\n                    opened = true;\n                    subscribeStrategyListeners.onOpen(subHeaders);\n                }\n                completeListeners.onSubscribe();\n            },\n            onRetrying: subscribeStrategyListeners.onRetrying,\n        }, __assign({}, headers, this.infoHeaders()));\n    };\n    BaseClient.prototype.subscribeNonResuming = function (path, headers, listeners, retryStrategyOptions, tokenProvider) {\n        var completeListeners = subscription_1.replaceMissingListenersWithNoOps(listeners);\n        var subscribeStrategyListeners = subscribe_strategy_1.subscribeStrategyListenersFromSubscriptionListeners(completeListeners);\n        var subscriptionStrategy = retrying_subscription_1.createRetryingStrategy(retryStrategyOptions, token_providing_subscription_1.createTokenProvidingStrategy(transports_1.createTransportStrategy(path, this.websocketTransport, this.logger), this.logger, tokenProvider), this.logger);\n        var opened = false;\n        return subscriptionStrategy({\n            onEnd: subscribeStrategyListeners.onEnd,\n            onError: subscribeStrategyListeners.onError,\n            onEvent: subscribeStrategyListeners.onEvent,\n            onOpen: function (subHeaders) {\n                if (!opened) {\n                    opened = true;\n                    subscribeStrategyListeners.onOpen(subHeaders);\n                }\n                completeListeners.onSubscribe();\n            },\n            onRetrying: subscribeStrategyListeners.onRetrying,\n        }, __assign({}, headers, this.infoHeaders()));\n    };\n    BaseClient.prototype.infoHeaders = function () {\n        return {\n            'X-SDK-Language': 'javascript',\n            'X-SDK-Platform': this.sdkPlatform,\n            'X-SDK-Product': this.sdkProduct,\n            'X-SDK-Version': this.sdkVersion,\n        };\n    };\n    BaseClient.prototype.makeRequest = function (options) {\n        var _this = this;\n        return request_1.executeNetworkRequest(function () {\n            return _this.httpTransport.request(__assign({}, options, { headers: __assign({}, options.headers, _this.infoHeaders()) }));\n        }, options).catch(function (error) {\n            _this.logger.error(error);\n            throw error;\n        });\n    };\n    return BaseClient;\n}());\nexports.BaseClient = BaseClient;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nfunction executeNetworkRequest(createXhr, options) {\n    return new Promise(function (resolve, reject) {\n        var xhr = attachOnReadyStateChangeHandler(createXhr(), resolve, reject);\n        sendBody(xhr, options);\n    });\n}\nexports.executeNetworkRequest = executeNetworkRequest;\nfunction sendBody(xhr, options) {\n    if (options.json) {\n        xhr.send(JSON.stringify(options.json));\n    }\n    else {\n        xhr.send(options.body);\n    }\n}\nfunction sendRawRequest(options) {\n    return new Promise(function (resolve, reject) {\n        var xhr = attachOnReadyStateChangeHandler(new window.XMLHttpRequest(), resolve, reject);\n        xhr.open(options.method.toUpperCase(), options.url, true);\n        if (options.headers) {\n            for (var key in options.headers) {\n                if (options.headers.hasOwnProperty(key)) {\n                    xhr.setRequestHeader(key, options.headers[key]);\n                }\n            }\n        }\n        xhr.send(options.body);\n    });\n}\nexports.sendRawRequest = sendRawRequest;\nfunction attachOnReadyStateChangeHandler(xhr, resolve, reject) {\n    xhr.onreadystatechange = function () {\n        if (xhr.readyState === 4) {\n            if (xhr.status >= 200 && xhr.status < 300) {\n                resolve(xhr.response);\n            }\n            else if (xhr.status !== 0) {\n                reject(network_1.ErrorResponse.fromXHR(xhr));\n            }\n            else {\n                reject(new network_1.NetworkError('No Connection'));\n            }\n        }\n    };\n    return xhr;\n}\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nvar retry_strategy_1 = __webpack_require__(2);\nexports.createResumingStrategy = function (retryOptions, nextSubscribeStrategy, logger, initialEventId) {\n    var completeRetryOptions = retry_strategy_1.createRetryStrategyOptionsOrDefault(retryOptions);\n    var retryResolution = new retry_strategy_1.RetryResolution(completeRetryOptions, logger);\n    return function (listeners, headers) {\n        return new ResumingSubscription(logger, headers, nextSubscribeStrategy, listeners, retryResolution);\n    };\n};\nvar ResumingSubscription = (function () {\n    function ResumingSubscription(logger, headers, nextSubscribeStrategy, listeners, retryResolution) {\n        var _this = this;\n        this.unsubscribe = function () {\n            _this.state.unsubscribe();\n        };\n        this.onTransition = function (newState) {\n            _this.state = newState;\n        };\n        this.state = new OpeningSubscriptionState(this.onTransition, logger, headers, nextSubscribeStrategy, listeners, retryResolution);\n    }\n    return ResumingSubscription;\n}());\nvar OpeningSubscriptionState = (function () {\n    function OpeningSubscriptionState(onTransition, logger, headers, nextSubscribeStrategy, listeners, retryResolution, initialEventId) {\n        var _this = this;\n        this.onTransition = onTransition;\n        this.logger = logger;\n        this.headers = headers;\n        this.nextSubscribeStrategy = nextSubscribeStrategy;\n        this.listeners = listeners;\n        this.retryResolution = retryResolution;\n        this.initialEventId = initialEventId;\n        var lastEventId = initialEventId;\n        logger.verbose(\"ResumingSubscription: transitioning to OpeningSubscriptionState\");\n        if (lastEventId) {\n            headers['Last-Event-Id'] = lastEventId;\n            logger.verbose(\"ResumingSubscription: initialEventId is \" + lastEventId);\n        }\n        this.underlyingSubscription = nextSubscribeStrategy({\n            onEnd: function (error) {\n                onTransition(new EndedSubscriptionState(logger, listeners, error));\n            },\n            onError: function (error) {\n                onTransition(new ResumingSubscriptionState(error, onTransition, logger, headers, listeners, nextSubscribeStrategy, retryResolution, lastEventId));\n            },\n            onEvent: function (event) {\n                lastEventId = event.eventId;\n                listeners.onEvent(event);\n            },\n            onOpen: function (subHeaders) {\n                onTransition(new OpenSubscriptionState(logger, subHeaders, listeners, _this.underlyingSubscription, onTransition));\n            },\n            onRetrying: listeners.onRetrying,\n        }, headers);\n    }\n    OpeningSubscriptionState.prototype.unsubscribe = function () {\n        this.onTransition(new EndingSubscriptionState(this.logger));\n        this.underlyingSubscription.unsubscribe();\n    };\n    return OpeningSubscriptionState;\n}());\nvar OpenSubscriptionState = (function () {\n    function OpenSubscriptionState(logger, headers, listeners, underlyingSubscription, onTransition) {\n        this.logger = logger;\n        this.headers = headers;\n        this.listeners = listeners;\n        this.underlyingSubscription = underlyingSubscription;\n        this.onTransition = onTransition;\n        logger.verbose(\"ResumingSubscription: transitioning to OpenSubscriptionState\");\n        listeners.onOpen(headers);\n    }\n    OpenSubscriptionState.prototype.unsubscribe = function () {\n        this.onTransition(new EndingSubscriptionState(this.logger));\n        this.underlyingSubscription.unsubscribe();\n    };\n    return OpenSubscriptionState;\n}());\nvar ResumingSubscriptionState = (function () {\n    function ResumingSubscriptionState(error, onTransition, logger, headers, listeners, nextSubscribeStrategy, retryResolution, lastEventId) {\n        var _this = this;\n        this.onTransition = onTransition;\n        this.logger = logger;\n        this.headers = headers;\n        this.listeners = listeners;\n        this.nextSubscribeStrategy = nextSubscribeStrategy;\n        this.retryResolution = retryResolution;\n        logger.verbose(\"ResumingSubscription: transitioning to ResumingSubscriptionState\");\n        var executeSubscriptionOnce = function (subError, subLastEventId) {\n            listeners.onRetrying();\n            var resolveError = function (errToResolve) {\n                if (errToResolve instanceof network_1.ErrorResponse) {\n                    errToResolve.headers['Request-Method'] = 'SUBSCRIBE';\n                }\n                return retryResolution.attemptRetry(errToResolve);\n            };\n            var errorResolution = resolveError(subError);\n            if (errorResolution instanceof retry_strategy_1.Retry) {\n                _this.timeout = window.setTimeout(function () {\n                    executeNextSubscribeStrategy(subLastEventId);\n                }, errorResolution.waitTimeMillis);\n            }\n            else {\n                onTransition(new FailedSubscriptionState(logger, listeners, subError));\n            }\n        };\n        var executeNextSubscribeStrategy = function (subLastEventId) {\n            logger.verbose(\"ResumingSubscription: trying to re-establish the subscription\");\n            if (subLastEventId) {\n                logger.verbose(\"ResumingSubscription: lastEventId: \" + subLastEventId);\n                headers['Last-Event-Id'] = subLastEventId;\n            }\n            _this.underlyingSubscription = nextSubscribeStrategy({\n                onEnd: function (endError) {\n                    onTransition(new EndedSubscriptionState(logger, listeners, endError));\n                },\n                onError: function (subError) {\n                    executeSubscriptionOnce(subError, lastEventId);\n                },\n                onEvent: function (event) {\n                    lastEventId = event.eventId;\n                    listeners.onEvent(event);\n                },\n                onOpen: function (openHeaders) {\n                    onTransition(new OpenSubscriptionState(logger, openHeaders, listeners, _this.underlyingSubscription, onTransition));\n                },\n                onRetrying: listeners.onRetrying,\n            }, headers);\n        };\n        executeSubscriptionOnce(error, lastEventId);\n    }\n    ResumingSubscriptionState.prototype.unsubscribe = function () {\n        this.onTransition(new EndingSubscriptionState(this.logger));\n        window.clearTimeout(this.timeout);\n        this.underlyingSubscription.unsubscribe();\n    };\n    return ResumingSubscriptionState;\n}());\nvar EndingSubscriptionState = (function () {\n    function EndingSubscriptionState(logger, error) {\n        this.logger = logger;\n        logger.verbose(\"ResumingSubscription: transitioning to EndingSubscriptionState\");\n    }\n    EndingSubscriptionState.prototype.unsubscribe = function () {\n        throw new Error('Subscription is already ending');\n    };\n    return EndingSubscriptionState;\n}());\nvar EndedSubscriptionState = (function () {\n    function EndedSubscriptionState(logger, listeners, error) {\n        this.logger = logger;\n        this.listeners = listeners;\n        logger.verbose(\"ResumingSubscription: transitioning to EndedSubscriptionState\");\n        listeners.onEnd(error);\n    }\n    EndedSubscriptionState.prototype.unsubscribe = function () {\n        throw new Error('Subscription has already ended');\n    };\n    return EndedSubscriptionState;\n}());\nvar FailedSubscriptionState = (function () {\n    function FailedSubscriptionState(logger, listeners, error) {\n        this.logger = logger;\n        this.listeners = listeners;\n        logger.verbose(\"ResumingSubscription: transitioning to FailedSubscriptionState\", error);\n        listeners.onError(error);\n    }\n    FailedSubscriptionState.prototype.unsubscribe = function () {\n        throw new Error('Subscription has already ended');\n    };\n    return FailedSubscriptionState;\n}());\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nvar retry_strategy_1 = __webpack_require__(2);\nexports.createRetryingStrategy = function (retryOptions, nextSubscribeStrategy, logger) {\n    var enrichedRetryOptions = retry_strategy_1.createRetryStrategyOptionsOrDefault(retryOptions);\n    var retryResolution = new retry_strategy_1.RetryResolution(enrichedRetryOptions, logger);\n    return function (listeners, headers) {\n        return new RetryingSubscription(logger, headers, listeners, nextSubscribeStrategy, retryResolution);\n    };\n};\nvar RetryingSubscription = (function () {\n    function RetryingSubscription(logger, headers, listeners, nextSubscribeStrategy, retryResolution) {\n        var _this = this;\n        this.unsubscribe = function () {\n            _this.state.unsubscribe();\n        };\n        this.onTransition = function (newState) {\n            _this.state = newState;\n        };\n        this.state = new OpeningSubscriptionState(this.onTransition, logger, headers, listeners, nextSubscribeStrategy, retryResolution);\n    }\n    return RetryingSubscription;\n}());\nvar OpeningSubscriptionState = (function () {\n    function OpeningSubscriptionState(onTransition, logger, headers, listeners, nextSubscribeStrategy, retryResolution) {\n        var _this = this;\n        this.logger = logger;\n        this.headers = headers;\n        this.listeners = listeners;\n        this.nextSubscribeStrategy = nextSubscribeStrategy;\n        this.retryResolution = retryResolution;\n        logger.verbose(\"RetryingSubscription: transitioning to OpeningSubscriptionState\");\n        this.underlyingSubscription = nextSubscribeStrategy({\n            onEnd: function (error) {\n                return onTransition(new EndedSubscriptionState(logger, listeners, error));\n            },\n            onError: function (error) {\n                return onTransition(new RetryingSubscriptionState(error, onTransition, logger, headers, listeners, nextSubscribeStrategy, retryResolution));\n            },\n            onEvent: listeners.onEvent,\n            onOpen: function (subHeaders) {\n                return onTransition(new OpenSubscriptionState(logger, listeners, subHeaders, _this.underlyingSubscription, onTransition));\n            },\n            onRetrying: listeners.onRetrying,\n        }, headers);\n    }\n    OpeningSubscriptionState.prototype.unsubscribe = function () {\n        this.underlyingSubscription.unsubscribe();\n        throw new Error('Method not implemented.');\n    };\n    return OpeningSubscriptionState;\n}());\nvar RetryingSubscriptionState = (function () {\n    function RetryingSubscriptionState(error, onTransition, logger, headers, listeners, nextSubscribeStrategy, retryResolution) {\n        var _this = this;\n        this.onTransition = onTransition;\n        this.logger = logger;\n        this.headers = headers;\n        this.listeners = listeners;\n        this.nextSubscribeStrategy = nextSubscribeStrategy;\n        this.retryResolution = retryResolution;\n        logger.verbose(\"RetryingSubscription: transitioning to RetryingSubscriptionState\");\n        var executeSubscriptionOnce = function (subError) {\n            listeners.onRetrying();\n            var resolveError = function (errToResolve) {\n                if (errToResolve instanceof network_1.ErrorResponse) {\n                    errToResolve.headers['Request-Method'] = 'SUBSCRIBE';\n                }\n                return retryResolution.attemptRetry(errToResolve);\n            };\n            var errorResolution = resolveError(subError);\n            if (errorResolution instanceof retry_strategy_1.Retry) {\n                _this.timeout = window.setTimeout(function () {\n                    executeNextSubscribeStrategy();\n                }, errorResolution.waitTimeMillis);\n            }\n            else {\n                onTransition(new FailedSubscriptionState(logger, listeners, subError));\n            }\n        };\n        var executeNextSubscribeStrategy = function () {\n            logger.verbose(\"RetryingSubscription: trying to re-establish the subscription\");\n            var underlyingSubscription = nextSubscribeStrategy({\n                onEnd: function (endError) {\n                    return onTransition(new EndedSubscriptionState(logger, listeners, endError));\n                },\n                onError: function (subError) { return executeSubscriptionOnce(subError); },\n                onEvent: listeners.onEvent,\n                onOpen: function (openHeaders) {\n                    onTransition(new OpenSubscriptionState(logger, listeners, openHeaders, underlyingSubscription, onTransition));\n                },\n                onRetrying: listeners.onRetrying,\n            }, headers);\n        };\n        executeSubscriptionOnce(error);\n    }\n    RetryingSubscriptionState.prototype.unsubscribe = function () {\n        window.clearTimeout(this.timeout);\n        this.onTransition(new EndedSubscriptionState(this.logger, this.listeners));\n    };\n    return RetryingSubscriptionState;\n}());\nvar OpenSubscriptionState = (function () {\n    function OpenSubscriptionState(logger, listeners, headers, underlyingSubscription, onTransition) {\n        this.logger = logger;\n        this.listeners = listeners;\n        this.headers = headers;\n        this.underlyingSubscription = underlyingSubscription;\n        this.onTransition = onTransition;\n        logger.verbose(\"RetryingSubscription: transitioning to OpenSubscriptionState\");\n        listeners.onOpen(headers);\n    }\n    OpenSubscriptionState.prototype.unsubscribe = function () {\n        this.underlyingSubscription.unsubscribe();\n        this.onTransition(new EndedSubscriptionState(this.logger, this.listeners));\n    };\n    return OpenSubscriptionState;\n}());\nvar EndedSubscriptionState = (function () {\n    function EndedSubscriptionState(logger, listeners, error) {\n        this.logger = logger;\n        this.listeners = listeners;\n        logger.verbose(\"RetryingSubscription: transitioning to EndedSubscriptionState\");\n        listeners.onEnd(error);\n    }\n    EndedSubscriptionState.prototype.unsubscribe = function () {\n        throw new Error('Subscription has already ended');\n    };\n    return EndedSubscriptionState;\n}());\nvar FailedSubscriptionState = (function () {\n    function FailedSubscriptionState(logger, listeners, error) {\n        this.logger = logger;\n        this.listeners = listeners;\n        logger.verbose(\"RetryingSubscription: transitioning to FailedSubscriptionState\", error);\n        listeners.onError(error);\n    }\n    FailedSubscriptionState.prototype.unsubscribe = function () {\n        throw new Error('Subscription has already ended');\n    };\n    return FailedSubscriptionState;\n}());\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nexports.createTokenProvidingStrategy = function (nextSubscribeStrategy, logger, tokenProvider) {\n    if (tokenProvider) {\n        return function (listeners, headers) {\n            return new TokenProvidingSubscription(logger, listeners, headers, tokenProvider, nextSubscribeStrategy);\n        };\n    }\n    return nextSubscribeStrategy;\n};\nvar TokenProvidingSubscription = (function () {\n    function TokenProvidingSubscription(logger, listeners, headers, tokenProvider, nextSubscribeStrategy) {\n        var _this = this;\n        this.logger = logger;\n        this.listeners = listeners;\n        this.headers = headers;\n        this.tokenProvider = tokenProvider;\n        this.nextSubscribeStrategy = nextSubscribeStrategy;\n        this.unsubscribe = function () {\n            _this.state.unsubscribe();\n            _this.state = new InactiveState(_this.logger);\n        };\n        this.state = new ActiveState(logger, headers, nextSubscribeStrategy);\n        this.subscribe();\n    }\n    TokenProvidingSubscription.prototype.subscribe = function () {\n        var _this = this;\n        this.tokenProvider\n            .fetchToken()\n            .then(function (token) {\n            var existingListeners = Object.assign({}, _this.listeners);\n            _this.state.subscribe(token, {\n                onEnd: function (error) {\n                    _this.state = new InactiveState(_this.logger);\n                    existingListeners.onEnd(error);\n                },\n                onError: function (error) {\n                    if (_this.isTokenExpiredError(error)) {\n                        _this.tokenProvider.clearToken(token);\n                        _this.subscribe();\n                    }\n                    else {\n                        _this.state = new InactiveState(_this.logger);\n                        existingListeners.onError(error);\n                    }\n                },\n                onEvent: _this.listeners.onEvent,\n                onOpen: _this.listeners.onOpen,\n            });\n        })\n            .catch(function (error) {\n            _this.logger.debug('TokenProvidingSubscription: error when fetching token:', error);\n            _this.state = new InactiveState(_this.logger);\n            _this.listeners.onError(error);\n        });\n    };\n    TokenProvidingSubscription.prototype.isTokenExpiredError = function (error) {\n        return (error instanceof network_1.ErrorResponse &&\n            error.statusCode === 401 &&\n            error.info === 'authentication/expired');\n    };\n    return TokenProvidingSubscription;\n}());\nvar ActiveState = (function () {\n    function ActiveState(logger, headers, nextSubscribeStrategy) {\n        this.logger = logger;\n        this.headers = headers;\n        this.nextSubscribeStrategy = nextSubscribeStrategy;\n        logger.verbose('TokenProvidingSubscription: transitioning to ActiveState');\n    }\n    ActiveState.prototype.subscribe = function (token, listeners) {\n        var _this = this;\n        this.putTokenIntoHeader(token);\n        this.underlyingSubscription = this.nextSubscribeStrategy({\n            onEnd: function (error) {\n                _this.logger.verbose('TokenProvidingSubscription: subscription ended');\n                listeners.onEnd(error);\n            },\n            onError: function (error) {\n                _this.logger.verbose('TokenProvidingSubscription: subscription errored:', error);\n                listeners.onError(error);\n            },\n            onEvent: listeners.onEvent,\n            onOpen: function (headers) {\n                _this.logger.verbose(\"TokenProvidingSubscription: subscription opened\");\n                listeners.onOpen(headers);\n            },\n            onRetrying: listeners.onRetrying,\n        }, this.headers);\n    };\n    ActiveState.prototype.unsubscribe = function () {\n        this.underlyingSubscription.unsubscribe();\n    };\n    ActiveState.prototype.putTokenIntoHeader = function (token) {\n        this.headers['Authorization'] = \"Bearer \" + token;\n        this.logger.verbose(\"TokenProvidingSubscription: token fetched: \" + token);\n    };\n    return ActiveState;\n}());\nvar InactiveState = (function () {\n    function InactiveState(logger) {\n        this.logger = logger;\n        logger.verbose('TokenProvidingSubscription: transitioning to InactiveState');\n    }\n    InactiveState.prototype.subscribe = function (token, listeners) {\n        this.logger.verbose('TokenProvidingSubscription: subscribe called in Inactive state; doing nothing');\n    };\n    InactiveState.prototype.unsubscribe = function () {\n        this.logger.verbose('TokenProvidingSubscription: unsubscribe called in Inactive state; doing nothing');\n    };\n    return InactiveState;\n}());\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTransportStrategy = function (path, transport, logger) {\n    return function (listeners, headers) { return transport.subscribe(path, listeners, headers); };\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HOST_BASE = 'pusherplatform.io';\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar base_client_1 = __webpack_require__(3);\nexports.BaseClient = base_client_1.BaseClient;\nvar host_base_1 = __webpack_require__(9);\nexports.HOST_BASE = host_base_1.HOST_BASE;\nvar instance_1 = __webpack_require__(15);\nexports.Instance = instance_1.default;\nvar logger_1 = __webpack_require__(1);\nexports.ConsoleLogger = logger_1.ConsoleLogger;\nexports.EmptyLogger = logger_1.EmptyLogger;\nvar network_1 = __webpack_require__(0);\nexports.ErrorResponse = network_1.ErrorResponse;\nexports.NetworkError = network_1.NetworkError;\nexports.responseToHeadersObject = network_1.responseToHeadersObject;\nexports.XhrReadyState = network_1.XhrReadyState;\nvar request_1 = __webpack_require__(4);\nexports.executeNetworkRequest = request_1.executeNetworkRequest;\nexports.sendRawRequest = request_1.sendRawRequest;\nvar resuming_subscription_1 = __webpack_require__(5);\nexports.createResumingStrategy = resuming_subscription_1.createResumingStrategy;\nvar retry_strategy_1 = __webpack_require__(2);\nexports.createRetryStrategyOptionsOrDefault = retry_strategy_1.createRetryStrategyOptionsOrDefault;\nexports.DoNotRetry = retry_strategy_1.DoNotRetry;\nexports.Retry = retry_strategy_1.Retry;\nexports.RetryResolution = retry_strategy_1.RetryResolution;\nvar retrying_subscription_1 = __webpack_require__(6);\nexports.createRetryingStrategy = retrying_subscription_1.createRetryingStrategy;\nvar token_providing_subscription_1 = __webpack_require__(7);\nexports.createTokenProvidingStrategy = token_providing_subscription_1.createTokenProvidingStrategy;\nvar transports_1 = __webpack_require__(8);\nexports.createTransportStrategy = transports_1.createTransportStrategy;\nexports.default = {\n    BaseClient: base_client_1.BaseClient,\n    ConsoleLogger: logger_1.ConsoleLogger,\n    EmptyLogger: logger_1.EmptyLogger,\n    Instance: instance_1.default,\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.subscribeStrategyListenersFromSubscriptionListeners = function (subListeners) {\n    return {\n        onEnd: subListeners.onEnd,\n        onError: subListeners.onError,\n        onEvent: subListeners.onEvent,\n        onOpen: subListeners.onOpen,\n        onRetrying: subListeners.onRetrying,\n    };\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceMissingListenersWithNoOps = function (listeners) {\n    var onEndNoOp = function (error) { };\n    var onEnd = listeners.onEnd || onEndNoOp;\n    var onErrorNoOp = function (error) { };\n    var onError = listeners.onError || onErrorNoOp;\n    var onEventNoOp = function (event) { };\n    var onEvent = listeners.onEvent || onEventNoOp;\n    var onOpenNoOp = function (headers) { };\n    var onOpen = listeners.onOpen || onOpenNoOp;\n    var onRetryingNoOp = function () { };\n    var onRetrying = listeners.onRetrying || onRetryingNoOp;\n    var onSubscribeNoOp = function () { };\n    var onSubscribe = listeners.onSubscribe || onSubscribeNoOp;\n    return {\n        onEnd: onEnd,\n        onError: onError,\n        onEvent: onEvent,\n        onOpen: onOpen,\n        onRetrying: onRetrying,\n        onSubscribe: onSubscribe,\n    };\n};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nvar HttpTransportState;\n(function (HttpTransportState) {\n    HttpTransportState[HttpTransportState[\"UNOPENED\"] = 0] = \"UNOPENED\";\n    HttpTransportState[HttpTransportState[\"OPENING\"] = 1] = \"OPENING\";\n    HttpTransportState[HttpTransportState[\"OPEN\"] = 2] = \"OPEN\";\n    HttpTransportState[HttpTransportState[\"ENDING\"] = 3] = \"ENDING\";\n    HttpTransportState[HttpTransportState[\"ENDED\"] = 4] = \"ENDED\";\n})(HttpTransportState = exports.HttpTransportState || (exports.HttpTransportState = {}));\nvar HttpSubscription = (function () {\n    function HttpSubscription(xhr, listeners) {\n        var _this = this;\n        this.gotEOS = false;\n        this.lastNewlineIndex = 0;\n        this.state = HttpTransportState.UNOPENED;\n        this.xhr = xhr;\n        this.listeners = listeners;\n        this.xhr.onreadystatechange = function () {\n            switch (_this.xhr.readyState) {\n                case network_1.XhrReadyState.UNSENT:\n                case network_1.XhrReadyState.OPENED:\n                case network_1.XhrReadyState.HEADERS_RECEIVED:\n                    _this.assertStateIsIn(HttpTransportState.OPENING);\n                    break;\n                case network_1.XhrReadyState.LOADING:\n                    _this.onLoading();\n                    break;\n                case network_1.XhrReadyState.DONE:\n                    _this.onDone();\n                    break;\n            }\n        };\n        this.state = HttpTransportState.OPENING;\n        this.xhr.send();\n        return this;\n    }\n    HttpSubscription.prototype.unsubscribe = function () {\n        this.state = HttpTransportState.ENDED;\n        this.xhr.abort();\n        if (this.listeners.onEnd) {\n            this.listeners.onEnd(null);\n        }\n    };\n    HttpSubscription.prototype.onLoading = function () {\n        this.assertStateIsIn(HttpTransportState.OPENING, HttpTransportState.OPEN, HttpTransportState.ENDING);\n        if (this.xhr.status === 200) {\n            if (this.state === HttpTransportState.OPENING) {\n                this.state = HttpTransportState.OPEN;\n                window.console.log(network_1.responseToHeadersObject(this.xhr.getAllResponseHeaders()));\n                if (this.listeners.onOpen) {\n                    this.listeners.onOpen(network_1.responseToHeadersObject(this.xhr.getAllResponseHeaders()));\n                }\n            }\n            this.assertStateIsIn(HttpTransportState.OPEN);\n            var err = this.onChunk();\n            this.assertStateIsIn(HttpTransportState.OPEN, HttpTransportState.ENDING);\n            if (err) {\n                this.state = HttpTransportState.ENDED;\n                if (err instanceof network_1.ErrorResponse && err.statusCode !== 204) {\n                    if (this.listeners.onError) {\n                        this.listeners.onError(err);\n                    }\n                }\n            }\n            else {\n            }\n        }\n    };\n    HttpSubscription.prototype.onDone = function () {\n        if (this.xhr.status === 200) {\n            if (this.state === HttpTransportState.OPENING) {\n                this.state = HttpTransportState.OPEN;\n                if (this.listeners.onOpen) {\n                    this.listeners.onOpen(network_1.responseToHeadersObject(this.xhr.getAllResponseHeaders()));\n                }\n            }\n            this.assertStateIsIn(HttpTransportState.OPEN, HttpTransportState.ENDING);\n            var err = this.onChunk();\n            if (err) {\n                this.state = HttpTransportState.ENDED;\n                if (err.statusCode === 204) {\n                    if (this.listeners.onEnd) {\n                        this.listeners.onEnd(null);\n                    }\n                }\n                else {\n                    if (this.listeners.onError) {\n                        this.listeners.onError(err);\n                    }\n                }\n            }\n            else if (this.state <= HttpTransportState.ENDING) {\n                if (this.listeners.onError) {\n                    this.listeners.onError(new Error('HTTP response ended without receiving EOS message'));\n                }\n            }\n            else {\n                if (this.listeners.onEnd) {\n                    this.listeners.onEnd(null);\n                }\n            }\n        }\n        else {\n            this.assertStateIsIn(HttpTransportState.OPENING, HttpTransportState.OPEN, HttpTransportState.ENDED);\n            if (this.state === HttpTransportState.ENDED) {\n                return;\n            }\n            else if (this.xhr.status === 0) {\n                if (this.listeners.onError) {\n                    this.listeners.onError(new network_1.NetworkError('Connection lost.'));\n                }\n            }\n            else {\n                if (this.listeners.onError) {\n                    this.listeners.onError(network_1.ErrorResponse.fromXHR(this.xhr));\n                }\n            }\n        }\n    };\n    HttpSubscription.prototype.onChunk = function () {\n        this.assertStateIsIn(HttpTransportState.OPEN);\n        var response = this.xhr.responseText;\n        var newlineIndex = response.lastIndexOf('\\n');\n        if (newlineIndex > this.lastNewlineIndex) {\n            var rawEvents = response\n                .slice(this.lastNewlineIndex, newlineIndex)\n                .split('\\n');\n            this.lastNewlineIndex = newlineIndex;\n            for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n                var rawEvent = rawEvents_1[_i];\n                if (rawEvent.length === 0) {\n                    continue;\n                }\n                var data = JSON.parse(rawEvent);\n                var err = this.onMessage(data);\n                if (err != null) {\n                    return err;\n                }\n            }\n        }\n    };\n    HttpSubscription.prototype.assertStateIsIn = function () {\n        var _this = this;\n        var validStates = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            validStates[_i] = arguments[_i];\n        }\n        var stateIsValid = validStates.some(function (validState) { return validState === _this.state; });\n        if (!stateIsValid) {\n            var expectedStates = validStates\n                .map(function (state) { return HttpTransportState[state]; })\n                .join(', ');\n            var actualState = HttpTransportState[this.state];\n            window.console.warn(\"Expected this.state to be one of [\" + expectedStates + \"] but it is \" + actualState);\n        }\n    };\n    HttpSubscription.prototype.onMessage = function (message) {\n        this.assertStateIsIn(HttpTransportState.OPEN);\n        this.verifyMessage(message);\n        switch (message[0]) {\n            case 0:\n                return null;\n            case 1:\n                return this.onEventMessage(message);\n            case 255:\n                return this.onEOSMessage(message);\n            default:\n                return new Error('Unknown Message: ' + JSON.stringify(message));\n        }\n    };\n    HttpSubscription.prototype.onEventMessage = function (eventMessage) {\n        this.assertStateIsIn(HttpTransportState.OPEN);\n        if (eventMessage.length !== 4) {\n            return new Error('Event message has ' + eventMessage.length + ' elements (expected 4)');\n        }\n        var _ = eventMessage[0], id = eventMessage[1], headers = eventMessage[2], body = eventMessage[3];\n        if (typeof id !== 'string') {\n            return new Error('Invalid event ID in message: ' + JSON.stringify(eventMessage));\n        }\n        if (typeof headers !== 'object' || Array.isArray(headers)) {\n            return new Error('Invalid event headers in message: ' + JSON.stringify(eventMessage));\n        }\n        if (this.listeners.onEvent) {\n            this.listeners.onEvent({ body: body, headers: headers, eventId: id });\n        }\n        return null;\n    };\n    HttpSubscription.prototype.onEOSMessage = function (eosMessage) {\n        this.assertStateIsIn(HttpTransportState.OPEN);\n        if (eosMessage.length !== 4) {\n            return new Error('EOS message has ' + eosMessage.length + ' elements (expected 4)');\n        }\n        var _ = eosMessage[0], statusCode = eosMessage[1], headers = eosMessage[2], info = eosMessage[3];\n        if (typeof statusCode !== 'number') {\n            return new Error('Invalid EOS Status Code');\n        }\n        if (typeof headers !== 'object' || Array.isArray(headers)) {\n            return new Error('Invalid EOS ElementsHeaders');\n        }\n        this.state = HttpTransportState.ENDING;\n        return new network_1.ErrorResponse(statusCode, headers, info);\n    };\n    HttpSubscription.prototype.verifyMessage = function (message) {\n        if (this.gotEOS) {\n            return new Error('Got another message after EOS message');\n        }\n        if (!Array.isArray(message)) {\n            return new Error('Message is not an array');\n        }\n        if (message.length < 1) {\n            return new Error('Message is empty array');\n        }\n    };\n    return HttpSubscription;\n}());\nvar HttpTransport = (function () {\n    function HttpTransport(host, encrypted) {\n        if (encrypted === void 0) { encrypted = true; }\n        this.baseURL = (encrypted ? 'https' : 'http') + \"://\" + host;\n    }\n    HttpTransport.prototype.request = function (requestOptions) {\n        return this.createXHR(this.baseURL, requestOptions);\n    };\n    HttpTransport.prototype.subscribe = function (path, listeners, headers) {\n        var requestOptions = {\n            headers: headers,\n            method: 'SUBSCRIBE',\n            path: path,\n        };\n        return new HttpSubscription(this.createXHR(this.baseURL, requestOptions), listeners);\n    };\n    HttpTransport.prototype.createXHR = function (baseURL, options) {\n        var xhr = new window.XMLHttpRequest();\n        var path = options.path.replace(/^\\/+/, '');\n        var endpoint = baseURL + \"/\" + path;\n        xhr.open(options.method.toUpperCase(), endpoint, true);\n        xhr = this.setJSONHeaderIfAppropriate(xhr, options);\n        if (options.jwt) {\n            xhr.setRequestHeader('authorization', \"Bearer \" + options.jwt);\n        }\n        if (options.headers) {\n            for (var key in options.headers) {\n                if (options.headers.hasOwnProperty(key)) {\n                    xhr.setRequestHeader(key, options.headers[key]);\n                }\n            }\n        }\n        return xhr;\n    };\n    HttpTransport.prototype.setJSONHeaderIfAppropriate = function (xhr, options) {\n        if (options.json) {\n            xhr.setRequestHeader('content-type', 'application/json');\n        }\n        return xhr;\n    };\n    return HttpTransport;\n}());\nexports.default = HttpTransport;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar network_1 = __webpack_require__(0);\nvar SubscribeMessageType = 100;\nvar OpenMessageType = 101;\nvar EventMessageType = 102;\nvar UnsubscribeMessageType = 198;\nvar EosMessageType = 199;\nvar PingMessageType = 16;\nvar PongMessageType = 17;\nvar CloseMessageType = 99;\nvar WSReadyState;\n(function (WSReadyState) {\n    WSReadyState[WSReadyState[\"Connecting\"] = 0] = \"Connecting\";\n    WSReadyState[WSReadyState[\"Open\"] = 1] = \"Open\";\n    WSReadyState[WSReadyState[\"Closing\"] = 2] = \"Closing\";\n    WSReadyState[WSReadyState[\"Closed\"] = 3] = \"Closed\";\n})(WSReadyState = exports.WSReadyState || (exports.WSReadyState = {}));\nvar WsSubscriptions = (function () {\n    function WsSubscriptions() {\n        this.subscriptions = {};\n    }\n    WsSubscriptions.prototype.add = function (subID, path, listeners, headers) {\n        this.subscriptions[subID] = {\n            headers: headers,\n            listeners: listeners,\n            path: path,\n        };\n        return subID;\n    };\n    WsSubscriptions.prototype.has = function (subID) {\n        return this.subscriptions[subID] !== undefined;\n    };\n    WsSubscriptions.prototype.isEmpty = function () {\n        return Object.keys(this.subscriptions).length === 0;\n    };\n    WsSubscriptions.prototype.remove = function (subID) {\n        return delete this.subscriptions[subID];\n    };\n    WsSubscriptions.prototype.get = function (subID) {\n        return this.subscriptions[subID];\n    };\n    WsSubscriptions.prototype.getAll = function () {\n        return this.subscriptions;\n    };\n    WsSubscriptions.prototype.getAllAsArray = function () {\n        var _this = this;\n        return Object.keys(this.subscriptions).map(function (subID) { return (__assign({ subID: parseInt(subID, 10) }, _this.subscriptions[parseInt(subID, 10)])); });\n    };\n    WsSubscriptions.prototype.removeAll = function () {\n        this.subscriptions = {};\n    };\n    return WsSubscriptions;\n}());\nvar WsSubscription = (function () {\n    function WsSubscription(wsTransport, subID) {\n        this.wsTransport = wsTransport;\n        this.subID = subID;\n    }\n    WsSubscription.prototype.unsubscribe = function () {\n        this.wsTransport.unsubscribe(this.subID);\n    };\n    return WsSubscription;\n}());\nvar pingIntervalMs = 30000;\nvar pingTimeoutMs = 10000;\nvar WebSocketTransport = (function () {\n    function WebSocketTransport(host) {\n        this.webSocketPath = '/ws';\n        this.forcedClose = false;\n        this.closedError = null;\n        this.baseURL = \"wss://\" + host + this.webSocketPath;\n        this.lastSubscriptionID = 0;\n        this.subscriptions = new WsSubscriptions();\n        this.pendingSubscriptions = new WsSubscriptions();\n        this.connect();\n    }\n    WebSocketTransport.prototype.subscribe = function (path, listeners, headers) {\n        this.tryReconnectIfNeeded();\n        var subID = this.lastSubscriptionID++;\n        if (this.socket.readyState !== WSReadyState.Open) {\n            this.pendingSubscriptions.add(subID, path, listeners, headers);\n            return new WsSubscription(this, subID);\n        }\n        this.subscriptions.add(subID, path, listeners, headers);\n        this.sendMessage(this.getMessage(SubscribeMessageType, subID, path, headers));\n        return new WsSubscription(this, subID);\n    };\n    WebSocketTransport.prototype.unsubscribe = function (subID) {\n        this.sendMessage(this.getMessage(UnsubscribeMessageType, subID));\n        var subscription = this.subscriptions.get(subID);\n        if (subscription.listeners.onEnd) {\n            subscription.listeners.onEnd(null);\n        }\n        this.subscriptions.remove(subID);\n    };\n    WebSocketTransport.prototype.connect = function () {\n        var _this = this;\n        this.forcedClose = false;\n        this.closedError = null;\n        this.socket = new window.WebSocket(this.baseURL);\n        this.socket.onopen = function (event) {\n            var allPendingSubscriptions = _this.pendingSubscriptions.getAllAsArray();\n            allPendingSubscriptions.forEach(function (subscription) {\n                var subID = subscription.subID, path = subscription.path, listeners = subscription.listeners, headers = subscription.headers;\n                _this.subscribePending(path, listeners, headers, subID);\n            });\n            _this.pendingSubscriptions.removeAll();\n            _this.pingInterval = window.setInterval(function () {\n                if (_this.pongTimeout) {\n                    return;\n                }\n                var now = new Date().getTime();\n                if (pingTimeoutMs > now - _this.lastMessageReceivedTimestamp) {\n                    return;\n                }\n                _this.sendMessage(_this.getMessage(PingMessageType, now));\n                _this.lastSentPingID = now;\n                _this.pongTimeout = window.setTimeout(function () {\n                    var pongNow = new Date().getTime();\n                    if (pingTimeoutMs > pongNow - _this.lastMessageReceivedTimestamp) {\n                        _this.pongTimeout = null;\n                        return;\n                    }\n                    _this.close(new network_1.NetworkError(\"Pong response wasn't received until timeout.\"));\n                }, pingTimeoutMs);\n            }, pingIntervalMs);\n        };\n        this.socket.onmessage = function (event) { return _this.receiveMessage(event); };\n        this.socket.onerror = function (event) {\n            _this.close(new network_1.NetworkError('Connection was lost.'));\n        };\n        this.socket.onclose = function (event) {\n            if (!_this.forcedClose) {\n                _this.tryReconnectIfNeeded();\n                return;\n            }\n            var callback = _this.closedError\n                ? function (subscription) {\n                    if (subscription.listeners.onError) {\n                        subscription.listeners.onError(_this.closedError);\n                    }\n                }\n                : function (subscription) {\n                    if (subscription.listeners.onEnd) {\n                        subscription.listeners.onEnd(null);\n                    }\n                };\n            var allSubscriptions = _this.pendingSubscriptions.isEmpty() === false\n                ? _this.pendingSubscriptions\n                : _this.subscriptions;\n            allSubscriptions.getAllAsArray().forEach(callback);\n            allSubscriptions.removeAll();\n            if (_this.closedError) {\n                _this.tryReconnectIfNeeded();\n            }\n        };\n    };\n    WebSocketTransport.prototype.close = function (error) {\n        if (!(this.socket instanceof window.WebSocket)) {\n            return;\n        }\n        var onClose = this.socket.onclose.bind(this);\n        delete this.socket.onclose;\n        delete this.socket.onerror;\n        delete this.socket.onmessage;\n        delete this.socket.onopen;\n        this.forcedClose = true;\n        this.closedError = error;\n        this.socket.close();\n        window.clearTimeout(this.pingInterval);\n        window.clearTimeout(this.pongTimeout);\n        delete this.pongTimeout;\n        this.lastSentPingID = null;\n        onClose();\n    };\n    WebSocketTransport.prototype.tryReconnectIfNeeded = function () {\n        if (this.forcedClose || this.socket.readyState === WSReadyState.Closed) {\n            this.connect();\n        }\n    };\n    WebSocketTransport.prototype.subscribePending = function (path, listeners, headers, subID) {\n        if (subID === undefined) {\n            window.console.log(\"Subscription to path \" + path + \" has an undefined ID\");\n            return;\n        }\n        this.subscriptions.add(subID, path, listeners, headers);\n        this.sendMessage(this.getMessage(SubscribeMessageType, subID, path, headers));\n    };\n    WebSocketTransport.prototype.getMessage = function (messageType, id, path, headers) {\n        return [messageType, id, path, headers];\n    };\n    WebSocketTransport.prototype.sendMessage = function (message) {\n        if (this.socket.readyState !== WSReadyState.Open) {\n            return window.console.warn(\"Can't send in \\\"\" + WSReadyState[this.socket.readyState] + \"\\\" state\");\n        }\n        this.socket.send(JSON.stringify(message));\n    };\n    WebSocketTransport.prototype.subscription = function (subID) {\n        return this.subscriptions.get(subID);\n    };\n    WebSocketTransport.prototype.receiveMessage = function (event) {\n        this.lastMessageReceivedTimestamp = new Date().getTime();\n        var message;\n        try {\n            message = JSON.parse(event.data);\n        }\n        catch (err) {\n            this.close(new Error(\"Message is not valid JSON format. Getting \" + event.data));\n            return;\n        }\n        var nonValidMessageError = this.validateMessage(message);\n        if (nonValidMessageError) {\n            this.close(new Error(nonValidMessageError.message));\n            return;\n        }\n        var messageType = message.shift();\n        switch (messageType) {\n            case PongMessageType:\n                this.onPongMessage(message);\n                return;\n            case PingMessageType:\n                this.onPingMessage(message);\n                return;\n            case CloseMessageType:\n                this.onCloseMessage(message);\n                return;\n        }\n        var subID = message.shift();\n        var subscription = this.subscription(subID);\n        if (!subscription) {\n            this.close(new Error(\"Received message for non existing subscription id: \\\"\" + subID + \"\\\"\"));\n            return;\n        }\n        var listeners = subscription.listeners;\n        switch (messageType) {\n            case OpenMessageType:\n                this.onOpenMessage(message, subID, listeners);\n                break;\n            case EventMessageType:\n                this.onEventMessage(message, listeners);\n                break;\n            case EosMessageType:\n                this.onEOSMessage(message, subID, listeners);\n                break;\n            default:\n                this.close(new Error('Received non existing type of message.'));\n        }\n    };\n    WebSocketTransport.prototype.validateMessage = function (message) {\n        if (!Array.isArray(message)) {\n            return new Error(\"Message is expected to be an array. Getting: \" + JSON.stringify(message));\n        }\n        if (message.length < 1) {\n            return new Error(\"Message is empty array: \" + JSON.stringify(message));\n        }\n        return null;\n    };\n    WebSocketTransport.prototype.onOpenMessage = function (message, subID, subscriptionListeners) {\n        if (subscriptionListeners.onOpen) {\n            subscriptionListeners.onOpen(message[1]);\n        }\n    };\n    WebSocketTransport.prototype.onEventMessage = function (eventMessage, subscriptionListeners) {\n        if (eventMessage.length !== 3) {\n            return new Error('Event message has ' + eventMessage.length + ' elements (expected 4)');\n        }\n        var eventId = eventMessage[0], headers = eventMessage[1], body = eventMessage[2];\n        if (typeof eventId !== 'string') {\n            return new Error(\"Invalid event ID in message: \" + JSON.stringify(eventMessage));\n        }\n        if (typeof headers !== 'object' || Array.isArray(headers)) {\n            return new Error(\"Invalid event headers in message: \" + JSON.stringify(eventMessage));\n        }\n        if (subscriptionListeners.onEvent) {\n            subscriptionListeners.onEvent({ eventId: eventId, headers: headers, body: body });\n        }\n    };\n    WebSocketTransport.prototype.onEOSMessage = function (eosMessage, subID, subscriptionListeners) {\n        this.subscriptions.remove(subID);\n        if (eosMessage.length !== 3) {\n            if (subscriptionListeners.onError) {\n                subscriptionListeners.onError(new Error(\"EOS message has \" + eosMessage.length + \" elements (expected 4)\"));\n            }\n            return;\n        }\n        var statusCode = eosMessage[0], headers = eosMessage[1], body = eosMessage[2];\n        if (typeof statusCode !== 'number') {\n            if (subscriptionListeners.onError) {\n                subscriptionListeners.onError(new Error('Invalid EOS Status Code'));\n            }\n            return;\n        }\n        if (typeof headers !== 'object' || Array.isArray(headers)) {\n            if (subscriptionListeners.onError) {\n                subscriptionListeners.onError(new Error('Invalid EOS ElementsHeaders'));\n            }\n            return;\n        }\n        if (statusCode === 204) {\n            if (subscriptionListeners.onEnd) {\n                subscriptionListeners.onEnd(null);\n            }\n            return;\n        }\n        if (subscriptionListeners.onError) {\n            subscriptionListeners.onError(new network_1.ErrorResponse(statusCode, headers, body));\n        }\n        return;\n    };\n    WebSocketTransport.prototype.onCloseMessage = function (closeMessage) {\n        var statusCode = closeMessage[0], headers = closeMessage[1], body = closeMessage[2];\n        if (typeof statusCode !== 'number') {\n            return this.close(new Error('Close message: Invalid EOS Status Code'));\n        }\n        if (typeof headers !== 'object' || Array.isArray(headers)) {\n            return this.close(new Error('Close message: Invalid EOS ElementsHeaders'));\n        }\n        this.close();\n    };\n    WebSocketTransport.prototype.onPongMessage = function (message) {\n        var receviedPongID = message[0];\n        if (this.lastSentPingID !== receviedPongID) {\n            window.console.warn(\"Received pong with ID \" + receviedPongID + \" but lastSentPingID was \" + this.lastSentPingID);\n        }\n        window.clearTimeout(this.pongTimeout);\n        delete this.pongTimeout;\n        this.lastSentPingID = null;\n    };\n    WebSocketTransport.prototype.onPingMessage = function (message) {\n        var receviedPingID = message[0];\n        this.sendMessage(this.getMessage(PongMessageType, receviedPingID));\n    };\n    return WebSocketTransport;\n}());\nexports.default = WebSocketTransport;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar base_client_1 = __webpack_require__(3);\nvar host_base_1 = __webpack_require__(9);\nvar logger_1 = __webpack_require__(1);\nvar Instance = (function () {\n    function Instance(options) {\n        if (!options.locator) {\n            throw new Error('Expected `locator` property in Instance options!');\n        }\n        var splitInstanceLocator = options.locator.split(':');\n        if (splitInstanceLocator.length !== 3) {\n            throw new Error('The instance locator supplied is invalid. Did you copy it correctly from the Pusher dashboard?');\n        }\n        if (!options.serviceName) {\n            throw new Error('Expected `serviceName` property in Instance options!');\n        }\n        if (!options.serviceVersion) {\n            throw new Error('Expected `serviceVersion` property in Instance options!');\n        }\n        this.platformVersion = splitInstanceLocator[0];\n        this.cluster = splitInstanceLocator[1];\n        this.id = splitInstanceLocator[2];\n        this.serviceName = options.serviceName;\n        this.serviceVersion = options.serviceVersion;\n        this.host = options.host || this.cluster + \".\" + host_base_1.HOST_BASE;\n        this.logger = options.logger || new logger_1.ConsoleLogger();\n        this.client =\n            options.client ||\n                new base_client_1.BaseClient({\n                    encrypted: options.encrypted,\n                    host: this.host,\n                    logger: this.logger,\n                });\n        this.tokenProvider = options.tokenProvider;\n    }\n    Instance.prototype.request = function (options, tokenParams) {\n        options.path = this.absPath(options.path);\n        if (options.headers == null || options.headers === undefined) {\n            options.headers = {};\n        }\n        options.tokenProvider = options.tokenProvider || this.tokenProvider;\n        return this.client.request(options, tokenParams);\n    };\n    Instance.prototype.subscribeNonResuming = function (options) {\n        var headers = options.headers || {};\n        var retryStrategyOptions = options.retryStrategyOptions || {};\n        var tokenProvider = options.tokenProvider || this.tokenProvider;\n        return this.client.subscribeNonResuming(this.absPath(options.path), headers, options.listeners, retryStrategyOptions, tokenProvider);\n    };\n    Instance.prototype.subscribeResuming = function (options) {\n        var headers = options.headers || {};\n        var retryStrategyOptions = options.retryStrategyOptions || {};\n        var tokenProvider = options.tokenProvider || this.tokenProvider;\n        return this.client.subscribeResuming(this.absPath(options.path), headers, options.listeners, retryStrategyOptions, options.initialEventId, tokenProvider);\n    };\n    Instance.prototype.absPath = function (relativePath) {\n        return (\"/services/\" + this.serviceName + \"/\" + this.serviceVersion + \"/\" + this.id + \"/\" + relativePath)\n            .replace(/\\/+/g, '/')\n            .replace(/\\/+$/, '');\n    };\n    return Instance;\n}());\nexports.default = Instance;\n\n\n/***/ })\n/******/ ]);\n});"]}