/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/meshblu-gotomeeting-osa@1.0.7/connector.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var Plugin=require("./index").Plugin,util=require("util"),EventEmitter=require("events").EventEmitter,meshblu=require("meshblu"),packageJSON=require("./package.json"),_=require("lodash"),bind=function(n,e){return function(){return n.apply(e,arguments)}},Connector=function(n){var e=this;if(e.config=n,e.createConnection=bind(e.createConnection,e),e.onReady=bind(e.onReady,e),e.onMessage=bind(e.onMessage,e),e.onConfig=bind(e.onConfig,e),e.run=bind(e.run,e),e.emitError=bind(e.emitError,e),process)return process.on("uncaughtException",(function(n){e.emitError(n),process.exit(1)})),e};util.inherits(Connector,EventEmitter),Connector.prototype.createConnection=function(){var n=this;n.conx=meshblu.createConnection({server:n.config.server,port:n.config.port,uuid:n.config.uuid,token:n.config.token}),n.conx.on("notReady",n.emitError),n.conx.on("error",n.emitError),n.conx.on("ready",n.onReady),n.conx.on("message",n.onMessage),n.conx.on("config",n.onConfig)},Connector.prototype.onConfig=function(n){var e=this;e.emit("config",n);try{e.plugin.onConfig.apply(e.plugin,arguments)}catch(n){e.emitError(n)}},Connector.prototype.onMessage=function(n){var e=this;e.emit("message.recieve",n);try{e.plugin.onMessage.apply(e.plugin,arguments)}catch(n){e.emitError(n)}},Connector.prototype.onReady=function(){var n=this;n.conx.whoami({uuid:n.config.uuid},(function(e){n.plugin.setOptions(e.options||{});var o=e.recentVersions||[],i=_.union(o,[packageJSON.version]);n.conx.update({uuid:n.config.uuid,token:n.config.token,messageSchema:n.plugin.messageSchema,optionsSchema:n.plugin.optionsSchema,options:n.plugin.options,initializing:!1,currentVersion:packageJSON.version,recentVersions:i})}))},Connector.prototype.run=function(){var n=this;n.plugin=new Plugin,n.createConnection(),n.plugin.on("data",(function(e){n.emit("data.send",e),n.conx.data(e)})),n.plugin.on("error",n.emitError),n.plugin.on("update",(function(e){n.emit("update",e),n.conx.update(e)})),n.plugin.on("message",(function(e){n.emit("message.send",e),n.conx.message(e)}))},Connector.prototype.emitError=function(n){this.emit("error",n)},module.exports=Connector;
//# sourceMappingURL=/sm/e87802a261444ba704f341c22d22a3a0f4b3256dbb72e74548b40dcf52428146.map