OverviewFilesCommitsIssuesDocsReleasesPeers

keet-cli / keet-core-4.14.4-pretty / schema / builder / local / hyperdb.js

218 lines · javascript ref:
const e = require("path")
module.exports = function (o) {
  const i = o.namespace("local")
  ;(i.require(e.join(__dirname, "../../../lib/core/hyperdb/local/local.js")),
    i.collections.register({ name: "stats", schema: "@local/stats", key: [] }),
    i.collections.register({ name: "migrations", schema: "@local/migration-status", key: [] }),
    i.collections.register({
      name: "room-migration-stats",
      schema: "@local/room-migration-stats",
      key: [],
    }),
    i.collections.register({
      name: "room-migrations",
      schema: "@local/room-migration",
      key: ["roomKey"],
      trigger: "roomMigrationsTrigger",
    }),
    i.indexes.register({
      name: "room-migrations-by-priority",
      collection: "@local/room-migrations",
      key: ["priority"],
    }),
    i.collections.register({ name: "identity", schema: "@local/identity-record", key: [] }),
    i.collections.register({ name: "hyperdht", schema: "@local/hyperdht-record", key: [] }),
    i.collections.register({
      name: "rooms",
      schema: "@local/room",
      versionField: "version",
      key: ["roomKey"],
      trigger: "roomsTrigger",
    }),
    i.indexes.register({
      name: "rooms-by-discovery-key",
      collection: "@local/rooms",
      unique: !0,
      key: ["discoveryKey"],
    }),
    i.indexes.register({
      name: "rooms-by-timestamp",
      collection: "@local/rooms",
      unique: !1,
      key: { type: { fields: [{ name: "timestamp", type: "uint" }] }, map: "roomsByTimestampMap" },
    }),
    i.indexes.register({
      name: "rooms-by-type-and-timestamp",
      collection: "@local/rooms",
      unique: !1,
      key: {
        type: {
          fields: [
            { name: "type", type: "uint" },
            { name: "timestamp", type: "uint" },
          ],
        },
        map: "roomsByTypeAndTimestampMap",
      },
    }),
    i.indexes.register({
      name: "rooms-by-contact",
      collection: "@local/rooms",
      key: {
        type: { fields: [{ name: "contact", type: "@keet/member-key" }] },
        map: "roomsByContactMap",
      },
    }),
    i.indexes.register({
      name: "rooms-by-wakeup-topic",
      collection: "@local/rooms",
      unique: !0,
      key: ["capabilities.wakeupTopic"],
    }),
    i.indexes.register({
      name: "rooms-by-mailbox",
      collection: "@local/rooms",
      unique: !0,
      key: ["capabilities.mailboxKeyPair.publicKey"],
    }),
    i.indexes.register({
      name: "rooms-by-discovery",
      collection: "@local/rooms",
      unique: !0,
      key: ["capabilities.discoveryKeyPair.publicKey"],
    }),
    i.collections.register({
      name: "room-preferences",
      schema: "@local/room-preferences",
      key: ["roomKey"],
    }),
    i.collections.register({
      name: "room-metadata",
      schema: "@local/room-metadata",
      key: ["roomKey"],
    }),
    i.collections.register({ name: "writers", schema: "@local/writer", key: ["mailbox"] }),
    i.collections.register({
      name: "writer-appends",
      schema: "@local/writer-append",
      key: ["key", "responsePublicKey"],
    }),
    i.indexes.register({
      name: "writers-by-wakeup-topic",
      collection: "@local/writers",
      unique: !0,
      key: {
        type: { fields: [{ name: "wakeupTopic", type: "@keet/room-discovery-key" }] },
        map: "writersByWakeupTopicMap",
      },
    }),
    i.indexes.register({
      name: "writers-by-room-key",
      collection: "@local/writers",
      unique: !0,
      key: {
        type: { fields: [{ name: "roomKey", type: "@keet/room-key" }] },
        map: "writersByRoomKeyMap",
      },
    }),
    i.collections.register({ name: "members", schema: "@local/member", key: ["key"] }),
    i.collections.register({ name: "devices", schema: "@local/device", key: ["device.key"] }),
    i.collections.register({
      name: "contacts",
      schema: "@keet-private-id/contact",
      key: ["memberKey"],
    }),
    i.indexes.register({
      name: "blocked-contacts",
      collection: "@local/contacts",
      unique: !0,
      key: {
        type: { fields: [{ name: "memberKey", type: "@keet/member-key" }] },
        map: "blockedContactsMap",
      },
    }),
    i.collections.register({
      name: "tasks",
      schema: "@local/task",
      key: ["priority", "timestamp", "type", "discoveryKey"],
    }),
    i.indexes.register({
      name: "tasks-by-type",
      collection: "@local/tasks",
      key: ["type", "discoveryKey"],
      unique: !0,
    }),
    i.collections.register({
      name: "blob-files",
      schema: "@local/file",
      versionField: "version",
      key: ["file.pointer.externalBlob.key", "file.pointer.externalBlob.blob.blockOffset"],
    }),
    i.collections.register({
      name: "drive-files",
      schema: "@local/file",
      versionField: "version",
      key: [
        "file.pointer.externalDrive.key",
        "file.pointer.externalDrive.path",
        "file.pointer.externalDrive.version",
      ],
    }),
    i.indexes.register({
      name: "blob-files-by-room",
      collection: "@local/blob-files",
      unique: !1,
      key: ["roomKey"],
    }),
    i.indexes.register({
      name: "drive-files-by-room",
      collection: "@local/drive-files",
      unique: !1,
      key: ["roomKey"],
    }),
    i.indexes.register({
      name: "blob-files-by-last-accessed",
      collection: "@local/blob-files",
      unique: !1,
      key: ["lastAccessed"],
    }),
    i.indexes.register({
      name: "drive-files-by-last-accessed",
      collection: "@local/drive-files",
      unique: !1,
      key: ["lastAccessed"],
    }),
    i.collections.register({
      name: "background-sync",
      schema: "@local/background-sync-room",
      key: ["discoveryPublicKey"],
    }),
    i.indexes.register({
      name: "background-sync-by-dirty",
      collection: "@local/background-sync",
      unique: !1,
      key: { type: { fields: [{ name: "timestamp", type: "uint" }] }, map: "dirtyByTimestampMap" },
    }),
    i.collections.register({ name: "debug", schema: "@local/debug" }),
    i.collections.register({ name: "unreads", schema: "@local/unread", key: ["roomKey"] }),
    i.collections.register({ name: "errors", schema: "@local/error-record", key: ["timestamp"] }),
    i.indexes.register({
      name: "errors-by-code",
      collection: "@local/errors",
      unique: !1,
      key: ["code"],
    }),
    i.collections.register({ name: "file-stats", schema: "@local/file-stats", key: ["roomKey"] }),
    i.collections.register({ name: "file-gc-info", schema: "@local/file-gc-info" }),
    i.indexes.register({
      name: "rooms-by-favorite-and-timestamp",
      collection: "@local/rooms",
      unique: !1,
      key: {
        type: { fields: [{ name: "timestamp", type: "uint" }] },
        map: "roomsByFavoriteAndTimestampMap",
      },
    }),
    i.collections.register({ name: "environment", schema: "@local/environment-record", key: [] }))
}