{"version":3,"file":"chunk.e707778263963fdf4025.js","mappings":"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","sources":["webpack:///../../../node_modules/.pnpm/laravel-echo@1.9.0/node_modules/laravel-echo/dist/echo.js","webpack:///../../../node_modules/.pnpm/pusher-js@7.0.1/node_modules/pusher-js/dist/web/pusher.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function () {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nvar Connector = /*#__PURE__*/function () {\n /**\r\n * Create a new class instance.\r\n */\n function Connector(options) {\n _classCallCheck(this, Connector);\n\n /**\r\n * Default connector options.\r\n */\n this._defaultOptions = {\n auth: {\n headers: {}\n },\n authEndpoint: '/broadcasting/auth',\n broadcaster: 'pusher',\n csrfToken: null,\n host: null,\n key: null,\n namespace: 'App.Events'\n };\n this.setOptions(options);\n this.connect();\n }\n /**\r\n * Merge the custom options with the defaults.\r\n */\n\n\n _createClass(Connector, [{\n key: \"setOptions\",\n value: function setOptions(options) {\n this.options = _extends(this._defaultOptions, options);\n\n if (this.csrfToken()) {\n this.options.auth.headers['X-CSRF-TOKEN'] = this.csrfToken();\n }\n\n return options;\n }\n /**\r\n * Extract the CSRF token from the page.\r\n */\n\n }, {\n key: \"csrfToken\",\n value: function csrfToken() {\n var selector;\n\n if (typeof window !== 'undefined' && window['Laravel'] && window['Laravel'].csrfToken) {\n return window['Laravel'].csrfToken;\n } else if (this.options.csrfToken) {\n return this.options.csrfToken;\n } else if (typeof document !== 'undefined' && typeof document.querySelector === 'function' && (selector = document.querySelector('meta[name=\"csrf-token\"]'))) {\n return selector.getAttribute('content');\n }\n\n return null;\n }\n }]);\n\n return Connector;\n}();\n\n/**\r\n * This class represents a basic channel.\r\n */\nvar Channel = /*#__PURE__*/function () {\n function Channel() {\n _classCallCheck(this, Channel);\n }\n\n _createClass(Channel, [{\n key: \"listenForWhisper\",\n\n /**\r\n * Listen for a whisper event on the channel instance.\r\n */\n value: function listenForWhisper(event, callback) {\n return this.listen('.client-' + event, callback);\n }\n /**\r\n * Listen for an event on the channel instance.\r\n */\n\n }, {\n key: \"notification\",\n value: function notification(callback) {\n return this.listen('.Illuminate\\\\Notifications\\\\Events\\\\BroadcastNotificationCreated', callback);\n }\n /**\r\n * Stop listening for a whisper event on the channel instance.\r\n */\n\n }, {\n key: \"stopListeningForWhisper\",\n value: function stopListeningForWhisper(event) {\n return this.stopListening('.client-' + event);\n }\n }]);\n\n return Channel;\n}();\n\n/**\r\n * Event name formatter\r\n */\nvar EventFormatter = /*#__PURE__*/function () {\n /**\r\n * Create a new class instance.\r\n */\n function EventFormatter(namespace) {\n _classCallCheck(this, EventFormatter);\n\n this.setNamespace(namespace);\n }\n /**\r\n * Format the given event name.\r\n */\n\n\n _createClass(EventFormatter, [{\n key: \"format\",\n value: function format(event) {\n if (event.charAt(0) === '.' || event.charAt(0) === '\\\\') {\n return event.substr(1);\n } else if (this.namespace) {\n event = this.namespace + '.' + event;\n }\n\n return event.replace(/\\./g, '\\\\');\n }\n /**\r\n * Set the event namespace.\r\n */\n\n }, {\n key: \"setNamespace\",\n value: function setNamespace(value) {\n this.namespace = value;\n }\n }]);\n\n return EventFormatter;\n}();\n\n/**\r\n * This class represents a Pusher channel.\r\n */\n\nvar PusherChannel = /*#__PURE__*/function (_Channel) {\n _inherits(PusherChannel, _Channel);\n\n var _super = _createSuper(PusherChannel);\n\n /**\r\n * Create a new class instance.\r\n */\n function PusherChannel(pusher, name, options) {\n var _this;\n\n _classCallCheck(this, PusherChannel);\n\n _this = _super.call(this);\n _this.name = name;\n _this.pusher = pusher;\n _this.options = options;\n _this.eventFormatter = new EventFormatter(_this.options.namespace);\n\n _this.subscribe();\n\n return _this;\n }\n /**\r\n * Subscribe to a Pusher channel.\r\n */\n\n\n _createClass(PusherChannel, [{\n key: \"subscribe\",\n value: function subscribe() {\n this.subscription = this.pusher.subscribe(this.name);\n }\n /**\r\n * Unsubscribe from a Pusher channel.\r\n */\n\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe() {\n this.pusher.unsubscribe(this.name);\n }\n /**\r\n * Listen for an event on the channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(event, callback) {\n this.on(this.eventFormatter.format(event), callback);\n return this;\n }\n /**\r\n * Stop listening for an event on the channel instance.\r\n */\n\n }, {\n key: \"stopListening\",\n value: function stopListening(event) {\n this.subscription.unbind(this.eventFormatter.format(event));\n return this;\n }\n /**\r\n * Register a callback to be called anytime a subscription succeeds.\r\n */\n\n }, {\n key: \"subscribed\",\n value: function subscribed(callback) {\n this.on('pusher:subscription_succeeded', function () {\n callback();\n });\n return this;\n }\n /**\r\n * Register a callback to be called anytime a subscription error occurs.\r\n */\n\n }, {\n key: \"error\",\n value: function error(callback) {\n this.on('pusher:subscription_error', function (status) {\n callback(status);\n });\n return this;\n }\n /**\r\n * Bind a channel to an event.\r\n */\n\n }, {\n key: \"on\",\n value: function on(event, callback) {\n this.subscription.bind(event, callback);\n return this;\n }\n }]);\n\n return PusherChannel;\n}(Channel);\n\n/**\r\n * This class represents a Pusher private channel.\r\n */\n\nvar PusherPrivateChannel = /*#__PURE__*/function (_PusherChannel) {\n _inherits(PusherPrivateChannel, _PusherChannel);\n\n var _super = _createSuper(PusherPrivateChannel);\n\n function PusherPrivateChannel() {\n _classCallCheck(this, PusherPrivateChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PusherPrivateChannel, [{\n key: \"whisper\",\n\n /**\r\n * Trigger client event on the channel.\r\n */\n value: function whisper(eventName, data) {\n this.pusher.channels.channels[this.name].trigger(\"client-\".concat(eventName), data);\n return this;\n }\n }]);\n\n return PusherPrivateChannel;\n}(PusherChannel);\n\n/**\r\n * This class represents a Pusher private channel.\r\n */\n\nvar PusherEncryptedPrivateChannel = /*#__PURE__*/function (_PusherChannel) {\n _inherits(PusherEncryptedPrivateChannel, _PusherChannel);\n\n var _super = _createSuper(PusherEncryptedPrivateChannel);\n\n function PusherEncryptedPrivateChannel() {\n _classCallCheck(this, PusherEncryptedPrivateChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PusherEncryptedPrivateChannel, [{\n key: \"whisper\",\n\n /**\r\n * Trigger client event on the channel.\r\n */\n value: function whisper(eventName, data) {\n this.pusher.channels.channels[this.name].trigger(\"client-\".concat(eventName), data);\n return this;\n }\n }]);\n\n return PusherEncryptedPrivateChannel;\n}(PusherChannel);\n\n/**\r\n * This class represents a Pusher presence channel.\r\n */\n\nvar PusherPresenceChannel = /*#__PURE__*/function (_PusherChannel) {\n _inherits(PusherPresenceChannel, _PusherChannel);\n\n var _super = _createSuper(PusherPresenceChannel);\n\n function PusherPresenceChannel() {\n _classCallCheck(this, PusherPresenceChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PusherPresenceChannel, [{\n key: \"here\",\n\n /**\r\n * Register a callback to be called anytime the member list changes.\r\n */\n value: function here(callback) {\n this.on('pusher:subscription_succeeded', function (data) {\n callback(Object.keys(data.members).map(function (k) {\n return data.members[k];\n }));\n });\n return this;\n }\n /**\r\n * Listen for someone joining the channel.\r\n */\n\n }, {\n key: \"joining\",\n value: function joining(callback) {\n this.on('pusher:member_added', function (member) {\n callback(member.info);\n });\n return this;\n }\n /**\r\n * Listen for someone leaving the channel.\r\n */\n\n }, {\n key: \"leaving\",\n value: function leaving(callback) {\n this.on('pusher:member_removed', function (member) {\n callback(member.info);\n });\n return this;\n }\n /**\r\n * Trigger client event on the channel.\r\n */\n\n }, {\n key: \"whisper\",\n value: function whisper(eventName, data) {\n this.pusher.channels.channels[this.name].trigger(\"client-\".concat(eventName), data);\n return this;\n }\n }]);\n\n return PusherPresenceChannel;\n}(PusherChannel);\n\n/**\r\n * This class represents a Socket.io channel.\r\n */\n\nvar SocketIoChannel = /*#__PURE__*/function (_Channel) {\n _inherits(SocketIoChannel, _Channel);\n\n var _super = _createSuper(SocketIoChannel);\n\n /**\r\n * Create a new class instance.\r\n */\n function SocketIoChannel(socket, name, options) {\n var _this;\n\n _classCallCheck(this, SocketIoChannel);\n\n _this = _super.call(this);\n /**\r\n * The event callbacks applied to the channel.\r\n */\n\n _this.events = {};\n _this.name = name;\n _this.socket = socket;\n _this.options = options;\n _this.eventFormatter = new EventFormatter(_this.options.namespace);\n\n _this.subscribe();\n\n _this.configureReconnector();\n\n return _this;\n }\n /**\r\n * Subscribe to a Socket.io channel.\r\n */\n\n\n _createClass(SocketIoChannel, [{\n key: \"subscribe\",\n value: function subscribe() {\n this.socket.emit('subscribe', {\n channel: this.name,\n auth: this.options.auth || {}\n });\n }\n /**\r\n * Unsubscribe from channel and ubind event callbacks.\r\n */\n\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe() {\n this.unbind();\n this.socket.emit('unsubscribe', {\n channel: this.name,\n auth: this.options.auth || {}\n });\n }\n /**\r\n * Listen for an event on the channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(event, callback) {\n this.on(this.eventFormatter.format(event), callback);\n return this;\n }\n /**\r\n * Stop listening for an event on the channel instance.\r\n */\n\n }, {\n key: \"stopListening\",\n value: function stopListening(event) {\n var name = this.eventFormatter.format(event);\n this.socket.removeListener(name);\n delete this.events[name];\n return this;\n }\n /**\r\n * Register a callback to be called anytime a subscription succeeds.\r\n */\n\n }, {\n key: \"subscribed\",\n value: function subscribed(callback) {\n this.on('connect', function (socket) {\n callback(socket);\n });\n return this;\n }\n /**\r\n * Register a callback to be called anytime an error occurs.\r\n */\n\n }, {\n key: \"error\",\n value: function error(callback) {\n return this;\n }\n /**\r\n * Bind the channel's socket to an event and store the callback.\r\n */\n\n }, {\n key: \"on\",\n value: function on(event, callback) {\n var _this2 = this;\n\n var listener = function listener(channel, data) {\n if (_this2.name == channel) {\n callback(data);\n }\n };\n\n this.socket.on(event, listener);\n this.bind(event, listener);\n }\n /**\r\n * Attach a 'reconnect' listener and bind the event.\r\n */\n\n }, {\n key: \"configureReconnector\",\n value: function configureReconnector() {\n var _this3 = this;\n\n var listener = function listener() {\n _this3.subscribe();\n };\n\n this.socket.on('reconnect', listener);\n this.bind('reconnect', listener);\n }\n /**\r\n * Bind the channel's socket to an event and store the callback.\r\n */\n\n }, {\n key: \"bind\",\n value: function bind(event, callback) {\n this.events[event] = this.events[event] || [];\n this.events[event].push(callback);\n }\n /**\r\n * Unbind the channel's socket from all stored event callbacks.\r\n */\n\n }, {\n key: \"unbind\",\n value: function unbind() {\n var _this4 = this;\n\n Object.keys(this.events).forEach(function (event) {\n _this4.events[event].forEach(function (callback) {\n _this4.socket.removeListener(event, callback);\n });\n\n delete _this4.events[event];\n });\n }\n }]);\n\n return SocketIoChannel;\n}(Channel);\n\n/**\r\n * This class represents a Socket.io presence channel.\r\n */\n\nvar SocketIoPrivateChannel = /*#__PURE__*/function (_SocketIoChannel) {\n _inherits(SocketIoPrivateChannel, _SocketIoChannel);\n\n var _super = _createSuper(SocketIoPrivateChannel);\n\n function SocketIoPrivateChannel() {\n _classCallCheck(this, SocketIoPrivateChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SocketIoPrivateChannel, [{\n key: \"whisper\",\n\n /**\r\n * Trigger client event on the channel.\r\n */\n value: function whisper(eventName, data) {\n this.socket.emit('client event', {\n channel: this.name,\n event: \"client-\".concat(eventName),\n data: data\n });\n return this;\n }\n }]);\n\n return SocketIoPrivateChannel;\n}(SocketIoChannel);\n\n/**\r\n * This class represents a Socket.io presence channel.\r\n */\n\nvar SocketIoPresenceChannel = /*#__PURE__*/function (_SocketIoPrivateChann) {\n _inherits(SocketIoPresenceChannel, _SocketIoPrivateChann);\n\n var _super = _createSuper(SocketIoPresenceChannel);\n\n function SocketIoPresenceChannel() {\n _classCallCheck(this, SocketIoPresenceChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SocketIoPresenceChannel, [{\n key: \"here\",\n\n /**\r\n * Register a callback to be called anytime the member list changes.\r\n */\n value: function here(callback) {\n this.on('presence:subscribed', function (members) {\n callback(members.map(function (m) {\n return m.user_info;\n }));\n });\n return this;\n }\n /**\r\n * Listen for someone joining the channel.\r\n */\n\n }, {\n key: \"joining\",\n value: function joining(callback) {\n this.on('presence:joining', function (member) {\n return callback(member.user_info);\n });\n return this;\n }\n /**\r\n * Listen for someone leaving the channel.\r\n */\n\n }, {\n key: \"leaving\",\n value: function leaving(callback) {\n this.on('presence:leaving', function (member) {\n return callback(member.user_info);\n });\n return this;\n }\n }]);\n\n return SocketIoPresenceChannel;\n}(SocketIoPrivateChannel);\n\n/**\r\n * This class represents a null channel.\r\n */\n\nvar NullChannel = /*#__PURE__*/function (_Channel) {\n _inherits(NullChannel, _Channel);\n\n var _super = _createSuper(NullChannel);\n\n function NullChannel() {\n _classCallCheck(this, NullChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NullChannel, [{\n key: \"subscribe\",\n\n /**\r\n * Subscribe to a channel.\r\n */\n value: function subscribe() {} //\n\n /**\r\n * Unsubscribe from a channel.\r\n */\n\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe() {} //\n\n /**\r\n * Listen for an event on the channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(event, callback) {\n return this;\n }\n /**\r\n * Stop listening for an event on the channel instance.\r\n */\n\n }, {\n key: \"stopListening\",\n value: function stopListening(event) {\n return this;\n }\n /**\r\n * Register a callback to be called anytime a subscription succeeds.\r\n */\n\n }, {\n key: \"subscribed\",\n value: function subscribed(callback) {\n return this;\n }\n /**\r\n * Register a callback to be called anytime an error occurs.\r\n */\n\n }, {\n key: \"error\",\n value: function error(callback) {\n return this;\n }\n /**\r\n * Bind a channel to an event.\r\n */\n\n }, {\n key: \"on\",\n value: function on(event, callback) {\n return this;\n }\n }]);\n\n return NullChannel;\n}(Channel);\n\n/**\r\n * This class represents a null private channel.\r\n */\n\nvar NullPrivateChannel = /*#__PURE__*/function (_NullChannel) {\n _inherits(NullPrivateChannel, _NullChannel);\n\n var _super = _createSuper(NullPrivateChannel);\n\n function NullPrivateChannel() {\n _classCallCheck(this, NullPrivateChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NullPrivateChannel, [{\n key: \"whisper\",\n\n /**\r\n * Trigger client event on the channel.\r\n */\n value: function whisper(eventName, data) {\n return this;\n }\n }]);\n\n return NullPrivateChannel;\n}(NullChannel);\n\n/**\r\n * This class represents a null presence channel.\r\n */\n\nvar NullPresenceChannel = /*#__PURE__*/function (_NullChannel) {\n _inherits(NullPresenceChannel, _NullChannel);\n\n var _super = _createSuper(NullPresenceChannel);\n\n function NullPresenceChannel() {\n _classCallCheck(this, NullPresenceChannel);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(NullPresenceChannel, [{\n key: \"here\",\n\n /**\r\n * Register a callback to be called anytime the member list changes.\r\n */\n value: function here(callback) {\n return this;\n }\n /**\r\n * Listen for someone joining the channel.\r\n */\n\n }, {\n key: \"joining\",\n value: function joining(callback) {\n return this;\n }\n /**\r\n * Listen for someone leaving the channel.\r\n */\n\n }, {\n key: \"leaving\",\n value: function leaving(callback) {\n return this;\n }\n /**\r\n * Trigger client event on the channel.\r\n */\n\n }, {\n key: \"whisper\",\n value: function whisper(eventName, data) {\n return this;\n }\n }]);\n\n return NullPresenceChannel;\n}(NullChannel);\n\n/**\r\n * This class creates a connector to Pusher.\r\n */\n\nvar PusherConnector = /*#__PURE__*/function (_Connector) {\n _inherits(PusherConnector, _Connector);\n\n var _super = _createSuper(PusherConnector);\n\n function PusherConnector() {\n var _this;\n\n _classCallCheck(this, PusherConnector);\n\n _this = _super.apply(this, arguments);\n /**\r\n * All of the subscribed channel names.\r\n */\n\n _this.channels = {};\n return _this;\n }\n /**\r\n * Create a fresh Pusher connection.\r\n */\n\n\n _createClass(PusherConnector, [{\n key: \"connect\",\n value: function connect() {\n if (typeof this.options.client !== 'undefined') {\n this.pusher = this.options.client;\n } else {\n this.pusher = new Pusher(this.options.key, this.options);\n }\n }\n /**\r\n * Listen for an event on a channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(name, event, callback) {\n return this.channel(name).listen(event, callback);\n }\n /**\r\n * Get a channel instance by name.\r\n */\n\n }, {\n key: \"channel\",\n value: function channel(name) {\n if (!this.channels[name]) {\n this.channels[name] = new PusherChannel(this.pusher, name, this.options);\n }\n\n return this.channels[name];\n }\n /**\r\n * Get a private channel instance by name.\r\n */\n\n }, {\n key: \"privateChannel\",\n value: function privateChannel(name) {\n if (!this.channels['private-' + name]) {\n this.channels['private-' + name] = new PusherPrivateChannel(this.pusher, 'private-' + name, this.options);\n }\n\n return this.channels['private-' + name];\n }\n /**\r\n * Get a private encrypted channel instance by name.\r\n */\n\n }, {\n key: \"encryptedPrivateChannel\",\n value: function encryptedPrivateChannel(name) {\n if (!this.channels['private-encrypted-' + name]) {\n this.channels['private-encrypted-' + name] = new PusherEncryptedPrivateChannel(this.pusher, 'private-encrypted-' + name, this.options);\n }\n\n return this.channels['private-encrypted-' + name];\n }\n /**\r\n * Get a presence channel instance by name.\r\n */\n\n }, {\n key: \"presenceChannel\",\n value: function presenceChannel(name) {\n if (!this.channels['presence-' + name]) {\n this.channels['presence-' + name] = new PusherPresenceChannel(this.pusher, 'presence-' + name, this.options);\n }\n\n return this.channels['presence-' + name];\n }\n /**\r\n * Leave the given channel, as well as its private and presence variants.\r\n */\n\n }, {\n key: \"leave\",\n value: function leave(name) {\n var _this2 = this;\n\n var channels = [name, 'private-' + name, 'presence-' + name];\n channels.forEach(function (name, index) {\n _this2.leaveChannel(name);\n });\n }\n /**\r\n * Leave the given channel.\r\n */\n\n }, {\n key: \"leaveChannel\",\n value: function leaveChannel(name) {\n if (this.channels[name]) {\n this.channels[name].unsubscribe();\n delete this.channels[name];\n }\n }\n /**\r\n * Get the socket ID for the connection.\r\n */\n\n }, {\n key: \"socketId\",\n value: function socketId() {\n return this.pusher.connection.socket_id;\n }\n /**\r\n * Disconnect Pusher connection.\r\n */\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.pusher.disconnect();\n }\n }]);\n\n return PusherConnector;\n}(Connector);\n\n/**\r\n * This class creates a connnector to a Socket.io server.\r\n */\n\nvar SocketIoConnector = /*#__PURE__*/function (_Connector) {\n _inherits(SocketIoConnector, _Connector);\n\n var _super = _createSuper(SocketIoConnector);\n\n function SocketIoConnector() {\n var _this;\n\n _classCallCheck(this, SocketIoConnector);\n\n _this = _super.apply(this, arguments);\n /**\r\n * All of the subscribed channel names.\r\n */\n\n _this.channels = {};\n return _this;\n }\n /**\r\n * Create a fresh Socket.io connection.\r\n */\n\n\n _createClass(SocketIoConnector, [{\n key: \"connect\",\n value: function connect() {\n var io = this.getSocketIO();\n this.socket = io(this.options.host, this.options);\n return this.socket;\n }\n /**\r\n * Get socket.io module from global scope or options.\r\n */\n\n }, {\n key: \"getSocketIO\",\n value: function getSocketIO() {\n if (typeof this.options.client !== 'undefined') {\n return this.options.client;\n }\n\n if (typeof io !== 'undefined') {\n return io;\n }\n\n throw new Error('Socket.io client not found. Should be globally available or passed via options.client');\n }\n /**\r\n * Listen for an event on a channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(name, event, callback) {\n return this.channel(name).listen(event, callback);\n }\n /**\r\n * Get a channel instance by name.\r\n */\n\n }, {\n key: \"channel\",\n value: function channel(name) {\n if (!this.channels[name]) {\n this.channels[name] = new SocketIoChannel(this.socket, name, this.options);\n }\n\n return this.channels[name];\n }\n /**\r\n * Get a private channel instance by name.\r\n */\n\n }, {\n key: \"privateChannel\",\n value: function privateChannel(name) {\n if (!this.channels['private-' + name]) {\n this.channels['private-' + name] = new SocketIoPrivateChannel(this.socket, 'private-' + name, this.options);\n }\n\n return this.channels['private-' + name];\n }\n /**\r\n * Get a presence channel instance by name.\r\n */\n\n }, {\n key: \"presenceChannel\",\n value: function presenceChannel(name) {\n if (!this.channels['presence-' + name]) {\n this.channels['presence-' + name] = new SocketIoPresenceChannel(this.socket, 'presence-' + name, this.options);\n }\n\n return this.channels['presence-' + name];\n }\n /**\r\n * Leave the given channel, as well as its private and presence variants.\r\n */\n\n }, {\n key: \"leave\",\n value: function leave(name) {\n var _this2 = this;\n\n var channels = [name, 'private-' + name, 'presence-' + name];\n channels.forEach(function (name) {\n _this2.leaveChannel(name);\n });\n }\n /**\r\n * Leave the given channel.\r\n */\n\n }, {\n key: \"leaveChannel\",\n value: function leaveChannel(name) {\n if (this.channels[name]) {\n this.channels[name].unsubscribe();\n delete this.channels[name];\n }\n }\n /**\r\n * Get the socket ID for the connection.\r\n */\n\n }, {\n key: \"socketId\",\n value: function socketId() {\n return this.socket.id;\n }\n /**\r\n * Disconnect Socketio connection.\r\n */\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.socket.disconnect();\n }\n }]);\n\n return SocketIoConnector;\n}(Connector);\n\n/**\r\n * This class creates a null connector.\r\n */\n\nvar NullConnector = /*#__PURE__*/function (_Connector) {\n _inherits(NullConnector, _Connector);\n\n var _super = _createSuper(NullConnector);\n\n function NullConnector() {\n var _this;\n\n _classCallCheck(this, NullConnector);\n\n _this = _super.apply(this, arguments);\n /**\r\n * All of the subscribed channel names.\r\n */\n\n _this.channels = {};\n return _this;\n }\n /**\r\n * Create a fresh connection.\r\n */\n\n\n _createClass(NullConnector, [{\n key: \"connect\",\n value: function connect() {} //\n\n /**\r\n * Listen for an event on a channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(name, event, callback) {\n return new NullChannel();\n }\n /**\r\n * Get a channel instance by name.\r\n */\n\n }, {\n key: \"channel\",\n value: function channel(name) {\n return new NullChannel();\n }\n /**\r\n * Get a private channel instance by name.\r\n */\n\n }, {\n key: \"privateChannel\",\n value: function privateChannel(name) {\n return new NullPrivateChannel();\n }\n /**\r\n * Get a presence channel instance by name.\r\n */\n\n }, {\n key: \"presenceChannel\",\n value: function presenceChannel(name) {\n return new NullPresenceChannel();\n }\n /**\r\n * Leave the given channel, as well as its private and presence variants.\r\n */\n\n }, {\n key: \"leave\",\n value: function leave(name) {} //\n\n /**\r\n * Leave the given channel.\r\n */\n\n }, {\n key: \"leaveChannel\",\n value: function leaveChannel(name) {} //\n\n /**\r\n * Get the socket ID for the connection.\r\n */\n\n }, {\n key: \"socketId\",\n value: function socketId() {\n return 'fake-socket-id';\n }\n /**\r\n * Disconnect the connection.\r\n */\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {//\n }\n }]);\n\n return NullConnector;\n}(Connector);\n\n/**\r\n * This class is the primary API for interacting with broadcasting.\r\n */\n\nvar Echo = /*#__PURE__*/function () {\n /**\r\n * Create a new class instance.\r\n */\n function Echo(options) {\n _classCallCheck(this, Echo);\n\n this.options = options;\n this.connect();\n\n if (!this.options.withoutInterceptors) {\n this.registerInterceptors();\n }\n }\n /**\r\n * Get a channel instance by name.\r\n */\n\n\n _createClass(Echo, [{\n key: \"channel\",\n value: function channel(_channel) {\n return this.connector.channel(_channel);\n }\n /**\r\n * Create a new connection.\r\n */\n\n }, {\n key: \"connect\",\n value: function connect() {\n if (this.options.broadcaster == 'pusher') {\n this.connector = new PusherConnector(this.options);\n } else if (this.options.broadcaster == 'socket.io') {\n this.connector = new SocketIoConnector(this.options);\n } else if (this.options.broadcaster == 'null') {\n this.connector = new NullConnector(this.options);\n } else if (typeof this.options.broadcaster == 'function') {\n this.connector = new this.options.broadcaster(this.options);\n }\n }\n /**\r\n * Disconnect from the Echo server.\r\n */\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.connector.disconnect();\n }\n /**\r\n * Get a presence channel instance by name.\r\n */\n\n }, {\n key: \"join\",\n value: function join(channel) {\n return this.connector.presenceChannel(channel);\n }\n /**\r\n * Leave the given channel, as well as its private and presence variants.\r\n */\n\n }, {\n key: \"leave\",\n value: function leave(channel) {\n this.connector.leave(channel);\n }\n /**\r\n * Leave the given channel.\r\n */\n\n }, {\n key: \"leaveChannel\",\n value: function leaveChannel(channel) {\n this.connector.leaveChannel(channel);\n }\n /**\r\n * Listen for an event on a channel instance.\r\n */\n\n }, {\n key: \"listen\",\n value: function listen(channel, event, callback) {\n return this.connector.listen(channel, event, callback);\n }\n /**\r\n * Get a private channel instance by name.\r\n */\n\n }, {\n key: \"private\",\n value: function _private(channel) {\n return this.connector.privateChannel(channel);\n }\n /**\r\n * Get a private encrypted channel instance by name.\r\n */\n\n }, {\n key: \"encryptedPrivate\",\n value: function encryptedPrivate(channel) {\n return this.connector.encryptedPrivateChannel(channel);\n }\n /**\r\n * Get the Socket ID for the connection.\r\n */\n\n }, {\n key: \"socketId\",\n value: function socketId() {\n return this.connector.socketId();\n }\n /**\r\n * Register 3rd party request interceptiors. These are used to automatically\r\n * send a connections socket id to a Laravel app with a X-Socket-Id header.\r\n */\n\n }, {\n key: \"registerInterceptors\",\n value: function registerInterceptors() {\n if (typeof Vue === 'function' && Vue.http) {\n this.registerVueRequestInterceptor();\n }\n\n if (typeof axios === 'function') {\n this.registerAxiosRequestInterceptor();\n }\n\n if (typeof jQuery === 'function') {\n this.registerjQueryAjaxSetup();\n }\n }\n /**\r\n * Register a Vue HTTP interceptor to add the X-Socket-ID header.\r\n */\n\n }, {\n key: \"registerVueRequestInterceptor\",\n value: function registerVueRequestInterceptor() {\n var _this = this;\n\n Vue.http.interceptors.push(function (request, next) {\n if (_this.socketId()) {\n request.headers.set('X-Socket-ID', _this.socketId());\n }\n\n next();\n });\n }\n /**\r\n * Register an Axios HTTP interceptor to add the X-Socket-ID header.\r\n */\n\n }, {\n key: \"registerAxiosRequestInterceptor\",\n value: function registerAxiosRequestInterceptor() {\n var _this2 = this;\n\n axios.interceptors.request.use(function (config) {\n if (_this2.socketId()) {\n config.headers['X-Socket-Id'] = _this2.socketId();\n }\n\n return config;\n });\n }\n /**\r\n * Register jQuery AjaxPrefilter to add the X-Socket-ID header.\r\n */\n\n }, {\n key: \"registerjQueryAjaxSetup\",\n value: function registerjQueryAjaxSetup() {\n var _this3 = this;\n\n if (typeof jQuery.ajax != 'undefined') {\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (_this3.socketId()) {\n xhr.setRequestHeader('X-Socket-Id', _this3.socketId());\n }\n });\n }\n }\n }]);\n\n return Echo;\n}();\n\nexport default Echo;\n","/*!\n * Pusher JavaScript Library v7.0.1\n * https://pusher.com/\n *\n * Copyright 2020, Pusher\n * Released under the MIT licence.\n */\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[\"Pusher\"] = factory();\n\telse\n\t\troot[\"Pusher\"] = factory();\n})(window, 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, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\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/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package base64 implements Base64 encoding and decoding.\n */\n// Invalid character used in decoding to indicate\n// that the character to decode is out of range of\n// alphabet and cannot be decoded.\nvar INVALID_BYTE = 256;\n/**\n * Implements standard Base64 encoding.\n *\n * Operates in constant time.\n */\nvar Coder = /** @class */ (function () {\n // TODO(dchest): methods to encode chunk-by-chunk.\n function Coder(_paddingCharacter) {\n if (_paddingCharacter === void 0) { _paddingCharacter = \"=\"; }\n this._paddingCharacter = _paddingCharacter;\n }\n Coder.prototype.encodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 8 + 5) / 6 | 0;\n }\n return (length + 2) / 3 * 4 | 0;\n };\n Coder.prototype.encode = function (data) {\n var out = \"\";\n var i = 0;\n for (; i < data.length - 2; i += 3) {\n var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n out += this._encodeByte((c >>> 1 * 6) & 63);\n out += this._encodeByte((c >>> 0 * 6) & 63);\n }\n var left = data.length - i;\n if (left > 0) {\n var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0);\n out += this._encodeByte((c >>> 3 * 6) & 63);\n out += this._encodeByte((c >>> 2 * 6) & 63);\n if (left === 2) {\n out += this._encodeByte((c >>> 1 * 6) & 63);\n }\n else {\n out += this._paddingCharacter || \"\";\n }\n out += this._paddingCharacter || \"\";\n }\n return out;\n };\n Coder.prototype.maxDecodedLength = function (length) {\n if (!this._paddingCharacter) {\n return (length * 6 + 7) / 8 | 0;\n }\n return length / 4 * 3 | 0;\n };\n Coder.prototype.decodedLength = function (s) {\n return this.maxDecodedLength(s.length - this._getPaddingLength(s));\n };\n Coder.prototype.decode = function (s) {\n if (s.length === 0) {\n return new Uint8Array(0);\n }\n var paddingLength = this._getPaddingLength(s);\n var length = s.length - paddingLength;\n var out = new Uint8Array(this.maxDecodedLength(length));\n var op = 0;\n var i = 0;\n var haveBad = 0;\n var v0 = 0, v1 = 0, v2 = 0, v3 = 0;\n for (; i < length - 4; i += 4) {\n v0 = this._decodeChar(s.charCodeAt(i + 0));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n out[op++] = (v1 << 4) | (v2 >>> 2);\n out[op++] = (v2 << 6) | v3;\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n haveBad |= v2 & INVALID_BYTE;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (i < length - 1) {\n v0 = this._decodeChar(s.charCodeAt(i));\n v1 = this._decodeChar(s.charCodeAt(i + 1));\n out[op++] = (v0 << 2) | (v1 >>> 4);\n haveBad |= v0 & INVALID_BYTE;\n haveBad |= v1 & INVALID_BYTE;\n }\n if (i < length - 2) {\n v2 = this._decodeChar(s.charCodeAt(i + 2));\n out[op++] = (v1 << 4) | (v2 >>> 2);\n haveBad |= v2 & INVALID_BYTE;\n }\n if (i < length - 3) {\n v3 = this._decodeChar(s.charCodeAt(i + 3));\n out[op++] = (v2 << 6) | v3;\n haveBad |= v3 & INVALID_BYTE;\n }\n if (haveBad !== 0) {\n throw new Error(\"Base64Coder: incorrect characters for decoding\");\n }\n return out;\n };\n // Standard encoding have the following encoded/decoded ranges,\n // which we need to convert between.\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + /\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 43 47\n //\n // Encode 6 bits in b into a new character.\n Coder.prototype._encodeByte = function (b) {\n // Encoding uses constant time operations as follows:\n //\n // 1. Define comparison of A with B using (A - B) >>> 8:\n // if A > B, then result is positive integer\n // if A <= B, then result is 0\n //\n // 2. Define selection of C or 0 using bitwise AND: X & C:\n // if X == 0, then result is 0\n // if X != 0, then result is C\n //\n // 3. Start with the smallest comparison (b >= 0), which is always\n // true, so set the result to the starting ASCII value (65).\n //\n // 4. Continue comparing b to higher ASCII values, and selecting\n // zero if comparison isn't true, otherwise selecting a value\n // to add to result, which:\n //\n // a) undoes the previous addition\n // b) provides new value to add\n //\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47);\n return String.fromCharCode(result);\n };\n // Decode a character code into a byte.\n // Must return 256 if character is out of alphabet range.\n Coder.prototype._decodeChar = function (c) {\n // Decoding works similar to encoding: using the same comparison\n // function, but now it works on ranges: result is always incremented\n // by value, but this value becomes zero if the range is not\n // satisfied.\n //\n // Decoding starts with invalid value, 256, which is then\n // subtracted when the range is satisfied. If none of the ranges\n // apply, the function returns 256, which is then checked by\n // the caller to throw error.\n var result = INVALID_BYTE; // start with invalid character\n // c == 43 (c > 42 and c < 44)\n result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62);\n // c == 47 (c > 46 and c < 48)\n result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n Coder.prototype._getPaddingLength = function (s) {\n var paddingLength = 0;\n if (this._paddingCharacter) {\n for (var i = s.length - 1; i >= 0; i--) {\n if (s[i] !== this._paddingCharacter) {\n break;\n }\n paddingLength++;\n }\n if (s.length < 4 || paddingLength > 2) {\n throw new Error(\"Base64Coder: incorrect padding\");\n }\n }\n return paddingLength;\n };\n return Coder;\n}());\nexports.Coder = Coder;\nvar stdCoder = new Coder();\nfunction encode(data) {\n return stdCoder.encode(data);\n}\nexports.encode = encode;\nfunction decode(s) {\n return stdCoder.decode(s);\n}\nexports.decode = decode;\n/**\n * Implements URL-safe Base64 encoding.\n * (Same as Base64, but '+' is replaced with '-', and '/' with '_').\n *\n * Operates in constant time.\n */\nvar URLSafeCoder = /** @class */ (function (_super) {\n __extends(URLSafeCoder, _super);\n function URLSafeCoder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // URL-safe encoding have the following encoded/decoded ranges:\n //\n // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _\n // Index: 0 - 25 26 - 51 52 - 61 62 63\n // ASCII: 65 - 90 97 - 122 48 - 57 45 95\n //\n URLSafeCoder.prototype._encodeByte = function (b) {\n var result = b;\n // b >= 0\n result += 65;\n // b > 25\n result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97);\n // b > 51\n result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48);\n // b > 61\n result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45);\n // b > 62\n result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95);\n return String.fromCharCode(result);\n };\n URLSafeCoder.prototype._decodeChar = function (c) {\n var result = INVALID_BYTE;\n // c == 45 (c > 44 and c < 46)\n result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62);\n // c == 95 (c > 94 and c < 96)\n result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63);\n // c > 47 and c < 58\n result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52);\n // c > 64 and c < 91\n result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0);\n // c > 96 and c < 123\n result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26);\n return result;\n };\n return URLSafeCoder;\n}(Coder));\nexports.URLSafeCoder = URLSafeCoder;\nvar urlSafeCoder = new URLSafeCoder();\nfunction encodeURLSafe(data) {\n return urlSafeCoder.encode(data);\n}\nexports.encodeURLSafe = encodeURLSafe;\nfunction decodeURLSafe(s) {\n return urlSafeCoder.decode(s);\n}\nexports.decodeURLSafe = decodeURLSafe;\nexports.encodedLength = function (length) {\n return stdCoder.encodedLength(length);\n};\nexports.maxDecodedLength = function (length) {\n return stdCoder.maxDecodedLength(length);\n};\nexports.decodedLength = function (s) {\n return stdCoder.decodedLength(s);\n};\n//# sourceMappingURL=base64.js.map\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package utf8 implements UTF-8 encoding and decoding.\n */\nvar INVALID_UTF16 = \"utf8: invalid string\";\nvar INVALID_UTF8 = \"utf8: invalid source encoding\";\n/**\n * Encodes the given string into UTF-8 byte array.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encode(s) {\n // Calculate result length and allocate output array.\n // encodedLength() also validates string and throws errors,\n // so we don't need repeat validation here.\n var arr = new Uint8Array(encodedLength(s));\n var pos = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n arr[pos++] = c;\n }\n else if (c < 0x800) {\n arr[pos++] = 0xc0 | c >> 6;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else if (c < 0xd800) {\n arr[pos++] = 0xe0 | c >> 12;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n else {\n i++; // get one more character\n c = (c & 0x3ff) << 10;\n c |= s.charCodeAt(i) & 0x3ff;\n c += 0x10000;\n arr[pos++] = 0xf0 | c >> 18;\n arr[pos++] = 0x80 | (c >> 12) & 0x3f;\n arr[pos++] = 0x80 | (c >> 6) & 0x3f;\n arr[pos++] = 0x80 | c & 0x3f;\n }\n }\n return arr;\n}\nexports.encode = encode;\n/**\n * Returns the number of bytes required to encode the given string into UTF-8.\n * Throws if the source string has invalid UTF-16 encoding.\n */\nfunction encodedLength(s) {\n var result = 0;\n for (var i = 0; i < s.length; i++) {\n var c = s.charCodeAt(i);\n if (c < 0x80) {\n result += 1;\n }\n else if (c < 0x800) {\n result += 2;\n }\n else if (c < 0xd800) {\n result += 3;\n }\n else if (c <= 0xdfff) {\n if (i >= s.length - 1) {\n throw new Error(INVALID_UTF16);\n }\n i++; // \"eat\" next character\n result += 4;\n }\n else {\n throw new Error(INVALID_UTF16);\n }\n }\n return result;\n}\nexports.encodedLength = encodedLength;\n/**\n * Decodes the given byte array from UTF-8 into a string.\n * Throws if encoding is invalid.\n */\nfunction decode(arr) {\n var chars = [];\n for (var i = 0; i < arr.length; i++) {\n var b = arr[i];\n if (b & 0x80) {\n var min = void 0;\n if (b < 0xe0) {\n // Need 1 more byte.\n if (i >= arr.length) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n if ((n1 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x1f) << 6 | (n1 & 0x3f);\n min = 0x80;\n }\n else if (b < 0xf0) {\n // Need 2 more bytes.\n if (i >= arr.length - 1) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f);\n min = 0x800;\n }\n else if (b < 0xf8) {\n // Need 3 more bytes.\n if (i >= arr.length - 2) {\n throw new Error(INVALID_UTF8);\n }\n var n1 = arr[++i];\n var n2 = arr[++i];\n var n3 = arr[++i];\n if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) {\n throw new Error(INVALID_UTF8);\n }\n b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f);\n min = 0x10000;\n }\n else {\n throw new Error(INVALID_UTF8);\n }\n if (b < min || (b >= 0xd800 && b <= 0xdfff)) {\n throw new Error(INVALID_UTF8);\n }\n if (b >= 0x10000) {\n // Surrogate pair.\n if (b > 0x10ffff) {\n throw new Error(INVALID_UTF8);\n }\n b -= 0x10000;\n chars.push(String.fromCharCode(0xd800 | (b >> 10)));\n b = 0xdc00 | (b & 0x3ff);\n }\n }\n chars.push(String.fromCharCode(b));\n }\n return chars.join(\"\");\n}\nexports.decode = decode;\n//# sourceMappingURL=utf8.js.map\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// required so we don't have to do require('pusher').default etc.\nmodule.exports = __webpack_require__(3).default;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/script_receiver_factory.ts\nvar ScriptReceiverFactory = (function () {\n function ScriptReceiverFactory(prefix, name) {\n this.lastId = 0;\n this.prefix = prefix;\n this.name = name;\n }\n ScriptReceiverFactory.prototype.create = function (callback) {\n this.lastId++;\n var number = this.lastId;\n var id = this.prefix + number;\n var name = this.name + '[' + number + ']';\n var called = false;\n var callbackWrapper = function () {\n if (!called) {\n callback.apply(null, arguments);\n called = true;\n }\n };\n this[number] = callbackWrapper;\n return { number: number, id: id, name: name, callback: callbackWrapper };\n };\n ScriptReceiverFactory.prototype.remove = function (receiver) {\n delete this[receiver.number];\n };\n return ScriptReceiverFactory;\n}());\n\nvar ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers');\n\n// CONCATENATED MODULE: ./src/core/defaults.ts\nvar Defaults = {\n VERSION: \"7.0.1\",\n PROTOCOL: 7,\n wsPort: 80,\n wssPort: 443,\n wsPath: '',\n httpHost: 'sockjs.pusher.com',\n httpPort: 80,\n httpsPort: 443,\n httpPath: '/pusher',\n stats_host: 'stats.pusher.com',\n authEndpoint: '/pusher/auth',\n authTransport: 'ajax',\n activityTimeout: 120000,\n pongTimeout: 30000,\n unavailableTimeout: 10000,\n cluster: 'mt1',\n cdn_http: \"http://js.pusher.com\",\n cdn_https: \"https://js.pusher.com\",\n dependency_suffix: \"\"\n};\n/* harmony default export */ var defaults = (Defaults);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/dependency_loader.ts\n\n\nvar dependency_loader_DependencyLoader = (function () {\n function DependencyLoader(options) {\n this.options = options;\n this.receivers = options.receivers || ScriptReceivers;\n this.loading = {};\n }\n DependencyLoader.prototype.load = function (name, options, callback) {\n var self = this;\n if (self.loading[name] && self.loading[name].length > 0) {\n self.loading[name].push(callback);\n }\n else {\n self.loading[name] = [callback];\n var request = runtime.createScriptRequest(self.getPath(name, options));\n var receiver = self.receivers.create(function (error) {\n self.receivers.remove(receiver);\n if (self.loading[name]) {\n var callbacks = self.loading[name];\n delete self.loading[name];\n var successCallback = function (wasSuccessful) {\n if (!wasSuccessful) {\n request.cleanup();\n }\n };\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](error, successCallback);\n }\n }\n });\n request.send(receiver);\n }\n };\n DependencyLoader.prototype.getRoot = function (options) {\n var cdn;\n var protocol = runtime.getDocument().location.protocol;\n if ((options && options.useTLS) || protocol === 'https:') {\n cdn = this.options.cdn_https;\n }\n else {\n cdn = this.options.cdn_http;\n }\n return cdn.replace(/\\/*$/, '') + '/' + this.options.version;\n };\n DependencyLoader.prototype.getPath = function (name, options) {\n return this.getRoot(options) + '/' + name + this.options.suffix + '.js';\n };\n return DependencyLoader;\n}());\n/* harmony default export */ var dependency_loader = (dependency_loader_DependencyLoader);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/dependencies.ts\n\n\n\nvar DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers');\nvar Dependencies = new dependency_loader({\n cdn_http: defaults.cdn_http,\n cdn_https: defaults.cdn_https,\n version: defaults.VERSION,\n suffix: defaults.dependency_suffix,\n receivers: DependenciesReceivers\n});\n\n// CONCATENATED MODULE: ./src/core/utils/url_store.ts\nvar urlStore = {\n baseUrl: 'https://pusher.com',\n urls: {\n authenticationEndpoint: {\n path: '/docs/authenticating_users'\n },\n javascriptQuickStart: {\n path: '/docs/javascript_quick_start'\n },\n triggeringClientEvents: {\n path: '/docs/client_api_guide/client_events#trigger-events'\n },\n encryptedChannelSupport: {\n fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support'\n }\n }\n};\nvar buildLogSuffix = function (key) {\n var urlPrefix = 'See:';\n var urlObj = urlStore.urls[key];\n if (!urlObj)\n return '';\n var url;\n if (urlObj.fullUrl) {\n url = urlObj.fullUrl;\n }\n else if (urlObj.path) {\n url = urlStore.baseUrl + urlObj.path;\n }\n if (!url)\n return '';\n return urlPrefix + \" \" + url;\n};\n/* harmony default export */ var url_store = ({ buildLogSuffix: buildLogSuffix });\n\n// CONCATENATED MODULE: ./src/core/errors.ts\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar BadEventName = (function (_super) {\n __extends(BadEventName, _super);\n function BadEventName(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return BadEventName;\n}(Error));\n\nvar RequestTimedOut = (function (_super) {\n __extends(RequestTimedOut, _super);\n function RequestTimedOut(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return RequestTimedOut;\n}(Error));\n\nvar TransportPriorityTooLow = (function (_super) {\n __extends(TransportPriorityTooLow, _super);\n function TransportPriorityTooLow(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TransportPriorityTooLow;\n}(Error));\n\nvar TransportClosed = (function (_super) {\n __extends(TransportClosed, _super);\n function TransportClosed(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return TransportClosed;\n}(Error));\n\nvar UnsupportedFeature = (function (_super) {\n __extends(UnsupportedFeature, _super);\n function UnsupportedFeature(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedFeature;\n}(Error));\n\nvar UnsupportedTransport = (function (_super) {\n __extends(UnsupportedTransport, _super);\n function UnsupportedTransport(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedTransport;\n}(Error));\n\nvar UnsupportedStrategy = (function (_super) {\n __extends(UnsupportedStrategy, _super);\n function UnsupportedStrategy(msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return UnsupportedStrategy;\n}(Error));\n\nvar HTTPAuthError = (function (_super) {\n __extends(HTTPAuthError, _super);\n function HTTPAuthError(status, msg) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, msg) || this;\n _this.status = status;\n Object.setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return HTTPAuthError;\n}(Error));\n\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/auth/xhr_auth.ts\n\n\n\nvar ajax = function (context, socketId, callback) {\n var self = this, xhr;\n xhr = runtime.createXHR();\n xhr.open('POST', self.options.authEndpoint, true);\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n for (var headerName in this.authOptions.headers) {\n xhr.setRequestHeader(headerName, this.authOptions.headers[headerName]);\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n var data = void 0;\n var parsed = false;\n try {\n data = JSON.parse(xhr.responseText);\n parsed = true;\n }\n catch (e) {\n callback(new HTTPAuthError(200, 'JSON returned from auth endpoint was invalid, yet status code was 200. Data was: ' +\n xhr.responseText), { auth: '' });\n }\n if (parsed) {\n callback(null, data);\n }\n }\n else {\n var suffix = url_store.buildLogSuffix('authenticationEndpoint');\n callback(new HTTPAuthError(xhr.status, 'Unable to retrieve auth string from auth endpoint - ' +\n (\"received status: \" + xhr.status + \" from \" + self.options.authEndpoint + \". \") +\n (\"Clients must be authenticated to join private or presence channels. \" + suffix)), { auth: '' });\n }\n }\n };\n xhr.send(this.composeQuery(socketId));\n return xhr;\n};\n/* harmony default export */ var xhr_auth = (ajax);\n\n// CONCATENATED MODULE: ./src/core/base64.ts\nfunction encode(s) {\n return btoa(utob(s));\n}\nvar fromCharCode = String.fromCharCode;\nvar b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nvar b64tab = {};\nfor (var base64_i = 0, l = b64chars.length; base64_i < l; base64_i++) {\n b64tab[b64chars.charAt(base64_i)] = base64_i;\n}\nvar cb_utob = function (c) {\n var cc = c.charCodeAt(0);\n return cc < 0x80\n ? c\n : cc < 0x800\n ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))\n : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +\n fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +\n fromCharCode(0x80 | (cc & 0x3f));\n};\nvar utob = function (u) {\n return u.replace(/[^\\x00-\\x7F]/g, cb_utob);\n};\nvar cb_encode = function (ccc) {\n var padlen = [0, 2, 1][ccc.length % 3];\n var ord = (ccc.charCodeAt(0) << 16) |\n ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |\n (ccc.length > 2 ? ccc.charCodeAt(2) : 0);\n var chars = [\n b64chars.charAt(ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n ];\n return chars.join('');\n};\nvar btoa = window.btoa ||\n function (b) {\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n\n// CONCATENATED MODULE: ./src/core/utils/timers/abstract_timer.ts\nvar Timer = (function () {\n function Timer(set, clear, delay, callback) {\n var _this = this;\n this.clear = clear;\n this.timer = set(function () {\n if (_this.timer) {\n _this.timer = callback(_this.timer);\n }\n }, delay);\n }\n Timer.prototype.isRunning = function () {\n return this.timer !== null;\n };\n Timer.prototype.ensureAborted = function () {\n if (this.timer) {\n this.clear(this.timer);\n this.timer = null;\n }\n };\n return Timer;\n}());\n/* harmony default export */ var abstract_timer = (Timer);\n\n// CONCATENATED MODULE: ./src/core/utils/timers/index.ts\nvar timers_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nfunction timers_clearTimeout(timer) {\n window.clearTimeout(timer);\n}\nfunction timers_clearInterval(timer) {\n window.clearInterval(timer);\n}\nvar OneOffTimer = (function (_super) {\n timers_extends(OneOffTimer, _super);\n function OneOffTimer(delay, callback) {\n return _super.call(this, setTimeout, timers_clearTimeout, delay, function (timer) {\n callback();\n return null;\n }) || this;\n }\n return OneOffTimer;\n}(abstract_timer));\n\nvar PeriodicTimer = (function (_super) {\n timers_extends(PeriodicTimer, _super);\n function PeriodicTimer(delay, callback) {\n return _super.call(this, setInterval, timers_clearInterval, delay, function (timer) {\n callback();\n return timer;\n }) || this;\n }\n return PeriodicTimer;\n}(abstract_timer));\n\n\n// CONCATENATED MODULE: ./src/core/util.ts\n\nvar Util = {\n now: function () {\n if (Date.now) {\n return Date.now();\n }\n else {\n return new Date().valueOf();\n }\n },\n defer: function (callback) {\n return new OneOffTimer(0, callback);\n },\n method: function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var boundArguments = Array.prototype.slice.call(arguments, 1);\n return function (object) {\n return object[name].apply(object, boundArguments.concat(arguments));\n };\n }\n};\n/* harmony default export */ var util = (Util);\n\n// CONCATENATED MODULE: ./src/core/utils/collections.ts\n\n\nfunction extend(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n for (var i = 0; i < sources.length; i++) {\n var extensions = sources[i];\n for (var property in extensions) {\n if (extensions[property] &&\n extensions[property].constructor &&\n extensions[property].constructor === Object) {\n target[property] = extend(target[property] || {}, extensions[property]);\n }\n else {\n target[property] = extensions[property];\n }\n }\n }\n return target;\n}\nfunction stringify() {\n var m = ['Pusher'];\n for (var i = 0; i < arguments.length; i++) {\n if (typeof arguments[i] === 'string') {\n m.push(arguments[i]);\n }\n else {\n m.push(safeJSONStringify(arguments[i]));\n }\n }\n return m.join(' : ');\n}\nfunction arrayIndexOf(array, item) {\n var nativeIndexOf = Array.prototype.indexOf;\n if (array === null) {\n return -1;\n }\n if (nativeIndexOf && array.indexOf === nativeIndexOf) {\n return array.indexOf(item);\n }\n for (var i = 0, l = array.length; i < l; i++) {\n if (array[i] === item) {\n return i;\n }\n }\n return -1;\n}\nfunction objectApply(object, f) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n f(object[key], key, object);\n }\n }\n}\nfunction keys(object) {\n var keys = [];\n objectApply(object, function (_, key) {\n keys.push(key);\n });\n return keys;\n}\nfunction values(object) {\n var values = [];\n objectApply(object, function (value) {\n values.push(value);\n });\n return values;\n}\nfunction apply(array, f, context) {\n for (var i = 0; i < array.length; i++) {\n f.call(context || window, array[i], i, array);\n }\n}\nfunction map(array, f) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n result.push(f(array[i], i, array, result));\n }\n return result;\n}\nfunction mapObject(object, f) {\n var result = {};\n objectApply(object, function (value, key) {\n result[key] = f(value);\n });\n return result;\n}\nfunction filter(array, test) {\n test =\n test ||\n function (value) {\n return !!value;\n };\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array, result)) {\n result.push(array[i]);\n }\n }\n return result;\n}\nfunction filterObject(object, test) {\n var result = {};\n objectApply(object, function (value, key) {\n if ((test && test(value, key, object, result)) || Boolean(value)) {\n result[key] = value;\n }\n });\n return result;\n}\nfunction flatten(object) {\n var result = [];\n objectApply(object, function (value, key) {\n result.push([key, value]);\n });\n return result;\n}\nfunction any(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (test(array[i], i, array)) {\n return true;\n }\n }\n return false;\n}\nfunction collections_all(array, test) {\n for (var i = 0; i < array.length; i++) {\n if (!test(array[i], i, array)) {\n return false;\n }\n }\n return true;\n}\nfunction encodeParamsObject(data) {\n return mapObject(data, function (value) {\n if (typeof value === 'object') {\n value = safeJSONStringify(value);\n }\n return encodeURIComponent(encode(value.toString()));\n });\n}\nfunction buildQueryString(data) {\n var params = filterObject(data, function (value) {\n return value !== undefined;\n });\n var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&');\n return query;\n}\nfunction decycleObject(object) {\n var objects = [], paths = [];\n return (function derez(value, path) {\n var i, name, nu;\n switch (typeof value) {\n case 'object':\n if (!value) {\n return null;\n }\n for (i = 0; i < objects.length; i += 1) {\n if (objects[i] === value) {\n return { $ref: paths[i] };\n }\n }\n objects.push(value);\n paths.push(path);\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n nu = [];\n for (i = 0; i < value.length; i += 1) {\n nu[i] = derez(value[i], path + '[' + i + ']');\n }\n }\n else {\n nu = {};\n for (name in value) {\n if (Object.prototype.hasOwnProperty.call(value, name)) {\n nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']');\n }\n }\n }\n return nu;\n case 'number':\n case 'string':\n case 'boolean':\n return value;\n }\n })(object, '$');\n}\nfunction safeJSONStringify(source) {\n try {\n return JSON.stringify(source);\n }\n catch (e) {\n return JSON.stringify(decycleObject(source));\n }\n}\n\n// CONCATENATED MODULE: ./src/core/logger.ts\n\n\nvar logger_Logger = (function () {\n function Logger() {\n this.globalLog = function (message) {\n if (window.console && window.console.log) {\n window.console.log(message);\n }\n };\n }\n Logger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLog, args);\n };\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLogWarn, args);\n };\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n this.log(this.globalLogError, args);\n };\n Logger.prototype.globalLogWarn = function (message) {\n if (window.console && window.console.warn) {\n window.console.warn(message);\n }\n else {\n this.globalLog(message);\n }\n };\n Logger.prototype.globalLogError = function (message) {\n if (window.console && window.console.error) {\n window.console.error(message);\n }\n else {\n this.globalLogWarn(message);\n }\n };\n Logger.prototype.log = function (defaultLoggingFunction) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var message = stringify.apply(this, arguments);\n if (core_pusher.log) {\n core_pusher.log(message);\n }\n else if (core_pusher.logToConsole) {\n var log = defaultLoggingFunction.bind(this);\n log(message);\n }\n };\n return Logger;\n}());\n/* harmony default export */ var logger = (new logger_Logger());\n\n// CONCATENATED MODULE: ./src/runtimes/web/auth/jsonp_auth.ts\n\nvar jsonp = function (context, socketId, callback) {\n if (this.authOptions.headers !== undefined) {\n logger.warn('To send headers with the auth request, you must use AJAX, rather than JSONP.');\n }\n var callbackName = context.nextAuthCallbackID.toString();\n context.nextAuthCallbackID++;\n var document = context.getDocument();\n var script = document.createElement('script');\n context.auth_callbacks[callbackName] = function (data) {\n callback(null, data);\n };\n var callback_name = \"Pusher.auth_callbacks['\" + callbackName + \"']\";\n script.src =\n this.options.authEndpoint +\n '?callback=' +\n encodeURIComponent(callback_name) +\n '&' +\n this.composeQuery(socketId);\n var head = document.getElementsByTagName('head')[0] || document.documentElement;\n head.insertBefore(script, head.firstChild);\n};\n/* harmony default export */ var jsonp_auth = (jsonp);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/script_request.ts\nvar ScriptRequest = (function () {\n function ScriptRequest(src) {\n this.src = src;\n }\n ScriptRequest.prototype.send = function (receiver) {\n var self = this;\n var errorString = 'Error loading ' + self.src;\n self.script = document.createElement('script');\n self.script.id = receiver.id;\n self.script.src = self.src;\n self.script.type = 'text/javascript';\n self.script.charset = 'UTF-8';\n if (self.script.addEventListener) {\n self.script.onerror = function () {\n receiver.callback(errorString);\n };\n self.script.onload = function () {\n receiver.callback(null);\n };\n }\n else {\n self.script.onreadystatechange = function () {\n if (self.script.readyState === 'loaded' ||\n self.script.readyState === 'complete') {\n receiver.callback(null);\n }\n };\n }\n if (self.script.async === undefined &&\n document.attachEvent &&\n /opera/i.test(navigator.userAgent)) {\n self.errorScript = document.createElement('script');\n self.errorScript.id = receiver.id + '_error';\n self.errorScript.text = receiver.name + \"('\" + errorString + \"');\";\n self.script.async = self.errorScript.async = false;\n }\n else {\n self.script.async = true;\n }\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(self.script, head.firstChild);\n if (self.errorScript) {\n head.insertBefore(self.errorScript, self.script.nextSibling);\n }\n };\n ScriptRequest.prototype.cleanup = function () {\n if (this.script) {\n this.script.onload = this.script.onerror = null;\n this.script.onreadystatechange = null;\n }\n if (this.script && this.script.parentNode) {\n this.script.parentNode.removeChild(this.script);\n }\n if (this.errorScript && this.errorScript.parentNode) {\n this.errorScript.parentNode.removeChild(this.errorScript);\n }\n this.script = null;\n this.errorScript = null;\n };\n return ScriptRequest;\n}());\n/* harmony default export */ var script_request = (ScriptRequest);\n\n// CONCATENATED MODULE: ./src/runtimes/web/dom/jsonp_request.ts\n\n\nvar jsonp_request_JSONPRequest = (function () {\n function JSONPRequest(url, data) {\n this.url = url;\n this.data = data;\n }\n JSONPRequest.prototype.send = function (receiver) {\n if (this.request) {\n return;\n }\n var query = buildQueryString(this.data);\n var url = this.url + '/' + receiver.number + '?' + query;\n this.request = runtime.createScriptRequest(url);\n this.request.send(receiver);\n };\n JSONPRequest.prototype.cleanup = function () {\n if (this.request) {\n this.request.cleanup();\n }\n };\n return JSONPRequest;\n}());\n/* harmony default export */ var jsonp_request = (jsonp_request_JSONPRequest);\n\n// CONCATENATED MODULE: ./src/runtimes/web/timeline/jsonp_timeline.ts\n\n\nvar getAgent = function (sender, useTLS) {\n return function (data, callback) {\n var scheme = 'http' + (useTLS ? 's' : '') + '://';\n var url = scheme + (sender.host || sender.options.host) + sender.options.path;\n var request = runtime.createJSONPRequest(url, data);\n var receiver = runtime.ScriptReceivers.create(function (error, result) {\n ScriptReceivers.remove(receiver);\n request.cleanup();\n if (result && result.host) {\n sender.host = result.host;\n }\n if (callback) {\n callback(error, result);\n }\n });\n request.send(receiver);\n };\n};\nvar jsonp_timeline_jsonp = {\n name: 'jsonp',\n getAgent: getAgent\n};\n/* harmony default export */ var jsonp_timeline = (jsonp_timeline_jsonp);\n\n// CONCATENATED MODULE: ./src/core/transports/url_schemes.ts\n\nfunction getGenericURL(baseScheme, params, path) {\n var scheme = baseScheme + (params.useTLS ? 's' : '');\n var host = params.useTLS ? params.hostTLS : params.hostNonTLS;\n return scheme + '://' + host + path;\n}\nfunction getGenericPath(key, queryString) {\n var path = '/app/' + key;\n var query = '?protocol=' +\n defaults.PROTOCOL +\n '&client=js' +\n '&version=' +\n defaults.VERSION +\n (queryString ? '&' + queryString : '');\n return path + query;\n}\nvar ws = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '') + getGenericPath(key, 'flash=false');\n return getGenericURL('ws', params, path);\n }\n};\nvar http = {\n getInitial: function (key, params) {\n var path = (params.httpPath || '/pusher') + getGenericPath(key);\n return getGenericURL('http', params, path);\n }\n};\nvar sockjs = {\n getInitial: function (key, params) {\n return getGenericURL('http', params, params.httpPath || '/pusher');\n },\n getPath: function (key, params) {\n return getGenericPath(key);\n }\n};\n\n// CONCATENATED MODULE: ./src/core/events/callback_registry.ts\n\nvar callback_registry_CallbackRegistry = (function () {\n function CallbackRegistry() {\n this._callbacks = {};\n }\n CallbackRegistry.prototype.get = function (name) {\n return this._callbacks[prefix(name)];\n };\n CallbackRegistry.prototype.add = function (name, callback, context) {\n var prefixedEventName = prefix(name);\n this._callbacks[prefixedEventName] =\n this._callbacks[prefixedEventName] || [];\n this._callbacks[prefixedEventName].push({\n fn: callback,\n context: context\n });\n };\n CallbackRegistry.prototype.remove = function (name, callback, context) {\n if (!name && !callback && !context) {\n this._callbacks = {};\n return;\n }\n var names = name ? [prefix(name)] : keys(this._callbacks);\n if (callback || context) {\n this.removeCallback(names, callback, context);\n }\n else {\n this.removeAllCallbacks(names);\n }\n };\n CallbackRegistry.prototype.removeCallback = function (names, callback, context) {\n apply(names, function (name) {\n this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) {\n return ((callback && callback !== binding.fn) ||\n (context && context !== binding.context));\n });\n if (this._callbacks[name].length === 0) {\n delete this._callbacks[name];\n }\n }, this);\n };\n CallbackRegistry.prototype.removeAllCallbacks = function (names) {\n apply(names, function (name) {\n delete this._callbacks[name];\n }, this);\n };\n return CallbackRegistry;\n}());\n/* harmony default export */ var callback_registry = (callback_registry_CallbackRegistry);\nfunction prefix(name) {\n return '_' + name;\n}\n\n// CONCATENATED MODULE: ./src/core/events/dispatcher.ts\n\n\nvar dispatcher_Dispatcher = (function () {\n function Dispatcher(failThrough) {\n this.callbacks = new callback_registry();\n this.global_callbacks = [];\n this.failThrough = failThrough;\n }\n Dispatcher.prototype.bind = function (eventName, callback, context) {\n this.callbacks.add(eventName, callback, context);\n return this;\n };\n Dispatcher.prototype.bind_global = function (callback) {\n this.global_callbacks.push(callback);\n return this;\n };\n Dispatcher.prototype.unbind = function (eventName, callback, context) {\n this.callbacks.remove(eventName, callback, context);\n return this;\n };\n Dispatcher.prototype.unbind_global = function (callback) {\n if (!callback) {\n this.global_callbacks = [];\n return this;\n }\n this.global_callbacks = filter(this.global_callbacks || [], function (c) { return c !== callback; });\n return this;\n };\n Dispatcher.prototype.unbind_all = function () {\n this.unbind();\n this.unbind_global();\n return this;\n };\n Dispatcher.prototype.emit = function (eventName, data, metadata) {\n for (var i = 0; i < this.global_callbacks.length; i++) {\n this.global_callbacks[i](eventName, data);\n }\n var callbacks = this.callbacks.get(eventName);\n var args = [];\n if (metadata) {\n args.push(data, metadata);\n }\n else if (data) {\n args.push(data);\n }\n if (callbacks && callbacks.length > 0) {\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i].fn.apply(callbacks[i].context || window, args);\n }\n }\n else if (this.failThrough) {\n this.failThrough(eventName, data);\n }\n return this;\n };\n return Dispatcher;\n}());\n/* harmony default export */ var dispatcher = (dispatcher_Dispatcher);\n\n// CONCATENATED MODULE: ./src/core/transports/transport_connection.ts\nvar transport_connection_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar transport_connection_TransportConnection = (function (_super) {\n transport_connection_extends(TransportConnection, _super);\n function TransportConnection(hooks, name, priority, key, options) {\n var _this = _super.call(this) || this;\n _this.initialize = runtime.transportConnectionInitializer;\n _this.hooks = hooks;\n _this.name = name;\n _this.priority = priority;\n _this.key = key;\n _this.options = options;\n _this.state = 'new';\n _this.timeline = options.timeline;\n _this.activityTimeout = options.activityTimeout;\n _this.id = _this.timeline.generateUniqueID();\n return _this;\n }\n TransportConnection.prototype.handlesActivityChecks = function () {\n return Boolean(this.hooks.handlesActivityChecks);\n };\n TransportConnection.prototype.supportsPing = function () {\n return Boolean(this.hooks.supportsPing);\n };\n TransportConnection.prototype.connect = function () {\n var _this = this;\n if (this.socket || this.state !== 'initialized') {\n return false;\n }\n var url = this.hooks.urls.getInitial(this.key, this.options);\n try {\n this.socket = this.hooks.getSocket(url, this.options);\n }\n catch (e) {\n util.defer(function () {\n _this.onError(e);\n _this.changeState('closed');\n });\n return false;\n }\n this.bindListeners();\n logger.debug('Connecting', { transport: this.name, url: url });\n this.changeState('connecting');\n return true;\n };\n TransportConnection.prototype.close = function () {\n if (this.socket) {\n this.socket.close();\n return true;\n }\n else {\n return false;\n }\n };\n TransportConnection.prototype.send = function (data) {\n var _this = this;\n if (this.state === 'open') {\n util.defer(function () {\n if (_this.socket) {\n _this.socket.send(data);\n }\n });\n return true;\n }\n else {\n return false;\n }\n };\n TransportConnection.prototype.ping = function () {\n if (this.state === 'open' && this.supportsPing()) {\n this.socket.ping();\n }\n };\n TransportConnection.prototype.onOpen = function () {\n if (this.hooks.beforeOpen) {\n this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options));\n }\n this.changeState('open');\n this.socket.onopen = undefined;\n };\n TransportConnection.prototype.onError = function (error) {\n this.emit('error', { type: 'WebSocketError', error: error });\n this.timeline.error(this.buildTimelineMessage({ error: error.toString() }));\n };\n TransportConnection.prototype.onClose = function (closeEvent) {\n if (closeEvent) {\n this.changeState('closed', {\n code: closeEvent.code,\n reason: closeEvent.reason,\n wasClean: closeEvent.wasClean\n });\n }\n else {\n this.changeState('closed');\n }\n this.unbindListeners();\n this.socket = undefined;\n };\n TransportConnection.prototype.onMessage = function (message) {\n this.emit('message', message);\n };\n TransportConnection.prototype.onActivity = function () {\n this.emit('activity');\n };\n TransportConnection.prototype.bindListeners = function () {\n var _this = this;\n this.socket.onopen = function () {\n _this.onOpen();\n };\n this.socket.onerror = function (error) {\n _this.onError(error);\n };\n this.socket.onclose = function (closeEvent) {\n _this.onClose(closeEvent);\n };\n this.socket.onmessage = function (message) {\n _this.onMessage(message);\n };\n if (this.supportsPing()) {\n this.socket.onactivity = function () {\n _this.onActivity();\n };\n }\n };\n TransportConnection.prototype.unbindListeners = function () {\n if (this.socket) {\n this.socket.onopen = undefined;\n this.socket.onerror = undefined;\n this.socket.onclose = undefined;\n this.socket.onmessage = undefined;\n if (this.supportsPing()) {\n this.socket.onactivity = undefined;\n }\n }\n };\n TransportConnection.prototype.changeState = function (state, params) {\n this.state = state;\n this.timeline.info(this.buildTimelineMessage({\n state: state,\n params: params\n }));\n this.emit(state, params);\n };\n TransportConnection.prototype.buildTimelineMessage = function (message) {\n return extend({ cid: this.id }, message);\n };\n return TransportConnection;\n}(dispatcher));\n/* harmony default export */ var transport_connection = (transport_connection_TransportConnection);\n\n// CONCATENATED MODULE: ./src/core/transports/transport.ts\n\nvar transport_Transport = (function () {\n function Transport(hooks) {\n this.hooks = hooks;\n }\n Transport.prototype.isSupported = function (environment) {\n return this.hooks.isSupported(environment);\n };\n Transport.prototype.createConnection = function (name, priority, key, options) {\n return new transport_connection(this.hooks, name, priority, key, options);\n };\n return Transport;\n}());\n/* harmony default export */ var transports_transport = (transport_Transport);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/transports/transports.ts\n\n\n\n\nvar WSTransport = new transports_transport({\n urls: ws,\n handlesActivityChecks: false,\n supportsPing: false,\n isInitialized: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n isSupported: function () {\n return Boolean(runtime.getWebSocketAPI());\n },\n getSocket: function (url) {\n return runtime.createWebSocket(url);\n }\n});\nvar httpConfiguration = {\n urls: http,\n handlesActivityChecks: false,\n supportsPing: true,\n isInitialized: function () {\n return true;\n }\n};\nvar streamingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createStreamingSocket(url);\n }\n}, httpConfiguration);\nvar pollingConfiguration = extend({\n getSocket: function (url) {\n return runtime.HTTPFactory.createPollingSocket(url);\n }\n}, httpConfiguration);\nvar xhrConfiguration = {\n isSupported: function () {\n return runtime.isXHRSupported();\n }\n};\nvar XHRStreamingTransport = new transports_transport((extend({}, streamingConfiguration, xhrConfiguration)));\nvar XHRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xhrConfiguration));\nvar Transports = {\n ws: WSTransport,\n xhr_streaming: XHRStreamingTransport,\n xhr_polling: XHRPollingTransport\n};\n/* harmony default export */ var transports = (Transports);\n\n// CONCATENATED MODULE: ./src/runtimes/web/transports/transports.ts\n\n\n\n\n\n\nvar SockJSTransport = new transports_transport({\n file: 'sockjs',\n urls: sockjs,\n handlesActivityChecks: true,\n supportsPing: false,\n isSupported: function () {\n return true;\n },\n isInitialized: function () {\n return window.SockJS !== undefined;\n },\n getSocket: function (url, options) {\n return new window.SockJS(url, null, {\n js_path: Dependencies.getPath('sockjs', {\n useTLS: options.useTLS\n }),\n ignore_null_origin: options.ignoreNullOrigin\n });\n },\n beforeOpen: function (socket, path) {\n socket.send(JSON.stringify({\n path: path\n }));\n }\n});\nvar xdrConfiguration = {\n isSupported: function (environment) {\n var yes = runtime.isXDRSupported(environment.useTLS);\n return yes;\n }\n};\nvar XDRStreamingTransport = new transports_transport((extend({}, streamingConfiguration, xdrConfiguration)));\nvar XDRPollingTransport = new transports_transport(extend({}, pollingConfiguration, xdrConfiguration));\ntransports.xdr_streaming = XDRStreamingTransport;\ntransports.xdr_polling = XDRPollingTransport;\ntransports.sockjs = SockJSTransport;\n/* harmony default export */ var transports_transports = (transports);\n\n// CONCATENATED MODULE: ./src/runtimes/web/net_info.ts\nvar net_info_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar NetInfo = (function (_super) {\n net_info_extends(NetInfo, _super);\n function NetInfo() {\n var _this = _super.call(this) || this;\n var self = _this;\n if (window.addEventListener !== undefined) {\n window.addEventListener('online', function () {\n self.emit('online');\n }, false);\n window.addEventListener('offline', function () {\n self.emit('offline');\n }, false);\n }\n return _this;\n }\n NetInfo.prototype.isOnline = function () {\n if (window.navigator.onLine === undefined) {\n return true;\n }\n else {\n return window.navigator.onLine;\n }\n };\n return NetInfo;\n}(dispatcher));\n\nvar net_info_Network = new NetInfo();\n\n// CONCATENATED MODULE: ./src/core/transports/assistant_to_the_transport_manager.ts\n\n\nvar assistant_to_the_transport_manager_AssistantToTheTransportManager = (function () {\n function AssistantToTheTransportManager(manager, transport, options) {\n this.manager = manager;\n this.transport = transport;\n this.minPingDelay = options.minPingDelay;\n this.maxPingDelay = options.maxPingDelay;\n this.pingDelay = undefined;\n }\n AssistantToTheTransportManager.prototype.createConnection = function (name, priority, key, options) {\n var _this = this;\n options = extend({}, options, {\n activityTimeout: this.pingDelay\n });\n var connection = this.transport.createConnection(name, priority, key, options);\n var openTimestamp = null;\n var onOpen = function () {\n connection.unbind('open', onOpen);\n connection.bind('closed', onClosed);\n openTimestamp = util.now();\n };\n var onClosed = function (closeEvent) {\n connection.unbind('closed', onClosed);\n if (closeEvent.code === 1002 || closeEvent.code === 1003) {\n _this.manager.reportDeath();\n }\n else if (!closeEvent.wasClean && openTimestamp) {\n var lifespan = util.now() - openTimestamp;\n if (lifespan < 2 * _this.maxPingDelay) {\n _this.manager.reportDeath();\n _this.pingDelay = Math.max(lifespan / 2, _this.minPingDelay);\n }\n }\n };\n connection.bind('open', onOpen);\n return connection;\n };\n AssistantToTheTransportManager.prototype.isSupported = function (environment) {\n return this.manager.isAlive() && this.transport.isSupported(environment);\n };\n return AssistantToTheTransportManager;\n}());\n/* harmony default export */ var assistant_to_the_transport_manager = (assistant_to_the_transport_manager_AssistantToTheTransportManager);\n\n// CONCATENATED MODULE: ./src/core/connection/protocol/protocol.ts\nvar Protocol = {\n decodeMessage: function (messageEvent) {\n try {\n var messageData = JSON.parse(messageEvent.data);\n var pusherEventData = messageData.data;\n if (typeof pusherEventData === 'string') {\n try {\n pusherEventData = JSON.parse(messageData.data);\n }\n catch (e) { }\n }\n var pusherEvent = {\n event: messageData.event,\n channel: messageData.channel,\n data: pusherEventData\n };\n if (messageData.user_id) {\n pusherEvent.user_id = messageData.user_id;\n }\n return pusherEvent;\n }\n catch (e) {\n throw { type: 'MessageParseError', error: e, data: messageEvent.data };\n }\n },\n encodeMessage: function (event) {\n return JSON.stringify(event);\n },\n processHandshake: function (messageEvent) {\n var message = Protocol.decodeMessage(messageEvent);\n if (message.event === 'pusher:connection_established') {\n if (!message.data.activity_timeout) {\n throw 'No activity timeout specified in handshake';\n }\n return {\n action: 'connected',\n id: message.data.socket_id,\n activityTimeout: message.data.activity_timeout * 1000\n };\n }\n else if (message.event === 'pusher:error') {\n return {\n action: this.getCloseAction(message.data),\n error: this.getCloseError(message.data)\n };\n }\n else {\n throw 'Invalid handshake';\n }\n },\n getCloseAction: function (closeEvent) {\n if (closeEvent.code < 4000) {\n if (closeEvent.code >= 1002 && closeEvent.code <= 1004) {\n return 'backoff';\n }\n else {\n return null;\n }\n }\n else if (closeEvent.code === 4000) {\n return 'tls_only';\n }\n else if (closeEvent.code < 4100) {\n return 'refused';\n }\n else if (closeEvent.code < 4200) {\n return 'backoff';\n }\n else if (closeEvent.code < 4300) {\n return 'retry';\n }\n else {\n return 'refused';\n }\n },\n getCloseError: function (closeEvent) {\n if (closeEvent.code !== 1000 && closeEvent.code !== 1001) {\n return {\n type: 'PusherError',\n data: {\n code: closeEvent.code,\n message: closeEvent.reason || closeEvent.message\n }\n };\n }\n else {\n return null;\n }\n }\n};\n/* harmony default export */ var protocol_protocol = (Protocol);\n\n// CONCATENATED MODULE: ./src/core/connection/connection.ts\nvar connection_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar connection_Connection = (function (_super) {\n connection_extends(Connection, _super);\n function Connection(id, transport) {\n var _this = _super.call(this) || this;\n _this.id = id;\n _this.transport = transport;\n _this.activityTimeout = transport.activityTimeout;\n _this.bindListeners();\n return _this;\n }\n Connection.prototype.handlesActivityChecks = function () {\n return this.transport.handlesActivityChecks();\n };\n Connection.prototype.send = function (data) {\n return this.transport.send(data);\n };\n Connection.prototype.send_event = function (name, data, channel) {\n var event = { event: name, data: data };\n if (channel) {\n event.channel = channel;\n }\n logger.debug('Event sent', event);\n return this.send(protocol_protocol.encodeMessage(event));\n };\n Connection.prototype.ping = function () {\n if (this.transport.supportsPing()) {\n this.transport.ping();\n }\n else {\n this.send_event('pusher:ping', {});\n }\n };\n Connection.prototype.close = function () {\n this.transport.close();\n };\n Connection.prototype.bindListeners = function () {\n var _this = this;\n var listeners = {\n message: function (messageEvent) {\n var pusherEvent;\n try {\n pusherEvent = protocol_protocol.decodeMessage(messageEvent);\n }\n catch (e) {\n _this.emit('error', {\n type: 'MessageParseError',\n error: e,\n data: messageEvent.data\n });\n }\n if (pusherEvent !== undefined) {\n logger.debug('Event recd', pusherEvent);\n switch (pusherEvent.event) {\n case 'pusher:error':\n _this.emit('error', {\n type: 'PusherError',\n data: pusherEvent.data\n });\n break;\n case 'pusher:ping':\n _this.emit('ping');\n break;\n case 'pusher:pong':\n _this.emit('pong');\n break;\n }\n _this.emit('message', pusherEvent);\n }\n },\n activity: function () {\n _this.emit('activity');\n },\n error: function (error) {\n _this.emit('error', error);\n },\n closed: function (closeEvent) {\n unbindListeners();\n if (closeEvent && closeEvent.code) {\n _this.handleCloseEvent(closeEvent);\n }\n _this.transport = null;\n _this.emit('closed');\n }\n };\n var unbindListeners = function () {\n objectApply(listeners, function (listener, event) {\n _this.transport.unbind(event, listener);\n });\n };\n objectApply(listeners, function (listener, event) {\n _this.transport.bind(event, listener);\n });\n };\n Connection.prototype.handleCloseEvent = function (closeEvent) {\n var action = protocol_protocol.getCloseAction(closeEvent);\n var error = protocol_protocol.getCloseError(closeEvent);\n if (error) {\n this.emit('error', error);\n }\n if (action) {\n this.emit(action, { action: action, error: error });\n }\n };\n return Connection;\n}(dispatcher));\n/* harmony default export */ var connection_connection = (connection_Connection);\n\n// CONCATENATED MODULE: ./src/core/connection/handshake/index.ts\n\n\n\nvar handshake_Handshake = (function () {\n function Handshake(transport, callback) {\n this.transport = transport;\n this.callback = callback;\n this.bindListeners();\n }\n Handshake.prototype.close = function () {\n this.unbindListeners();\n this.transport.close();\n };\n Handshake.prototype.bindListeners = function () {\n var _this = this;\n this.onMessage = function (m) {\n _this.unbindListeners();\n var result;\n try {\n result = protocol_protocol.processHandshake(m);\n }\n catch (e) {\n _this.finish('error', { error: e });\n _this.transport.close();\n return;\n }\n if (result.action === 'connected') {\n _this.finish('connected', {\n connection: new connection_connection(result.id, _this.transport),\n activityTimeout: result.activityTimeout\n });\n }\n else {\n _this.finish(result.action, { error: result.error });\n _this.transport.close();\n }\n };\n this.onClosed = function (closeEvent) {\n _this.unbindListeners();\n var action = protocol_protocol.getCloseAction(closeEvent) || 'backoff';\n var error = protocol_protocol.getCloseError(closeEvent);\n _this.finish(action, { error: error });\n };\n this.transport.bind('message', this.onMessage);\n this.transport.bind('closed', this.onClosed);\n };\n Handshake.prototype.unbindListeners = function () {\n this.transport.unbind('message', this.onMessage);\n this.transport.unbind('closed', this.onClosed);\n };\n Handshake.prototype.finish = function (action, params) {\n this.callback(extend({ transport: this.transport, action: action }, params));\n };\n return Handshake;\n}());\n/* harmony default export */ var connection_handshake = (handshake_Handshake);\n\n// CONCATENATED MODULE: ./src/core/auth/pusher_authorizer.ts\n\nvar pusher_authorizer_PusherAuthorizer = (function () {\n function PusherAuthorizer(channel, options) {\n this.channel = channel;\n var authTransport = options.authTransport;\n if (typeof runtime.getAuthorizers()[authTransport] === 'undefined') {\n throw \"'\" + authTransport + \"' is not a recognized auth transport\";\n }\n this.type = authTransport;\n this.options = options;\n this.authOptions = options.auth || {};\n }\n PusherAuthorizer.prototype.composeQuery = function (socketId) {\n var query = 'socket_id=' +\n encodeURIComponent(socketId) +\n '&channel_name=' +\n encodeURIComponent(this.channel.name);\n for (var i in this.authOptions.params) {\n query +=\n '&' +\n encodeURIComponent(i) +\n '=' +\n encodeURIComponent(this.authOptions.params[i]);\n }\n return query;\n };\n PusherAuthorizer.prototype.authorize = function (socketId, callback) {\n PusherAuthorizer.authorizers =\n PusherAuthorizer.authorizers || runtime.getAuthorizers();\n PusherAuthorizer.authorizers[this.type].call(this, runtime, socketId, callback);\n };\n return PusherAuthorizer;\n}());\n/* harmony default export */ var pusher_authorizer = (pusher_authorizer_PusherAuthorizer);\n\n// CONCATENATED MODULE: ./src/core/timeline/timeline_sender.ts\n\nvar timeline_sender_TimelineSender = (function () {\n function TimelineSender(timeline, options) {\n this.timeline = timeline;\n this.options = options || {};\n }\n TimelineSender.prototype.send = function (useTLS, callback) {\n if (this.timeline.isEmpty()) {\n return;\n }\n this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback);\n };\n return TimelineSender;\n}());\n/* harmony default export */ var timeline_sender = (timeline_sender_TimelineSender);\n\n// CONCATENATED MODULE: ./src/core/channels/channel.ts\nvar channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar channel_Channel = (function (_super) {\n channel_extends(Channel, _super);\n function Channel(name, pusher) {\n var _this = _super.call(this, function (event, data) {\n logger.debug('No callbacks on ' + name + ' for ' + event);\n }) || this;\n _this.name = name;\n _this.pusher = pusher;\n _this.subscribed = false;\n _this.subscriptionPending = false;\n _this.subscriptionCancelled = false;\n return _this;\n }\n Channel.prototype.authorize = function (socketId, callback) {\n return callback(null, { auth: '' });\n };\n Channel.prototype.trigger = function (event, data) {\n if (event.indexOf('client-') !== 0) {\n throw new BadEventName(\"Event '\" + event + \"' does not start with 'client-'\");\n }\n if (!this.subscribed) {\n var suffix = url_store.buildLogSuffix('triggeringClientEvents');\n logger.warn(\"Client event triggered before channel 'subscription_succeeded' event . \" + suffix);\n }\n return this.pusher.send_event(event, data, this.name);\n };\n Channel.prototype.disconnect = function () {\n this.subscribed = false;\n this.subscriptionPending = false;\n };\n Channel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName === 'pusher_internal:subscription_succeeded') {\n this.handleSubscriptionSucceededEvent(event);\n }\n else if (eventName.indexOf('pusher_internal:') !== 0) {\n var metadata = {};\n this.emit(eventName, data, metadata);\n }\n };\n Channel.prototype.handleSubscriptionSucceededEvent = function (event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.emit('pusher:subscription_succeeded', event.data);\n }\n };\n Channel.prototype.subscribe = function () {\n var _this = this;\n if (this.subscribed) {\n return;\n }\n this.subscriptionPending = true;\n this.subscriptionCancelled = false;\n this.authorize(this.pusher.connection.socket_id, function (error, data) {\n if (error) {\n _this.subscriptionPending = false;\n logger.error(error.toString());\n _this.emit('pusher:subscription_error', Object.assign({}, {\n type: 'AuthError',\n error: error.message\n }, error instanceof HTTPAuthError ? { status: error.status } : {}));\n }\n else {\n _this.pusher.send_event('pusher:subscribe', {\n auth: data.auth,\n channel_data: data.channel_data,\n channel: _this.name\n });\n }\n });\n };\n Channel.prototype.unsubscribe = function () {\n this.subscribed = false;\n this.pusher.send_event('pusher:unsubscribe', {\n channel: this.name\n });\n };\n Channel.prototype.cancelSubscription = function () {\n this.subscriptionCancelled = true;\n };\n Channel.prototype.reinstateSubscription = function () {\n this.subscriptionCancelled = false;\n };\n return Channel;\n}(dispatcher));\n/* harmony default export */ var channels_channel = (channel_Channel);\n\n// CONCATENATED MODULE: ./src/core/channels/private_channel.ts\nvar private_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar private_channel_PrivateChannel = (function (_super) {\n private_channel_extends(PrivateChannel, _super);\n function PrivateChannel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrivateChannel.prototype.authorize = function (socketId, callback) {\n var authorizer = factory.createAuthorizer(this, this.pusher.config);\n return authorizer.authorize(socketId, callback);\n };\n return PrivateChannel;\n}(channels_channel));\n/* harmony default export */ var private_channel = (private_channel_PrivateChannel);\n\n// CONCATENATED MODULE: ./src/core/channels/members.ts\n\nvar members_Members = (function () {\n function Members() {\n this.reset();\n }\n Members.prototype.get = function (id) {\n if (Object.prototype.hasOwnProperty.call(this.members, id)) {\n return {\n id: id,\n info: this.members[id]\n };\n }\n else {\n return null;\n }\n };\n Members.prototype.each = function (callback) {\n var _this = this;\n objectApply(this.members, function (member, id) {\n callback(_this.get(id));\n });\n };\n Members.prototype.setMyID = function (id) {\n this.myID = id;\n };\n Members.prototype.onSubscription = function (subscriptionData) {\n this.members = subscriptionData.presence.hash;\n this.count = subscriptionData.presence.count;\n this.me = this.get(this.myID);\n };\n Members.prototype.addMember = function (memberData) {\n if (this.get(memberData.user_id) === null) {\n this.count++;\n }\n this.members[memberData.user_id] = memberData.user_info;\n return this.get(memberData.user_id);\n };\n Members.prototype.removeMember = function (memberData) {\n var member = this.get(memberData.user_id);\n if (member) {\n delete this.members[memberData.user_id];\n this.count--;\n }\n return member;\n };\n Members.prototype.reset = function () {\n this.members = {};\n this.count = 0;\n this.myID = null;\n this.me = null;\n };\n return Members;\n}());\n/* harmony default export */ var members = (members_Members);\n\n// CONCATENATED MODULE: ./src/core/channels/presence_channel.ts\nvar presence_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar presence_channel_PresenceChannel = (function (_super) {\n presence_channel_extends(PresenceChannel, _super);\n function PresenceChannel(name, pusher) {\n var _this = _super.call(this, name, pusher) || this;\n _this.members = new members();\n return _this;\n }\n PresenceChannel.prototype.authorize = function (socketId, callback) {\n var _this = this;\n _super.prototype.authorize.call(this, socketId, function (error, authData) {\n if (!error) {\n authData = authData;\n if (authData.channel_data === undefined) {\n var suffix = url_store.buildLogSuffix('authenticationEndpoint');\n logger.error(\"Invalid auth response for channel '\" + _this.name + \"',\" +\n (\"expected 'channel_data' field. \" + suffix));\n callback('Invalid auth response');\n return;\n }\n var channelData = JSON.parse(authData.channel_data);\n _this.members.setMyID(channelData.user_id);\n }\n callback(error, authData);\n });\n };\n PresenceChannel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n if (eventName.indexOf('pusher_internal:') === 0) {\n this.handleInternalEvent(event);\n }\n else {\n var data = event.data;\n var metadata = {};\n if (event.user_id) {\n metadata.user_id = event.user_id;\n }\n this.emit(eventName, data, metadata);\n }\n };\n PresenceChannel.prototype.handleInternalEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n switch (eventName) {\n case 'pusher_internal:subscription_succeeded':\n this.handleSubscriptionSucceededEvent(event);\n break;\n case 'pusher_internal:member_added':\n var addedMember = this.members.addMember(data);\n this.emit('pusher:member_added', addedMember);\n break;\n case 'pusher_internal:member_removed':\n var removedMember = this.members.removeMember(data);\n if (removedMember) {\n this.emit('pusher:member_removed', removedMember);\n }\n break;\n }\n };\n PresenceChannel.prototype.handleSubscriptionSucceededEvent = function (event) {\n this.subscriptionPending = false;\n this.subscribed = true;\n if (this.subscriptionCancelled) {\n this.pusher.unsubscribe(this.name);\n }\n else {\n this.members.onSubscription(event.data);\n this.emit('pusher:subscription_succeeded', this.members);\n }\n };\n PresenceChannel.prototype.disconnect = function () {\n this.members.reset();\n _super.prototype.disconnect.call(this);\n };\n return PresenceChannel;\n}(private_channel));\n/* harmony default export */ var presence_channel = (presence_channel_PresenceChannel);\n\n// EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js\nvar utf8 = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js\nvar base64 = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./src/core/channels/encrypted_channel.ts\nvar encrypted_channel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar encrypted_channel_EncryptedChannel = (function (_super) {\n encrypted_channel_extends(EncryptedChannel, _super);\n function EncryptedChannel(name, pusher, nacl) {\n var _this = _super.call(this, name, pusher) || this;\n _this.key = null;\n _this.nacl = nacl;\n return _this;\n }\n EncryptedChannel.prototype.authorize = function (socketId, callback) {\n var _this = this;\n _super.prototype.authorize.call(this, socketId, function (error, authData) {\n if (error) {\n callback(error, authData);\n return;\n }\n var sharedSecret = authData['shared_secret'];\n if (!sharedSecret) {\n callback(new Error(\"No shared_secret key in auth payload for encrypted channel: \" + _this.name), null);\n return;\n }\n _this.key = Object(base64[\"decode\"])(sharedSecret);\n delete authData['shared_secret'];\n callback(null, authData);\n });\n };\n EncryptedChannel.prototype.trigger = function (event, data) {\n throw new UnsupportedFeature('Client events are not currently supported for encrypted channels');\n };\n EncryptedChannel.prototype.handleEvent = function (event) {\n var eventName = event.event;\n var data = event.data;\n if (eventName.indexOf('pusher_internal:') === 0 ||\n eventName.indexOf('pusher:') === 0) {\n _super.prototype.handleEvent.call(this, event);\n return;\n }\n this.handleEncryptedEvent(eventName, data);\n };\n EncryptedChannel.prototype.handleEncryptedEvent = function (event, data) {\n var _this = this;\n if (!this.key) {\n logger.debug('Received encrypted event before key has been retrieved from the authEndpoint');\n return;\n }\n if (!data.ciphertext || !data.nonce) {\n logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' +\n data);\n return;\n }\n var cipherText = Object(base64[\"decode\"])(data.ciphertext);\n if (cipherText.length < this.nacl.secretbox.overheadLength) {\n logger.error(\"Expected encrypted event ciphertext length to be \" + this.nacl.secretbox.overheadLength + \", got: \" + cipherText.length);\n return;\n }\n var nonce = Object(base64[\"decode\"])(data.nonce);\n if (nonce.length < this.nacl.secretbox.nonceLength) {\n logger.error(\"Expected encrypted event nonce length to be \" + this.nacl.secretbox.nonceLength + \", got: \" + nonce.length);\n return;\n }\n var bytes = this.nacl.secretbox.open(cipherText, nonce, this.key);\n if (bytes === null) {\n logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...');\n this.authorize(this.pusher.connection.socket_id, function (error, authData) {\n if (error) {\n logger.error(\"Failed to make a request to the authEndpoint: \" + authData + \". Unable to fetch new key, so dropping encrypted event\");\n return;\n }\n bytes = _this.nacl.secretbox.open(cipherText, nonce, _this.key);\n if (bytes === null) {\n logger.error(\"Failed to decrypt event with new key. Dropping encrypted event\");\n return;\n }\n _this.emit(event, _this.getDataToEmit(bytes));\n return;\n });\n return;\n }\n this.emit(event, this.getDataToEmit(bytes));\n };\n EncryptedChannel.prototype.getDataToEmit = function (bytes) {\n var raw = Object(utf8[\"decode\"])(bytes);\n try {\n return JSON.parse(raw);\n }\n catch (_a) {\n return raw;\n }\n };\n return EncryptedChannel;\n}(private_channel));\n/* harmony default export */ var encrypted_channel = (encrypted_channel_EncryptedChannel);\n\n// CONCATENATED MODULE: ./src/core/connection/connection_manager.ts\nvar connection_manager_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\n\nvar connection_manager_ConnectionManager = (function (_super) {\n connection_manager_extends(ConnectionManager, _super);\n function ConnectionManager(key, options) {\n var _this = _super.call(this) || this;\n _this.state = 'initialized';\n _this.connection = null;\n _this.key = key;\n _this.options = options;\n _this.timeline = _this.options.timeline;\n _this.usingTLS = _this.options.useTLS;\n _this.errorCallbacks = _this.buildErrorCallbacks();\n _this.connectionCallbacks = _this.buildConnectionCallbacks(_this.errorCallbacks);\n _this.handshakeCallbacks = _this.buildHandshakeCallbacks(_this.errorCallbacks);\n var Network = runtime.getNetwork();\n Network.bind('online', function () {\n _this.timeline.info({ netinfo: 'online' });\n if (_this.state === 'connecting' || _this.state === 'unavailable') {\n _this.retryIn(0);\n }\n });\n Network.bind('offline', function () {\n _this.timeline.info({ netinfo: 'offline' });\n if (_this.connection) {\n _this.sendActivityCheck();\n }\n });\n _this.updateStrategy();\n return _this;\n }\n ConnectionManager.prototype.connect = function () {\n if (this.connection || this.runner) {\n return;\n }\n if (!this.strategy.isSupported()) {\n this.updateState('failed');\n return;\n }\n this.updateState('connecting');\n this.startConnecting();\n this.setUnavailableTimer();\n };\n ConnectionManager.prototype.send = function (data) {\n if (this.connection) {\n return this.connection.send(data);\n }\n else {\n return false;\n }\n };\n ConnectionManager.prototype.send_event = function (name, data, channel) {\n if (this.connection) {\n return this.connection.send_event(name, data, channel);\n }\n else {\n return false;\n }\n };\n ConnectionManager.prototype.disconnect = function () {\n this.disconnectInternally();\n this.updateState('disconnected');\n };\n ConnectionManager.prototype.isUsingTLS = function () {\n return this.usingTLS;\n };\n ConnectionManager.prototype.startConnecting = function () {\n var _this = this;\n var callback = function (error, handshake) {\n if (error) {\n _this.runner = _this.strategy.connect(0, callback);\n }\n else {\n if (handshake.action === 'error') {\n _this.emit('error', {\n type: 'HandshakeError',\n error: handshake.error\n });\n _this.timeline.error({ handshakeError: handshake.error });\n }\n else {\n _this.abortConnecting();\n _this.handshakeCallbacks[handshake.action](handshake);\n }\n }\n };\n this.runner = this.strategy.connect(0, callback);\n };\n ConnectionManager.prototype.abortConnecting = function () {\n if (this.runner) {\n this.runner.abort();\n this.runner = null;\n }\n };\n ConnectionManager.prototype.disconnectInternally = function () {\n this.abortConnecting();\n this.clearRetryTimer();\n this.clearUnavailableTimer();\n if (this.connection) {\n var connection = this.abandonConnection();\n connection.close();\n }\n };\n ConnectionManager.prototype.updateStrategy = function () {\n this.strategy = this.options.getStrategy({\n key: this.key,\n timeline: this.timeline,\n useTLS: this.usingTLS\n });\n };\n ConnectionManager.prototype.retryIn = function (delay) {\n var _this = this;\n this.timeline.info({ action: 'retry', delay: delay });\n if (delay > 0) {\n this.emit('connecting_in', Math.round(delay / 1000));\n }\n this.retryTimer = new OneOffTimer(delay || 0, function () {\n _this.disconnectInternally();\n _this.connect();\n });\n };\n ConnectionManager.prototype.clearRetryTimer = function () {\n if (this.retryTimer) {\n this.retryTimer.ensureAborted();\n this.retryTimer = null;\n }\n };\n ConnectionManager.prototype.setUnavailableTimer = function () {\n var _this = this;\n this.unavailableTimer = new OneOffTimer(this.options.unavailableTimeout, function () {\n _this.updateState('unavailable');\n });\n };\n ConnectionManager.prototype.clearUnavailableTimer = function () {\n if (this.unavailableTimer) {\n this.unavailableTimer.ensureAborted();\n }\n };\n ConnectionManager.prototype.sendActivityCheck = function () {\n var _this = this;\n this.stopActivityCheck();\n this.connection.ping();\n this.activityTimer = new OneOffTimer(this.options.pongTimeout, function () {\n _this.timeline.error({ pong_timed_out: _this.options.pongTimeout });\n _this.retryIn(0);\n });\n };\n ConnectionManager.prototype.resetActivityCheck = function () {\n var _this = this;\n this.stopActivityCheck();\n if (this.connection && !this.connection.handlesActivityChecks()) {\n this.activityTimer = new OneOffTimer(this.activityTimeout, function () {\n _this.sendActivityCheck();\n });\n }\n };\n ConnectionManager.prototype.stopActivityCheck = function () {\n if (this.activityTimer) {\n this.activityTimer.ensureAborted();\n }\n };\n ConnectionManager.prototype.buildConnectionCallbacks = function (errorCallbacks) {\n var _this = this;\n return extend({}, errorCallbacks, {\n message: function (message) {\n _this.resetActivityCheck();\n _this.emit('message', message);\n },\n ping: function () {\n _this.send_event('pusher:pong', {});\n },\n activity: function () {\n _this.resetActivityCheck();\n },\n error: function (error) {\n _this.emit('error', error);\n },\n closed: function () {\n _this.abandonConnection();\n if (_this.shouldRetry()) {\n _this.retryIn(1000);\n }\n }\n });\n };\n ConnectionManager.prototype.buildHandshakeCallbacks = function (errorCallbacks) {\n var _this = this;\n return extend({}, errorCallbacks, {\n connected: function (handshake) {\n _this.activityTimeout = Math.min(_this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity);\n _this.clearUnavailableTimer();\n _this.setConnection(handshake.connection);\n _this.socket_id = _this.connection.id;\n _this.updateState('connected', { socket_id: _this.socket_id });\n }\n });\n };\n ConnectionManager.prototype.buildErrorCallbacks = function () {\n var _this = this;\n var withErrorEmitted = function (callback) {\n return function (result) {\n if (result.error) {\n _this.emit('error', { type: 'WebSocketError', error: result.error });\n }\n callback(result);\n };\n };\n return {\n tls_only: withErrorEmitted(function () {\n _this.usingTLS = true;\n _this.updateStrategy();\n _this.retryIn(0);\n }),\n refused: withErrorEmitted(function () {\n _this.disconnect();\n }),\n backoff: withErrorEmitted(function () {\n _this.retryIn(1000);\n }),\n retry: withErrorEmitted(function () {\n _this.retryIn(0);\n })\n };\n };\n ConnectionManager.prototype.setConnection = function (connection) {\n this.connection = connection;\n for (var event in this.connectionCallbacks) {\n this.connection.bind(event, this.connectionCallbacks[event]);\n }\n this.resetActivityCheck();\n };\n ConnectionManager.prototype.abandonConnection = function () {\n if (!this.connection) {\n return;\n }\n this.stopActivityCheck();\n for (var event in this.connectionCallbacks) {\n this.connection.unbind(event, this.connectionCallbacks[event]);\n }\n var connection = this.connection;\n this.connection = null;\n return connection;\n };\n ConnectionManager.prototype.updateState = function (newState, data) {\n var previousState = this.state;\n this.state = newState;\n if (previousState !== newState) {\n var newStateDescription = newState;\n if (newStateDescription === 'connected') {\n newStateDescription += ' with new socket ID ' + data.socket_id;\n }\n logger.debug('State changed', previousState + ' -> ' + newStateDescription);\n this.timeline.info({ state: newState, params: data });\n this.emit('state_change', { previous: previousState, current: newState });\n this.emit(newState, data);\n }\n };\n ConnectionManager.prototype.shouldRetry = function () {\n return this.state === 'connecting' || this.state === 'connected';\n };\n return ConnectionManager;\n}(dispatcher));\n/* harmony default export */ var connection_manager = (connection_manager_ConnectionManager);\n\n// CONCATENATED MODULE: ./src/core/channels/channels.ts\n\n\n\n\nvar channels_Channels = (function () {\n function Channels() {\n this.channels = {};\n }\n Channels.prototype.add = function (name, pusher) {\n if (!this.channels[name]) {\n this.channels[name] = createChannel(name, pusher);\n }\n return this.channels[name];\n };\n Channels.prototype.all = function () {\n return values(this.channels);\n };\n Channels.prototype.find = function (name) {\n return this.channels[name];\n };\n Channels.prototype.remove = function (name) {\n var channel = this.channels[name];\n delete this.channels[name];\n return channel;\n };\n Channels.prototype.disconnect = function () {\n objectApply(this.channels, function (channel) {\n channel.disconnect();\n });\n };\n return Channels;\n}());\n/* harmony default export */ var channels = (channels_Channels);\nfunction createChannel(name, pusher) {\n if (name.indexOf('private-encrypted-') === 0) {\n if (pusher.config.nacl) {\n return factory.createEncryptedChannel(name, pusher, pusher.config.nacl);\n }\n var errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available';\n var suffix = url_store.buildLogSuffix('encryptedChannelSupport');\n throw new UnsupportedFeature(errMsg + \". \" + suffix);\n }\n else if (name.indexOf('private-') === 0) {\n return factory.createPrivateChannel(name, pusher);\n }\n else if (name.indexOf('presence-') === 0) {\n return factory.createPresenceChannel(name, pusher);\n }\n else {\n return factory.createChannel(name, pusher);\n }\n}\n\n// CONCATENATED MODULE: ./src/core/utils/factory.ts\n\n\n\n\n\n\n\n\n\n\nvar Factory = {\n createChannels: function () {\n return new channels();\n },\n createConnectionManager: function (key, options) {\n return new connection_manager(key, options);\n },\n createChannel: function (name, pusher) {\n return new channels_channel(name, pusher);\n },\n createPrivateChannel: function (name, pusher) {\n return new private_channel(name, pusher);\n },\n createPresenceChannel: function (name, pusher) {\n return new presence_channel(name, pusher);\n },\n createEncryptedChannel: function (name, pusher, nacl) {\n return new encrypted_channel(name, pusher, nacl);\n },\n createTimelineSender: function (timeline, options) {\n return new timeline_sender(timeline, options);\n },\n createAuthorizer: function (channel, options) {\n if (options.authorizer) {\n return options.authorizer(channel, options);\n }\n return new pusher_authorizer(channel, options);\n },\n createHandshake: function (transport, callback) {\n return new connection_handshake(transport, callback);\n },\n createAssistantToTheTransportManager: function (manager, transport, options) {\n return new assistant_to_the_transport_manager(manager, transport, options);\n }\n};\n/* harmony default export */ var factory = (Factory);\n\n// CONCATENATED MODULE: ./src/core/transports/transport_manager.ts\n\nvar transport_manager_TransportManager = (function () {\n function TransportManager(options) {\n this.options = options || {};\n this.livesLeft = this.options.lives || Infinity;\n }\n TransportManager.prototype.getAssistant = function (transport) {\n return factory.createAssistantToTheTransportManager(this, transport, {\n minPingDelay: this.options.minPingDelay,\n maxPingDelay: this.options.maxPingDelay\n });\n };\n TransportManager.prototype.isAlive = function () {\n return this.livesLeft > 0;\n };\n TransportManager.prototype.reportDeath = function () {\n this.livesLeft -= 1;\n };\n return TransportManager;\n}());\n/* harmony default export */ var transport_manager = (transport_manager_TransportManager);\n\n// CONCATENATED MODULE: ./src/core/strategies/sequential_strategy.ts\n\n\n\nvar sequential_strategy_SequentialStrategy = (function () {\n function SequentialStrategy(strategies, options) {\n this.strategies = strategies;\n this.loop = Boolean(options.loop);\n this.failFast = Boolean(options.failFast);\n this.timeout = options.timeout;\n this.timeoutLimit = options.timeoutLimit;\n }\n SequentialStrategy.prototype.isSupported = function () {\n return any(this.strategies, util.method('isSupported'));\n };\n SequentialStrategy.prototype.connect = function (minPriority, callback) {\n var _this = this;\n var strategies = this.strategies;\n var current = 0;\n var timeout = this.timeout;\n var runner = null;\n var tryNextStrategy = function (error, handshake) {\n if (handshake) {\n callback(null, handshake);\n }\n else {\n current = current + 1;\n if (_this.loop) {\n current = current % strategies.length;\n }\n if (current < strategies.length) {\n if (timeout) {\n timeout = timeout * 2;\n if (_this.timeoutLimit) {\n timeout = Math.min(timeout, _this.timeoutLimit);\n }\n }\n runner = _this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: _this.failFast }, tryNextStrategy);\n }\n else {\n callback(true);\n }\n }\n };\n runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy);\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n SequentialStrategy.prototype.tryStrategy = function (strategy, minPriority, options, callback) {\n var timer = null;\n var runner = null;\n if (options.timeout > 0) {\n timer = new OneOffTimer(options.timeout, function () {\n runner.abort();\n callback(true);\n });\n }\n runner = strategy.connect(minPriority, function (error, handshake) {\n if (error && timer && timer.isRunning() && !options.failFast) {\n return;\n }\n if (timer) {\n timer.ensureAborted();\n }\n callback(error, handshake);\n });\n return {\n abort: function () {\n if (timer) {\n timer.ensureAborted();\n }\n runner.abort();\n },\n forceMinPriority: function (p) {\n runner.forceMinPriority(p);\n }\n };\n };\n return SequentialStrategy;\n}());\n/* harmony default export */ var sequential_strategy = (sequential_strategy_SequentialStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/best_connected_ever_strategy.ts\n\n\nvar best_connected_ever_strategy_BestConnectedEverStrategy = (function () {\n function BestConnectedEverStrategy(strategies) {\n this.strategies = strategies;\n }\n BestConnectedEverStrategy.prototype.isSupported = function () {\n return any(this.strategies, util.method('isSupported'));\n };\n BestConnectedEverStrategy.prototype.connect = function (minPriority, callback) {\n return connect(this.strategies, minPriority, function (i, runners) {\n return function (error, handshake) {\n runners[i].error = error;\n if (error) {\n if (allRunnersFailed(runners)) {\n callback(true);\n }\n return;\n }\n apply(runners, function (runner) {\n runner.forceMinPriority(handshake.transport.priority);\n });\n callback(null, handshake);\n };\n });\n };\n return BestConnectedEverStrategy;\n}());\n/* harmony default export */ var best_connected_ever_strategy = (best_connected_ever_strategy_BestConnectedEverStrategy);\nfunction connect(strategies, minPriority, callbackBuilder) {\n var runners = map(strategies, function (strategy, i, _, rs) {\n return strategy.connect(minPriority, callbackBuilder(i, rs));\n });\n return {\n abort: function () {\n apply(runners, abortRunner);\n },\n forceMinPriority: function (p) {\n apply(runners, function (runner) {\n runner.forceMinPriority(p);\n });\n }\n };\n}\nfunction allRunnersFailed(runners) {\n return collections_all(runners, function (runner) {\n return Boolean(runner.error);\n });\n}\nfunction abortRunner(runner) {\n if (!runner.error && !runner.aborted) {\n runner.abort();\n runner.aborted = true;\n }\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/cached_strategy.ts\n\n\n\n\nvar cached_strategy_CachedStrategy = (function () {\n function CachedStrategy(strategy, transports, options) {\n this.strategy = strategy;\n this.transports = transports;\n this.ttl = options.ttl || 1800 * 1000;\n this.usingTLS = options.useTLS;\n this.timeline = options.timeline;\n }\n CachedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n CachedStrategy.prototype.connect = function (minPriority, callback) {\n var usingTLS = this.usingTLS;\n var info = fetchTransportCache(usingTLS);\n var strategies = [this.strategy];\n if (info && info.timestamp + this.ttl >= util.now()) {\n var transport = this.transports[info.transport];\n if (transport) {\n this.timeline.info({\n cached: true,\n transport: info.transport,\n latency: info.latency\n });\n strategies.push(new sequential_strategy([transport], {\n timeout: info.latency * 2 + 1000,\n failFast: true\n }));\n }\n }\n var startTimestamp = util.now();\n var runner = strategies\n .pop()\n .connect(minPriority, function cb(error, handshake) {\n if (error) {\n flushTransportCache(usingTLS);\n if (strategies.length > 0) {\n startTimestamp = util.now();\n runner = strategies.pop().connect(minPriority, cb);\n }\n else {\n callback(error);\n }\n }\n else {\n storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp);\n callback(null, handshake);\n }\n });\n return {\n abort: function () {\n runner.abort();\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n return CachedStrategy;\n}());\n/* harmony default export */ var cached_strategy = (cached_strategy_CachedStrategy);\nfunction getTransportCacheKey(usingTLS) {\n return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS');\n}\nfunction fetchTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n var serializedCache = storage[getTransportCacheKey(usingTLS)];\n if (serializedCache) {\n return JSON.parse(serializedCache);\n }\n }\n catch (e) {\n flushTransportCache(usingTLS);\n }\n }\n return null;\n}\nfunction storeTransportCache(usingTLS, transport, latency) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({\n timestamp: util.now(),\n transport: transport,\n latency: latency\n });\n }\n catch (e) {\n }\n }\n}\nfunction flushTransportCache(usingTLS) {\n var storage = runtime.getLocalStorage();\n if (storage) {\n try {\n delete storage[getTransportCacheKey(usingTLS)];\n }\n catch (e) {\n }\n }\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/delayed_strategy.ts\n\nvar delayed_strategy_DelayedStrategy = (function () {\n function DelayedStrategy(strategy, _a) {\n var number = _a.delay;\n this.strategy = strategy;\n this.options = { delay: number };\n }\n DelayedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n DelayedStrategy.prototype.connect = function (minPriority, callback) {\n var strategy = this.strategy;\n var runner;\n var timer = new OneOffTimer(this.options.delay, function () {\n runner = strategy.connect(minPriority, callback);\n });\n return {\n abort: function () {\n timer.ensureAborted();\n if (runner) {\n runner.abort();\n }\n },\n forceMinPriority: function (p) {\n minPriority = p;\n if (runner) {\n runner.forceMinPriority(p);\n }\n }\n };\n };\n return DelayedStrategy;\n}());\n/* harmony default export */ var delayed_strategy = (delayed_strategy_DelayedStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/if_strategy.ts\nvar IfStrategy = (function () {\n function IfStrategy(test, trueBranch, falseBranch) {\n this.test = test;\n this.trueBranch = trueBranch;\n this.falseBranch = falseBranch;\n }\n IfStrategy.prototype.isSupported = function () {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.isSupported();\n };\n IfStrategy.prototype.connect = function (minPriority, callback) {\n var branch = this.test() ? this.trueBranch : this.falseBranch;\n return branch.connect(minPriority, callback);\n };\n return IfStrategy;\n}());\n/* harmony default export */ var if_strategy = (IfStrategy);\n\n// CONCATENATED MODULE: ./src/core/strategies/first_connected_strategy.ts\nvar FirstConnectedStrategy = (function () {\n function FirstConnectedStrategy(strategy) {\n this.strategy = strategy;\n }\n FirstConnectedStrategy.prototype.isSupported = function () {\n return this.strategy.isSupported();\n };\n FirstConnectedStrategy.prototype.connect = function (minPriority, callback) {\n var runner = this.strategy.connect(minPriority, function (error, handshake) {\n if (handshake) {\n runner.abort();\n }\n callback(error, handshake);\n });\n return runner;\n };\n return FirstConnectedStrategy;\n}());\n/* harmony default export */ var first_connected_strategy = (FirstConnectedStrategy);\n\n// CONCATENATED MODULE: ./src/runtimes/web/default_strategy.ts\n\n\n\n\n\n\n\nfunction testSupportsStrategy(strategy) {\n return function () {\n return strategy.isSupported();\n };\n}\nvar getDefaultStrategy = function (config, baseOptions, defineTransport) {\n var definedTransports = {};\n function defineTransportStrategy(name, type, priority, options, manager) {\n var transport = defineTransport(config, name, type, priority, options, manager);\n definedTransports[name] = transport;\n return transport;\n }\n var ws_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.wsHost + ':' + config.wsPort,\n hostTLS: config.wsHost + ':' + config.wssPort,\n httpPath: config.wsPath\n });\n var wss_options = Object.assign({}, ws_options, {\n useTLS: true\n });\n var sockjs_options = Object.assign({}, baseOptions, {\n hostNonTLS: config.httpHost + ':' + config.httpPort,\n hostTLS: config.httpHost + ':' + config.httpsPort,\n httpPath: config.httpPath\n });\n var timeouts = {\n loop: true,\n timeout: 15000,\n timeoutLimit: 60000\n };\n var ws_manager = new transport_manager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout\n });\n var streaming_manager = new transport_manager({\n lives: 2,\n minPingDelay: 10000,\n maxPingDelay: config.activityTimeout\n });\n var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager);\n var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager);\n var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options);\n var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager);\n var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager);\n var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options);\n var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options);\n var ws_loop = new sequential_strategy([ws_transport], timeouts);\n var wss_loop = new sequential_strategy([wss_transport], timeouts);\n var sockjs_loop = new sequential_strategy([sockjs_transport], timeouts);\n var streaming_loop = new sequential_strategy([\n new if_strategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport)\n ], timeouts);\n var polling_loop = new sequential_strategy([\n new if_strategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport)\n ], timeouts);\n var http_loop = new sequential_strategy([\n new if_strategy(testSupportsStrategy(streaming_loop), new best_connected_ever_strategy([\n streaming_loop,\n new delayed_strategy(polling_loop, { delay: 4000 })\n ]), polling_loop)\n ], timeouts);\n var http_fallback_loop = new if_strategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop);\n var wsStrategy;\n if (baseOptions.useTLS) {\n wsStrategy = new best_connected_ever_strategy([\n ws_loop,\n new delayed_strategy(http_fallback_loop, { delay: 2000 })\n ]);\n }\n else {\n wsStrategy = new best_connected_ever_strategy([\n ws_loop,\n new delayed_strategy(wss_loop, { delay: 2000 }),\n new delayed_strategy(http_fallback_loop, { delay: 5000 })\n ]);\n }\n return new cached_strategy(new first_connected_strategy(new if_strategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, {\n ttl: 1800000,\n timeline: baseOptions.timeline,\n useTLS: baseOptions.useTLS\n });\n};\n/* harmony default export */ var default_strategy = (getDefaultStrategy);\n\n// CONCATENATED MODULE: ./src/runtimes/web/transports/transport_connection_initializer.ts\n\n/* harmony default export */ var transport_connection_initializer = (function () {\n var self = this;\n self.timeline.info(self.buildTimelineMessage({\n transport: self.name + (self.options.useTLS ? 's' : '')\n }));\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n }\n else if (self.hooks.file) {\n self.changeState('initializing');\n Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) {\n if (self.hooks.isInitialized()) {\n self.changeState('initialized');\n callback(true);\n }\n else {\n if (error) {\n self.onError(error);\n }\n self.onClose();\n callback(false);\n }\n });\n }\n else {\n self.onClose();\n }\n});\n\n// CONCATENATED MODULE: ./src/runtimes/web/http/http_xdomain_request.ts\n\nvar http_xdomain_request_hooks = {\n getRequest: function (socket) {\n var xdr = new window.XDomainRequest();\n xdr.ontimeout = function () {\n socket.emit('error', new RequestTimedOut());\n socket.close();\n };\n xdr.onerror = function (e) {\n socket.emit('error', e);\n socket.close();\n };\n xdr.onprogress = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n };\n xdr.onload = function () {\n if (xdr.responseText && xdr.responseText.length > 0) {\n socket.onChunk(200, xdr.responseText);\n }\n socket.emit('finished', 200);\n socket.close();\n };\n return xdr;\n },\n abortRequest: function (xdr) {\n xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null;\n xdr.abort();\n }\n};\n/* harmony default export */ var http_xdomain_request = (http_xdomain_request_hooks);\n\n// CONCATENATED MODULE: ./src/core/http/http_request.ts\nvar http_request_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar MAX_BUFFER_LENGTH = 256 * 1024;\nvar http_request_HTTPRequest = (function (_super) {\n http_request_extends(HTTPRequest, _super);\n function HTTPRequest(hooks, method, url) {\n var _this = _super.call(this) || this;\n _this.hooks = hooks;\n _this.method = method;\n _this.url = url;\n return _this;\n }\n HTTPRequest.prototype.start = function (payload) {\n var _this = this;\n this.position = 0;\n this.xhr = this.hooks.getRequest(this);\n this.unloader = function () {\n _this.close();\n };\n runtime.addUnloadListener(this.unloader);\n this.xhr.open(this.method, this.url, true);\n if (this.xhr.setRequestHeader) {\n this.xhr.setRequestHeader('Content-Type', 'application/json');\n }\n this.xhr.send(payload);\n };\n HTTPRequest.prototype.close = function () {\n if (this.unloader) {\n runtime.removeUnloadListener(this.unloader);\n this.unloader = null;\n }\n if (this.xhr) {\n this.hooks.abortRequest(this.xhr);\n this.xhr = null;\n }\n };\n HTTPRequest.prototype.onChunk = function (status, data) {\n while (true) {\n var chunk = this.advanceBuffer(data);\n if (chunk) {\n this.emit('chunk', { status: status, data: chunk });\n }\n else {\n break;\n }\n }\n if (this.isBufferTooLong(data)) {\n this.emit('buffer_too_long');\n }\n };\n HTTPRequest.prototype.advanceBuffer = function (buffer) {\n var unreadData = buffer.slice(this.position);\n var endOfLinePosition = unreadData.indexOf('\\n');\n if (endOfLinePosition !== -1) {\n this.position += endOfLinePosition + 1;\n return unreadData.slice(0, endOfLinePosition);\n }\n else {\n return null;\n }\n };\n HTTPRequest.prototype.isBufferTooLong = function (buffer) {\n return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH;\n };\n return HTTPRequest;\n}(dispatcher));\n/* harmony default export */ var http_request = (http_request_HTTPRequest);\n\n// CONCATENATED MODULE: ./src/core/http/state.ts\nvar State;\n(function (State) {\n State[State[\"CONNECTING\"] = 0] = \"CONNECTING\";\n State[State[\"OPEN\"] = 1] = \"OPEN\";\n State[State[\"CLOSED\"] = 3] = \"CLOSED\";\n})(State || (State = {}));\n/* harmony default export */ var state = (State);\n\n// CONCATENATED MODULE: ./src/core/http/http_socket.ts\n\n\n\nvar autoIncrement = 1;\nvar http_socket_HTTPSocket = (function () {\n function HTTPSocket(hooks, url) {\n this.hooks = hooks;\n this.session = randomNumber(1000) + '/' + randomString(8);\n this.location = getLocation(url);\n this.readyState = state.CONNECTING;\n this.openStream();\n }\n HTTPSocket.prototype.send = function (payload) {\n return this.sendRaw(JSON.stringify([payload]));\n };\n HTTPSocket.prototype.ping = function () {\n this.hooks.sendHeartbeat(this);\n };\n HTTPSocket.prototype.close = function (code, reason) {\n this.onClose(code, reason, true);\n };\n HTTPSocket.prototype.sendRaw = function (payload) {\n if (this.readyState === state.OPEN) {\n try {\n runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload);\n return true;\n }\n catch (e) {\n return false;\n }\n }\n else {\n return false;\n }\n };\n HTTPSocket.prototype.reconnect = function () {\n this.closeStream();\n this.openStream();\n };\n HTTPSocket.prototype.onClose = function (code, reason, wasClean) {\n this.closeStream();\n this.readyState = state.CLOSED;\n if (this.onclose) {\n this.onclose({\n code: code,\n reason: reason,\n wasClean: wasClean\n });\n }\n };\n HTTPSocket.prototype.onChunk = function (chunk) {\n if (chunk.status !== 200) {\n return;\n }\n if (this.readyState === state.OPEN) {\n this.onActivity();\n }\n var payload;\n var type = chunk.data.slice(0, 1);\n switch (type) {\n case 'o':\n payload = JSON.parse(chunk.data.slice(1) || '{}');\n this.onOpen(payload);\n break;\n case 'a':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n for (var i = 0; i < payload.length; i++) {\n this.onEvent(payload[i]);\n }\n break;\n case 'm':\n payload = JSON.parse(chunk.data.slice(1) || 'null');\n this.onEvent(payload);\n break;\n case 'h':\n this.hooks.onHeartbeat(this);\n break;\n case 'c':\n payload = JSON.parse(chunk.data.slice(1) || '[]');\n this.onClose(payload[0], payload[1], true);\n break;\n }\n };\n HTTPSocket.prototype.onOpen = function (options) {\n if (this.readyState === state.CONNECTING) {\n if (options && options.hostname) {\n this.location.base = replaceHost(this.location.base, options.hostname);\n }\n this.readyState = state.OPEN;\n if (this.onopen) {\n this.onopen();\n }\n }\n else {\n this.onClose(1006, 'Server lost session', true);\n }\n };\n HTTPSocket.prototype.onEvent = function (event) {\n if (this.readyState === state.OPEN && this.onmessage) {\n this.onmessage({ data: event });\n }\n };\n HTTPSocket.prototype.onActivity = function () {\n if (this.onactivity) {\n this.onactivity();\n }\n };\n HTTPSocket.prototype.onError = function (error) {\n if (this.onerror) {\n this.onerror(error);\n }\n };\n HTTPSocket.prototype.openStream = function () {\n var _this = this;\n this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session)));\n this.stream.bind('chunk', function (chunk) {\n _this.onChunk(chunk);\n });\n this.stream.bind('finished', function (status) {\n _this.hooks.onFinished(_this, status);\n });\n this.stream.bind('buffer_too_long', function () {\n _this.reconnect();\n });\n try {\n this.stream.start();\n }\n catch (error) {\n util.defer(function () {\n _this.onError(error);\n _this.onClose(1006, 'Could not start streaming', false);\n });\n }\n };\n HTTPSocket.prototype.closeStream = function () {\n if (this.stream) {\n this.stream.unbind_all();\n this.stream.close();\n this.stream = null;\n }\n };\n return HTTPSocket;\n}());\nfunction getLocation(url) {\n var parts = /([^\\?]*)\\/*(\\??.*)/.exec(url);\n return {\n base: parts[1],\n queryString: parts[2]\n };\n}\nfunction getSendURL(url, session) {\n return url.base + '/' + session + '/xhr_send';\n}\nfunction getUniqueURL(url) {\n var separator = url.indexOf('?') === -1 ? '?' : '&';\n return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++;\n}\nfunction replaceHost(url, hostname) {\n var urlParts = /(https?:\\/\\/)([^\\/:]+)((\\/|:)?.*)/.exec(url);\n return urlParts[1] + hostname + urlParts[3];\n}\nfunction randomNumber(max) {\n return Math.floor(Math.random() * max);\n}\nfunction randomString(length) {\n var result = [];\n for (var i = 0; i < length; i++) {\n result.push(randomNumber(32).toString(32));\n }\n return result.join('');\n}\n/* harmony default export */ var http_socket = (http_socket_HTTPSocket);\n\n// CONCATENATED MODULE: ./src/core/http/http_streaming_socket.ts\nvar http_streaming_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr_streaming' + url.queryString;\n },\n onHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n }\n};\n/* harmony default export */ var http_streaming_socket = (http_streaming_socket_hooks);\n\n// CONCATENATED MODULE: ./src/core/http/http_polling_socket.ts\nvar http_polling_socket_hooks = {\n getReceiveURL: function (url, session) {\n return url.base + '/' + session + '/xhr' + url.queryString;\n },\n onHeartbeat: function () {\n },\n sendHeartbeat: function (socket) {\n socket.sendRaw('[]');\n },\n onFinished: function (socket, status) {\n if (status === 200) {\n socket.reconnect();\n }\n else {\n socket.onClose(1006, 'Connection interrupted (' + status + ')', false);\n }\n }\n};\n/* harmony default export */ var http_polling_socket = (http_polling_socket_hooks);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http_xhr_request.ts\n\nvar http_xhr_request_hooks = {\n getRequest: function (socket) {\n var Constructor = runtime.getXHRAPI();\n var xhr = new Constructor();\n xhr.onreadystatechange = xhr.onprogress = function () {\n switch (xhr.readyState) {\n case 3:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n break;\n case 4:\n if (xhr.responseText && xhr.responseText.length > 0) {\n socket.onChunk(xhr.status, xhr.responseText);\n }\n socket.emit('finished', xhr.status);\n socket.close();\n break;\n }\n };\n return xhr;\n },\n abortRequest: function (xhr) {\n xhr.onreadystatechange = null;\n xhr.abort();\n }\n};\n/* harmony default export */ var http_xhr_request = (http_xhr_request_hooks);\n\n// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http.ts\n\n\n\n\n\nvar HTTP = {\n createStreamingSocket: function (url) {\n return this.createSocket(http_streaming_socket, url);\n },\n createPollingSocket: function (url) {\n return this.createSocket(http_polling_socket, url);\n },\n createSocket: function (hooks, url) {\n return new http_socket(hooks, url);\n },\n createXHR: function (method, url) {\n return this.createRequest(http_xhr_request, method, url);\n },\n createRequest: function (hooks, method, url) {\n return new http_request(hooks, method, url);\n }\n};\n/* harmony default export */ var http_http = (HTTP);\n\n// CONCATENATED MODULE: ./src/runtimes/web/http/http.ts\n\n\nhttp_http.createXDR = function (method, url) {\n return this.createRequest(http_xdomain_request, method, url);\n};\n/* harmony default export */ var web_http_http = (http_http);\n\n// CONCATENATED MODULE: ./src/runtimes/web/runtime.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar Runtime = {\n nextAuthCallbackID: 1,\n auth_callbacks: {},\n ScriptReceivers: ScriptReceivers,\n DependenciesReceivers: DependenciesReceivers,\n getDefaultStrategy: default_strategy,\n Transports: transports_transports,\n transportConnectionInitializer: transport_connection_initializer,\n HTTPFactory: web_http_http,\n TimelineTransport: jsonp_timeline,\n getXHRAPI: function () {\n return window.XMLHttpRequest;\n },\n getWebSocketAPI: function () {\n return window.WebSocket || window.MozWebSocket;\n },\n setup: function (PusherClass) {\n var _this = this;\n window.Pusher = PusherClass;\n var initializeOnDocumentBody = function () {\n _this.onDocumentBody(PusherClass.ready);\n };\n if (!window.JSON) {\n Dependencies.load('json2', {}, initializeOnDocumentBody);\n }\n else {\n initializeOnDocumentBody();\n }\n },\n getDocument: function () {\n return document;\n },\n getProtocol: function () {\n return this.getDocument().location.protocol;\n },\n getAuthorizers: function () {\n return { ajax: xhr_auth, jsonp: jsonp_auth };\n },\n onDocumentBody: function (callback) {\n var _this = this;\n if (document.body) {\n callback();\n }\n else {\n setTimeout(function () {\n _this.onDocumentBody(callback);\n }, 0);\n }\n },\n createJSONPRequest: function (url, data) {\n return new jsonp_request(url, data);\n },\n createScriptRequest: function (src) {\n return new script_request(src);\n },\n getLocalStorage: function () {\n try {\n return window.localStorage;\n }\n catch (e) {\n return undefined;\n }\n },\n createXHR: function () {\n if (this.getXHRAPI()) {\n return this.createXMLHttpRequest();\n }\n else {\n return this.createMicrosoftXHR();\n }\n },\n createXMLHttpRequest: function () {\n var Constructor = this.getXHRAPI();\n return new Constructor();\n },\n createMicrosoftXHR: function () {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n getNetwork: function () {\n return net_info_Network;\n },\n createWebSocket: function (url) {\n var Constructor = this.getWebSocketAPI();\n return new Constructor(url);\n },\n createSocketRequest: function (method, url) {\n if (this.isXHRSupported()) {\n return this.HTTPFactory.createXHR(method, url);\n }\n else if (this.isXDRSupported(url.indexOf('https:') === 0)) {\n return this.HTTPFactory.createXDR(method, url);\n }\n else {\n throw 'Cross-origin HTTP requests are not supported';\n }\n },\n isXHRSupported: function () {\n var Constructor = this.getXHRAPI();\n return (Boolean(Constructor) && new Constructor().withCredentials !== undefined);\n },\n isXDRSupported: function (useTLS) {\n var protocol = useTLS ? 'https:' : 'http:';\n var documentProtocol = this.getProtocol();\n return (Boolean(window['XDomainRequest']) && documentProtocol === protocol);\n },\n addUnloadListener: function (listener) {\n if (window.addEventListener !== undefined) {\n window.addEventListener('unload', listener, false);\n }\n else if (window.attachEvent !== undefined) {\n window.attachEvent('onunload', listener);\n }\n },\n removeUnloadListener: function (listener) {\n if (window.addEventListener !== undefined) {\n window.removeEventListener('unload', listener, false);\n }\n else if (window.detachEvent !== undefined) {\n window.detachEvent('onunload', listener);\n }\n }\n};\n/* harmony default export */ var runtime = (Runtime);\n\n// CONCATENATED MODULE: ./src/core/timeline/level.ts\nvar TimelineLevel;\n(function (TimelineLevel) {\n TimelineLevel[TimelineLevel[\"ERROR\"] = 3] = \"ERROR\";\n TimelineLevel[TimelineLevel[\"INFO\"] = 6] = \"INFO\";\n TimelineLevel[TimelineLevel[\"DEBUG\"] = 7] = \"DEBUG\";\n})(TimelineLevel || (TimelineLevel = {}));\n/* harmony default export */ var timeline_level = (TimelineLevel);\n\n// CONCATENATED MODULE: ./src/core/timeline/timeline.ts\n\n\n\nvar timeline_Timeline = (function () {\n function Timeline(key, session, options) {\n this.key = key;\n this.session = session;\n this.events = [];\n this.options = options || {};\n this.sent = 0;\n this.uniqueID = 0;\n }\n Timeline.prototype.log = function (level, event) {\n if (level <= this.options.level) {\n this.events.push(extend({}, event, { timestamp: util.now() }));\n if (this.options.limit && this.events.length > this.options.limit) {\n this.events.shift();\n }\n }\n };\n Timeline.prototype.error = function (event) {\n this.log(timeline_level.ERROR, event);\n };\n Timeline.prototype.info = function (event) {\n this.log(timeline_level.INFO, event);\n };\n Timeline.prototype.debug = function (event) {\n this.log(timeline_level.DEBUG, event);\n };\n Timeline.prototype.isEmpty = function () {\n return this.events.length === 0;\n };\n Timeline.prototype.send = function (sendfn, callback) {\n var _this = this;\n var data = extend({\n session: this.session,\n bundle: this.sent + 1,\n key: this.key,\n lib: 'js',\n version: this.options.version,\n cluster: this.options.cluster,\n features: this.options.features,\n timeline: this.events\n }, this.options.params);\n this.events = [];\n sendfn(data, function (error, result) {\n if (!error) {\n _this.sent++;\n }\n if (callback) {\n callback(error, result);\n }\n });\n return true;\n };\n Timeline.prototype.generateUniqueID = function () {\n this.uniqueID++;\n return this.uniqueID;\n };\n return Timeline;\n}());\n/* harmony default export */ var timeline_timeline = (timeline_Timeline);\n\n// CONCATENATED MODULE: ./src/core/strategies/transport_strategy.ts\n\n\n\n\nvar transport_strategy_TransportStrategy = (function () {\n function TransportStrategy(name, priority, transport, options) {\n this.name = name;\n this.priority = priority;\n this.transport = transport;\n this.options = options || {};\n }\n TransportStrategy.prototype.isSupported = function () {\n return this.transport.isSupported({\n useTLS: this.options.useTLS\n });\n };\n TransportStrategy.prototype.connect = function (minPriority, callback) {\n var _this = this;\n if (!this.isSupported()) {\n return failAttempt(new UnsupportedStrategy(), callback);\n }\n else if (this.priority < minPriority) {\n return failAttempt(new TransportPriorityTooLow(), callback);\n }\n var connected = false;\n var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options);\n var handshake = null;\n var onInitialized = function () {\n transport.unbind('initialized', onInitialized);\n transport.connect();\n };\n var onOpen = function () {\n handshake = factory.createHandshake(transport, function (result) {\n connected = true;\n unbindListeners();\n callback(null, result);\n });\n };\n var onError = function (error) {\n unbindListeners();\n callback(error);\n };\n var onClosed = function () {\n unbindListeners();\n var serializedTransport;\n serializedTransport = safeJSONStringify(transport);\n callback(new TransportClosed(serializedTransport));\n };\n var unbindListeners = function () {\n transport.unbind('initialized', onInitialized);\n transport.unbind('open', onOpen);\n transport.unbind('error', onError);\n transport.unbind('closed', onClosed);\n };\n transport.bind('initialized', onInitialized);\n transport.bind('open', onOpen);\n transport.bind('error', onError);\n transport.bind('closed', onClosed);\n transport.initialize();\n return {\n abort: function () {\n if (connected) {\n return;\n }\n unbindListeners();\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n },\n forceMinPriority: function (p) {\n if (connected) {\n return;\n }\n if (_this.priority < p) {\n if (handshake) {\n handshake.close();\n }\n else {\n transport.close();\n }\n }\n }\n };\n };\n return TransportStrategy;\n}());\n/* harmony default export */ var transport_strategy = (transport_strategy_TransportStrategy);\nfunction failAttempt(error, callback) {\n util.defer(function () {\n callback(error);\n });\n return {\n abort: function () { },\n forceMinPriority: function () { }\n };\n}\n\n// CONCATENATED MODULE: ./src/core/strategies/strategy_builder.ts\n\n\n\n\n\nvar strategy_builder_Transports = runtime.Transports;\nvar strategy_builder_defineTransport = function (config, name, type, priority, options, manager) {\n var transportClass = strategy_builder_Transports[type];\n if (!transportClass) {\n throw new UnsupportedTransport(type);\n }\n var enabled = (!config.enabledTransports ||\n arrayIndexOf(config.enabledTransports, name) !== -1) &&\n (!config.disabledTransports ||\n arrayIndexOf(config.disabledTransports, name) === -1);\n var transport;\n if (enabled) {\n options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options);\n transport = new transport_strategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options);\n }\n else {\n transport = strategy_builder_UnsupportedStrategy;\n }\n return transport;\n};\nvar strategy_builder_UnsupportedStrategy = {\n isSupported: function () {\n return false;\n },\n connect: function (_, callback) {\n var deferred = util.defer(function () {\n callback(new UnsupportedStrategy());\n });\n return {\n abort: function () {\n deferred.ensureAborted();\n },\n forceMinPriority: function () { }\n };\n }\n};\n\n// CONCATENATED MODULE: ./src/core/config.ts\n\n\nfunction getConfig(opts) {\n var config = {\n activityTimeout: opts.activityTimeout || defaults.activityTimeout,\n authEndpoint: opts.authEndpoint || defaults.authEndpoint,\n authTransport: opts.authTransport || defaults.authTransport,\n cluster: opts.cluster || defaults.cluster,\n httpPath: opts.httpPath || defaults.httpPath,\n httpPort: opts.httpPort || defaults.httpPort,\n httpsPort: opts.httpsPort || defaults.httpsPort,\n pongTimeout: opts.pongTimeout || defaults.pongTimeout,\n statsHost: opts.statsHost || defaults.stats_host,\n unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout,\n wsPath: opts.wsPath || defaults.wsPath,\n wsPort: opts.wsPort || defaults.wsPort,\n wssPort: opts.wssPort || defaults.wssPort,\n enableStats: getEnableStatsConfig(opts),\n httpHost: getHttpHost(opts),\n useTLS: shouldUseTLS(opts),\n wsHost: getWebsocketHost(opts)\n };\n if ('auth' in opts)\n config.auth = opts.auth;\n if ('authorizer' in opts)\n config.authorizer = opts.authorizer;\n if ('disabledTransports' in opts)\n config.disabledTransports = opts.disabledTransports;\n if ('enabledTransports' in opts)\n config.enabledTransports = opts.enabledTransports;\n if ('ignoreNullOrigin' in opts)\n config.ignoreNullOrigin = opts.ignoreNullOrigin;\n if ('timelineParams' in opts)\n config.timelineParams = opts.timelineParams;\n if ('nacl' in opts) {\n config.nacl = opts.nacl;\n }\n return config;\n}\nfunction getHttpHost(opts) {\n if (opts.httpHost) {\n return opts.httpHost;\n }\n if (opts.cluster) {\n return \"sockjs-\" + opts.cluster + \".pusher.com\";\n }\n return defaults.httpHost;\n}\nfunction getWebsocketHost(opts) {\n if (opts.wsHost) {\n return opts.wsHost;\n }\n if (opts.cluster) {\n return getWebsocketHostFromCluster(opts.cluster);\n }\n return getWebsocketHostFromCluster(defaults.cluster);\n}\nfunction getWebsocketHostFromCluster(cluster) {\n return \"ws-\" + cluster + \".pusher.com\";\n}\nfunction shouldUseTLS(opts) {\n if (runtime.getProtocol() === 'https:') {\n return true;\n }\n else if (opts.forceTLS === false) {\n return false;\n }\n return true;\n}\nfunction getEnableStatsConfig(opts) {\n if ('enableStats' in opts) {\n return opts.enableStats;\n }\n if ('disableStats' in opts) {\n return !opts.disableStats;\n }\n return false;\n}\n\n// CONCATENATED MODULE: ./src/core/pusher.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar pusher_Pusher = (function () {\n function Pusher(app_key, options) {\n var _this = this;\n checkAppKey(app_key);\n options = options || {};\n if (!options.cluster && !(options.wsHost || options.httpHost)) {\n var suffix = url_store.buildLogSuffix('javascriptQuickStart');\n logger.warn(\"You should always specify a cluster when connecting. \" + suffix);\n }\n if ('disableStats' in options) {\n logger.warn('The disableStats option is deprecated in favor of enableStats');\n }\n this.key = app_key;\n this.config = getConfig(options);\n this.channels = factory.createChannels();\n this.global_emitter = new dispatcher();\n this.sessionID = Math.floor(Math.random() * 1000000000);\n this.timeline = new timeline_timeline(this.key, this.sessionID, {\n cluster: this.config.cluster,\n features: Pusher.getClientFeatures(),\n params: this.config.timelineParams || {},\n limit: 50,\n level: timeline_level.INFO,\n version: defaults.VERSION\n });\n if (this.config.enableStats) {\n this.timelineSender = factory.createTimelineSender(this.timeline, {\n host: this.config.statsHost,\n path: '/timeline/v2/' + runtime.TimelineTransport.name\n });\n }\n var getStrategy = function (options) {\n return runtime.getDefaultStrategy(_this.config, options, strategy_builder_defineTransport);\n };\n this.connection = factory.createConnectionManager(this.key, {\n getStrategy: getStrategy,\n timeline: this.timeline,\n activityTimeout: this.config.activityTimeout,\n pongTimeout: this.config.pongTimeout,\n unavailableTimeout: this.config.unavailableTimeout,\n useTLS: Boolean(this.config.useTLS)\n });\n this.connection.bind('connected', function () {\n _this.subscribeAll();\n if (_this.timelineSender) {\n _this.timelineSender.send(_this.connection.isUsingTLS());\n }\n });\n this.connection.bind('message', function (event) {\n var eventName = event.event;\n var internal = eventName.indexOf('pusher_internal:') === 0;\n if (event.channel) {\n var channel = _this.channel(event.channel);\n if (channel) {\n channel.handleEvent(event);\n }\n }\n if (!internal) {\n _this.global_emitter.emit(event.event, event.data);\n }\n });\n this.connection.bind('connecting', function () {\n _this.channels.disconnect();\n });\n this.connection.bind('disconnected', function () {\n _this.channels.disconnect();\n });\n this.connection.bind('error', function (err) {\n logger.warn(err);\n });\n Pusher.instances.push(this);\n this.timeline.info({ instances: Pusher.instances.length });\n if (Pusher.isReady) {\n this.connect();\n }\n }\n Pusher.ready = function () {\n Pusher.isReady = true;\n for (var i = 0, l = Pusher.instances.length; i < l; i++) {\n Pusher.instances[i].connect();\n }\n };\n Pusher.getClientFeatures = function () {\n return keys(filterObject({ ws: runtime.Transports.ws }, function (t) {\n return t.isSupported({});\n }));\n };\n Pusher.prototype.channel = function (name) {\n return this.channels.find(name);\n };\n Pusher.prototype.allChannels = function () {\n return this.channels.all();\n };\n Pusher.prototype.connect = function () {\n this.connection.connect();\n if (this.timelineSender) {\n if (!this.timelineSenderTimer) {\n var usingTLS = this.connection.isUsingTLS();\n var timelineSender = this.timelineSender;\n this.timelineSenderTimer = new PeriodicTimer(60000, function () {\n timelineSender.send(usingTLS);\n });\n }\n }\n };\n Pusher.prototype.disconnect = function () {\n this.connection.disconnect();\n if (this.timelineSenderTimer) {\n this.timelineSenderTimer.ensureAborted();\n this.timelineSenderTimer = null;\n }\n };\n Pusher.prototype.bind = function (event_name, callback, context) {\n this.global_emitter.bind(event_name, callback, context);\n return this;\n };\n Pusher.prototype.unbind = function (event_name, callback, context) {\n this.global_emitter.unbind(event_name, callback, context);\n return this;\n };\n Pusher.prototype.bind_global = function (callback) {\n this.global_emitter.bind_global(callback);\n return this;\n };\n Pusher.prototype.unbind_global = function (callback) {\n this.global_emitter.unbind_global(callback);\n return this;\n };\n Pusher.prototype.unbind_all = function (callback) {\n this.global_emitter.unbind_all();\n return this;\n };\n Pusher.prototype.subscribeAll = function () {\n var channelName;\n for (channelName in this.channels.channels) {\n if (this.channels.channels.hasOwnProperty(channelName)) {\n this.subscribe(channelName);\n }\n }\n };\n Pusher.prototype.subscribe = function (channel_name) {\n var channel = this.channels.add(channel_name, this);\n if (channel.subscriptionPending && channel.subscriptionCancelled) {\n channel.reinstateSubscription();\n }\n else if (!channel.subscriptionPending &&\n this.connection.state === 'connected') {\n channel.subscribe();\n }\n return channel;\n };\n Pusher.prototype.unsubscribe = function (channel_name) {\n var channel = this.channels.find(channel_name);\n if (channel && channel.subscriptionPending) {\n channel.cancelSubscription();\n }\n else {\n channel = this.channels.remove(channel_name);\n if (channel && channel.subscribed) {\n channel.unsubscribe();\n }\n }\n };\n Pusher.prototype.send_event = function (event_name, data, channel) {\n return this.connection.send_event(event_name, data, channel);\n };\n Pusher.prototype.shouldUseTLS = function () {\n return this.config.useTLS;\n };\n Pusher.instances = [];\n Pusher.isReady = false;\n Pusher.logToConsole = false;\n Pusher.Runtime = runtime;\n Pusher.ScriptReceivers = runtime.ScriptReceivers;\n Pusher.DependenciesReceivers = runtime.DependenciesReceivers;\n Pusher.auth_callbacks = runtime.auth_callbacks;\n return Pusher;\n}());\n/* harmony default export */ var core_pusher = __webpack_exports__[\"default\"] = (pusher_Pusher);\nfunction checkAppKey(key) {\n if (key === null || key === undefined) {\n throw 'You must pass your app key when you instantiate Pusher.';\n }\n}\nruntime.setup(pusher_Pusher);\n\n\n/***/ })\n/******/ ]);\n});"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","_inherits","subClass","superClass","create","constructor","value","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","e","_isNativeReflectConstruct","result","Super","NewTarget","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","Connector","options","_defaultOptions","auth","headers","authEndpoint","broadcaster","csrfToken","host","namespace","setOptions","connect","selector","window","document","querySelector","getAttribute","Channel","event","callback","listen","stopListening","EventFormatter","setNamespace","charAt","substr","replace","PusherChannel","_Channel","_super","pusher","name","_this","eventFormatter","subscribe","subscription","unsubscribe","on","format","unbind","status","bind","PusherPrivateChannel","_PusherChannel","eventName","data","channels","trigger","concat","PusherEncryptedPrivateChannel","PusherPresenceChannel","keys","members","map","k","member","info","SocketIoChannel","socket","events","configureReconnector","emit","channel","removeListener","_this2","listener","_this3","push","_this4","forEach","SocketIoPrivateChannel","_SocketIoChannel","SocketIoPresenceChannel","_SocketIoPrivateChann","m","user_info","NullChannel","NullPrivateChannel","_NullChannel","NullPresenceChannel","PusherConnector","_Connector","client","Pusher","index","leaveChannel","connection","socket_id","disconnect","SocketIoConnector","getSocketIO","io","Error","id","NullConnector","withoutInterceptors","registerInterceptors","_channel","connector","presenceChannel","leave","privateChannel","encryptedPrivateChannel","socketId","Vue","http","registerVueRequestInterceptor","axios","registerAxiosRequestInterceptor","jQuery","registerjQueryAjaxSetup","interceptors","request","next","set","use","config","ajax","ajaxPrefilter","originalOptions","xhr","setRequestHeader","factory","modules","installedModules","moduleId","exports","l","c","d","getter","get","r","Symbol","toStringTag","t","mode","__esModule","ns","n","object","property","s","__webpack_require__","extendStatics","__extends","b","Array","__","INVALID_BYTE","Coder","_paddingCharacter","encodedLength","encode","out","_encodeByte","left","maxDecodedLength","decodedLength","_getPaddingLength","decode","Uint8Array","paddingLength","op","haveBad","v0","v1","v2","v3","_decodeChar","charCodeAt","String","fromCharCode","stdCoder","URLSafeCoder","urlSafeCoder","encodeURLSafe","decodeURLSafe","INVALID_UTF16","INVALID_UTF8","arr","pos","chars","min","n1","n2","n3","join","default","ScriptReceiverFactory","lastId","prefix","number","called","callbackWrapper","remove","receiver","ScriptReceivers","defaults","VERSION","PROTOCOL","wsPort","wssPort","wsPath","httpHost","httpPort","httpsPort","httpPath","stats_host","authTransport","activityTimeout","pongTimeout","unavailableTimeout","cluster","cdn_http","cdn_https","dependency_suffix","dependency_loader","receivers","loading","DependencyLoader","load","runtime","createScriptRequest","getPath","error","callbacks","successCallback","wasSuccessful","cleanup","send","getRoot","protocol","getDocument","location","useTLS","version","suffix","DependenciesReceivers","Dependencies","urlStore","baseUrl","urls","authenticationEndpoint","path","javascriptQuickStart","triggeringClientEvents","encryptedChannelSupport","fullUrl","url_store","url","urlObj","urlPrefix","BadEventName","msg","_newTarget","RequestTimedOut","TransportPriorityTooLow","TransportClosed","UnsupportedFeature","UnsupportedTransport","UnsupportedStrategy","HTTPAuthError","xhr_auth","context","headerName","createXHR","open","authOptions","onreadystatechange","readyState","parsed","JSON","parse","responseText","composeQuery","b64chars","b64tab","base64_i","cb_utob","cc","utob","u","cb_encode","ccc","padlen","ord","btoa","abstract_timer","clear","delay","timer","isRunning","ensureAborted","timers_extends","clearTimeout","clearInterval","OneOffTimer","setTimeout","timers_clearTimeout","PeriodicTimer","setInterval","timers_clearInterval","Util","now","valueOf","defer","method","args","_i","boundArguments","slice","util","sources","extensions","extend","safeJSONStringify","array","item","nativeIndexOf","indexOf","f","objectApply","_","test","Boolean","encodeURIComponent","encodeParamsObject","filterObject","stringify","objects","paths","derez","nu","$ref","logger_Logger","globalLog","message","console","log","Logger","debug","warn","globalLogWarn","globalLogError","defaultLoggingFunction","core_pusher","logToConsole","logger","jsonp_auth","callbackName","nextAuthCallbackID","script","createElement","auth_callbacks","callback_name","src","head","getElementsByTagName","documentElement","insertBefore","firstChild","script_request","errorString","type","charset","addEventListener","onerror","onload","async","attachEvent","navigator","userAgent","errorScript","text","nextSibling","parentNode","removeChild","jsonp_request","JSONPRequest","query","buildQueryString","jsonp_timeline","getAgent","sender","createJSONPRequest","baseScheme","params","hostTLS","hostNonTLS","queryString","ws","getInitial","getGenericURL","getGenericPath","sockjs","callback_registry","_callbacks","CallbackRegistry","add","prefixedEventName","fn","names","removeCallback","removeAllCallbacks","filter","binding","dispatcher","failThrough","global_callbacks","Dispatcher","bind_global","unbind_global","unbind_all","metadata","transport_connection_extends","transport_connection","hooks","priority","initialize","transportConnectionInitializer","state","timeline","generateUniqueID","TransportConnection","handlesActivityChecks","supportsPing","getSocket","onError","changeState","bindListeners","transport","close","ping","onOpen","beforeOpen","onopen","buildTimelineMessage","onClose","closeEvent","code","reason","wasClean","unbindListeners","onMessage","onActivity","onclose","onmessage","onactivity","cid","transports_transport","Transport","isSupported","environment","createConnection","WSTransport","isInitialized","getWebSocketAPI","createWebSocket","httpConfiguration","streamingConfiguration","HTTPFactory","createStreamingSocket","pollingConfiguration","createPollingSocket","xhrConfiguration","isXHRSupported","transports","xhr_streaming","xhr_polling","SockJSTransport","file","SockJS","js_path","ignore_null_origin","ignoreNullOrigin","xdrConfiguration","isXDRSupported","XDRStreamingTransport","XDRPollingTransport","xdr_streaming","xdr_polling","transports_transports","net_info_extends","net_info_Network","isOnline","onLine","assistant_to_the_transport_manager","manager","minPingDelay","maxPingDelay","pingDelay","AssistantToTheTransportManager","openTimestamp","onClosed","reportDeath","lifespan","Math","max","isAlive","Protocol","decodeMessage","messageEvent","messageData","pusherEventData","pusherEvent","user_id","encodeMessage","processHandshake","activity_timeout","action","getCloseAction","getCloseError","protocol_protocol","connection_extends","connection_connection","Connection","send_event","listeners","activity","closed","handleCloseEvent","connection_handshake","Handshake","finish","pusher_authorizer","getAuthorizers","PusherAuthorizer","authorize","authorizers","timeline_sender","TimelineSender","isEmpty","TimelineTransport","channel_extends","channels_channel","subscribed","subscriptionPending","subscriptionCancelled","handleEvent","handleSubscriptionSucceededEvent","channel_data","cancelSubscription","reinstateSubscription","private_channel_extends","private_channel_PrivateChannel","PrivateChannel","createAuthorizer","private_channel","reset","Members","each","setMyID","myID","onSubscription","subscriptionData","presence","hash","count","me","addMember","memberData","removeMember","presence_channel_extends","presence_channel","PresenceChannel","authData","channelData","handleInternalEvent","addedMember","removedMember","utf8","base64","encrypted_channel_extends","encrypted_channel","nacl","EncryptedChannel","sharedSecret","handleEncryptedEvent","ciphertext","nonce","cipherText","secretbox","overheadLength","nonceLength","bytes","getDataToEmit","raw","_a","connection_manager_extends","connection_manager","usingTLS","errorCallbacks","buildErrorCallbacks","connectionCallbacks","buildConnectionCallbacks","handshakeCallbacks","buildHandshakeCallbacks","Network","getNetwork","netinfo","retryIn","sendActivityCheck","updateStrategy","ConnectionManager","runner","strategy","updateState","startConnecting","setUnavailableTimer","disconnectInternally","isUsingTLS","handshake","handshakeError","abortConnecting","abort","clearRetryTimer","clearUnavailableTimer","abandonConnection","getStrategy","round","retryTimer","unavailableTimer","stopActivityCheck","activityTimer","pong_timed_out","resetActivityCheck","shouldRetry","connected","Infinity","setConnection","withErrorEmitted","tls_only","refused","backoff","retry","newState","previousState","newStateDescription","previous","current","Channels","createEncryptedChannel","errMsg","createPrivateChannel","createPresenceChannel","createChannel","all","find","createChannels","createConnectionManager","createTimelineSender","authorizer","createHandshake","createAssistantToTheTransportManager","transport_manager","livesLeft","lives","TransportManager","getAssistant","sequential_strategy","strategies","loop","failFast","timeout","timeoutLimit","SequentialStrategy","any","minPriority","tryNextStrategy","tryStrategy","forceMinPriority","best_connected_ever_strategy","BestConnectedEverStrategy","runners","rs","collections_all","allRunnersFailed","callbackBuilder","abortRunner","aborted","cached_strategy","ttl","CachedStrategy","storage","getLocalStorage","serializedCache","getTransportCacheKey","flushTransportCache","fetchTransportCache","timestamp","cached","latency","startTimestamp","pop","cb","storeTransportCache","delayed_strategy","DelayedStrategy","if_strategy","trueBranch","falseBranch","first_connected_strategy","State","http_xdomain_request","getRequest","xdr","XDomainRequest","ontimeout","onprogress","onChunk","abortRequest","http_request_extends","http_request","HTTPRequest","start","payload","position","unloader","addUnloadListener","removeUnloadListener","chunk","advanceBuffer","isBufferTooLong","buffer","unreadData","endOfLinePosition","autoIncrement","separator","floor","random","TimelineLevel","http_socket","session","randomNumber","randomString","parts","exec","base","getLocation","CONNECTING","openStream","HTTPSocket","sendRaw","sendHeartbeat","OPEN","createSocketRequest","getUniqueURL","reconnect","closeStream","CLOSED","onEvent","onHeartbeat","hostname","urlParts","stream","getReceiveURL","onFinished","http_streaming_socket","http_polling_socket","http_xhr_request","getXHRAPI","getDefaultStrategy","baseOptions","defineTransport","definedTransports","wsStrategy","ws_options","wsHost","wss_options","sockjs_options","timeouts","ws_manager","streaming_manager","ws_transport","defineTransportStrategy","wss_transport","sockjs_transport","xhr_streaming_transport","xdr_streaming_transport","xhr_polling_transport","xdr_polling_transport","ws_loop","wss_loop","sockjs_loop","streaming_loop","testSupportsStrategy","polling_loop","http_loop","http_fallback_loop","Transports","createSocket","createRequest","http_http","XMLHttpRequest","WebSocket","MozWebSocket","setup","PusherClass","initializeOnDocumentBody","onDocumentBody","ready","getProtocol","jsonp","body","localStorage","createXMLHttpRequest","createMicrosoftXHR","ActiveXObject","createXDR","withCredentials","documentProtocol","removeEventListener","detachEvent","timeline_level","timeline_timeline","sent","uniqueID","Timeline","level","limit","shift","ERROR","INFO","DEBUG","sendfn","bundle","lib","features","transport_strategy","TransportStrategy","failAttempt","onInitialized","serializedTransport","strategy_builder_Transports","strategy_builder_defineTransport","transportClass","enabledTransports","arrayIndexOf","disabledTransports","strategy_builder_UnsupportedStrategy","deferred","opts","getWebsocketHostFromCluster","forceTLS","enableStats","disableStats","pusher_Pusher","app_key","checkAppKey","statsHost","getEnableStatsConfig","getHttpHost","shouldUseTLS","getWebsocketHost","timelineParams","global_emitter","sessionID","getClientFeatures","timelineSender","subscribeAll","internal","err","instances","isReady","allChannels","timelineSenderTimer","event_name","channelName","channel_name","Runtime","module"],"sourceRoot":""}