UNPKG

matrix-react-sdk

Version:
49 lines (44 loc) 5.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.shouldEncryptRoomWithSingle3rdPartyInvite = void 0; var _DMRoomMap = _interopRequireDefault(require("../DMRoomMap")); var _rooms = require("../rooms"); /* Copyright 2024 New Vector Ltd. Copyright 2023 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ /** * Tests whether a DM room with exactly one third-party invite should be encrypted. * If it should be encrypted, the third-party invitation event is also returned. */ const shouldEncryptRoomWithSingle3rdPartyInvite = room => { // encryption not promoted via .well-known if (!(0, _rooms.privateShouldBeEncrypted)(room.client)) return { shouldEncrypt: false }; // not a DM room if (!_DMRoomMap.default.shared().getRoomIds().has(room.roomId)) return { shouldEncrypt: false }; // more than one room member / invite if (room.getInvitedAndJoinedMemberCount() !== 1) return { shouldEncrypt: false }; const thirdPartyInvites = room.currentState.getStateEvents("m.room.third_party_invite") || []; if (thirdPartyInvites.length === 1) { return { shouldEncrypt: true, inviteEvent: thirdPartyInvites[0] }; } return { shouldEncrypt: false }; }; exports.shouldEncryptRoomWithSingle3rdPartyInvite = shouldEncryptRoomWithSingle3rdPartyInvite; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRE1Sb29tTWFwIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcm9vbXMiLCJzaG91bGRFbmNyeXB0Um9vbVdpdGhTaW5nbGUzcmRQYXJ0eUludml0ZSIsInJvb20iLCJwcml2YXRlU2hvdWxkQmVFbmNyeXB0ZWQiLCJjbGllbnQiLCJzaG91bGRFbmNyeXB0IiwiRE1Sb29tTWFwIiwic2hhcmVkIiwiZ2V0Um9vbUlkcyIsImhhcyIsInJvb21JZCIsImdldEludml0ZWRBbmRKb2luZWRNZW1iZXJDb3VudCIsInRoaXJkUGFydHlJbnZpdGVzIiwiY3VycmVudFN0YXRlIiwiZ2V0U3RhdGVFdmVudHMiLCJsZW5ndGgiLCJpbnZpdGVFdmVudCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvcm9vbS9zaG91bGRFbmNyeXB0Um9vbVdpdGhTaW5nbGUzcmRQYXJ0eUludml0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBNYXRyaXhFdmVudCwgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IERNUm9vbU1hcCBmcm9tIFwiLi4vRE1Sb29tTWFwXCI7XG5pbXBvcnQgeyBwcml2YXRlU2hvdWxkQmVFbmNyeXB0ZWQgfSBmcm9tIFwiLi4vcm9vbXNcIjtcblxuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIGEgRE0gcm9vbSB3aXRoIGV4YWN0bHkgb25lIHRoaXJkLXBhcnR5IGludml0ZSBzaG91bGQgYmUgZW5jcnlwdGVkLlxuICogSWYgaXQgc2hvdWxkIGJlIGVuY3J5cHRlZCwgdGhlIHRoaXJkLXBhcnR5IGludml0YXRpb24gZXZlbnQgaXMgYWxzbyByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNob3VsZEVuY3J5cHRSb29tV2l0aFNpbmdsZTNyZFBhcnR5SW52aXRlID0gKFxuICAgIHJvb206IFJvb20sXG4pOiB7IHNob3VsZEVuY3J5cHQ6IHRydWU7IGludml0ZUV2ZW50OiBNYXRyaXhFdmVudCB9IHwgeyBzaG91bGRFbmNyeXB0OiBmYWxzZTsgaW52aXRlRXZlbnQ/OiB1bmRlZmluZWQgfSA9PiB7XG4gICAgLy8gZW5jcnlwdGlvbiBub3QgcHJvbW90ZWQgdmlhIC53ZWxsLWtub3duXG4gICAgaWYgKCFwcml2YXRlU2hvdWxkQmVFbmNyeXB0ZWQocm9vbS5jbGllbnQpKSByZXR1cm4geyBzaG91bGRFbmNyeXB0OiBmYWxzZSB9O1xuXG4gICAgLy8gbm90IGEgRE0gcm9vbVxuICAgIGlmICghRE1Sb29tTWFwLnNoYXJlZCgpLmdldFJvb21JZHMoKS5oYXMocm9vbS5yb29tSWQpKSByZXR1cm4geyBzaG91bGRFbmNyeXB0OiBmYWxzZSB9O1xuXG4gICAgLy8gbW9yZSB0aGFuIG9uZSByb29tIG1lbWJlciAvIGludml0ZVxuICAgIGlmIChyb29tLmdldEludml0ZWRBbmRKb2luZWRNZW1iZXJDb3VudCgpICE9PSAxKSByZXR1cm4geyBzaG91bGRFbmNyeXB0OiBmYWxzZSB9O1xuXG4gICAgY29uc3QgdGhpcmRQYXJ0eUludml0ZXMgPSByb29tLmN1cnJlbnRTdGF0ZS5nZXRTdGF0ZUV2ZW50cyhcIm0ucm9vbS50aGlyZF9wYXJ0eV9pbnZpdGVcIikgfHwgW107XG5cbiAgICBpZiAodGhpcmRQYXJ0eUludml0ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzaG91bGRFbmNyeXB0OiB0cnVlLFxuICAgICAgICAgICAgaW52aXRlRXZlbnQ6IHRoaXJkUGFydHlJbnZpdGVzWzBdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHNob3VsZEVuY3J5cHQ6IGZhbHNlIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBVUEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNRSx5Q0FBeUMsR0FDbERDLElBQVUsSUFDOEY7RUFDeEc7RUFDQSxJQUFJLENBQUMsSUFBQUMsK0JBQXdCLEVBQUNELElBQUksQ0FBQ0UsTUFBTSxDQUFDLEVBQUUsT0FBTztJQUFFQyxhQUFhLEVBQUU7RUFBTSxDQUFDOztFQUUzRTtFQUNBLElBQUksQ0FBQ0Msa0JBQVMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsQ0FBQ0MsVUFBVSxDQUFDLENBQUMsQ0FBQ0MsR0FBRyxDQUFDUCxJQUFJLENBQUNRLE1BQU0sQ0FBQyxFQUFFLE9BQU87SUFBRUwsYUFBYSxFQUFFO0VBQU0sQ0FBQzs7RUFFdEY7RUFDQSxJQUFJSCxJQUFJLENBQUNTLDhCQUE4QixDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTztJQUFFTixhQUFhLEVBQUU7RUFBTSxDQUFDO0VBRWhGLE1BQU1PLGlCQUFpQixHQUFHVixJQUFJLENBQUNXLFlBQVksQ0FBQ0MsY0FBYyxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRTtFQUU3RixJQUFJRixpQkFBaUIsQ0FBQ0csTUFBTSxLQUFLLENBQUMsRUFBRTtJQUNoQyxPQUFPO01BQ0hWLGFBQWEsRUFBRSxJQUFJO01BQ25CVyxXQUFXLEVBQUVKLGlCQUFpQixDQUFDLENBQUM7SUFDcEMsQ0FBQztFQUNMO0VBRUEsT0FBTztJQUFFUCxhQUFhLEVBQUU7RUFBTSxDQUFDO0FBQ25DLENBQUM7QUFBQ1ksT0FBQSxDQUFBaEIseUNBQUEsR0FBQUEseUNBQUEiLCJpZ25vcmVMaXN0IjpbXX0=