OverviewFilesCommitsIssuesDocsReleasesPeers

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

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