avo 2.7.0 → 2.7.1.pre.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of avo might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c49705a72c31381fe9a133a58b1953d56513fda407157b4c92a17f933424b3e5
4
- data.tar.gz: 6680ac6be68f89e9ecdbce81f3ee2ecd18915369509c27914835f824f8da550e
3
+ metadata.gz: be031348e104fd95df6fc2b48c4bde687e9379a12c9438c80c70bdef65b55f8c
4
+ data.tar.gz: 214eb0d01d253460066c3a78ec8b36fa7e9d784bf7f980a233c38252d5a1b575
5
5
  SHA512:
6
- metadata.gz: b34915f9540a2e057df9cde8c228077eec22bafee204cb076399a1eb2b3ee36834aff7fb50b9fb57060c3271cb31387d7fcbd27642fca8222a245db04cc70182
7
- data.tar.gz: 0a3ce0cad78f3fd6b3cde3534d879e9729569e3e3ac8ea595fd4266c77b6025227bad0154a2f69263c1e8858337906c788d63f635976e2678a94f95d5419d72b
6
+ metadata.gz: 21bf5ac37c7577fccc0911d26d0d6c2f4db704b1c0180e6ee29d12e69f5f5e7b24f4a871848c21886448e85f3dd726f5c4669d792fa049223d12c4ac096de86c
7
+ data.tar.gz: c87b060ed691b131a4c0db29caf96b3be1f60a8d45d2b8c2fb66906c6d04d5a369e81dadbbc30caf5f80ec431f34ae2378150d68e7a0757028f19a0b66deb2cb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- avo (2.7.0)
4
+ avo (2.7.1.pre.1)
5
5
  active_link_to
6
6
  addressable
7
7
  breadcrumbs_on_rails
@@ -251,6 +251,8 @@ GEM
251
251
  nokogiri (1.13.4)
252
252
  mini_portile2 (~> 2.8.0)
253
253
  racc (~> 1.4)
254
+ nokogiri (1.13.4-x86_64-linux)
255
+ racc (~> 1.4)
254
256
  orm_adapter (0.5.0)
255
257
  pagy (5.10.1)
256
258
  activesupport
