feat: complete Ancestor quote bot with production-ready Docker support
This commit is contained in:
93
node_modules/matrix-js-sdk/lib/store/memory.js
generated
vendored
93
node_modules/matrix-js-sdk/lib/store/memory.js
generated
vendored
@@ -1,4 +1,14 @@
|
||||
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.MemoryStore = void 0;
|
||||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
||||
var _user = require("../models/user");
|
||||
var _roomState = require("../models/room-state");
|
||||
var _utils = require("../utils");
|
||||
/*
|
||||
Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
|
||||
|
||||
@@ -19,52 +29,47 @@ limitations under the License.
|
||||
* This is an internal module. See {@link MemoryStore} for the public class.
|
||||
*/
|
||||
|
||||
import { RoomStateEvent } from "../models/room-state.js";
|
||||
import { MapWithDefault } from "../utils.js";
|
||||
import { KnownMembership } from "../@types/membership.js";
|
||||
function isValidFilterId(filterId) {
|
||||
const isValidStr = typeof filterId === "string" && !!filterId && filterId !== "undefined" &&
|
||||
// exclude these as we've serialized undefined in localStorage before
|
||||
filterId !== "null";
|
||||
return isValidStr || typeof filterId === "number";
|
||||
}
|
||||
export class MemoryStore {
|
||||
class MemoryStore {
|
||||
/**
|
||||
* Construct a new in-memory data store for the Matrix Client.
|
||||
* @param opts - Config options
|
||||
*/
|
||||
constructor(opts = {}) {
|
||||
_defineProperty(this, "rooms", {});
|
||||
(0, _defineProperty2.default)(this, "rooms", {});
|
||||
// roomId: Room
|
||||
_defineProperty(this, "users", {});
|
||||
(0, _defineProperty2.default)(this, "users", {});
|
||||
// userId: User
|
||||
_defineProperty(this, "syncToken", null);
|
||||
(0, _defineProperty2.default)(this, "syncToken", null);
|
||||
// userId: {
|
||||
// filterId: Filter
|
||||
// }
|
||||
_defineProperty(this, "filters", new MapWithDefault(() => new Map()));
|
||||
_defineProperty(this, "accountData", new Map());
|
||||
(0, _defineProperty2.default)(this, "filters", new _utils.MapWithDefault(() => new Map()));
|
||||
(0, _defineProperty2.default)(this, "accountData", new Map());
|
||||
// type: content
|
||||
_defineProperty(this, "localStorage", void 0);
|
||||
_defineProperty(this, "oobMembers", new Map());
|
||||
(0, _defineProperty2.default)(this, "localStorage", void 0);
|
||||
(0, _defineProperty2.default)(this, "oobMembers", new Map());
|
||||
// roomId: [member events]
|
||||
_defineProperty(this, "pendingEvents", {});
|
||||
_defineProperty(this, "clientOptions", void 0);
|
||||
_defineProperty(this, "pendingToDeviceBatches", []);
|
||||
_defineProperty(this, "nextToDeviceBatchId", 0);
|
||||
_defineProperty(this, "createUser", void 0);
|
||||
_defineProperty(this, "userProfiles", new Map());
|
||||
(0, _defineProperty2.default)(this, "pendingEvents", {});
|
||||
(0, _defineProperty2.default)(this, "clientOptions", void 0);
|
||||
(0, _defineProperty2.default)(this, "pendingToDeviceBatches", []);
|
||||
(0, _defineProperty2.default)(this, "nextToDeviceBatchId", 0);
|
||||
/**
|
||||
* Called when a room member in a room being tracked by this store has been
|
||||
* updated.
|
||||
*/
|
||||
_defineProperty(this, "onRoomMember", (event, state, member) => {
|
||||
if (member.membership === KnownMembership.Invite) {
|
||||
(0, _defineProperty2.default)(this, "onRoomMember", (event, state, member) => {
|
||||
if (member.membership === "invite") {
|
||||
// We do NOT add invited members because people love to typo user IDs
|
||||
// which would then show up in these lists (!)
|
||||
return;
|
||||
}
|
||||
const user = this.users[member.userId] || this.createUser?.(member.userId);
|
||||
const user = this.users[member.userId] || new _user.User(member.userId);
|
||||
if (member.name) {
|
||||
user.setDisplayName(member.name);
|
||||
if (member.events.member) {
|
||||
@@ -108,15 +113,12 @@ export class MemoryStore {
|
||||
this.rooms[room.roomId] = room;
|
||||
// add listeners for room member changes so we can keep the room member
|
||||
// map up-to-date.
|
||||
room.currentState.on(RoomStateEvent.Members, this.onRoomMember);
|
||||
room.currentState.on(_roomState.RoomStateEvent.Members, this.onRoomMember);
|
||||
// add existing members
|
||||
room.currentState.getMembers().forEach(m => {
|
||||
this.onRoomMember(null, room.currentState, m);
|
||||
});
|
||||
}
|
||||
setUserCreator(creator) {
|
||||
this.createUser = creator;
|
||||
}
|
||||
/**
|
||||
* Retrieve a room by its' room ID.
|
||||
* @param roomId - The room ID.
|
||||
@@ -139,7 +141,7 @@ export class MemoryStore {
|
||||
*/
|
||||
removeRoom(roomId) {
|
||||
if (this.rooms[roomId]) {
|
||||
this.rooms[roomId].currentState.removeListener(RoomStateEvent.Members, this.onRoomMember);
|
||||
this.rooms[roomId].currentState.removeListener(_roomState.RoomStateEvent.Members, this.onRoomMember);
|
||||
}
|
||||
delete this.rooms[roomId];
|
||||
}
|
||||
@@ -205,7 +207,7 @@ export class MemoryStore {
|
||||
* Store a filter.
|
||||
*/
|
||||
storeFilter(filter) {
|
||||
if (!filter?.userId || !filter?.filterId) return;
|
||||
if (!(filter !== null && filter !== void 0 && filter.userId) || !(filter !== null && filter !== void 0 && filter.filterId)) return;
|
||||
this.filters.getOrCreate(filter.userId).set(filter.filterId, filter);
|
||||
}
|
||||
|
||||
@@ -214,7 +216,8 @@ export class MemoryStore {
|
||||
* @returns A filter or null.
|
||||
*/
|
||||
getFilter(userId, filterId) {
|
||||
return this.filters.get(userId)?.get(filterId) || null;
|
||||
var _this$filters$get;
|
||||
return ((_this$filters$get = this.filters.get(userId)) === null || _this$filters$get === void 0 ? void 0 : _this$filters$get.get(filterId)) || null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -237,9 +240,7 @@ export class MemoryStore {
|
||||
if (isValidFilterId(value)) {
|
||||
return value;
|
||||
}
|
||||
} catch {
|
||||
// Do nothing
|
||||
}
|
||||
} catch (e) {}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -257,9 +258,7 @@ export class MemoryStore {
|
||||
} else {
|
||||
this.localStorage.removeItem(key);
|
||||
}
|
||||
} catch {
|
||||
// Do nothing
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -270,7 +269,13 @@ export class MemoryStore {
|
||||
*/
|
||||
storeAccountDataEvents(events) {
|
||||
events.forEach(event => {
|
||||
this.accountData.set(event.getType(), event);
|
||||
// MSC3391: an event with content of {} should be interpreted as deleted
|
||||
const isDeleted = !Object.keys(event.getContent()).length;
|
||||
if (isDeleted) {
|
||||
this.accountData.delete(event.getType());
|
||||
} else {
|
||||
this.accountData.set(event.getType(), event);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -348,7 +353,7 @@ export class MemoryStore {
|
||||
// userId: User
|
||||
};
|
||||
this.syncToken = null;
|
||||
this.filters = new MapWithDefault(() => new Map());
|
||||
this.filters = new _utils.MapWithDefault(() => new Map());
|
||||
this.accountData = new Map(); // type : content
|
||||
return Promise.resolve();
|
||||
}
|
||||
@@ -386,7 +391,8 @@ export class MemoryStore {
|
||||
return Promise.resolve();
|
||||
}
|
||||
async getPendingEvents(roomId) {
|
||||
return this.pendingEvents[roomId] ?? [];
|
||||
var _this$pendingEvents$r;
|
||||
return (_this$pendingEvents$r = this.pendingEvents[roomId]) !== null && _this$pendingEvents$r !== void 0 ? _this$pendingEvents$r : [];
|
||||
}
|
||||
async setPendingEvents(roomId, events) {
|
||||
this.pendingEvents[roomId] = events;
|
||||
@@ -410,20 +416,9 @@ export class MemoryStore {
|
||||
this.pendingToDeviceBatches = this.pendingToDeviceBatches.filter(batch => batch.id !== id);
|
||||
return Promise.resolve();
|
||||
}
|
||||
async getUserProfile(userId) {
|
||||
return this.userProfiles.get(userId);
|
||||
}
|
||||
async storeUserProfiles(userProfiles) {
|
||||
userProfiles.forEach((profile, userId) => this.userProfiles.set(userId, profile));
|
||||
}
|
||||
async removeUserProfiles(userIds) {
|
||||
userIds.forEach(userId => this.userProfiles.delete(userId));
|
||||
}
|
||||
async removeEventsFromRoom(roomId, eventIds) {
|
||||
// Can ignore as there is no backing store.
|
||||
}
|
||||
async destroy() {
|
||||
// Nothing to do
|
||||
}
|
||||
}
|
||||
exports.MemoryStore = MemoryStore;
|
||||
//# sourceMappingURL=memory.js.map
|
||||
Reference in New Issue
Block a user