(npm i
required!) Fix a bug where SMSes won't send to "old" chats
This commit is contained in:
parent
4e5775b085
commit
29cf8f83f4
150
main.js
150
main.js
@ -21,6 +21,7 @@ import request from 'request';
|
|||||||
import FileType from 'file-type';
|
import FileType from 'file-type';
|
||||||
import express from 'express';
|
import express from 'express';
|
||||||
import bodyParser from 'body-parser';
|
import bodyParser from 'body-parser';
|
||||||
|
import fetch from 'node-fetch';
|
||||||
|
|
||||||
// Save script start time for ignoring older messages
|
// Save script start time for ignoring older messages
|
||||||
var boottimestamp = Date.now();
|
var boottimestamp = Date.now();
|
||||||
@ -112,6 +113,25 @@ function checkSMS() {
|
|||||||
req.end();
|
req.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Connect to the server and get the room ID and stuff
|
||||||
|
* @param {type} alias
|
||||||
|
* @returns {undefined}
|
||||||
|
*/
|
||||||
|
async function getRoomIDFromAlias(alias) {
|
||||||
|
var info = await client.getRoomIdForAlias(alias);
|
||||||
|
if (typeof info.room_id != "undefined") {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
var response = await fetch(settings.homeserver + "/_matrix/client/v3/directory/room/" + encodeURIComponent(alias));
|
||||||
|
if (response.status != 200) {
|
||||||
|
throw new Error("Fetch returned invalid status code " + response.status);
|
||||||
|
}
|
||||||
|
var json = await response.json();
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Join or create+join a room with alias #SMS_{tel}. If already joined, do nothing.
|
* Join or create+join a room with alias #SMS_{tel}. If already joined, do nothing.
|
||||||
@ -120,17 +140,21 @@ function checkSMS() {
|
|||||||
* @param {function} callback function with the room ID as an argument.
|
* @param {function} callback function with the room ID as an argument.
|
||||||
* @returns {undefined}
|
* @returns {undefined}
|
||||||
*/
|
*/
|
||||||
function createOrJoinSMSRoom(tel, ournumber, callback) {
|
async function createOrJoinSMSRoom(tel, ournumber, callback) {
|
||||||
var roomName = "#SMS_" + tel + "_" + ournumber + ":" + settings.matrixdomain;
|
var roomName = "#SMS_" + tel + "_" + ournumber + ":" + settings.matrixdomain;
|
||||||
logger.debug("Checking if room " + roomName + " exists.");
|
logger.debug("Checking if room " + roomName + " exists.");
|
||||||
client.getRoomIdForAlias(roomName).then((res) => {
|
try {
|
||||||
|
var res = await getRoomIDFromAlias(roomName);
|
||||||
|
logger.info(JSON.stringify(res));
|
||||||
logger.debug("Room " + roomName + " exists!");
|
logger.debug("Room " + roomName + " exists!");
|
||||||
var inRoom = false;
|
var inRoom = false;
|
||||||
var rooms = client.getRooms();
|
if (!res.error) {
|
||||||
for (var i = 0; i < rooms.length; i++) {
|
var rooms = (await client.getJoinedRooms()).joined_rooms;
|
||||||
if (rooms[i].roomId == res.room_id) {
|
for (var i = 0; i < rooms.length; i++) {
|
||||||
inRoom = true;
|
if (rooms[i] == res.room_id) {
|
||||||
break;
|
inRoom = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (inRoom) {
|
if (inRoom) {
|
||||||
@ -143,11 +167,11 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
|
|||||||
client.joinRoom(res.room_id).then((room) => {
|
client.joinRoom(res.room_id).then((room) => {
|
||||||
logger.debug("Room " + roomName + " joined.");
|
logger.debug("Room " + roomName + " joined.");
|
||||||
client.setRoomTag(room.room_id, "u.matrix-bridge-voxtelesys-sms", {tel: tel, ournumber: ournumber, order: 0.5});
|
client.setRoomTag(room.room_id, "u.matrix-bridge-voxtelesys-sms", {tel: tel, ournumber: ournumber, order: 0.5});
|
||||||
callback(room.room_id);
|
callback(res.room_id);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}).catch((err) => {
|
} catch (err) {
|
||||||
// room doesn't exist, create it
|
// room doesn't exist, create it
|
||||||
logger.debug(err);
|
logger.debug(err);
|
||||||
logger.debug("Room " + roomName + " does not exist. Creating it now.");
|
logger.debug("Room " + roomName + " does not exist. Creating it now.");
|
||||||
@ -156,41 +180,42 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
|
|||||||
userPowerLevels[settings.inviteusers[i]] = 50;
|
userPowerLevels[settings.inviteusers[i]] = 50;
|
||||||
}
|
}
|
||||||
userPowerLevels[settings["matrixuser"]] = 100;
|
userPowerLevels[settings["matrixuser"]] = 100;
|
||||||
client.createRoom({
|
try {
|
||||||
room_alias_name: "SMS_" + tel + "_" + ournumber,
|
var room = await client.createRoom({
|
||||||
preset: "trusted_private_chat",
|
room_alias_name: "SMS_" + tel + "_" + ournumber,
|
||||||
visibility: "private",
|
preset: "trusted_private_chat",
|
||||||
invite: settings.inviteusers,
|
visibility: "private",
|
||||||
power_level_content_override: {
|
invite: settings.inviteusers,
|
||||||
"events": {
|
power_level_content_override: {
|
||||||
"m.room.name": 50,
|
"events": {
|
||||||
"m.room.power_levels": 50,
|
"m.room.name": 50,
|
||||||
"m.room.canonical_alias": 100
|
"m.room.power_levels": 50,
|
||||||
|
"m.room.canonical_alias": 100
|
||||||
|
},
|
||||||
|
"events_default": 0,
|
||||||
|
"invite": 50,
|
||||||
|
"kick": 50,
|
||||||
|
"notifications": {
|
||||||
|
"room": 50
|
||||||
|
},
|
||||||
|
"redact": 50,
|
||||||
|
"state_default": 50,
|
||||||
|
"users": userPowerLevels,
|
||||||
|
"users_default": 50
|
||||||
},
|
},
|
||||||
"events_default": 0,
|
is_direct: true,
|
||||||
"invite": 50,
|
name: formatPhoneNumber(tel, "(NNN) NNN-NNNN"),
|
||||||
"kick": 50,
|
topic: "SMS conversation with " + formatPhoneNumber(tel, "(NNN) NNN-NNNN") + " (using " + formatPhoneNumber(ournumber, "(NNN) NNN-NNNN") + ")"
|
||||||
"notifications": {
|
});
|
||||||
"room": 50
|
|
||||||
},
|
|
||||||
"redact": 50,
|
|
||||||
"state_default": 50,
|
|
||||||
"users": userPowerLevels,
|
|
||||||
"users_default": 50
|
|
||||||
},
|
|
||||||
is_direct: true,
|
|
||||||
name: formatPhoneNumber(tel, "(NNN) NNN-NNNN"),
|
|
||||||
topic: "SMS conversation with " + formatPhoneNumber(tel, "(NNN) NNN-NNNN") + " (using " + formatPhoneNumber(ournumber, "(NNN) NNN-NNNN") + ")"
|
|
||||||
}).then((room) => {
|
|
||||||
logger.debug("Room" + roomName + " created with ID " + room.room_id);
|
logger.debug("Room" + roomName + " created with ID " + room.room_id);
|
||||||
// The first message or two we send doesn't go through unless we do this.
|
// The first message or two we send doesn't go through unless we do this.
|
||||||
// It just spits out "Error sending event M_FORBIDDEN: Unknown room" instead.
|
// It just spits out "Error sending event M_FORBIDDEN: Unknown room" instead.
|
||||||
createOrJoinSMSRoom(tel, ournumber, callback);
|
createOrJoinSMSRoom(tel, ournumber, callback);
|
||||||
}).catch((err) => {
|
} catch (errr) {
|
||||||
logger.error("Could not create " + roomName + ".");
|
logger.error("Could not create " + roomName + ".");
|
||||||
logger.error(err);
|
logger.error(errr);
|
||||||
});
|
}
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getAndUploadFile(url, callback) {
|
function getAndUploadFile(url, callback) {
|
||||||
@ -229,16 +254,24 @@ function getAndUploadFile(url, callback) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Send a message to a Matrix room.
|
* Send a message to a Matrix room.
|
||||||
* @param {string} roomid the room to post the message in.
|
* @param {string} room the room to post the message in.
|
||||||
* @param {string} body message content.
|
* @param {string} body message content.
|
||||||
* @param {array} media Array of media URLs to download via HTTP(s) and send to Matrix.
|
* @param {array} media Array of media URLs to download via HTTP(s) and send to Matrix.
|
||||||
* @param {function|undefined} callback passes true when successful, false on failure.
|
|
||||||
* @returns {undefined}
|
* @returns {undefined}
|
||||||
*/
|
*/
|
||||||
function sendMatrix(roomid, body, media, callback) {
|
async function sendMatrix(room, body, media) {
|
||||||
|
var roomid = room;
|
||||||
|
if (room.startsWith("#")) {
|
||||||
|
try {
|
||||||
|
roomid = (await getRoomIDFromAlias()).room_id;
|
||||||
|
logger.info("Translated alias " + room + " to room ID " + roomid);
|
||||||
|
} catch (err) {
|
||||||
|
logger.error(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (Array.isArray(media)) {
|
if (Array.isArray(media)) {
|
||||||
for (var i = 0; i < media.length; i++) {
|
for (var i = 0; i < media.length; i++) {
|
||||||
getAndUploadFile(media[i], function (uri, mimetype) {
|
getAndUploadFile(media[i], async function (uri, mimetype) {
|
||||||
if (mimetype == "image/jpg" || mimetype == "image/jpeg" || mimetype == "image/png" || mimetype == "image/gif") {
|
if (mimetype == "image/jpg" || mimetype == "image/jpeg" || mimetype == "image/png" || mimetype == "image/gif") {
|
||||||
var content = {
|
var content = {
|
||||||
body: "Image",
|
body: "Image",
|
||||||
@ -258,13 +291,16 @@ function sendMatrix(roomid, body, media, callback) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
client.sendEvent(roomid, "m.room.message", content, "").then((res) => {
|
|
||||||
}).catch((err) => {
|
try {
|
||||||
|
await client.sendEvent(roomid, "m.room.message", content, "");
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
if (err.data.error == "Unknown room") {
|
if (err.data.error == "Unknown room") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
logger.error(err);
|
logger.error(err);
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -274,23 +310,17 @@ function sendMatrix(roomid, body, media, callback) {
|
|||||||
body: body,
|
body: body,
|
||||||
msgtype: "m.text"
|
msgtype: "m.text"
|
||||||
};
|
};
|
||||||
client.sendEvent(roomid, "m.room.message", content, "").then((res) => {
|
try {
|
||||||
if (typeof callback == "function") {
|
await client.sendEvent(roomid, "m.room.message", content, "");
|
||||||
callback(true);
|
return true;
|
||||||
}
|
} catch (err) {
|
||||||
}).catch((err) => {
|
|
||||||
if (typeof callback == "function") {
|
|
||||||
callback(false);
|
|
||||||
}
|
|
||||||
if (err.data.error == "Unknown room") {
|
if (err.data.error == "Unknown room") {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
logger.error(err);
|
logger.error(err);
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if (typeof callback == "function") {
|
|
||||||
callback(true);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,6 +478,7 @@ function handleHTTPRequest(req, res) {
|
|||||||
if (settings.smsonlyto.length > 0 && settings.smsonlyto.indexOf(msg.to) != -1) {
|
if (settings.smsonlyto.length > 0 && settings.smsonlyto.indexOf(msg.to) != -1) {
|
||||||
logger.info("Received SMS from " + msg.from + " for " + msg.to + ": " + msg.body);
|
logger.info("Received SMS from " + msg.from + " for " + msg.to + ": " + msg.body);
|
||||||
createOrJoinSMSRoom(msg.from, msg.to, function (roomid) {
|
createOrJoinSMSRoom(msg.from, msg.to, function (roomid) {
|
||||||
|
logger.info("Sending to room " + roomid);
|
||||||
sendMatrix(roomid, msg.body, msg.media);
|
sendMatrix(roomid, msg.body, msg.media);
|
||||||
});
|
});
|
||||||
res.sendStatus(204);
|
res.sendStatus(204);
|
||||||
@ -520,7 +551,7 @@ if (settings.matrixaccesstoken == false) {
|
|||||||
client.startClient({initialSyncLimit: 10});
|
client.startClient({initialSyncLimit: 10});
|
||||||
logger.info("Plugged into the matrix.");
|
logger.info("Plugged into the matrix.");
|
||||||
|
|
||||||
client.once('sync', function (state, prevState, res) {
|
client.once("sync", function (state, prevState, res) {
|
||||||
logger.debug("Initial sync complete (" + state + ")");
|
logger.debug("Initial sync complete (" + state + ")");
|
||||||
initialsynccomplete = true;
|
initialsynccomplete = true;
|
||||||
httpserver.post("*", jsonParser, (req, res) => {
|
httpserver.post("*", jsonParser, (req, res) => {
|
||||||
@ -630,7 +661,6 @@ if (settings.matrixaccesstoken == false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var matches = room.name.match(/SMS_([1-9][0-9]+)(?:_([1-9][0-9]+))?/g);
|
var matches = room.name.match(/SMS_([1-9][0-9]+)(?:_([1-9][0-9]+))?/g);
|
||||||
console.log(event.getRoomId());
|
|
||||||
if (matches == null || (matches.length != 1 && matches.length != 2)) {
|
if (matches == null || (matches.length != 1 && matches.length != 2)) {
|
||||||
client.getRoomTags(event.getRoomId()).then((response) => {
|
client.getRoomTags(event.getRoomId()).then((response) => {
|
||||||
console.log(response);
|
console.log(response);
|
||||||
|
183
package-lock.json
generated
183
package-lock.json
generated
@ -13,7 +13,8 @@
|
|||||||
"express": "^4.17.2",
|
"express": "^4.17.2",
|
||||||
"file-type": "^16.5.0",
|
"file-type": "^16.5.0",
|
||||||
"log4js": "^6.3.0",
|
"log4js": "^6.3.0",
|
||||||
"matrix-js-sdk": "^17.2.0",
|
"matrix-js-sdk": "^19.7.0",
|
||||||
|
"node-fetch": "^3.3.2",
|
||||||
"request": "^2.88.2"
|
"request": "^2.88.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -129,12 +130,9 @@
|
|||||||
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
||||||
},
|
},
|
||||||
"node_modules/base-x": {
|
"node_modules/base-x": {
|
||||||
"version": "3.0.9",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
|
||||||
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
|
"integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
|
||||||
"dependencies": {
|
|
||||||
"safe-buffer": "^5.0.1"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/bcrypt-pbkdf": {
|
"node_modules/bcrypt-pbkdf": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@ -197,11 +195,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/bs58": {
|
"node_modules/bs58": {
|
||||||
"version": "4.0.1",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
|
||||||
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
|
"integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base-x": "^3.0.2"
|
"base-x": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/bytes": {
|
"node_modules/bytes": {
|
||||||
@ -288,6 +286,14 @@
|
|||||||
"node": ">=0.10"
|
"node": ">=0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/data-uri-to-buffer": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/date-format": {
|
"node_modules/date-format": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
|
||||||
@ -456,6 +462,28 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/fetch-blob": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/jimmywarting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "paypal",
|
||||||
|
"url": "https://paypal.me/jimmywarting"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"node-domexception": "^1.0.0",
|
||||||
|
"web-streams-polyfill": "^3.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.20 || >= 14.13"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/file-type": {
|
"node_modules/file-type": {
|
||||||
"version": "16.5.0",
|
"version": "16.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz",
|
||||||
@ -528,6 +556,17 @@
|
|||||||
"node": ">= 0.12"
|
"node": ">= 0.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/formdata-polyfill": {
|
||||||
|
"version": "4.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
|
||||||
|
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
|
||||||
|
"dependencies": {
|
||||||
|
"fetch-blob": "^3.1.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.20.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/forwarded": {
|
"node_modules/forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||||
@ -800,18 +839,18 @@
|
|||||||
"integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA=="
|
"integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA=="
|
||||||
},
|
},
|
||||||
"node_modules/matrix-js-sdk": {
|
"node_modules/matrix-js-sdk": {
|
||||||
"version": "17.2.0",
|
"version": "19.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz",
|
||||||
"integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==",
|
"integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.12.5",
|
"@babel/runtime": "^7.12.5",
|
||||||
"another-json": "^0.2.0",
|
"another-json": "^0.2.0",
|
||||||
"browser-request": "^0.3.3",
|
"browser-request": "^0.3.3",
|
||||||
"bs58": "^4.0.1",
|
"bs58": "^5.0.0",
|
||||||
"content-type": "^1.0.4",
|
"content-type": "^1.0.4",
|
||||||
"loglevel": "^1.7.1",
|
"loglevel": "^1.7.1",
|
||||||
"matrix-events-sdk": "^0.0.1-beta.7",
|
"matrix-events-sdk": "^0.0.1-beta.7",
|
||||||
"p-retry": "^4.5.0",
|
"p-retry": "4",
|
||||||
"qs": "^6.9.6",
|
"qs": "^6.9.6",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
"unhomoglyph": "^1.0.6"
|
"unhomoglyph": "^1.0.6"
|
||||||
@ -898,6 +937,41 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/node-domexception": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/jimmywarting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://paypal.me/jimmywarting"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/node-fetch": {
|
||||||
|
"version": "3.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
|
||||||
|
"dependencies": {
|
||||||
|
"data-uri-to-buffer": "^4.0.0",
|
||||||
|
"fetch-blob": "^3.1.4",
|
||||||
|
"formdata-polyfill": "^4.0.10"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/node-fetch"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/oauth-sign": {
|
"node_modules/oauth-sign": {
|
||||||
"version": "0.9.0",
|
"version": "0.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||||
@ -1410,6 +1484,14 @@
|
|||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"extsprintf": "^1.2.0"
|
"extsprintf": "^1.2.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"node_modules/web-streams-polyfill": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -1509,12 +1591,9 @@
|
|||||||
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
||||||
},
|
},
|
||||||
"base-x": {
|
"base-x": {
|
||||||
"version": "3.0.9",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
|
||||||
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
|
"integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
|
||||||
"requires": {
|
|
||||||
"safe-buffer": "^5.0.1"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"bcrypt-pbkdf": {
|
"bcrypt-pbkdf": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
@ -1567,11 +1646,11 @@
|
|||||||
"integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg=="
|
"integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg=="
|
||||||
},
|
},
|
||||||
"bs58": {
|
"bs58": {
|
||||||
"version": "4.0.1",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
|
||||||
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
|
"integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"base-x": "^3.0.2"
|
"base-x": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bytes": {
|
"bytes": {
|
||||||
@ -1637,6 +1716,11 @@
|
|||||||
"assert-plus": "^1.0.0"
|
"assert-plus": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"data-uri-to-buffer": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="
|
||||||
|
},
|
||||||
"date-format": {
|
"date-format": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz",
|
||||||
@ -1771,6 +1855,15 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
||||||
},
|
},
|
||||||
|
"fetch-blob": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
|
||||||
|
"requires": {
|
||||||
|
"node-domexception": "^1.0.0",
|
||||||
|
"web-streams-polyfill": "^3.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"file-type": {
|
"file-type": {
|
||||||
"version": "16.5.0",
|
"version": "16.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz",
|
||||||
@ -1830,6 +1923,14 @@
|
|||||||
"mime-types": "^2.1.12"
|
"mime-types": "^2.1.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"formdata-polyfill": {
|
||||||
|
"version": "4.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
|
||||||
|
"integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
|
||||||
|
"requires": {
|
||||||
|
"fetch-blob": "^3.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"forwarded": {
|
"forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||||
@ -2028,18 +2129,18 @@
|
|||||||
"integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA=="
|
"integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA=="
|
||||||
},
|
},
|
||||||
"matrix-js-sdk": {
|
"matrix-js-sdk": {
|
||||||
"version": "17.2.0",
|
"version": "19.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz",
|
||||||
"integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==",
|
"integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.12.5",
|
"@babel/runtime": "^7.12.5",
|
||||||
"another-json": "^0.2.0",
|
"another-json": "^0.2.0",
|
||||||
"browser-request": "^0.3.3",
|
"browser-request": "^0.3.3",
|
||||||
"bs58": "^4.0.1",
|
"bs58": "^5.0.0",
|
||||||
"content-type": "^1.0.4",
|
"content-type": "^1.0.4",
|
||||||
"loglevel": "^1.7.1",
|
"loglevel": "^1.7.1",
|
||||||
"matrix-events-sdk": "^0.0.1-beta.7",
|
"matrix-events-sdk": "^0.0.1-beta.7",
|
||||||
"p-retry": "^4.5.0",
|
"p-retry": "4",
|
||||||
"qs": "^6.9.6",
|
"qs": "^6.9.6",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
"unhomoglyph": "^1.0.6"
|
"unhomoglyph": "^1.0.6"
|
||||||
@ -2098,6 +2199,21 @@
|
|||||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
|
||||||
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
|
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
|
||||||
},
|
},
|
||||||
|
"node-domexception": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
|
||||||
|
},
|
||||||
|
"node-fetch": {
|
||||||
|
"version": "3.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==",
|
||||||
|
"requires": {
|
||||||
|
"data-uri-to-buffer": "^4.0.0",
|
||||||
|
"fetch-blob": "^3.1.4",
|
||||||
|
"formdata-polyfill": "^4.0.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"oauth-sign": {
|
"oauth-sign": {
|
||||||
"version": "0.9.0",
|
"version": "0.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||||
@ -2479,6 +2595,11 @@
|
|||||||
"core-util-is": "1.0.2",
|
"core-util-is": "1.0.2",
|
||||||
"extsprintf": "^1.2.0"
|
"extsprintf": "^1.2.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"web-streams-polyfill": {
|
||||||
|
"version": "3.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
|
||||||
|
"integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
"file-type": "^16.5.0",
|
"file-type": "^16.5.0",
|
||||||
"log4js": "^6.3.0",
|
"log4js": "^6.3.0",
|
||||||
"matrix-js-sdk": "^19.7.0",
|
"matrix-js-sdk": "^19.7.0",
|
||||||
|
"node-fetch": "^3.3.2",
|
||||||
"request": "^2.88.2"
|
"request": "^2.88.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user