diff options
author | RaindropsSys <contact@minteck.org> | 2023-07-15 19:17:57 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-07-15 19:17:57 +0200 |
commit | 70fc2f42251e2259c56728d033164682f85135bc (patch) | |
tree | 7c48ac0739a0a5f6dfd821f8b427370523c56984 | |
parent | d9156eb4cfe53991a2e866e6281342417dd1c772 (diff) | |
download | signal.js-70fc2f42251e2259c56728d033164682f85135bc.tar.gz signal.js-70fc2f42251e2259c56728d033164682f85135bc.tar.bz2 signal.js-70fc2f42251e2259c56728d033164682f85135bc.zip |
Updated 24 files and added 16 files (automated)
40 files changed, 772 insertions, 56 deletions
@@ -43,11 +43,11 @@ * [ ] 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 + * [x] <s>Adding/removing linked devices</s> +* [x] <s>Listings</s> + * [x] <s>Known contacts</s> + * [x] <s>Linked devices</s> + * [x] <s>Groups</s> + * [x] <s>Known identities</s> + * [x] <s>Check if a phone number is on Signal</s> + * [x] <s>Sticker packs</s>
\ No newline at end of file diff --git a/classes/CLIDispatcher.ts b/classes/CLIDispatcher.ts index 50ba9e1..8e214ea 100644 --- a/classes/CLIDispatcher.ts +++ b/classes/CLIDispatcher.ts @@ -26,17 +26,42 @@ export class CLIDispatcher { id } - let callback: (raw) => void = (raw): void => { - if (raw.toString().trim() === "") return; - let data = JSON.parse(raw.toString()); + let lastData; - if (data.error) { - rej(new SignalAPIError(data.error.message ?? null, data.error.code ?? null)); - } + let callback: (raw) => void = (chunk): void => { + if (chunk.toString().trim() === "") return; + + for (let line of chunk.toString().trim().replaceAll("\r\n").split("\n")) { + try { + JSON.parse(line); + lastData = null; + } catch (e) { + if (lastData) { + line = lastData + line; + + try { + JSON.parse(line); + lastData = null; + } catch (e) { + lastData = line; + } + } else { + lastData = line; + } + } + + if (!lastData) { + let data = JSON.parse(line); + + if (data.error) { + rej(new SignalAPIError(data.error.message ?? null, data.error.code ?? null)); + } - if (data.id === id) { - res(data); - proc.stdout.removeListener("data", callback); + if (data.id === id) { + res(data); + proc.stdout.removeListener("data", callback); + } + } } } diff --git a/classes/Client.ts b/classes/Client.ts index 3fc9cf4..6d6720b 100644 --- a/classes/Client.ts +++ b/classes/Client.ts @@ -19,6 +19,11 @@ import {GroupDeleteMessage} from "./GroupDeleteMessage"; import {DMDeleteMessage} from "./DMDeleteMessage"; import {Group} from "./Group"; import {CLIDispatcher} from "./CLIDispatcher"; +import {Device} from "./Device"; +import {UserProfile} from "./UserProfile"; +import {Identity} from "./Identity"; +import {StickerPack} from "./StickerPack"; +import {Sticker} from "./Sticker"; export declare interface Client { /** @@ -123,6 +128,8 @@ export class Client extends EventEmitter { parameters.push("--account", config.account); parameters.push("jsonRpc"); + let lastData; + this.process = spawn(command, parameters, config.system?.spawn ?? { stdio: "pipe", windowsHide: true @@ -131,10 +138,32 @@ export class Client extends EventEmitter { this.process.stdout.on('data', (chunk) => { if (chunk.toString().trim().length === 0) return; - if (JSON.parse(chunk.toString()).params) { - let data: ICLIEvent = JSON.parse(chunk.toString()); - if (config.logEvents) console.log(data); - CLIEvent.fromEvent(this, data); + for (let line of chunk.toString().trim().replaceAll("\r\n").split("\n")) { + try { + JSON.parse(line); + lastData = null; + } catch (e) { + if (lastData) { + line = lastData + line; + + try { + JSON.parse(line); + lastData = null; + } catch (e) { + lastData = line; + } + } else { + lastData = line; + } + } + + if (!lastData) { + if (JSON.parse(line).params) { + let data: ICLIEvent = JSON.parse(line); + if (config.logEvents) console.log(data); + CLIEvent.fromEvent(this, data); + } + } } }); @@ -168,4 +197,88 @@ export class Client extends EventEmitter { return new Group(data?.result?.groupId, this); } + + /** + * Check if a number is a Signal user + * @param number - The number to check + */ + public async isNumberOnSignal(number: string): Promise<boolean> { + let data = await CLIDispatcher.dispatch("getUserStatus", { + recipient: number + }, this.process); + + return data?.result[0]?.isRegistered; + } + + /** + * Get a list of {@link Group}s the client is part of + */ + public async getGroups(): Promise<Group[]> { + return (await CLIDispatcher.dispatch( + "listGroups", + {}, + this.process + ))['result'].map(i => new Group(i.id, this)); + } + + /** + * Get a list of {@link Device}s associated with the client + */ + public async getDevices(): Promise<Device[]> { + return (await CLIDispatcher.dispatch( + "listDevices", + {}, + this.process + ))['result'].map(i => new Device(i, this)); + } + + /** + * Associate a new device with this Signal account + * @param uri - The URI corresponding to the QR code on the device + */ + public async addDevice(uri: string): Promise<Device> { + return new Device((await CLIDispatcher.dispatch( + "addDevice", + { + uri: uri + }, + this.process + ))['result'][0], this); + } + + /** + * Get a list of {@link UserProfile}s the client knows about + */ + public async getContacts(): Promise<UserProfile[]> { + return (await CLIDispatcher.dispatch( + "listContacts", + {}, + this.process + ))['result'].map(i => new UserProfile(i, this)); + } + + /** + * Get a list of {@link Identity} the client knows about + */ + public async getIdentities(): Promise<Identity[]> { + return (await CLIDispatcher.dispatch( + "listIdentities", + {}, + this.process + ))['result'].filter(i => i.number && i.number.trim() !== "").map(i => new Identity(i, this)); + } + + /** + * Get a list of {@link StickerPack}s the client has access to + */ + public async getStickerPacks(): Promise<StickerPack[]> { + let list = (await CLIDispatcher.dispatch( + "listStickerPacks", + {}, + this.process + ))['result']; + + this.stickerPacks['list'] = list; + return list.map(i => new StickerPack(i, this)); + } }
\ No newline at end of file diff --git a/classes/Device.ts b/classes/Device.ts new file mode 100644 index 0000000..cf3e30a --- /dev/null +++ b/classes/Device.ts @@ -0,0 +1,54 @@ +import {Client} from "./Client"; +import {CLIDispatcher} from "./CLIDispatcher"; + +/** + * A device associated with the client's Signal account + */ +export class Device { + /** + * Device ID + */ + public id: number; + + /** + * Name of the device, if applicable + */ + public name?: string; + + /** + * {@link Date} the device was created (first seen) at + */ + public createdAt: Date; + + /** + * {@link Date} the device was last seen at + */ + public lastSeenAt: Date; + private client: Client; + + /** + * @internal + * @param data - Data to reconstruct the device + * @param client + */ + constructor(data: any, client: Client) { + this.id = data.id; + this.name = data.name; + this.createdAt = new Date(data.createdTimestamp); + this.lastSeenAt = new Date(data.lastSeenTimestamp); + this.client = client; + } + + /** + * Remove this device from the Signal account + */ + public async remove() { + await CLIDispatcher.dispatch( + "removeDevice", + { + deviceId: this.id + }, + this.client.process + ); + } +}
\ No newline at end of file diff --git a/classes/Identity.ts b/classes/Identity.ts new file mode 100644 index 0000000..7391ad5 --- /dev/null +++ b/classes/Identity.ts @@ -0,0 +1,49 @@ +import {User} from "./User"; +import {Client} from "./Client"; +import {UserDataType} from "../enums/UserDataType"; + +export class Identity { + /** + * {@link User} this identity corresponds to + */ + public user: User; + + /** + * Fingerprint of the key used by this identity + */ + public fingerprint: string; + + /** + * Safety number for this identity + */ + public safetyNumber: string; + + /** + * Version of the safety number that can be converted to a QR code + */ + public safetyNumberScannable: string; + + /** + * Whether the identity is trusted (verified) or not + */ + public trusted: boolean; + + /** + * {@link Date} at which the identity was first seen + */ + public addedAt: Date; + + /** + * @internal + * @param data - The data used to construct the identity + * @param client + */ + constructor(data: any, client: Client) { + this.user = new User(data, UserDataType.ProfileOrIdentity, client); + this.fingerprint = data.fingerprint; + this.safetyNumber = data.safetyNumber; + this.safetyNumberScannable = data.scannableSafetyNumber; + this.trusted = data.trustLevel === "TRUSTED_VERIFIED"; + this.addedAt = new Date(data.addedTimestamp); + } +}
\ No newline at end of file diff --git a/classes/StickerPack.ts b/classes/StickerPack.ts index e250bc0..e1079e4 100644 --- a/classes/StickerPack.ts +++ b/classes/StickerPack.ts @@ -37,12 +37,23 @@ export class StickerPack { public items: Sticker[]; /** - * @param id - The sticker pack's ID + * Whether the sticker pack is installed or not + */ + public installed?: boolean; + + /** + * @param data - The sticker pack's ID or data * @param client * @internal */ - constructor(id: string, client: Client) { - let cacheData = client.stickerPacks['list'].filter(i => i.packId === id)[0]; + constructor(data: string|any, client: Client) { + let cacheData; + + if (typeof data === "string") { + cacheData = client.stickerPacks['list'].filter(i => i.packId === data)[0]; + } else { + cacheData = data; + } this.id = cacheData.packId; this.title = cacheData.title; @@ -52,5 +63,6 @@ export class StickerPack { this.items = cacheData.stickers.map(i => { return new Sticker(StickerSource.Pack, i, client, this); }); + if (typeof cacheData.installed === "boolean") this.installed = cacheData.installed; } }
\ No newline at end of file diff --git a/classes/User.ts b/classes/User.ts index a94e0d4..1898fe9 100644 --- a/classes/User.ts +++ b/classes/User.ts @@ -48,9 +48,10 @@ export class User { } 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; - } else if (dataType === UserDataType.MentionOrGroup) { + } else if (dataType === UserDataType.MentionOrGroup || dataType === UserDataType.ProfileOrIdentity) { if (data.number && typeof data.number === "string") this.number = data.number; if (data.uuid && typeof data.uuid === "string") this.uuid = data.uuid; + if (data.name && typeof data.name === "string") this.nickName = data.name; } else if (dataType === UserDataType.Number) { if (data && typeof data === "string") this.number = data; } diff --git a/classes/UserProfile.ts b/classes/UserProfile.ts new file mode 100644 index 0000000..5e84ccb --- /dev/null +++ b/classes/UserProfile.ts @@ -0,0 +1,69 @@ +import {User} from "./User"; +import {IUserProfileStatus} from "../types/IUserProfileStatus"; +import {Client} from "./Client"; +import {UserDataType} from "../enums/UserDataType"; +import {Emoji} from "./Emoji"; + +/** + * A user profile with additional data + */ +export class UserProfile { + /** + * {@link User} this profile is associated with + */ + public user: User; + + /** + * The Signal user name for this user + */ + public userName?: string; + + /** + * Whether this user is blocked or not + */ + public blocked: boolean; + + /** + * {@link Date} the profile was updated for the last time + */ + public lastUpdatedAt: Date; + + /** + * User's first name + */ + public firstName?: string; + + /** + * User's last name + */ + public lastName?: string; + + /** + * User status message + */ + public status: IUserProfileStatus; + + /** + * User MobileCoin address + */ + public mobileCoinAddress?: string; + + /** + * @internal + * @param data - The data to reconstruct the profile + * @param client + */ + constructor(data: any, client: Client) { + this.user = new User(data, UserDataType.ProfileOrIdentity, client); + this.userName = data.username; + this.blocked = data.isBlocked; + this.lastUpdatedAt = new Date(data.profile.lastUpdateTimestamp); + this.firstName = data.givenName && data.givenName.trim() !== "" ? data.givenName : null; + this.lastName = data.lastName && data.lastName.trim() !== "" ? data.lastName : null; + this.status = { + text: data.profile.about && data.profile.about.trim() !== "" ? data.profile.about : null, + emoji: data.profile.aboutEmoji && data.profile.aboutEmoji.trim() !== "" ? new Emoji(data.profile.aboutEmoji) : null + } + this.mobileCoinAddress = data.mobileCoinAddress; + } +}
\ No newline at end of file diff --git a/dist/classes/CLIDispatcher.js b/dist/classes/CLIDispatcher.js index ae8a320..ef8aa6e 100644 --- a/dist/classes/CLIDispatcher.js +++ b/dist/classes/CLIDispatcher.js @@ -24,16 +24,40 @@ class CLIDispatcher { params, id }; - let callback = (raw) => { - if (raw.toString().trim() === "") + let lastData; + let callback = (chunk) => { + if (chunk.toString().trim() === "") return; - let data = JSON.parse(raw.toString()); - if (data.error) { - rej(new SignalAPIError_1.SignalAPIError(data.error.message ?? null, data.error.code ?? null)); - } - if (data.id === id) { - res(data); - proc.stdout.removeListener("data", callback); + for (let line of chunk.toString().trim().replaceAll("\r\n").split("\n")) { + try { + JSON.parse(line); + lastData = null; + } + catch (e) { + if (lastData) { + line = lastData + line; + try { + JSON.parse(line); + lastData = null; + } + catch (e) { + lastData = line; + } + } + else { + lastData = line; + } + } + if (!lastData) { + let data = JSON.parse(line); + if (data.error) { + rej(new SignalAPIError_1.SignalAPIError(data.error.message ?? null, data.error.code ?? null)); + } + if (data.id === id) { + res(data); + proc.stdout.removeListener("data", callback); + } + } } }; proc.stdout.addListener('data', callback); diff --git a/dist/classes/CLIDispatcher.js.map b/dist/classes/CLIDispatcher.js.map index 4409a2b..533da7e 100644 --- a/dist/classes/CLIDispatcher.js.map +++ b/dist/classes/CLIDispatcher.js.map @@ -1 +1 @@ -{"version":3,"file":"CLIDispatcher.js","sourceRoot":"","sources":["../../classes/CLIDispatcher.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAGxC,qDAAgD;AAEhD;;GAEG;AACH,MAAa,aAAa;IACtB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,MAAW,EAAE,IAAkB;QAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,EAAE,GAAS,IAAA,mBAAU,GAAE,CAAC;YAC5B,IAAI,OAAO,GAAgB;gBACvB,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,MAAM;gBACN,EAAE;aACL,CAAA;YAED,IAAI,QAAQ,GAAkB,CAAC,GAAG,EAAQ,EAAE;gBACxC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO;gBACzC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAEtC,IAAI,IAAI,CAAC,KAAK,EAAE;oBACZ,GAAG,CAAC,IAAI,+BAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;iBAChF;gBAED,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;oBAChB,GAAG,CAAC,IAAI,CAAC,CAAC;oBACV,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBAChD;YACL,CAAC,CAAA;YAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AArCD,sCAqCC"}
\ No newline at end of file +{"version":3,"file":"CLIDispatcher.js","sourceRoot":"","sources":["../../classes/CLIDispatcher.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAGxC,qDAAgD;AAEhD;;GAEG;AACH,MAAa,aAAa;IACtB;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAc,EAAE,MAAW,EAAE,IAAkB;QAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,EAAE,GAAS,IAAA,mBAAU,GAAE,CAAC;YAC5B,IAAI,OAAO,GAAgB;gBACvB,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,MAAM;gBACN,EAAE;aACL,CAAA;YAED,IAAI,QAAQ,CAAC;YAEb,IAAI,QAAQ,GAAkB,CAAC,KAAK,EAAQ,EAAE;gBAC1C,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO;gBAE3C,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBACrE,IAAI;wBACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjB,QAAQ,GAAG,IAAI,CAAC;qBACnB;oBAAC,OAAO,CAAC,EAAE;wBACR,IAAI,QAAQ,EAAE;4BACV,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;4BAEvB,IAAI;gCACA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gCACjB,QAAQ,GAAG,IAAI,CAAC;6BACnB;4BAAC,OAAO,CAAC,EAAE;gCACR,QAAQ,GAAG,IAAI,CAAC;6BACnB;yBACJ;6BAAM;4BACH,QAAQ,GAAG,IAAI,CAAC;yBACnB;qBACJ;oBAED,IAAI,CAAC,QAAQ,EAAE;wBACX,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAE5B,IAAI,IAAI,CAAC,KAAK,EAAE;4BACZ,GAAG,CAAC,IAAI,+BAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;yBAChF;wBAED,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;4BAChB,GAAG,CAAC,IAAI,CAAC,CAAC;4BACV,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;yBAChD;qBACJ;iBACJ;YACL,CAAC,CAAA;YAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA9DD,sCA8DC"}
\ No newline at end of file diff --git a/dist/classes/Client.d.ts b/dist/classes/Client.d.ts index 238b697..2da4a81 100644 --- a/dist/classes/Client.d.ts +++ b/dist/classes/Client.d.ts @@ -18,6 +18,10 @@ import { GroupEditMessage } from "./GroupEditMessage"; import { GroupDeleteMessage } from "./GroupDeleteMessage"; import { DMDeleteMessage } from "./DMDeleteMessage"; import { Group } from "./Group"; +import { Device } from "./Device"; +import { UserProfile } from "./UserProfile"; +import { Identity } from "./Identity"; +import { StickerPack } from "./StickerPack"; export declare interface Client { /** * Emitted when a Signal event, even if unsupported, is received by signal-cli @@ -101,4 +105,34 @@ export declare class Client extends EventEmitter { * @param url - The URL of the invite link to use */ joinGroup(url: string): Promise<Group>; + /** + * Check if a number is a Signal user + * @param number - The number to check + */ + isNumberOnSignal(number: string): Promise<boolean>; + /** + * Get a list of {@link Group}s the client is part of + */ + getGroups(): Promise<Group[]>; + /** + * Get a list of {@link Device}s associated with the client + */ + getDevices(): Promise<Device[]>; + /** + * Associate a new device with this Signal account + * @param uri - The URI corresponding to the QR code on the device + */ + addDevice(uri: string): Promise<Device>; + /** + * Get a list of {@link UserProfile}s the client knows about + */ + getContacts(): Promise<UserProfile[]>; + /** + * Get a list of {@link Identity} the client knows about + */ + getIdentities(): Promise<Identity[]>; + /** + * Get a list of {@link StickerPack}s the client has access to + */ + getStickerPacks(): Promise<StickerPack[]>; } diff --git a/dist/classes/Client.js b/dist/classes/Client.js index f22a622..0d53006 100644 --- a/dist/classes/Client.js +++ b/dist/classes/Client.js @@ -7,6 +7,10 @@ const SignalCLIError_1 = require("./SignalCLIError"); const events_1 = require("events"); const Group_1 = require("./Group"); const CLIDispatcher_1 = require("./CLIDispatcher"); +const Device_1 = require("./Device"); +const UserProfile_1 = require("./UserProfile"); +const Identity_1 = require("./Identity"); +const StickerPack_1 = require("./StickerPack"); /** * The base Signal.js client interface */ @@ -43,6 +47,7 @@ class Client extends events_1.EventEmitter { this.verbose = true; parameters.push("--account", config.account); parameters.push("jsonRpc"); + let lastData; this.process = (0, child_process_1.spawn)(command, parameters, config.system?.spawn ?? { stdio: "pipe", windowsHide: true @@ -50,11 +55,34 @@ class Client extends events_1.EventEmitter { this.process.stdout.on('data', (chunk) => { if (chunk.toString().trim().length === 0) 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); + for (let line of chunk.toString().trim().replaceAll("\r\n").split("\n")) { + try { + JSON.parse(line); + lastData = null; + } + catch (e) { + if (lastData) { + line = lastData + line; + try { + JSON.parse(line); + lastData = null; + } + catch (e) { + lastData = line; + } + } + else { + lastData = line; + } + } + if (!lastData) { + if (JSON.parse(line).params) { + let data = JSON.parse(line); + if (config.logEvents) + console.log(data); + CLIEvent_1.CLIEvent.fromEvent(this, data); + } + } } }); this.process.stderr.on('data', (chunk) => { @@ -85,6 +113,57 @@ class Client extends events_1.EventEmitter { }, this.process); return new Group_1.Group(data?.result?.groupId, this); } + /** + * Check if a number is a Signal user + * @param number - The number to check + */ + async isNumberOnSignal(number) { + let data = await CLIDispatcher_1.CLIDispatcher.dispatch("getUserStatus", { + recipient: number + }, this.process); + return data?.result[0]?.isRegistered; + } + /** + * Get a list of {@link Group}s the client is part of + */ + async getGroups() { + return (await CLIDispatcher_1.CLIDispatcher.dispatch("listGroups", {}, this.process))['result'].map(i => new Group_1.Group(i.id, this)); + } + /** + * Get a list of {@link Device}s associated with the client + */ + async getDevices() { + return (await CLIDispatcher_1.CLIDispatcher.dispatch("listDevices", {}, this.process))['result'].map(i => new Device_1.Device(i, this)); + } + /** + * Associate a new device with this Signal account + * @param uri - The URI corresponding to the QR code on the device + */ + async addDevice(uri) { + return new Device_1.Device((await CLIDispatcher_1.CLIDispatcher.dispatch("addDevice", { + uri: uri + }, this.process))['result'][0], this); + } + /** + * Get a list of {@link UserProfile}s the client knows about + */ + async getContacts() { + return (await CLIDispatcher_1.CLIDispatcher.dispatch("listContacts", {}, this.process))['result'].map(i => new UserProfile_1.UserProfile(i, this)); + } + /** + * Get a list of {@link Identity} the client knows about + */ + async getIdentities() { + return (await CLIDispatcher_1.CLIDispatcher.dispatch("listIdentities", {}, this.process))['result'].filter(i => i.number && i.number.trim() !== "").map(i => new Identity_1.Identity(i, this)); + } + /** + * Get a list of {@link StickerPack}s the client has access to + */ + async getStickerPacks() { + let list = (await CLIDispatcher_1.CLIDispatcher.dispatch("listStickerPacks", {}, this.process))['result']; + this.stickerPacks['list'] = list; + return list.map(i => new StickerPack_1.StickerPack(i, this)); + } } exports.Client = Client; //# sourceMappingURL=Client.js.map
\ No newline at end of file diff --git a/dist/classes/Client.js.map b/dist/classes/Client.js.map index 05c0959..f3326fc 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":"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"}
\ No newline at end of file +{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../classes/Client.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/dist/classes/Device.d.ts b/dist/classes/Device.d.ts new file mode 100644 index 0000000..97ea365 --- /dev/null +++ b/dist/classes/Device.d.ts @@ -0,0 +1,33 @@ +import { Client } from "./Client"; +/** + * A device associated with the client's Signal account + */ +export declare class Device { + /** + * Device ID + */ + id: number; + /** + * Name of the device, if applicable + */ + name?: string; + /** + * {@link Date} the device was created (first seen) at + */ + createdAt: Date; + /** + * {@link Date} the device was last seen at + */ + lastSeenAt: Date; + private client; + /** + * @internal + * @param data - Data to reconstruct the device + * @param client + */ + constructor(data: any, client: Client); + /** + * Remove this device from the Signal account + */ + remove(): Promise<void>; +} diff --git a/dist/classes/Device.js b/dist/classes/Device.js new file mode 100644 index 0000000..e3ebd20 --- /dev/null +++ b/dist/classes/Device.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Device = void 0; +const CLIDispatcher_1 = require("./CLIDispatcher"); +/** + * A device associated with the client's Signal account + */ +class Device { + /** + * @internal + * @param data - Data to reconstruct the device + * @param client + */ + constructor(data, client) { + this.id = data.id; + this.name = data.name; + this.createdAt = new Date(data.createdTimestamp); + this.lastSeenAt = new Date(data.lastSeenTimestamp); + this.client = client; + } + /** + * Remove this device from the Signal account + */ + async remove() { + await CLIDispatcher_1.CLIDispatcher.dispatch("removeDevice", { + deviceId: this.id + }, this.client.process); + } +} +exports.Device = Device; +//# sourceMappingURL=Device.js.map
\ No newline at end of file diff --git a/dist/classes/Device.js.map b/dist/classes/Device.js.map new file mode 100644 index 0000000..3cf4a9d --- /dev/null +++ b/dist/classes/Device.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Device.js","sourceRoot":"","sources":["../../classes/Device.ts"],"names":[],"mappings":";;;AACA,mDAA8C;AAE9C;;GAEG;AACH,MAAa,MAAM;IAsBf;;;;OAIG;IACH,YAAY,IAAS,EAAE,MAAc;QACjC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACf,MAAM,6BAAa,CAAC,QAAQ,CACxB,cAAc,EACd;YACI,QAAQ,EAAE,IAAI,CAAC,EAAE;SACpB,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;IACN,CAAC;CACJ;AA/CD,wBA+CC"}
\ No newline at end of file diff --git a/dist/classes/Identity.d.ts b/dist/classes/Identity.d.ts new file mode 100644 index 0000000..08cc3ee --- /dev/null +++ b/dist/classes/Identity.d.ts @@ -0,0 +1,34 @@ +import { User } from "./User"; +import { Client } from "./Client"; +export declare class Identity { + /** + * {@link User} this identity corresponds to + */ + user: User; + /** + * Fingerprint of the key used by this identity + */ + fingerprint: string; + /** + * Safety number for this identity + */ + safetyNumber: string; + /** + * Version of the safety number that can be converted to a QR code + */ + safetyNumberScannable: string; + /** + * Whether the identity is trusted (verified) or not + */ + trusted: boolean; + /** + * {@link Date} at which the identity was first seen + */ + addedAt: Date; + /** + * @internal + * @param data - The data used to construct the identity + * @param client + */ + constructor(data: any, client: Client); +} diff --git a/dist/classes/Identity.js b/dist/classes/Identity.js new file mode 100644 index 0000000..1a2a740 --- /dev/null +++ b/dist/classes/Identity.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Identity = void 0; +const User_1 = require("./User"); +const UserDataType_1 = require("../enums/UserDataType"); +class Identity { + /** + * @internal + * @param data - The data used to construct the identity + * @param client + */ + constructor(data, client) { + this.user = new User_1.User(data, UserDataType_1.UserDataType.ProfileOrIdentity, client); + this.fingerprint = data.fingerprint; + this.safetyNumber = data.safetyNumber; + this.safetyNumberScannable = data.scannableSafetyNumber; + this.trusted = data.trustLevel === "TRUSTED_VERIFIED"; + this.addedAt = new Date(data.addedTimestamp); + } +} +exports.Identity = Identity; +//# sourceMappingURL=Identity.js.map
\ No newline at end of file diff --git a/dist/classes/Identity.js.map b/dist/classes/Identity.js.map new file mode 100644 index 0000000..5fcb2f7 --- /dev/null +++ b/dist/classes/Identity.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Identity.js","sourceRoot":"","sources":["../../classes/Identity.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAE5B,wDAAmD;AAEnD,MAAa,QAAQ;IA+BjB;;;;OAIG;IACH,YAAY,IAAS,EAAE,MAAc;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,EAAE,2BAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,kBAAkB,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;CACJ;AA5CD,4BA4CC"}
\ No newline at end of file diff --git a/dist/classes/StickerPack.d.ts b/dist/classes/StickerPack.d.ts index 10af6c4..b9d6aee 100644 --- a/dist/classes/StickerPack.d.ts +++ b/dist/classes/StickerPack.d.ts @@ -29,9 +29,13 @@ export declare class StickerPack { */ items: Sticker[]; /** - * @param id - The sticker pack's ID + * Whether the sticker pack is installed or not + */ + installed?: boolean; + /** + * @param data - The sticker pack's ID or data * @param client * @internal */ - constructor(id: string, client: Client); + constructor(data: string | any, client: Client); } diff --git a/dist/classes/StickerPack.js b/dist/classes/StickerPack.js index fff8d46..15573f8 100644 --- a/dist/classes/StickerPack.js +++ b/dist/classes/StickerPack.js @@ -8,12 +8,18 @@ const StickerSource_1 = require("../enums/StickerSource"); */ class StickerPack { /** - * @param id - The sticker pack's ID + * @param data - The sticker pack's ID or data * @param client * @internal */ - constructor(id, client) { - let cacheData = client.stickerPacks['list'].filter(i => i.packId === id)[0]; + constructor(data, client) { + let cacheData; + if (typeof data === "string") { + cacheData = client.stickerPacks['list'].filter(i => i.packId === data)[0]; + } + else { + cacheData = data; + } this.id = cacheData.packId; this.title = cacheData.title; this.author = cacheData.author; @@ -22,6 +28,8 @@ class StickerPack { this.items = cacheData.stickers.map(i => { return new Sticker_1.Sticker(StickerSource_1.StickerSource.Pack, i, client, this); }); + if (typeof cacheData.installed === "boolean") + this.installed = cacheData.installed; } } exports.StickerPack = StickerPack; diff --git a/dist/classes/StickerPack.js.map b/dist/classes/StickerPack.js.map index ac6df91..63c4c11 100644 --- a/dist/classes/StickerPack.js.map +++ b/dist/classes/StickerPack.js.map @@ -1 +1 @@ -{"version":3,"file":"StickerPack.js","sourceRoot":"","sources":["../../classes/StickerPack.ts"],"names":[],"mappings":";;;AACA,uCAAkC;AAClC,0DAAqD;AAErD;;GAEG;AACH,MAAa,WAAW;IA+BpB;;;;OAIG;IACH,YAAY,EAAU,EAAE,MAAc;QAClC,IAAI,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAO,CAAC,6BAAa,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,iBAAO,CAAC,6BAAa,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAhDD,kCAgDC"}
\ No newline at end of file +{"version":3,"file":"StickerPack.js","sourceRoot":"","sources":["../../classes/StickerPack.ts"],"names":[],"mappings":";;;AACA,uCAAkC;AAClC,0DAAqD;AAErD;;GAEG;AACH,MAAa,WAAW;IAoCpB;;;;OAIG;IACH,YAAY,IAAgB,EAAE,MAAc;QACxC,IAAI,SAAS,CAAC;QAEd,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC1B,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7E;aAAM;YACH,SAAS,GAAG,IAAI,CAAC;SACpB;QAED,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAO,CAAC,6BAAa,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,iBAAO,CAAC,6BAAa,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACvF,CAAC;CACJ;AA5DD,kCA4DC"}
\ No newline at end of file diff --git a/dist/classes/User.js b/dist/classes/User.js index 913b491..c99b29a 100644 --- a/dist/classes/User.js +++ b/dist/classes/User.js @@ -54,11 +54,13 @@ class User { if (data.targetAuthorUuid && typeof data.targetAuthorUuid === "string") this.uuid = data.targetAuthorUuid; } - else if (dataType === UserDataType_1.UserDataType.MentionOrGroup) { + else if (dataType === UserDataType_1.UserDataType.MentionOrGroup || dataType === UserDataType_1.UserDataType.ProfileOrIdentity) { if (data.number && typeof data.number === "string") this.number = data.number; if (data.uuid && typeof data.uuid === "string") this.uuid = data.uuid; + if (data.name && typeof data.name === "string") + this.nickName = data.name; } else if (dataType === UserDataType_1.UserDataType.Number) { if (data && typeof data === "string") diff --git a/dist/classes/User.js.map b/dist/classes/User.js.map index 41ed4be..1bfb8ae 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":"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"}
\ No newline at end of file +{"version":3,"file":"User.js","sourceRoot":"","sources":["../../classes/User.ts"],"names":[],"mappings":";;;AAAA,wDAAmD;AACnD,mDAA8C;AAE9C,6BAAwB;AAExB;;GAEG;AACH,MAAa,IAAI;IAsBb;;;;;OAKG;IACH,YAAY,IAAS,EAAE,QAAsB,EAAE,MAAc;QA3B7D;;WAEG;QACI,WAAM,GAAY,IAAI,CAAC;QAE9B;;WAEG;QACI,aAAQ,GAAY,IAAI,CAAC;QAEhC;;WAEG;QACI,SAAI,GAAY,IAAI,CAAC;QAE5B;;WAEG;QACI,WAAM,GAAY,IAAI,CAAC;QAU1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,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;aAAM,IAAI,QAAQ,KAAK,2BAAY,CAAC,cAAc,IAAI,QAAQ,KAAK,2BAAY,CAAC,iBAAiB,EAAE;YAChG,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9E,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACtE,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;SAC7E;aAAM,IAAI,QAAQ,KAAK,2BAAY,CAAC,MAAM,EAAE;YACzC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SAC5D;IACL,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,OAAO,IAAI,OAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,UAAU,CAAC,MAAc,EAAE,MAAc;QACnD,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,2BAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,UAAU,CAAC,OAAgB;QACpC,IAAI,OAAO,EAAE;YACT,MAAM,6BAAa,CAAC,QAAQ,CACxB,OAAO,EACP;gBACI,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;SACL;aAAM;YACH,MAAM,6BAAa,CAAC,QAAQ,CACxB,SAAS,EACT;gBACI,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;SACL;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,YAAqB;QACrC,IAAI,YAAY,EAAE;YACd,MAAM,6BAAa,CAAC,QAAQ,CACxB,OAAO,EACP;gBACI,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClG,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;SACL;aAAM;YACH,MAAM,6BAAa,CAAC,QAAQ,CACxB,OAAO,EACP;gBACI,iBAAiB,EAAE,IAAI;gBACvB,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;SACL;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,aAAa,CAAC,IAAa;QACpC,MAAM,6BAAa,CAAC,QAAQ,CACxB,eAAe,EACf;YACI,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;QAEF,MAAM,6BAAa,CAAC,QAAQ,CACxB,cAAc,EACd,EAAE,EACF,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;IACN,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,kBAAkB;QAC3B,MAAM,6BAAa,CAAC,QAAQ,CACxB,eAAe,EACf;YACI,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;QAEF,MAAM,6BAAa,CAAC,QAAQ,CACxB,cAAc,EACd,EAAE,EACF,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,2BAA2B,CAAC,IAAa;QAClD,MAAM,6BAAa,CAAC,QAAQ,CACxB,eAAe,EACf;YACI,UAAU,EAAE,IAAI,IAAI,CAAC;YACrB,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;SAC3B,EACD,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;QAEF,MAAM,6BAAa,CAAC,QAAQ,CACxB,cAAc,EACd,EAAE,EACF,IAAI,CAAC,MAAM,CAAC,OAAO,CACtB,CAAC;IACN,CAAC;CACJ;AApLD,oBAoLC"}
\ No newline at end of file diff --git a/dist/classes/UserProfile.d.ts b/dist/classes/UserProfile.d.ts new file mode 100644 index 0000000..911e6d6 --- /dev/null +++ b/dist/classes/UserProfile.d.ts @@ -0,0 +1,46 @@ +import { User } from "./User"; +import { IUserProfileStatus } from "../types/IUserProfileStatus"; +import { Client } from "./Client"; +/** + * A user profile with additional data + */ +export declare class UserProfile { + /** + * {@link User} this profile is associated with + */ + user: User; + /** + * The Signal user name for this user + */ + userName?: string; + /** + * Whether this user is blocked or not + */ + blocked: boolean; + /** + * {@link Date} the profile was updated for the last time + */ + lastUpdatedAt: Date; + /** + * User's first name + */ + firstName?: string; + /** + * User's last name + */ + lastName?: string; + /** + * User status message + */ + status: IUserProfileStatus; + /** + * User MobileCoin address + */ + mobileCoinAddress?: string; + /** + * @internal + * @param data - The data to reconstruct the profile + * @param client + */ + constructor(data: any, client: Client); +} diff --git a/dist/classes/UserProfile.js b/dist/classes/UserProfile.js new file mode 100644 index 0000000..b1011e5 --- /dev/null +++ b/dist/classes/UserProfile.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.UserProfile = void 0; +const User_1 = require("./User"); +const UserDataType_1 = require("../enums/UserDataType"); +const Emoji_1 = require("./Emoji"); +/** + * A user profile with additional data + */ +class UserProfile { + /** + * @internal + * @param data - The data to reconstruct the profile + * @param client + */ + constructor(data, client) { + this.user = new User_1.User(data, UserDataType_1.UserDataType.ProfileOrIdentity, client); + this.userName = data.username; + this.blocked = data.isBlocked; + this.lastUpdatedAt = new Date(data.profile.lastUpdateTimestamp); + this.firstName = data.givenName && data.givenName.trim() !== "" ? data.givenName : null; + this.lastName = data.lastName && data.lastName.trim() !== "" ? data.lastName : null; + this.status = { + text: data.profile.about && data.profile.about.trim() !== "" ? data.profile.about : null, + emoji: data.profile.aboutEmoji && data.profile.aboutEmoji.trim() !== "" ? new Emoji_1.Emoji(data.profile.aboutEmoji) : null + }; + this.mobileCoinAddress = data.mobileCoinAddress; + } +} +exports.UserProfile = UserProfile; +//# sourceMappingURL=UserProfile.js.map
\ No newline at end of file diff --git a/dist/classes/UserProfile.js.map b/dist/classes/UserProfile.js.map new file mode 100644 index 0000000..7c5613f --- /dev/null +++ b/dist/classes/UserProfile.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../../classes/UserProfile.ts"],"names":[],"mappings":";;;AAAA,iCAA4B;AAG5B,wDAAmD;AACnD,mCAA8B;AAE9B;;GAEG;AACH,MAAa,WAAW;IAyCpB;;;;OAIG;IACH,YAAY,IAAS,EAAE,MAAc;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAI,CAAC,IAAI,EAAE,2BAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACpF,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACxF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;SACtH,CAAA;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IACpD,CAAC;CACJ;AA3DD,kCA2DC"}
\ No newline at end of file diff --git a/dist/enums/UserDataType.d.ts b/dist/enums/UserDataType.d.ts index 6f8bdfc..6849abd 100644 --- a/dist/enums/UserDataType.d.ts +++ b/dist/enums/UserDataType.d.ts @@ -21,5 +21,9 @@ export declare enum UserDataType { /** * From an arbitrary phone number */ - Number = 4 + Number = 4, + /** + * From a user's profile or identity + */ + ProfileOrIdentity = 5 } diff --git a/dist/enums/UserDataType.js b/dist/enums/UserDataType.js index f59e499..96bcaba 100644 --- a/dist/enums/UserDataType.js +++ b/dist/enums/UserDataType.js @@ -26,5 +26,9 @@ var UserDataType; * From an arbitrary phone number */ UserDataType[UserDataType["Number"] = 4] = "Number"; + /** + * From a user's profile or identity + */ + UserDataType[UserDataType["ProfileOrIdentity"] = 5] = "ProfileOrIdentity"; })(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 index 4373837..4c6e3e3 100644 --- a/dist/enums/UserDataType.js.map +++ b/dist/enums/UserDataType.js.map @@ -1 +1 @@ -{"version":3,"file":"UserDataType.js","sourceRoot":"","sources":["../../enums/UserDataType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,YAyBX;AAzBD,WAAY,YAAY;IACpB;;OAEG;IACH,uDAAQ,CAAA;IAER;;OAEG;IACH,iDAAK,CAAA;IAEL;;OAEG;IACH,uDAAQ,CAAA;IAER;;OAEG;IACH,mEAAc,CAAA;IAEd;;OAEG;IACH,mDAAM,CAAA;AACV,CAAC,EAzBW,YAAY,4BAAZ,YAAY,QAyBvB"}
\ No newline at end of file +{"version":3,"file":"UserDataType.js","sourceRoot":"","sources":["../../enums/UserDataType.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,YA8BX;AA9BD,WAAY,YAAY;IACpB;;OAEG;IACH,uDAAQ,CAAA;IAER;;OAEG;IACH,iDAAK,CAAA;IAEL;;OAEG;IACH,uDAAQ,CAAA;IAER;;OAEG;IACH,mEAAc,CAAA;IAEd;;OAEG;IACH,mDAAM,CAAA;IAEN;;OAEG;IACH,yEAAiB,CAAA;AACrB,CAAC,EA9BW,YAAY,4BAAZ,YAAY,QA8BvB"}
\ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index c83f905..922f803 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -15,6 +15,7 @@ export { DMStickerMessage } from "./classes/DMStickerMessage"; export { DMTypingMessage } from "./classes/DMTypingMessage"; export { DataMessage } from "./classes/DataMessage"; export { DeleteMessage } from "./classes/DeleteMessage"; +export { Device } from "./classes/Device"; export { EditMessage } from "./classes/EditMessage"; export { Emoji } from "./classes/Emoji"; export { Group } from "./classes/Group"; @@ -27,6 +28,7 @@ export { GroupPermissions } from "./classes/GroupPermissions"; export { GroupReactionMessage } from "./classes/GroupReactionMessage"; export { GroupStickerMessage } from "./classes/GroupStickerMessage"; export { GroupTypingMessage } from "./classes/GroupTypingMessage"; +export { Identity } from "./classes/Identity"; export { MessageFormatting } from "./classes/MessageFormatting"; export { MessageFormattingRule } from "./classes/MessageFormattingRule"; export { ObjectCache } from "./classes/ObjectCache"; @@ -47,6 +49,7 @@ export { StickerPack } from "./classes/StickerPack"; export { TypingMessage } from "./classes/TypingMessage"; export { User } from "./classes/User"; export { UserMention } from "./classes/UserMention"; +export { UserProfile } from "./classes/UserProfile"; export { IAttachmentBuilderData } from "./types/IAttachmentBuilderData"; export { ICLIEvent } from "./types/ICLIEvent"; export { ICLIRequest } from "./types/ICLIRequest"; @@ -60,6 +63,7 @@ export { IMimeType } from "./types/IMimeType"; export { IReceivedMessageURLPreview } from "./types/IReceivedMessageURLPreview"; export { ISentMessageURLPreview } from "./types/ISentMessageURLPreview"; export { ISystemConfig } from "./types/ISystemConfig"; +export { IUserProfileStatus } from "./types/IUserProfileStatus"; export { IUserResolvable } from "./types/IUserResolvable"; export { ConfigEnvironment } from "./enums/ConfigEnvironment"; export { ConfigTrustLevel } from "./enums/ConfigTrustLevel"; diff --git a/dist/index.js b/dist/index.js index b371b16..cc9b7fd 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,7 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.ConfigEnvironment = exports.UserMention = exports.User = exports.TypingMessage = exports.StickerPack = exports.StickerMessage = exports.Sticker = exports.SignalCLIError = exports.SignalAPIError = exports.SentStickerMessage = exports.SentMessage = exports.SentDataMessage = exports.ReceivedURLPreview = exports.ReceivedMessage = exports.ReactionTarget = exports.ReactionMessage = exports.QuoteMessage = exports.QuoteBuilder = exports.ObjectCache = exports.MessageFormattingRule = exports.MessageFormatting = exports.GroupTypingMessage = exports.GroupStickerMessage = exports.GroupReactionMessage = exports.GroupPermissions = exports.GroupMessage = exports.GroupEditor = exports.GroupEditMessage = exports.GroupDeleteMessage = exports.GroupDataMessage = exports.Group = exports.Emoji = exports.EditMessage = exports.DeleteMessage = exports.DataMessage = exports.DMTypingMessage = exports.DMStickerMessage = exports.DMReactionMessage = exports.DMMessage = exports.DMEditMessage = exports.DMDeleteMessage = exports.DMDataMessage = exports.DM = exports.Client = exports.Channel = exports.CLIEvent = exports.CLIDispatcher = exports.AttachmentSize = exports.AttachmentBuilder = exports.Attachment = void 0; -exports.UserDataType = exports.TypingMessageAction = exports.StickerSource = exports.MessageReceipt = exports.MessageFormattingStyle = exports.GroupPermissionName = exports.GroupPermissionLevel = exports.GroupLinkStatus = exports.ConfigTrustLevel = void 0; +exports.User = exports.TypingMessage = exports.StickerPack = exports.StickerMessage = exports.Sticker = exports.SignalCLIError = exports.SignalAPIError = exports.SentStickerMessage = exports.SentMessage = exports.SentDataMessage = exports.ReceivedURLPreview = exports.ReceivedMessage = exports.ReactionTarget = exports.ReactionMessage = exports.QuoteMessage = exports.QuoteBuilder = exports.ObjectCache = exports.MessageFormattingRule = exports.MessageFormatting = exports.Identity = exports.GroupTypingMessage = exports.GroupStickerMessage = exports.GroupReactionMessage = exports.GroupPermissions = exports.GroupMessage = exports.GroupEditor = exports.GroupEditMessage = exports.GroupDeleteMessage = exports.GroupDataMessage = exports.Group = exports.Emoji = exports.EditMessage = exports.Device = exports.DeleteMessage = exports.DataMessage = exports.DMTypingMessage = exports.DMStickerMessage = exports.DMReactionMessage = exports.DMMessage = exports.DMEditMessage = exports.DMDeleteMessage = exports.DMDataMessage = exports.DM = exports.Client = exports.Channel = exports.CLIEvent = exports.CLIDispatcher = exports.AttachmentSize = exports.AttachmentBuilder = exports.Attachment = void 0; +exports.UserDataType = exports.TypingMessageAction = exports.StickerSource = exports.MessageReceipt = exports.MessageFormattingStyle = exports.GroupPermissionName = exports.GroupPermissionLevel = exports.GroupLinkStatus = exports.ConfigTrustLevel = exports.ConfigEnvironment = exports.UserProfile = exports.UserMention = void 0; // Classes var Attachment_1 = require("./classes/Attachment"); Object.defineProperty(exports, "Attachment", { enumerable: true, get: function () { return Attachment_1.Attachment; } }); @@ -37,6 +37,8 @@ var DataMessage_1 = require("./classes/DataMessage"); Object.defineProperty(exports, "DataMessage", { enumerable: true, get: function () { return DataMessage_1.DataMessage; } }); var DeleteMessage_1 = require("./classes/DeleteMessage"); Object.defineProperty(exports, "DeleteMessage", { enumerable: true, get: function () { return DeleteMessage_1.DeleteMessage; } }); +var Device_1 = require("./classes/Device"); +Object.defineProperty(exports, "Device", { enumerable: true, get: function () { return Device_1.Device; } }); var EditMessage_1 = require("./classes/EditMessage"); Object.defineProperty(exports, "EditMessage", { enumerable: true, get: function () { return EditMessage_1.EditMessage; } }); var Emoji_1 = require("./classes/Emoji"); @@ -61,6 +63,8 @@ var GroupStickerMessage_1 = require("./classes/GroupStickerMessage"); Object.defineProperty(exports, "GroupStickerMessage", { enumerable: true, get: function () { return GroupStickerMessage_1.GroupStickerMessage; } }); var GroupTypingMessage_1 = require("./classes/GroupTypingMessage"); Object.defineProperty(exports, "GroupTypingMessage", { enumerable: true, get: function () { return GroupTypingMessage_1.GroupTypingMessage; } }); +var Identity_1 = require("./classes/Identity"); +Object.defineProperty(exports, "Identity", { enumerable: true, get: function () { return Identity_1.Identity; } }); var MessageFormatting_1 = require("./classes/MessageFormatting"); Object.defineProperty(exports, "MessageFormatting", { enumerable: true, get: function () { return MessageFormatting_1.MessageFormatting; } }); var MessageFormattingRule_1 = require("./classes/MessageFormattingRule"); @@ -101,6 +105,8 @@ var User_1 = require("./classes/User"); Object.defineProperty(exports, "User", { enumerable: true, get: function () { return User_1.User; } }); var UserMention_1 = require("./classes/UserMention"); Object.defineProperty(exports, "UserMention", { enumerable: true, get: function () { return UserMention_1.UserMention; } }); +var UserProfile_1 = require("./classes/UserProfile"); +Object.defineProperty(exports, "UserProfile", { enumerable: true, get: function () { return UserProfile_1.UserProfile; } }); // Enums var ConfigEnvironment_1 = require("./enums/ConfigEnvironment"); Object.defineProperty(exports, "ConfigEnvironment", { enumerable: true, get: function () { return ConfigEnvironment_1.ConfigEnvironment; } }); diff --git a/dist/index.js.map b/dist/index.js.map index e589964..cbc0b4d 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file diff --git a/dist/types/IUserProfileStatus.d.ts b/dist/types/IUserProfileStatus.d.ts new file mode 100644 index 0000000..f217123 --- /dev/null +++ b/dist/types/IUserProfileStatus.d.ts @@ -0,0 +1,5 @@ +import { Emoji } from "../classes/Emoji"; +export interface IUserProfileStatus { + text?: string; + emoji?: Emoji; +} diff --git a/dist/types/IUserProfileStatus.js b/dist/types/IUserProfileStatus.js new file mode 100644 index 0000000..5ae4939 --- /dev/null +++ b/dist/types/IUserProfileStatus.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=IUserProfileStatus.js.map
\ No newline at end of file diff --git a/dist/types/IUserProfileStatus.js.map b/dist/types/IUserProfileStatus.js.map new file mode 100644 index 0000000..5bff64e --- /dev/null +++ b/dist/types/IUserProfileStatus.js.map @@ -0,0 +1 @@ +{"version":3,"file":"IUserProfileStatus.js","sourceRoot":"","sources":["../../types/IUserProfileStatus.ts"],"names":[],"mappings":""}
\ No newline at end of file diff --git a/enums/UserDataType.ts b/enums/UserDataType.ts index b2df3c0..d002322 100644 --- a/enums/UserDataType.ts +++ b/enums/UserDataType.ts @@ -25,5 +25,10 @@ export enum UserDataType { /** * From an arbitrary phone number */ - Number + Number, + + /** + * From a user's profile or identity + */ + ProfileOrIdentity }
\ No newline at end of file @@ -16,6 +16,7 @@ export {DMStickerMessage} from "./classes/DMStickerMessage"; export {DMTypingMessage} from "./classes/DMTypingMessage"; export {DataMessage} from "./classes/DataMessage"; export {DeleteMessage} from "./classes/DeleteMessage"; +export {Device} from "./classes/Device"; export {EditMessage} from "./classes/EditMessage"; export {Emoji} from "./classes/Emoji"; export {Group} from "./classes/Group"; @@ -28,6 +29,7 @@ export {GroupPermissions} from "./classes/GroupPermissions"; export {GroupReactionMessage} from "./classes/GroupReactionMessage"; export {GroupStickerMessage} from "./classes/GroupStickerMessage"; export {GroupTypingMessage} from "./classes/GroupTypingMessage"; +export {Identity} from "./classes/Identity"; export {MessageFormatting} from "./classes/MessageFormatting"; export {MessageFormattingRule} from "./classes/MessageFormattingRule"; export {ObjectCache} from "./classes/ObjectCache"; @@ -48,6 +50,7 @@ export {StickerPack} from "./classes/StickerPack"; export {TypingMessage} from "./classes/TypingMessage"; export {User} from "./classes/User"; export {UserMention} from "./classes/UserMention"; +export {UserProfile} from "./classes/UserProfile"; // Types export {IAttachmentBuilderData} from "./types/IAttachmentBuilderData"; @@ -63,6 +66,7 @@ export {IMimeType} from "./types/IMimeType"; export {IReceivedMessageURLPreview} from "./types/IReceivedMessageURLPreview"; export {ISentMessageURLPreview} from "./types/ISentMessageURLPreview"; export {ISystemConfig} from "./types/ISystemConfig"; +export {IUserProfileStatus} from "./types/IUserProfileStatus"; export {IUserResolvable} from "./types/IUserResolvable"; // Enums diff --git a/package.json b/package.json index 2e18e0a..1bec48e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@equestria.dev/signal.js", - "version": "0.3.2-beta.1", + "version": "0.4.0-beta.0", "description": "An easy-to-use Node.js library for Signal", "main": "dist/index.js", "publishConfig": { diff --git a/types/IUserProfileStatus.ts b/types/IUserProfileStatus.ts new file mode 100644 index 0000000..a5f848f --- /dev/null +++ b/types/IUserProfileStatus.ts @@ -0,0 +1,6 @@ +import {Emoji} from "../classes/Emoji"; + +export interface IUserProfileStatus { + text?: string; + emoji?: Emoji; +}
\ No newline at end of file |