chat-engine
Version:
1 lines • 182 kB
JavaScript
!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define([],factory):"object"==typeof exports?exports.ChatEngineCore=factory():root.ChatEngineCore=factory()}("undefined"!=typeof self?self:this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.l=!0,module.exports}return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.d=function(exports,name,getter){__webpack_require__.o(exports,name)||Object.defineProperty(exports,name,{configurable:!1,enumerable:!0,get:getter})},__webpack_require__.n=function(module){var getter=module&&module.__esModule?function(){return module.default}:function(){return module};return __webpack_require__.d(getter,"a",getter),getter},__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)},__webpack_require__.p="",__webpack_require__(__webpack_require__.s=27)}([function(module,exports,__webpack_require__){"use strict";var bind=__webpack_require__(7),isBuffer=__webpack_require__(31),toString=Object.prototype.toString;function isArray(val){return"[object Array]"===toString.call(val)}function isObject(val){return null!==val&&"object"==typeof val}function isFunction(val){return"[object Function]"===toString.call(val)}function forEach(obj,fn){if(null!==obj&&void 0!==obj)if("object"==typeof obj||isArray(obj)||(obj=[obj]),isArray(obj))for(var i=0,l=obj.length;i<l;i++)fn.call(null,obj[i],i,obj);else for(var key in obj)Object.prototype.hasOwnProperty.call(obj,key)&&fn.call(null,obj[key],key,obj)}module.exports={isArray:isArray,isArrayBuffer:function(val){return"[object ArrayBuffer]"===toString.call(val)},isBuffer:isBuffer,isFormData:function(val){return"undefined"!=typeof FormData&&val instanceof FormData},isArrayBufferView:function(val){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(val):val&&val.buffer&&val.buffer instanceof ArrayBuffer},isString:function(val){return"string"==typeof val},isNumber:function(val){return"number"==typeof val},isObject:isObject,isUndefined:function(val){return void 0===val},isDate:function(val){return"[object Date]"===toString.call(val)},isFile:function(val){return"[object File]"===toString.call(val)},isBlob:function(val){return"[object Blob]"===toString.call(val)},isFunction:isFunction,isStream:function(val){return isObject(val)&&isFunction(val.pipe)},isURLSearchParams:function(val){return"undefined"!=typeof URLSearchParams&&val instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:forEach,merge:function merge(){var result={};function assignValue(val,key){"object"==typeof result[key]&&"object"==typeof val?result[key]=merge(result[key],val):result[key]=val}for(var i=0,l=arguments.length;i<l;i++)forEach(arguments[i],assignValue);return result},extend:function(a,b,thisArg){return forEach(b,function(val,key){a[key]=thisArg&&"function"==typeof val?bind(val,thisArg):val}),a},trim:function(str){return str.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();var waterfall=__webpack_require__(3),RootEmitter=__webpack_require__(13),augmentSender=__webpack_require__(69),Emitter=function(_RootEmitter){function Emitter(chatEngine){!function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,Emitter);var _this=function(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}(this,(Emitter.__proto__||Object.getPrototypeOf(Emitter)).call(this));return _this.chatEngine=chatEngine,_this.name="Emitter",_this.plugins=[],_this._dataset={},_this.plugin(augmentSender(chatEngine)),_this._emit=function(event){var data=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _this.chatEngine._emit(event,data,_this),_this.emitter.emit(event,data),_this},_this.on=function(event,cb){return _this._on(event,cb),_this},_this}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(Emitter,RootEmitter),_createClass(Emitter,[{key:"addChild",value:function(childName,childOb){this[childName]=childOb,this._dataset[childName]||(this._dataset[childName]={}),childOb.parent=this,childOb.get=this.get.bind(this._dataset[childName]),childOb.set=this.set.bind(this._dataset[childName])}},{key:"get",value:function(key){return this[key]}},{key:"set",value:function(key,value){this[key]&&!value?delete this[key]:this[key]=value}},{key:"plugin",value:function(module){return this.plugins.push(module),module.extends&&module.extends[this.name]&&(this.addChild(module.namespace,new module.extends[this.name]),this[module.namespace].ChatEngine=this.chatEngine,this[module.namespace].construct&&this[module.namespace].construct()),this}},{key:"bindProtoPlugins",value:function(){var _this2=this;this.chatEngine.protoPlugins[this.name]&&this.chatEngine.protoPlugins[this.name].forEach(function(module){_this2.plugin(module)})}},{key:"trigger",value:function(event){var _this3=this,payload=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},done=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};this.runPluginQueue("on",event,function(next){next(null,payload)},function(reject,pluginResponse){reject?done(reject):(_this3._emit(event,pluginResponse),done(null,event,pluginResponse))})}},{key:"runPluginQueue",value:function(location,event,first,last){var pluginQueue=[];pluginQueue.push(first),this.plugins.forEach(function(pluginItem){pluginItem.middleware&&pluginItem.middleware[location]&&(pluginItem.middleware[location][event]&&pluginQueue.push(pluginItem.middleware[location][event]),pluginItem.middleware[location]["*"]&&pluginQueue.push(pluginItem.middleware[location]["*"]))}),waterfall(pluginQueue,last)}},{key:"onConstructed",value:function(){this.bindProtoPlugins(),this.trigger(["$","created",this.name.toLowerCase()].join("."))}}]),Emitter}();module.exports=Emitter},function(module,exports,__webpack_require__){"use strict";(function(process){var utils=__webpack_require__(0),normalizeHeaderName=__webpack_require__(33),DEFAULT_CONTENT_TYPE={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(headers,value){!utils.isUndefined(headers)&&utils.isUndefined(headers["Content-Type"])&&(headers["Content-Type"]=value)}var adapter,defaults={adapter:("undefined"!=typeof XMLHttpRequest?adapter=__webpack_require__(9):void 0!==process&&(adapter=__webpack_require__(9)),adapter),transformRequest:[function(data,headers){return normalizeHeaderName(headers,"Content-Type"),utils.isFormData(data)||utils.isArrayBuffer(data)||utils.isBuffer(data)||utils.isStream(data)||utils.isFile(data)||utils.isBlob(data)?data:utils.isArrayBufferView(data)?data.buffer:utils.isURLSearchParams(data)?(setContentTypeIfUnset(headers,"application/x-www-form-urlencoded;charset=utf-8"),data.toString()):utils.isObject(data)?(setContentTypeIfUnset(headers,"application/json;charset=utf-8"),JSON.stringify(data)):data}],transformResponse:[function(data){if("string"==typeof data)try{data=JSON.parse(data)}catch(e){}return data}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(status){return status>=200&&status<300}};defaults.headers={common:{Accept:"application/json, text/plain, */*"}},utils.forEach(["delete","get","head"],function(method){defaults.headers[method]={}}),utils.forEach(["post","put","patch"],function(method){defaults.headers[method]=utils.merge(DEFAULT_CONTENT_TYPE)}),module.exports=defaults}).call(exports,__webpack_require__(8))},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(tasks,callback){if(callback=(0,_once2.default)(callback||_noop2.default),!(0,_isArray2.default)(tasks))return callback(new Error("First argument to waterfall must be an array of functions"));if(!tasks.length)return callback();var taskIndex=0;!function nextTask(args){if(taskIndex===tasks.length)return callback.apply(null,[null].concat(args));var taskCallback=(0,_onlyOnce2.default)((0,_baseRest2.default)(function(err,args){if(err)return callback.apply(null,[err].concat(args));nextTask(args)}));args.push(taskCallback),tasks[taskIndex++].apply(null,args)}([])};var _isArray2=_interopRequireDefault(__webpack_require__(14)),_noop2=_interopRequireDefault(__webpack_require__(15)),_once2=_interopRequireDefault(__webpack_require__(16)),_baseRest2=_interopRequireDefault(__webpack_require__(52)),_onlyOnce2=_interopRequireDefault(__webpack_require__(22));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}module.exports=exports.default},function(module,exports,__webpack_require__){var Symbol=__webpack_require__(19),getRawTag=__webpack_require__(62),objectToString=__webpack_require__(63),nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol?Symbol.toStringTag:void 0;module.exports=function(value){return null==value?void 0===value?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(value)?getRawTag(value):objectToString(value)}},function(module,exports,__webpack_require__){var freeGlobal=__webpack_require__(20),freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")();module.exports=root},function(module,exports){module.exports=function(value){return null!=value&&"object"==typeof value}},function(module,exports,__webpack_require__){"use strict";module.exports=function(fn,thisArg){return function(){for(var args=new Array(arguments.length),i=0;i<args.length;i++)args[i]=arguments[i];return fn.apply(thisArg,args)}}},function(module,exports){var cachedSetTimeout,cachedClearTimeout,process=module.exports={};function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(fun){if(cachedSetTimeout===setTimeout)return setTimeout(fun,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(fun,0);try{return cachedSetTimeout(fun,0)}catch(e){try{return cachedSetTimeout.call(null,fun,0)}catch(e){return cachedSetTimeout.call(this,fun,0)}}}!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}}();var currentQueue,queue=[],draining=!1,queueIndex=-1;function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var timeout=runTimeout(cleanUpNextTick);draining=!0;for(var len=queue.length;len;){for(currentQueue=queue,queue=[];++queueIndex<len;)currentQueue&¤tQueue[queueIndex].run();queueIndex=-1,len=queue.length}currentQueue=null,draining=!1,function(marker){if(cachedClearTimeout===clearTimeout)return clearTimeout(marker);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(marker);try{cachedClearTimeout(marker)}catch(e){try{return cachedClearTimeout.call(null,marker)}catch(e){return cachedClearTimeout.call(this,marker)}}}(timeout)}}function Item(fun,array){this.fun=fun,this.array=array}function noop(){}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)args[i-1]=arguments[i];queue.push(new Item(fun,args)),1!==queue.length||draining||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.prependListener=noop,process.prependOnceListener=noop,process.listeners=function(name){return[]},process.binding=function(name){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(dir){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}},function(module,exports,__webpack_require__){"use strict";(function(process){var utils=__webpack_require__(0),settle=__webpack_require__(34),buildURL=__webpack_require__(36),parseHeaders=__webpack_require__(37),isURLSameOrigin=__webpack_require__(38),createError=__webpack_require__(10),btoa="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||__webpack_require__(39);module.exports=function(config){return new Promise(function(resolve,reject){var requestData=config.data,requestHeaders=config.headers;utils.isFormData(requestData)&&delete requestHeaders["Content-Type"];var request=new XMLHttpRequest,loadEvent="onreadystatechange",xDomain=!1;if("test"===process.env.NODE_ENV||"undefined"==typeof window||!window.XDomainRequest||"withCredentials"in request||isURLSameOrigin(config.url)||(request=new window.XDomainRequest,loadEvent="onload",xDomain=!0,request.onprogress=function(){},request.ontimeout=function(){}),config.auth){var username=config.auth.username||"",password=config.auth.password||"";requestHeaders.Authorization="Basic "+btoa(username+":"+password)}if(request.open(config.method.toUpperCase(),buildURL(config.url,config.params,config.paramsSerializer),!0),request.timeout=config.timeout,request[loadEvent]=function(){if(request&&(4===request.readyState||xDomain)&&(0!==request.status||request.responseURL&&0===request.responseURL.indexOf("file:"))){var responseHeaders="getAllResponseHeaders"in request?parseHeaders(request.getAllResponseHeaders()):null,response={data:config.responseType&&"text"!==config.responseType?request.response:request.responseText,status:1223===request.status?204:request.status,statusText:1223===request.status?"No Content":request.statusText,headers:responseHeaders,config:config,request:request};settle(resolve,reject,response),request=null}},request.onerror=function(){reject(createError("Network Error",config,null,request)),request=null},request.ontimeout=function(){reject(createError("timeout of "+config.timeout+"ms exceeded",config,"ECONNABORTED",request)),request=null},utils.isStandardBrowserEnv()){var cookies=__webpack_require__(40),xsrfValue=(config.withCredentials||isURLSameOrigin(config.url))&&config.xsrfCookieName?cookies.read(config.xsrfCookieName):void 0;xsrfValue&&(requestHeaders[config.xsrfHeaderName]=xsrfValue)}if("setRequestHeader"in request&&utils.forEach(requestHeaders,function(val,key){void 0===requestData&&"content-type"===key.toLowerCase()?delete requestHeaders[key]:request.setRequestHeader(key,val)}),config.withCredentials&&(request.withCredentials=!0),config.responseType)try{request.responseType=config.responseType}catch(e){if("json"!==config.responseType)throw e}"function"==typeof config.onDownloadProgress&&request.addEventListener("progress",config.onDownloadProgress),"function"==typeof config.onUploadProgress&&request.upload&&request.upload.addEventListener("progress",config.onUploadProgress),config.cancelToken&&config.cancelToken.promise.then(function(cancel){request&&(request.abort(),reject(cancel),request=null)}),void 0===requestData&&(requestData=null),request.send(requestData)})}}).call(exports,__webpack_require__(8))},function(module,exports,__webpack_require__){"use strict";var enhanceError=__webpack_require__(35);module.exports=function(message,config,code,request,response){var error=new Error(message);return enhanceError(error,config,code,request,response)}},function(module,exports,__webpack_require__){"use strict";module.exports=function(value){return!(!value||!value.__CANCEL__)}},function(module,exports,__webpack_require__){"use strict";function Cancel(message){this.message=message}Cancel.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},Cancel.prototype.__CANCEL__=!0,module.exports=Cancel},function(module,exports,__webpack_require__){"use strict";var EventEmitter2=__webpack_require__(50).EventEmitter2;module.exports=function RootEmitter(){var _this=this;!function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,RootEmitter),this.events={},this.name="RootEmitter",this.emitter=new EventEmitter2({wildcard:!0,newListener:!0,maxListeners:50,verboseMemoryLeak:!0}),this._emit=this.emitter.emit.bind(this.emitter),this._on=this.emitter.on.bind(this.emitter),this.on=function(event,callback){return _this.emitter.on(event,callback),_this},this.off=function(event,callback){return _this.emitter.off(event,callback),_this},this.onAny=function(event,callback){return _this.emitter.onAny(event,callback),_this},this.once=function(event,callback){return _this.emitter.once(event,callback),_this}}},function(module,exports){var isArray=Array.isArray;module.exports=isArray},function(module,exports){module.exports=function(){}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(fn){return function(){if(null!==fn){var callFn=fn;fn=null,callFn.apply(this,arguments)}}},module.exports=exports.default},function(module,exports){module.exports=function(value){return value}},function(module,exports,__webpack_require__){var baseGetTag=__webpack_require__(4),isObject=__webpack_require__(21),asyncTag="[object AsyncFunction]",funcTag="[object Function]",genTag="[object GeneratorFunction]",proxyTag="[object Proxy]";module.exports=function(value){if(!isObject(value))return!1;var tag=baseGetTag(value);return tag==funcTag||tag==genTag||tag==asyncTag||tag==proxyTag}},function(module,exports,__webpack_require__){var Symbol=__webpack_require__(5).Symbol;module.exports=Symbol},function(module,exports,__webpack_require__){(function(global){var freeGlobal="object"==typeof global&&global&&global.Object===Object&&global;module.exports=freeGlobal}).call(exports,__webpack_require__(61))},function(module,exports){module.exports=function(value){var type=typeof value;return null!=value&&("object"==type||"function"==type)}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=function(fn){return function(){if(null===fn)throw new Error("Callback was already called.");var callFn=fn;fn=null,callFn.apply(this,arguments)}},module.exports=exports.default},function(module,exports,__webpack_require__){var isFunction=__webpack_require__(18),isLength=__webpack_require__(24);module.exports=function(value){return null!=value&&isLength(value.length)&&!isFunction(value)}},function(module,exports){var MAX_SAFE_INTEGER=9007199254740991;module.exports=function(value){return"number"==typeof value&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}},function(module,exports){module.exports=function(module){return module.webpackPolyfill||(module.deprecate=function(){},module.paths=[],module.children||(module.children=[]),Object.defineProperty(module,"loaded",{enumerable:!0,get:function(){return module.l}}),Object.defineProperty(module,"id",{enumerable:!0,get:function(){return module.i}}),module.webpackPolyfill=1),module}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _possibleConstructorReturn(self,call){if(!self)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!call||"object"!=typeof call&&"function"!=typeof call?self:call}var Emitter=__webpack_require__(1),User=function(_Emitter){function User(chatEngine,uuid){var state=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,User);var _this=_possibleConstructorReturn(this,(User.__proto__||Object.getPrototypeOf(User)).call(this));return _this.chatEngine=chatEngine,_this.name="User",_this.uuid=uuid.toString(),_this.state=state,_this._stateSet=!1,_this.feed=new _this.chatEngine.Chat([chatEngine.global.channel,"user",uuid,"read.","feed"].join("#"),!1,"Me"===_this.constructor.name,{},"system"),_this.direct=new _this.chatEngine.Chat([chatEngine.global.channel,"user",uuid,"write.","direct"].join("#"),!1,"Me"===_this.constructor.name,{},"system"),chatEngine.users[uuid]||(chatEngine.users[uuid]=_this),Object.keys(state).length&&_this.assign(state),_possibleConstructorReturn(_this,_this)}return function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass)}(User,Emitter),_createClass(User,[{key:"assign",value:function(state){var oldState=this.state||{};this.state=Object.assign(oldState,state),this._stateSet=!0}},{key:"update",value:function(state){this.assign(state)}},{key:"_getStoredState",value:function(callback){var _this2=this;this._stateSet?callback(this.state):this.chatEngine.request("get","user_state",{user:this.uuid}).then(function(res){_this2.assign(res.data),callback(_this2.state)}).catch(function(err){_this2.chatEngine.throwError(_this2,"trigger","getState",err)})}}]),User}();module.exports=User},function(module,exports,__webpack_require__){"use strict";var init=__webpack_require__(28),ChatEngineCore={plugin:{},create:function(pnConfig){var ceConfig=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return ceConfig.globalChannel?ceConfig.globalChannel=ceConfig.globalChannel.toString():ceConfig.globalChannel="chat-engine",void 0===ceConfig.throwErrors&&(ceConfig.throwErrors=!0),void 0===ceConfig.enableSync&&(ceConfig.enableSync=!1),void 0===ceConfig.enableMeta&&(ceConfig.enableMeta=!1),ceConfig.endpoint=ceConfig.endpoint||"https://pubsub.pubnub.com/v1/blocks/sub-key/"+pnConfig.subscribeKey+"/chat-engine-server",pnConfig.heartbeatInterval=pnConfig.heartbeatInterval||0,init(ceConfig,pnConfig)}};module.exports=ChatEngineCore,module.exports.ChatEngineCore=ChatEngineCore},function(module,exports,__webpack_require__){"use strict";var axios=__webpack_require__(29),PubNub=__webpack_require__(48),pack=__webpack_require__(49),RootEmitter=__webpack_require__(13),Chat=__webpack_require__(51),Me=__webpack_require__(99),User=__webpack_require__(26),waterfall=__webpack_require__(3);module.exports=function(){var ceConfig=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},pnConfig=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},ChatEngine=new RootEmitter;if(ChatEngine.ceConfig=ceConfig,ChatEngine.pnConfig=pnConfig,ChatEngine.users={},ChatEngine.chats={},ChatEngine.global=!1,ChatEngine.me=!1,ChatEngine.pubnub=!1,ChatEngine.ready=!1,ChatEngine.package=pack,ChatEngine.throwError=function(self,cb,key,ceError){var payload=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(ceConfig.throwErrors)throw console.error(payload),ceError;payload.ceError=ceError.toString(),self[cb](["$","error",key].join("."),payload)},ceConfig.debug&&ChatEngine.onAny(function(event,payload){console.info("debug:",event,payload)}),ceConfig.profile){var countObject={};ChatEngine.onAny(function(event){countObject["event: "+event]=countObject[event]||0,countObject["event: "+event]+=1}),setInterval(function(){countObject.chats=Object.keys(ChatEngine.chats).length,countObject.users=Object.keys(ChatEngine.users).length,console.table(countObject)},3e3)}return ChatEngine.protoPlugins={},ChatEngine.proto=function(className,plugin){ChatEngine.protoPlugins[className]=ChatEngine.protoPlugins[className]||[],ChatEngine.protoPlugins[className].push(plugin)},ChatEngine.request=function(method,route){var inputBody=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},inputParams=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},body={uuid:ChatEngine.pnConfig.uuid,global:ceConfig.globalChannel,authKey:ChatEngine.pnConfig.authKey},params={route:route};return body=Object.assign(body,inputBody),params=Object.assign(params,inputParams),"get"===method||"delete"===method?(params=Object.assign(params,body),axios[method](ceConfig.endpoint,{params:params})):axios[method](ceConfig.endpoint,body,{params:params})},ChatEngine.parseChannel=function(channel){var info=channel.split("#");return{global:info[0],type:info[1],private:"private."===info[2]}},ChatEngine.augmentChannel=function(){var original=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(new Date).getTime(),isPrivate=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],channel=original.toString(),chanPrivString="public.";return isPrivate&&(chanPrivString="private."),-1===channel.indexOf(ChatEngine.ceConfig.globalChannel)&&(channel=[ChatEngine.ceConfig.globalChannel,"chat",chanPrivString,channel].join("#")),channel},ChatEngine.handshake=function(complete){waterfall([function(next){ChatEngine.request("post","bootstrap").then(function(){next(null)}).catch(next)},function(next){ChatEngine.request("post","user_read").then(function(){next(null)}).catch(next)},function(next){ChatEngine.request("post","user_write").then(function(){next(null)}).catch(next)},function(next){ChatEngine.request("post","group").then(function(){next()}).catch(next)}],function(error){error?ChatEngine.throwError(ChatEngine,"_emit","auth",new Error("There was a problem logging into the auth server ("+ceConfig.endpoint+")."+error&&error.response&&error.response.data),{error:error}):complete()})},ChatEngine.listenToPubNub=function(){ChatEngine.pubnub.addListener({message:function(m){m.message.timetoken=m.timetoken,ChatEngine.chats[m.channel]&&ChatEngine.chats[m.channel].trigger(m.message.event,m.message)},presence:function(payload){ChatEngine.chats[payload.channel]&&ChatEngine.chats[payload.channel].onPresence(payload)},status:function(statusEvent){var eventName=["$","network",{PNNetworkUpCategory:"up.online",PNNetworkDownCategory:"down.offline",PNNetworkIssuesCategory:"down.issue",PNReconnectedCategory:"up.reconnected",PNConnectedCategory:"up.connected",PNAccessDeniedCategory:"down.denied",PNMalformedResponseCategory:"down.malformed",PNBadRequestCategory:"down.badrequest",PNDecryptionErrorCategory:"down.decryption",PNTimeoutCategory:"down.timeout"}[statusEvent.category]||"other"].join(".");ChatEngine._emit(eventName,statusEvent)}})},ChatEngine.subscribeToPubNub=function(){var chanGroups=[ceConfig.globalChannel+"#"+ChatEngine.me.uuid+"#rooms",ceConfig.globalChannel+"#"+ChatEngine.me.uuid+"#system",ceConfig.globalChannel+"#"+ChatEngine.me.uuid+"#custom"];ChatEngine.pubnub.subscribe({channelGroups:chanGroups,withPresence:!0})},ChatEngine.firstConnect=function(state){ChatEngine.pubnub=new PubNub(ChatEngine.pnConfig),ChatEngine.global=new ChatEngine.Chat(ceConfig.globalChannel,!1,!0,{},"system"),ChatEngine.global.once("$.connected",function(){ChatEngine.me=new Me(ChatEngine,ChatEngine.pnConfig.uuid),ChatEngine.me.onConstructed(),ChatEngine.ceConfig.enableSync&&ChatEngine.me.session.subscribe(),ChatEngine.me.update(state,function(){ChatEngine._emit("$.ready",{me:ChatEngine.me}),ChatEngine.ready=!0,ChatEngine.listenToPubNub(),ChatEngine.subscribeToPubNub(),ChatEngine.global.getUserUpdates(),ChatEngine.ceConfig.enableSync&&ChatEngine.me.session.restore()})})},ChatEngine.disconnect=function(){ChatEngine.pubnub.unsubscribeAll(),Object.keys(ChatEngine.chats).forEach(function(key){ChatEngine.chats[key].sleep()})},ChatEngine.reconnect=function(){ChatEngine.handshake(function(){Object.keys(ChatEngine.chats).forEach(function(key){ChatEngine.chats[key].wake()}),ChatEngine.subscribeToPubNub()})},ChatEngine.setAuth=function(){var authKey=arguments.length>0&&void 0!==arguments[0]?arguments[0]:PubNub.generateUUID();ChatEngine.pnConfig.authKey=authKey,ChatEngine.pubnub.setAuthKey(authKey)},ChatEngine.reauthorize=function(){var authKey=arguments.length>0&&void 0!==arguments[0]?arguments[0]:PubNub.generateUUID();ChatEngine.global.once("$.disconnected",function(){ChatEngine.setAuth(authKey),ChatEngine.reconnect()}),ChatEngine.disconnect()},ChatEngine.connect=function(uuid){var state=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},authKey=arguments.length>2&&void 0!==arguments[2]?arguments[2]:PubNub.generateUUID();ChatEngine.pnConfig.uuid=uuid,ChatEngine.pnConfig.authKey=authKey,ChatEngine.handshake(function(){ChatEngine.firstConnect(state)})},ChatEngine.destroy=function(){Object.keys(ChatEngine.chats).forEach(function(chat){ChatEngine.chats[chat].emitter.removeAllListeners()}),Object.keys(ChatEngine.users).forEach(function(user){ChatEngine.users[user].emitter.removeAllListeners()}),ChatEngine.emitter.removeAllListeners()},ChatEngine.Chat=function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++)args[_key]=arguments[_key];var internalChannel=ChatEngine.augmentChannel(args[0],args[1]);if(ChatEngine.chats[internalChannel])return ChatEngine.chats[internalChannel];var newChat=new(Function.prototype.bind.apply(Chat,[null].concat([ChatEngine],args)));return newChat.onConstructed(),newChat},ChatEngine.User=function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++)args[_key2]=arguments[_key2];if(ChatEngine.me.uuid===args[0])return ChatEngine.me;if(ChatEngine.users[args[0]])return ChatEngine.users[args[0]];var newUser=new(Function.prototype.bind.apply(User,[null].concat([ChatEngine],args)));return newUser.onConstructed(),newUser},ChatEngine}},function(module,exports,__webpack_require__){module.exports=__webpack_require__(30)},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0),bind=__webpack_require__(7),Axios=__webpack_require__(32),defaults=__webpack_require__(2);function createInstance(defaultConfig){var context=new Axios(defaultConfig),instance=bind(Axios.prototype.request,context);return utils.extend(instance,Axios.prototype,context),utils.extend(instance,context),instance}var axios=createInstance(defaults);axios.Axios=Axios,axios.create=function(instanceConfig){return createInstance(utils.merge(defaults,instanceConfig))},axios.Cancel=__webpack_require__(12),axios.CancelToken=__webpack_require__(46),axios.isCancel=__webpack_require__(11),axios.all=function(promises){return Promise.all(promises)},axios.spread=__webpack_require__(47),module.exports=axios,module.exports.default=axios},function(module,exports){function isBuffer(obj){return!!obj.constructor&&"function"==typeof obj.constructor.isBuffer&&obj.constructor.isBuffer(obj)}module.exports=function(obj){return null!=obj&&(isBuffer(obj)||function(obj){return"function"==typeof obj.readFloatLE&&"function"==typeof obj.slice&&isBuffer(obj.slice(0,0))}(obj)||!!obj._isBuffer)}},function(module,exports,__webpack_require__){"use strict";var defaults=__webpack_require__(2),utils=__webpack_require__(0),InterceptorManager=__webpack_require__(41),dispatchRequest=__webpack_require__(42),isAbsoluteURL=__webpack_require__(44),combineURLs=__webpack_require__(45);function Axios(instanceConfig){this.defaults=instanceConfig,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}Axios.prototype.request=function(config){"string"==typeof config&&(config=utils.merge({url:arguments[0]},arguments[1])),(config=utils.merge(defaults,this.defaults,{method:"get"},config)).method=config.method.toLowerCase(),config.baseURL&&!isAbsoluteURL(config.url)&&(config.url=combineURLs(config.baseURL,config.url));var chain=[dispatchRequest,void 0],promise=Promise.resolve(config);for(this.interceptors.request.forEach(function(interceptor){chain.unshift(interceptor.fulfilled,interceptor.rejected)}),this.interceptors.response.forEach(function(interceptor){chain.push(interceptor.fulfilled,interceptor.rejected)});chain.length;)promise=promise.then(chain.shift(),chain.shift());return promise},utils.forEach(["delete","get","head","options"],function(method){Axios.prototype[method]=function(url,config){return this.request(utils.merge(config||{},{method:method,url:url}))}}),utils.forEach(["post","put","patch"],function(method){Axios.prototype[method]=function(url,data,config){return this.request(utils.merge(config||{},{method:method,url:url,data:data}))}}),module.exports=Axios},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);module.exports=function(headers,normalizedName){utils.forEach(headers,function(value,name){name!==normalizedName&&name.toUpperCase()===normalizedName.toUpperCase()&&(headers[normalizedName]=value,delete headers[name])})}},function(module,exports,__webpack_require__){"use strict";var createError=__webpack_require__(10);module.exports=function(resolve,reject,response){var validateStatus=response.config.validateStatus;response.status&&validateStatus&&!validateStatus(response.status)?reject(createError("Request failed with status code "+response.status,response.config,null,response.request,response)):resolve(response)}},function(module,exports,__webpack_require__){"use strict";module.exports=function(error,config,code,request,response){return error.config=config,code&&(error.code=code),error.request=request,error.response=response,error}},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);function encode(val){return encodeURIComponent(val).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}module.exports=function(url,params,paramsSerializer){if(!params)return url;var serializedParams;if(paramsSerializer)serializedParams=paramsSerializer(params);else if(utils.isURLSearchParams(params))serializedParams=params.toString();else{var parts=[];utils.forEach(params,function(val,key){null!==val&&void 0!==val&&(utils.isArray(val)&&(key+="[]"),utils.isArray(val)||(val=[val]),utils.forEach(val,function(v){utils.isDate(v)?v=v.toISOString():utils.isObject(v)&&(v=JSON.stringify(v)),parts.push(encode(key)+"="+encode(v))}))}),serializedParams=parts.join("&")}return serializedParams&&(url+=(-1===url.indexOf("?")?"?":"&")+serializedParams),url}},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);module.exports=function(headers){var key,val,i,parsed={};return headers?(utils.forEach(headers.split("\n"),function(line){i=line.indexOf(":"),key=utils.trim(line.substr(0,i)).toLowerCase(),val=utils.trim(line.substr(i+1)),key&&(parsed[key]=parsed[key]?parsed[key]+", "+val:val)}),parsed):parsed}},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);module.exports=utils.isStandardBrowserEnv()?function(){var originURL,msie=/(msie|trident)/i.test(navigator.userAgent),urlParsingNode=document.createElement("a");function resolveURL(url){var href=url;return msie&&(urlParsingNode.setAttribute("href",href),href=urlParsingNode.href),urlParsingNode.setAttribute("href",href),{href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,""):"",host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,""):"",hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,""):"",hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:"/"===urlParsingNode.pathname.charAt(0)?urlParsingNode.pathname:"/"+urlParsingNode.pathname}}return originURL=resolveURL(window.location.href),function(requestURL){var parsed=utils.isString(requestURL)?resolveURL(requestURL):requestURL;return parsed.protocol===originURL.protocol&&parsed.host===originURL.host}}():function(){return!0}},function(module,exports,__webpack_require__){"use strict";var chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function E(){this.message="String contains an invalid character"}E.prototype=new Error,E.prototype.code=5,E.prototype.name="InvalidCharacterError",module.exports=function(input){for(var block,charCode,str=String(input),output="",idx=0,map=chars;str.charAt(0|idx)||(map="=",idx%1);output+=map.charAt(63&block>>8-idx%1*8)){if((charCode=str.charCodeAt(idx+=.75))>255)throw new E;block=block<<8|charCode}return output}},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);module.exports=utils.isStandardBrowserEnv()?{write:function(name,value,expires,path,domain,secure){var cookie=[];cookie.push(name+"="+encodeURIComponent(value)),utils.isNumber(expires)&&cookie.push("expires="+new Date(expires).toGMTString()),utils.isString(path)&&cookie.push("path="+path),utils.isString(domain)&&cookie.push("domain="+domain),!0===secure&&cookie.push("secure"),document.cookie=cookie.join("; ")},read:function(name){var match=document.cookie.match(new RegExp("(^|;\\s*)("+name+")=([^;]*)"));return match?decodeURIComponent(match[3]):null},remove:function(name){this.write(name,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function(fulfilled,rejected){return this.handlers.push({fulfilled:fulfilled,rejected:rejected}),this.handlers.length-1},InterceptorManager.prototype.eject=function(id){this.handlers[id]&&(this.handlers[id]=null)},InterceptorManager.prototype.forEach=function(fn){utils.forEach(this.handlers,function(h){null!==h&&fn(h)})},module.exports=InterceptorManager},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0),transformData=__webpack_require__(43),isCancel=__webpack_require__(11),defaults=__webpack_require__(2);function throwIfCancellationRequested(config){config.cancelToken&&config.cancelToken.throwIfRequested()}module.exports=function(config){return throwIfCancellationRequested(config),config.headers=config.headers||{},config.data=transformData(config.data,config.headers,config.transformRequest),config.headers=utils.merge(config.headers.common||{},config.headers[config.method]||{},config.headers||{}),utils.forEach(["delete","get","head","post","put","patch","common"],function(method){delete config.headers[method]}),(config.adapter||defaults.adapter)(config).then(function(response){return throwIfCancellationRequested(config),response.data=transformData(response.data,response.headers,config.transformResponse),response},function(reason){return isCancel(reason)||(throwIfCancellationRequested(config),reason&&reason.response&&(reason.response.data=transformData(reason.response.data,reason.response.headers,config.transformResponse))),Promise.reject(reason)})}},function(module,exports,__webpack_require__){"use strict";var utils=__webpack_require__(0);module.exports=function(data,headers,fns){return utils.forEach(fns,function(fn){data=fn(data,headers)}),data}},function(module,exports,__webpack_require__){"use strict";module.exports=function(url){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url)}},function(module,exports,__webpack_require__){"use strict";module.exports=function(baseURL,relativeURL){return relativeURL?baseURL.replace(/\/+$/,"")+"/"+relativeURL.replace(/^\/+/,""):baseURL}},function(module,exports,__webpack_require__){"use strict";var Cancel=__webpack_require__(12);function CancelToken(executor){if("function"!=typeof executor)throw new TypeError("executor must be a function.");var resolvePromise;this.promise=new Promise(function(resolve){resolvePromise=resolve});var token=this;executor(function(message){token.reason||(token.reason=new Cancel(message),resolvePromise(token.reason))})}CancelToken.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},CancelToken.source=function(){var cancel;return{token:new CancelToken(function(c){cancel=c}),cancel:cancel}},module.exports=CancelToken},function(module,exports,__webpack_require__){"use strict";module.exports=function(callback){return function(arr){return callback.apply(null,arr)}}},function(module,exports,__webpack_require__){var t;t=function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e){if(!navigator||!navigator.sendBeacon)return!1;navigator.sendBeacon(e)}Object.defineProperty(t,"__esModule",{value:!0});var c=r(n(1)),h=r(n(39)),p=r(n(40)),d=n(41),y=(n(5),function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=e.listenToBrowserNetworkEvents,r=void 0===n||n;e.db=p.default,e.sdkFamily="Web",e.networking=new h.default({del:d.del,get:d.get,post:d.post,sendBeacon:a});var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r&&(window.addEventListener("offline",function(){o.networkDownDetected()}),window.addEventListener("online",function(){o.networkUpDetected()})),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,c.default),t}());t.default=y,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=i(n(2)),l=i(n(6)),f=i(n(8)),d=i(n(9)),g=i(n(16)),v=r(n(17)),m=r(n(18)),P=r(n(19)),S=r(n(20)),T=r(n(21)),M=r(n(22)),x=r(n(23)),R=r(n(24)),D=r(n(25)),j=r(n(26)),G=r(n(27)),H=r(n(28)),L=r(n(29)),F=r(n(30)),X=r(n(31)),$=r(n(32)),V=r(n(33)),Y=r(n(34)),ee=r(n(35)),ne=r(n(36)),ie=r(n(37)),oe=r(n(12)),ue=r(n(38)),le=i(n(13)),fe=i(n(10)),de=i((n(5),n(3))),ye=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var r=t.db,i=t.networking,o=this._config=new u.default({setup:t,db:r}),a=new l.default({config:o});i.init(o);var c={config:o,networking:i,crypto:a},h=g.default.bind(this,c,oe),p=g.default.bind(this,c,j),y=g.default.bind(this,c,H),b=g.default.bind(this,c,F),_=g.default.bind(this,c,ue),k=this._listenerManager=new d.default,O=new f.default({timeEndpoint:h,leaveEndpoint:p,heartbeatEndpoint:y,setStateEndpoint:b,subscribeEndpoint:_,crypto:c.crypto,config:c.config,listenerManager:k});this.addListener=k.addListener.bind(k),this.removeListener=k.removeListener.bind(k),this.removeAllListeners=k.removeAllListeners.bind(k),this.channelGroups={listGroups:g.default.bind(this,c,S),listChannels:g.default.bind(this,c,T),addChannels:g.default.bind(this,c,v),removeChannels:g.default.bind(this,c,m),deleteGroup:g.default.bind(this,c,P)},this.push={addChannels:g.default.bind(this,c,M),removeChannels:g.default.bind(this,c,x),deleteDevice:g.default.bind(this,c,D),listChannels:g.default.bind(this,c,R)},this.hereNow=g.default.bind(this,c,X),this.whereNow=g.default.bind(this,c,G),this.getState=g.default.bind(this,c,L),this.setState=O.adaptStateChange.bind(O),this.grant=g.default.bind(this,c,V),this.audit=g.default.bind(this,c,$),this.publish=g.default.bind(this,c,Y),this.fire=function(e,t){return e.replicate=!1,e.storeInHistory=!1,n.publish(e,t)},this.history=g.default.bind(this,c,ee),this.deleteMessages=g.default.bind(this,c,ne),this.fetchMessages=g.default.bind(this,c,ie),this.time=h,this.subscribe=O.adaptSubscribeChange.bind(O),this.presence=O.adaptPresenceChange.bind(O),this.unsubscribe=O.adaptUnsubscribeChange.bind(O),this.disconnect=O.disconnect.bind(O),this.reconnect=O.reconnect.bind(O),this.destroy=function(e){O.unsubscribeAll(e),O.disconnect()},this.stop=this.destroy,this.unsubscribeAll=O.unsubscribeAll.bind(O),this.getSubscribedChannels=O.getSubscribedChannels.bind(O),this.getSubscribedChannelGroups=O.getSubscribedChannelGroups.bind(O),this.encrypt=a.encrypt.bind(a),this.decrypt=a.decrypt.bind(a),this.getAuthKey=c.config.getAuthKey.bind(c.config),this.setAuthKey=c.config.setAuthKey.bind(c.config),this.setCipherKey=c.config.setCipherKey.bind(c.config),this.getUUID=c.config.getUUID.bind(c.config),this.setUUID=c.config.setUUID.bind(c.config),this.getFilterExpression=c.config.getFilterExpression.bind(c.config),this.setFilterExpression=c.config.setFilterExpression.bind(c.config),this.setHeartbeatInterval=c.config.setHeartbeatInterval.bind(c.config),i.hasModule("proxy")&&(this.setProxy=function(e){c.config.setProxy(e),n.reconnect()})}return o(e,[{key:"getVersion",value:function(){return this._config.getVersion()}},{key:"networkDownDetected",value:function(){this._listenerManager.announceNetworkDown(),this._config.restore?this.disconnect():this.destroy(!0)}},{key:"networkUpDetected",value:function(){this._listenerManager.announceNetworkUp(),this.reconnect()}}],[{key:"generateUUID",value:function(){return de.default.createUUID()}}]),e}();ye.OPERATIONS=le.default,ye.CATEGORIES=fe.default,t.default=ye,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=function(e){return e&&e.__esModule?e:{default:e}}(n(3)),a=(n(5),function(){function e(t){var n=t.setup,i=t.db;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this._db=i,this.instanceId="pn-"+o.default.createUUID(),this.secretKey=n.secretKey||n.secret_key,this.subscribeKey=n.subscribeKey||n.subscribe_key,this.publishKey=n.publishKey||n.publish_key,this.sdkName=n.sdkName,this.sdkFamily=n.sdkFamily,this.partnerId=n.partnerId,this.setAuthKey(n.authKey),this.setCipherKey(n.cipherKey),this.setFilterExpression(n.filterExpression),this.origin=n.origin||"pubsub.pndsn.com",this.secure=n.ssl||!1,this.restore=n.restore||!1,this.proxy=n.proxy,this.keepAlive=n.keepAlive,this.keepAliveSettings=n.keepAliveSettings,this.autoNetworkDetection=n.autoNetworkDetection||!1,this.dedupeOnSubscribe=n.dedupeOnSubscribe||!1,this.maximumCacheSize=n.maximumCacheSize||100,this.customEncrypt=n.customEncrypt,this.customDecrypt=n.customDecrypt,"undefined"!=typeof location&&"https:"===location.protocol&&(this.secure=!0),this.logVerbosity=n.logVerbosity||!1,this.suppressLeaveEvents=n.suppressLeaveEvents||!1,this.announceFailedHeartbeats=n.announceFailedHeartbeats||!0,this.announceSuccessfulHeartbeats=n.announceSuccessfulHeartbeats||!1,this.useInstanceId=n.useInstanceId||!1,this.useRequestId=n.useRequestId||!1,this.requestMessageCountThreshold=n.requestMessageCountThreshold,this.setTransactionTimeout(n.transactionalRequestTimeout||15e3),this.setSubscribeTimeout(n.subscribeRequestTimeout||31e4),this.setSendBeaconConfig(n.useSendBeacon||!0),this.setPresenceTimeout(n.presenceTimeout||300),null!=n.heartbeatInterval&&this.setHeartbeatInterval(n.heartbeatInterval),this.setUUID(this._decideUUID(n.uuid))}return i(e,[{key:"getAuthKey",value:function(){return this.authKey}},{key:"setAuthKey",value:function(e){return this.authKey=e,this}},{key:"setCipherKey",value:function(e){return this.cipherKey=