summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-07-12 11:22:31 +0200
committerRaindropsSys <contact@minteck.org>2023-07-12 11:22:31 +0200
commit219c1f032c96907d839d0fc1d1343e598b914506 (patch)
tree1f75ca6f704a6e4861048378afa6b19fa411eb75
parent6707568dd3ba87dcebddc57ed9b157bc1ef8cbc1 (diff)
downloadsignal.js-219c1f032c96907d839d0fc1d1343e598b914506.tar.gz
signal.js-219c1f032c96907d839d0fc1d1343e598b914506.tar.bz2
signal.js-219c1f032c96907d839d0fc1d1343e598b914506.zip
Updated 38 files, added 69 files and deleted classes/Message.ts (automated)
-rw-r--r--README.md16
-rw-r--r--ROADMAP.md47
-rw-r--r--classes/Attachment.ts22
-rw-r--r--classes/AttachmentSize.ts5
-rw-r--r--classes/CLIEvent.ts69
-rw-r--r--classes/Client.ts12
-rw-r--r--classes/DM.ts2
-rw-r--r--classes/DMDataMessage.ts52
-rw-r--r--classes/DMMessage.ts9
-rw-r--r--classes/DMReactionMessage.ts26
-rw-r--r--classes/DMTypingMessage.ts12
-rw-r--r--classes/DataMessage.ts8
-rw-r--r--classes/Group.ts2
-rw-r--r--classes/GroupDataMessage.ts51
-rw-r--r--classes/GroupMessage.ts9
-rw-r--r--classes/GroupReactionMessage.ts24
-rw-r--r--classes/GroupTypingMessage.ts14
-rw-r--r--classes/Message.ts17
-rw-r--r--classes/QuoteMessage.ts15
-rw-r--r--classes/ReactionEmoji.ts5
-rw-r--r--classes/ReactionMessage.ts10
-rw-r--r--classes/ReactionTarget.ts12
-rw-r--r--classes/ReceivedMessage.ts33
-rw-r--r--classes/User.ts20
-rw-r--r--dist/classes/Attachment.d.ts12
-rw-r--r--dist/classes/Attachment.js17
-rw-r--r--dist/classes/Attachment.js.map1
-rw-r--r--dist/classes/AttachmentSize.d.ts3
-rw-r--r--dist/classes/AttachmentSize.js10
-rw-r--r--dist/classes/AttachmentSize.js.map1
-rw-r--r--dist/classes/CLIEvent.js46
-rw-r--r--dist/classes/CLIEvent.js.map2
-rw-r--r--dist/classes/Client.d.ts12
-rw-r--r--dist/classes/Client.js9
-rw-r--r--dist/classes/Client.js.map2
-rw-r--r--dist/classes/DM.js.map2
-rw-r--r--dist/classes/DMDataMessage.d.ts17
-rw-r--r--dist/classes/DMDataMessage.js38
-rw-r--r--dist/classes/DMDataMessage.js.map1
-rw-r--r--dist/classes/DMMessage.d.ts7
-rw-r--r--dist/classes/DMMessage.js8
-rw-r--r--dist/classes/DMMessage.js.map2
-rw-r--r--dist/classes/DMReactionMessage.d.ts15
-rw-r--r--dist/classes/DMReactionMessage.js20
-rw-r--r--dist/classes/DMReactionMessage.js.map1
-rw-r--r--dist/classes/DMTypingMessage.d.ts6
-rw-r--r--dist/classes/DMTypingMessage.js10
-rw-r--r--dist/classes/DMTypingMessage.js.map2
-rw-r--r--dist/classes/DataMessage.d.ts7
-rw-r--r--dist/classes/DataMessage.js10
-rw-r--r--dist/classes/DataMessage.js.map1
-rw-r--r--dist/classes/Group.js.map2
-rw-r--r--dist/classes/GroupDataMessage.d.ts16
-rw-r--r--dist/classes/GroupDataMessage.js39
-rw-r--r--dist/classes/GroupDataMessage.js.map1
-rw-r--r--dist/classes/GroupMessage.d.ts7
-rw-r--r--dist/classes/GroupMessage.js8
-rw-r--r--dist/classes/GroupMessage.js.map2
-rw-r--r--dist/classes/GroupReactionMessage.d.ts15
-rw-r--r--dist/classes/GroupReactionMessage.js20
-rw-r--r--dist/classes/GroupReactionMessage.js.map1
-rw-r--r--dist/classes/GroupTypingMessage.d.ts9
-rw-r--r--dist/classes/GroupTypingMessage.js10
-rw-r--r--dist/classes/GroupTypingMessage.js.map2
-rw-r--r--dist/classes/Message.d.ts4
-rw-r--r--dist/classes/Message.js3
-rw-r--r--dist/classes/Message.js.map2
-rw-r--r--dist/classes/QuoteMessage.d.ts8
-rw-r--r--dist/classes/QuoteMessage.js15
-rw-r--r--dist/classes/QuoteMessage.js.map1
-rw-r--r--dist/classes/ReactionEmoji.d.ts3
-rw-r--r--dist/classes/ReactionEmoji.js10
-rw-r--r--dist/classes/ReactionEmoji.js.map1
-rw-r--r--dist/classes/ReactionMessage.d.ts7
-rw-r--r--dist/classes/ReactionMessage.js7
-rw-r--r--dist/classes/ReactionMessage.js.map1
-rw-r--r--dist/classes/ReactionTarget.d.ts7
-rw-r--r--dist/classes/ReactionTarget.js13
-rw-r--r--dist/classes/ReactionTarget.js.map1
-rw-r--r--dist/classes/ReceivedMessage.d.ts16
-rw-r--r--dist/classes/ReceivedMessage.js24
-rw-r--r--dist/classes/ReceivedMessage.js.map1
-rw-r--r--dist/classes/Size.d.ts3
-rw-r--r--dist/classes/Size.js10
-rw-r--r--dist/classes/Size.js.map1
-rw-r--r--dist/classes/User.d.ts3
-rw-r--r--dist/classes/User.js33
-rw-r--r--dist/classes/User.js.map2
-rw-r--r--dist/enums/MessageReceipt.d.ts4
-rw-r--r--dist/enums/MessageReceipt.js9
-rw-r--r--dist/enums/MessageReceipt.js.map1
-rw-r--r--dist/enums/TypingMessageAction.d.ts4
-rw-r--r--dist/enums/TypingMessageAction.js9
-rw-r--r--dist/enums/TypingMessageAction.js.map1
-rw-r--r--dist/enums/UserDataType.d.ts5
-rw-r--r--dist/enums/UserDataType.js10
-rw-r--r--dist/enums/UserDataType.js.map1
-rw-r--r--dist/types/IConfig.d.ts4
-rw-r--r--dist/types/IConfig.js.map2
-rw-r--r--dist/types/IMimeType.d.ts1
-rw-r--r--dist/types/IMimeType.js3
-rw-r--r--dist/types/IMimeType.js.map1
-rw-r--r--enums/MessageReceipt.ts4
-rw-r--r--enums/TypingMessageAction.ts4
-rw-r--r--enums/UserDataType.ts5
-rw-r--r--package.json2
-rw-r--r--types/IConfig.ts5
-rw-r--r--types/IMimeType.ts1
108 files changed, 1009 insertions, 129 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..35f3def
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+# Signal.js, an easy-to-use Node.js library for Signal
+
+Signal.js makes it easy to create bots or other automated applications for Signal using Node.js, with a fully object-oriented, typed and aims to cover all of Signal's features in the future.
+
+## Installation
+* First, download [signal-cli](https://github.com/AsamK/signal-cli) and install it either in your `$PATH` or in a place where it can be executed.
+* Run `npm install --save git+https://git.equestria.dev/equestria.dev/signal.js.git`
+* You are now ready to work with Signal.js
+
+## Getting started
+Soon™
+
+## Develop responsibly
+Signal is run by a non-profit and moderating it is almost impossible due to the encrypted nature of the application. The Signal.js developers do not encourage using Signal.js for abusive purposes.
+
+Please abide to the [Signal Terms of Service](https://signal.org/legal/#terms-of-service) while using this library, the developers claim absolutely no responsibility in the event your Signal account gets terminated due to abuse. \ No newline at end of file
diff --git a/ROADMAP.md b/ROADMAP.md
new file mode 100644
index 0000000..11d26e6
--- /dev/null
+++ b/ROADMAP.md
@@ -0,0 +1,47 @@
+# signal.js 1.0 roadmap
+
+* [ ] Receiving messages
+ * [x] <s>Typing messages</s>
+ * [x] <s>Text messages</s>
+ * [x] <s>Attachments</s>
+ * [x] <s>Replies</s>
+ * [ ] Formatting
+ * [ ] Stickers
+ * [ ] Voice messages
+ * [x] <s>Marking as read</s>
+ * [x] <s>Reactions</s>
+* [ ] Sending messages
+ * [x] <s>Text</s>
+ * [ ] Attachments
+ * [ ] Replies
+ * [ ] Formatting (Markdown?)
+ * [ ] Typing status
+* [ ] Registration
+ * [ ] Captchas
+ * [ ] SMS registration
+ * [ ] Voice registration
+ * [ ] Linking to another device
+ * [ ] Adding/changing/removing PIN
+* [ ] Users
+ * [ ] (Un)Blocking
+ * [ ] Trusting
+ * [ ] Adding
+* [ ] Groups
+ * [ ] Creating
+ * [ ] Updating
+ * [ ] Leave
+ * [ ] Join (from an invite link)
+* [ ] Profile
+ * [ ] Avatar
+ * [ ] Name
+ * [ ] Status (emoji + text)
+ * [ ] Sticker packs
+ * [ ] Configuration
+ * [ ] Adding/removing linked devices
+* [ ] Listings
+ * [ ] Known contacts
+ * [ ] Linked devices
+ * [ ] Groups
+ * [ ] Known identities
+ * [ ] Check if a phone number is on Signal
+ * [ ] Sticker packs \ No newline at end of file
diff --git a/classes/Attachment.ts b/classes/Attachment.ts
new file mode 100644
index 0000000..a397924
--- /dev/null
+++ b/classes/Attachment.ts
@@ -0,0 +1,22 @@
+import {IMimeType} from "../types/IMimeType";
+import {AttachmentSize} from "./AttachmentSize";
+
+export class Attachment {
+ public type: IMimeType;
+ public fileName: string;
+ public fileId: string;
+ public size: AttachmentSize;
+ public width?: number;
+ public height?: number;
+ public caption?: string;
+
+ constructor(attachmentData: any) {
+ this.type = attachmentData.contentType;
+ this.fileName = attachmentData.filename;
+ this.fileId = attachmentData.id;
+ this.size = new AttachmentSize(attachmentData.size);
+ this.width = attachmentData.width;
+ this.height = attachmentData.height;
+ this.caption = attachmentData.caption;
+ }
+} \ No newline at end of file
diff --git a/classes/AttachmentSize.ts b/classes/AttachmentSize.ts
new file mode 100644
index 0000000..474e2b7
--- /dev/null
+++ b/classes/AttachmentSize.ts
@@ -0,0 +1,5 @@
+export class AttachmentSize extends Number {
+ constructor(props) {
+ super(props);
+ }
+} \ No newline at end of file
diff --git a/classes/CLIEvent.ts b/classes/CLIEvent.ts
index fe94fa2..0e35263 100644
--- a/classes/CLIEvent.ts
+++ b/classes/CLIEvent.ts
@@ -4,13 +4,18 @@ import {ICLIResponse} from "../types/ICLIResponse";
import {GroupTypingMessage} from "./GroupTypingMessage";
import {User} from "./User";
import {DMTypingMessage} from "./DMTypingMessage";
+import {GroupDataMessage} from "./GroupDataMessage";
+import {DMDataMessage} from "./DMDataMessage";
+import {UserDataType} from "../enums/UserDataType";
+import {DMReactionMessage} from "./DMReactionMessage";
+import {GroupReactionMessage} from "./GroupReactionMessage";
/**
* A signal-cli event
*/
export class CLIEvent {
static fromEvent(client: Client, data: ICLIEvent) {
- console.log(data);
+ client.emit("cliEvent", data);
if (data.method === "receive") {
if (data.params.envelope.typingMessage) {
@@ -18,7 +23,7 @@ export class CLIEvent {
if (data.params.envelope.typingMessage.groupId) {
let message: GroupTypingMessage = new GroupTypingMessage(
- new User(data.params.envelope),
+ new User(data.params.envelope, UserDataType.Envelope),
data.params.envelope.typingMessage.action,
data.params.envelope.typingMessage.timestamp,
data.params.envelope.typingMessage.groupId,
@@ -28,7 +33,7 @@ export class CLIEvent {
client.emit("typingMessage", message);
} else {
let message: DMTypingMessage = new DMTypingMessage(
- new User(data.params.envelope),
+ new User(data.params.envelope, UserDataType.Envelope),
data.params.envelope.typingMessage.action,
data.params.envelope.typingMessage.timestamp,
client
@@ -36,6 +41,64 @@ export class CLIEvent {
client.emit("typingMessage", message);
}
+ } else if (data.params.envelope.dataMessage) {
+ console.log(data.params.envelope.dataMessage);
+
+ if (data.params.envelope.dataMessage.reaction) {
+ if (data.params.envelope.dataMessage.groupInfo) {
+ let message: GroupReactionMessage = new GroupReactionMessage(
+ new User(data.params.envelope, UserDataType.Envelope),
+ data.params.envelope.dataMessage,
+ data.params.envelope.dataMessage.timestamp,
+ data.params.envelope.dataMessage.groupInfo.groupId,
+ client
+ );
+
+ client.emit("reaction", message);
+
+ if (message.removed) {
+ client.emit("reactionRemove", message);
+ } else {
+ client.emit("reactionAdd", message);
+ }
+ } else {
+ let message: DMReactionMessage = new DMReactionMessage(
+ new User(data.params.envelope, UserDataType.Envelope),
+ data.params.envelope.dataMessage,
+ data.params.envelope.dataMessage.timestamp,
+ client
+ );
+
+ client.emit("reaction", message);
+
+ if (message.removed) {
+ client.emit("reactionRemove", message);
+ } else {
+ client.emit("reactionAdd", message);
+ }
+ }
+ } else {
+ if (data.params.envelope.dataMessage.groupInfo) {
+ let message: GroupDataMessage = new GroupDataMessage(
+ new User(data.params.envelope, UserDataType.Envelope),
+ data.params.envelope.dataMessage,
+ data.params.envelope.dataMessage.timestamp,
+ data.params.envelope.dataMessage.groupInfo.groupId,
+ client
+ );
+
+ client.emit("message", message);
+ } else {
+ let message: DMDataMessage = new DMDataMessage(
+ new User(data.params.envelope, UserDataType.Envelope),
+ data.params.envelope.dataMessage,
+ data.params.envelope.dataMessage.timestamp,
+ client
+ );
+
+ client.emit("message", message);
+ }
+ }
}
}
}
diff --git a/classes/Client.ts b/classes/Client.ts
index e21a3f9..ca5d794 100644
--- a/classes/Client.ts
+++ b/classes/Client.ts
@@ -3,12 +3,21 @@ import {ChildProcess, spawn} from "child_process";
import {ICLIEvent} from "../types/ICLIEvent";
import {CLIEvent} from "./CLIEvent";
import {SignalError} from "./SignalError";
-import EventEmitter from "events";
+import {EventEmitter} from "events";
import {DMTypingMessage} from "./DMTypingMessage";
import {GroupTypingMessage} from "./GroupTypingMessage";
+import {DMDataMessage} from "./DMDataMessage";
+import {GroupDataMessage} from "./GroupDataMessage";
+import {GroupReactionMessage} from "./GroupReactionMessage";
+import {DMReactionMessage} from "./DMReactionMessage";
export declare interface Client {
+ on(event: "cliEvent", listener: (event: ICLIEvent) => void): this;
on(event: "typingMessage", listener: (message: GroupTypingMessage|DMTypingMessage) => void): this;
+ on(event: "message", listener: (message: GroupDataMessage|DMDataMessage) => void): this;
+ on(event: "reaction", listener: (message: GroupReactionMessage|DMReactionMessage) => void): this;
+ on(event: "reactionAdd", listener: (message: GroupReactionMessage|DMReactionMessage) => void): this;
+ on(event: "reactionRemove", listener: (message: GroupReactionMessage|DMReactionMessage) => void): this;
}
/**
@@ -46,6 +55,7 @@ export class Client extends EventEmitter {
if (JSON.parse(chunk.toString()).params) {
let data: ICLIEvent = JSON.parse(chunk.toString());
+ if (config.logEvents) console.log(data);
CLIEvent.fromEvent(this, data);
}
});
diff --git a/classes/DM.ts b/classes/DM.ts
index 52e52b3..f1fb0e9 100644
--- a/classes/DM.ts
+++ b/classes/DM.ts
@@ -16,7 +16,7 @@ export class DM extends Chat {
this.client = client;
}
- async send(text: string, options?: ChatMessageOptions): Promise<void> {
+ public async send(text: string, options?: ChatMessageOptions): Promise<void> {
await CLIDispatcher.dispatch(
"send",
{
diff --git a/classes/DMDataMessage.ts b/classes/DMDataMessage.ts
new file mode 100644
index 0000000..288162d
--- /dev/null
+++ b/classes/DMDataMessage.ts
@@ -0,0 +1,52 @@
+import {User} from "./User";
+import {ReceivedMessage} from "./ReceivedMessage";
+import {GroupMessage} from "./GroupMessage";
+import {Group} from "./Group";
+import {DMMessage} from "./DMMessage";
+import {DM} from "./DM";
+import {Client} from "./Client";
+import {DataMessage} from "./DataMessage";
+import {Attachment} from "./Attachment";
+import {QuoteMessage} from "./QuoteMessage";
+import {CLIDispatcher} from "./CLIDispatcher";
+import {MessageReceipt} from "../enums/MessageReceipt";
+
+/**
+ * A data message as sent by Signal
+ */
+export class DMDataMessage extends DMMessage implements DataMessage {
+ public content?: string;
+ public attachments: Attachment[] = [];
+ public quote?: QuoteMessage;
+
+ constructor(user: User, data: any, time: number, client: Client) {
+ super(user, time, new DM(user.uuid, user.number, client), client, data.expiresInSeconds);
+ this.content = data.message && data.message.trim().length > 0 ? data.message : null;
+ if (data.quote) this.quote = new QuoteMessage(data.quote);
+ this.attachments = data.attachments?.map(i => new Attachment(i));
+ }
+
+ public async markAsRead() {
+ await CLIDispatcher.dispatch(
+ "sendReceipt",
+ {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt.Read
+ },
+ this.client._process
+ )
+ }
+
+ public async markAsViewed() {
+ await CLIDispatcher.dispatch(
+ "sendReceipt",
+ {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt.Viewed
+ },
+ this.client._process
+ )
+ }
+}
diff --git a/classes/DMMessage.ts b/classes/DMMessage.ts
index 4d925ca..5d94769 100644
--- a/classes/DMMessage.ts
+++ b/classes/DMMessage.ts
@@ -1,11 +1,12 @@
-import {Message} from "./Message";
+import {ReceivedMessage} from "./ReceivedMessage";
import {User} from "./User";
import {DM} from "./DM";
+import {Client} from "./Client";
-export class DMMessage extends Message {
+export class DMMessage extends ReceivedMessage {
public channel: DM;
- constructor(user: User, time: number, dm: DM) {
- super(user, time, dm);
+ constructor(user: User, time: number, dm: DM, client: Client, expirity?: number) {
+ super(user, time, dm, client, expirity);
}
} \ No newline at end of file
diff --git a/classes/DMReactionMessage.ts b/classes/DMReactionMessage.ts
new file mode 100644
index 0000000..e890338
--- /dev/null
+++ b/classes/DMReactionMessage.ts
@@ -0,0 +1,26 @@
+import {User} from "./User";
+import {ReceivedMessage} from "./ReceivedMessage";
+import {GroupMessage} from "./GroupMessage";
+import {Group} from "./Group";
+import {DMMessage} from "./DMMessage";
+import {DM} from "./DM";
+import {Client} from "./Client";
+import {ReactionEmoji} from "./ReactionEmoji";
+import {ReactionTarget} from "./ReactionTarget";
+import {ReactionMessage} from "./ReactionMessage";
+
+/**
+ * A reaction message as sent by Signal
+ */
+export class DMReactionMessage extends DMMessage implements ReactionMessage {
+ public emoji: ReactionEmoji;
+ public removed: boolean;
+ public target: ReactionTarget;
+
+ constructor(user: User, data: any, time: number, client: Client) {
+ super(user, time, new DM(user.uuid, user.number, client), client, data.expiresInSeconds);
+ this.removed = data.reaction.isRemove;
+ this.emoji = new ReactionEmoji(data.reaction.emoji);
+ this.target = new ReactionTarget(data, this.channel, client);
+ }
+} \ No newline at end of file
diff --git a/classes/DMTypingMessage.ts b/classes/DMTypingMessage.ts
index a567b13..82471fb 100644
--- a/classes/DMTypingMessage.ts
+++ b/classes/DMTypingMessage.ts
@@ -1,26 +1,20 @@
import {User} from "./User";
-import {Message} from "./Message";
+import {ReceivedMessage} from "./ReceivedMessage";
import {GroupMessage} from "./GroupMessage";
import {Group} from "./Group";
import {DMMessage} from "./DMMessage";
import {DM} from "./DM";
import {Client} from "./Client";
+import {TypingMessageAction} from "../enums/TypingMessageAction";
/**
* A typing message as sent by Signal
*/
export class DMTypingMessage extends DMMessage {
public action: TypingMessageAction;
- private client: Client;
constructor(user: User, action: TypingMessageAction, time: number, client: Client) {
- super(user, time, new DM(user.uuid, user.number, client));
- this.client = client;
+ super(user, time, new DM(user.uuid, user.number, client), client);
this.action = action;
}
-}
-
-export enum TypingMessageAction {
- Started = "STARTED",
- Stopped = "STOPPED"
} \ No newline at end of file
diff --git a/classes/DataMessage.ts b/classes/DataMessage.ts
new file mode 100644
index 0000000..d699507
--- /dev/null
+++ b/classes/DataMessage.ts
@@ -0,0 +1,8 @@
+import {Attachment} from "./Attachment";
+import {QuoteMessage} from "./QuoteMessage";
+
+export class DataMessage {
+ public content?: string;
+ public attachments: Attachment[] = [];
+ public quote?: QuoteMessage;
+} \ No newline at end of file
diff --git a/classes/Group.ts b/classes/Group.ts
index 2ae1867..33be799 100644
--- a/classes/Group.ts
+++ b/classes/Group.ts
@@ -14,7 +14,7 @@ export class Group extends Chat {
this.client = client;
}
- async send(text: string, options?: ChatMessageOptions): Promise<void> {
+ public async send(text: string, options?: ChatMessageOptions): Promise<void> {
let groupData = await CLIDispatcher.dispatch(
"listGroups",
{
diff --git a/classes/GroupDataMessage.ts b/classes/GroupDataMessage.ts
new file mode 100644
index 0000000..f692044
--- /dev/null
+++ b/classes/GroupDataMessage.ts
@@ -0,0 +1,51 @@
+import {User} from "./User";
+import {ReceivedMessage} from "./ReceivedMessage";
+import {GroupMessage} from "./GroupMessage";
+import {Group} from "./Group";
+import {Client} from "./Client";
+import {DataMessage} from "./DataMessage";
+import {Attachment} from "./Attachment";
+import {QuoteMessage} from "./QuoteMessage";
+import {CLIDispatcher} from "./CLIDispatcher";
+import {MessageReceipt} from "../enums/MessageReceipt";
+
+/**
+ * A data message as sent by Signal
+ */
+export class GroupDataMessage extends GroupMessage implements DataMessage {
+ public content?: string;
+ public attachments: Attachment[] = [];
+ public quote?: QuoteMessage;
+
+ constructor(user: User, data: any, time: number, groupId: string, client) {
+ super(user, time, new Group(groupId, client), client, data.expiresInSeconds);
+ this.client = client;
+ this.content = data.message && data.message.trim().length > 0 ? data.message : null;
+ if (data.quote) this.quote = new QuoteMessage(data.quote);
+ this.attachments = data.attachments?.map(i => new Attachment(i));
+ }
+
+ public async markAsRead() {
+ await CLIDispatcher.dispatch(
+ "sendReceipt",
+ {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt.Read
+ },
+ this.client._process
+ )
+ }
+
+ public async markAsViewed() {
+ await CLIDispatcher.dispatch(
+ "sendReceipt",
+ {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt.Viewed
+ },
+ this.client._process
+ )
+ }
+} \ No newline at end of file
diff --git a/classes/GroupMessage.ts b/classes/GroupMessage.ts
index 5f8e2d7..99a88f6 100644
--- a/classes/GroupMessage.ts
+++ b/classes/GroupMessage.ts
@@ -1,11 +1,12 @@
-import {Message} from "./Message";
+import {ReceivedMessage} from "./ReceivedMessage";
import {User} from "./User";
import {Group} from "./Group";
+import {Client} from "./Client";
-export class GroupMessage extends Message {
+export class GroupMessage extends ReceivedMessage {
public channel: Group;
- constructor(user: User, time: number, group: Group) {
- super(user, time, group);
+ constructor(user: User, time: number, group: Group, client: Client, expirity?: number) {
+ super(user, time, group, client, expirity);
}
} \ No newline at end of file
diff --git a/classes/GroupReactionMessage.ts b/classes/GroupReactionMessage.ts
new file mode 100644
index 0000000..5bba099
--- /dev/null
+++ b/classes/GroupReactionMessage.ts
@@ -0,0 +1,24 @@
+import {User} from "./User";
+import {ReceivedMessage} from "./ReceivedMessage";
+import {GroupMessage} from "./GroupMessage";
+import {Group} from "./Group";
+import {Client} from "./Client";
+import {ReactionEmoji} from "./ReactionEmoji";
+import {ReactionTarget} from "./ReactionTarget";
+import {ReactionMessage} from "./ReactionMessage";
+
+/**
+ * A reaction message as sent by Signal
+ */
+export class GroupReactionMessage extends GroupMessage implements ReactionMessage {
+ public emoji: ReactionEmoji;
+ public removed: boolean;
+ public target: ReactionTarget;
+
+ constructor(user: User, data: any, time: number, groupId: string, client: Client) {
+ super(user, time, new Group(groupId, client), client, data.expiresInSeconds);
+ this.removed = data.reaction.isRemove;
+ this.emoji = new ReactionEmoji(data.reaction.emoji);
+ this.target = new ReactionTarget(data, this.channel, client);
+ }
+} \ No newline at end of file
diff --git a/classes/GroupTypingMessage.ts b/classes/GroupTypingMessage.ts
index b48b8f7..5144df1 100644
--- a/classes/GroupTypingMessage.ts
+++ b/classes/GroupTypingMessage.ts
@@ -1,24 +1,18 @@
import {User} from "./User";
-import {Message} from "./Message";
+import {ReceivedMessage} from "./ReceivedMessage";
import {GroupMessage} from "./GroupMessage";
import {Group} from "./Group";
import {Client} from "./Client";
+import {TypingMessageAction} from "../enums/TypingMessageAction";
/**
* A typing message as sent by Signal
*/
export class GroupTypingMessage extends GroupMessage {
public action: TypingMessageAction;
- private client: Client;
- constructor(user: User, action: TypingMessageAction, time: number, groupId: string, client) {
- super(user, time, new Group(groupId, client));
+ constructor(user: User, action: TypingMessageAction, time: number, groupId: string, client: Client) {
+ super(user, time, new Group(groupId, client), client);
this.action = action;
- this.client = client;
}
-}
-
-export enum TypingMessageAction {
- Started = "STARTED",
- Stopped = "STOPPED"
} \ No newline at end of file
diff --git a/classes/Message.ts b/classes/Message.ts
deleted file mode 100644
index 32f017c..0000000
--- a/classes/Message.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import {User} from "./User";
-import {Group} from "./Group";
-import {DM} from "./DM";
-
-export class Message {
- public author: User;
- public createdAt: Date;
- public createdTimestamp: number;
- public channel: DM|Group;
-
- constructor(user: User, time: number, channel: DM|Group) {
- this.channel = channel;
- this.author = user;
- this.createdAt = new Date(time);
- this.createdTimestamp = time;
- }
-} \ No newline at end of file
diff --git a/classes/QuoteMessage.ts b/classes/QuoteMessage.ts
new file mode 100644
index 0000000..bfbea32
--- /dev/null
+++ b/classes/QuoteMessage.ts
@@ -0,0 +1,15 @@
+import {User} from "./User";
+import {Attachment} from "./Attachment";
+import {UserDataType} from "../enums/UserDataType";
+
+export class QuoteMessage {
+ public author: User;
+ public content?: string;
+ public attachments?: Attachment[];
+
+ constructor(quoteData: any) {
+ this.author = new User(quoteData, UserDataType.Quote);
+ this.content = quoteData.text && quoteData.text.trim().length > 0 ? quoteData.text : null;
+ this.attachments = quoteData?.attachments.map(i => new Attachment(i));
+ }
+} \ No newline at end of file
diff --git a/classes/ReactionEmoji.ts b/classes/ReactionEmoji.ts
new file mode 100644
index 0000000..6b755d6
--- /dev/null
+++ b/classes/ReactionEmoji.ts
@@ -0,0 +1,5 @@
+export class ReactionEmoji extends String {
+ constructor(props) {
+ super(props);
+ }
+} \ No newline at end of file
diff --git a/classes/ReactionMessage.ts b/classes/ReactionMessage.ts
new file mode 100644
index 0000000..95e5994
--- /dev/null
+++ b/classes/ReactionMessage.ts
@@ -0,0 +1,10 @@
+import {Attachment} from "./Attachment";
+import {QuoteMessage} from "./QuoteMessage";
+import {ReactionEmoji} from "./ReactionEmoji";
+import {ReactionTarget} from "./ReactionTarget";
+
+export class ReactionMessage {
+ public emoji: ReactionEmoji;
+ public removed: boolean;
+ public target: ReactionTarget;
+} \ No newline at end of file
diff --git a/classes/ReactionTarget.ts b/classes/ReactionTarget.ts
new file mode 100644
index 0000000..e845253
--- /dev/null
+++ b/classes/ReactionTarget.ts
@@ -0,0 +1,12 @@
+import {User} from "./User";
+import {UserDataType} from "../enums/UserDataType";
+import {ReceivedMessage} from "./ReceivedMessage";
+import {DM} from "./DM";
+import {Group} from "./Group";
+import {Client} from "./Client";
+
+export class ReactionTarget extends ReceivedMessage {
+ constructor(data: any, channel: DM|Group, client: Client) {
+ super(new User(data.reaction, UserDataType.Reaction), data.reaction.targetSentTimestamp, channel, client, null);
+ }
+} \ No newline at end of file
diff --git a/classes/ReceivedMessage.ts b/classes/ReceivedMessage.ts
new file mode 100644
index 0000000..2d6750c
--- /dev/null
+++ b/classes/ReceivedMessage.ts
@@ -0,0 +1,33 @@
+import {User} from "./User";
+import {Group} from "./Group";
+import {DM} from "./DM";
+import {Client} from "./Client";
+
+export class ReceivedMessage {
+ public client: Client;
+ public author: User;
+ public createdAt: Date;
+ public createdTimestamp: number;
+ public channel: DM|Group;
+ public ephemeral: boolean|null = false;
+ public expiresAt?: Date;
+ public expiresTimestamp?: number;
+ public expiresInSeconds?: number;
+
+ constructor(user: User, time: number, channel: DM|Group, client: Client, expirity?: number|null) {
+ this.client = client;
+ this.channel = channel;
+ this.author = user;
+ this.createdAt = new Date(time);
+ this.createdTimestamp = time;
+
+ if (expirity && expirity > 0) {
+ this.ephemeral = true;
+ this.expiresInSeconds = expirity;
+ this.expiresTimestamp = new Date().getTime() + (expirity * 1000);
+ this.expiresAt = new Date(new Date().getTime() + (expirity * 1000));
+ } else if (expirity === null) {
+ this.ephemeral = null;
+ }
+ }
+} \ No newline at end of file
diff --git a/classes/User.ts b/classes/User.ts
index 882fa3b..f69eed2 100644
--- a/classes/User.ts
+++ b/classes/User.ts
@@ -1,13 +1,23 @@
+import {UserDataType} from "../enums/UserDataType";
+
export class User {
public number: string|null = null;
public nickName: string|null = null;
public uuid: string|null = null;
public device: number|null = null;
- constructor(envolope: any) {
- if (envolope.sourceNumber && typeof envolope.sourceNumber === "string") this.number = envolope.sourceNumber;
- if (envolope.sourceName && typeof envolope.sourceName === "string") this.nickName = envolope.sourceName;
- if (envolope.sourceUuid && typeof envolope.sourceUuid === "string") this.uuid = envolope.sourceUuid;
- if (envolope.sourceDevice && typeof envolope.sourceDevice === "string") this.device = envolope.sourceDevice;
+ constructor(data: any, dataType: UserDataType) {
+ if (dataType === UserDataType.Envelope) {
+ if (data.sourceNumber && typeof data.sourceNumber === "string") this.number = data.sourceNumber;
+ if (data.sourceName && typeof data.sourceName === "string") this.nickName = data.sourceName;
+ if (data.sourceUuid && typeof data.sourceUuid === "string") this.uuid = data.sourceUuid;
+ if (data.sourceDevice && typeof data.sourceDevice === "string") this.device = data.sourceDevice;
+ } else if (dataType === UserDataType.Quote) {
+ if (data.authorNumber && typeof data.authorNumber === "string") this.number = data.authorNumber;
+ if (data.authorUuid && typeof data.authorUuid === "string") this.uuid = data.authorUuid;
+ } else if (dataType === UserDataType.Reaction) {
+ if (data.targetAuthorNumber && typeof data.targetAuthorNumber === "string") this.number = data.targetAuthorNumber;
+ if (data.targetAuthorUuid && typeof data.targetAuthorUuid === "string") this.uuid = data.targetAuthorUuid;
+ }
}
} \ No newline at end of file
diff --git a/dist/classes/Attachment.d.ts b/dist/classes/Attachment.d.ts
new file mode 100644
index 0000000..1b350a0
--- /dev/null
+++ b/dist/classes/Attachment.d.ts
@@ -0,0 +1,12 @@
+import { IMimeType } from "../types/IMimeType";
+import { AttachmentSize } from "./AttachmentSize";
+export declare class Attachment {
+ type: IMimeType;
+ fileName: string;
+ fileId: string;
+ size: AttachmentSize;
+ width?: number;
+ height?: number;
+ caption?: string;
+ constructor(attachmentData: any);
+}
diff --git a/dist/classes/Attachment.js b/dist/classes/Attachment.js
new file mode 100644
index 0000000..0b4ad91
--- /dev/null
+++ b/dist/classes/Attachment.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Attachment = void 0;
+const AttachmentSize_1 = require("./AttachmentSize");
+class Attachment {
+ constructor(attachmentData) {
+ this.type = attachmentData.contentType;
+ this.fileName = attachmentData.filename;
+ this.fileId = attachmentData.id;
+ this.size = new AttachmentSize_1.AttachmentSize(attachmentData.size);
+ this.width = attachmentData.width;
+ this.height = attachmentData.height;
+ this.caption = attachmentData.caption;
+ }
+}
+exports.Attachment = Attachment;
+//# sourceMappingURL=Attachment.js.map \ No newline at end of file
diff --git a/dist/classes/Attachment.js.map b/dist/classes/Attachment.js.map
new file mode 100644
index 0000000..242b891
--- /dev/null
+++ b/dist/classes/Attachment.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Attachment.js","sourceRoot":"","sources":["../../classes/Attachment.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAEhD,MAAa,UAAU;IASnB,YAAY,cAAmB;QAC3B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,+BAAc,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC1C,CAAC;CACJ;AAlBD,gCAkBC"} \ No newline at end of file
diff --git a/dist/classes/AttachmentSize.d.ts b/dist/classes/AttachmentSize.d.ts
new file mode 100644
index 0000000..0560e10
--- /dev/null
+++ b/dist/classes/AttachmentSize.d.ts
@@ -0,0 +1,3 @@
+export declare class AttachmentSize extends Number {
+ constructor(props: any);
+}
diff --git a/dist/classes/AttachmentSize.js b/dist/classes/AttachmentSize.js
new file mode 100644
index 0000000..740f3bb
--- /dev/null
+++ b/dist/classes/AttachmentSize.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.AttachmentSize = void 0;
+class AttachmentSize extends Number {
+ constructor(props) {
+ super(props);
+ }
+}
+exports.AttachmentSize = AttachmentSize;
+//# sourceMappingURL=AttachmentSize.js.map \ No newline at end of file
diff --git a/dist/classes/AttachmentSize.js.map b/dist/classes/AttachmentSize.js.map
new file mode 100644
index 0000000..faf9b7b
--- /dev/null
+++ b/dist/classes/AttachmentSize.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"AttachmentSize.js","sourceRoot":"","sources":["../../classes/AttachmentSize.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAe,SAAQ,MAAM;IACtC,YAAY,KAAK;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;CACJ;AAJD,wCAIC"} \ No newline at end of file
diff --git a/dist/classes/CLIEvent.js b/dist/classes/CLIEvent.js
index 8b93ee1..888410a 100644
--- a/dist/classes/CLIEvent.js
+++ b/dist/classes/CLIEvent.js
@@ -4,24 +4,64 @@ exports.CLIEvent = void 0;
const GroupTypingMessage_1 = require("./GroupTypingMessage");
const User_1 = require("./User");
const DMTypingMessage_1 = require("./DMTypingMessage");
+const GroupDataMessage_1 = require("./GroupDataMessage");
+const DMDataMessage_1 = require("./DMDataMessage");
+const UserDataType_1 = require("../enums/UserDataType");
+const DMReactionMessage_1 = require("./DMReactionMessage");
+const GroupReactionMessage_1 = require("./GroupReactionMessage");
/**
* A signal-cli event
*/
class CLIEvent {
static fromEvent(client, data) {
- console.log(data);
+ client.emit("cliEvent", data);
if (data.method === "receive") {
if (data.params.envelope.typingMessage) {
console.log(data.params.envelope.typingMessage);
if (data.params.envelope.typingMessage.groupId) {
- let message = new GroupTypingMessage_1.GroupTypingMessage(new User_1.User(data.params.envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, data.params.envelope.typingMessage.groupId, client);
+ let message = new GroupTypingMessage_1.GroupTypingMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, data.params.envelope.typingMessage.groupId, client);
client.emit("typingMessage", message);
}
else {
- let message = new DMTypingMessage_1.DMTypingMessage(new User_1.User(data.params.envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, client);
+ let message = new DMTypingMessage_1.DMTypingMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.typingMessage.action, data.params.envelope.typingMessage.timestamp, client);
client.emit("typingMessage", message);
}
}
+ else if (data.params.envelope.dataMessage) {
+ console.log(data.params.envelope.dataMessage);
+ if (data.params.envelope.dataMessage.reaction) {
+ if (data.params.envelope.dataMessage.groupInfo) {
+ let message = new GroupReactionMessage_1.GroupReactionMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, data.params.envelope.dataMessage.groupInfo.groupId, client);
+ client.emit("reaction", message);
+ if (message.removed) {
+ client.emit("reactionRemove", message);
+ }
+ else {
+ client.emit("reactionAdd", message);
+ }
+ }
+ else {
+ let message = new DMReactionMessage_1.DMReactionMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, client);
+ client.emit("reaction", message);
+ if (message.removed) {
+ client.emit("reactionRemove", message);
+ }
+ else {
+ client.emit("reactionAdd", message);
+ }
+ }
+ }
+ else {
+ if (data.params.envelope.dataMessage.groupInfo) {
+ let message = new GroupDataMessage_1.GroupDataMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, data.params.envelope.dataMessage.groupInfo.groupId, client);
+ client.emit("message", message);
+ }
+ else {
+ let message = new DMDataMessage_1.DMDataMessage(new User_1.User(data.params.envelope, UserDataType_1.UserDataType.Envelope), data.params.envelope.dataMessage, data.params.envelope.dataMessage.timestamp, client);
+ client.emit("message", message);
+ }
+ }
+ }
}
}
static fromResponse(client, data) {
diff --git a/dist/classes/CLIEvent.js.map b/dist/classes/CLIEvent.js.map
index 7f4819e..049e718 100644
--- a/dist/classes/CLIEvent.js.map
+++ b/dist/classes/CLIEvent.js.map
@@ -1 +1 @@
-{"version":3,"file":"CLIEvent.js","sourceRoot":"","sources":["../../classes/CLIEvent.ts"],"names":[],"mappings":";;;AAGA,6DAAwD;AACxD,iCAA4B;AAC5B,uDAAkD;AAElD;;GAEG;AACH,MAAa,QAAQ;IACjB,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,IAAe;QAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE;oBAC5C,IAAI,OAAO,GAAuB,IAAI,uCAAkB,CACpD,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAC1C,MAAM,CACT,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;iBACzC;qBAAM;oBACH,IAAI,OAAO,GAAoB,IAAI,iCAAe,CAC9C,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAC5C,MAAM,CACT,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;iBACzC;aACJ;SACJ;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,IAAkB;QAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACJ;AAnCD,4BAmCC"} \ No newline at end of file
+{"version":3,"file":"CLIEvent.js","sourceRoot":"","sources":["../../classes/CLIEvent.ts"],"names":[],"mappings":";;;AAGA,6DAAwD;AACxD,iCAA4B;AAC5B,uDAAkD;AAClD,yDAAoD;AACpD,mDAA8C;AAC9C,wDAAmD;AACnD,2DAAsD;AACtD,iEAA4D;AAE5D;;GAEG;AACH,MAAa,QAAQ;IACjB,MAAM,CAAC,SAAS,CAAC,MAAc,EAAE,IAAe;QAC5C,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE;gBACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE;oBAC5C,IAAI,OAAO,GAAuB,IAAI,uCAAkB,CACpD,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAC1C,MAAM,CACT,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;iBACzC;qBAAM;oBACH,IAAI,OAAO,GAAoB,IAAI,iCAAe,CAC9C,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,EACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAC5C,MAAM,CACT,CAAC;oBAEF,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;iBACzC;aACJ;iBAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAE9C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE;oBAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE;wBAC5C,IAAI,OAAO,GAAyB,IAAI,2CAAoB,CACxD,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAClD,MAAM,CACT,CAAC;wBAEF,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBAEjC,IAAI,OAAO,CAAC,OAAO,EAAE;4BACjB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;yBAC1C;6BAAM;4BACH,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;yBACvC;qBACJ;yBAAM;wBACH,IAAI,OAAO,GAAsB,IAAI,qCAAiB,CAClD,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAC1C,MAAM,CACT,CAAC;wBAEF,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;wBAEjC,IAAI,OAAO,CAAC,OAAO,EAAE;4BACjB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;yBAC1C;6BAAM;4BACH,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;yBACvC;qBACJ;iBACJ;qBAAM;oBACH,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE;wBAC5C,IAAI,OAAO,GAAqB,IAAI,mCAAgB,CAChD,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,EAClD,MAAM,CACT,CAAC;wBAEF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;qBACnC;yBAAM;wBACH,IAAI,OAAO,GAAkB,IAAI,6BAAa,CAC1C,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,EAC1C,MAAM,CACT,CAAC;wBAEF,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;qBACnC;iBACJ;aACJ;SACJ;IACL,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAc,EAAE,IAAkB;QAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACJ;AA7FD,4BA6FC"} \ No newline at end of file
diff --git a/dist/classes/Client.d.ts b/dist/classes/Client.d.ts
index 080bac7..b22d01e 100644
--- a/dist/classes/Client.d.ts
+++ b/dist/classes/Client.d.ts
@@ -2,11 +2,21 @@
/// <reference types="node" />
import { IConfig } from "../types/IConfig";
import { ChildProcess } from "child_process";
-import EventEmitter from "events";
+import { ICLIEvent } from "../types/ICLIEvent";
+import { EventEmitter } from "events";
import { DMTypingMessage } from "./DMTypingMessage";
import { GroupTypingMessage } from "./GroupTypingMessage";
+import { DMDataMessage } from "./DMDataMessage";
+import { GroupDataMessage } from "./GroupDataMessage";
+import { GroupReactionMessage } from "./GroupReactionMessage";
+import { DMReactionMessage } from "./DMReactionMessage";
export declare interface Client {
+ on(event: "cliEvent", listener: (event: ICLIEvent) => void): this;
on(event: "typingMessage", listener: (message: GroupTypingMessage | DMTypingMessage) => void): this;
+ on(event: "message", listener: (message: GroupDataMessage | DMDataMessage) => void): this;
+ on(event: "reaction", listener: (message: GroupReactionMessage | DMReactionMessage) => void): this;
+ on(event: "reactionAdd", listener: (message: GroupReactionMessage | DMReactionMessage) => void): this;
+ on(event: "reactionRemove", listener: (message: GroupReactionMessage | DMReactionMessage) => void): this;
}
/**
* The base signal.js client
diff --git a/dist/classes/Client.js b/dist/classes/Client.js
index f5bc8cf..2395ed7 100644
--- a/dist/classes/Client.js
+++ b/dist/classes/Client.js
@@ -1,17 +1,14 @@
"use strict";
-var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
-};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Client = void 0;
const child_process_1 = require("child_process");
const CLIEvent_1 = require("./CLIEvent");
const SignalError_1 = require("./SignalError");
-const events_1 = __importDefault(require("events"));
+const events_1 = require("events");
/**
* The base signal.js client
*/
-class Client extends events_1.default {
+class Client extends events_1.EventEmitter {
constructor(config) {
super();
let command = config.signalCli ?? "signal-cli";
@@ -41,6 +38,8 @@ class Client extends events_1.default {
return;
if (JSON.parse(chunk.toString()).params) {
let data = JSON.parse(chunk.toString());
+ if (config.logEvents)
+ console.log(data);
CLIEvent_1.CLIEvent.fromEvent(this, data);
}
});
diff --git a/dist/classes/Client.js.map b/dist/classes/Client.js.map
index 0b4d890..a92a1b9 100644
--- a/dist/classes/Client.js.map
+++ b/dist/classes/Client.js.map
@@ -1 +1 @@
-{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../classes/Client.ts"],"names":[],"mappings":";;;;;;AACA,iDAAkD;AAElD,yCAAoC;AACpC,+CAA0C;AAC1C,oDAAkC;AAQlC;;GAEG;AACH,MAAa,MAAO,SAAQ,gBAAY;IAIpC,YAAY,MAAe;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,GAAW,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC;QACvD,IAAI,UAAU,GAAa,EAAE,CAAC;QAE9B,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhE,IAAI,MAAM,CAAC,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACpG,IAAI,MAAM,CAAC,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACrF,IAAI,MAAM,CAAC,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpF,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI;YAC9E,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEjD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACrC,IAAI,IAAI,GAAc,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnD,mBAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACzD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACzD,MAAM,IAAI,yBAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA1CD,wBA0CC"} \ No newline at end of file
+{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../classes/Client.ts"],"names":[],"mappings":";;;AACA,iDAAkD;AAElD,yCAAoC;AACpC,+CAA0C;AAC1C,mCAAoC;AAiBpC;;GAEG;AACH,MAAa,MAAO,SAAQ,qBAAY;IAIpC,YAAY,MAAe;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,GAAW,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC;QACvD,IAAI,UAAU,GAAa,EAAE,CAAC;QAE9B,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhE,IAAI,MAAM,CAAC,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACpG,IAAI,MAAM,CAAC,WAAW;YAAE,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACrF,IAAI,MAAM,CAAC,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpF,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI;YAC9E,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEjD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACrC,IAAI,IAAI,GAAc,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,SAAS;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,mBAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACzD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,OAAO;YACzD,MAAM,IAAI,yBAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QAChE,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA3CD,wBA2CC"} \ No newline at end of file
diff --git a/dist/classes/DM.js.map b/dist/classes/DM.js.map
index fb5a6f9..ed63007 100644
--- a/dist/classes/DM.js.map
+++ b/dist/classes/DM.js.map
@@ -1 +1 @@
-{"version":3,"file":"DM.js","sourceRoot":"","sources":["../../classes/DM.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAE5B,mDAA8C;AAG9C,MAAa,EAAG,SAAQ,WAAI;IAMxB,YAAY,MAAc,EAAE,MAAc,EAAE,MAAc;QACtD,KAAK,EAAE,CAAC;QANL,UAAK,GAAY,KAAK,CAAC;QAO1B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAA4B;QACjD,MAAM,6BAAa,CAAC,QAAQ,CACxB,MAAM,EACN;YACI,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAA;IACL,CAAC;CACJ;AAvBD,gBAuBC"} \ No newline at end of file
+{"version":3,"file":"DM.js","sourceRoot":"","sources":["../../classes/DM.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAE5B,mDAA8C;AAG9C,MAAa,EAAG,SAAQ,WAAI;IAMxB,YAAY,MAAc,EAAE,MAAc,EAAE,MAAc;QACtD,KAAK,EAAE,CAAC;QANL,UAAK,GAAY,KAAK,CAAC;QAO1B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAA4B;QACxD,MAAM,6BAAa,CAAC,QAAQ,CACxB,MAAM,EACN;YACI,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAA;IACL,CAAC;CACJ;AAvBD,gBAuBC"} \ No newline at end of file
diff --git a/dist/classes/DMDataMessage.d.ts b/dist/classes/DMDataMessage.d.ts
new file mode 100644
index 0000000..61640c4
--- /dev/null
+++ b/dist/classes/DMDataMessage.d.ts
@@ -0,0 +1,17 @@
+import { User } from "./User";
+import { DMMessage } from "./DMMessage";
+import { Client } from "./Client";
+import { DataMessage } from "./DataMessage";
+import { Attachment } from "./Attachment";
+import { QuoteMessage } from "./QuoteMessage";
+/**
+ * A data message as sent by Signal
+ */
+export declare class DMDataMessage extends DMMessage implements DataMessage {
+ content?: string;
+ attachments: Attachment[];
+ quote?: QuoteMessage;
+ constructor(user: User, data: any, time: number, client: Client);
+ markAsRead(): Promise<void>;
+ markAsViewed(): Promise<void>;
+}
diff --git a/dist/classes/DMDataMessage.js b/dist/classes/DMDataMessage.js
new file mode 100644
index 0000000..deda9c9
--- /dev/null
+++ b/dist/classes/DMDataMessage.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DMDataMessage = void 0;
+const DMMessage_1 = require("./DMMessage");
+const DM_1 = require("./DM");
+const Attachment_1 = require("./Attachment");
+const QuoteMessage_1 = require("./QuoteMessage");
+const CLIDispatcher_1 = require("./CLIDispatcher");
+const MessageReceipt_1 = require("../enums/MessageReceipt");
+/**
+ * A data message as sent by Signal
+ */
+class DMDataMessage extends DMMessage_1.DMMessage {
+ constructor(user, data, time, client) {
+ super(user, time, new DM_1.DM(user.uuid, user.number, client), client, data.expiresInSeconds);
+ this.attachments = [];
+ this.content = data.message && data.message.trim().length > 0 ? data.message : null;
+ if (data.quote)
+ this.quote = new QuoteMessage_1.QuoteMessage(data.quote);
+ this.attachments = data.attachments?.map(i => new Attachment_1.Attachment(i));
+ }
+ async markAsRead() {
+ await CLIDispatcher_1.CLIDispatcher.dispatch("sendReceipt", {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt_1.MessageReceipt.Read
+ }, this.client._process);
+ }
+ async markAsViewed() {
+ await CLIDispatcher_1.CLIDispatcher.dispatch("sendReceipt", {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt_1.MessageReceipt.Viewed
+ }, this.client._process);
+ }
+}
+exports.DMDataMessage = DMDataMessage;
+//# sourceMappingURL=DMDataMessage.js.map \ No newline at end of file
diff --git a/dist/classes/DMDataMessage.js.map b/dist/classes/DMDataMessage.js.map
new file mode 100644
index 0000000..b36467f
--- /dev/null
+++ b/dist/classes/DMDataMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"DMDataMessage.js","sourceRoot":"","sources":["../../classes/DMDataMessage.ts"],"names":[],"mappings":";;;AAIA,2CAAsC;AACtC,6BAAwB;AAGxB,6CAAwC;AACxC,iDAA4C;AAC5C,mDAA8C;AAC9C,4DAAuD;AAEvD;;GAEG;AACH,MAAa,aAAc,SAAQ,qBAAS;IAKxC,YAAY,IAAU,EAAE,IAAS,EAAE,IAAY,EAAE,MAAc;QAC3D,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAJtF,gBAAW,GAAiB,EAAE,CAAC;QAKlC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,uBAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,MAAM,6BAAa,CAAC,QAAQ,CACxB,aAAa,EACb;YACI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC7B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,IAAI,EAAE,+BAAc,CAAC,IAAI;SAC5B,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,MAAM,6BAAa,CAAC,QAAQ,CACxB,aAAa,EACb;YACI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC7B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,IAAI,EAAE,+BAAc,CAAC,MAAM;SAC9B,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAA;IACL,CAAC;CACJ;AAnCD,sCAmCC"} \ No newline at end of file
diff --git a/dist/classes/DMMessage.d.ts b/dist/classes/DMMessage.d.ts
index db80d16..46fb474 100644
--- a/dist/classes/DMMessage.d.ts
+++ b/dist/classes/DMMessage.d.ts
@@ -1,7 +1,8 @@
-import { Message } from "./Message";
+import { ReceivedMessage } from "./ReceivedMessage";
import { User } from "./User";
import { DM } from "./DM";
-export declare class DMMessage extends Message {
+import { Client } from "./Client";
+export declare class DMMessage extends ReceivedMessage {
channel: DM;
- constructor(user: User, time: number, dm: DM);
+ constructor(user: User, time: number, dm: DM, client: Client, expirity?: number);
}
diff --git a/dist/classes/DMMessage.js b/dist/classes/DMMessage.js
index 8b75f1c..ae63b22 100644
--- a/dist/classes/DMMessage.js
+++ b/dist/classes/DMMessage.js
@@ -1,10 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DMMessage = void 0;
-const Message_1 = require("./Message");
-class DMMessage extends Message_1.Message {
- constructor(user, time, dm) {
- super(user, time, dm);
+const ReceivedMessage_1 = require("./ReceivedMessage");
+class DMMessage extends ReceivedMessage_1.ReceivedMessage {
+ constructor(user, time, dm, client, expirity) {
+ super(user, time, dm, client, expirity);
}
}
exports.DMMessage = DMMessage;
diff --git a/dist/classes/DMMessage.js.map b/dist/classes/DMMessage.js.map
index b746237..21fed4c 100644
--- a/dist/classes/DMMessage.js.map
+++ b/dist/classes/DMMessage.js.map
@@ -1 +1 @@
-{"version":3,"file":"DMMessage.js","sourceRoot":"","sources":["../../classes/DMMessage.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAIlC,MAAa,SAAU,SAAQ,iBAAO;IAGlC,YAAY,IAAU,EAAE,IAAY,EAAE,EAAM;QACxC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;CACJ;AAND,8BAMC"} \ No newline at end of file
+{"version":3,"file":"DMMessage.js","sourceRoot":"","sources":["../../classes/DMMessage.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAKlD,MAAa,SAAU,SAAQ,iCAAe;IAG1C,YAAY,IAAU,EAAE,IAAY,EAAE,EAAM,EAAE,MAAc,EAAE,QAAiB;QAC3E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACJ;AAND,8BAMC"} \ No newline at end of file
diff --git a/dist/classes/DMReactionMessage.d.ts b/dist/classes/DMReactionMessage.d.ts
new file mode 100644
index 0000000..f87ca59
--- /dev/null
+++ b/dist/classes/DMReactionMessage.d.ts
@@ -0,0 +1,15 @@
+import { User } from "./User";
+import { DMMessage } from "./DMMessage";
+import { Client } from "./Client";
+import { ReactionEmoji } from "./ReactionEmoji";
+import { ReactionTarget } from "./ReactionTarget";
+import { ReactionMessage } from "./ReactionMessage";
+/**
+ * A reaction message as sent by Signal
+ */
+export declare class DMReactionMessage extends DMMessage implements ReactionMessage {
+ emoji: ReactionEmoji;
+ removed: boolean;
+ target: ReactionTarget;
+ constructor(user: User, data: any, time: number, client: Client);
+}
diff --git a/dist/classes/DMReactionMessage.js b/dist/classes/DMReactionMessage.js
new file mode 100644
index 0000000..3c4f6ef
--- /dev/null
+++ b/dist/classes/DMReactionMessage.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DMReactionMessage = void 0;
+const DMMessage_1 = require("./DMMessage");
+const DM_1 = require("./DM");
+const ReactionEmoji_1 = require("./ReactionEmoji");
+const ReactionTarget_1 = require("./ReactionTarget");
+/**
+ * A reaction message as sent by Signal
+ */
+class DMReactionMessage extends DMMessage_1.DMMessage {
+ constructor(user, data, time, client) {
+ super(user, time, new DM_1.DM(user.uuid, user.number, client), client, data.expiresInSeconds);
+ this.removed = data.reaction.isRemove;
+ this.emoji = new ReactionEmoji_1.ReactionEmoji(data.reaction.emoji);
+ this.target = new ReactionTarget_1.ReactionTarget(data, this.channel, client);
+ }
+}
+exports.DMReactionMessage = DMReactionMessage;
+//# sourceMappingURL=DMReactionMessage.js.map \ No newline at end of file
diff --git a/dist/classes/DMReactionMessage.js.map b/dist/classes/DMReactionMessage.js.map
new file mode 100644
index 0000000..df7ef33
--- /dev/null
+++ b/dist/classes/DMReactionMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"DMReactionMessage.js","sourceRoot":"","sources":["../../classes/DMReactionMessage.ts"],"names":[],"mappings":";;;AAIA,2CAAsC;AACtC,6BAAwB;AAExB,mDAA8C;AAC9C,qDAAgD;AAGhD;;GAEG;AACH,MAAa,iBAAkB,SAAQ,qBAAS;IAK5C,YAAY,IAAU,EAAE,IAAS,EAAE,IAAY,EAAE,MAAc;QAC3D,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,+BAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;CACJ;AAXD,8CAWC"} \ No newline at end of file
diff --git a/dist/classes/DMTypingMessage.d.ts b/dist/classes/DMTypingMessage.d.ts
index 232a13f..cce0ddd 100644
--- a/dist/classes/DMTypingMessage.d.ts
+++ b/dist/classes/DMTypingMessage.d.ts
@@ -1,15 +1,11 @@
import { User } from "./User";
import { DMMessage } from "./DMMessage";
import { Client } from "./Client";
+import { TypingMessageAction } from "../enums/TypingMessageAction";
/**
* A typing message as sent by Signal
*/
export declare class DMTypingMessage extends DMMessage {
action: TypingMessageAction;
- private client;
constructor(user: User, action: TypingMessageAction, time: number, client: Client);
}
-export declare enum TypingMessageAction {
- Started = "STARTED",
- Stopped = "STOPPED"
-}
diff --git a/dist/classes/DMTypingMessage.js b/dist/classes/DMTypingMessage.js
index 5f756b4..f715fa5 100644
--- a/dist/classes/DMTypingMessage.js
+++ b/dist/classes/DMTypingMessage.js
@@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.TypingMessageAction = exports.DMTypingMessage = void 0;
+exports.DMTypingMessage = void 0;
const DMMessage_1 = require("./DMMessage");
const DM_1 = require("./DM");
/**
@@ -8,15 +8,9 @@ const DM_1 = require("./DM");
*/
class DMTypingMessage extends DMMessage_1.DMMessage {
constructor(user, action, time, client) {
- super(user, time, new DM_1.DM(user.uuid, user.number, client));
- this.client = client;
+ super(user, time, new DM_1.DM(user.uuid, user.number, client), client);
this.action = action;
}
}
exports.DMTypingMessage = DMTypingMessage;
-var TypingMessageAction;
-(function (TypingMessageAction) {
- TypingMessageAction["Started"] = "STARTED";
- TypingMessageAction["Stopped"] = "STOPPED";
-})(TypingMessageAction || (exports.TypingMessageAction = TypingMessageAction = {}));
//# sourceMappingURL=DMTypingMessage.js.map \ No newline at end of file
diff --git a/dist/classes/DMTypingMessage.js.map b/dist/classes/DMTypingMessage.js.map
index 408dfb5..fbad35e 100644
--- a/dist/classes/DMTypingMessage.js.map
+++ b/dist/classes/DMTypingMessage.js.map
@@ -1 +1 @@
-{"version":3,"file":"DMTypingMessage.js","sourceRoot":"","sources":["../../classes/DMTypingMessage.ts"],"names":[],"mappings":";;;AAIA,2CAAsC;AACtC,6BAAwB;AAGxB;;GAEG;AACH,MAAa,eAAgB,SAAQ,qBAAS;IAI1C,YAAY,IAAU,EAAE,MAA2B,EAAE,IAAY,EAAE,MAAc;QAC7E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AATD,0CASC;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"} \ No newline at end of file
+{"version":3,"file":"DMTypingMessage.js","sourceRoot":"","sources":["../../classes/DMTypingMessage.ts"],"names":[],"mappings":";;;AAIA,2CAAsC;AACtC,6BAAwB;AAIxB;;GAEG;AACH,MAAa,eAAgB,SAAQ,qBAAS;IAG1C,YAAY,IAAU,EAAE,MAA2B,EAAE,IAAY,EAAE,MAAc;QAC7E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,OAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAPD,0CAOC"} \ No newline at end of file
diff --git a/dist/classes/DataMessage.d.ts b/dist/classes/DataMessage.d.ts
new file mode 100644
index 0000000..7f42e21
--- /dev/null
+++ b/dist/classes/DataMessage.d.ts
@@ -0,0 +1,7 @@
+import { Attachment } from "./Attachment";
+import { QuoteMessage } from "./QuoteMessage";
+export declare class DataMessage {
+ content?: string;
+ attachments: Attachment[];
+ quote?: QuoteMessage;
+}
diff --git a/dist/classes/DataMessage.js b/dist/classes/DataMessage.js
new file mode 100644
index 0000000..7d2a789
--- /dev/null
+++ b/dist/classes/DataMessage.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.DataMessage = void 0;
+class DataMessage {
+ constructor() {
+ this.attachments = [];
+ }
+}
+exports.DataMessage = DataMessage;
+//# sourceMappingURL=DataMessage.js.map \ No newline at end of file
diff --git a/dist/classes/DataMessage.js.map b/dist/classes/DataMessage.js.map
new file mode 100644
index 0000000..7275389
--- /dev/null
+++ b/dist/classes/DataMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"DataMessage.js","sourceRoot":"","sources":["../../classes/DataMessage.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IAAxB;QAEW,gBAAW,GAAiB,EAAE,CAAC;IAE1C,CAAC;CAAA;AAJD,kCAIC"} \ No newline at end of file
diff --git a/dist/classes/Group.js.map b/dist/classes/Group.js.map
index 3a0aef4..08ad340 100644
--- a/dist/classes/Group.js.map
+++ b/dist/classes/Group.js.map
@@ -1 +1 @@
-{"version":3,"file":"Group.js","sourceRoot":"","sources":["../../classes/Group.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,mDAA8C;AAE9C,MAAa,KAAM,SAAQ,WAAI;IAK3B,YAAY,OAAe,EAAE,MAAc;QACvC,KAAK,EAAE,CAAC;QALL,UAAK,GAAY,IAAI,CAAC;QAMzB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAA4B;QACjD,IAAI,SAAS,GAAG,MAAM,6BAAa,CAAC,QAAQ,CACxC,YAAY,EACZ;YACI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAC;QAEF,MAAM,6BAAa,CAAC,QAAQ,CACxB,MAAM,EACN;YACI,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1F,OAAO,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAC;IACN,CAAC;CACJ;AAhCD,sBAgCC"} \ No newline at end of file
+{"version":3,"file":"Group.js","sourceRoot":"","sources":["../../classes/Group.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,mDAA8C;AAE9C,MAAa,KAAM,SAAQ,WAAI;IAK3B,YAAY,OAAe,EAAE,MAAc;QACvC,KAAK,EAAE,CAAC;QALL,UAAK,GAAY,IAAI,CAAC;QAMzB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAA4B;QACxD,IAAI,SAAS,GAAG,MAAM,6BAAa,CAAC,QAAQ,CACxC,YAAY,EACZ;YACI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAC;QAEF,MAAM,6BAAa,CAAC,QAAQ,CACxB,MAAM,EACN;YACI,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1F,OAAO,EAAE,IAAI;SAChB,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAC;IACN,CAAC;CACJ;AAhCD,sBAgCC"} \ No newline at end of file
diff --git a/dist/classes/GroupDataMessage.d.ts b/dist/classes/GroupDataMessage.d.ts
new file mode 100644
index 0000000..fe00141
--- /dev/null
+++ b/dist/classes/GroupDataMessage.d.ts
@@ -0,0 +1,16 @@
+import { User } from "./User";
+import { GroupMessage } from "./GroupMessage";
+import { DataMessage } from "./DataMessage";
+import { Attachment } from "./Attachment";
+import { QuoteMessage } from "./QuoteMessage";
+/**
+ * A data message as sent by Signal
+ */
+export declare class GroupDataMessage extends GroupMessage implements DataMessage {
+ content?: string;
+ attachments: Attachment[];
+ quote?: QuoteMessage;
+ constructor(user: User, data: any, time: number, groupId: string, client: any);
+ markAsRead(): Promise<void>;
+ markAsViewed(): Promise<void>;
+}
diff --git a/dist/classes/GroupDataMessage.js b/dist/classes/GroupDataMessage.js
new file mode 100644
index 0000000..9eac787
--- /dev/null
+++ b/dist/classes/GroupDataMessage.js
@@ -0,0 +1,39 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.GroupDataMessage = void 0;
+const GroupMessage_1 = require("./GroupMessage");
+const Group_1 = require("./Group");
+const Attachment_1 = require("./Attachment");
+const QuoteMessage_1 = require("./QuoteMessage");
+const CLIDispatcher_1 = require("./CLIDispatcher");
+const MessageReceipt_1 = require("../enums/MessageReceipt");
+/**
+ * A data message as sent by Signal
+ */
+class GroupDataMessage extends GroupMessage_1.GroupMessage {
+ constructor(user, data, time, groupId, client) {
+ super(user, time, new Group_1.Group(groupId, client), client, data.expiresInSeconds);
+ this.attachments = [];
+ this.client = client;
+ this.content = data.message && data.message.trim().length > 0 ? data.message : null;
+ if (data.quote)
+ this.quote = new QuoteMessage_1.QuoteMessage(data.quote);
+ this.attachments = data.attachments?.map(i => new Attachment_1.Attachment(i));
+ }
+ async markAsRead() {
+ await CLIDispatcher_1.CLIDispatcher.dispatch("sendReceipt", {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt_1.MessageReceipt.Read
+ }, this.client._process);
+ }
+ async markAsViewed() {
+ await CLIDispatcher_1.CLIDispatcher.dispatch("sendReceipt", {
+ recipient: this.author.number,
+ targetTimestamp: this.createdTimestamp,
+ type: MessageReceipt_1.MessageReceipt.Viewed
+ }, this.client._process);
+ }
+}
+exports.GroupDataMessage = GroupDataMessage;
+//# sourceMappingURL=GroupDataMessage.js.map \ No newline at end of file
diff --git a/dist/classes/GroupDataMessage.js.map b/dist/classes/GroupDataMessage.js.map
new file mode 100644
index 0000000..97ee669
--- /dev/null
+++ b/dist/classes/GroupDataMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"GroupDataMessage.js","sourceRoot":"","sources":["../../classes/GroupDataMessage.ts"],"names":[],"mappings":";;;AAEA,iDAA4C;AAC5C,mCAA8B;AAG9B,6CAAwC;AACxC,iDAA4C;AAC5C,mDAA8C;AAC9C,4DAAuD;AAEvD;;GAEG;AACH,MAAa,gBAAiB,SAAQ,2BAAY;IAK9C,YAAY,IAAU,EAAE,IAAS,EAAE,IAAY,EAAE,OAAe,EAAE,MAAM;QACpE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,aAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAJ1E,gBAAW,GAAiB,EAAE,CAAC;QAKlC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,uBAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,MAAM,6BAAa,CAAC,QAAQ,CACxB,aAAa,EACb;YACI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC7B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,IAAI,EAAE,+BAAc,CAAC,IAAI;SAC5B,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,MAAM,6BAAa,CAAC,QAAQ,CACxB,aAAa,EACb;YACI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC7B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,IAAI,EAAE,+BAAc,CAAC,MAAM;SAC9B,EACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CACvB,CAAA;IACL,CAAC;CACJ;AApCD,4CAoCC"} \ No newline at end of file
diff --git a/dist/classes/GroupMessage.d.ts b/dist/classes/GroupMessage.d.ts
index 44197fd..f27a937 100644
--- a/dist/classes/GroupMessage.d.ts
+++ b/dist/classes/GroupMessage.d.ts
@@ -1,7 +1,8 @@
-import { Message } from "./Message";
+import { ReceivedMessage } from "./ReceivedMessage";
import { User } from "./User";
import { Group } from "./Group";
-export declare class GroupMessage extends Message {
+import { Client } from "./Client";
+export declare class GroupMessage extends ReceivedMessage {
channel: Group;
- constructor(user: User, time: number, group: Group);
+ constructor(user: User, time: number, group: Group, client: Client, expirity?: number);
}
diff --git a/dist/classes/GroupMessage.js b/dist/classes/GroupMessage.js
index 7e178d5..c790b12 100644
--- a/dist/classes/GroupMessage.js
+++ b/dist/classes/GroupMessage.js
@@ -1,10 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupMessage = void 0;
-const Message_1 = require("./Message");
-class GroupMessage extends Message_1.Message {
- constructor(user, time, group) {
- super(user, time, group);
+const ReceivedMessage_1 = require("./ReceivedMessage");
+class GroupMessage extends ReceivedMessage_1.ReceivedMessage {
+ constructor(user, time, group, client, expirity) {
+ super(user, time, group, client, expirity);
}
}
exports.GroupMessage = GroupMessage;
diff --git a/dist/classes/GroupMessage.js.map b/dist/classes/GroupMessage.js.map
index 4399844..ccc35e6 100644
--- a/dist/classes/GroupMessage.js.map
+++ b/dist/classes/GroupMessage.js.map
@@ -1 +1 @@
-{"version":3,"file":"GroupMessage.js","sourceRoot":"","sources":["../../classes/GroupMessage.ts"],"names":[],"mappings":";;;AAAA,uCAAkC;AAIlC,MAAa,YAAa,SAAQ,iBAAO;IAGrC,YAAY,IAAU,EAAE,IAAY,EAAE,KAAY;QAC9C,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;CACJ;AAND,oCAMC"} \ No newline at end of file
+{"version":3,"file":"GroupMessage.js","sourceRoot":"","sources":["../../classes/GroupMessage.ts"],"names":[],"mappings":";;;AAAA,uDAAkD;AAKlD,MAAa,YAAa,SAAQ,iCAAe;IAG7C,YAAY,IAAU,EAAE,IAAY,EAAE,KAAY,EAAE,MAAc,EAAE,QAAiB;QACjF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;CACJ;AAND,oCAMC"} \ No newline at end of file
diff --git a/dist/classes/GroupReactionMessage.d.ts b/dist/classes/GroupReactionMessage.d.ts
new file mode 100644
index 0000000..981d275
--- /dev/null
+++ b/dist/classes/GroupReactionMessage.d.ts
@@ -0,0 +1,15 @@
+import { User } from "./User";
+import { GroupMessage } from "./GroupMessage";
+import { Client } from "./Client";
+import { ReactionEmoji } from "./ReactionEmoji";
+import { ReactionTarget } from "./ReactionTarget";
+import { ReactionMessage } from "./ReactionMessage";
+/**
+ * A reaction message as sent by Signal
+ */
+export declare class GroupReactionMessage extends GroupMessage implements ReactionMessage {
+ emoji: ReactionEmoji;
+ removed: boolean;
+ target: ReactionTarget;
+ constructor(user: User, data: any, time: number, groupId: string, client: Client);
+}
diff --git a/dist/classes/GroupReactionMessage.js b/dist/classes/GroupReactionMessage.js
new file mode 100644
index 0000000..d6c63ad
--- /dev/null
+++ b/dist/classes/GroupReactionMessage.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.GroupReactionMessage = void 0;
+const GroupMessage_1 = require("./GroupMessage");
+const Group_1 = require("./Group");
+const ReactionEmoji_1 = require("./ReactionEmoji");
+const ReactionTarget_1 = require("./ReactionTarget");
+/**
+ * A reaction message as sent by Signal
+ */
+class GroupReactionMessage extends GroupMessage_1.GroupMessage {
+ constructor(user, data, time, groupId, client) {
+ super(user, time, new Group_1.Group(groupId, client), client, data.expiresInSeconds);
+ this.removed = data.reaction.isRemove;
+ this.emoji = new ReactionEmoji_1.ReactionEmoji(data.reaction.emoji);
+ this.target = new ReactionTarget_1.ReactionTarget(data, this.channel, client);
+ }
+}
+exports.GroupReactionMessage = GroupReactionMessage;
+//# sourceMappingURL=GroupReactionMessage.js.map \ No newline at end of file
diff --git a/dist/classes/GroupReactionMessage.js.map b/dist/classes/GroupReactionMessage.js.map
new file mode 100644
index 0000000..e5dc96b
--- /dev/null
+++ b/dist/classes/GroupReactionMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"GroupReactionMessage.js","sourceRoot":"","sources":["../../classes/GroupReactionMessage.ts"],"names":[],"mappings":";;;AAEA,iDAA4C;AAC5C,mCAA8B;AAE9B,mDAA8C;AAC9C,qDAAgD;AAGhD;;GAEG;AACH,MAAa,oBAAqB,SAAQ,2BAAY;IAKlD,YAAY,IAAU,EAAE,IAAS,EAAE,IAAY,EAAE,OAAe,EAAE,MAAc;QAC5E,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,aAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,+BAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;CACJ;AAXD,oDAWC"} \ No newline at end of file
diff --git a/dist/classes/GroupTypingMessage.d.ts b/dist/classes/GroupTypingMessage.d.ts
index 533eb5c..4c4af69 100644
--- a/dist/classes/GroupTypingMessage.d.ts
+++ b/dist/classes/GroupTypingMessage.d.ts
@@ -1,14 +1,11 @@
import { User } from "./User";
import { GroupMessage } from "./GroupMessage";
+import { Client } from "./Client";
+import { TypingMessageAction } from "../enums/TypingMessageAction";
/**
* A typing message as sent by Signal
*/
export declare class GroupTypingMessage extends GroupMessage {
action: TypingMessageAction;
- private client;
- constructor(user: User, action: TypingMessageAction, time: number, groupId: string, client: any);
-}
-export declare enum TypingMessageAction {
- Started = "STARTED",
- Stopped = "STOPPED"
+ constructor(user: User, action: TypingMessageAction, time: number, groupId: string, client: Client);
}
diff --git a/dist/classes/GroupTypingMessage.js b/dist/classes/GroupTypingMessage.js
index 470d8c1..205b64e 100644
--- a/dist/classes/GroupTypingMessage.js
+++ b/dist/classes/GroupTypingMessage.js
@@ -1,6 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.TypingMessageAction = exports.GroupTypingMessage = void 0;
+exports.GroupTypingMessage = void 0;
const GroupMessage_1 = require("./GroupMessage");
const Group_1 = require("./Group");
/**
@@ -8,15 +8,9 @@ const Group_1 = require("./Group");
*/
class GroupTypingMessage extends GroupMessage_1.GroupMessage {
constructor(user, action, time, groupId, client) {
- super(user, time, new Group_1.Group(groupId, client));
+ super(user, time, new Group_1.Group(groupId, client), client);
this.action = action;
- this.client = client;
}
}
exports.GroupTypingMessage = GroupTypingMessage;
-var TypingMessageAction;
-(function (TypingMessageAction) {
- TypingMessageAction["Started"] = "STARTED";
- TypingMessageAction["Stopped"] = "STOPPED";
-})(TypingMessageAction || (exports.TypingMessageAction = TypingMessageAction = {}));
//# sourceMappingURL=GroupTypingMessage.js.map \ No newline at end of file
diff --git a/dist/classes/GroupTypingMessage.js.map b/dist/classes/GroupTypingMessage.js.map
index a59a935..0e6f94a 100644
--- a/dist/classes/GroupTypingMessage.js.map
+++ b/dist/classes/GroupTypingMessage.js.map
@@ -1 +1 @@
-{"version":3,"file":"GroupTypingMessage.js","sourceRoot":"","sources":["../../classes/GroupTypingMessage.ts"],"names":[],"mappings":";;;AAEA,iDAA4C;AAC5C,mCAA8B;AAG9B;;GAEG;AACH,MAAa,kBAAmB,SAAQ,2BAAY;IAIhD,YAAY,IAAU,EAAE,MAA2B,EAAE,IAAY,EAAE,OAAe,EAAE,MAAM;QACtF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,aAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AATD,gDASC;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"} \ No newline at end of file
+{"version":3,"file":"GroupTypingMessage.js","sourceRoot":"","sources":["../../classes/GroupTypingMessage.ts"],"names":[],"mappings":";;;AAEA,iDAA4C;AAC5C,mCAA8B;AAI9B;;GAEG;AACH,MAAa,kBAAmB,SAAQ,2BAAY;IAGhD,YAAY,IAAU,EAAE,MAA2B,EAAE,IAAY,EAAE,OAAe,EAAE,MAAc;QAC9F,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,aAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAPD,gDAOC"} \ No newline at end of file
diff --git a/dist/classes/Message.d.ts b/dist/classes/Message.d.ts
index 5fca52e..800d11e 100644
--- a/dist/classes/Message.d.ts
+++ b/dist/classes/Message.d.ts
@@ -1,10 +1,12 @@
import { User } from "./User";
import { Group } from "./Group";
import { DM } from "./DM";
+import { Client } from "./Client";
export declare class Message {
+ client: Client;
author: User;
createdAt: Date;
createdTimestamp: number;
channel: DM | Group;
- constructor(user: User, time: number, channel: DM | Group);
+ constructor(user: User, time: number, channel: DM | Group, client: Client);
}
diff --git a/dist/classes/Message.js b/dist/classes/Message.js
index 18e0f75..4cf7b8f 100644
--- a/dist/classes/Message.js
+++ b/dist/classes/Message.js
@@ -2,7 +2,8 @@
Object.defineProperty(exports, "__esModule", { value: true });
exports.Message = void 0;
class Message {
- constructor(user, time, channel) {
+ constructor(user, time, channel, client) {
+ this.client = client;
this.channel = channel;
this.author = user;
this.createdAt = new Date(time);
diff --git a/dist/classes/Message.js.map b/dist/classes/Message.js.map
index 5b6f068..4f77ceb 100644
--- a/dist/classes/Message.js.map
+++ b/dist/classes/Message.js.map
@@ -1 +1 @@
-{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../classes/Message.ts"],"names":[],"mappings":";;;AAIA,MAAa,OAAO;IAMhB,YAAY,IAAU,EAAE,IAAY,EAAE,OAAiB;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACjC,CAAC;CACJ;AAZD,0BAYC"} \ No newline at end of file
+{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../classes/Message.ts"],"names":[],"mappings":";;;AAKA,MAAa,OAAO;IAOhB,YAAY,IAAU,EAAE,IAAY,EAAE,OAAiB,EAAE,MAAc;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACjC,CAAC;CACJ;AAdD,0BAcC"} \ No newline at end of file
diff --git a/dist/classes/QuoteMessage.d.ts b/dist/classes/QuoteMessage.d.ts
new file mode 100644
index 0000000..54b0b49
--- /dev/null
+++ b/dist/classes/QuoteMessage.d.ts
@@ -0,0 +1,8 @@
+import { User } from "./User";
+import { Attachment } from "./Attachment";
+export declare class QuoteMessage {
+ author: User;
+ content?: string;
+ attachments?: Attachment[];
+ constructor(quoteData: any);
+}
diff --git a/dist/classes/QuoteMessage.js b/dist/classes/QuoteMessage.js
new file mode 100644
index 0000000..411ff30
--- /dev/null
+++ b/dist/classes/QuoteMessage.js
@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.QuoteMessage = void 0;
+const User_1 = require("./User");
+const Attachment_1 = require("./Attachment");
+const UserDataType_1 = require("../enums/UserDataType");
+class QuoteMessage {
+ constructor(quoteData) {
+ this.author = new User_1.User(quoteData, UserDataType_1.UserDataType.Quote);
+ this.content = quoteData.text && quoteData.text.trim().length > 0 ? quoteData.text : null;
+ this.attachments = quoteData?.attachments.map(i => new Attachment_1.Attachment(i));
+ }
+}
+exports.QuoteMessage = QuoteMessage;
+//# sourceMappingURL=QuoteMessage.js.map \ No newline at end of file
diff --git a/dist/classes/QuoteMessage.js.map b/dist/classes/QuoteMessage.js.map
new file mode 100644
index 0000000..a1b6a46
--- /dev/null
+++ b/dist/classes/QuoteMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"QuoteMessage.js","sourceRoot":"","sources":["../../classes/QuoteMessage.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAC5B,6CAAwC;AACxC,wDAAmD;AAEnD,MAAa,YAAY;IAKrB,YAAY,SAAc;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,WAAI,CAAC,SAAS,EAAE,2BAAY,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1F,IAAI,CAAC,WAAW,GAAG,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,uBAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;CACJ;AAVD,oCAUC"} \ No newline at end of file
diff --git a/dist/classes/ReactionEmoji.d.ts b/dist/classes/ReactionEmoji.d.ts
new file mode 100644
index 0000000..d70bf0f
--- /dev/null
+++ b/dist/classes/ReactionEmoji.d.ts
@@ -0,0 +1,3 @@
+export declare class ReactionEmoji extends String {
+ constructor(props: any);
+}
diff --git a/dist/classes/ReactionEmoji.js b/dist/classes/ReactionEmoji.js
new file mode 100644
index 0000000..3e83ecf
--- /dev/null
+++ b/dist/classes/ReactionEmoji.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ReactionEmoji = void 0;
+class ReactionEmoji extends String {
+ constructor(props) {
+ super(props);
+ }
+}
+exports.ReactionEmoji = ReactionEmoji;
+//# sourceMappingURL=ReactionEmoji.js.map \ No newline at end of file
diff --git a/dist/classes/ReactionEmoji.js.map b/dist/classes/ReactionEmoji.js.map
new file mode 100644
index 0000000..51135ca
--- /dev/null
+++ b/dist/classes/ReactionEmoji.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ReactionEmoji.js","sourceRoot":"","sources":["../../classes/ReactionEmoji.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAc,SAAQ,MAAM;IACrC,YAAY,KAAK;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;CACJ;AAJD,sCAIC"} \ No newline at end of file
diff --git a/dist/classes/ReactionMessage.d.ts b/dist/classes/ReactionMessage.d.ts
new file mode 100644
index 0000000..ef06f2a
--- /dev/null
+++ b/dist/classes/ReactionMessage.d.ts
@@ -0,0 +1,7 @@
+import { ReactionEmoji } from "./ReactionEmoji";
+import { ReactionTarget } from "./ReactionTarget";
+export declare class ReactionMessage {
+ emoji: ReactionEmoji;
+ removed: boolean;
+ target: ReactionTarget;
+}
diff --git a/dist/classes/ReactionMessage.js b/dist/classes/ReactionMessage.js
new file mode 100644
index 0000000..8204b85
--- /dev/null
+++ b/dist/classes/ReactionMessage.js
@@ -0,0 +1,7 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ReactionMessage = void 0;
+class ReactionMessage {
+}
+exports.ReactionMessage = ReactionMessage;
+//# sourceMappingURL=ReactionMessage.js.map \ No newline at end of file
diff --git a/dist/classes/ReactionMessage.js.map b/dist/classes/ReactionMessage.js.map
new file mode 100644
index 0000000..064c506
--- /dev/null
+++ b/dist/classes/ReactionMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ReactionMessage.js","sourceRoot":"","sources":["../../classes/ReactionMessage.ts"],"names":[],"mappings":";;;AAKA,MAAa,eAAe;CAI3B;AAJD,0CAIC"} \ No newline at end of file
diff --git a/dist/classes/ReactionTarget.d.ts b/dist/classes/ReactionTarget.d.ts
new file mode 100644
index 0000000..e6ca383
--- /dev/null
+++ b/dist/classes/ReactionTarget.d.ts
@@ -0,0 +1,7 @@
+import { ReceivedMessage } from "./ReceivedMessage";
+import { DM } from "./DM";
+import { Group } from "./Group";
+import { Client } from "./Client";
+export declare class ReactionTarget extends ReceivedMessage {
+ constructor(data: any, channel: DM | Group, client: Client);
+}
diff --git a/dist/classes/ReactionTarget.js b/dist/classes/ReactionTarget.js
new file mode 100644
index 0000000..c7ae0fb
--- /dev/null
+++ b/dist/classes/ReactionTarget.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ReactionTarget = void 0;
+const User_1 = require("./User");
+const UserDataType_1 = require("../enums/UserDataType");
+const ReceivedMessage_1 = require("./ReceivedMessage");
+class ReactionTarget extends ReceivedMessage_1.ReceivedMessage {
+ constructor(data, channel, client) {
+ super(new User_1.User(data.reaction, UserDataType_1.UserDataType.Reaction), data.reaction.targetSentTimestamp, channel, client, null);
+ }
+}
+exports.ReactionTarget = ReactionTarget;
+//# sourceMappingURL=ReactionTarget.js.map \ No newline at end of file
diff --git a/dist/classes/ReactionTarget.js.map b/dist/classes/ReactionTarget.js.map
new file mode 100644
index 0000000..76e0dc6
--- /dev/null
+++ b/dist/classes/ReactionTarget.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ReactionTarget.js","sourceRoot":"","sources":["../../classes/ReactionTarget.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAC5B,wDAAmD;AACnD,uDAAkD;AAKlD,MAAa,cAAe,SAAQ,iCAAe;IAC/C,YAAY,IAAS,EAAE,OAAiB,EAAE,MAAc;QACpD,KAAK,CAAC,IAAI,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,2BAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACpH,CAAC;CACJ;AAJD,wCAIC"} \ No newline at end of file
diff --git a/dist/classes/ReceivedMessage.d.ts b/dist/classes/ReceivedMessage.d.ts
new file mode 100644
index 0000000..fa2bca5
--- /dev/null
+++ b/dist/classes/ReceivedMessage.d.ts
@@ -0,0 +1,16 @@
+import { User } from "./User";
+import { Group } from "./Group";
+import { DM } from "./DM";
+import { Client } from "./Client";
+export declare class ReceivedMessage {
+ client: Client;
+ author: User;
+ createdAt: Date;
+ createdTimestamp: number;
+ channel: DM | Group;
+ ephemeral: boolean | null;
+ expiresAt?: Date;
+ expiresTimestamp?: number;
+ expiresInSeconds?: number;
+ constructor(user: User, time: number, channel: DM | Group, client: Client, expirity?: number | null);
+}
diff --git a/dist/classes/ReceivedMessage.js b/dist/classes/ReceivedMessage.js
new file mode 100644
index 0000000..6c19ac6
--- /dev/null
+++ b/dist/classes/ReceivedMessage.js
@@ -0,0 +1,24 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ReceivedMessage = void 0;
+class ReceivedMessage {
+ constructor(user, time, channel, client, expirity) {
+ this.ephemeral = false;
+ this.client = client;
+ this.channel = channel;
+ this.author = user;
+ this.createdAt = new Date(time);
+ this.createdTimestamp = time;
+ if (expirity && expirity > 0) {
+ this.ephemeral = true;
+ this.expiresInSeconds = expirity;
+ this.expiresTimestamp = new Date().getTime() + (expirity * 1000);
+ this.expiresAt = new Date(new Date().getTime() + (expirity * 1000));
+ }
+ else if (expirity === null) {
+ this.ephemeral = null;
+ }
+ }
+}
+exports.ReceivedMessage = ReceivedMessage;
+//# sourceMappingURL=ReceivedMessage.js.map \ No newline at end of file
diff --git a/dist/classes/ReceivedMessage.js.map b/dist/classes/ReceivedMessage.js.map
new file mode 100644
index 0000000..148953d
--- /dev/null
+++ b/dist/classes/ReceivedMessage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"ReceivedMessage.js","sourceRoot":"","sources":["../../classes/ReceivedMessage.ts"],"names":[],"mappings":";;;AAKA,MAAa,eAAe;IAWxB,YAAY,IAAU,EAAE,IAAY,EAAE,OAAiB,EAAE,MAAc,EAAE,QAAsB;QALxF,cAAS,GAAiB,KAAK,CAAC;QAMnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;YACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;SACvE;aAAM,IAAI,QAAQ,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;IACL,CAAC;CACJ;AA3BD,0CA2BC"} \ No newline at end of file
diff --git a/dist/classes/Size.d.ts b/dist/classes/Size.d.ts
new file mode 100644
index 0000000..0d3460a
--- /dev/null
+++ b/dist/classes/Size.d.ts
@@ -0,0 +1,3 @@
+export declare class Size extends Number {
+ constructor(props: any);
+}
diff --git a/dist/classes/Size.js b/dist/classes/Size.js
new file mode 100644
index 0000000..69d713e
--- /dev/null
+++ b/dist/classes/Size.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.Size = void 0;
+class Size extends Number {
+ constructor(props) {
+ super(props);
+ }
+}
+exports.Size = Size;
+//# sourceMappingURL=Size.js.map \ No newline at end of file
diff --git a/dist/classes/Size.js.map b/dist/classes/Size.js.map
new file mode 100644
index 0000000..3c2fe73
--- /dev/null
+++ b/dist/classes/Size.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"Size.js","sourceRoot":"","sources":["../../classes/Size.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAK,SAAQ,MAAM;IAC5B,YAAY,KAAK;QACb,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;CACJ;AAJD,oBAIC"} \ No newline at end of file
diff --git a/dist/classes/User.d.ts b/dist/classes/User.d.ts
index 6833d1c..f8a9752 100644
--- a/dist/classes/User.d.ts
+++ b/dist/classes/User.d.ts
@@ -1,7 +1,8 @@
+import { UserDataType } from "../enums/UserDataType";
export declare class User {
number: string | null;
nickName: string | null;
uuid: string | null;
device: number | null;
- constructor(envolope: any);
+ constructor(data: any, dataType: UserDataType);
}
diff --git a/dist/classes/User.js b/dist/classes/User.js
index bb9f504..ff8a3eb 100644
--- a/dist/classes/User.js
+++ b/dist/classes/User.js
@@ -1,20 +1,35 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.User = void 0;
+const UserDataType_1 = require("../enums/UserDataType");
class User {
- constructor(envolope) {
+ constructor(data, dataType) {
this.number = null;
this.nickName = null;
this.uuid = null;
this.device = null;
- if (envolope.sourceNumber && typeof envolope.sourceNumber === "string")
- this.number = envolope.sourceNumber;
- if (envolope.sourceName && typeof envolope.sourceName === "string")
- this.nickName = envolope.sourceName;
- if (envolope.sourceUuid && typeof envolope.sourceUuid === "string")
- this.uuid = envolope.sourceUuid;
- if (envolope.sourceDevice && typeof envolope.sourceDevice === "string")
- this.device = envolope.sourceDevice;
+ if (dataType === UserDataType_1.UserDataType.Envelope) {
+ if (data.sourceNumber && typeof data.sourceNumber === "string")
+ this.number = data.sourceNumber;
+ if (data.sourceName && typeof data.sourceName === "string")
+ this.nickName = data.sourceName;
+ if (data.sourceUuid && typeof data.sourceUuid === "string")
+ this.uuid = data.sourceUuid;
+ if (data.sourceDevice && typeof data.sourceDevice === "string")
+ this.device = data.sourceDevice;
+ }
+ else if (dataType === UserDataType_1.UserDataType.Quote) {
+ if (data.authorNumber && typeof data.authorNumber === "string")
+ this.number = data.authorNumber;
+ if (data.authorUuid && typeof data.authorUuid === "string")
+ this.uuid = data.authorUuid;
+ }
+ else if (dataType === UserDataType_1.UserDataType.Reaction) {
+ if (data.targetAuthorNumber && typeof data.targetAuthorNumber === "string")
+ this.number = data.targetAuthorNumber;
+ if (data.targetAuthorUuid && typeof data.targetAuthorUuid === "string")
+ this.uuid = data.targetAuthorUuid;
+ }
}
}
exports.User = User;
diff --git a/dist/classes/User.js.map b/dist/classes/User.js.map
index e32b414..9ddd1bb 100644
--- a/dist/classes/User.js.map
+++ b/dist/classes/User.js.map
@@ -1 +1 @@
-{"version":3,"file":"User.js","sourceRoot":"","sources":["../../classes/User.ts"],"names":[],"mappings":";;;AAAA,MAAa,IAAI;IAMb,YAAY,QAAa;QALlB,WAAM,GAAgB,IAAI,CAAC;QAC3B,aAAQ,GAAgB,IAAI,CAAC;QAC7B,SAAI,GAAgB,IAAI,CAAC;QACzB,WAAM,GAAgB,IAAI,CAAC;QAG9B,IAAI,QAAQ,CAAC,YAAY,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC5G,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;QACxG,IAAI,QAAQ,CAAC,UAAU,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;YAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC;QACpG,IAAI,QAAQ,CAAC,YAAY,IAAI,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;IAChH,CAAC;CACJ;AAZD,oBAYC"} \ No newline at end of file
+{"version":3,"file":"User.js","sourceRoot":"","sources":["../../classes/User.ts"],"names":[],"mappings":";;;AAAA,wDAAmD;AAEnD,MAAa,IAAI;IAMb,YAAY,IAAS,EAAE,QAAsB;QALtC,WAAM,GAAgB,IAAI,CAAC;QAC3B,aAAQ,GAAgB,IAAI,CAAC;QAC7B,SAAI,GAAgB,IAAI,CAAC;QACzB,WAAM,GAAgB,IAAI,CAAC;QAG9B,IAAI,QAAQ,KAAK,2BAAY,CAAC,QAAQ,EAAE;YACpC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChG,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;YAC5F,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACxF,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;SACnG;aAAM,IAAI,QAAQ,KAAK,2BAAY,CAAC,KAAK,EAAE;YACxC,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAChG,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;SAC3F;aAAM,IAAI,QAAQ,KAAK,2BAAY,CAAC,QAAQ,EAAE;YAC3C,IAAI,IAAI,CAAC,kBAAkB,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAClH,IAAI,IAAI,CAAC,gBAAgB,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC7G;IACL,CAAC;CACJ;AApBD,oBAoBC"} \ No newline at end of file
diff --git a/dist/enums/MessageReceipt.d.ts b/dist/enums/MessageReceipt.d.ts
new file mode 100644
index 0000000..b1b55f2
--- /dev/null
+++ b/dist/enums/MessageReceipt.d.ts
@@ -0,0 +1,4 @@
+export declare enum MessageReceipt {
+ Read = "read",
+ Viewed = "viewed"
+}
diff --git a/dist/enums/MessageReceipt.js b/dist/enums/MessageReceipt.js
new file mode 100644
index 0000000..acf503d
--- /dev/null
+++ b/dist/enums/MessageReceipt.js
@@ -0,0 +1,9 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.MessageReceipt = void 0;
+var MessageReceipt;
+(function (MessageReceipt) {
+ MessageReceipt["Read"] = "read";
+ MessageReceipt["Viewed"] = "viewed";
+})(MessageReceipt || (exports.MessageReceipt = MessageReceipt = {}));
+//# sourceMappingURL=MessageReceipt.js.map \ No newline at end of file
diff --git a/dist/enums/MessageReceipt.js.map b/dist/enums/MessageReceipt.js.map
new file mode 100644
index 0000000..d79a54e
--- /dev/null
+++ b/dist/enums/MessageReceipt.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"MessageReceipt.js","sourceRoot":"","sources":["../../enums/MessageReceipt.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,mCAAiB,CAAA;AACrB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB"} \ No newline at end of file
diff --git a/dist/enums/TypingMessageAction.d.ts b/dist/enums/TypingMessageAction.d.ts
new file mode 100644
index 0000000..4d7d860
--- /dev/null
+++ b/dist/enums/TypingMessageAction.d.ts
@@ -0,0 +1,4 @@
+export declare enum TypingMessageAction {
+ Started = "STARTED",
+ Stopped = "STOPPED"
+}
diff --git a/dist/enums/TypingMessageAction.js b/dist/enums/TypingMessageAction.js
new file mode 100644
index 0000000..912ca7f
--- /dev/null
+++ b/dist/enums/TypingMessageAction.js
@@ -0,0 +1,9 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.TypingMessageAction = void 0;
+var TypingMessageAction;
+(function (TypingMessageAction) {
+ TypingMessageAction["Started"] = "STARTED";
+ TypingMessageAction["Stopped"] = "STOPPED";
+})(TypingMessageAction || (exports.TypingMessageAction = TypingMessageAction = {}));
+//# sourceMappingURL=TypingMessageAction.js.map \ No newline at end of file
diff --git a/dist/enums/TypingMessageAction.js.map b/dist/enums/TypingMessageAction.js.map
new file mode 100644
index 0000000..e2095c4
--- /dev/null
+++ b/dist/enums/TypingMessageAction.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"TypingMessageAction.js","sourceRoot":"","sources":["../../enums/TypingMessageAction.ts"],"names":[],"mappings":";;;AAAA,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC3B,0CAAmB,CAAA;IACnB,0CAAmB,CAAA;AACvB,CAAC,EAHW,mBAAmB,mCAAnB,mBAAmB,QAG9B"} \ No newline at end of file
diff --git a/dist/enums/UserDataType.d.ts b/dist/enums/UserDataType.d.ts
new file mode 100644
index 0000000..790cca9
--- /dev/null
+++ b/dist/enums/UserDataType.d.ts
@@ -0,0 +1,5 @@
+export declare enum UserDataType {
+ Envelope = "envelope",
+ Quote = "quote",
+ Reaction = "reaction"
+}
diff --git a/dist/enums/UserDataType.js b/dist/enums/UserDataType.js
new file mode 100644
index 0000000..93df91e
--- /dev/null
+++ b/dist/enums/UserDataType.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.UserDataType = void 0;
+var UserDataType;
+(function (UserDataType) {
+ UserDataType["Envelope"] = "envelope";
+ UserDataType["Quote"] = "quote";
+ UserDataType["Reaction"] = "reaction";
+})(UserDataType || (exports.UserDataType = UserDataType = {}));
+//# sourceMappingURL=UserDataType.js.map \ No newline at end of file
diff --git a/dist/enums/UserDataType.js.map b/dist/enums/UserDataType.js.map
new file mode 100644
index 0000000..34b14dd
--- /dev/null
+++ b/dist/enums/UserDataType.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"UserDataType.js","sourceRoot":"","sources":["../../enums/UserDataType.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAIX;AAJD,WAAY,YAAY;IACpB,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,qCAAqB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"} \ No newline at end of file
diff --git a/dist/types/IConfig.d.ts b/dist/types/IConfig.d.ts
index f479f25..e7fd91a 100644
--- a/dist/types/IConfig.d.ts
+++ b/dist/types/IConfig.d.ts
@@ -11,6 +11,10 @@ export interface IConfig {
*/
account: string;
/**
+ * Whether events should be shown to `console.log`, used mainly for debugging
+ */
+ logEvents?: boolean;
+ /**
* An absolute or relative (to `process.cwd`) path to a signal-cli
* executable.
*
diff --git a/dist/types/IConfig.js.map b/dist/types/IConfig.js.map
index 2a71274..e070e6c 100644
--- a/dist/types/IConfig.js.map
+++ b/dist/types/IConfig.js.map
@@ -1 +1 @@
-{"version":3,"file":"IConfig.js","sourceRoot":"","sources":["../../types/IConfig.ts"],"names":[],"mappings":";;;AA2EA,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;AACvB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,4BAAc,CAAA;IACd,yCAA2B,CAAA;IAC3B,4BAAc,CAAA;AAClB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,yCAAI,CAAA;IACJ,yCAAI,CAAA;IACJ,+CAAO,CAAA;IACP,+CAAO,CAAA;AACX,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB"} \ No newline at end of file
+{"version":3,"file":"IConfig.js","sourceRoot":"","sources":["../../types/IConfig.ts"],"names":[],"mappings":";;;AAgFA,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,kCAAmB,CAAA;AACvB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,4BAAc,CAAA;IACd,yCAA2B,CAAA;IAC3B,4BAAc,CAAA;AAClB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,yCAAI,CAAA;IACJ,yCAAI,CAAA;IACJ,+CAAO,CAAA;IACP,+CAAO,CAAA;AACX,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB"} \ No newline at end of file
diff --git a/dist/types/IMimeType.d.ts b/dist/types/IMimeType.d.ts
new file mode 100644
index 0000000..132affd
--- /dev/null
+++ b/dist/types/IMimeType.d.ts
@@ -0,0 +1 @@
+export type IMimeType = `${"application" | "audio" | "image" | "message" | "multipart" | "text" | "video" | "font" | "example" | "model" | "chemical"}/${string}`;
diff --git a/dist/types/IMimeType.js b/dist/types/IMimeType.js
new file mode 100644
index 0000000..431b4c6
--- /dev/null
+++ b/dist/types/IMimeType.js
@@ -0,0 +1,3 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+//# sourceMappingURL=IMimeType.js.map \ No newline at end of file
diff --git a/dist/types/IMimeType.js.map b/dist/types/IMimeType.js.map
new file mode 100644
index 0000000..476d326
--- /dev/null
+++ b/dist/types/IMimeType.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"IMimeType.js","sourceRoot":"","sources":["../../types/IMimeType.ts"],"names":[],"mappings":""} \ No newline at end of file
diff --git a/enums/MessageReceipt.ts b/enums/MessageReceipt.ts
new file mode 100644
index 0000000..8e4b96c
--- /dev/null
+++ b/enums/MessageReceipt.ts
@@ -0,0 +1,4 @@
+export enum MessageReceipt {
+ Read = "read",
+ Viewed = "viewed"
+} \ No newline at end of file
diff --git a/enums/TypingMessageAction.ts b/enums/TypingMessageAction.ts
new file mode 100644
index 0000000..76c4f95
--- /dev/null
+++ b/enums/TypingMessageAction.ts
@@ -0,0 +1,4 @@
+export enum TypingMessageAction {
+ Started = "STARTED",
+ Stopped = "STOPPED"
+} \ No newline at end of file
diff --git a/enums/UserDataType.ts b/enums/UserDataType.ts
new file mode 100644
index 0000000..c6179d9
--- /dev/null
+++ b/enums/UserDataType.ts
@@ -0,0 +1,5 @@
+export enum UserDataType {
+ Envelope = "envelope",
+ Quote = "quote",
+ Reaction = "reaction"
+} \ No newline at end of file
diff --git a/package.json b/package.json
index 4587789..5eb8d0f 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "signal.js",
"version": "0.1.0",
- "description": "An easy to use Node.js library for Signal",
+ "description": "An easy-to-use Node.js library for Signal",
"main": "dist/index.js",
"repository": {
"type": "git",
diff --git a/types/IConfig.ts b/types/IConfig.ts
index c622e72..2de6dd9 100644
--- a/types/IConfig.ts
+++ b/types/IConfig.ts
@@ -13,6 +13,11 @@ export interface IConfig {
account: string,
/**
+ * Whether events should be shown to `console.log`, used mainly for debugging
+ */
+ logEvents?: boolean,
+
+ /**
* An absolute or relative (to `process.cwd`) path to a signal-cli
* executable.
*
diff --git a/types/IMimeType.ts b/types/IMimeType.ts
new file mode 100644
index 0000000..607443f
--- /dev/null
+++ b/types/IMimeType.ts
@@ -0,0 +1 @@
+export type IMimeType = `${"application"|"audio"|"image"|"message"|"multipart"|"text"|"video"|"font"|"example"|"model"|"chemical"}/${string}`; \ No newline at end of file