UNPKG

matrix-react-sdk

Version:
58 lines (53 loc) 5.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDeviceCryptoInfo = getDeviceCryptoInfo; exports.getUserDeviceIds = getUserDeviceIds; /* 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. */ /** * Get crypto information on a specific device. * * Only devices with Crypto support are returned. If the MatrixClient doesn't support cryptography, `undefined` is * returned. * * @param client - Matrix Client. * @param userId - ID of the user owning the device. * @param deviceId - ID of the device. * @param downloadUncached - If true, download the device list for users whose device list we are not * currently tracking. Defaults to false. * * @returns Information on the device if it is known. */ async function getDeviceCryptoInfo(client, userId, deviceId, downloadUncached) { const crypto = client.getCrypto(); if (!crypto) { // no crypto support, no device. return undefined; } const deviceMap = await crypto.getUserDeviceInfo([userId], downloadUncached); return deviceMap.get(userId)?.get(deviceId); } /** * Get the IDs of the given user's devices. * * Only devices with Crypto support are returned. If the MatrixClient doesn't support cryptography, an empty Set is * returned. * * @param client - Matrix Client. * @param userId - ID of the user to query. */ async function getUserDeviceIds(client, userId) { const crypto = client.getCrypto(); if (!crypto) { return new Set(); } const deviceMap = await crypto.getUserDeviceInfo([userId]); return new Set(deviceMap.get(userId)?.keys() ?? []); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXREZXZpY2VDcnlwdG9JbmZvIiwiY2xpZW50IiwidXNlcklkIiwiZGV2aWNlSWQiLCJkb3dubG9hZFVuY2FjaGVkIiwiY3J5cHRvIiwiZ2V0Q3J5cHRvIiwidW5kZWZpbmVkIiwiZGV2aWNlTWFwIiwiZ2V0VXNlckRldmljZUluZm8iLCJnZXQiLCJnZXRVc2VyRGV2aWNlSWRzIiwiU2V0Iiwia2V5cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9jcnlwdG8vZGV2aWNlSW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBEZXZpY2UsIE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuLyoqXG4gKiBHZXQgY3J5cHRvIGluZm9ybWF0aW9uIG9uIGEgc3BlY2lmaWMgZGV2aWNlLlxuICpcbiAqIE9ubHkgZGV2aWNlcyB3aXRoIENyeXB0byBzdXBwb3J0IGFyZSByZXR1cm5lZC4gSWYgdGhlIE1hdHJpeENsaWVudCBkb2Vzbid0IHN1cHBvcnQgY3J5cHRvZ3JhcGh5LCBgdW5kZWZpbmVkYCBpc1xuICogcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIGNsaWVudCAgLSBNYXRyaXggQ2xpZW50LlxuICogQHBhcmFtIHVzZXJJZCAgLSBJRCBvZiB0aGUgdXNlciBvd25pbmcgdGhlIGRldmljZS5cbiAqIEBwYXJhbSBkZXZpY2VJZCAtIElEIG9mIHRoZSBkZXZpY2UuXG4gKiBAcGFyYW0gZG93bmxvYWRVbmNhY2hlZCAtIElmIHRydWUsIGRvd25sb2FkIHRoZSBkZXZpY2UgbGlzdCBmb3IgdXNlcnMgd2hvc2UgZGV2aWNlIGxpc3Qgd2UgYXJlIG5vdFxuICogICAgY3VycmVudGx5IHRyYWNraW5nLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAqXG4gKiBAcmV0dXJucyBJbmZvcm1hdGlvbiBvbiB0aGUgZGV2aWNlIGlmIGl0IGlzIGtub3duLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGV2aWNlQ3J5cHRvSW5mbyhcbiAgICBjbGllbnQ6IE1hdHJpeENsaWVudCxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBkZXZpY2VJZDogc3RyaW5nLFxuICAgIGRvd25sb2FkVW5jYWNoZWQ/OiBib29sZWFuLFxuKTogUHJvbWlzZTxEZXZpY2UgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBjcnlwdG8gPSBjbGllbnQuZ2V0Q3J5cHRvKCk7XG4gICAgaWYgKCFjcnlwdG8pIHtcbiAgICAgICAgLy8gbm8gY3J5cHRvIHN1cHBvcnQsIG5vIGRldmljZS5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBkZXZpY2VNYXAgPSBhd2FpdCBjcnlwdG8uZ2V0VXNlckRldmljZUluZm8oW3VzZXJJZF0sIGRvd25sb2FkVW5jYWNoZWQpO1xuICAgIHJldHVybiBkZXZpY2VNYXAuZ2V0KHVzZXJJZCk/LmdldChkZXZpY2VJZCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBJRHMgb2YgdGhlIGdpdmVuIHVzZXIncyBkZXZpY2VzLlxuICpcbiAqIE9ubHkgZGV2aWNlcyB3aXRoIENyeXB0byBzdXBwb3J0IGFyZSByZXR1cm5lZC4gSWYgdGhlIE1hdHJpeENsaWVudCBkb2Vzbid0IHN1cHBvcnQgY3J5cHRvZ3JhcGh5LCBhbiBlbXB0eSBTZXQgaXNcbiAqIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSBjbGllbnQgIC0gTWF0cml4IENsaWVudC5cbiAqIEBwYXJhbSB1c2VySWQgIC0gSUQgb2YgdGhlIHVzZXIgdG8gcXVlcnkuXG4gKi9cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFVzZXJEZXZpY2VJZHMoY2xpZW50OiBNYXRyaXhDbGllbnQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxTZXQ8c3RyaW5nPj4ge1xuICAgIGNvbnN0IGNyeXB0byA9IGNsaWVudC5nZXRDcnlwdG8oKTtcbiAgICBpZiAoIWNyeXB0bykge1xuICAgICAgICByZXR1cm4gbmV3IFNldCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGRldmljZU1hcCA9IGF3YWl0IGNyeXB0by5nZXRVc2VyRGV2aWNlSW5mbyhbdXNlcklkXSk7XG4gICAgcmV0dXJuIG5ldyBTZXQoZGV2aWNlTWFwLmdldCh1c2VySWQpPy5rZXlzKCkgPz8gW10pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGVBQWVBLG1CQUFtQkEsQ0FDckNDLE1BQW9CLEVBQ3BCQyxNQUFjLEVBQ2RDLFFBQWdCLEVBQ2hCQyxnQkFBMEIsRUFDQztFQUMzQixNQUFNQyxNQUFNLEdBQUdKLE1BQU0sQ0FBQ0ssU0FBUyxDQUFDLENBQUM7RUFDakMsSUFBSSxDQUFDRCxNQUFNLEVBQUU7SUFDVDtJQUNBLE9BQU9FLFNBQVM7RUFDcEI7RUFFQSxNQUFNQyxTQUFTLEdBQUcsTUFBTUgsTUFBTSxDQUFDSSxpQkFBaUIsQ0FBQyxDQUFDUCxNQUFNLENBQUMsRUFBRUUsZ0JBQWdCLENBQUM7RUFDNUUsT0FBT0ksU0FBUyxDQUFDRSxHQUFHLENBQUNSLE1BQU0sQ0FBQyxFQUFFUSxHQUFHLENBQUNQLFFBQVEsQ0FBQztBQUMvQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sZUFBZVEsZ0JBQWdCQSxDQUFDVixNQUFvQixFQUFFQyxNQUFjLEVBQXdCO0VBQy9GLE1BQU1HLE1BQU0sR0FBR0osTUFBTSxDQUFDSyxTQUFTLENBQUMsQ0FBQztFQUNqQyxJQUFJLENBQUNELE1BQU0sRUFBRTtJQUNULE9BQU8sSUFBSU8sR0FBRyxDQUFDLENBQUM7RUFDcEI7RUFFQSxNQUFNSixTQUFTLEdBQUcsTUFBTUgsTUFBTSxDQUFDSSxpQkFBaUIsQ0FBQyxDQUFDUCxNQUFNLENBQUMsQ0FBQztFQUMxRCxPQUFPLElBQUlVLEdBQUcsQ0FBQ0osU0FBUyxDQUFDRSxHQUFHLENBQUNSLE1BQU0sQ0FBQyxFQUFFVyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN2RCIsImlnbm9yZUxpc3QiOltdfQ==