@@ -0,0 +1,2 @@
1
+ (()=>{var a={logger:self.console,WebSocket:self.WebSocket},i={log(...n){this.enabled&&(n.push(Date.now()),a.logger.log("[ActionCable]",...n))}},l=()=>new Date().getTime(),h=n=>(l()-n)/1e3,d=class{constructor(t){this.visibilityDidChange=this.visibilityDidChange.bind(this),this.connection=t,this.reconnectAttempts=0}start(){this.isRunning()||(this.startedAt=l(),delete this.stoppedAt,this.startPolling(),addEventListener("visibilitychange",this.visibilityDidChange),i.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`))}stop(){this.isRunning()&&(this.stoppedAt=l(),this.stopPolling(),removeEventListener("visibilitychange",this.visibilityDidChange),i.log("ConnectionMonitor stopped"))}isRunning(){return this.startedAt&&!this.stoppedAt}recordPing(){this.pingedAt=l()}recordConnect(){this.reconnectAttempts=0,this.recordPing(),delete this.disconnectedAt,i.log("ConnectionMonitor recorded connect")}recordDisconnect(){this.disconnectedAt=l(),i.log("ConnectionMonitor recorded disconnect")}startPolling(){this.stopPolling(),this.poll()}stopPolling(){clearTimeout(this.pollTimeout)}poll(){this.pollTimeout=setTimeout(()=>{this.reconnectIfStale(),this.poll()},this.getPollInterval())}getPollInterval(){let{staleThreshold:t,reconnectionBackoffRate:e}=this.constructor,s=Math.pow(1+e,Math.min(this.reconnectAttempts,10)),r=(this.reconnectAttempts===0?1:e)*Math.random();return t*1e3*s*(1+r)}reconnectIfStale(){this.connectionIsStale()&&(i.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${h(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`),this.reconnectAttempts++,this.disconnectedRecently()?i.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${h(this.disconnectedAt)} s`):(i.log("ConnectionMonitor reopening"),this.connection.reopen()))}get refreshedAt(){return this.pingedAt?this.pingedAt:this.startedAt}connectionIsStale(){return h(this.refreshedAt)>this.constructor.staleThreshold}disconnectedRecently(){return this.disconnectedAt&&h(this.disconnectedAt)<this.constructor.staleThreshold}visibilityDidChange(){document.visibilityState==="visible"&&setTimeout(()=>{(this.connectionIsStale()||!this.connection.isOpen())&&(i.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`),this.connection.reopen())},200)}};d.staleThreshold=6;d.reconnectionBackoffRate=.15;var m={message_types:{welcome:"welcome",disconnect:"disconnect",ping:"ping",confirmation:"confirm_subscription",rejection:"reject_subscription"},disconnect_reasons:{unauthorized:"unauthorized",invalid_request:"invalid_request",server_restart:"server_restart"},default_mount_path:"/cable",protocols:["actioncable-v1-json","actioncable-unsupported"]},{message_types:c,protocols:u}=m,w=u.slice(0,u.length-1),f=[].indexOf,p=class{constructor(t){this.open=this.open.bind(this),this.consumer=t,this.subscriptions=this.consumer.subscriptions,this.monitor=new d(this),this.disconnected=!0}send(t){return this.isOpen()?(this.webSocket.send(JSON.stringify(t)),!0):!1}open(){return this.isActive()?(i.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`),!1):(i.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${u}`),this.webSocket&&this.uninstallEventHandlers(),this.webSocket=new a.WebSocket(this.consumer.url,u),this.installEventHandlers(),this.monitor.start(),!0)}close({allowReconnect:t}={allowReconnect:!0}){if(t||this.monitor.stop(),this.isActive())return this.webSocket.close()}reopen(){if(i.log(`Reopening WebSocket, current state is ${this.getState()}`),this.isActive())try{return this.close()}catch(t){i.log("Failed to reopen WebSocket",t)}finally{i.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`),setTimeout(this.open,this.constructor.reopenDelay)}else return this.open()}getProtocol(){if(this.webSocket)return this.webSocket.protocol}isOpen(){return this.isState("open")}isActive(){return this.isState("open","connecting")}isProtocolSupported(){return f.call(w,this.getProtocol())>=0}isState(...t){return f.call(t,this.getState())>=0}getState(){if(this.webSocket){for(let t in a.WebSocket)if(a.WebSocket[t]===this.webSocket.readyState)return t.toLowerCase()}return null}installEventHandlers(){for(let t in this.events){let e=this.events[t].bind(this);this.webSocket[`on${t}`]=e}}uninstallEventHandlers(){for(let t in this.events)this.webSocket[`on${t}`]=function(){}}};p.reopenDelay=500;p.prototype.events={message(n){if(!this.isProtocolSupported())return;let{identifier:t,message:e,reason:s,reconnect:o,type:r}=JSON.parse(n.data);switch(r){case c.welcome:return this.monitor.recordConnect(),this.subscriptions.reload();case c.disconnect:return i.log(`Disconnecting. Reason: ${s}`),this.close({allowReconnect:o});case c.ping:return this.monitor.recordPing();case c.confirmation:return this.subscriptions.confirmSubscription(t),this.subscriptions.notify(t,"connected");case c.rejection:return this.subscriptions.reject(t);default:return this.subscriptions.notify(t,"received",e)}},open(){if(i.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`),this.disconnected=!1,!this.isProtocolSupported())return i.log("Protocol is unsupported. Stopping monitor and disconnecting."),this.close({allowReconnect:!1})},close(n){if(i.log("WebSocket onclose event"),!this.disconnected)return this.disconnected=!0,this.monitor.recordDisconnect(),this.subscriptions.notifyAll("disconnected",{willAttemptReconnect:this.monitor.isRunning()})},error(){i.log("WebSocket onerror event")}};var k=function(n,t){if(t!=null)for(let e in t){let s=t[e];n[e]=s}return n},b=class{constructor(t,e={},s){this.consumer=t,this.identifier=JSON.stringify(e),k(this,s)}perform(t,e={}){return e.action=t,this.send(e)}send(t){return this.consumer.send({command:"message",identifier:this.identifier,data:JSON.stringify(t)})}unsubscribe(){return this.consumer.subscriptions.remove(this)}},S=class{constructor(t){this.subscriptions=t,this.pendingSubscriptions=[]}guarantee(t){this.pendingSubscriptions.indexOf(t)==-1?(i.log(`SubscriptionGuarantor guaranteeing ${t.identifier}`),this.pendingSubscriptions.push(t)):i.log(`SubscriptionGuarantor already guaranteeing ${t.identifier}`),this.startGuaranteeing()}forget(t){i.log(`SubscriptionGuarantor forgetting ${t.identifier}`),this.pendingSubscriptions=this.pendingSubscriptions.filter(e=>e!==t)}startGuaranteeing(){this.stopGuaranteeing(),this.retrySubscribing()}stopGuaranteeing(){clearTimeout(this.retryTimeout)}retrySubscribing(){this.retryTimeout=setTimeout(()=>{this.subscriptions&&typeof this.subscriptions.subscribe=="function"&&this.pendingSubscriptions.map(t=>{i.log(`SubscriptionGuarantor resubscribing ${t.identifier}`),this.subscriptions.subscribe(t)})},500)}},v=class{constructor(t){this.consumer=t,this.guarantor=new S(this),this.subscriptions=[]}create(t,e){let s=t,o=typeof s=="object"?s:{channel:s},r=new b(this.consumer,o,e);return this.add(r)}add(t){return this.subscriptions.push(t),this.consumer.ensureActiveConnection(),this.notify(t,"initialized"),this.subscribe(t),t}remove(t){return this.forget(t),this.findAll(t.identifier).length||this.sendCommand(t,"unsubscribe"),t}reject(t){return this.findAll(t).map(e=>(this.forget(e),this.notify(e,"rejected"),e))}forget(t){return this.guarantor.forget(t),this.subscriptions=this.subscriptions.filter(e=>e!==t),t}findAll(t){return this.subscriptions.filter(e=>e.identifier===t)}reload(){return this.subscriptions.map(t=>this.subscribe(t))}notifyAll(t,...e){return this.subscriptions.map(s=>this.notify(s,t,...e))}notify(t,e,...s){let o;return typeof t=="string"?o=this.findAll(t):o=[t],o.map(r=>typeof r[e]=="function"?r[e](...s):void 0)}subscribe(t){this.sendCommand(t,"subscribe")&&this.guarantor.guarantee(t)}confirmSubscription(t){i.log(`Subscription confirmed ${t}`),this.findAll(t).map(e=>this.guarantor.forget(e))}sendCommand(t,e){let{identifier:s}=t;return this.consumer.send({command:e,identifier:s})}},y=class{constructor(t){this._url=t,this.subscriptions=new v(this),this.connection=new p(this)}get url(){return C(this._url)}send(t){return this.connection.send(t)}connect(){return this.connection.open()}disconnect(){return this.connection.close({allowReconnect:!1})}ensureActiveConnection(){if(!this.connection.isActive())return this.connection.open()}};function C(n){if(typeof n=="function"&&(n=n()),n&&!/^wss?:/i.test(n)){let t=document.createElement("a");return t.href=n,t.href=t.href,t.protocol=t.protocol.replace("http","ws"),t.href}else return n}function A(n=$("url")||m.default_mount_path){return new y(n)}function $(n){let t=document.head.querySelector(`meta[name='action-cable-${n}']`);if(t)return t.getAttribute("content")}var g;window.Avo.configuration.action_cable.enabled&&(g=A(),window.Avo.consumer=g);var P=g;})();
2
+ //# sourceMappingURL=action_cable.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js", "../../javascript/action_cable.js"],
4
+ "sourcesContent": ["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.isActive()) {\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", "import { createConsumer } from '@rails/actioncable'\n\n// eslint-disable-next-line import/no-mutable-exports\nlet consumer\n\nif (window.Avo.configuration.action_cable.enabled) {\n consumer = createConsumer()\n\n window.Avo.consumer = consumer\n}\n\nexport default consumer\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }