UNPKG

matrix-react-sdk

Version:
60 lines (55 loc) 5.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.PreferredRoomVersions = void 0; exports.doesRoomVersionSupport = doesRoomVersionSupport; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); /* Copyright 2024 New Vector Ltd. Copyright 2022 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. */ /** * The preferred room versions for various features within the app. The * room versions here are selected based on the client's support for the * possible room versions in combination with server support in the * ecosystem. * * Loosely follows https://spec.matrix.org/latest/rooms/#feature-matrix */ class PreferredRoomVersions { constructor() { // readonly, static, class } } /** * Determines if a room version supports the given feature using heuristics * for how Matrix works. * @param roomVer The room version to check support within. * @param featureVer The room version of the feature. Should be from PreferredRoomVersions. * @see PreferredRoomVersions */ exports.PreferredRoomVersions = PreferredRoomVersions; /** * The room version to use when creating "knock" rooms. */ (0, _defineProperty2.default)(PreferredRoomVersions, "KnockRooms", "7"); /** * The room version to use when creating "restricted" rooms. */ (0, _defineProperty2.default)(PreferredRoomVersions, "RestrictedRooms", "9"); function doesRoomVersionSupport(roomVer, featureVer) { // Assumption: all unstable room versions don't support the feature. Calling code can check for unstable // room versions explicitly if it wants to. The spec reserves [0-9] and `.` for its room versions. if (!roomVer.match(/[\d.]+/)) { return false; } // Dev note: While the spec says room versions are not linear, we can make reasonable assumptions // until the room versions prove themselves to be non-linear in the spec. We should see this coming // from a mile away and can course-correct this function if needed. return Number(roomVer) >= Number(featureVer); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcmVmZXJyZWRSb29tVmVyc2lvbnMiLCJjb25zdHJ1Y3RvciIsImV4cG9ydHMiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImRvZXNSb29tVmVyc2lvblN1cHBvcnQiLCJyb29tVmVyIiwiZmVhdHVyZVZlciIsIm1hdGNoIiwiTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL1ByZWZlcnJlZFJvb21WZXJzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKipcbiAqIFRoZSBwcmVmZXJyZWQgcm9vbSB2ZXJzaW9ucyBmb3IgdmFyaW91cyBmZWF0dXJlcyB3aXRoaW4gdGhlIGFwcC4gVGhlXG4gKiByb29tIHZlcnNpb25zIGhlcmUgYXJlIHNlbGVjdGVkIGJhc2VkIG9uIHRoZSBjbGllbnQncyBzdXBwb3J0IGZvciB0aGVcbiAqIHBvc3NpYmxlIHJvb20gdmVyc2lvbnMgaW4gY29tYmluYXRpb24gd2l0aCBzZXJ2ZXIgc3VwcG9ydCBpbiB0aGVcbiAqIGVjb3N5c3RlbS5cbiAqXG4gKiBMb29zZWx5IGZvbGxvd3MgaHR0cHM6Ly9zcGVjLm1hdHJpeC5vcmcvbGF0ZXN0L3Jvb21zLyNmZWF0dXJlLW1hdHJpeFxuICovXG5leHBvcnQgY2xhc3MgUHJlZmVycmVkUm9vbVZlcnNpb25zIHtcbiAgICAvKipcbiAgICAgKiBUaGUgcm9vbSB2ZXJzaW9uIHRvIHVzZSB3aGVuIGNyZWF0aW5nIFwia25vY2tcIiByb29tcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEtub2NrUm9vbXMgPSBcIjdcIjtcblxuICAgIC8qKlxuICAgICAqIFRoZSByb29tIHZlcnNpb24gdG8gdXNlIHdoZW4gY3JlYXRpbmcgXCJyZXN0cmljdGVkXCIgcm9vbXMuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSZXN0cmljdGVkUm9vbXMgPSBcIjlcIjtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vIHJlYWRvbmx5LCBzdGF0aWMsIGNsYXNzXG4gICAgfVxufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSByb29tIHZlcnNpb24gc3VwcG9ydHMgdGhlIGdpdmVuIGZlYXR1cmUgdXNpbmcgaGV1cmlzdGljc1xuICogZm9yIGhvdyBNYXRyaXggd29ya3MuXG4gKiBAcGFyYW0gcm9vbVZlciBUaGUgcm9vbSB2ZXJzaW9uIHRvIGNoZWNrIHN1cHBvcnQgd2l0aGluLlxuICogQHBhcmFtIGZlYXR1cmVWZXIgVGhlIHJvb20gdmVyc2lvbiBvZiB0aGUgZmVhdHVyZS4gU2hvdWxkIGJlIGZyb20gUHJlZmVycmVkUm9vbVZlcnNpb25zLlxuICogQHNlZSBQcmVmZXJyZWRSb29tVmVyc2lvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvZXNSb29tVmVyc2lvblN1cHBvcnQocm9vbVZlcjogc3RyaW5nLCBmZWF0dXJlVmVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAvLyBBc3N1bXB0aW9uOiBhbGwgdW5zdGFibGUgcm9vbSB2ZXJzaW9ucyBkb24ndCBzdXBwb3J0IHRoZSBmZWF0dXJlLiBDYWxsaW5nIGNvZGUgY2FuIGNoZWNrIGZvciB1bnN0YWJsZVxuICAgIC8vIHJvb20gdmVyc2lvbnMgZXhwbGljaXRseSBpZiBpdCB3YW50cyB0by4gVGhlIHNwZWMgcmVzZXJ2ZXMgWzAtOV0gYW5kIGAuYCBmb3IgaXRzIHJvb20gdmVyc2lvbnMuXG4gICAgaWYgKCFyb29tVmVyLm1hdGNoKC9bXFxkLl0rLykpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIERldiBub3RlOiBXaGlsZSB0aGUgc3BlYyBzYXlzIHJvb20gdmVyc2lvbnMgYXJlIG5vdCBsaW5lYXIsIHdlIGNhbiBtYWtlIHJlYXNvbmFibGUgYXNzdW1wdGlvbnNcbiAgICAvLyB1bnRpbCB0aGUgcm9vbSB2ZXJzaW9ucyBwcm92ZSB0aGVtc2VsdmVzIHRvIGJlIG5vbi1saW5lYXIgaW4gdGhlIHNwZWMuIFdlIHNob3VsZCBzZWUgdGhpcyBjb21pbmdcbiAgICAvLyBmcm9tIGEgbWlsZSBhd2F5IGFuZCBjYW4gY291cnNlLWNvcnJlY3QgdGhpcyBmdW5jdGlvbiBpZiBuZWVkZWQuXG4gICAgcmV0dXJuIE51bWJlcihyb29tVmVyKSA+PSBOdW1iZXIoZmVhdHVyZVZlcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQSxxQkFBcUIsQ0FBQztFQVd2QkMsV0FBV0EsQ0FBQSxFQUFHO0lBQ2xCO0VBQUE7QUFFUjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BQyxPQUFBLENBQUFGLHFCQUFBLEdBQUFBLHFCQUFBO0FBZkk7QUFDSjtBQUNBO0FBRkksSUFBQUcsZ0JBQUEsQ0FBQUMsT0FBQSxFQURTSixxQkFBcUIsZ0JBSU0sR0FBRztBQUV2QztBQUNKO0FBQ0E7QUFGSSxJQUFBRyxnQkFBQSxDQUFBQyxPQUFBLEVBTlNKLHFCQUFxQixxQkFTVyxHQUFHO0FBY3pDLFNBQVNLLHNCQUFzQkEsQ0FBQ0MsT0FBZSxFQUFFQyxVQUFrQixFQUFXO0VBQ2pGO0VBQ0E7RUFDQSxJQUFJLENBQUNELE9BQU8sQ0FBQ0UsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0lBQzFCLE9BQU8sS0FBSztFQUNoQjs7RUFFQTtFQUNBO0VBQ0E7RUFDQSxPQUFPQyxNQUFNLENBQUNILE9BQU8sQ0FBQyxJQUFJRyxNQUFNLENBQUNGLFVBQVUsQ0FBQztBQUNoRCIsImlnbm9yZUxpc3QiOltdfQ==