UNPKG

matrix-react-sdk

Version:
66 lines (60 loc) 7.75 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.getThreepidsWithBindStatus = getThreepidsWithBindStatus; var _matrix = require("matrix-js-sdk/src/matrix"); var _IdentityAuthClient = _interopRequireDefault(require("./IdentityAuthClient")); /* Copyright 2024 New Vector Ltd. Copyright 2019 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. */ async function getThreepidsWithBindStatus(client, filterMedium) { const userId = client.getUserId(); let { threepids } = await client.getThreePids(); if (filterMedium) { threepids = threepids.filter(a => a.medium === filterMedium); } // Check bind status assuming we have an IS and terms are agreed if (threepids.length > 0 && !!client.getIdentityServerUrl()) { try { const authClient = new _IdentityAuthClient.default(); const identityAccessToken = await authClient.getAccessToken({ check: false }); if (!identityAccessToken) { throw new Error("No identity access token found"); } // Restructure for lookup query const query = threepids.map(({ medium, address }) => [medium, address]); const lookupResults = await client.bulkLookupThreePids(query, identityAccessToken); // Record which are already bound for (const [medium, address, mxid] of lookupResults.threepids) { if (mxid !== userId) { continue; } if (filterMedium && medium !== filterMedium) { continue; } const threepid = threepids.find(e => e.medium === medium && e.address === address); if (!threepid) continue; threepid.bound = true; } } catch (e) { // Ignore terms errors here and assume other flows handle this if (!(e instanceof _matrix.MatrixError) || e.errcode !== "M_TERMS_NOT_SIGNED") { throw e; } } } return threepids; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsIl9JZGVudGl0eUF1dGhDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiZ2V0VGhyZWVwaWRzV2l0aEJpbmRTdGF0dXMiLCJjbGllbnQiLCJmaWx0ZXJNZWRpdW0iLCJ1c2VySWQiLCJnZXRVc2VySWQiLCJ0aHJlZXBpZHMiLCJnZXRUaHJlZVBpZHMiLCJmaWx0ZXIiLCJhIiwibWVkaXVtIiwibGVuZ3RoIiwiZ2V0SWRlbnRpdHlTZXJ2ZXJVcmwiLCJhdXRoQ2xpZW50IiwiSWRlbnRpdHlBdXRoQ2xpZW50IiwiaWRlbnRpdHlBY2Nlc3NUb2tlbiIsImdldEFjY2Vzc1Rva2VuIiwiY2hlY2siLCJFcnJvciIsInF1ZXJ5IiwibWFwIiwiYWRkcmVzcyIsImxvb2t1cFJlc3VsdHMiLCJidWxrTG9va3VwVGhyZWVQaWRzIiwibXhpZCIsInRocmVlcGlkIiwiZmluZCIsImUiLCJib3VuZCIsIk1hdHJpeEVycm9yIiwiZXJyY29kZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ib3VuZFRocmVlcGlkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBJVGhyZWVwaWQsIFRocmVlcGlkTWVkaXVtLCBNYXRyaXhDbGllbnQsIE1hdHJpeEVycm9yIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuXG5pbXBvcnQgSWRlbnRpdHlBdXRoQ2xpZW50IGZyb20gXCIuL0lkZW50aXR5QXV0aENsaWVudFwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VGhyZWVwaWRzV2l0aEJpbmRTdGF0dXMoXG4gICAgY2xpZW50OiBNYXRyaXhDbGllbnQsXG4gICAgZmlsdGVyTWVkaXVtPzogVGhyZWVwaWRNZWRpdW0sXG4pOiBQcm9taXNlPElUaHJlZXBpZFtdPiB7XG4gICAgY29uc3QgdXNlcklkID0gY2xpZW50LmdldFVzZXJJZCgpO1xuXG4gICAgbGV0IHsgdGhyZWVwaWRzIH0gPSBhd2FpdCBjbGllbnQuZ2V0VGhyZWVQaWRzKCk7XG4gICAgaWYgKGZpbHRlck1lZGl1bSkge1xuICAgICAgICB0aHJlZXBpZHMgPSB0aHJlZXBpZHMuZmlsdGVyKChhKSA9PiBhLm1lZGl1bSA9PT0gZmlsdGVyTWVkaXVtKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBiaW5kIHN0YXR1cyBhc3N1bWluZyB3ZSBoYXZlIGFuIElTIGFuZCB0ZXJtcyBhcmUgYWdyZWVkXG4gICAgaWYgKHRocmVlcGlkcy5sZW5ndGggPiAwICYmICEhY2xpZW50LmdldElkZW50aXR5U2VydmVyVXJsKCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGF1dGhDbGllbnQgPSBuZXcgSWRlbnRpdHlBdXRoQ2xpZW50KCk7XG4gICAgICAgICAgICBjb25zdCBpZGVudGl0eUFjY2Vzc1Rva2VuID0gYXdhaXQgYXV0aENsaWVudC5nZXRBY2Nlc3NUb2tlbih7IGNoZWNrOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIGlmICghaWRlbnRpdHlBY2Nlc3NUb2tlbikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGlkZW50aXR5IGFjY2VzcyB0b2tlbiBmb3VuZFwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUmVzdHJ1Y3R1cmUgZm9yIGxvb2t1cCBxdWVyeVxuICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB0aHJlZXBpZHMubWFwKCh7IG1lZGl1bSwgYWRkcmVzcyB9KTogW3N0cmluZywgc3RyaW5nXSA9PiBbbWVkaXVtLCBhZGRyZXNzXSk7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBSZXN1bHRzID0gYXdhaXQgY2xpZW50LmJ1bGtMb29rdXBUaHJlZVBpZHMocXVlcnksIGlkZW50aXR5QWNjZXNzVG9rZW4pO1xuXG4gICAgICAgICAgICAvLyBSZWNvcmQgd2hpY2ggYXJlIGFscmVhZHkgYm91bmRcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21lZGl1bSwgYWRkcmVzcywgbXhpZF0gb2YgbG9va3VwUmVzdWx0cy50aHJlZXBpZHMpIHtcbiAgICAgICAgICAgICAgICBpZiAobXhpZCAhPT0gdXNlcklkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyTWVkaXVtICYmIG1lZGl1bSAhPT0gZmlsdGVyTWVkaXVtKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0aHJlZXBpZCA9IHRocmVlcGlkcy5maW5kKChlKSA9PiBlLm1lZGl1bSA9PT0gbWVkaXVtICYmIGUuYWRkcmVzcyA9PT0gYWRkcmVzcyk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aHJlZXBpZCkgY29udGludWU7XG4gICAgICAgICAgICAgICAgdGhyZWVwaWQuYm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgdGVybXMgZXJyb3JzIGhlcmUgYW5kIGFzc3VtZSBvdGhlciBmbG93cyBoYW5kbGUgdGhpc1xuICAgICAgICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIE1hdHJpeEVycm9yKSB8fCBlLmVycmNvZGUgIT09IFwiTV9URVJNU19OT1RfU0lHTkVEXCIpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRocmVlcGlkcztcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFNTyxlQUFlRywwQkFBMEJBLENBQzVDQyxNQUFvQixFQUNwQkMsWUFBNkIsRUFDVDtFQUNwQixNQUFNQyxNQUFNLEdBQUdGLE1BQU0sQ0FBQ0csU0FBUyxDQUFDLENBQUM7RUFFakMsSUFBSTtJQUFFQztFQUFVLENBQUMsR0FBRyxNQUFNSixNQUFNLENBQUNLLFlBQVksQ0FBQyxDQUFDO0VBQy9DLElBQUlKLFlBQVksRUFBRTtJQUNkRyxTQUFTLEdBQUdBLFNBQVMsQ0FBQ0UsTUFBTSxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ0MsTUFBTSxLQUFLUCxZQUFZLENBQUM7RUFDbEU7O0VBRUE7RUFDQSxJQUFJRyxTQUFTLENBQUNLLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDVCxNQUFNLENBQUNVLG9CQUFvQixDQUFDLENBQUMsRUFBRTtJQUN6RCxJQUFJO01BQ0EsTUFBTUMsVUFBVSxHQUFHLElBQUlDLDJCQUFrQixDQUFDLENBQUM7TUFDM0MsTUFBTUMsbUJBQW1CLEdBQUcsTUFBTUYsVUFBVSxDQUFDRyxjQUFjLENBQUM7UUFBRUMsS0FBSyxFQUFFO01BQU0sQ0FBQyxDQUFDO01BQzdFLElBQUksQ0FBQ0YsbUJBQW1CLEVBQUU7UUFDdEIsTUFBTSxJQUFJRyxLQUFLLENBQUMsZ0NBQWdDLENBQUM7TUFDckQ7O01BRUE7TUFDQSxNQUFNQyxLQUFLLEdBQUdiLFNBQVMsQ0FBQ2MsR0FBRyxDQUFDLENBQUM7UUFBRVYsTUFBTTtRQUFFVztNQUFRLENBQUMsS0FBdUIsQ0FBQ1gsTUFBTSxFQUFFVyxPQUFPLENBQUMsQ0FBQztNQUN6RixNQUFNQyxhQUFhLEdBQUcsTUFBTXBCLE1BQU0sQ0FBQ3FCLG1CQUFtQixDQUFDSixLQUFLLEVBQUVKLG1CQUFtQixDQUFDOztNQUVsRjtNQUNBLEtBQUssTUFBTSxDQUFDTCxNQUFNLEVBQUVXLE9BQU8sRUFBRUcsSUFBSSxDQUFDLElBQUlGLGFBQWEsQ0FBQ2hCLFNBQVMsRUFBRTtRQUMzRCxJQUFJa0IsSUFBSSxLQUFLcEIsTUFBTSxFQUFFO1VBQ2pCO1FBQ0o7UUFDQSxJQUFJRCxZQUFZLElBQUlPLE1BQU0sS0FBS1AsWUFBWSxFQUFFO1VBQ3pDO1FBQ0o7UUFDQSxNQUFNc0IsUUFBUSxHQUFHbkIsU0FBUyxDQUFDb0IsSUFBSSxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ2pCLE1BQU0sS0FBS0EsTUFBTSxJQUFJaUIsQ0FBQyxDQUFDTixPQUFPLEtBQUtBLE9BQU8sQ0FBQztRQUNwRixJQUFJLENBQUNJLFFBQVEsRUFBRTtRQUNmQSxRQUFRLENBQUNHLEtBQUssR0FBRyxJQUFJO01BQ3pCO0lBQ0osQ0FBQyxDQUFDLE9BQU9ELENBQUMsRUFBRTtNQUNSO01BQ0EsSUFBSSxFQUFFQSxDQUFDLFlBQVlFLG1CQUFXLENBQUMsSUFBSUYsQ0FBQyxDQUFDRyxPQUFPLEtBQUssb0JBQW9CLEVBQUU7UUFDbkUsTUFBTUgsQ0FBQztNQUNYO0lBQ0o7RUFDSjtFQUVBLE9BQU9yQixTQUFTO0FBQ3BCIiwiaWdub3JlTGlzdCI6W119