feat: complete Ancestor quote bot with production-ready Docker support
This commit is contained in:
131
node_modules/matrix-js-sdk/lib/models/event-timeline.js
generated
vendored
131
node_modules/matrix-js-sdk/lib/models/event-timeline.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.EventTimeline = exports.Direction = void 0;
|
||||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
||||
var _logger = require("../logger");
|
||||
var _roomState2 = require("./room-state");
|
||||
var _event = require("../@types/event");
|
||||
/*
|
||||
Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
|
||||
|
||||
@@ -14,15 +24,13 @@ 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 { RoomState } from "./room-state.js";
|
||||
import { EventType } from "../@types/event.js";
|
||||
export let Direction = /*#__PURE__*/function (Direction) {
|
||||
let Direction = /*#__PURE__*/function (Direction) {
|
||||
Direction["Backward"] = "b";
|
||||
Direction["Forward"] = "f";
|
||||
return Direction;
|
||||
}({});
|
||||
export class EventTimeline {
|
||||
exports.Direction = Direction;
|
||||
class EventTimeline {
|
||||
/**
|
||||
* Static helper method to set sender and target properties
|
||||
*
|
||||
@@ -31,7 +39,27 @@ export class EventTimeline {
|
||||
* @param toStartOfTimeline - if true the event's forwardLooking flag is set false
|
||||
*/
|
||||
static setEventMetadata(event, stateContext, toStartOfTimeline) {
|
||||
event.setMetadata(stateContext, toStartOfTimeline);
|
||||
var _event$sender, _event$target;
|
||||
// When we try to generate a sentinel member before we have that member
|
||||
// in the members object, we still generate a sentinel but it doesn't
|
||||
// have a membership event, so test to see if events.member is set. We
|
||||
// check this to avoid overriding non-sentinel members by sentinel ones
|
||||
// when adding the event to a filtered timeline
|
||||
if (!((_event$sender = event.sender) !== null && _event$sender !== void 0 && (_event$sender = _event$sender.events) !== null && _event$sender !== void 0 && _event$sender.member)) {
|
||||
event.sender = stateContext.getSentinelMember(event.getSender());
|
||||
}
|
||||
if (!((_event$target = event.target) !== null && _event$target !== void 0 && (_event$target = _event$target.events) !== null && _event$target !== void 0 && _event$target.member) && event.getType() === _event.EventType.RoomMember) {
|
||||
event.target = stateContext.getSentinelMember(event.getStateKey());
|
||||
}
|
||||
if (event.isState()) {
|
||||
// room state has no concept of 'old' or 'current', but we want the
|
||||
// room state to regress back to previous values if toStartOfTimeline
|
||||
// is set, which means inspecting prev_content if it exists. This
|
||||
// is done by toggling the forwardLooking flag.
|
||||
if (toStartOfTimeline) {
|
||||
event.forwardLooking = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Construct a new EventTimeline
|
||||
@@ -53,27 +81,28 @@ export class EventTimeline {
|
||||
* @param eventTimelineSet - the set of timelines this is part of
|
||||
*/
|
||||
constructor(eventTimelineSet) {
|
||||
_defineProperty(this, "roomId", void 0);
|
||||
_defineProperty(this, "name", void 0);
|
||||
_defineProperty(this, "events", []);
|
||||
_defineProperty(this, "baseIndex", 0);
|
||||
_defineProperty(this, "startState", void 0);
|
||||
_defineProperty(this, "endState", void 0);
|
||||
var _eventTimelineSet$roo, _eventTimelineSet$roo2;
|
||||
this.eventTimelineSet = eventTimelineSet;
|
||||
(0, _defineProperty2.default)(this, "roomId", void 0);
|
||||
(0, _defineProperty2.default)(this, "name", void 0);
|
||||
(0, _defineProperty2.default)(this, "events", []);
|
||||
(0, _defineProperty2.default)(this, "baseIndex", 0);
|
||||
(0, _defineProperty2.default)(this, "startState", void 0);
|
||||
(0, _defineProperty2.default)(this, "endState", void 0);
|
||||
// If we have a roomId then we delegate pagination token storage to the room state objects `startState` and
|
||||
// `endState`, but for things like the notification timeline which mix multiple rooms we store the tokens ourselves.
|
||||
_defineProperty(this, "startToken", null);
|
||||
_defineProperty(this, "endToken", null);
|
||||
_defineProperty(this, "prevTimeline", null);
|
||||
_defineProperty(this, "nextTimeline", null);
|
||||
_defineProperty(this, "paginationRequests", {
|
||||
(0, _defineProperty2.default)(this, "startToken", null);
|
||||
(0, _defineProperty2.default)(this, "endToken", null);
|
||||
(0, _defineProperty2.default)(this, "prevTimeline", null);
|
||||
(0, _defineProperty2.default)(this, "nextTimeline", null);
|
||||
(0, _defineProperty2.default)(this, "paginationRequests", {
|
||||
[Direction.Backward]: null,
|
||||
[Direction.Forward]: null
|
||||
});
|
||||
this.eventTimelineSet = eventTimelineSet;
|
||||
this.roomId = eventTimelineSet.room?.roomId ?? null;
|
||||
this.roomId = (_eventTimelineSet$roo = (_eventTimelineSet$roo2 = eventTimelineSet.room) === null || _eventTimelineSet$roo2 === void 0 ? void 0 : _eventTimelineSet$roo2.roomId) !== null && _eventTimelineSet$roo !== void 0 ? _eventTimelineSet$roo : null;
|
||||
if (this.roomId) {
|
||||
this.startState = new RoomState(this.roomId);
|
||||
this.endState = new RoomState(this.roomId);
|
||||
this.startState = new _roomState2.RoomState(this.roomId);
|
||||
this.endState = new _roomState2.RoomState(this.roomId);
|
||||
}
|
||||
|
||||
// this is used by client.js
|
||||
@@ -96,13 +125,14 @@ export class EventTimeline {
|
||||
initialiseState(stateEvents, {
|
||||
timelineWasEmpty
|
||||
} = {}) {
|
||||
var _this$startState, _this$endState;
|
||||
if (this.events.length > 0) {
|
||||
throw new Error("Cannot initialise state after events are added");
|
||||
}
|
||||
this.startState?.setStateEvents(stateEvents, {
|
||||
(_this$startState = this.startState) === null || _this$startState === void 0 ? void 0 : _this$startState.setStateEvents(stateEvents, {
|
||||
timelineWasEmpty
|
||||
});
|
||||
this.endState?.setStateEvents(stateEvents, {
|
||||
(_this$endState = this.endState) === null || _this$endState === void 0 ? void 0 : _this$endState.setStateEvents(stateEvents, {
|
||||
timelineWasEmpty
|
||||
});
|
||||
}
|
||||
@@ -121,7 +151,7 @@ export class EventTimeline {
|
||||
forkLive(direction) {
|
||||
const forkState = this.getState(direction);
|
||||
const timeline = new EventTimeline(this.eventTimelineSet);
|
||||
timeline.startState = forkState?.clone();
|
||||
timeline.startState = forkState === null || forkState === void 0 ? void 0 : forkState.clone();
|
||||
// Now clobber the end state of the new live timeline with that from the
|
||||
// previous live timeline. It will be identical except that we'll keep
|
||||
// using the same RoomMember objects for the 'live' set of members with any
|
||||
@@ -129,7 +159,7 @@ export class EventTimeline {
|
||||
timeline.endState = forkState;
|
||||
// Firstly, we just stole the current timeline's end state, so it needs a new one.
|
||||
// Make an immutable copy of the state so back pagination will get the correct sentinels.
|
||||
this.endState = forkState?.clone();
|
||||
this.endState = forkState === null || forkState === void 0 ? void 0 : forkState.clone();
|
||||
return timeline;
|
||||
}
|
||||
|
||||
@@ -145,8 +175,8 @@ export class EventTimeline {
|
||||
fork(direction) {
|
||||
const forkState = this.getState(direction);
|
||||
const timeline = new EventTimeline(this.eventTimelineSet);
|
||||
timeline.startState = forkState?.clone();
|
||||
timeline.endState = forkState?.clone();
|
||||
timeline.startState = forkState === null || forkState === void 0 ? void 0 : forkState.clone();
|
||||
timeline.endState = forkState === null || forkState === void 0 ? void 0 : forkState.clone();
|
||||
return timeline;
|
||||
}
|
||||
|
||||
@@ -218,7 +248,7 @@ export class EventTimeline {
|
||||
/**
|
||||
* Get a pagination token
|
||||
*
|
||||
* @param direction - EventTimeline.BACKWARDS to get the pagination
|
||||
* @param direction - EventTimeline.BACKWARDS to get the pagination
|
||||
* token for going backwards in time; EventTimeline.FORWARDS to get the
|
||||
* pagination token for going forwards in time.
|
||||
*
|
||||
@@ -305,12 +335,25 @@ export class EventTimeline {
|
||||
* @param event - new event
|
||||
* @param options - addEvent options
|
||||
*/
|
||||
addEvent(event, {
|
||||
toStartOfTimeline,
|
||||
roomState,
|
||||
timelineWasEmpty,
|
||||
addToState
|
||||
}) {
|
||||
|
||||
/**
|
||||
* @deprecated In favor of the overload with `IAddEventOptions`
|
||||
*/
|
||||
|
||||
addEvent(event, toStartOfTimelineOrOpts, roomState) {
|
||||
let toStartOfTimeline = !!toStartOfTimelineOrOpts;
|
||||
let timelineWasEmpty;
|
||||
if (typeof toStartOfTimelineOrOpts === "object") {
|
||||
({
|
||||
toStartOfTimeline,
|
||||
roomState,
|
||||
timelineWasEmpty
|
||||
} = toStartOfTimelineOrOpts);
|
||||
} else if (toStartOfTimelineOrOpts !== undefined) {
|
||||
// Deprecation warning
|
||||
// FIXME: Remove after 2023-06-01 (technical debt)
|
||||
_logger.logger.warn("Overload deprecated: " + "`EventTimeline.addEvent(event, toStartOfTimeline, roomState?)` " + "is deprecated in favor of the overload with `EventTimeline.addEvent(event, IAddEventOptions)`");
|
||||
}
|
||||
if (!roomState) {
|
||||
roomState = toStartOfTimeline ? this.startState : this.endState;
|
||||
}
|
||||
@@ -319,8 +362,9 @@ export class EventTimeline {
|
||||
EventTimeline.setEventMetadata(event, roomState, toStartOfTimeline);
|
||||
|
||||
// modify state but only on unfiltered timelineSets
|
||||
if (addToState && event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
||||
roomState?.setStateEvents([event], {
|
||||
if (event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
||||
var _roomState;
|
||||
(_roomState = roomState) === null || _roomState === void 0 ? void 0 : _roomState.setStateEvents([event], {
|
||||
timelineWasEmpty
|
||||
});
|
||||
// it is possible that the act of setting the state event means we
|
||||
@@ -333,7 +377,7 @@ export class EventTimeline {
|
||||
// back in time, else we'll set the .sender value for BEFORE the given
|
||||
// member event, whereas we want to set the .sender value for the ACTUAL
|
||||
// member event itself.
|
||||
if (!event.sender || event.getType() === EventType.RoomMember && !toStartOfTimeline) {
|
||||
if (!event.sender || event.getType() === _event.EventType.RoomMember && !toStartOfTimeline) {
|
||||
EventTimeline.setEventMetadata(event, roomState, toStartOfTimeline);
|
||||
}
|
||||
}
|
||||
@@ -361,13 +405,13 @@ export class EventTimeline {
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
insertEvent(event, insertIndex, roomState, addToState) {
|
||||
insertEvent(event, insertIndex, roomState) {
|
||||
const timelineSet = this.getTimelineSet();
|
||||
if (timelineSet.room) {
|
||||
EventTimeline.setEventMetadata(event, roomState, false);
|
||||
|
||||
// modify state but only on unfiltered timelineSets
|
||||
if (addToState && event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
||||
if (event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
||||
roomState.setStateEvents([event], {});
|
||||
// it is possible that the act of setting the state event means we
|
||||
// can set more metadata (specifically sender/target props), so try
|
||||
@@ -379,7 +423,7 @@ export class EventTimeline {
|
||||
// back in time, else we'll set the .sender value for BEFORE the given
|
||||
// member event, whereas we want to set the .sender value for the ACTUAL
|
||||
// member event itself.
|
||||
if (!event.sender || event.getType() === EventType.RoomMember) {
|
||||
if (!event.sender || event.getType() === _event.EventType.RoomMember) {
|
||||
EventTimeline.setEventMetadata(event, roomState, false);
|
||||
}
|
||||
}
|
||||
@@ -416,14 +460,15 @@ export class EventTimeline {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
exports.EventTimeline = EventTimeline;
|
||||
/**
|
||||
* Symbolic constant for methods which take a 'direction' argument:
|
||||
* refers to the start of the timeline, or backwards in time.
|
||||
*/
|
||||
_defineProperty(EventTimeline, "BACKWARDS", Direction.Backward);
|
||||
(0, _defineProperty2.default)(EventTimeline, "BACKWARDS", Direction.Backward);
|
||||
/**
|
||||
* Symbolic constant for methods which take a 'direction' argument:
|
||||
* refers to the end of the timeline, or forwards in time.
|
||||
*/
|
||||
_defineProperty(EventTimeline, "FORWARDS", Direction.Forward);
|
||||
(0, _defineProperty2.default)(EventTimeline, "FORWARDS", Direction.Forward);
|
||||
//# sourceMappingURL=event-timeline.js.map
|
||||
Reference in New Issue
Block a user