OverviewFilesCommitsIssuesDocsReleasesPeers

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

241 lines · javascript ref:
const { c: e } = require("hyperschema/runtime"),
  d = 5
let n = 5
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 && h.preencode(d, o.minVersion))
    },
    encode(d, o) {
      const c =
        (o.autoupgrade ? 1 : 0) |
        (n >= 3 && o.forceUpdate ? 2 : 0) |
        (n >= 4 && o.minVersion ? 4 : 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 && h.encode(d, o.minVersion))
    },
    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 ? h.decode(d) : null,
      }
    },
  },
  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 = {
    preencode(e, d) {
      ;(e.end++, d.disabled && p.preencode(e, d.disabled))
    },
    encode(d, n) {
      const o = n.disabled ? 1 : 0
      ;(e.uint.encode(d, o), n.disabled && p.encode(d, n.disabled))
    },
    decode: (d) => ({ disabled: 1 & e.uint.decode(d) ? p.decode(d) : null }),
  },
  b = e.frame(o),
  m = e.frame(l),
  g = e.frame(f),
  v = {
    preencode(e, d) {
      ;(b.preencode(e, d.versions),
        e.end++,
        d.services && m.preencode(e, d.services),
        d.rooms && g.preencode(e, d.rooms),
        n >= 2 && d.profile && R.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)
      ;(b.encode(d, o.versions),
        e.uint.encode(d, c),
        o.services && m.encode(d, o.services),
        o.rooms && g.encode(d, o.rooms),
        n >= 2 && o.profile && R.encode(d, o.profile),
        n >= 5 && o.debug && U.encode(d, o.debug))
    },
    decode(d) {
      const o = b.decode(d),
        c = e.uint.decode(d)
      return {
        versions: o,
        services: 1 & c ? m.decode(d) : null,
        rooms: 2 & c ? g.decode(d) : null,
        profile: n >= 2 && 4 & c ? R.decode(d) : null,
        debug: n >= 5 && 8 & c ? U.decode(d) : null,
      }
    },
  },
  k = {
    preencode(e, d) {
      e.end++
    },
    encode(d, o) {
      const c = n >= 2 && o.disableUnreadSync ? 1 : 0
      e.uint.encode(d, c)
    },
    decode(d) {
      const o = e.uint.decode(d)
      return { disableUnreadSync: n >= 2 && !!(1 & o) }
    },
  },
  y = {
    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) }),
  },
  x = {
    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 }
    },
  },
  h = e.frame(y),
  R = e.frame(k),
  U = e.frame(x)
function V(e) {
  n = e
}
function E(d, o, c = 5) {
  return ((n = c), e.encode(w(d), o))
}
function H(d, o, c = 5) {
  return ((n = c), e.decode(w(d), o))
}
function P(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 f
    case "@config/keet-config":
      return v
    case "@config/profile":
      return k
    case "@config/semver":
      return y
    case "@config/debug":
      return x
    default:
      throw new Error("Encoder not found " + e)
  }
}
function S(e, d = 5) {
  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: P,
  getEncoding: w,
  encode: E,
  decode: H,
  setVersion: V,
  version: n,
}