summaryrefslogtreecommitdiffstats
path: root/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters
diff options
context:
space:
mode:
Diffstat (limited to 'comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters')
-rw-r--r--comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/legacy/MRoomMessage.js62
-rw-r--r--comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MMessage.js40
-rw-r--r--comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MPoll.js41
3 files changed, 143 insertions, 0 deletions
diff --git a/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/legacy/MRoomMessage.js b/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/legacy/MRoomMessage.js
new file mode 100644
index 0000000000..b362b52b16
--- /dev/null
+++ b/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/legacy/MRoomMessage.js
@@ -0,0 +1,62 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.LEGACY_M_ROOM_MESSAGE = void 0;
+exports.parseMRoomMessage = parseMRoomMessage;
+
+var _MessageEvent = require("../../events/MessageEvent");
+
+var _NoticeEvent = require("../../events/NoticeEvent");
+
+var _EmoteEvent = require("../../events/EmoteEvent");
+
+var _NamespacedValue = require("../../NamespacedValue");
+
+var _message_types = require("../../events/message_types");
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+var LEGACY_M_ROOM_MESSAGE = new _NamespacedValue.NamespacedValue("m.room.message");
+exports.LEGACY_M_ROOM_MESSAGE = LEGACY_M_ROOM_MESSAGE;
+
+function parseMRoomMessage(wireEvent) {
+ var _wireEvent$content, _wireEvent$content2, _wireEvent$content3;
+
+ if (_message_types.M_MESSAGE.findIn(wireEvent.content) || _message_types.M_TEXT.findIn(wireEvent.content)) {
+ // We know enough about the event to coerce it into the right type
+ return new _MessageEvent.MessageEvent(wireEvent);
+ }
+
+ var msgtype = (_wireEvent$content = wireEvent.content) === null || _wireEvent$content === void 0 ? void 0 : _wireEvent$content.msgtype;
+ var text = (_wireEvent$content2 = wireEvent.content) === null || _wireEvent$content2 === void 0 ? void 0 : _wireEvent$content2.body;
+ var html = ((_wireEvent$content3 = wireEvent.content) === null || _wireEvent$content3 === void 0 ? void 0 : _wireEvent$content3.format) === "org.matrix.custom.html" ? wireEvent.content.formatted_body : null;
+
+ if (msgtype === "m.text") {
+ var _objectSpread2;
+
+ return new _MessageEvent.MessageEvent(_objectSpread(_objectSpread({}, wireEvent), {}, {
+ content: _objectSpread(_objectSpread({}, wireEvent.content), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, _message_types.M_TEXT.name, text), _defineProperty(_objectSpread2, _message_types.M_HTML.name, html), _objectSpread2))
+ }));
+ } else if (msgtype === "m.notice") {
+ var _objectSpread3;
+
+ return new _NoticeEvent.NoticeEvent(_objectSpread(_objectSpread({}, wireEvent), {}, {
+ content: _objectSpread(_objectSpread({}, wireEvent.content), {}, (_objectSpread3 = {}, _defineProperty(_objectSpread3, _message_types.M_TEXT.name, text), _defineProperty(_objectSpread3, _message_types.M_HTML.name, html), _objectSpread3))
+ }));
+ } else if (msgtype === "m.emote") {
+ var _objectSpread4;
+
+ return new _EmoteEvent.EmoteEvent(_objectSpread(_objectSpread({}, wireEvent), {}, {
+ content: _objectSpread(_objectSpread({}, wireEvent.content), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, _message_types.M_TEXT.name, text), _defineProperty(_objectSpread4, _message_types.M_HTML.name, html), _objectSpread4))
+ }));
+ } else {
+ // TODO: Handle other types
+ return null;
+ }
+} \ No newline at end of file
diff --git a/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MMessage.js b/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MMessage.js
new file mode 100644
index 0000000000..dd74621eb2
--- /dev/null
+++ b/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MMessage.js
@@ -0,0 +1,40 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.parseMMessage = parseMMessage;
+
+var _MessageEvent = require("../../events/MessageEvent");
+
+var _message_types = require("../../events/message_types");
+
+var _EmoteEvent = require("../../events/EmoteEvent");
+
+var _NoticeEvent = require("../../events/NoticeEvent");
+
+/*
+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.
+*/
+function parseMMessage(wireEvent) {
+ if (_message_types.M_EMOTE.matches(wireEvent.type)) {
+ return new _EmoteEvent.EmoteEvent(wireEvent);
+ } else if (_message_types.M_NOTICE.matches(wireEvent.type)) {
+ return new _NoticeEvent.NoticeEvent(wireEvent);
+ } // default: return a generic message
+
+
+ return new _MessageEvent.MessageEvent(wireEvent);
+} \ No newline at end of file
diff --git a/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MPoll.js b/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MPoll.js
new file mode 100644
index 0000000000..af35a0fa94
--- /dev/null
+++ b/comm/chat/protocols/matrix/lib/matrix-events-sdk/interpreters/modern/MPoll.js
@@ -0,0 +1,41 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.parseMPoll = parseMPoll;
+
+var _poll_types = require("../../events/poll_types");
+
+var _PollStartEvent = require("../../events/PollStartEvent");
+
+var _PollResponseEvent = require("../../events/PollResponseEvent");
+
+var _PollEndEvent = require("../../events/PollEndEvent");
+
+/*
+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.
+*/
+function parseMPoll(wireEvent) {
+ if (_poll_types.M_POLL_START.matches(wireEvent.type)) {
+ return new _PollStartEvent.PollStartEvent(wireEvent);
+ } else if (_poll_types.M_POLL_RESPONSE.matches(wireEvent.type)) {
+ return new _PollResponseEvent.PollResponseEvent(wireEvent);
+ } else if (_poll_types.M_POLL_END.matches(wireEvent.type)) {
+ return new _PollEndEvent.PollEndEvent(wireEvent);
+ }
+
+ return null; // not a poll event
+} \ No newline at end of file