diff options
Diffstat (limited to 'includes/external/matrix/node_modules/matrix-js-sdk/src/feature.ts')
-rw-r--r-- | includes/external/matrix/node_modules/matrix-js-sdk/src/feature.ts | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/includes/external/matrix/node_modules/matrix-js-sdk/src/feature.ts b/includes/external/matrix/node_modules/matrix-js-sdk/src/feature.ts deleted file mode 100644 index 9141e81..0000000 --- a/includes/external/matrix/node_modules/matrix-js-sdk/src/feature.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* -Copyright 2022 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 { IServerVersions } from "./client"; - -export enum ServerSupport { - Stable, - Unstable, - Unsupported, -} - -export enum Feature { - Thread = "Thread", - ThreadUnreadNotifications = "ThreadUnreadNotifications", - LoginTokenRequest = "LoginTokenRequest", - RelationBasedRedactions = "RelationBasedRedactions", - AccountDataDeletion = "AccountDataDeletion", -} - -type FeatureSupportCondition = { - unstablePrefixes?: string[]; - matrixVersion?: string; -}; - -const featureSupportResolver: Record<string, FeatureSupportCondition> = { - [Feature.Thread]: { - unstablePrefixes: ["org.matrix.msc3440"], - matrixVersion: "v1.3", - }, - [Feature.ThreadUnreadNotifications]: { - unstablePrefixes: ["org.matrix.msc3771", "org.matrix.msc3773"], - matrixVersion: "v1.4", - }, - [Feature.LoginTokenRequest]: { - unstablePrefixes: ["org.matrix.msc3882"], - }, - [Feature.RelationBasedRedactions]: { - unstablePrefixes: ["org.matrix.msc3912"], - }, - [Feature.AccountDataDeletion]: { - unstablePrefixes: ["org.matrix.msc3391"], - }, -}; - -export async function buildFeatureSupportMap(versions: IServerVersions): Promise<Map<Feature, ServerSupport>> { - const supportMap = new Map<Feature, ServerSupport>(); - for (const [feature, supportCondition] of Object.entries(featureSupportResolver)) { - const supportMatrixVersion = versions.versions?.includes(supportCondition.matrixVersion || "") ?? false; - const supportUnstablePrefixes = - supportCondition.unstablePrefixes?.every((unstablePrefix) => { - return versions.unstable_features?.[unstablePrefix] === true; - }) ?? false; - if (supportMatrixVersion) { - supportMap.set(feature as Feature, ServerSupport.Stable); - } else if (supportUnstablePrefixes) { - supportMap.set(feature as Feature, ServerSupport.Unstable); - } else { - supportMap.set(feature as Feature, ServerSupport.Unsupported); - } - } - return supportMap; -} |