OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-core-schemas / lib / keet / ops.js

114 lines · javascript ref:
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 }