summaryrefslogtreecommitdiffstats
path: root/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js
diff options
context:
space:
mode:
Diffstat (limited to 'comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js')
-rw-r--r--comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js b/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js
new file mode 100644
index 0000000000..ce695ffcc7
--- /dev/null
+++ b/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js
@@ -0,0 +1,69 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.VideoConferenceCapabilities = exports.StickerpickerCapabilities = exports.MatrixCapabilities = void 0;
+exports.getTimelineRoomIDFromCapability = getTimelineRoomIDFromCapability;
+exports.isTimelineCapability = isTimelineCapability;
+exports.isTimelineCapabilityFor = isTimelineCapabilityFor;
+/*
+ * Copyright 2020 - 2021 The Matrix.org Foundation C.I.C.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+var MatrixCapabilities = /*#__PURE__*/function (MatrixCapabilities) {
+ MatrixCapabilities["Screenshots"] = "m.capability.screenshot";
+ MatrixCapabilities["StickerSending"] = "m.sticker";
+ MatrixCapabilities["AlwaysOnScreen"] = "m.always_on_screen";
+ MatrixCapabilities["RequiresClient"] = "io.element.requires_client";
+ MatrixCapabilities["MSC2931Navigate"] = "org.matrix.msc2931.navigate";
+ MatrixCapabilities["MSC3846TurnServers"] = "town.robin.msc3846.turn_servers";
+ MatrixCapabilities["MSC3973UserDirectorySearch"] = "org.matrix.msc3973.user_directory_search";
+ return MatrixCapabilities;
+}({});
+exports.MatrixCapabilities = MatrixCapabilities;
+var StickerpickerCapabilities = [MatrixCapabilities.StickerSending];
+exports.StickerpickerCapabilities = StickerpickerCapabilities;
+var VideoConferenceCapabilities = [MatrixCapabilities.AlwaysOnScreen];
+
+/**
+ * Determines if a capability is a capability for a timeline.
+ * @param {Capability} capability The capability to test.
+ * @returns {boolean} True if a timeline capability, false otherwise.
+ */
+exports.VideoConferenceCapabilities = VideoConferenceCapabilities;
+function isTimelineCapability(capability) {
+ // TODO: Change when MSC2762 becomes stable.
+ return capability === null || capability === void 0 ? void 0 : capability.startsWith("org.matrix.msc2762.timeline:");
+}
+
+/**
+ * Determines if a capability is a timeline capability for the given room.
+ * @param {Capability} capability The capability to test.
+ * @param {string | Symbols.AnyRoom} roomId The room ID, or `Symbols.AnyRoom` for that designation.
+ * @returns {boolean} True if a matching capability, false otherwise.
+ */
+function isTimelineCapabilityFor(capability, roomId) {
+ return capability === "org.matrix.msc2762.timeline:".concat(roomId);
+}
+
+/**
+ * Gets the room ID described by a timeline capability.
+ * @param {string} capability The capability to parse.
+ * @returns {string} The room ID.
+ */
+function getTimelineRoomIDFromCapability(capability) {
+ return capability.substring(capability.indexOf(":") + 1);
+}
+//# sourceMappingURL=Capabilities.js.map \ No newline at end of file