summaryrefslogtreecommitdiff
path: root/includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-24 14:03:36 +0200
committerRaindropsSys <contact@minteck.org>2023-04-24 14:03:36 +0200
commit633c92eae865e957121e08de634aeee11a8b3992 (patch)
tree09d881bee1dae0b6eee49db1dfaf0f500240606c /includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts
parentc4657e4509733699c0f26a3c900bab47e915d5a0 (diff)
downloadpluralconnect-633c92eae865e957121e08de634aeee11a8b3992.tar.gz
pluralconnect-633c92eae865e957121e08de634aeee11a8b3992.tar.bz2
pluralconnect-633c92eae865e957121e08de634aeee11a8b3992.zip
Updated 18 files, added 1692 files and deleted includes/system/compare.inc (automated)
Diffstat (limited to 'includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts')
-rw-r--r--includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts71
1 files changed, 71 insertions, 0 deletions
diff --git a/includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts b/includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts
new file mode 100644
index 0000000..1572105
--- /dev/null
+++ b/includes/external/matrix/node_modules/matrix-widget-api/src/interfaces/Capabilities.ts
@@ -0,0 +1,71 @@
+/*
+ * 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.
+ */
+
+import { Symbols } from "../Symbols";
+
+export enum MatrixCapabilities {
+ Screenshots = "m.capability.screenshot",
+ StickerSending = "m.sticker",
+ AlwaysOnScreen = "m.always_on_screen",
+ /**
+ * @deprecated It is not recommended to rely on this existing - it can be removed without notice.
+ * Ask Element to not give the option to move the widget into a separate tab.
+ */
+ RequiresClient = "io.element.requires_client",
+ /**
+ * @deprecated It is not recommended to rely on this existing - it can be removed without notice.
+ */
+ MSC2931Navigate = "org.matrix.msc2931.navigate",
+ MSC3846TurnServers = "town.robin.msc3846.turn_servers",
+ /**
+ * @deprecated It is not recommended to rely on this existing - it can be removed without notice.
+ */
+ MSC3973UserDirectorySearch = "org.matrix.msc3973.user_directory_search",
+}
+
+export type Capability = MatrixCapabilities | string;
+
+export const StickerpickerCapabilities: Capability[] = [MatrixCapabilities.StickerSending];
+export const VideoConferenceCapabilities: Capability[] = [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.
+ */
+export function isTimelineCapability(capability: Capability): boolean {
+ // TODO: Change when MSC2762 becomes stable.
+ return 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.
+ */
+export function isTimelineCapabilityFor(capability: Capability, roomId: string | Symbols.AnyRoom): boolean {
+ return capability === `org.matrix.msc2762.timeline:${roomId}`;
+}
+
+/**
+ * Gets the room ID described by a timeline capability.
+ * @param {string} capability The capability to parse.
+ * @returns {string} The room ID.
+ */
+export function getTimelineRoomIDFromCapability(capability: Capability): string {
+ return capability.substring(capability.indexOf(":") + 1);
+}