Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 0 additions & 125 deletions packages/federation-sdk/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,39 +67,6 @@ export {
export { errCodes } from './utils/response-codes';
export { NotAllowedError } from './services/invite.service';

type RelatesTo =
| {
rel_type: 'm.replace';
event_id: EventID;
}
| {
rel_type: 'm.annotation';
event_id: EventID;
key: string;
}
| {
rel_type: 'm.thread';
event_id: EventID;
'm.in_reply_to'?: {
event_id: EventID;
room_id: string;
sender: string;
origin_server_ts: number;
};
is_falling_back?: boolean;
}
| {
// SPEC: Though rich replies form a relationship to another event, they do not use rel_type to create this relationship.
// Instead, a subkey named m.in_reply_to is used to describe the reply’s relationship,

// rich {"body":"quote","m.mentions":{},"m.relates_to":{"is_falling_back":false,"m.in_reply_to":{"event_id":"$0vkvf2Ha_FdWe3zVaoDw3X15VCyZIZRYrHQXuoZDURQ"}},"msgtype":"m.text"}

'm.in_reply_to': {
event_id: EventID;
};
is_falling_back?: boolean;
};

export type HomeserverEventSignatures = {
'homeserver.ping': {
message: string;
Expand All @@ -123,122 +90,30 @@ export type HomeserverEventSignatures = {
'homeserver.matrix.encrypted': {
event_id: EventID;
event: PduForType<'m.room.encrypted'>;

room_id: string;
sender: string;
origin_server_ts: number;
content: {
algorithm: 'm.megolm.v1.aes-sha2';
ciphertext: string;
'm.relates_to'?: RelatesTo;
device_id?: string;
sender_key?: string;
session_id?: string;
};
};
'homeserver.matrix.message': {
event_id: EventID;
event: PduForType<'m.room.message'>;

room_id: string;
sender: string;
origin_server_ts: number;
content: {
body: string;
msgtype: MessageType;
url?: string;
'm.relates_to'?: RelatesTo;
'm.new_content'?: {
body: string;
msgtype: MessageType;
'm.mentions'?: Record<string, string>;
};
formatted_body?: string;
info?: {
mimetype?: string;
w?: number;
h?: number;
size?: number;
thumbnail_file?: {
hashes: {
sha256: string;
};
iv: string;
key: {
alg: string;
ext: boolean;
k: string;
key_ops: ['encrypt' | 'decrypt'];
kty: string;
};
url: string;
v: 'v2';
};
thumbnail_info?: {
w?: number;
h?: number;
size?: number;
mimetype?: string;
};
};
};
};
'homeserver.matrix.reaction': {
event_id: EventID;
event: PduForType<'m.reaction'>;

room_id: string;
sender: string;
origin_server_ts: number;
content: {
'm.relates_to': {
rel_type: 'm.annotation';
event_id: EventID;
key: string;
};
};
};
'homeserver.matrix.redaction': {
event_id: EventID;
event: PduForType<'m.room.redaction'>;

room_id: string;
sender: string;
origin_server_ts: number;
redacts: EventID;
content: {
reason?: string;
};
};
'homeserver.matrix.membership': {
event_id: EventID;
event: PduForType<'m.room.member'>;

room_id: string;
sender: string;
state_key: string;
origin_server_ts: number;
content: {
membership: Membership;
displayname?: string;
avatar_url?: string;
reason?: string;
};
};
'homeserver.matrix.room.name': {
event_id: EventID;
event: PduForType<'m.room.name'>;
room_id: string; // name of the room being changed
user_id: string; // user who changed the name
name: string; // new name of the room
};
'homeserver.matrix.room.topic': {
event_id: EventID;
event: PduForType<'m.room.topic'>;

room_id: string; // topic of the room being changed
user_id: string; // user who changed the topic
topic: string; // new topic of the room
};
'homeserver.matrix.room.server_acl': {
event_id: EventID;
Expand Down
5 changes: 0 additions & 5 deletions packages/federation-sdk/src/services/room.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -882,11 +882,6 @@ export class RoomService {
this.eventEmitterService.emit('homeserver.matrix.membership', {
event_id: membershipEvent.eventId,
event: membershipEvent.event,
room_id: roomId,
state_key: userId,
content: { membership: 'join' },
sender: userId,
origin_server_ts: Date.now(),
});

if (membershipEvent.rejected) {
Expand Down
9 changes: 0 additions & 9 deletions packages/federation-sdk/src/services/send-join.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,6 @@ export class SendJoinService {
this.emitterService.emit('homeserver.matrix.membership', {
event_id: eventId,
event: signedJoinEvent.event,
room_id: roomId,
sender: signedJoinEvent.sender,
state_key: signedJoinEvent.stateKey as string,
origin_server_ts: signedJoinEvent.originServerTs,
content: {
avatar_url: signedJoinEvent.getContent().avatar_url,
displayname: signedJoinEvent.getContent().displayname || '',
membership: signedJoinEvent.getContent().membership,
},
});

return {
Expand Down
76 changes: 0 additions & 76 deletions packages/federation-sdk/src/services/staging-area.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -278,34 +278,6 @@ export class StagingAreaService {
this.eventEmitterService.emit('homeserver.matrix.message', {
event_id: eventId,
event: event.event,
room_id: roomId,
sender: event.event.sender,
origin_server_ts: event.event.origin_server_ts,
content: {
...event.event.content,
body: event.event.content?.body as string,
msgtype: event.event.content?.msgtype as MessageType,
'm.relates_to': event.event.content?.['m.relates_to'] as
| {
rel_type: 'm.replace';
event_id: EventID;
}
| {
rel_type: 'm.annotation';
event_id: EventID;
key: string;
}
| {
rel_type: 'm.thread';
event_id: EventID;
},
'm.new_content': event.event.content?.['m.new_content'] as {
body: string;
msgtype: MessageType;
},
formatted_body: (event.event.content?.formatted_body ||
'') as string,
},
});
break;
case event.event.type === 'm.room.encryption':
Expand All @@ -318,88 +290,40 @@ export class StagingAreaService {
this.eventEmitterService.emit('homeserver.matrix.encrypted', {
event_id: eventId,
event: event.event,
room_id: roomId,
sender: event.event.sender,
origin_server_ts: event.event.origin_server_ts,
content: {
...event.event.content,
'm.relates_to': event.event.content?.['m.relates_to'] as
| {
rel_type: 'm.replace';
event_id: EventID;
}
| {
rel_type: 'm.annotation';
event_id: EventID;
key: string;
}
| {
rel_type: 'm.thread';
event_id: EventID;
},
},
});
break;
case event.event.type === 'm.reaction': {
this.eventEmitterService.emit('homeserver.matrix.reaction', {
event_id: eventId,
event: event.event,
room_id: roomId,
sender: event.event.sender,
origin_server_ts: event.event.origin_server_ts,
content: event.event.content as {
'm.relates_to': {
rel_type: 'm.annotation';
event_id: EventID;
key: string;
};
},
});
break;
}
case isRedactedEvent(event.event): {
this.eventEmitterService.emit('homeserver.matrix.redaction', {
event_id: eventId,
event: event.event,
room_id: roomId,
sender: event.event.sender,
origin_server_ts: event.event.origin_server_ts,
redacts: event.event.redacts,
content: {
reason: event.event.content?.reason,
},
});
break;
}
case event.event.type === 'm.room.member': {
this.eventEmitterService.emit('homeserver.matrix.membership', {
event_id: eventId,
event: event.event,
room_id: roomId,
sender: event.event.sender,
state_key: event.event.state_key,
origin_server_ts: event.event.origin_server_ts,
content: event.event.content,
});
break;
}
case event.event.type === 'm.room.name': {
this.eventEmitterService.emit('homeserver.matrix.room.name', {
event_id: eventId,
event: event.event,
room_id: roomId,
user_id: event.event.sender,
name: event.event.content?.name as string,
});
break;
}
case event.event.type === 'm.room.topic': {
this.eventEmitterService.emit('homeserver.matrix.room.topic', {
event_id: eventId,
event: event.event,
room_id: roomId,
user_id: event.event.sender,
topic: event.event.content.topic,
});
break;
}
Expand Down