const e = require("compact-encoding"),
{ InternalOperation: o } = require("../internal/ops"),
{ UpdateConfigOperationV1: i, UpdateConfigOperationV2: t } = require("../config/ops"),
{
AddChatMessageOperation: r,
UpdateChatMessageOperation: n,
RemoveChatMessageOperation: a,
AddGenericEventOperation: p,
RemoveGenericEventOperation: d,
AddFileOperation: O,
RemoveFileOperation: s,
} = require("../chat/ops"),
{
UpdateMemberOperationV1: c,
UpdateMemberOperationV2: v,
RemoveMemberOperation: m,
ChangeMemberRoleOperation: u,
MuteMemberOperation: l,
UnmuteMemberOperation: R,
} = require("../members/ops"),
{ AddReactionOperation: M, RemoveReactionOperation: A } = require("../reactions/ops"),
{
AddInvitationOperationV1: b,
AddInvitationOperationV2: g,
RemoveInvitationOperation: q,
} = require("../invitations/ops"),
{
AddDeviceOperationV1: D,
AddDeviceOperationV2: V,
UpdateDeviceOperation: x,
RemoveDeviceOperationV1: P,
RemoveDeviceOperationV2: U,
} = require("../devices/ops"),
{ PluginOperation: h } = require("../plugins/ops"),
{
AddDmRequestOperation: y,
RemoveDmRequestOperation: f,
AddMailboxRecordOperation: C,
RemoveMailboxRecordOperation: E,
OldOpenMailboxOperation: I,
OpenMailboxOperation: w,
} = require("../mailbox/ops"),
{
AddPrivateMailboxRecordOperation: T,
UpdatePrivateMailboxRecordOperation: Y,
} = require("../private-mailbox/ops"),
{ AddPrivateRoomOperation: F, RemovePrivateRoomOperation: G } = require("../private-rooms/ops"),
{
AddDeviceKeyOperation: K,
AddDeviceAttestationOperation: $,
} = require("../private-devices/ops"),
j = [o],
k = [
h,
O,
s,
r,
a,
n,
p,
d,
M,
A,
c,
v,
m,
u,
l,
R,
i,
t,
b,
g,
q,
D,
V,
x,
P,
U,
I,
w,
y,
f,
C,
E,
T,
Y,
F,
G,
K,
$,
],
z = [...j, ...k],
B = new Map()
for (const e of z) {
if (B.has(e.TYPE)) throw new Error(`Duplicate oplog message type: ${e.TYPE}`)
B.set(e.TYPE, e)
}
const H = {
preencode(o, i) {
const t = B.get(i.type)
;(e.uint.preencode(o, i.type), t.preencode(o, i.value))
},
encode(o, i) {
const t = B.get(i.type)
;(e.uint.encode(o, i.type), t.encode(o, i.value))
},
decode(o) {
const i = e.uint.decode(o)
return { type: i, value: B.get(i).decode(o) }
},
}
module.exports = { AllOperations: z, KeetOperation: H }