(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 express from 'express';
|
||||
import bodyParser from 'body-parser';
|
||||
import fetch from 'node-fetch';
|
||||
|
||||
// Save script start time for ignoring older messages
|
||||
var boottimestamp = Date.now();
|
||||
@ -112,6 +113,25 @@ function checkSMS() {
|
||||
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.
|
||||
@ -120,17 +140,21 @@ function checkSMS() {
|
||||
* @param {function} callback function with the room ID as an argument.
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function createOrJoinSMSRoom(tel, ournumber, callback) {
|
||||
async function createOrJoinSMSRoom(tel, ournumber, callback) {
|
||||
var roomName = "#SMS_" + tel + "_" + ournumber + ":" + settings.matrixdomain;
|
||||
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!");
|
||||
var inRoom = false;
|
||||
var rooms = client.getRooms();
|
||||
for (var i = 0; i < rooms.length; i++) {
|
||||
if (rooms[i].roomId == res.room_id) {
|
||||
inRoom = true;
|
||||
break;
|
||||
if (!res.error) {
|
||||
var rooms = (await client.getJoinedRooms()).joined_rooms;
|
||||
for (var i = 0; i < rooms.length; i++) {
|
||||
if (rooms[i] == res.room_id) {
|
||||
inRoom = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (inRoom) {
|
||||
@ -143,11 +167,11 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
|
||||
client.joinRoom(res.room_id).then((room) => {
|
||||
logger.debug("Room " + roomName + " joined.");
|
||||
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;
|
||||
}).catch((err) => {
|
||||
} catch (err) {
|
||||
// room doesn't exist, create it
|
||||
logger.debug(err);
|
||||
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["matrixuser"]] = 100;
|
||||
client.createRoom({
|
||||
room_alias_name: "SMS_" + tel + "_" + ournumber,
|
||||
preset: "trusted_private_chat",
|
||||
visibility: "private",
|
||||
invite: settings.inviteusers,
|
||||
power_level_content_override: {
|
||||
"events": {
|
||||
"m.room.name": 50,
|
||||
"m.room.power_levels": 50,
|
||||
"m.room.canonical_alias": 100
|
||||
try {
|
||||
var room = await client.createRoom({
|
||||
room_alias_name: "SMS_" + tel + "_" + ournumber,
|
||||
preset: "trusted_private_chat",
|
||||
visibility: "private",
|
||||
invite: settings.inviteusers,
|
||||
power_level_content_override: {
|
||||
"events": {
|
||||
"m.room.name": 50,
|
||||
"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,
|
||||
"invite": 50,
|
||||
"kick": 50,
|
||||
"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) => {
|
||||
is_direct: true,
|
||||
name: formatPhoneNumber(tel, "(NNN) NNN-NNNN"),
|
||||
topic: "SMS conversation with " + formatPhoneNumber(tel, "(NNN) NNN-NNNN") + " (using " + formatPhoneNumber(ournumber, "(NNN) NNN-NNNN") + ")"
|
||||
});
|
||||
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.
|
||||
// It just spits out "Error sending event M_FORBIDDEN: Unknown room" instead.
|
||||
createOrJoinSMSRoom(tel, ournumber, callback);
|
||||
}).catch((err) => {
|
||||
} catch (errr) {
|
||||
logger.error("Could not create " + roomName + ".");
|
||||
logger.error(err);
|
||||
});
|
||||
});
|
||||
logger.error(errr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getAndUploadFile(url, callback) {
|
||||
@ -229,16 +254,24 @@ function getAndUploadFile(url, callback) {
|
||||
|
||||
/**
|
||||
* 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 {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}
|
||||
*/
|
||||
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)) {
|
||||
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") {
|
||||
var content = {
|
||||
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") {
|
||||
return;
|
||||
}
|
||||
logger.error(err);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -274,23 +310,17 @@ function sendMatrix(roomid, body, media, callback) {
|
||||
body: body,
|
||||
msgtype: "m.text"
|
||||
};
|
||||
client.sendEvent(roomid, "m.room.message", content, "").then((res) => {
|
||||
if (typeof callback == "function") {
|
||||
callback(true);
|
||||
}
|
||||
}).catch((err) => {
|
||||
if (typeof callback == "function") {
|
||||
callback(false);
|
||||
}
|
||||
try {
|
||||
await client.sendEvent(roomid, "m.room.message", content, "");
|
||||
return true;
|
||||
} catch (err) {
|
||||
if (err.data.error == "Unknown room") {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
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) {
|
||||
logger.info("Received SMS from " + msg.from + " for " + msg.to + ": " + msg.body);
|
||||
createOrJoinSMSRoom(msg.from, msg.to, function (roomid) {
|
||||
logger.info("Sending to room " + roomid);
|
||||
sendMatrix(roomid, msg.body, msg.media);
|
||||
});
|
||||
res.sendStatus(204);
|
||||
@ -520,7 +551,7 @@ if (settings.matrixaccesstoken == false) {
|
||||
client.startClient({initialSyncLimit: 10});
|
||||
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 + ")");
|
||||
initialsynccomplete = true;
|
||||
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);
|
||||
console.log(event.getRoomId());
|
||||
if (matches == null || (matches.length != 1 && matches.length != 2)) {
|
||||
client.getRoomTags(event.getRoomId()).then((response) => {
|
||||
console.log(response);
|
||||
|
183
package-lock.json
generated
183
package-lock.json
generated
@ -13,7 +13,8 @@
|
||||
"express": "^4.17.2",
|
||||
"file-type": "^16.5.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"
|
||||
}
|
||||
},
|
||||
@ -129,12 +130,9 @@
|
||||
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
||||
},
|
||||
"node_modules/base-x": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
|
||||
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
|
||||
"dependencies": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
|
||||
"integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
|
||||
},
|
||||
"node_modules/bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
@ -197,11 +195,11 @@
|
||||
]
|
||||
},
|
||||
"node_modules/bs58": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
|
||||
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
|
||||
"integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
|
||||
"dependencies": {
|
||||
"base-x": "^3.0.2"
|
||||
"base-x": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bytes": {
|
||||
@ -288,6 +286,14 @@
|
||||
"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": {
|
||||
"version": "3.0.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "16.5.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz",
|
||||
@ -528,6 +556,17 @@
|
||||
"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": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||
@ -800,18 +839,18 @@
|
||||
"integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA=="
|
||||
},
|
||||
"node_modules/matrix-js-sdk": {
|
||||
"version": "17.2.0",
|
||||
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz",
|
||||
"integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==",
|
||||
"version": "19.7.0",
|
||||
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz",
|
||||
"integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"another-json": "^0.2.0",
|
||||
"browser-request": "^0.3.3",
|
||||
"bs58": "^4.0.1",
|
||||
"bs58": "^5.0.0",
|
||||
"content-type": "^1.0.4",
|
||||
"loglevel": "^1.7.1",
|
||||
"matrix-events-sdk": "^0.0.1-beta.7",
|
||||
"p-retry": "^4.5.0",
|
||||
"p-retry": "4",
|
||||
"qs": "^6.9.6",
|
||||
"request": "^2.88.2",
|
||||
"unhomoglyph": "^1.0.6"
|
||||
@ -898,6 +937,41 @@
|
||||
"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": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
@ -1410,6 +1484,14 @@
|
||||
"core-util-is": "1.0.2",
|
||||
"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": {
|
||||
@ -1509,12 +1591,9 @@
|
||||
"integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
|
||||
},
|
||||
"base-x": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
|
||||
"integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
|
||||
"integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
@ -1567,11 +1646,11 @@
|
||||
"integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg=="
|
||||
},
|
||||
"bs58": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
|
||||
"integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
|
||||
"integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
|
||||
"requires": {
|
||||
"base-x": "^3.0.2"
|
||||
"base-x": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"bytes": {
|
||||
@ -1637,6 +1716,11 @@
|
||||
"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": {
|
||||
"version": "3.0.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "16.5.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.0.tgz",
|
||||
@ -1830,6 +1923,14 @@
|
||||
"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": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||
@ -2028,18 +2129,18 @@
|
||||
"integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA=="
|
||||
},
|
||||
"matrix-js-sdk": {
|
||||
"version": "17.2.0",
|
||||
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz",
|
||||
"integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==",
|
||||
"version": "19.7.0",
|
||||
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz",
|
||||
"integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==",
|
||||
"requires": {
|
||||
"@babel/runtime": "^7.12.5",
|
||||
"another-json": "^0.2.0",
|
||||
"browser-request": "^0.3.3",
|
||||
"bs58": "^4.0.1",
|
||||
"bs58": "^5.0.0",
|
||||
"content-type": "^1.0.4",
|
||||
"loglevel": "^1.7.1",
|
||||
"matrix-events-sdk": "^0.0.1-beta.7",
|
||||
"p-retry": "^4.5.0",
|
||||
"p-retry": "4",
|
||||
"qs": "^6.9.6",
|
||||
"request": "^2.88.2",
|
||||
"unhomoglyph": "^1.0.6"
|
||||
@ -2098,6 +2199,21 @@
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
|
||||
"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": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
@ -2479,6 +2595,11 @@
|
||||
"core-util-is": "1.0.2",
|
||||
"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",
|
||||
"log4js": "^6.3.0",
|
||||
"matrix-js-sdk": "^19.7.0",
|
||||
"node-fetch": "^3.3.2",
|
||||
"request": "^2.88.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user