OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-push / lib / encoding.js

43 lines · javascript ref:
const e = require("compact-encoding"),
  o = "io.keet.app",
  d = (global.Pear ? global.Pear.config.appId : null) || o,
  n = {
    preencode(n, r) {
      ;(e.uint.preencode(n, r.version),
        e.fixed32.preencode(n, r.roomDiscoveryKey),
        e.buffer.preencode(n, r.payload),
        d !== o && e.string.preencode(n, d))
    },
    encode(n, r) {
      ;(e.uint.encode(n, r.version),
        e.fixed32.encode(n, r.roomDiscoveryKey),
        e.buffer.encode(n, r.payload),
        d !== o && e.string.encode(n, d))
    },
    decode(d) {
      const n = e.uint.decode(d)
      if (0 !== n && 1 !== n) throw new Error("Unknown version: " + n)
      return {
        version: n,
        roomDiscoveryKey: e.fixed32.decode(d),
        payload: e.buffer.decode(d),
        appId: d.start < d.end ? e.string.decode(d) : o,
      }
    },
  },
  r = {
    preencode(o, d) {
      ;(e.buffer.preencode(o, d.proof), e.uint.preencode(o, 0), e.buffer.preencode(o, d.attest))
    },
    encode(o, d) {
      ;(e.buffer.encode(o, d.proof),
        e.uint.encode(o, d.attest ? 1 : 0),
        d.attest && e.buffer.encode(o, d.attest))
    },
    decode: (o) => ({
      proof: e.buffer.decode(o),
      attest: 1 & e.uint.decode(o) ? e.buffer.decode(o) : null,
    }),
  }
module.exports = { notification: n, payload: r }