const e=require("b4a"),s=require("safety-catch"),t=require("./loader");module.exports=class{constructor(e,s,a){this.keet=e,this.view=s,this.engine=a,this.loader=new t(e.local,s,a,{latestMessagesLimit:16,latestRoomsLimit:3}),this.messages=0,this.members=0,this.rooms=0,this.last=null}async run(){try{await this._run()}catch(e){s(e)}}async _run(){try{if(this._failing())throw new Error("debug: room warmup failed");await this.loader.ready();const[e,s,t,a,i,o,l,r,d]=await Promise.all([this.loader.loadIdentity(),this.loader.loadLatestRooms(),this.loader.loadLatestMessages(),this.loader.loadLatestMembers(),this.loader.loadLatestMessageDetails(),this.loader.loadDigest(),this.loader.loadConfig(),this.loader.loadSelfMember(),this.loader.loadSelfDevice()]);this.messages=t.length,this.members=a.length,this.rooms=s.length,this.last={digest:o,config:l,selfMember:r,selfDevice:d,identity:e,messages:t,members:a,details:i,rooms:s}}finally{await this.loader.close()}}_failing(){const s=this.keet.debugFailRoomWarmup;return!!s&&e.equals(s,this.engine.key)}},module.exports.CHAT_MESSAGES_LIMIT=16,module.exports.ROOMS_LIMIT=3;