const e = require("path"),
r = require("hyperschema"),
i = require("hyperdb/builder"),
n = e.join(__dirname, "./spec/hyperschema"),
s = e.join(__dirname, "./spec/hyperdb"),
a = r.from(n, { versioned: !1 }),
m = a.namespace("hyperdiscovery")
;(m.register({
name: "manifest",
fields: [
{ name: "version", type: "uint", required: !0 },
{ name: "seed", type: "fixed32", required: !0 },
],
}),
m.register({
name: "swarm",
fields: [
{ name: "publicKey", type: "fixed32", required: !0 },
{ name: "bumped", type: "uint" },
{ name: "updated", type: "uint" },
{ name: "signature", type: "fixed64" },
],
}),
m.register({ name: "announce", fields: [{ name: "bump", type: "uint" }] }),
m.register({
name: "announce-to-swarm",
fields: [
{ name: "publicKey", type: "fixed32", required: !0 },
{ name: "announce", type: "@hyperdiscovery/announce", required: !0 },
{ name: "signature", type: "fixed64", required: !0 },
],
}),
m.register({
name: "subscribe-to-swarm",
fields: [
{ name: "publicKey", type: "fixed32", required: !0 },
{ name: "since", type: "uint", required: !0 },
],
}),
m.register({
name: "unsubscribe-to-swarm",
fields: [{ name: "publicKey", type: "fixed32", required: !0 }],
}),
m.register({
name: "bump-from-swarm",
fields: [
{ name: "publicKey", type: "fixed32", required: !0 },
{ name: "bumped", type: "uint", required: !0 },
],
}),
r.toDisk(a))
const t = i.from(n, s),
d = t.namespace("hyperdiscovery")
;(d.collections.register({ name: "manifest", schema: "@hyperdiscovery/manifest", key: [] }),
d.collections.register({ name: "swarms", schema: "@hyperdiscovery/swarm", key: ["publicKey"] }),
d.indexes.register({
name: "swarms-by-updated",
collection: "@hyperdiscovery/swarms",
key: ["updated"],
unique: !0,
}),
i.toDisk(t))