matrix-react-sdk
Version:
SDK for matrix.org using React
64 lines (60 loc) • 7.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.PermalinkParts = void 0;
/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 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.
*/
/**
* Interface for classes that actually produce permalinks (strings).
* TODO: Convert this to a real TypeScript interface
*/
class PermalinkConstructor {
forEvent(roomId, eventId, serverCandidates = []) {
throw new Error("Not implemented");
}
forRoom(roomIdOrAlias, serverCandidates = []) {
throw new Error("Not implemented");
}
forUser(userId) {
throw new Error("Not implemented");
}
forEntity(entityId) {
throw new Error("Not implemented");
}
isPermalinkHost(host) {
throw new Error("Not implemented");
}
parsePermalink(fullUrl) {
throw new Error("Not implemented");
}
}
// Inspired by/Borrowed with permission from the matrix-bot-sdk:
// https://github.com/turt2live/matrix-js-bot-sdk/blob/7c4665c9a25c2c8e0fe4e509f2616505b5b66a1c/src/Permalinks.ts#L1-L6
exports.default = PermalinkConstructor;
class PermalinkParts {
constructor(roomIdOrAlias, eventId, userId, viaServers) {
this.roomIdOrAlias = roomIdOrAlias;
this.eventId = eventId;
this.userId = userId;
this.viaServers = viaServers;
}
static forUser(userId) {
return new PermalinkParts(null, null, userId, null);
}
static forRoom(roomIdOrAlias, viaServers = []) {
return new PermalinkParts(roomIdOrAlias, null, null, viaServers);
}
static forEvent(roomId, eventId, viaServers = []) {
return new PermalinkParts(roomId, eventId, null, viaServers);
}
get primaryEntityId() {
return this.roomIdOrAlias || this.userId;
}
}
exports.PermalinkParts = PermalinkParts;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQZXJtYWxpbmtDb25zdHJ1Y3RvciIsImZvckV2ZW50Iiwicm9vbUlkIiwiZXZlbnRJZCIsInNlcnZlckNhbmRpZGF0ZXMiLCJFcnJvciIsImZvclJvb20iLCJyb29tSWRPckFsaWFzIiwiZm9yVXNlciIsInVzZXJJZCIsImZvckVudGl0eSIsImVudGl0eUlkIiwiaXNQZXJtYWxpbmtIb3N0IiwiaG9zdCIsInBhcnNlUGVybWFsaW5rIiwiZnVsbFVybCIsImV4cG9ydHMiLCJkZWZhdWx0IiwiUGVybWFsaW5rUGFydHMiLCJjb25zdHJ1Y3RvciIsInZpYVNlcnZlcnMiLCJwcmltYXJ5RW50aXR5SWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvcGVybWFsaW5rcy9QZXJtYWxpbmtDb25zdHJ1Y3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBjbGFzc2VzIHRoYXQgYWN0dWFsbHkgcHJvZHVjZSBwZXJtYWxpbmtzIChzdHJpbmdzKS5cbiAqIFRPRE86IENvbnZlcnQgdGhpcyB0byBhIHJlYWwgVHlwZVNjcmlwdCBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGVybWFsaW5rQ29uc3RydWN0b3Ige1xuICAgIHB1YmxpYyBmb3JFdmVudChyb29tSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nLCBzZXJ2ZXJDYW5kaWRhdGVzOiBzdHJpbmdbXSA9IFtdKTogc3RyaW5nIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmb3JSb29tKHJvb21JZE9yQWxpYXM6IHN0cmluZywgc2VydmVyQ2FuZGlkYXRlczogc3RyaW5nW10gPSBbXSk6IHN0cmluZyB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9yVXNlcih1c2VySWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9yRW50aXR5KGVudGl0eUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb3QgaW1wbGVtZW50ZWRcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUGVybWFsaW5rSG9zdChob3N0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm90IGltcGxlbWVudGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXJzZVBlcm1hbGluayhmdWxsVXJsOiBzdHJpbmcpOiBQZXJtYWxpbmtQYXJ0cyB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgICB9XG59XG5cbi8vIEluc3BpcmVkIGJ5L0JvcnJvd2VkIHdpdGggcGVybWlzc2lvbiBmcm9tIHRoZSBtYXRyaXgtYm90LXNkazpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90dXJ0MmxpdmUvbWF0cml4LWpzLWJvdC1zZGsvYmxvYi83YzQ2NjVjOWEyNWMyYzhlMGZlNGU1MDlmMjYxNjUwNWI1YjY2YTFjL3NyYy9QZXJtYWxpbmtzLnRzI0wxLUw2XG5leHBvcnQgY2xhc3MgUGVybWFsaW5rUGFydHMge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHJvb21JZE9yQWxpYXM6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBldmVudElkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdXNlcklkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdmlhU2VydmVyczogc3RyaW5nW10gfCBudWxsLFxuICAgICkge31cblxuICAgIHB1YmxpYyBzdGF0aWMgZm9yVXNlcih1c2VySWQ6IHN0cmluZyk6IFBlcm1hbGlua1BhcnRzIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQZXJtYWxpbmtQYXJ0cyhudWxsLCBudWxsLCB1c2VySWQsIG51bGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vbShyb29tSWRPckFsaWFzOiBzdHJpbmcsIHZpYVNlcnZlcnM6IHN0cmluZ1tdID0gW10pOiBQZXJtYWxpbmtQYXJ0cyB7XG4gICAgICAgIHJldHVybiBuZXcgUGVybWFsaW5rUGFydHMocm9vbUlkT3JBbGlhcywgbnVsbCwgbnVsbCwgdmlhU2VydmVycyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmb3JFdmVudChyb29tSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nLCB2aWFTZXJ2ZXJzOiBzdHJpbmdbXSA9IFtdKTogUGVybWFsaW5rUGFydHMge1xuICAgICAgICByZXR1cm4gbmV3IFBlcm1hbGlua1BhcnRzKHJvb21JZCwgZXZlbnRJZCwgbnVsbCwgdmlhU2VydmVycyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcmltYXJ5RW50aXR5SWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvb21JZE9yQWxpYXMgfHwgdGhpcy51c2VySWQ7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNlLE1BQU1BLG9CQUFvQixDQUFDO0VBQy9CQyxRQUFRQSxDQUFDQyxNQUFjLEVBQUVDLE9BQWUsRUFBRUMsZ0JBQTBCLEdBQUcsRUFBRSxFQUFVO0lBQ3RGLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3RDO0VBRU9DLE9BQU9BLENBQUNDLGFBQXFCLEVBQUVILGdCQUEwQixHQUFHLEVBQUUsRUFBVTtJQUMzRSxNQUFNLElBQUlDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUN0QztFQUVPRyxPQUFPQSxDQUFDQyxNQUFjLEVBQVU7SUFDbkMsTUFBTSxJQUFJSixLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDdEM7RUFFT0ssU0FBU0EsQ0FBQ0MsUUFBZ0IsRUFBVTtJQUN2QyxNQUFNLElBQUlOLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUN0QztFQUVPTyxlQUFlQSxDQUFDQyxJQUFZLEVBQVc7SUFDMUMsTUFBTSxJQUFJUixLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDdEM7RUFFT1MsY0FBY0EsQ0FBQ0MsT0FBZSxFQUFrQjtJQUNuRCxNQUFNLElBQUlWLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUN0QztBQUNKOztBQUVBO0FBQ0E7QUFBQVcsT0FBQSxDQUFBQyxPQUFBLEdBQUFqQixvQkFBQTtBQUNPLE1BQU1rQixjQUFjLENBQUM7RUFDakJDLFdBQVdBLENBQ0VaLGFBQTRCLEVBQzVCSixPQUFzQixFQUN0Qk0sTUFBcUIsRUFDckJXLFVBQTJCLEVBQzdDO0lBQUEsS0FKa0JiLGFBQTRCLEdBQTVCQSxhQUE0QjtJQUFBLEtBQzVCSixPQUFzQixHQUF0QkEsT0FBc0I7SUFBQSxLQUN0Qk0sTUFBcUIsR0FBckJBLE1BQXFCO0lBQUEsS0FDckJXLFVBQTJCLEdBQTNCQSxVQUEyQjtFQUM1QztFQUVILE9BQWNaLE9BQU9BLENBQUNDLE1BQWMsRUFBa0I7SUFDbEQsT0FBTyxJQUFJUyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRVQsTUFBTSxFQUFFLElBQUksQ0FBQztFQUN2RDtFQUVBLE9BQWNILE9BQU9BLENBQUNDLGFBQXFCLEVBQUVhLFVBQW9CLEdBQUcsRUFBRSxFQUFrQjtJQUNwRixPQUFPLElBQUlGLGNBQWMsQ0FBQ1gsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUVhLFVBQVUsQ0FBQztFQUNwRTtFQUVBLE9BQWNuQixRQUFRQSxDQUFDQyxNQUFjLEVBQUVDLE9BQWUsRUFBRWlCLFVBQW9CLEdBQUcsRUFBRSxFQUFrQjtJQUMvRixPQUFPLElBQUlGLGNBQWMsQ0FBQ2hCLE1BQU0sRUFBRUMsT0FBTyxFQUFFLElBQUksRUFBRWlCLFVBQVUsQ0FBQztFQUNoRTtFQUVBLElBQVdDLGVBQWVBLENBQUEsRUFBa0I7SUFDeEMsT0FBTyxJQUFJLENBQUNkLGFBQWEsSUFBSSxJQUFJLENBQUNFLE1BQU07RUFDNUM7QUFDSjtBQUFDTyxPQUFBLENBQUFFLGNBQUEsR0FBQUEsY0FBQSIsImlnbm9yZUxpc3QiOltdfQ==