OverviewFilesCommitsIssuesDocsReleasesPeers

keet-cli / keet-core-4.14.4-pretty / schema / spec / config / hyperschema / index.js

252 lines · javascript ref:
const { c: e } = require("hyperschema/runtime"),
  d = 6
let n = 6
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 && R.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 && R.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 ? R.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 = 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),
  k = {
    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 && U.preencode(e, d.profile),
        n >= 5 && d.debug && V.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 && U.encode(d, o.profile),
        n >= 5 && o.debug && V.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 ? U.decode(d) : null,
        debug: n >= 5 && 8 & c ? V.decode(d) : null,
      }
    },
  },
  y = {
    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) }
    },
  },
  x = {
    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) }),
  },
  h = {
    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 }
    },
  },
  R = e.frame(x),
  U = e.frame(y),
  V = e.frame(h)
function E(e) {
  n = e
}
function H(d, o, c = 6) {
  return ((n = c), e.encode(S(d), o))
}
function P(d, o, c = 6) {
  return ((n = c), e.decode(S(d), o))
}
function w(e) {
  throw new Error("Enum not found " + e)
}
function S(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 k
    case "@config/profile":
      return y
    case "@config/semver":
      return x
    case "@config/debug":
      return h
    default:
      throw new Error("Encoder not found " + e)
  }
}
function j(e, d = 6) {
  const o = S(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 q = j
module.exports = {
  resolveStruct: q,
  getStruct: j,
  getEnum: w,
  getEncoding: S,
  encode: H,
  decode: P,
  setVersion: E,
  version: n,
}