OverviewFilesCommitsIssuesDocsReleasesPeers

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

470 lines · javascript ref:
const e = require("path")
module.exports = function (t) {
  const i = t.namespace("keet")
  ;(i.require(e.join(__dirname, "../../../lib/core/hyperdb/contract/keet.js")),
    i.collections.register({ name: "system-digest", schema: "@keet/system-digest", key: [] }),
    i.collections.register({ name: "blind-peers", schema: "@keet/blind-peer", key: ["key"] }),
    i.collections.register({ name: "room-config", schema: "@keet/room-config", key: [] }),
    i.collections.register({ name: "room-capabilities", schema: "@keet/room-seed", key: [] }),
    i.collections.register({
      name: "join-requests",
      schema: "@keet/join-request",
      key: ["deviceKey"],
    }),
    i.collections.register({
      name: "devices",
      schema: "@keet/device",
      key: ["key"],
      trigger: "devicesTrigger",
    }),
    i.indexes.register({
      name: "devices-by-member-key",
      collection: "@keet/devices",
      key: ["memberKey"],
    }),
    i.indexes.register({
      name: "devices-by-swarm-key",
      collection: "@keet/devices",
      key: ["profile.swarmKey"],
      unique: !0,
    }),
    i.indexes.register({
      name: "active-devices-by-member-key",
      collection: "@keet/devices",
      key: {
        type: { fields: [{ name: "memberKey", type: "@keet/member-key" }] },
        map: "activeDevicesByMemberKeyMap",
      },
    }),
    i.indexes.register({
      name: "active-devices",
      collection: "@keet/devices",
      unique: !0,
      key: {
        type: { fields: [{ name: "key", type: "@keet/device-key" }] },
        map: "activeDevicesMap",
      },
    }),
    i.collections.register({ name: "member-proofs", schema: "@keet/member-proofs", key: ["key"] }),
    i.collections.register({
      name: "members",
      schema: "@keet/member",
      key: ["key"],
      trigger: "membersTrigger",
    }),
    i.indexes.register({
      name: "moderators",
      collection: "@keet/members",
      unique: !0,
      key: { type: { fields: [{ name: "key", type: "@keet/member-key" }] }, map: "moderatorsMap" },
    }),
    i.indexes.register({
      name: "admins",
      collection: "@keet/members",
      unique: !0,
      key: { type: { fields: [{ name: "key", type: "@keet/member-key" }] }, map: "adminsMap" },
    }),
    i.indexes.register({
      name: "active-members",
      collection: "@keet/members",
      unique: !0,
      key: {
        type: { fields: [{ name: "key", type: "@keet/member-key" }] },
        map: "activeMembersMap",
      },
    }),
    i.indexes.register({
      name: "muted-members",
      collection: "@keet/members",
      unique: !0,
      key: {
        type: { fields: [{ name: "key", type: "@keet/member-key" }] },
        map: "mutedMembersMap",
      },
    }),
    i.indexes.register({
      name: "members-by-member-name",
      collection: "@keet/members",
      key: { type: { fields: [{ name: "name", type: "string" }] }, map: "membersByMemberNameMap" },
    }),
    i.collections.register({
      name: "member-activity",
      schema: "@keet/member-activity",
      key: ["key"],
    }),
    i.collections.register({ name: "invitations", schema: "@keet/invitation", key: ["id"] }),
    i.collections.register({ name: "threads", schema: "@keet/thread", key: ["id"] }),
    i.indexes.register({
      name: "threads-by-parent",
      collection: "@keet/threads",
      unique: !0,
      key: {
        type: {
          fields: [
            { name: "key", type: "@keet/member-key" },
            { name: "seq", type: "uint" },
          ],
        },
        map: "threadsByParentMap",
      },
    }),
    i.collections.register({
      name: "chat",
      schema: "@keet/chat-message-record",
      key: ["id.thread", "id.index"],
      trigger: "chatTrigger",
    }),
    i.indexes.register({
      name: "chat-by-message-id",
      collection: "@keet/chat",
      key: ["oplog.key", "oplog.seq"],
      unique: !0,
    }),
    i.indexes.register({
      name: "chat-mentions-by-member-id",
      collection: "@keet/chat",
      key: {
        type: {
          fields: [
            { name: "key", type: "@keet/member-key" },
            { name: "clock", type: "uint" },
          ],
        },
        map: "chatMentionsByMemberIdMap",
      },
    }),
    i.indexes.register({
      name: "pinned-chat-messages",
      collection: "@keet/chat",
      key: {
        type: {
          fields: [
            { name: "thread", type: "uint" },
            { name: "index", type: "uint" },
          ],
        },
        map: "pinnedChatMessagesMap",
      },
    }),
    i.collections.register({
      name: "reaction-digests",
      schema: "@keet/reactions-digest",
      key: ["id.thread", "id.index"],
    }),
    i.collections.register({
      name: "reactions",
      schema: "@keet/reaction",
      key: ["id.thread", "id.index", "sender", "reaction"],
      trigger: "reactionsTrigger",
    }),
    i.indexes.register({
      name: "reactions-by-clock",
      collection: "@keet/reactions",
      key: ["id.thread", "id.index", "reaction", "clock", "sender"],
    }),
    i.collections.register({
      name: "files",
      schema: "@keet/file-record",
      key: ["id"],
      versionField: "version",
      trigger: "filesTrigger",
    }),
    i.indexes.register({
      name: "files-by-message-id",
      collection: "@keet/files",
      key: ["oplog.key", "oplog.seq"],
    }),
    i.indexes.register({
      name: "files-by-type",
      collection: "@keet/files",
      key: {
        type: {
          fields: [
            { name: "type", type: "string" },
            { name: "id", type: "uint" },
          ],
        },
        map: "filesByTypeMap",
      },
      deprecated: !0,
    }),
    i.indexes.register({
      name: "deleted-files",
      collection: "@keet/files",
      key: { type: { fields: [{ name: "id", type: "uint" }] }, map: "deletedFilesMap" },
      deprecated: !0,
    }),
    i.indexes.register({
      name: "files-by-major-type",
      collection: "@keet/files",
      key: {
        type: {
          fields: [
            { name: "type", type: "string" },
            { name: "id", type: "uint" },
          ],
        },
        map: "filesByMajorTypeMap",
      },
    }),
    i.indexes.register({
      name: "active-files",
      collection: "@keet/files",
      key: { type: { fields: [{ name: "id", type: "uint" }] }, map: "activeFilesMap" },
    }),
    i.collections.register({
      name: "chat-labels",
      schema: "@keet/chat-label",
      key: ["id.thread", "id.index", "sender", "label"],
      trigger: "chatLabelTrigger",
    }),
    i.collections.register({
      name: "chat-label-digests",
      schema: "@keet/chat-label-digest",
      versionField: "version",
      key: ["id.thread", "id.index"],
    }),
    i.indexes.register({
      name: "chat-label-digests-by-clock",
      collection: "@keet/chat-label-digests",
      key: {
        type: {
          fields: [
            { name: "label", type: "@keet/label-type" },
            { name: "clock", type: "uint" },
          ],
        },
        map: "chatLabelDigestFlagMap",
      },
    }),
    i.collections.register({
      name: "member-labels",
      schema: "@keet/member-label",
      key: ["key", "sender", "label"],
    }),
    i.collections.register({
      name: "member-label-digests",
      schema: "@keet/member-label-digest",
      key: ["key"],
    }),
    i.indexes.register({
      name: "member-label-digests-by-clock",
      collection: "@keet/member-label-digests",
      key: {
        type: {
          fields: [
            { name: "label", type: "@keet/member-label-type" },
            { name: "clock", type: "uint" },
          ],
        },
        map: "memberLabelDigestFlagMap",
      },
    }),
    i.collections.register({
      name: "read-lengths",
      schema: "@keet/read-length",
      key: ["memberKey"],
    }),
    i.collections.register({
      name: "test-collection-1",
      schema: "@keet/test-collection-record-1",
      key: ["key"],
    }),
    i.collections.register({
      name: "tmp-removed-members",
      schema: "@keet/tmp-removed-member",
      key: ["key"],
    }),
    i.collections.register({ name: "calls", schema: "@keet/call-record", key: ["callKey"] }),
    i.indexes.register({
      name: "calls-by-timestamp",
      collection: "@keet/calls",
      key: ["createdAt"],
    }),
    i.indexes.register({
      name: "active-calls-by-timestamp",
      collection: "@keet/calls",
      key: { type: { fields: [{ name: "createdAt", type: "uint" }] }, map: "activeCallsMap" },
    }),
    i.collections.register({
      name: "call-members",
      schema: "@keet/call-member-record",
      key: ["callKey", "memberKey"],
    }),
    i.collections.register({
      name: "call-devices",
      schema: "@keet/call-device-record",
      key: ["callKey", "deviceKey"],
    }),
    i.indexes.register({
      name: "call-devices-by-member-key",
      collection: "@keet/call-devices",
      key: ["callKey", "memberKey"],
    }),
    i.collections.register({
      name: "call-streams",
      schema: "@keet/call-stream-record",
      key: ["callKey", "streamKey"],
    }),
    i.indexes.register({
      name: "call-streams-by-device-key",
      collection: "@keet/call-streams",
      key: ["callKey", "deviceKey"],
    }))
  const s = t.namespace("keet-private-id")
  ;(s.require(e.join(__dirname, "../../../lib/core/hyperdb/contract/keet-private-id.js")),
    s.collections.register({ name: "identity", schema: "@keet/room-identity", key: [] }),
    s.collections.register({ name: "stats", schema: "@keet-private-id/stats", key: [] }),
    s.collections.register({ name: "counters", schema: "@keet-private-id/counters", key: [] }),
    s.collections.register({
      name: "pending-invitations",
      schema: "@keet-private-id/pending-invitation",
      key: ["id"],
    }),
    s.collections.register({
      name: "rooms",
      schema: "@keet-private-id/room",
      key: ["roomKey"],
      trigger: "roomsTrigger",
    }),
    s.indexes.register({
      name: "rooms-by-clock",
      collection: "@keet-private-id/rooms",
      key: ["clock"],
    }),
    s.indexes.register({
      name: "rooms-by-contact",
      collection: "@keet-private-id/rooms",
      key: {
        type: { fields: [{ name: "contact", type: "@keet/member-key" }] },
        map: "roomsByContactMap",
      },
    }),
    s.collections.register({
      name: "contacts",
      schema: "@keet-private-id/contact-record",
      key: ["memberKey"],
      trigger: "contactsTrigger",
    }),
    s.indexes.register({
      name: "contacts-by-clock",
      collection: "@keet-private-id/contacts",
      key: ["clock"],
    }),
    s.collections.register({
      name: "contact-requests",
      schema: "@keet-private-id/contact-request-record",
      key: ["memberKey"],
      trigger: "contactRequestsTrigger",
    }),
    s.indexes.register({
      name: "contact-requests-by-clock",
      collection: "@keet-private-id/contact-requests",
      key: ["clock"],
    }),
    s.indexes.register({
      name: "pending-contact-requests",
      collection: "@keet-private-id/contact-requests",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "pendingContactRequestsMap",
      },
    }),
    s.indexes.register({
      name: "accepted-contact-requests",
      collection: "@keet-private-id/contact-requests",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "acceptedContactRequestsMap",
      },
    }),
    s.indexes.register({
      name: "rejected-contact-requests",
      collection: "@keet-private-id/contact-requests",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "rejectedContactRequestsMap",
      },
    }),
    s.indexes.register({
      name: "discarded-contact-requests",
      collection: "@keet-private-id/contact-requests",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "discardedContactRequestsMap",
      },
    }),
    s.collections.register({
      name: "device-identities",
      schema: "@keet/device-identity",
      key: ["deviceKey"],
    }),
    s.collections.register({
      name: "contact-requests-v2",
      schema: "@keet-private-id/contact-request-record",
      key: ["memberKey", "keys.key"],
      trigger: "contactRequestsTrigger",
    }),
    s.indexes.register({
      name: "contact-requests-by-member",
      collection: "@keet-private-id/contact-requests-v2",
      key: ["memberKey"],
    }),
    s.indexes.register({
      name: "contact-requests-by-clock-v2",
      collection: "@keet-private-id/contact-requests-v2",
      key: ["clock"],
    }),
    s.indexes.register({
      name: "pending-contact-requests-v2",
      collection: "@keet-private-id/contact-requests-v2",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "pendingContactRequestsMap",
      },
    }),
    s.indexes.register({
      name: "pending-contact-requests-by-member",
      collection: "@keet-private-id/contact-requests-v2",
      key: {
        type: { fields: [{ name: "memberKey", type: "@keet/member-key" }] },
        map: "pendingContactRequestsByMemberMap",
      },
    }),
    s.indexes.register({
      name: "accepted-contact-requests-v2",
      collection: "@keet-private-id/contact-requests-v2",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "acceptedContactRequestsMap",
      },
    }),
    s.indexes.register({
      name: "rejected-contact-requests-v2",
      collection: "@keet-private-id/contact-requests-v2",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "rejectedContactRequestsMap",
      },
    }),
    s.indexes.register({
      name: "discarded-contact-requests-v2",
      collection: "@keet-private-id/contact-requests-v2",
      key: {
        type: { fields: [{ name: "clock", type: "uint" }] },
        map: "discardedContactRequestsMap",
      },
    }),
    s.collections.register({
      name: "unreads-v2",
      schema: "@keet-private-id/unreads",
      key: ["deviceKey"],
    }),
    s.collections.register({
      name: "unreads",
      schema: "@keet-private-id/unreads",
      key: ["deviceKey"],
    }),
    s.collections.register({ name: "settings", schema: "@keet-private-id/settings", key: [] }))
}