UNPKG

@signalapp/mock-server

Version:
62 lines (61 loc) 2.15 kB
"use strict"; // Copyright 2022 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Group = void 0; const assert_1 = __importDefault(require("assert")); class Group { privChanges; privPublicParams; get changes() { (0, assert_1.default)(this.privChanges !== undefined, 'Group not initialized'); return this.privChanges; } get publicParams() { (0, assert_1.default)(this.privPublicParams !== undefined, 'Group not initialized'); return this.privPublicParams; } get state() { const { groupChanges } = this.changes; (0, assert_1.default)(groupChanges, 'Missing group changes in the group state'); const state = groupChanges.at(-1)?.groupState; (0, assert_1.default)(state, 'Group must have the last state'); return state; } get id() { return Buffer.from(this.publicParams.getGroupIdentifier().serialize()).toString('base64'); } get revision() { return this.state.version ?? 0; } getChangesSince(since) { return { groupChanges: this.changes.groupChanges?.slice(since) ?? null, groupSendEndorsementsResponse: null, }; } getMember(uuidCiphertext) { const state = this.state; const userId = Buffer.from(uuidCiphertext.serialize()); return (state.members?.find((member) => { if (!member.userId) { return false; } return userId.equals(member.userId); }) ?? undefined); } getPendingMember(uuidCiphertext) { const state = this.state; const userId = Buffer.from(uuidCiphertext.serialize()); return (state.membersPendingProfileKey?.find(({ member }) => { if (!member?.userId) { return false; } return userId.equals(member.userId); }) ?? undefined); } } exports.Group = Group;