refactor to Visible and ControlMessage types
parent
13d21e94ca
commit
79193ee7be
@ -1,5 +1,5 @@
|
|||||||
import { Message } from '../Message';
|
import { Message } from '.';
|
||||||
import { SignalService } from '../../../../protobuf';
|
import { SignalService } from '../../../protobuf';
|
||||||
|
|
||||||
export abstract class ContentMessage extends Message {
|
export abstract class ContentMessage extends Message {
|
||||||
public plainTextBuffer(): Uint8Array {
|
public plainTextBuffer(): Uint8Array {
|
@ -1,6 +1,6 @@
|
|||||||
import { ContentMessage } from '../ContentMessage';
|
import { ContentMessage } from '.';
|
||||||
import { SignalService } from '../../../../../protobuf';
|
import { SignalService } from '../../../protobuf';
|
||||||
import { TTL_DEFAULT } from '../../../../constants';
|
import { TTL_DEFAULT } from '../../constants';
|
||||||
|
|
||||||
export abstract class DataMessage extends ContentMessage {
|
export abstract class DataMessage extends ContentMessage {
|
||||||
public abstract dataProto(): SignalService.DataMessage;
|
public abstract dataProto(): SignalService.DataMessage;
|
@ -1,51 +0,0 @@
|
|||||||
import { SignalService } from '../../../../../../protobuf';
|
|
||||||
import {
|
|
||||||
ClosedGroupMessage,
|
|
||||||
ClosedGroupMessageParams,
|
|
||||||
} from './ClosedGroupMessage';
|
|
||||||
import { fromHexToArray } from '../../../../../utils/String';
|
|
||||||
|
|
||||||
export interface ClosedGroupUpdateMessageParams
|
|
||||||
extends ClosedGroupMessageParams {
|
|
||||||
name: string;
|
|
||||||
members: Array<string>;
|
|
||||||
expireTimer: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class ClosedGroupUpdateMessage extends ClosedGroupMessage {
|
|
||||||
private readonly name: string;
|
|
||||||
private readonly members: Array<string>;
|
|
||||||
|
|
||||||
constructor(params: ClosedGroupUpdateMessageParams) {
|
|
||||||
super({
|
|
||||||
timestamp: params.timestamp,
|
|
||||||
identifier: params.identifier,
|
|
||||||
groupId: params.groupId,
|
|
||||||
expireTimer: params.expireTimer,
|
|
||||||
});
|
|
||||||
this.name = params.name;
|
|
||||||
this.members = params.members;
|
|
||||||
|
|
||||||
// members can be empty. It means noone is in the group anymore and it happens when an admin leaves the group
|
|
||||||
if (!params.members) {
|
|
||||||
throw new Error('Members must be set');
|
|
||||||
}
|
|
||||||
if (!params.name || params.name.length === 0) {
|
|
||||||
throw new Error('Name must cannot be empty');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public dataProto(): SignalService.DataMessage {
|
|
||||||
const dataMessage = new SignalService.DataMessage();
|
|
||||||
|
|
||||||
dataMessage.closedGroupControlMessage = new SignalService.DataMessage.ClosedGroupControlMessage();
|
|
||||||
dataMessage.closedGroupControlMessage.type =
|
|
||||||
SignalService.DataMessage.ClosedGroupControlMessage.Type.UPDATE;
|
|
||||||
dataMessage.closedGroupControlMessage.name = this.name;
|
|
||||||
dataMessage.closedGroupControlMessage.members = this.members.map(
|
|
||||||
fromHexToArray
|
|
||||||
);
|
|
||||||
|
|
||||||
return dataMessage;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
export * from './ClosedGroupEncryptionPairMessage';
|
|
||||||
export * from './ClosedGroupEncryptionPairRequestMessage';
|
|
||||||
export * from './ClosedGroupEncryptionPairReplyMessage';
|
|
||||||
export * from './ClosedGroupNewMessage';
|
|
||||||
export * from './ClosedGroupAddedMembersMessage';
|
|
||||||
export * from './ClosedGroupNameChangeMessage';
|
|
||||||
export * from './ClosedGroupRemovedMembersMessage';
|
|
||||||
export * from './ClosedGroupUpdateMessage';
|
|
@ -1,9 +0,0 @@
|
|||||||
export * from './DataMessage';
|
|
||||||
export * from './GroupInvitationMessage';
|
|
||||||
export * from './ChatMessage';
|
|
||||||
export * from './group/ClosedGroupMessage';
|
|
||||||
export * from './group/ClosedGroupChatMessage';
|
|
||||||
export * from './group/ClosedGroupEncryptionPairMessage';
|
|
||||||
export * from './group/ClosedGroupNewMessage';
|
|
||||||
export * from './group/ClosedGroupMessage';
|
|
||||||
export * from './ExpirationTimerUpdateMessage';
|
|
@ -1,4 +0,0 @@
|
|||||||
export * from './ContentMessage';
|
|
||||||
export * from './TypingMessage';
|
|
||||||
export * from './data';
|
|
||||||
export * from './receipt';
|
|
@ -1,3 +0,0 @@
|
|||||||
export * from './ReceiptMessage';
|
|
||||||
export * from './DeliveryReceiptMessage';
|
|
||||||
export * from './ReadReceiptMessage';
|
|
@ -1,12 +1,12 @@
|
|||||||
// this is not a very good name, but a configuration message is a message sent to our other devices so sync our current public and closed groups
|
// this is not a very good name, but a configuration message is a message sent to our other devices so sync our current public and closed groups
|
||||||
|
|
||||||
import { ContentMessage } from './ContentMessage';
|
|
||||||
import { SignalService } from '../../../../protobuf';
|
import { SignalService } from '../../../../protobuf';
|
||||||
import { MessageParams } from '../Message';
|
import { MessageParams } from '../Message';
|
||||||
import { Constants } from '../../..';
|
import { Constants } from '../../..';
|
||||||
import { ECKeyPair } from '../../../../receiver/keypairs';
|
import { ECKeyPair } from '../../../../receiver/keypairs';
|
||||||
import { fromHexToArray } from '../../../utils/String';
|
import { fromHexToArray } from '../../../utils/String';
|
||||||
import { PubKey } from '../../../types';
|
import { PubKey } from '../../../types';
|
||||||
|
import { ContentMessage } from '..';
|
||||||
|
|
||||||
interface ConfigurationMessageParams extends MessageParams {
|
interface ConfigurationMessageParams extends MessageParams {
|
||||||
activeClosedGroups: Array<ConfigurationMessageClosedGroup>;
|
activeClosedGroups: Array<ConfigurationMessageClosedGroup>;
|
@ -1,7 +1,7 @@
|
|||||||
import { ContentMessage } from './ContentMessage';
|
|
||||||
import { SignalService } from '../../../../protobuf';
|
import { SignalService } from '../../../../protobuf';
|
||||||
import { MessageParams } from '../Message';
|
import { MessageParams } from '../Message';
|
||||||
import { Constants } from '../../..';
|
import { Constants } from '../../..';
|
||||||
|
import { ContentMessage } from '..';
|
||||||
|
|
||||||
interface TypingMessageParams extends MessageParams {
|
interface TypingMessageParams extends MessageParams {
|
||||||
isTyping: boolean;
|
isTyping: boolean;
|
@ -1,7 +1,7 @@
|
|||||||
import { fromHex } from 'bytebuffer';
|
import { fromHex } from 'bytebuffer';
|
||||||
import { Constants } from '../../../../..';
|
import { Constants } from '../../../..';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { fromHexToArray } from '../../../../../utils/String';
|
import { fromHexToArray } from '../../../../utils/String';
|
||||||
import {
|
import {
|
||||||
ClosedGroupMessage,
|
ClosedGroupMessage,
|
||||||
ClosedGroupMessageParams,
|
ClosedGroupMessageParams,
|
@ -1,6 +1,5 @@
|
|||||||
import { Constants } from '../../../../..';
|
import { Constants } from '../../../..';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { fromHexToArray } from '../../../../../utils/String';
|
|
||||||
import {
|
import {
|
||||||
ClosedGroupMessage,
|
ClosedGroupMessage,
|
||||||
ClosedGroupMessageParams,
|
ClosedGroupMessageParams,
|
@ -1,5 +1,5 @@
|
|||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { fromHexToArray } from '../../../../../utils/String';
|
import { fromHexToArray } from '../../../../utils/String';
|
||||||
import { ClosedGroupEncryptionPairMessage } from './ClosedGroupEncryptionPairMessage';
|
import { ClosedGroupEncryptionPairMessage } from './ClosedGroupEncryptionPairMessage';
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,9 +1,12 @@
|
|||||||
import { Constants } from '../../../../..';
|
import { Constants } from '../../../..';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
||||||
|
|
||||||
export class ClosedGroupEncryptionPairRequestMessage extends ClosedGroupMessage {
|
export class ClosedGroupEncryptionPairRequestMessage extends ClosedGroupMessage {
|
||||||
public dataProto(): SignalService.DataMessage {
|
public dataProto(): SignalService.DataMessage {
|
||||||
|
throw new Error(
|
||||||
|
'ClosedGroupEncryptionPairRequestMessage: This is unused for now '
|
||||||
|
);
|
||||||
const dataMessage = super.dataProto();
|
const dataMessage = super.dataProto();
|
||||||
|
|
||||||
// tslint:disable: no-non-null-assertion
|
// tslint:disable: no-non-null-assertion
|
@ -1,20 +1,8 @@
|
|||||||
import { Constants } from '../../../../..';
|
import { Constants } from '../../../..';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import {
|
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
||||||
ClosedGroupMessage,
|
|
||||||
ClosedGroupMessageParams,
|
|
||||||
} from './ClosedGroupMessage';
|
|
||||||
|
|
||||||
export class ClosedGroupMemberLeftMessage extends ClosedGroupMessage {
|
export class ClosedGroupMemberLeftMessage extends ClosedGroupMessage {
|
||||||
constructor(params: ClosedGroupMessageParams) {
|
|
||||||
super({
|
|
||||||
timestamp: params.timestamp,
|
|
||||||
identifier: params.identifier,
|
|
||||||
groupId: params.groupId,
|
|
||||||
expireTimer: params.expireTimer,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public dataProto(): SignalService.DataMessage {
|
public dataProto(): SignalService.DataMessage {
|
||||||
const dataMessage = super.dataProto();
|
const dataMessage = super.dataProto();
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
import { DataMessage } from '../DataMessage';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { MessageParams } from '../../../Message';
|
import { PubKey } from '../../../../types';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { DataMessage } from '../../DataMessage';
|
||||||
import { PubKey } from '../../../../../types/PubKey';
|
import { MessageParams } from '../../Message';
|
||||||
|
|
||||||
export interface ClosedGroupMessageParams extends MessageParams {
|
export interface ClosedGroupMessageParams extends MessageParams {
|
||||||
groupId: string | PubKey;
|
groupId: string | PubKey;
|
@ -1,5 +1,5 @@
|
|||||||
import { Constants } from '../../../../..';
|
import { Constants } from '../../../..';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import {
|
import {
|
||||||
ClosedGroupMessage,
|
ClosedGroupMessage,
|
||||||
ClosedGroupMessageParams,
|
ClosedGroupMessageParams,
|
@ -1,10 +1,10 @@
|
|||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import {
|
import {
|
||||||
ClosedGroupMessage,
|
ClosedGroupMessage,
|
||||||
ClosedGroupMessageParams,
|
ClosedGroupMessageParams,
|
||||||
} from './ClosedGroupMessage';
|
} from './ClosedGroupMessage';
|
||||||
import { fromHexToArray } from '../../../../../utils/String';
|
import { fromHexToArray } from '../../../../utils/String';
|
||||||
import { ECKeyPair } from '../../../../../../receiver/keypairs';
|
import { ECKeyPair } from '../../../../../receiver/keypairs';
|
||||||
|
|
||||||
export interface ClosedGroupNewMessageParams extends ClosedGroupMessageParams {
|
export interface ClosedGroupNewMessageParams extends ClosedGroupMessageParams {
|
||||||
name: string;
|
name: string;
|
@ -1,6 +1,6 @@
|
|||||||
import { Constants } from '../../../../..';
|
import { Constants } from '../../../..';
|
||||||
import { SignalService } from '../../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { fromHexToArray } from '../../../../../utils/String';
|
import { fromHexToArray } from '../../../../utils/String';
|
||||||
import {
|
import {
|
||||||
ClosedGroupMessage,
|
ClosedGroupMessage,
|
||||||
ClosedGroupMessageParams,
|
ClosedGroupMessageParams,
|
@ -1,7 +1,7 @@
|
|||||||
import { ContentMessage } from '../ContentMessage';
|
|
||||||
import { SignalService } from '../../../../../protobuf';
|
import { SignalService } from '../../../../../protobuf';
|
||||||
import { MessageParams } from '../../Message';
|
import { MessageParams } from '../../Message';
|
||||||
import { Constants } from '../../../..';
|
import { Constants } from '../../../..';
|
||||||
|
import { ContentMessage } from '../..';
|
||||||
|
|
||||||
interface ReceiptMessageParams extends MessageParams {
|
interface ReceiptMessageParams extends MessageParams {
|
||||||
timestamps: Array<number>;
|
timestamps: Array<number>;
|
@ -1,5 +1,7 @@
|
|||||||
import { Message } from './Message';
|
import { Message } from './Message';
|
||||||
import { OpenGroupMessage } from './OpenGroupMessage';
|
import { OpenGroupMessage } from './OpenGroupMessage';
|
||||||
|
|
||||||
export * from './content/';
|
export * from './ContentMessage';
|
||||||
|
export * from './DataMessage';
|
||||||
|
|
||||||
export { Message, OpenGroupMessage };
|
export { Message, OpenGroupMessage };
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
import { SignalService } from '../../../../../../protobuf';
|
import { Constants } from '../../..';
|
||||||
import { ChatMessage } from '../ChatMessage';
|
import { SignalService } from '../../../../protobuf';
|
||||||
import { ClosedGroupMessage } from './ClosedGroupMessage';
|
import { PubKey } from '../../../types';
|
||||||
import { PubKey } from '../../../../../types';
|
import { StringUtils } from '../../../utils';
|
||||||
import { Constants } from '../../../../..';
|
import { VisibleMessage } from './VisibleMessage';
|
||||||
import { StringUtils } from '../../../../../utils';
|
import { ClosedGroupMessage } from '../controlMessage/group/ClosedGroupMessage';
|
||||||
|
|
||||||
interface ClosedGroupChatMessageParams {
|
interface ClosedGroupVisibleMessageParams {
|
||||||
identifier?: string;
|
identifier?: string;
|
||||||
groupId: string | PubKey;
|
groupId: string | PubKey;
|
||||||
chatMessage: ChatMessage;
|
chatMessage: VisibleMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class ClosedGroupChatMessage extends ClosedGroupMessage {
|
export class ClosedGroupVisibleMessage extends ClosedGroupMessage {
|
||||||
private readonly chatMessage: ChatMessage;
|
private readonly chatMessage: VisibleMessage;
|
||||||
|
|
||||||
constructor(params: ClosedGroupChatMessageParams) {
|
constructor(params: ClosedGroupVisibleMessageParams) {
|
||||||
super({
|
super({
|
||||||
timestamp: params.chatMessage.timestamp,
|
timestamp: params.chatMessage.timestamp,
|
||||||
identifier: params.identifier ?? params.chatMessage.identifier,
|
identifier: params.identifier ?? params.chatMessage.identifier,
|
@ -1,7 +1,7 @@
|
|||||||
import { DataMessage } from './DataMessage';
|
import { DataMessage } from '..';
|
||||||
import { SignalService } from '../../../../../protobuf';
|
import { Constants } from '../../..';
|
||||||
import { MessageParams } from '../../Message';
|
import { SignalService } from '../../../../protobuf';
|
||||||
import { Constants } from '../../../..';
|
import { MessageParams } from '../Message';
|
||||||
|
|
||||||
interface GroupInvitationMessageParams extends MessageParams {
|
interface GroupInvitationMessageParams extends MessageParams {
|
||||||
serverAddress: string;
|
serverAddress: string;
|
Loading…
Reference in New Issue