feat: Security
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { Message, Reaction } from './message.models';
|
||||
import type { MessageRevision } from './message-revision.models';
|
||||
import type { UserRole, RoomMember } from './user.models';
|
||||
import type {
|
||||
Room,
|
||||
@@ -30,6 +31,8 @@ export interface ChatInventoryItem {
|
||||
ts: number;
|
||||
rc: number;
|
||||
ac?: number;
|
||||
revision?: number;
|
||||
headHash?: string;
|
||||
}
|
||||
|
||||
// Every field that appears on any event is kept optional here so that
|
||||
@@ -124,6 +127,11 @@ export interface MessageDeletedEvent extends ChatEventBase {
|
||||
messageId: string;
|
||||
}
|
||||
|
||||
export interface MessageRevisionEvent extends ChatEventBase {
|
||||
type: 'message-revision';
|
||||
revision: MessageRevision;
|
||||
}
|
||||
|
||||
export interface ReactionAddedEvent extends ChatEventBase {
|
||||
type: 'reaction' | 'reaction-added';
|
||||
messageId: string;
|
||||
@@ -463,6 +471,7 @@ export type ChatEvent =
|
||||
| ChatMessageEvent
|
||||
| MessageEditedEvent
|
||||
| MessageDeletedEvent
|
||||
| MessageRevisionEvent
|
||||
| ReactionAddedEvent
|
||||
| ReactionRemovedEvent
|
||||
| FileAnnounceChatEvent
|
||||
|
||||
@@ -2,6 +2,7 @@ export * from './user.models';
|
||||
export * from './room.models';
|
||||
export * from './access-control.models';
|
||||
export * from './message.models';
|
||||
export * from './message-revision.models';
|
||||
export * from './moderation.models';
|
||||
export * from './voice-state.models';
|
||||
export * from './game-activity.models';
|
||||
|
||||
27
toju-app/src/app/shared-kernel/message-revision.models.ts
Normal file
27
toju-app/src/app/shared-kernel/message-revision.models.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
export type MessageRevisionType =
|
||||
| 'create'
|
||||
| 'author-edit'
|
||||
| 'author-delete'
|
||||
| 'moderate-edit'
|
||||
| 'moderate-delete'
|
||||
| 'plugin-edit'
|
||||
| 'plugin-delete';
|
||||
|
||||
export interface MessageRevision {
|
||||
messageId: string;
|
||||
revision: number;
|
||||
prevRevisionHash: string;
|
||||
headHash: string;
|
||||
type: MessageRevisionType;
|
||||
actorId: string;
|
||||
senderId: string;
|
||||
roomId: string;
|
||||
channelId?: string;
|
||||
senderName?: string;
|
||||
content?: string;
|
||||
editedAt: number;
|
||||
isDeleted: boolean;
|
||||
replyToId?: string;
|
||||
pluginId?: string;
|
||||
signature?: string;
|
||||
}
|
||||
@@ -20,6 +20,8 @@ export interface Message {
|
||||
kind?: 'user' | 'system';
|
||||
systemEvent?: 'call-started';
|
||||
editedAt?: number;
|
||||
revision?: number;
|
||||
headHash?: string;
|
||||
reactions: Reaction[];
|
||||
isDeleted: boolean;
|
||||
replyToId?: string;
|
||||
|
||||
@@ -150,6 +150,7 @@ export interface TojuPluginManifest {
|
||||
bugs?: string;
|
||||
bundle?: {
|
||||
entrypoint?: string;
|
||||
integrity?: string;
|
||||
url: string;
|
||||
};
|
||||
capabilities?: PluginCapabilityId[];
|
||||
|
||||
Reference in New Issue
Block a user