const e=require("./registration"),{addEvent:r}=require("./chat"),{isMemberActive:t,getMemberForDeviceKey:i}=require("./query"),{updateAvatar:a}=require("./avatars"),{KeetContractError:o}=require("./errors"),{trackActivity:n}=require("./hooks"),s=["title","description","avatar","supportedLanguages","blindPeers"],l={Title:1,Description:2,Avatar:3,SupportedLanguages:4,BlindPeers:5};async function u({header:e,key:n,config:u},{db:c,writer:d}){const[g,m]=await Promise.all([i(c,d.key),c.get("@keet/room-config")]);if(!t(g)||!g.status.isModerator)return;if(0===n||n>s.length)return;const f=s[n-1],p={...m,[f]:u[f]};if(n===l.Avatar){const e=m&&m[f],r=u[f];if(null!==r.small&&!r.small?.pointer?.inlined)throw o.ABORT();const t=null!==r.small?await a(c,e,r):null;p[f]=t}if(n===l.Title){const t=m&&m[f],i=u[f];t&&t!==i&&await r(c,d,{titleChanged:{from:t,to:i}},e.timestamp)}return n===l.BlindPeers&&(p[f]=u[f].slice(0,10)),await c.insert("@keet/room-config",p),{writer:d,writerMember:g}}module.exports={[e]:function(e){e.add("@keet/update-room-config",n(u))},CONFIG_INDEX_TO_KEY:s,Config:l};