OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-core / schema / spec / config / hyperschema / index.js

264 lines · javascript ref:
const { c: e } = require("hyperschema/runtime"),
  d = 7
let n = 7
const o = {
    preencode(d, o) {
      ;(e.uint.preencode(d, o.minimum),
        d.end++,
        o.autoupgrade && e.uint.preencode(d, o.autoupgrade),
        n >= 3 && o.forceUpdate && e.uint.preencode(d, o.forceUpdate),
        n >= 4 && o.minVersion && x.preencode(d, o.minVersion),
        n >= 7 && o.stable && e.uint.preencode(d, o.stable))
    },
    encode(d, o) {
      const c =
        (o.autoupgrade ? 1 : 0) |
        (n >= 3 && o.forceUpdate ? 2 : 0) |
        (n >= 4 && o.minVersion ? 4 : 0) |
        (n >= 7 && o.stable ? 8 : 0)
      ;(e.uint.encode(d, o.minimum),
        e.uint.encode(d, c),
        o.autoupgrade && e.uint.encode(d, o.autoupgrade),
        n >= 3 && o.forceUpdate && e.uint.encode(d, o.forceUpdate),
        n >= 4 && o.minVersion && x.encode(d, o.minVersion),
        n >= 7 && o.stable && e.uint.encode(d, o.stable))
    },
    decode(d) {
      const o = e.uint.decode(d),
        c = e.uint.decode(d)
      return {
        minimum: o,
        autoupgrade: 1 & c ? e.uint.decode(d) : 0,
        forceUpdate: n >= 3 && 2 & c ? e.uint.decode(d) : 0,
        minVersion: n >= 4 && 4 & c ? x.decode(d) : null,
        stable: n >= 7 && 8 & c ? e.uint.decode(d) : 0,
      }
    },
  },
  c = e.array(e.fixed32),
  r = {
    preencode(d, n) {
      ;(e.fixed32.preencode(d, n.db),
        e.fixed32.preencode(d, n.reserved),
        e.fixed32.preencode(d, n.blobs),
        c.preencode(d, n.rpc))
    },
    encode(d, n) {
      ;(e.fixed32.encode(d, n.db),
        e.fixed32.encode(d, n.reserved),
        e.fixed32.encode(d, n.blobs),
        c.encode(d, n.rpc))
    },
    decode: (d) => ({
      db: e.fixed32.decode(d),
      reserved: e.fixed32.decode(d),
      blobs: e.fixed32.decode(d),
      rpc: c.decode(d),
    }),
  },
  i = e.array(e.frame(r)),
  s = c,
  t = c,
  u = c,
  a = c,
  l = {
    preencode(d, n) {
      ;(d.end++,
        n.userRegistries && i.preencode(d, n.userRegistries),
        n.blindPeers && s.preencode(d, n.blindPeers),
        n.blindRelays && t.preencode(d, n.blindRelays),
        n.gatekeepers && u.preencode(d, n.gatekeepers),
        n.discovery && a.preencode(d, n.discovery),
        n.feedback && e.fixed32.preencode(d, n.feedback))
    },
    encode(d, n) {
      const o =
        (n.userRegistries ? 1 : 0) |
        (n.blindPeers ? 2 : 0) |
        (n.blindRelays ? 4 : 0) |
        (n.gatekeepers ? 8 : 0) |
        (n.discovery ? 16 : 0) |
        (n.feedback ? 32 : 0)
      ;(e.uint.encode(d, o),
        n.userRegistries && i.encode(d, n.userRegistries),
        n.blindPeers && s.encode(d, n.blindPeers),
        n.blindRelays && t.encode(d, n.blindRelays),
        n.gatekeepers && u.encode(d, n.gatekeepers),
        n.discovery && a.encode(d, n.discovery),
        n.feedback && e.fixed32.encode(d, n.feedback))
    },
    decode(d) {
      const n = e.uint.decode(d)
      return {
        userRegistries: 1 & n ? i.decode(d) : null,
        blindPeers: 2 & n ? s.decode(d) : null,
        blindRelays: 4 & n ? t.decode(d) : null,
        gatekeepers: 8 & n ? u.decode(d) : null,
        discovery: 16 & n ? a.decode(d) : null,
        feedback: 32 & n ? e.fixed32.decode(d) : null,
      }
    },
  },
  p = c,
  f = c,
  b = {
    preencode(e, d) {
      ;(e.end++,
        d.disabled && p.preencode(e, d.disabled),
        n >= 6 && d.verified && f.preencode(e, d.verified))
    },
    encode(d, o) {
      const c = (o.disabled ? 1 : 0) | (n >= 6 && o.verified ? 2 : 0)
      ;(e.uint.encode(d, c),
        o.disabled && p.encode(d, o.disabled),
        n >= 6 && o.verified && f.encode(d, o.verified))
    },
    decode(d) {
      const o = e.uint.decode(d)
      return {
        disabled: 1 & o ? p.decode(d) : null,
        verified: n >= 6 && 2 & o ? f.decode(d) : null,
      }
    },
  },
  m = e.frame(o),
  g = e.frame(l),
  v = e.frame(b),
  y = {
    preencode(e, d) {
      ;(m.preencode(e, d.versions),
        e.end++,
        d.services && g.preencode(e, d.services),
        d.rooms && v.preencode(e, d.rooms),
        n >= 2 && d.profile && h.preencode(e, d.profile),
        n >= 5 && d.debug && U.preencode(e, d.debug))
    },
    encode(d, o) {
      const c =
        (o.services ? 1 : 0) |
        (o.rooms ? 2 : 0) |
        (n >= 2 && o.profile ? 4 : 0) |
        (n >= 5 && o.debug ? 8 : 0)
      ;(m.encode(d, o.versions),
        e.uint.encode(d, c),
        o.services && g.encode(d, o.services),
        o.rooms && v.encode(d, o.rooms),
        n >= 2 && o.profile && h.encode(d, o.profile),
        n >= 5 && o.debug && U.encode(d, o.debug))
    },
    decode(d) {
      const o = m.decode(d),
        c = e.uint.decode(d)
      return {
        versions: o,
        services: 1 & c ? g.decode(d) : null,
        rooms: 2 & c ? v.decode(d) : null,
        profile: n >= 2 && 4 & c ? h.decode(d) : null,
        debug: n >= 5 && 8 & c ? U.decode(d) : null,
      }
    },
  },
  k = {
    preencode(d, o) {
      ;(d.end++,
        n >= 7 &&
          o.otaResyncPrivateProfileBump &&
          e.uint.preencode(d, o.otaResyncPrivateProfileBump))
    },
    encode(d, o) {
      const c =
        (n >= 2 && o.disableUnreadSync ? 1 : 0) | (n >= 7 && o.otaResyncPrivateProfileBump ? 2 : 0)
      ;(e.uint.encode(d, c),
        n >= 7 && o.otaResyncPrivateProfileBump && e.uint.encode(d, o.otaResyncPrivateProfileBump))
    },
    decode(d) {
      const o = e.uint.decode(d)
      return {
        disableUnreadSync: n >= 2 && !!(1 & o),
        otaResyncPrivateProfileBump: n >= 7 && 2 & o ? e.uint.decode(d) : 0,
      }
    },
  },
  P = {
    preencode(d, n) {
      ;(e.uint.preencode(d, n.major), e.uint.preencode(d, n.minor), e.uint.preencode(d, n.patch))
    },
    encode(d, n) {
      ;(e.uint.encode(d, n.major), e.uint.encode(d, n.minor), e.uint.encode(d, n.patch))
    },
    decode: (d) => ({ major: e.uint.decode(d), minor: e.uint.decode(d), patch: e.uint.decode(d) }),
  },
  R = {
    preencode(d, o) {
      ;(d.end++, n >= 5 && o.unlockHash && e.fixed32.preencode(d, o.unlockHash))
    },
    encode(d, o) {
      const c = n >= 5 && o.unlockHash ? 1 : 0
      ;(e.uint.encode(d, c), n >= 5 && o.unlockHash && e.fixed32.encode(d, o.unlockHash))
    },
    decode(d) {
      const o = e.uint.decode(d)
      return { unlockHash: n >= 5 && 1 & o ? e.fixed32.decode(d) : null }
    },
  },
  x = e.frame(P),
  h = e.frame(k),
  U = e.frame(R)
function V(e) {
  n = e
}
function B(d, o, c = 7) {
  return ((n = c), e.encode(w(d), o))
}
function E(d, o, c = 7) {
  return ((n = c), e.decode(w(d), o))
}
function H(e) {
  throw new Error("Enum not found " + e)
}
function w(e) {
  switch (e) {
    case "@config/versions":
      return o
    case "@config/user-registry":
      return r
    case "@config/services":
      return l
    case "@config/rooms":
      return b
    case "@config/keet-config":
      return y
    case "@config/profile":
      return k
    case "@config/semver":
      return P
    case "@config/debug":
      return R
    default:
      throw new Error("Encoder not found " + e)
  }
}
function S(e, d = 7) {
  const o = w(e)
  return {
    preencode(e, c) {
      ;((n = d), o.preencode(e, c))
    },
    encode(e, c) {
      ;((n = d), o.encode(e, c))
    },
    decode: (e) => ((n = d), o.decode(e)),
  }
}
const j = S
module.exports = {
  resolveStruct: j,
  getStruct: S,
  getEnum: H,
  getEncoding: w,
  encode: B,
  decode: E,
  setVersion: V,
  version: n,
}