const e = require("compact-encoding"),
{ MemberId: i } = require("../members/messages.js"),
n = {
TYPE: 14,
preencode(i, n) {
;(i.end++,
e.fixed32.preencode(i, n.key),
e.fixed32.preencode(i, n.noisePublicKey),
n.capabilities && e.uint.preencode(i, n.capabilities),
n.invitation && e.fixed32.preencode(i, n.invitation),
n.receipt && e.buffer.preencode(i, n.receipt))
},
encode(i, n) {
const d = i.start++
;(e.fixed32.encode(i, n.key), e.fixed32.encode(i, n.noisePublicKey))
let c = 0
;(n.capabilities && ((c |= 1), e.uint.encode(i, n.capabilities)),
n.invitation && ((c |= 2), e.fixed32.encode(i, n.invitation)),
n.receipt && ((c |= 4), e.buffer.encode(i, n.receipt)),
n.isMobile && (c |= 8),
(i.buffer[d] = c))
},
decode(i) {
const n = e.uint.decode(i)
return {
key: e.fixed32.decode(i),
noisePublicKey: e.fixed32.decode(i),
capabilities: 1 & n ? e.uint.decode(i) : null,
invitation: 2 & n ? e.fixed32.decode(i) : null,
receipt: 4 & n ? e.buffer.decode(i) : null,
isMobile: !!(8 & n),
}
},
},
d = {
TYPE: 18,
preencode(i, n) {
;(i.end++,
e.fixed32.preencode(i, n.key),
e.fixed32.preencode(i, n.noisePublicKey),
n.capabilities && e.uint.preencode(i, n.capabilities),
n.invitation && e.fixed32.preencode(i, n.invitation),
n.receipt && e.buffer.preencode(i, n.receipt),
n.name && e.string.preencode(i, n.name))
},
encode(i, n) {
const d = i.start++
;(e.fixed32.encode(i, n.key), e.fixed32.encode(i, n.noisePublicKey))
let c = 0
;(n.capabilities && ((c |= 1), e.uint.encode(i, n.capabilities)),
n.invitation && ((c |= 2), e.fixed32.encode(i, n.invitation)),
n.receipt && ((c |= 4), e.buffer.encode(i, n.receipt)),
n.isMobile && (c |= 8),
n.name && ((c |= 16), e.string.encode(i, n.name)),
(i.buffer[d] = c))
},
decode(i) {
const n = e.uint.decode(i)
return {
key: e.fixed32.decode(i),
noisePublicKey: e.fixed32.decode(i),
capabilities: 1 & n ? e.uint.decode(i) : null,
invitation: 2 & n ? e.fixed32.decode(i) : null,
receipt: 4 & n ? e.buffer.decode(i) : null,
isMobile: !!(8 & n),
name: 16 & n ? e.string.decode(i) : null,
}
},
},
c = {
TYPE: 19,
preencode(i, n) {
;(i.end++, n.name && e.string.preencode(i, n.name))
},
encode(i, n) {
const d = i.start++
let c = 0
;(n.isMobile && (c |= 1), n.name && ((c |= 2), e.string.encode(i, n.name)), (i.buffer[d] = c))
},
decode(i) {
const n = e.uint.decode(i)
return { isMobile: !!(1 & n), name: 2 & n ? e.string.decode(i) : null }
},
},
o = {
TYPE: 15,
preencode(e, n) {
i.preencode(e, n.key)
},
encode(e, n) {
i.encode(e, n.key)
},
decode: (e) => ({ key: i.decode(e) }),
},
t = {
TYPE: 27,
preencode(e, n) {
i.preencode(e, n.key)
},
encode(e, n) {
i.encode(e, n.key)
},
decode: (e) => ({ key: i.decode(e) }),
}
module.exports = {
AddDeviceOperationV1: n,
AddDeviceOperationV2: d,
UpdateDeviceOperation: c,
RemoveDeviceOperationV1: o,
RemoveDeviceOperationV2: t,
}