const e = require("../contract")
module.exports = function (t) {
const r = t.namespace("local")
;(e(t),
r.register({
name: "background-sync-room",
fields: [
{ name: "discoveryPublicKey", type: "@keet/room-discovery-key", required: !0 },
{ name: "timestamp", type: "uint", required: !0 },
{ name: "lastSynced", type: "uint" },
{ name: "dirty", type: "bool" },
],
}),
r.register({
name: "stats",
fields: [
{ name: "rooms", type: "uint", required: !0 },
{ name: "activeRooms", type: "uint", required: !0 },
],
}),
r.register({
name: "migration-status",
fields: [{ name: "version", type: "uint", required: !0 }],
}),
r.register({
name: "v3-private-profile-migration",
fields: [{ name: "blockedMembers", type: "@keet/member-key", array: !0 }],
}),
r.register({
name: "v3-room-migration",
fields: [
{ name: "encryptionKey", type: "@keet/encryption-key", required: !0 },
{ name: "seed", type: "fixed32", required: !0 },
{ name: "capabilities", type: "@keet/room-capabilities", required: !0 },
{ name: "initiator", type: "@keet/head", required: !0 },
{ name: "fastForwardTo", type: "fixed32", required: !0 },
{ name: "privateProfile", type: "@local/v3-private-profile-migration" },
],
}),
r.register({
name: "room-migration-stats",
fields: [{ name: "count", type: "uint", require: !0 }],
}),
r.register({
name: "room-migration",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "priority", type: "uint", required: !0 },
{ name: "v3", type: "@local/v3-room-migration" },
{ name: "errored", type: "bool" },
{ name: "timestamp", type: "uint" },
],
}),
r.register({ name: "identity-status", fields: [{ name: "isConfirmed", type: "bool" }] }),
r.register({
name: "identity-swap",
fields: [{ name: "privateProfileKey", type: "@keet/room-key", required: !0 }],
}),
r.register({
name: "identity-record",
fields: [
{ name: "publicKey", type: "@keet/public-key", required: !0 },
{ name: "privateProfileKey", type: "@keet/room-key", required: !0 },
{ name: "deviceKeyPair", type: "@keet/signing-keypair", required: !0 },
{ name: "deviceProof", type: "buffer", required: !0 },
{ name: "status", type: "@local/identity-status", required: !0 },
{ name: "entropy", type: "buffer" },
{ name: "swap", type: "@keet-private-id/identity-swap" },
{ name: "swapV2", type: "@keet-private-id/identity-swap-v2" },
],
}),
r.register({
name: "tasks",
enum: [
"RestoreIdentity",
"CreateRoom",
"LeaveRoom",
"ClearRoom",
"JoinRoomInvitation",
"JoinRoomKeys",
"JoinRoomResponse",
"SendContactRequest",
"TestFastTask",
"TestSlowTask",
"TestErrorTask",
],
}))
const i = [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "encryptionKey", type: "@keet/encryption-key", required: !0 },
{ name: "fastForwardTo", type: "fixed32" },
{ name: "initiator", type: "@keet/head" },
]
;(r.register({ name: "room-keys", fields: i }),
r.register({
name: "join-room-invitation-task",
fields: [{ name: "invitation", type: "@keet-private-id/pending-invitation", required: !0 }],
}),
r.register({
name: "join-room-response-task",
fields: [
{ name: "mailbox", type: "@keet/public-key", required: !0 },
{ name: "keyPair", type: "@keet/signing-keypair", required: !0 },
{ name: "response", type: "buffer", required: !0 },
],
}),
r.register({
name: "fast-forward-to",
fields: [{ name: "key", type: "@keet/core-key", required: !0 }],
}))
const a = [...i, { name: "mailbox", type: "@keet/public-key" }]
;(r.register({ name: "add-room-fields", fields: a }),
r.register({
name: "join-room-keys-task",
fields: [{ name: "keys", type: "@local/add-room-fields", required: !0 }],
}),
r.register({
name: "create-room-task",
fields: [
...a,
{ name: "keyPair", type: "@keet/signing-keypair" },
{ name: "genesis", type: "@keet/genesis-operation" },
{ name: "isPrivateProfile", type: "bool" },
],
}),
r.register({
name: "leave-room-task",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "isGossiped", type: "bool" },
],
}),
r.register({
name: "clear-room-task",
fields: [{ name: "roomKey", type: "@keet/room-key", required: !0 }],
}),
r.register({
name: "restore-identity-task",
fields: [
{ name: "mnemonic", type: "string", required: !0 },
{ name: "profileDiscoveryTimeout", type: "uint" },
{ name: "recover", type: "bool" },
],
}),
r.register({
name: "send-contact-request-task",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "memberKey", type: "@keet/member-key", required: !0 },
{ name: "message", type: "string" },
{ name: "contactInfo", type: "@keet/member-contact-info" },
],
}),
r.register({
name: "migrate-v2-room-task",
fields: [
{ name: "key", type: "@keet/room-key", required: !0 },
{ name: "isPrivateProfile", type: "bool" },
],
}),
r.register({
name: "task",
fields: [
{ name: "discoveryKey", type: "@keet/room-discovery-key", required: !0 },
{ name: "priority", type: "uint", required: !0 },
{ name: "timestamp", type: "uint", required: !0 },
{ name: "type", type: "uint", required: !0 },
{ name: "restoreIdentity", type: "@local/restore-identity-task" },
{ name: "createRoom", type: "@local/create-room-task" },
{ name: "leaveRoom", type: "@local/leave-room-task" },
{ name: "clearRoom", type: "@local/clear-room-task" },
{ name: "joinRoomInvitation", type: "@local/join-room-invitation-task" },
{ name: "joinRoomKeys", type: "@local/join-room-keys-task" },
{ name: "joinRoomResponse", type: "@local/join-room-response-task" },
{ name: "sendContactRequest", type: "@local/send-contact-request-task" },
{ name: "migrateV2Room", type: "@local/migrate-v2-room-task" },
],
}),
r.register({
name: "shared-invitation",
fields: [
{ name: "seed", type: "buffer", required: !0 },
{ name: "invitation", type: "@keet/invitation", required: !0 },
],
}),
r.register({
name: "room-status",
fields: [
{ name: "isWritable", type: "bool" },
{ name: "isReadable", type: "bool" },
{ name: "isPrivateProfile", type: "bool" },
{ name: "isRemoved", type: "bool" },
],
}),
r.register({
name: "room-timestamps",
fields: [
{ name: "creation", type: "uint", required: !0 },
{ name: "latestSync", type: "uint", required: !0 },
{ name: "latestChatMessage", type: "uint", required: !0 },
],
}),
r.register({
name: "room",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "discoveryKey", type: "@keet/room-discovery-key", required: !0 },
{ name: "encryptionKey", type: "@keet/encryption-key", required: !0 },
{ name: "digest", type: "@keet/system-digest", required: !0 },
{ name: "stats", type: "@keet/stats", required: !0 },
{ name: "timestamps", type: "@local/room-timestamps", required: !0 },
{ name: "fork", type: "uint", required: !0 },
{ name: "length", type: "uint", required: !0 },
{ name: "seed", type: "fixed32", required: !0 },
{ name: "capabilities", type: "@keet/room-capabilities", required: !0 },
{ name: "status", type: "@local/room-status", required: !0 },
{ name: "selfDevice", type: "@keet/device" },
{ name: "selfMember", type: "@keet/full-member" },
{ name: "config", type: "@keet/room-config" },
{ name: "identity", type: "@keet/room-identity" },
{ name: "lastMessage", type: "@keet/full-chat-message-record" },
{ name: "dm", type: "@keet/member-key", array: !0 },
{ name: "readLengths", type: "@keet/read-length", array: !0 },
{ name: "lastMember", type: "@keet/member" },
{ name: "version", type: "uint" },
{ name: "preferences", type: "@keet-private-id/room-status" },
],
}),
r.register({
name: "room-preferences",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "status", type: "@keet-private-id/room-status", required: !0 },
],
}),
r.register({
name: "room-metadata",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "repairs", type: "uint" },
],
}),
r.register({
name: "writer",
fields: [
{ name: "mailbox", type: "@keet/public-key", required: !0 },
{ name: "key", type: "@keet/core-key", required: !0 },
{ name: "roomKey", type: "@keet/room-key" },
{ name: "keyPair", type: "@keet/signing-keypair" },
{ name: "responseKeyPair", type: "@keet/signing-keypair" },
],
}),
r.register({
name: "writer-append",
fields: [
{ name: "key", type: "@keet/core-key", required: !0 },
{ name: "responsePublicKey", type: "fixed32", required: !0 },
],
}),
r.register({
name: "member",
fields: [
{ name: "key", type: "@keet/member-key", required: !0 },
{ name: "profile", type: "@keet/member-profile", required: !0 },
],
}),
r.register({
name: "device",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "device", type: "@keet/device", required: !0 },
],
}),
r.register({
name: "file",
fields: [
{ name: "file", type: "@keet/file", required: !0 },
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "encryptionKey", type: "@keet/encryption-key" },
{ name: "cleared", type: "bool" },
{ name: "own", type: "bool" },
],
}),
r.register({
name: "debug-flag",
fields: [
{ name: "key", type: "string" },
{ name: "value", type: "bool" },
{ name: "description", type: "string" },
],
}),
r.register({
name: "debug",
fields: [{ name: "flags", type: "@local/debug-flag", array: !0 }],
}),
r.register({
name: "hyperdht-record",
fields: [
{ name: "nodes", type: "ipv4Address", array: !0 },
{ name: "concurrency", type: "uint" },
{ name: "maxWindow", type: "uint" },
{ name: "randomPunchInterval", type: "uint" },
{ name: "connectionKeepAlive", type: "uint" },
],
}),
r.register({
name: "unread",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "count", type: "uint", required: !0 },
],
}),
r.register({
name: "error-record-details",
fields: [
{ name: "roomKey", type: "@keet/room-key" },
{ name: "coreKey", type: "@keet/core-key" },
],
}),
r.register({
name: "error-record",
fields: [
{ name: "code", type: "string", required: !0 },
{ name: "message", type: "string", required: !0 },
{ name: "stack", type: "string", required: !0 },
{ name: "timestamp", type: "uint", required: !0 },
{ name: "details", type: "@local/error-record-details" },
],
}),
r.register({ name: "keet-state", enum: ["RESUME", "WAKEUP", "PRESUSPEND", "SUSPEND"] }),
r.register({
name: "file-stats",
fields: [
{ name: "roomKey", type: "@keet/room-key", required: !0 },
{ name: "total", type: "uint", required: !0 },
],
}))
}