OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / hyperdiscovery / spec / hyperdb / index.js

105 lines · javascript ref:
const { IndexEncoder: e, c: n } = require("hyperdb/runtime"),
  { version: t, getEncoding: c, setVersion: o } = require("./messages.js"),
  r = new e([], { prefix: 0 })
function l(e) {
  return []
}
const d = c("@hyperdiscovery/manifest")
function s(e, t, c) {
  return (o(e), n.decode(d, c))
}
function u(e) {
  return {}
}
const i = {
    name: "@hyperdiscovery/manifest",
    id: 0,
    encodeKey: (e) => r.encode([]),
    encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: c } = {}) =>
      r.encodeRange({
        gt: e ? l(e) : null,
        lt: n ? l(n) : null,
        gte: t ? l(t) : null,
        lte: c ? l(c) : null,
      }),
    encodeValue: (e, t) => (o(e), n.encode(d, t)),
    trigger: null,
    reconstruct: s,
    reconstructKey: u,
    indexes: [],
  },
  y = new e([e.BUFFER], { prefix: 1 })
function a(e) {
  const n = e.publicKey
  return void 0 === n ? [] : [n]
}
const g = c("@hyperdiscovery/swarm/hyperdb#1")
function p(e, t, c) {
  const r = y.decode(t)
  o(e)
  const l = n.decode(g, c)
  return ((l.publicKey = r[0]), l)
}
function f(e) {
  return { publicKey: y.decode(e)[0] }
}
const m = {
    name: "@hyperdiscovery/swarms",
    id: 1,
    encodeKey(e) {
      const n = [e.publicKey]
      return y.encode(n)
    },
    encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: c } = {}) =>
      y.encodeRange({
        gt: e ? a(e) : null,
        lt: n ? a(n) : null,
        gte: t ? a(t) : null,
        lte: c ? a(c) : null,
      }),
    encodeValue: (e, t) => (o(e), n.encode(g, t)),
    trigger: null,
    reconstruct: p,
    reconstructKey: f,
    indexes: [],
  },
  v = new e([e.UINT], { prefix: 2 })
function K(e) {
  const n = e.updated
  return void 0 === n ? [] : [n]
}
const h = {
  name: "@hyperdiscovery/swarms-by-updated",
  id: 2,
  encodeKey: (e) => v.encode(K(e)),
  encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: c } = {}) =>
    v.encodeRange({
      gt: e ? K(e) : null,
      lt: n ? K(n) : null,
      gte: t ? K(t) : null,
      lte: c ? K(c) : null,
    }),
  encodeValue: (e) => h.collection.encodeKey(e),
  encodeIndexKeys: (e, n) => [v.encode([e.updated])],
  reconstruct: (e, n) => n,
  offset: m.indexes.length,
  collection: m,
}
m.indexes.push(h)
const x = [i, m],
  w = [h]
function b(e) {
  switch (e) {
    case "@hyperdiscovery/manifest":
      return i
    case "@hyperdiscovery/swarms":
      return m
    default:
      return null
  }
}
function R(e) {
  return "@hyperdiscovery/swarms-by-updated" === e ? h : null
}
module.exports = { version: t, collections: x, indexes: w, resolveCollection: b, resolveIndex: R }