From 855410f88c1c1fe2d2afaf51ae2b436e3f3cdbbb Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Wed, 29 Apr 2026 21:34:07 +0200 Subject: [PATCH] feat(shared): add SpaceInviteRequest / SpaceInviteResponse / SpaceInviteSystemPayload --- packages/shared/src/types.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts index 23252671..5bd3be90 100644 --- a/packages/shared/src/types.ts +++ b/packages/shared/src/types.ts @@ -599,6 +599,41 @@ export interface CreateDmMessageRequest { replyToId?: string; } +// ─── Space Invite via DM ──────────────────────────────────────────────────── + +export interface SpaceInviteRequest { + /** Caller-supplied target friend identity. Either local userId, or remote (homeUserId+homeInstance). */ + target: { userId: string } | { homeUserId: string; homeInstance: string }; + /** Space identifier on the space's home instance. */ + spaceId: string; + /** Space's home instance origin. Empty string for the caller's home. */ + spaceInstanceOrigin: string; + /** Per-space invite code (already issued; client passes whatever it has loaded). */ + inviteCode: string; +} + +export interface SpaceInviteResponse { + dmChannelId: string; + messageId: string; + message: DmMessageWithUser; +} + +/** JSON content shape for type='system' space_invite messages. */ +export interface SpaceInviteSystemPayload { + event: 'space_invite'; + spaceId: string; + spaceInstanceOrigin: string; + inviteCode: string; + snapshot: { + spaceName: string; + icon: string | null; + avatarColor: AvatarColor | null; + memberCount: number; + description: string | null; + instanceName: string; + }; +} + export interface PaginatedQuery { before?: string; limit?: number;