const e = require("compact-encoding"),
{ CONFIG: a } = require("@holepunchto/keet-core-api"),
r = require("../internal"),
{ UpdateConfigOperationV1: t, UpdateConfigOperationV2: s } = require("./ops"),
{ MirrorRecord: n } = require("./messages.js"),
{ MessageId: c } = require("../chat/messages.js")
module.exports = class i {
static Encoding = r.ConfigEncoding
static Operations = { UpdateConfigOperationV1: t, UpdateConfigOperationV2: s }
static Collection = { keyEncoding: e.uint, valueEncoding: e.any }
static PinnedMessages = e.array(c)
static Mirrors = e.array(n)
static getValue(e) {
if (!e || !e.value) return null
const { key: a, value: r } = e
return i.decodeValue(a, r)
}
static decodeValue(e, a) {
return i.encodeValue(e, a, !0)
}
static encodeValue(r, t, s = !1) {
const n = s ? e.decode : e.encode
switch (r) {
case a.ID_PUBLIC_KEY:
case a.ID_SHARED_INVITE_SEED:
case a.ID_RECOVERY_PHRASE:
case a.ROOM_TITLE:
case a.ROOM_DESCRIPTION:
case a.ROOM_AVATAR:
case a.ROOM_TYPE:
case a.ROOM_CAN_CALL:
return n(e.string, t)
case a.PINNED_MESSAGES:
return n(i.PinnedMessages, t)
case a.ROOM_MIRRORS:
return n(i.Mirrors, t)
case a.ROOM_LOCKED:
case a.DISABLE_MEMBERSHIP_EVENTS:
return n(e.uint, t)
default:
return n(e.string, t)
}
}
}