{"version":3,"file":"AppLayout-d953613a.js","sources":["../../../app/javascript/api/sessionApi.js","../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","../../../app/javascript/components/AppLayout.vue"],"sourcesContent":["import axios from 'axios';\nexport async function leaveImpersonate() {\n const response = await axios.get('/leave_impersonates');\n //show the toast\n setTimeout(() => (window.location.href = response.data.redirection), 500);\n}\n","var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordPing() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","\n\n\n"],"names":["leaveImpersonate","response","axios","adapters","logger","messages","now","secondsSince","time","ConnectionMonitor","connection","staleThreshold","reconnectionBackoffRate","backoff","jitter","INTERNAL","message_types","protocols","supportedProtocols","indexOf","Connection","consumer","data","allowReconnect","error","states","state","eventName","handler","event","identifier","message","reason","reconnect","type","extend","object","properties","key","value","Subscription","params","mixin","action","SubscriptionGuarantor","subscriptions","subscription","s","Subscriptions","channelName","channel","callbackName","args","command","Consumer","url","createWebSocketURL","a","createConsumer","getConfig","name","element","page","usePage","$store","useStore","$emitter","useEmitter","useHttp","auth","computed","flashMessages","impersonating","heartbeatChannel","ref","staticDataChannel","cable","host","protocol","port","setUniversalData","subscribeToHeartbeat","resolve","reject","updateLivePrices","debounce","subscribeToUpdates","subscribeToStaticData","subscribeToTeamNewsItems","flashMessage","subscribeToAdminNewsItems","subscribeToAlerts","payload","clickEvent","subscribeToUserNotifications","subscribeChannels","socket","onBeforeUnmount","sub","interval","addMessagingTerminal","onBeforeMount","onMounted","setupChat","useWatchlistStore","_a","sendHeartBeat","onUnmounted","unsubscribeStreamChannel","navItems","setNavItems","items","provide","showTOSModal","termsOfServiceStatus","watch"],"mappings":"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","x_google_ignoreList":[1]}