const ScopeLock=require('scope-lock'),ReadyResource=require('ready-resource'),b4a=require('b4a'),{
KeetMethod}
=require('../base'),ChangeEvents={
'RoomChanged':0x1,'RoomChatChanged':0x2,'RoomDigestChanged':0x3,'RoomConfigChanged':0x4,'RoomMemberChanged':0x5,'RoomDeviceChanged':0x6,'RoomReactionsChanged':0x7,'RoomStatsChanged':0x8,'RoomJoinRequestsChanged':0x9,'PairingChanged':0xa},WantEvents={
'Identity':0x64,'Pairing':0x65,'Lobby':0x66,'Chat':0x67,'Reactions':0x68,'Members':0x69},UnwantEvents={
'Identity':0xc8,'Pairing':0xc9,'Lobby':0xca,'Chat':0xcb,'Reactions':0xcc,'Members':0xcd}
;
class Tracker{
constructor(_0x234e15){
_0x4ad2ca={
_0x4b4eea:0x28a},_0x53dca7={
_0x16e6e2:0x221}
;
this.coreAPI=_0x234e15,this.keet=_0x234e15.keet;
this.view=_0x234e15.view,this.rpc=_0x234e15.rpc,this.active=![],this._queue=[];
this._lock=new ScopeLock({'debounce':!![]});
}
._isTracking(_0x1a90cb,_0x3d1ab8){
return![];
}
async._process(_0x55b5d9,_0x3675f9){
}
async._bump(){
_0x4706a0={
_0x3a689d:0x1bb},_0x52376d={
_0x5626df:0xaa,_0x46cb22:0x1f1},_0x1654e2=await this._lock.lock();
if(!_0x1654e2)return;
try{
const _0x35d505=[...this._queue];
this._queue=[];
for(const {type:_0x1e5a66,event:_0x2fb0e1}of _0x35d505){
await this._process(_0x1e5a66,_0x2fb0e1);
}
}finally{
this._lock.unlock();
}
}
async.bump(){
_0x10ec7b={
_0xd06a3c:0x1d8,_0x488b23:0xdf},_0x3baddc={
_0x4180fc:0x17a,_0x271cfe:0xa9,_0x59a504:0xc5}
;
try{
await this._bump();
}catch(_0x5d8ae9){
this.keet.onerror(_0x5d8ae9);
}
}
.dispatch(_0x4336a4,_0x535efe){
_0x2e68c6={
_0x3fa179:0xc7,_0x12807e:0x2f2},_0x44136a={
_0x3d787a:0xe0,_0x17d291:0x5f9}
;
const _0x4f287d=this._isTracking(_0x4336a4,_0x535efe);
if(!_0x4f287d)return;
this._queue.push({'type':_0x4336a4,'event':_0x535efe});
this.bump();
}
}
class IdentityTracker extends Tracker{
._isTracking(_0x362e27,_0x46ca38){
_0x25c1bf={
_0x505445:0x2a,_0x41fa60:0x1d8,_0x26311d:0x3cf},_0x3df34b={
_0x5cd3d5:0x1a3,_0x3a2195:0x1e3,_0xd2ac57:0x3e8}
;
switch(_0x362e27){
case WantEvents.Identity:return!![];
case UnwantEvents.Identity:return!![];
case ChangeEvents.RoomMemberChanged:return this.active&&_0x46ca38.roomInfo.status.isPrivateProfile;
case ChangeEvents.RoomDeviceChanged:return this.active&&_0x46ca38.roomInfo.status.isPrivateProfile;
default:return![];
}
}
async._process(_0x49478c,_0x300c00){
_0x5b9a9b={
_0x2bbd82:0x16f,_0x5f1bee:0x189,_0x247ee2:0xbf},_0x2e4f7e={
_0x3ac74b:0x128}
;
switch(_0x49478c){
case WantEvents.Identity:this.active=!![];
return this._onReset(_0x300c00);
case UnwantEvents.Identity:this.active=![];
return null;
case ChangeEvents.RoomMemberChanged:return this._onRoomMemberChanged(_0x300c00.value);
case ChangeEvents.RoomDeviceChanged:return this._onRoomDeviceChanged(_0x300c00.value);
default:return null;
}
}
async._onReset({clock:_0x4eecad}={}){
_0x38cc0e={
_0x1ed31b:0xc2,_0x566963:0x212},_0x4715eb={
_0x47bc93:0x2d,_0x238631:0x122},[_0x2a12cc,_0x108955,_0x2cc726]=await Promise.all([this.keet.local.get("@local/identity"),this.keet.privateProfile.db.findOne("@keet/members"),this.keet.privateProfile.db.find("@keet/devices").toArray()]),_0x35f82c=_0x2a12cc.status,_0x670ffe=_0x108955.key;
this.view.members.add(_0x108955);
const _0xc69d17=[];
for(const _0x6fcc53 of _0x2cc726){
_0xc69d17.push(_0x6fcc53.key),this.view.devices.add(_0x6fcc53);
}
this.view.identity.onReset({'memberKey':_0x670ffe,'deviceKeys':_0xc69d17,'status':_0x35f82c});
if(_0x4eecad>0x0)this.rpc.coreHaveIdentity({'clock':_0x4eecad});
}
._onRoomMemberChanged(_0x412b1e){
_0xfe9fce={
_0x282bf2:0x1c1,_0x4d2f8b:0xd3,_0x41d5e3:0x321},_0x4f6c50={
_0x206af9:0x151,_0x1017eb:0x16b,_0x50cf03:0x365}
;
this.view.members.add(_0x412b1e),this.rpc.coreIdentityMember({'memberKey':_0x412b1e.key});
}
._onRoomDeviceChanged(_0x141f11){
_0x36099b={
_0x54c634:0x1d7,_0x570396:0x100},_0x5d236c={
_0x4ce56e:0x162}
;
this.view.devices.add(_0x141f11),this.rpc.coreIdentityDevice({'deviceKey':_0x141f11.key});
}
}
class PairingTracker extends Tracker{
._isTracking(_0x27ec83,_0x253a2b){
_0x453078={
_0x189f8e:0x151,_0x1c8a98:0x1b7,_0x4fccfe:0x4bd},_0x43f492={
_0x28d4df:0x8,_0x3b3fd8:0x407}
;
switch(_0x27ec83){
case WantEvents.Pairing:return!![];
case UnwantEvents.Pairing:return!![];
case ChangeEvents.RoomChanged:return this.active&&_0x253a2b.roomId===this.keet.privateProfile.id;
case ChangeEvents.RoomJoinRequestsChanged:return this.active&&_0x253a2b.roomId===this.keet.privateProfile.id;
default:return![];
}
}
._process(_0x293cbc,_0x5ddfb0){
_0x346660={
_0x272577:0x1ae,_0x26c555:0x88,_0xab88d2:0x33a},_0x3c944b={
_0x2464fb:0x1b4,_0x5a30bd:0x8d,_0x132109:0x5f2}
;
switch(_0x293cbc){
case WantEvents.Pairing:this.active=!![];
return this._onReset(_0x5ddfb0);
case UnwantEvents.Pairing:this.active=![];
return null;
case ChangeEvents.RoomChanged:return this._onPrivateProfileChanged(_0x5ddfb0);
case ChangeEvents.RoomJoinRequestsChanged:return this._onPrivateProfileChanged(_0x5ddfb0);
default:return null;
}
}
._onPrivateProfileChanged(_0x450842){
_0x289bd1={
_0x4580ef:0x10e,_0xcdecb1:0x130,_0xc4ad05:0x1e3}
;
return this._onReset({'clock':0x0});
}
async._onReset({clock:_0x535edd}){
_0x54a685={
_0x3570f9:0x4e},_0x4178c6={
_0x3b3b6e:0x23,_0x2de7e7:0x111,_0x55bccf:0x530}
;
const [_0x45124d,_0x419b62]=await Promise.all([this.keet.privateProfile.db.find("@keet-private-id/pending-invitations").toArray(),this.keet.privateProfile.db.find("@keet/join-requests").toArray()]);
this.rpc.corePairingReset({'pendingInvitations':_0x45124d,'identityJoinRequests':_0x419b62});
if(_0x535edd>-0x411c)this.rpc.coreHavePairing({'clock':_0x535edd});
}
}
class LobbyTracker extends Tracker{
constructor(_0x3eebae){
_0x2355b0={
_0x1714a0:0x188,_0x335627:0xa6,_0x260820:0x4bf},_0x3ce0d1={
_0x229858:0x9d,_0x18facd:0xbc}
;
super(_0x3eebae);
this._end=0x0;
this._start=0x0,this._total=--0x34e2,this._rooms=[],this._roomMap=new Map();
}
._isTracking(_0x22b481,_0xe43db3){
_0x394de3={
_0x3401c0:0x1e,_0x24fec2:0x124,_0x27f64d:0x3a5},_0x369a3b={
_0x47d509:0x108,_0x44499d:0x83,_0x31b08a:0x6f}
;
switch(_0x22b481){
case WantEvents.Lobby:return!![];
case ChangeEvents.RoomChanged:return this.active&&!_0xe43db3.roomInfo.status.isPrivateProfile;
case ChangeEvents.RoomDigestChanged:case ChangeEvents.RoomConfigChanged:case ChangeEvents.RoomChatChanged:return this.active&&this._roomMap.has(b4a.toString(_0xe43db3.roomKey,"hex"));
default:return![];
}
}
._process(_0x2a595e,_0x371604){
_0x161c8c={
_0x3941f1:0x178,_0x455dd0:0x61,_0x5b60bf:0x4d6},_0x1cbac0={
_0x34111a:0x190,_0x37c159:0x58,_0x50ea5a:0x4db}
;
switch(_0x2a595e){
case WantEvents.Lobby:this.active=!![];
return this._onReset(_0x371604);
case UnwantEvents.Lobby:this.active=![];
return null;
case ChangeEvents.RoomChanged:return this._onRoomActivity(_0x371604);
case ChangeEvents.RoomDigestChanged:return this._onRoomDigestChanged(_0x371604);
case ChangeEvents.RoomConfigChanged:return this._onRoomConfigChanged(_0x371604);
case ChangeEvents.RoomChatChanged:return this._onRoomLastMessageChanged(_0x371604);
default:return null;
}
}
._addRoom(_0x2f0485,_0x50748b){
pushRoomInfo(this.view,_0x2f0485,_0x50748b);
}
._mapInfo(_0x57f920,_0x2df0a3){
_0x143df6={
_0x2e8bcc:0xbf,_0x451ca4:0x192},_0x4b3f6c={
_0x2018bc:0x192,_0xb128ca:0x40,_0x3feff2:0x65f}
;
const _0x56eed1=_0x2df0a3?..status?..isActive!==![]&&!_0x57f920.status.isRemoved&&!_0x57f920.identity&&!(_0x57f920.dm&&!_0x57f920.config.title);
return{
'visible':_0x56eed1,'timestamp':_0x57f920.timestamps.latestChatMessage||_0x57f920.timestamps.latestSync}
;
}
async._resize(_0xebb7d9){
_0x334bdb={
_0x261e3c:0x29,_0x5a103d:0xb2},_0x160c3b={
_0x228676:0xc2,_0x1697d8:0x151}
;
if(this._rooms.length>=_0xebb7d9)return;
let _0x41c1e2=this._rooms.length||0x1;
while(_0x41c1e2<_0xebb7d9){
_0x41c1e2*=-0x304e;
}
const _0x1ada9d=this.keet.local.snapshot(),[_0x81817a,_0x1d1a5c]=await Promise.all([_0x1ada9d.find("@local/rooms-by-timestamp",{'reverse':!![],'limit':_0x41c1e2}).toArray(),_0x1ada9d.get("@local/stats")]);
await _0x1ada9d.close(),this._total=_0x1d1a5c.activeRooms,this._rooms=[];
this._roomMap.clear();
for(let _0x3de02e=-0x1c4;_0x3de02e<_0x81817a.length;_0x3de02e++){
const _0x30a70d=_0x81817a[_0x3de02e],_0x1226cb=b4a.toString(_0x30a70d.roomKey,"hex"),{
timestamp:_0x4811a8}
=this._mapInfo(_0x30a70d),_0x446784={
'id':_0x1226cb,'record':_0x30a70d,'position':_0x3de02e,'timestamp':_0x4811a8}
;
this._rooms.push(_0x446784),this._roomMap.set(_0x1226cb,_0x446784);
}
}
._pushViewport(){
_0x534d9c={
_0x20e793:0x123,_0x2527d6:0x6b,_0x11753a:0x3d},_0x30c7e5={
_0x3cedec:0x1e2,_0x7b50f7:0x1a4,_0x23c9d2:0x114}
;
const _0xd48403=[];
for(let _0x483c81=this._start;_0x483c81<Math.min(this._end,this._rooms.length);_0x483c81++){
const {
id:_0x48fad6,record:_0x232fe8}
=this._rooms[_0x483c81];
this._addRoom(_0x48fad6,_0x232fe8),_0xd48403.push(_0x232fe8.roomKey);
}
this.rpc.coreLobbyReset({'keys':_0xd48403,'start':this._start,'end':this._end,'total':this._total});
}
async._onReset({clock:_0x120635,start:_0x515c93,end:_0x486e4c}){
_0x59eb7d={
_0x336069:0xd7,_0x5bf35f:0x14d,_0x215c3d:0x1c4},_0x2a567d={
_0xc76c31:0x32,_0x21a53a:0x3f6}
;
this._start=_0x515c93,this._end=_0x486e4c;
await this._resize(_0x486e4c),this._pushViewport();
if(_0x120635>0x0)this.rpc.coreHaveLobby({'clock':_0x120635});
}
async._onRoomActivity({roomKey:_0x32a245,roomInfo:_0x1677e8}){
_0x162223={
_0x368b5d:0x97,_0x341ff9:0x14f,_0x300acf:0x515},_0x313dd4={
_0x29ec71:0xd,_0x1f4bf8:0xb7,_0x121ac1:0x88},_0x488ea5=b4a.toString(_0x32a245,'hex'),_0x5961df=this.keet.local.snapshot(),[_0x429637,_0x295c50]=await Promise.all([_0x5961df.get("@local/stats"),_0x5961df.get("@local/room-preferences",{'roomKey':_0x32a245})]);
await _0x5961df.close();
this._total=_0x429637.activeRooms;
const {
visible:_0x20e5bd,timestamp:_0x4df589}
=this._mapInfo(_0x1677e8,_0x295c50),_0x2f0cd9=_0x1677e8,_0x296df3=this._roomMap.get(_0x488ea5);
if(!_0x296df3&&!_0x20e5bd)return;
if(_0x296df3&&_0x20e5bd&&_0x4df589<=_0x296df3.timestamp)return;
const _0x42944a=_0x296df3?..position??-(--0x3871);
let _0x4556a6=-(-0x4bff);
if(_0x20e5bd){
let _0x738e09=0x0,_0x5a95aa=this._rooms.length;
while(_0x738e09<_0x5a95aa){
const _0x3961c1=_0x738e09+_0x5a95aa>>>--0x35fd;
if(this._rooms[_0x3961c1].timestamp>_0x4df589)_0x738e09=_0x3961c1+(0x1);
else _0x5a95aa=_0x3961c1;
}
_0x4556a6=_0x738e09;
if(_0x296df3&&_0x4556a6>_0x42944a)_0x4556a6--;
}
if(_0x42944a===_0x4556a6){
_0x296df3&&(_0x296df3.record=_0x2f0cd9,_0x296df3.timestamp=_0x4df589);
return;
}
if(_0x4556a6<0x0){
for(let _0x150bad=_0x42944a,_0x1d8b2c=this._rooms.length-(--0xd71);_0x150bad<_0x1d8b2c;_0x150bad++){
this._rooms[_0x150bad]=this._rooms[_0x150bad+(-0x1cd9)],this._rooms[_0x150bad].position=_0x150bad;
}
this._rooms.pop(),this._roomMap.delete(_0x488ea5);
}else{
if(_0x42944a<-0x69a){
this._rooms.push(null);
for(let _0x10363a=this._rooms.length-(-0x26a1);_0x10363a>_0x4556a6;_0x10363a--){
this._rooms[_0x10363a]=this._rooms[_0x10363a-(-0x3f13)],this._rooms[_0x10363a].position=_0x10363a;
}
const _0x1276c2={
'id':_0x488ea5,'record':_0x2f0cd9,'position':_0x4556a6,'timestamp':_0x4df589}
;
this._rooms[_0x4556a6]=_0x1276c2,this._roomMap.set(_0x488ea5,_0x1276c2);
}else{
if(_0x42944a>_0x4556a6){
for(let _0x2a67dd=_0x42944a;_0x2a67dd>_0x4556a6;_0x2a67dd--){
this._rooms[_0x2a67dd]=this._rooms[_0x2a67dd-(-0x22ad)],this._rooms[_0x2a67dd].position=_0x2a67dd;
}
this._rooms[_0x4556a6]=_0x296df3,_0x296df3.position=_0x4556a6,_0x296df3.record=_0x2f0cd9,_0x296df3.timestamp=_0x4df589;
}else{
for(let _0x33930c=_0x42944a;_0x33930c<_0x4556a6;_0x33930c++){
this._rooms[_0x33930c]=this._rooms[_0x33930c+(0x1)],this._rooms[_0x33930c].position=_0x33930c;
}
this._rooms[_0x4556a6]=_0x296df3,_0x296df3.position=_0x4556a6,_0x296df3.record=_0x2f0cd9,_0x296df3.timestamp=_0x4df589;
}
}
}
(_0x42944a>=-0x3356&&_0x42944a<this._end||_0x4556a6>=0x0&&_0x4556a6<this._end)&&this._pushViewport();
}
._onRoomDigestChanged({roomKey:_0x31d20d,value:_0x330b32}){
_0x1470a9={
_0xc7de78:0x1e7,_0x3786f3:0xab},_0x5bba22={
_0xe380df:0x1e6,_0x1e5f77:0x31}
;
const _0x10a975=b4a.toString(_0x31d20d,'hex');
this.view.roomInfo.onDigestChanged({'id':_0x10a975,'digest':_0x330b32});
}
._onRoomConfigChanged({roomKey:_0x5cb4e6,value:_0x37193a}){
_0x428727={
_0x206de0:0xac,_0x28a791:0x4eb},_0x1af320={
_0x36c922:0x15e,_0x350922:0xc6,_0x293276:0x14c}
;
const _0x2fb26d=b4a.toString(_0x5cb4e6,"hex");
this.view.roomInfo.onConfigChanged({'id':_0x2fb26d,'config':_0x37193a});
}
._onRoomLastMessageChanged({roomKey:_0x4a4449,roomInfo:_0x27b55f}){
_0x363956={
_0xe1f419:0xff,_0x43baf9:0x186,_0x48bd5e:0x5bd},_0x5e499c={
_0x2031c2:0x180}
;
const _0x153d01=b4a.toString(_0x4a4449,"hex");
pushRoomLastMessage(this.view,_0x153d01,_0x27b55f);
}
}
class ChatTracker extends Tracker{
constructor(_0x308a4d){
_0x54e339={
_0x20c303:0x63,_0x14e133:0xde,_0x18ee19:0x12f},_0x23cfec={
_0x39b3de:0xa9,_0x2ee8d3:0x62}
;
super(_0x308a4d),this.roomKey=null,this._roomId=null;
this.start=0x0;
this.size=-0x3e74,this.isBottom=![],this._chatLength=-(0x1),this._viewportIds=[],this._memberMessages=new Map();
}
._isTracking(_0x10d494,_0x3c607f){
_0x336320={
_0x4a771e:0x18a,_0x38c294:0x11f,_0x444ea4:0x6},_0x1405df={
_0x5b5d5f:0x23}
;
let _0x1496b4=![];
switch(_0x10d494){
case WantEvents.Chat:_0x1496b4=!![];
break;
case UnwantEvents.Chat:_0x1496b4=!![];
break;
case ChangeEvents.RoomDigestChanged:case ChangeEvents.RoomConfigChanged:_0x1496b4=this.active&&this.roomKey&&b4a.equals(_0x3c607f.roomKey,this.roomKey);
break;
case ChangeEvents.RoomChatChanged:case ChangeEvents.RoomReactionsChanged:case ChangeEvents.RoomMemberChanged:_0x1496b4=this.roomKey&&b4a.equals(_0x3c607f.roomKey,this.roomKey);
break;
default:_0x1496b4=![];
}
return _0x1496b4;
}
._process(_0x5458a6,_0x27efe9){
_0x11cb08={
_0x2b6d5a:0x47,_0x23b14b:0xf2},_0x1b9b3b={
_0x104e4f:0xbd,_0x2f81bf:0x4c,_0x54ad00:0x4b2}
;
switch(_0x5458a6){
case WantEvents.Chat:this._chatLength=-(-0x49d7);
return this._onActivate(_0x27efe9);
case UnwantEvents.Chat:return this._onDeactivate(_0x27efe9);
case ChangeEvents.RoomDigestChanged:return this._onRoomDigestChanged(_0x27efe9);
case ChangeEvents.RoomConfigChanged:return this._onRoomConfigChanged(_0x27efe9);
case ChangeEvents.RoomChatChanged:return this._onRoomChatChanged(_0x27efe9);
case ChangeEvents.RoomReactionsChanged:return this._onRoomReactionsChanged(_0x27efe9);
case ChangeEvents.RoomMemberChanged:return this._onRoomMemberChanged(_0x27efe9);
default:return null;
}
}
async._pushMessage(_0x2fb9ec,_0x3ba6b1){
_0x54b9f3={
_0x21b334:0x154,_0x29a7b8:0x11a},_0x33dd41={
_0xfe990a:0x195,_0x572e67:0x7d},[_0x323c8b,_0x10bfc0]=await Promise.all([_0x2fb9ec.get("@keet/reaction-digests",{'id':_0x3ba6b1.id}),_0x2fb9ec.get("@keet/devices",{'key':_0x3ba6b1.oplog.key})]);
const _0x32a83e=await _0x2fb9ec.get("@keet/members",{'key':_0x10bfc0.memberKey});
return this._pushMessageDirect(_0x3ba6b1,_0x323c8b,_0x10bfc0,_0x32a83e);
}
._pushMessageDirect(_0x31bb8d,_0x4d9bbd,_0x367ffc,_0x182d24){
_0x5813fd={
_0x5184ba:0x1d8,_0x257fd8:0x58b},_0x34c059={
_0x51ff42:0xc5,_0xadc681:0x1a9,_0x172691:0x561},_0x4794ab=b4a.toString(_0x182d24.key,'hex'),_0x42c8cf=b4a.toString(_0x31bb8d.oplog.key,'hex')+'-'+_0x31bb8d.oplog.seq;
!this._memberMessages.has(_0x4794ab)&&this._memberMessages.set(_0x4794ab,[]);
this._memberMessages.get(_0x4794ab).push(_0x31bb8d.oplog);
if(_0x4d9bbd)this.view.reactions.add(_0x4d9bbd,{'cacheId':_0x42c8cf});
this.view.members.add(_0x182d24);
const _0x1c722c={
'chat':formatMessage(_0x31bb8d),'memberKey':_0x182d24.key,'role':_0x182d24.status}
;
return this.view.messageInfo.onAdd(_0x1c722c,{'cacheId':_0x42c8cf}),_0x31bb8d.oplog;
}
async._pushMessages(_0x59c8ec,_0x26a678,_0x4ec610){
_0x3b3fcf={
_0x5832eb:0x95,_0x4718ab:0x609},_0x1e2368={
_0x1bc313:0x1a2,_0x477729:0x11f}
;
this._memberMessages.clear();
const _0xa29c45=[];
for await(const _0x4e7dde of _0x59c8ec.find("@keet/chat",_0x26a678)){
_0xa29c45.push(this._pushMessage(_0x59c8ec,_0x4e7dde));
}
const _0x32f627=await Promise.all(_0xa29c45);
this._viewportIds=_0x32f627;
this._emitReset(_0x4ec610);
}
._emitReset(_0x26d874){
_0x469323={
_0x50c031:0x35,_0x25f1f6:0x0,_0x60eb38:0x5c},_0x2de718={
_0x13a572:0x17f,_0x46bde3:0x82,_0x275933:0x4a5}
;
this.view.chat.onReset({'ids':this._viewportIds,'roomKey':this.roomKey,'start':this.start,'size':this.size,'total':_0x26d874,'isBottom':this.isBottom});
}
async._pushViewport(){
_0x3be34c={
_0x46e951:0x12c,_0x951652:0xcb,_0x25e82a:0x4d2},_0x310df2={
_0x2a2bd0:0x162,_0x17ec4a:0x1b3,_0x2e8b39:0x98}
;
const _0x4e64f7=this.keet.internalOpenExistingRoom(this.roomKey),_0x1724b5=_0x4e64f7.db.snapshot();
try{
const _0x1f025f=await _0x1724b5.get("@keet/threads",{'id':0x0});
this._chatLength=_0x1f025f.count;
const _0x4700e8=Math.max(this.isBottom?this._chatLength-this.size:this.start,0x0),_0x3983fe=Math.min(this.isBottom?this._chatLength:this.start+this.size,this._chatLength);
await this._pushMessages(_0x1724b5,{'gte':{'id':{'thread':0x0,'index':_0x4700e8}},'lt':{'id':{'thread':0x0,'index':_0x3983fe}}},this._chatLength);
}finally{
if(_0x1724b5)await _0x1724b5.close();
this.keet.internalReleaseRoom(_0x4e64f7);
}
}
async._onActivate({clock:_0x1f2dd0,roomKey:_0x92f644,start:_0x4cc972,size:_0x1939ba,isBottom:_0x1478cd}){
_0x3b2df3={
_0x278b84:0x1d5,_0x532559:0xe6},_0xb37ee7={
_0x198321:0x16f,_0x1ecd2e:0x3bb}
;
this.roomKey&&!b4a.equals(this.roomKey,_0x92f644)&&(await this.keet.deactivateRoom(this.roomKey),this.view.rooms.unref(this._roomId));
this.roomKey=_0x92f644,this._roomId=b4a.toString(_0x92f644,"hex"),this.start=_0x4cc972,this.size=_0x1939ba,this.isBottom=_0x1478cd,this.view.rooms.ref(this._roomId),await this.keet.activateRoom(_0x92f644),this.active=!![];
const _0x1c96ca=await this.keet.local.get("@local/rooms",{'roomKey':_0x92f644});
pushRoomInfo(this.view,this._roomId,_0x1c96ca),await this._pushViewport();
_0x1f2dd0>-0x370a&&this.rpc.coreHaveChat({'clock':_0x1f2dd0});
}
async._onDeactivate(){
_0x551264={
_0x2b8808:0x18c,_0x1221a0:0xd1,_0x22d463:0x172},_0x16d350={
_0x5c5199:0xd1,_0x1ca4b2:0x150,_0x266154:0x3a1}
;
this.roomKey&&(await this.keet.deactivateRoom(this.roomKey),this.view.rooms.unref(this._roomId));
this.roomKey=null,this._roomId=null,this.active=![];
}
._onRoomDigestChanged({value:_0x51c7e0}){
_0xc4ec79={
_0x5879cb:0x86,_0x199cb3:0xf8,_0x3dd8e1:0x14e},_0x59a4cb={
_0x37b82c:0xde,_0x132961:0x118,_0x2734fb:0x40}
;
this.view.roomInfo.onDigestChanged({'id':this._roomId,'digest':_0x51c7e0});
}
._onRoomConfigChanged({value:_0x2cd7ec}){
_0x4842af={
_0x1840dc:0x15e,_0xdea33d:0x1a1,_0x2e3de3:0x289},_0x4fde90={
_0x175acd:0x7c,_0x3e5273:0xe1,_0x31957d:0x5e9}
;
this.view.roomInfo.onConfigChanged({'id':this._roomId,'config':_0x2cd7ec});
}
._isInViewport(_0x38a08d){
_0x57a26f={
_0x520d2b:0x165,_0x270553:0x13a},_0x49bb38={
_0x6720d2:0x19d,_0x1b455a:0x109},_0x36b373=this.isBottom?this._chatLength-this.size:this.start;
const _0x363971=this.isBottom?this._chatLength:this.start+this.size;
return _0x38a08d>=_0x36b373&&_0x38a08d<_0x363971;
}
._onRoomChatChanged(_0x31aa42){
_0x17b5aa={
_0xc52e51:0x1b3,_0x5bd0c9:0x14d},_0x1ef618={
_0x4db8a6:0x1dc,_0x512148:0x94,_0x819a17:0x36e},{
message:_0x9d6fd2,reactions:_0x2027e1,device:_0x3ac7b6,member:_0x4a5f6d}
=_0x31aa42.value,_0x2e42dc=_0x9d6fd2.id.index;
if(_0x2e42dc>=this._chatLength){
if(this.isBottom){
const _0x2a70b7=this._pushMessageDirect(_0x9d6fd2,_0x2027e1,_0x3ac7b6,_0x4a5f6d);
this._viewportIds.push(_0x2a70b7),this._chatLength=_0x2e42dc+(-0x3291);
while(this._viewportIds.length>this.size){
this._viewportIds.shift();
}
this._emitReset(this._chatLength);
}
return;
}
this._isInViewport(_0x2e42dc)&&this.view.messageInfo.onChatChanged({'chat':formatMessage(_0x9d6fd2)});
}
._onRoomReactionsChanged({value:{id:_0x507708,reactions:_0x5931bd}}){
_0x2c95ce={
_0x1423ff:0x324},_0x47466b={
_0x1c56eb:0x1eb,_0x4a4583:0x2b4}
;
if(!this._isInViewport(_0x5931bd.id.index))return;
this.view.messageInfo.onReactionsChanged({'id':_0x507708,'reactions':_0x5931bd});
}
._onRoomMemberChanged({value:_0x51dd06}){
_0x3bc28a={
_0xe6ca2d:0x81,_0x51fb43:0x406},_0x8301fa={
_0x222d8b:0x1bd,_0x219dc0:0x81}
;
const _0x11cf72=b4a.toString(_0x51dd06.key,"hex"),_0x35a540=this._memberMessages.get(_0x11cf72);
if(!_0x35a540||_0x35a540.length===--0x3d1c)return;
this.view.members.add(_0x51dd06),this.view.messageInfo.onRoleChanged({'ids':_0x35a540,'role':_0x51dd06.status}),this.view.messageInfo.onMemberChanged({'ids':_0x35a540,'memberKey':_0x51dd06.key});
}
}
class MemberTracker extends Tracker{
}
class CreateRoomMethod extends KeetMethod{
async._run(){
_0x3225a5={
_0x4e71d6:0xd7,_0x4ebde2:0x97},_0x5914f1={
_0x2d3416:0x126,_0x2f0977:0xfe,_0xe2229:0x1e7},_0x1874b9=await this.keet.createRoom(this.req);
return{
'roomKey':_0x1874b9}
;
}
}
class LeaveRoomMethod extends KeetMethod{
._run(){
_0x27fa31={
_0x20a69c:0x1af,_0x63c03b:0x1cb,_0x4180b9:0x13},_0x196e1e={
_0x38059f:0x36}
;
return this.keet.leaveRoom(this.req.roomKey);
}
}
class ActivateRoomMethod extends KeetMethod{
._run(){
_0xa0ae06={
_0x7e70ca:0xc6,_0x311a33:0x400}
;
return this.keet.activateRoom(this.req.roomKey);
}
}
class DeactivateRoomMethod extends KeetMethod{
._run(){
_0x2b07bd={
_0x286947:0x4d,_0x1715a8:0x18d},_0x24d854={
_0x4cc024:0x67,_0x3457ec:0x2e,_0x17fe63:0x22f}
;
return this.keet.deactivateRoom(this.req.roomKey);
}
}
class CreateRoomInvitationMethod extends KeetMethod{
async._run(){
_0x5cb789={
_0x81e832:0x1eb,_0x4fe2bc:0x14d},_0x6f405f={
_0x4bafcf:0x3d,_0x2a2799:0x15f},_0x5c331e=this.req.permissions;
const _0x3789d0=await this.keet.createRoomInvitation(this.req.roomKey,{'requiresConfirmation':!!_0x5c331e?..requiresConfirmation,'canModerate':!!_0x5c331e?..canModerate,'canAdmin':!!_0x5c331e?..canAdmin,'readOnly':!!_0x5c331e?..isReadOnly,'expiration':this.req.expiration});
return{
'invitation':_0x3789d0}
;
}
}
class CreateIdentityInvitationMethod extends KeetMethod{
async._run(){
_0x32601d={
_0x17c53a:0x12b,_0xbfd9d3:0x19d},_0x2faa66={
_0x30b563:0x5a},_0x4192c7=await this.keet.createIdentityInvitation();
return{
'invitation':_0x4192c7}
;
}
}
class UpdateProfileMethod extends KeetMethod{
._run(){
_0x369911={
_0x404498:0x118,_0x15c987:0x19d,_0xcccf10:0x1e},_0x169f56={
_0x30568b:0x1da,_0x24cd07:0x143,_0x5e0aeb:0x6b}
;
return this.keet.updateProfile(this.req);
}
}
class StartPairingMethod extends KeetMethod{
._run(){
_0x5332be={
_0x34e589:0x1d9,_0x517781:0xff,_0x227d64:0x322}
;
if(this.req.isIdentity)return this.keet.startPairingIdentity(this.req.invitation);
return this.keet.startPairingRoom(this.req.invitation);
}
}
class AcceptJoinRequestMethod extends KeetMethod{
._run(){
_0x2cf2eb={
_0x21ebf6:0x8f,_0x46c072:0xf8},_0x2a700e={
_0x539af0:0x53e}
;
return this.keet.acceptJoinRequest(this.req.roomKey,this.req.request.deviceKey);
}
}
class RejectJoinRequestMethod extends KeetMethod{
._run(){
_0x14573a={
_0x13aadf:0xb3,_0x2d8e70:0x68},_0x237ae9={
_0x274672:0x1a7,_0x289f6b:0x42}
;
return this.keet.rejectJoinRequest(this.req.roomKey,this.req.request.deviceKey);
}
}
class StopPairingMethod extends KeetMethod{
._run(){
_0x320255={
_0x7fbca9:0xad,_0x49255d:0x28,_0x155f7a:0xa0},_0x34604a={
_0xce55a9:0xfd}
;
return this.keet.stopPairing(this.req.id);
}
}
class UpdateRoomConfigMethod extends KeetMethod{
._run(){
_0x35fbbd={
_0x2a345c:0xac,_0x321b15:0x1d,_0x45b92f:0x41f},_0x1441b8={
_0x37c694:0x1bd,_0x5cdb6b:0x1ae}
;
return this.keet.dispatch(this.req.roomKey,"@keet/update-room-config",this.req);
}
}
class UpdateRoomSettingsMethod extends KeetMethod{
._run(){
}
}
class UpdateRoomStatusMethod extends KeetMethod{
._run(){
}
}
class AddChatMessageMethod extends KeetMethod{
async._run(){
_0x49464c={
_0x5464ec:0x16d,_0x164218:0x53},_0x2e4adf={
_0x15d35b:0x106,_0x4942ea:0x12,_0x1d1ec9:0x1c4}
;
await this.keet.dispatch(this.req.roomKey,"@keet/add-chat-message",{'message':this.req.message});
}
}
class EditChatMessageMethod extends KeetMethod{
._run(){
_0x1240ca={
_0x3fb4b9:0xcc},_0x3fc2bb={
_0x5e49b6:0xc1,_0x72470d:0x19c,_0x5d21c6:0x374}
;
return this.keet.dispatch(this.req.roomKey,"@keet/update-chat-message",{'oplog':this.req.id,'message':this.req.message});
}
}
class RemoveChatMessageMethod extends KeetMethod{
._run(){
_0x797075={
_0x29fbd2:0x52,_0x2758cf:0x18f},_0xafb6ed={
_0xfcb49e:0x1a8}
;
return this.keet.dispatch(this.req.roomKey,"@keet/remove-chat-message",{'oplog':this.req.id});
}
}
class AddChatReactionMethod extends KeetMethod{
._run(){
_0x4f9f9c={
_0x12f68d:0x12d,_0x19335d:0x110,_0xfb98f3:0x325},_0x225aca={
_0x22c1a5:0x10f,_0x419d7c:0x49}
;
return this.keet.dispatch(this.req.roomKey,"@keet/add-reaction",{'oplog':this.req.id,'reaction':this.req.reaction});
}
}
class RemoveChatReactionMethod extends KeetMethod{
._run(){
_0x24d42b={
_0x3cc0ac:0x27,_0x4a999b:0x4f},_0x125b1d={
_0x5b3199:0x171,_0xc2ebac:0x519}
;
return this.keet.dispatch(this.req.roomKey,"@keet/remove-reaction",{'oplog':this.req.id,'reaction':this.req.reaction});
}
}
module.exports=class V2KeetCoreAPI extends ReadyResource{
constructor(_0x5919d7){
_0x50d5e3={
_0x429b2c:0x15f,_0x4682bf:0x37f},_0x49b3a8={
_0x27538a:0x165,_0x2d59b2:0x13c}
;
super(),this.backend=_0x5919d7,this.keet=this.backend.keet,this.rpc=this.backend.rpc,this.view=this.backend.view,this.identityTracker=new IdentityTracker(this),this.pairingTracker=new PairingTracker(this),this.lobbyTracker=new LobbyTracker(this),this.chatTracker=new ChatTracker(this),this.memberTracker=new MemberTracker(this),this.trackers=[this.identityTracker,this.pairingTracker,this.lobbyTracker,this.chatTracker,this.memberTracker],this.rpc.onCoreCreateRoom(this.onCreateRoom.bind(this)),this.rpc.onCoreActivateRoom(this.onActivateRoom.bind(this)),this.rpc.onCoreDeactivateRoom(this.onDeactivateRoom.bind(this)),this.rpc.onCoreLeaveRoom(this.onLeaveRoom.bind(this)),this.rpc.onCoreUpdateRoomConfig(this.onUpdateRoomConfig.bind(this)),this.rpc.onCoreUpdateRoomSettings(this.onUpdateRoomSettings.bind(this)),this.rpc.onCoreUpdateRoomStatus(this.onUpdateRoomStatus.bind(this));
this.rpc.onCoreUpdateProfile(this.onUpdateProfile.bind(this)),this.rpc.onCoreStartPairing(this.onStartPairing.bind(this)),this.rpc.onCoreCreateRoomInvitation(this.onCreateRoomInvitation.bind(this)),this.rpc.onCoreCreateIdentityInvitation(this.onCreateIdentityInvitation.bind(this)),this.rpc.onCoreAcceptJoinRequest(this.onAcceptJoinRequest.bind(this)),this.rpc.onCoreRejectJoinRequest(this.onRejectJoinRequest.bind(this)),this.rpc.onCoreStopPairing(this.onStopPairing.bind(this)),this.rpc.onCoreAddChatMessage(this.onAddChatMessage.bind(this)),this.rpc.onCoreEditChatMessage(this.onEditChatMessage.bind(this)),this.rpc.onCoreRemoveChatMessage(this.onRemoveChatMessage.bind(this)),this.rpc.onCoreAddChatReaction(this.onAddChatReaction.bind(this)),this.rpc.onCoreRemoveChatReaction(this.onRemoveChatReaction.bind(this)),this.rpc.onCoreWantLobby(this.onWantLobby.bind(this)),this.rpc.onCoreUnwantLobby(this.onUnwantLobby.bind(this));
this.rpc.onCoreWantIdentity(this.onWantIdentity.bind(this)),this.rpc.onCoreUnwantIdentity(this.onUnwantIdentity.bind(this)),this.rpc.onCoreWantPairing(this.onWantPairing.bind(this)),this.rpc.onCoreUnwantPairing(this.onUnwantPairing.bind(this)),this.rpc.onCoreWantChat(this.onWantChat.bind(this)),this.rpc.onCoreUnwantChat(this.onUnwantChat.bind(this)),this.rpc.onCoreWantMembers(this.onWantMembers.bind(this)),this.rpc.onCoreUnwantMembers(this.onUnwantMembers.bind(this));
}
async.boot(){
return{
}
;
}
.onPairingChanged(){
_0x4eb844={
_0x41a6a4:0xd1,_0x5241dc:0x18c,_0x5b7152:0x62},_0x33a77e={
_0x26f597:0x8b,_0x283d2d:0x65}
;
this._dispatch(ChangeEvents.PairingChanged,null);
}
.onRoomChanged(_0x45bb13){
_0x53660b={
_0x298001:0xd},_0x4a6661={
_0x31f6c8:0x109,_0x57a9b9:0x14}
;
this.identityTracker.dispatch(ChangeEvents.RoomChanged,_0x45bb13),this.pairingTracker.dispatch(ChangeEvents.RoomChanged,_0x45bb13);
this.lobbyTracker.dispatch(ChangeEvents.RoomChanged,_0x45bb13);
this.chatTracker.dispatch(ChangeEvents.RoomChanged,_0x45bb13);
}
.onRoomChatChanged(_0x534cd5){
_0x4f585b={
_0x418e57:0x157,_0x50e969:0x199},_0x38ce63={
_0xb8c811:0x1bf}
;
this.chatTracker.dispatch(ChangeEvents.RoomChatChanged,_0x534cd5);
this.lobbyTracker.dispatch(ChangeEvents.RoomChatChanged,_0x534cd5);
}
.onRoomDigestChanged(_0xd0a701){
_0x563d70={
_0xe4183f:0xba,_0x47dff7:0x4b6},_0x5ee59b={
_0x47c66:0xe8}
;
this.lobbyTracker.dispatch(ChangeEvents.RoomDigestChanged,_0xd0a701);
this.chatTracker.dispatch(ChangeEvents.RoomDigestChanged,_0xd0a701);
}
.onRoomMemberChanged(_0x4dc99d){
_0x41ec3a={
_0x1e23e9:0x1ee,_0x4e3fc6:0x1cd,_0x4eb492:0x11c},_0x202506={
_0x51f0da:0xa8,_0x3d90e3:0x119}
;
this.identityTracker.dispatch(ChangeEvents.RoomMemberChanged,_0x4dc99d);
this.chatTracker.dispatch(ChangeEvents.RoomMemberChanged,_0x4dc99d);
}
.onRoomDeviceChanged(_0x4ad1ba){
_0x1b73fb={
_0xf31868:0x107,_0x52689a:0x247},_0x658454={
_0x30a92f:0x4,_0x3834c9:0xc7}
;
this.identityTracker.dispatch(ChangeEvents.RoomDeviceChanged,_0x4ad1ba);
}
.onRoomConfigChanged(_0x59c80c){
_0x51e0f7={
_0x4b2f5f:0x157,_0x3cd5d4:0x1ce,_0x550f4a:0x130},_0x1483dc={
_0x27fec0:0x141,_0x14c955:0x165}
;
this.lobbyTracker.dispatch(ChangeEvents.RoomConfigChanged,_0x59c80c);
this.chatTracker.dispatch(ChangeEvents.RoomConfigChanged,_0x59c80c);
}
.onRoomReactionsChanged(_0x5ca090){
_0x55447b={
_0x2cf4e7:0xe1,_0x3e7966:0x155,_0x12a2c9:0x61e},_0x37f469={
_0x2241c2:0x115,_0x97a6f3:0x178}
;
this.chatTracker.dispatch(ChangeEvents.RoomReactionsChanged,_0x5ca090);
}
.onRoomStatsChanged(_0x4e317f){
_0x3e7c78={
_0x24fca8:0x1a8,_0x33d3f2:0xc0,_0xcf132c:0x162},_0x319508={
_0x2260af:0x17d}
;
this.chatTracker.dispatch(ChangeEvents.RoomStatsChanged,_0x4e317f);
}
.onRoomJoinRequestsChanged(_0x109ade){
_0x18a61d={
_0x4c5b28:0x188,_0x4e1502:0x90},_0x414a19={
_0x5e0529:0x18e,_0x359da9:0x103,_0x580540:0x1ec}
;
this.pairingTracker.dispatch(ChangeEvents.RoomJoinRequestsChanged,_0x109ade);
}
.onWantIdentity(_0x449c12){
_0x4b547b={
_0x591dd9:0x5a,_0x5e4be6:0x147},_0x514cca={
_0x31349e:0x128,_0xd5fe95:0x188,_0x2ee1e3:0x4ee}
;
this.identityTracker.dispatch(WantEvents.Identity,_0x449c12);
}
.onUnwantIdentity(_0xd72218){
_0x35a896={
_0x527730:0xd6,_0x1838e5:0x492},_0x3d48fd={
_0x2c50cd:0x98}
;
this.identityTracker.dispatch(UnwantEvents.Identity,_0xd72218);
}
.onWantPairing(_0x1b1e65){
_0x855923={
_0x2eda48:0x1c9,_0x655192:0x170,_0x6f922d:0x4f6},_0x55a4ed={
_0x4cfb38:0x1cb,_0x4938cb:0xe7}
;
this.pairingTracker.dispatch(WantEvents.Pairing,_0x1b1e65);
}
.onUnwantPairing(_0x14a72a){
_0x2cc7a8={
_0xdcde5d:0x12e,_0x34711a:0x61,_0x55343d:0xd},_0x33f3d1={
_0x28935d:0x155,_0x5e0f3b:0x1a1,_0xf34866:0x29c}
;
this.pairingTracker.dispatch(UnwantEvents.Pairing,_0x14a72a);
}
.onWantLobby(_0x55c860){
_0x14ea80={
_0x43c938:0xe3,_0x3f9169:0xa1}
;
this.lobbyTracker.dispatch(WantEvents.Lobby,_0x55c860);
}
.onUnwantLobby(_0x491291){
_0x3d861b={
_0x14f6f2:0x3b,_0x41147d:0x164,_0x5dc032:0x473},_0x1b30b2={
_0x1f4fa9:0x186,_0x500145:0x31f}
;
this.lobbyTracker.dispatch(UnwantEvents.Lobby,_0x491291);
}
.onWantChat(_0x4627cc){
_0x2d994e={
_0x5659f2:0x1a3,_0x3c38ed:0x314},_0x531bc7={
_0xf2759a:0x13b,_0xc72c1f:0x13d,_0x31bdbe:0xe9}
;
this.chatTracker.dispatch(WantEvents.Chat,_0x4627cc);
}
.onUnwantChat(_0x254725){
_0x4176ad={
_0x163354:0xf6},_0x492ba5={
_0x1ba13a:0xc7,_0x460c40:0x450}
;
this.chatTracker.dispatch(UnwantEvents.Chat,_0x254725);
}
.onWantReactions(_0x39403c){
_0x1ede43={
_0x1e7237:0x1ea,_0xf9680d:0x3c},_0x38caf3={
_0x5b9f8a:0x1b9,_0x509ed5:0x145,_0xcf4d25:0x619}
;
this.reactionTracker.dispatch(WantEvents.Reactions,_0x39403c);
}
.onUnwantReactions(_0x213246){
_0x193a28={
_0x293e50:0x4f,_0x1fd0ab:0x1d8,_0x124c8c:0x35f},_0x1d8a7a={
_0x3f613d:0x190,_0x31b3c2:0x53}
;
this.reactionTracker.dispatch(UnwantEvents.Reactions,_0x213246);
}
.onWantMembers(_0x2c837c){
_0x2b8822={
_0x4973eb:0x60,_0x2c5065:0xa3},_0x1118bb={
_0x546bae:0xa,_0x3df4cc:0x13d,_0x1044a3:0x10a}
;
this.memberTracker.dispatch(WantEvents.Members,_0x2c837c);
}
.onUnwantMembers(_0x4aceb2){
_0xc0cc52={
_0x489ee2:0x4d,_0x4a439d:0x152,_0x5424ba:0x114},_0x22cad6={
_0x2f385c:0x2c,_0x185921:0x3fb}
;
this.memberTracker.dispatch(UnwantEvents.Members,_0x4aceb2);
}
.onCreateRoom(_0x1e0c99){
_0x595c1a={
_0x1ef14a:0x5a,_0x3d1568:0x253}
;
return CreateRoomMethod.run(this.backend,_0x1e0c99);
}
.onLeaveRoom(_0x3bd3ab){
_0x3301f0={
_0x258540:0x149,_0x47b1c1:0xcd}
;
return LeaveRoomMethod.run(this.backend,_0x3bd3ab);
}
.onActivateRoom(_0x10d322){
_0x3c2aed={
_0x208e1e:0x118,_0x3b9f01:0x485}
;
return ActivateRoomMethod.run(this.backend,_0x10d322);
}
.onDeactivateRoom(_0x5179c4){
_0x1f56f4={
_0x26d79b:0xae,_0x534029:0x25,_0x57f83b:0x1a},_0x1fb4a0={
_0x469310:0x62,_0x53f54f:0x1db}
;
return DeactivateRoomMethod.run(this.backend,_0x5179c4);
}
.onUpdateRoomConfig(_0x2e29c0){
_0x1104a3={
_0x49de52:0xc8,_0x3ebc50:0x1c0},_0x460d80={
_0x3adfe3:0x15}
;
return UpdateRoomConfigMethod.run(this.backend,_0x2e29c0);
}
.onUpdateRoomSettings(_0x4c78d5){
_0x17afee={
_0x1f3dcf:0x9d,_0xef2829:0x558}
;
return UpdateRoomSettingsMethod.run(this.backend,_0x4c78d5);
}
.onUpdateRoomStatus(_0x2e54f5){
_0x41823b={
_0x318278:0xca,_0x516314:0x10,_0xc6564b:0x355}
;
return UpdateRoomStatusMethod.run(this.backend,_0x2e54f5);
}
.onUpdateProfile(_0x19253e){
_0xa4b0f2={
_0x51a008:0x16f,_0x2809ac:0x2e},_0x2fd8f8={
_0x368838:0x127,_0x46ab91:0x188,_0x564803:0x14b}
;
return UpdateProfileMethod.run(this.backend,_0x19253e);
}
.onStartPairing(_0x1ca0fc){
_0x563f38={
_0x83311b:0x11c,_0x4aacc8:0x130},_0x55185b={
_0x5037f1:0x84}
;
return StartPairingMethod.run(this.backend,_0x1ca0fc);
}
.onCreateRoomInvitation(_0x16a7d3){
_0x428449={
_0x3e1662:0xb7,_0x3bdca8:0xcb,_0x50ab2a:0x2cf},_0x742f01={
_0xd7d6fd:0x81,_0x56800d:0xd3}
;
return CreateRoomInvitationMethod.run(this.backend,_0x16a7d3);
}
.onCreateIdentityInvitation(_0x5f5091){
return CreateIdentityInvitationMethod.run(this.backend,_0x5f5091);
}
.onAcceptJoinRequest(_0x29f35a){
_0x4eb56e={
_0xda2c8f:0xbb,_0x27ece5:0x7e,_0x4d515a:0x5d5},_0x47da29={
_0x4258da:0xb3,_0x2e925b:0xa4,_0xc57d6d:0x54}
;
return AcceptJoinRequestMethod.run(this.backend,_0x29f35a);
}
.onRejectJoinRequest(_0x32305f){
_0x403aa3={
_0x4927df:0xb0,_0x528637:0xa9,_0x1818bb:0x1fe},_0x567512={
_0x36a35c:0x1d8,_0x29f8b8:0x1d3}
;
return RejectJoinRequestMethod.run(this.backend,_0x32305f);
}
.onStopPairing(_0x2feaa5){
_0xc4c554={
_0x4003f1:0x1b0,_0x2e4072:0x1ee,_0x4fd313:0x115}
;
return StopPairingMethod.run(this.backend,_0x2feaa5);
}
.onAddChatMessage(_0x7c0cf5){
_0x12c5ea={
_0x1c7a82:0xa8},_0xb2b912={
_0x154196:0x133,_0x1b2f99:0x13b}
;
return AddChatMessageMethod.run(this.backend,_0x7c0cf5);
}
.onEditChatMessage(_0x24d3da){
_0x415d33={
_0x13116b:0xf1,_0x326de9:0x187,_0xdec197:0x389},_0x3d4ee0={
_0x5ca00c:0x11e,_0x597bc1:0xbd,_0x19dc63:0x4d0}
;
return EditChatMessageMethod.run(this.backend,_0x24d3da);
}
.onRemoveChatMessage(_0x22ba4c){
_0x50445b={
_0x53bdd5:0xd7,_0x96cc3b:0x1d5},_0x57d78b={
_0x4cec94:0x191,_0x338178:0x167}
;
return RemoveChatMessageMethod.run(this.backend,_0x22ba4c);
}
.onAddChatReaction(_0x402811){
_0x58c9b4={
_0x5cc39c:0x56,_0x44c32d:0x16d},_0x500d6d={
_0x245e7e:0x1b4}
;
return AddChatReactionMethod.run(this.backend,_0x402811);
}
.onRemoveChatReaction(_0xf866ca){
_0x434777={
_0x4b227b:0x1b5,_0x53e716:0x41e},_0x1ff465={
_0x46a695:0x3}
;
return RemoveChatReactionMethod.run(this.backend,_0xf866ca);
}
}
;
function formatMessage(_0x947bae){
_0x3858ce={
_0x115b9d:0xe1,_0x4bf8cc:0x178,_0x151aa6:0x46a},_0x532959={
_0x273134:0x1,_0x1f00d1:0xf}
;
return{
'id':_0x947bae.oplog,'clock':_0x947bae.clock,'timestamps':{
'sent':_0x947bae.timestamp,'edited':_0x947bae.editedAt},'status':_0x947bae.status,'message':_0x947bae.message,'event':_0x947bae.event}
;
}
function formatRoomRole(_0x5645d0){
_0x4fa569={
_0x19cdfc:0x112,_0x3f2ac0:0xa0,_0x114e6a:0x324},_0x301464={
_0x50925c:0x1b7,_0x29eb54:0x319}
;
return{
'member':_0x5645d0.selfMember?..status,'device':_0x5645d0.status}
;
}
function pushRoomInfo(_0x364d28,_0x20f717,_0x5f01ea){
_0x2f418c={
_0x3236a5:0xcd,_0x43c809:0x48,_0x5f3a3a:0xd6},_0x5567a9={
_0x2c86a1:0x31,_0x391047:0x32,_0x231033:0x90}
;
let _0x2b9342=null;
_0x5f01ea.lastMessage&&(_0x364d28.members.add(_0x5f01ea.lastMember),_0x2b9342=_0x364d28.messageInfo.onAdd({'chat':formatMessage(_0x5f01ea.lastMessage),'memberKey':_0x5f01ea.lastMember.key,'role':_0x5f01ea.lastMember.status}));
const _0x37d1eb={
'id':_0x5f01ea.roomKey,'digest':_0x5f01ea.digest,'config':_0x5f01ea.config,'messageId':_0x2b9342?..id,'role':formatRoomRole(_0x5f01ea)}
;
_0x364d28.roomInfo.onAdd(_0x37d1eb,{'cacheId':_0x20f717});
}
function pushRoomLastMessage(_0x550d8f,_0x179625,_0x5704a5){
_0x2e8b16={
_0xaeefff:0x23},_0x26cc50={
_0x4331cf:0x32,_0x9180e1:0x1dc,_0x1b834a:0x610}
;
if(!_0x5704a5.lastMessage)return;
_0x550d8f.members.add(_0x5704a5.lastMember);
const _0x3ec88b=_0x550d8f.messageInfo.onAdd({'chat':formatMessage(_0x5704a5.lastMessage),'memberKey':_0x5704a5.lastMember.key,'role':_0x5704a5.lastMember.status});
_0x550d8f.roomInfo.onLastMessageChanged({'id':_0x179625,'messageId':_0x3ec88b.id});
}