OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / legacy-keet-core-schemas / lib / mailbox / messages.js

111 lines · javascript ref:
const e = require("compact-encoding"),
  { MemberId: n } = require("../members/messages"),
  { MessageId: d } = require("../chat/messages"),
  i = {
    preencode(d, i) {
      ;(n.preencode(d, i.key), e.uint.preencode(d, i.seq))
    },
    encode(d, i) {
      ;(n.encode(d, i.key), e.uint.encode(d, i.seq))
    },
    decode: (d) => ({ key: n.decode(d), seq: e.uint.decode(d) }),
  },
  o = {
    preencode(n, d) {
      let i = 0
      ;(d.link && (i |= 1),
        e.uint.preencode(n, i),
        e.uint.preencode(n, d.timestamp),
        d.link && e.buffer.preencode(n, d.link))
    },
    encode(n, d) {
      let i = 0
      ;(d.link && (i |= 1),
        e.uint.encode(n, i),
        e.uint.encode(n, d.timestamp),
        d.link && e.buffer.encode(n, d.link))
    },
    decode(n) {
      const d = e.uint.decode(n)
      return { timestamp: e.uint.decode(n), link: 1 & d ? e.buffer.decode(n) : null }
    },
  },
  t = {
    preencode(n, i) {
      let o = 0
      ;(i.data && (o |= 1),
        i.id && (o |= 2),
        e.uint.preencode(n, o),
        i.data && e.buffer.preencode(n, i.data),
        i.id && d.preencode(n, i.id))
    },
    encode(n, i) {
      let o = 0
      ;(i.data && (o |= 1),
        i.id && (o |= 2),
        e.uint.encode(n, o),
        i.data && e.buffer.encode(n, i.data),
        i.id && d.encode(n, i.id))
    },
    decode(n) {
      const i = e.uint.decode(n)
      return { data: 1 & i ? e.buffer.decode(n) : null, id: 2 & i ? d.decode(n) : null }
    },
  },
  c = {
    preencode(n, d) {
      let i = 0
      ;(d.message && (i |= 1),
        d.invitation && (i |= 2),
        e.uint.preencode(n, i),
        e.uint.preencode(n, d.type),
        e.uint.preencode(n, d.timestamp),
        e.buffer.preencode(n, d.senderKey),
        d.message && e.string.preencode(n, d.message),
        d.invitation && e.string.preencode(n, d.invitation))
    },
    encode(n, d) {
      let i = 0
      ;(d.message && (i |= 1),
        d.invitation && (i |= 2),
        e.uint.encode(n, i),
        e.uint.encode(n, d.type),
        e.uint.encode(n, d.timestamp),
        e.buffer.encode(n, d.senderKey),
        d.message && e.string.encode(n, d.message),
        d.invitation && e.string.encode(n, d.invitation))
    },
    decode(n) {
      const d = e.uint.decode(n)
      return {
        type: e.uint.decode(n),
        timestamp: e.uint.decode(n),
        senderKey: e.buffer.decode(n),
        message: 1 & d ? e.string.decode(n) : null,
        invitation: 2 & d ? e.string.decode(n) : null,
      }
    },
  },
  r = {
    preencode(n, d) {
      let i = 0
      ;(d.blindingKey && (i |= 1),
        e.uint.preencode(n, i),
        d.blindingKey && e.fixed32.preencode(n, d.blindingKey))
    },
    encode(n, d) {
      let i = 0
      ;(d.blindingKey && (i |= 1),
        e.uint.encode(n, i),
        d.blindingKey && e.fixed32.encode(n, d.blindingKey))
    },
    decode: (n) => ({ blindingKey: 1 & e.uint.decode(n) ? e.fixed32.decode(n) : null }),
  }
module.exports = {
  MailboxRecordId: i,
  MailboxRecord: o,
  MailboxRecordV2: t,
  MailboxRecordData: c,
  OpenMailboxRecord: r,
}