Fix private calls

This commit is contained in:
2026-05-17 15:14:52 +02:00
parent 0f6cb3ee77
commit e769a6ee4a
71 changed files with 5821 additions and 349 deletions

View File

@@ -13,8 +13,12 @@ import type { ChatAttachmentAnnouncement, ChatAttachmentMeta } from './attachmen
import type {
DirectMessageEventPayload,
DirectMessageMutationEventPayload,
DirectMessageStatusEventPayload
DirectMessageSyncEventPayload,
DirectMessageSyncRequestEventPayload,
DirectMessageStatusEventPayload,
DirectMessageTypingEventPayload
} from './direct-message-contracts';
import type { DirectCallEventPayload } from './direct-call-contracts';
export interface ChatInventoryItem {
id: string;
@@ -87,6 +91,10 @@ export interface ChatEventBase {
directMessage?: DirectMessageEventPayload;
directMessageStatus?: DirectMessageStatusEventPayload;
directMessageMutation?: DirectMessageMutationEventPayload;
directMessageTyping?: DirectMessageTypingEventPayload;
directMessageSyncRequest?: DirectMessageSyncRequestEventPayload;
directMessageSync?: DirectMessageSyncEventPayload;
directCall?: DirectCallEventPayload;
pluginMessage?: unknown;
}
@@ -391,6 +399,26 @@ export interface DirectMessageMutationPeerEvent extends ChatEventBase {
directMessageMutation: DirectMessageMutationEventPayload;
}
export interface DirectMessageTypingPeerEvent extends ChatEventBase {
type: 'direct-message-typing';
directMessageTyping: DirectMessageTypingEventPayload;
}
export interface DirectMessageSyncRequestPeerEvent extends ChatEventBase {
type: 'direct-message-sync-request';
directMessageSyncRequest: DirectMessageSyncRequestEventPayload;
}
export interface DirectMessageSyncPeerEvent extends ChatEventBase {
type: 'direct-message-sync';
directMessageSync: DirectMessageSyncEventPayload;
}
export interface DirectCallPeerEvent extends ChatEventBase {
type: 'direct-call';
directCall: DirectCallEventPayload;
}
export interface PluginMessageBusPeerEvent extends ChatEventBase {
type: 'plugin-message-bus';
pluginMessage: unknown;
@@ -449,6 +477,10 @@ export type ChatEvent =
| DirectMessagePeerEvent
| DirectMessageStatusPeerEvent
| DirectMessageMutationPeerEvent
| DirectMessageTypingPeerEvent
| DirectMessageSyncRequestPeerEvent
| DirectMessageSyncPeerEvent
| DirectCallPeerEvent
| PluginMessageBusPeerEvent;
/** All possible `type` values, derived from the union. */

View File

@@ -0,0 +1,13 @@
import type { DirectMessageParticipant } from './direct-message-contracts';
export type DirectCallEventAction = 'ring' | 'join' | 'leave' | 'end' | 'update';
export interface DirectCallEventPayload {
action: DirectCallEventAction;
callId: string;
conversationId: string;
createdAt: number;
sender: DirectMessageParticipant;
participantIds: string[];
participants?: DirectMessageParticipant[];
}

View File

@@ -20,6 +20,7 @@ export interface DirectMessage {
conversationId: string;
senderId: string;
recipientId: string;
recipientIds?: string[];
content: string;
timestamp: number;
status: DirectMessageStatus;
@@ -32,6 +33,9 @@ export interface DirectMessage {
export interface DirectMessageEventPayload {
message: DirectMessage;
sender: DirectMessageParticipant;
participants?: DirectMessageParticipant[];
conversationKind?: 'direct' | 'group';
conversationTitle?: string;
}
export interface DirectMessageStatusEventPayload {
@@ -52,3 +56,26 @@ export interface DirectMessageMutationEventPayload {
emoji?: string;
updatedAt: number;
}
export interface DirectMessageTypingEventPayload {
conversationId: string;
sender: DirectMessageParticipant;
isTyping: boolean;
updatedAt: number;
}
export interface DirectMessageSyncRequestEventPayload {
conversationId: string;
sender: DirectMessageParticipant;
requestedAt: number;
}
export interface DirectMessageSyncEventPayload {
conversationId: string;
sender: DirectMessageParticipant;
participants: DirectMessageParticipant[];
conversationKind?: 'direct' | 'group';
conversationTitle?: string;
messages: DirectMessage[];
syncedAt: number;
}

View File

@@ -6,6 +6,7 @@ export * from './moderation.models';
export * from './voice-state.models';
export * from './game-activity.models';
export * from './direct-message-contracts';
export * from './direct-call-contracts';
export * from './chat-events';
export * from './media-preferences';
export * from './signaling-contracts';