mx-puppet-bridge
Advanced tools
Comparing version 0.0.2 to 0.0.3
@@ -31,60 +31,74 @@ "use strict"; | ||
switch (arg) { | ||
case "link": | ||
{ | ||
if (!this.provisioner.canCreate(sender)) { | ||
yield this.sendMessage(roomId, "ERROR: You don't have permission to use this bridge"); | ||
break; | ||
} | ||
if (!this.bridge.hooks.getDataFromStr) { | ||
yield this.sendMessage(roomId, "ERROR: The bridge is still starting up, please try again shortly"); | ||
break; | ||
} | ||
const retData = yield this.bridge.hooks.getDataFromStr(param); | ||
if (!retData.success) { | ||
yield this.sendMessage(roomId, `ERROR: ${retData.error}`); | ||
break; | ||
} | ||
const puppetId = yield this.provisioner.new(sender, retData.data, retData.userId); | ||
yield this.sendMessage(roomId, `Created new link with ID ${puppetId}`); | ||
case "link": { | ||
if (!this.provisioner.canCreate(sender)) { | ||
yield this.sendMessage(roomId, "ERROR: You don't have permission to use this bridge"); | ||
break; | ||
} | ||
case "unlink": | ||
{ | ||
if (!param || !param.trim()) { | ||
yield this.sendMessage(roomId, `ERROR: You need to specify an index to unlink`); | ||
return; | ||
} | ||
const puppetId = Number(param.trim()); | ||
if (isNaN(puppetId)) { | ||
yield this.sendMessage(roomId, `ERROR: The index must be a number`); | ||
return; | ||
} | ||
const data = yield this.provisioner.get(puppetId); | ||
if (!data || data.puppetMxid !== sender) { | ||
yield this.sendMessage(roomId, `ERROR: You must own the index`); | ||
return; | ||
} | ||
yield this.provisioner.delete(sender, puppetId); | ||
yield this.sendMessage(roomId, `Removed link with ID ${puppetId}`); | ||
if (!this.bridge.hooks.getDataFromStr) { | ||
yield this.sendMessage(roomId, "ERROR: The bridge is still starting up, please try again shortly"); | ||
break; | ||
} | ||
case "list": | ||
{ | ||
const descs = yield this.provisioner.getDescMxid(sender); | ||
if (descs.length === 0) { | ||
yield this.sendMessage(roomId, "Nothing linked yet!"); | ||
break; | ||
} | ||
let sendStr = "Links:\n"; | ||
let html = "<p>Links:</p><ul>"; | ||
for (const d of descs) { | ||
sendStr += `${d.puppetId}: ${d.desc}\n`; | ||
html += `<li>${d.puppetId}: ${d.html}</li>`; | ||
} | ||
html += "</ul>"; | ||
yield this.sendMessage(roomId, sendStr, html); | ||
const retData = yield this.bridge.hooks.getDataFromStr(param); | ||
if (!retData.success) { | ||
yield this.sendMessage(roomId, `ERROR: ${retData.error}`); | ||
break; | ||
} | ||
const puppetId = yield this.provisioner.new(sender, retData.data, retData.userId); | ||
yield this.sendMessage(roomId, `Created new link with ID ${puppetId}`); | ||
break; | ||
} | ||
case "unlink": { | ||
if (!param || !param.trim()) { | ||
yield this.sendMessage(roomId, `ERROR: You need to specify an index to unlink`); | ||
return; | ||
} | ||
const puppetId = Number(param.trim()); | ||
if (isNaN(puppetId)) { | ||
yield this.sendMessage(roomId, `ERROR: The index must be a number`); | ||
return; | ||
} | ||
const data = yield this.provisioner.get(puppetId); | ||
if (!data || data.puppetMxid !== sender) { | ||
yield this.sendMessage(roomId, `ERROR: You must own the index`); | ||
return; | ||
} | ||
yield this.provisioner.delete(sender, puppetId); | ||
yield this.sendMessage(roomId, `Removed link with ID ${puppetId}`); | ||
break; | ||
} | ||
case "list": { | ||
const descs = yield this.provisioner.getDescMxid(sender); | ||
if (descs.length === 0) { | ||
yield this.sendMessage(roomId, "Nothing linked yet!"); | ||
break; | ||
} | ||
let sendStr = "Links:\n"; | ||
let html = "<p>Links:</p><ul>"; | ||
for (const d of descs) { | ||
sendStr += `${d.puppetId}: ${d.desc}\n`; | ||
html += `<li>${d.puppetId}: ${d.html}</li>`; | ||
} | ||
html += "</ul>"; | ||
yield this.sendMessage(roomId, sendStr, html); | ||
break; | ||
} | ||
case "setmatrixtoken": { | ||
if (!param || !param.trim()) { | ||
yield this.provisioner.setToken(sender, null); | ||
yield this.sendMessage(roomId, `Removed matrix token!`); | ||
break; | ||
} | ||
const token = param.trim(); | ||
const tokenParts = this.provisioner.parseToken(sender, token); | ||
const client = yield this.bridge.userSync.getClientFromTokenCallback(tokenParts); | ||
if (!client) { | ||
yield this.sendMessage(roomId, "ERROR: Invalid matrix token"); | ||
break; | ||
} | ||
yield this.provisioner.setToken(sender, token); | ||
yield this.sendMessage(roomId, `Set matrix token`); | ||
break; | ||
} | ||
default: | ||
yield this.sendMessage(roomId, `Available commands: help, list, link, unlink`); | ||
yield this.sendMessage(roomId, `Available commands: help, list, link, unlink, setmatrixtoken`); | ||
} | ||
@@ -110,2 +124,2 @@ }); | ||
exports.BotProvisioner = BotProvisioner; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90cHJvdmlzaW9uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90cHJvdmlzaW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBLCtCQUE0QjtBQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRXRDLE1BQWEsY0FBYztJQUUxQixZQUNTLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUM1QyxDQUFDO0lBRVksWUFBWSxDQUFDLEtBQVU7O1lBQ25DLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtnQkFDcEMsT0FBTyxDQUFDLHFCQUFxQjthQUM3QjtZQUNELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUM1QixNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN0RSxHQUFHLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUNuQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDakU7WUFDRCxRQUFRLEdBQUcsRUFBRTtnQkFDWixLQUFLLE1BQU07b0JBQ1g7d0JBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90cHJvdmlzaW9uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYm90cHJvdmlzaW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBLCtCQUE0QjtBQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRXRDLE1BQWEsY0FBYztJQUUxQixZQUNTLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUM1QyxDQUFDO0lBRVksWUFBWSxDQUFDLEtBQVU7O1lBQ25DLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtnQkFDcEMsT0FBTyxDQUFDLHFCQUFxQjthQUM3QjtZQUNELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDN0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUM1QixNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN0RSxHQUFHLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO2dCQUNuQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDakU7WUFDRCxRQUFRLEdBQUcsRUFBRTtnQkFDWixLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFN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 |
@@ -15,4 +15,4 @@ "use strict"; | ||
const log = new log_1.Log("ChannelSync"); | ||
// tslint:disable-next-line:no-magic-numbers | ||
const MXID_LOOKUP_LOCK_TIMEOUT = 1000 * 60; | ||
; | ||
class ChannelSyncroniser { | ||
@@ -43,4 +43,4 @@ constructor(bridge) { | ||
if (!this.bridge.AS.isNamespacedUser(mxid)) { | ||
// TODO: logic if puppeted | ||
return null; | ||
const token = yield this.bridge.provisioner.getToken(mxid); | ||
return yield this.bridge.userSync.getClientFromTokenCallback(token); | ||
} | ||
@@ -50,7 +50,12 @@ return this.bridge.AS.getIntentForUserId(mxid).underlyingClient; | ||
} | ||
maybeGetMxid(data) { | ||
maybeGet(data) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const lockKey = `${data.puppetId};${data.roomId}`; | ||
yield this.mxidLock.wait(lockKey); | ||
let chan = yield this.chanStore.getByRemote(data.puppetId, data.roomId); | ||
return yield this.chanStore.getByRemote(data.puppetId, data.roomId); | ||
}); | ||
} | ||
maybeGetMxid(data) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const chan = yield this.maybeGet(data); | ||
if (!chan) { | ||
@@ -62,3 +67,3 @@ return null; | ||
} | ||
getMxid(data, client, invites) { | ||
getMxid(data, client, invites, doCreate = true) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
@@ -72,2 +77,3 @@ const lockKey = `${data.puppetId};${data.roomId}`; | ||
let chan = yield this.chanStore.getByRemote(data.puppetId, data.roomId); | ||
log.silly(chan); | ||
const update = { | ||
@@ -82,2 +88,8 @@ name: false, | ||
if (!chan) { | ||
if (!doCreate) { | ||
return { | ||
mxid: "", | ||
created: false, | ||
}; | ||
} | ||
log.info("Channel doesn't exist yet, creating entry..."); | ||
@@ -88,7 +100,10 @@ this.mxidLock.set(lockKey); | ||
if (this.bridge.hooks.createChan) { | ||
log.verbose("Fetching new override data..."); | ||
const newData = yield this.bridge.hooks.createChan(data.puppetId, data.roomId); | ||
if (newData && newData.puppetId === data.puppetId && newData.roomId === data.roomId) { | ||
log.verbose("Got new room data to override"); | ||
data = newData; | ||
} | ||
else { | ||
log.warn("Override data is malformed! Old data:", data, "New data:", newData); | ||
} | ||
} | ||
@@ -134,4 +149,4 @@ log.verbose("Creation data:", data); | ||
log.verbose("Updating avatar"); | ||
const { doUpdate, mxcUrl, hash } = yield util_1.Util.MaybeUploadFile(client, data, chan.avatarHash); | ||
if (doUpdate) { | ||
const { doUpdate: updateAvatar, mxcUrl, hash } = yield util_1.Util.MaybeUploadFile(client, data, chan.avatarHash); | ||
if (updateAvatar) { | ||
update.avatar = true; | ||
@@ -163,5 +178,14 @@ chan.avatarUrl = data.avatarUrl; | ||
} | ||
delete(data) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const chan = yield this.maybeGet(data); | ||
if (!chan) { | ||
return; | ||
} | ||
yield this.deleteEntries([chan]); | ||
}); | ||
} | ||
deleteForMxid(mxid) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
let chan = yield this.chanStore.getByMxid(mxid); | ||
const chan = yield this.chanStore.getByMxid(mxid); | ||
if (!chan) { | ||
@@ -181,5 +205,31 @@ return; // nothing to do | ||
return __awaiter(this, void 0, void 0, function* () { | ||
log.info("Deleting entries", entries); | ||
for (const entry of entries) { | ||
// delete from DB (also OP store), cache and trigger ghosts to quit | ||
yield this.chanStore.delete(entry); | ||
log.info("Removing bot client from room...."); | ||
const botIntent = this.bridge.botIntent; | ||
const botRooms = yield botIntent.getJoinedRooms(); | ||
if (botRooms.includes(entry.mxid)) { | ||
try { | ||
yield botIntent.leaveRoom(entry.mxid); | ||
} | ||
catch (err) { | ||
log.warn("Failed to make bot client leave", err); | ||
} | ||
} | ||
log.info("Removing ghosts from room...."); | ||
const ghosts = yield this.bridge.puppetStore.getGhostsInChan(entry.mxid); | ||
for (const ghost of ghosts) { | ||
const intent = yield this.bridge.userSync.deleteForMxid(ghost); | ||
if (intent) { | ||
try { | ||
yield intent.underlyingClient.leaveRoom(entry.mxid); | ||
} | ||
catch (err) { | ||
log.warn("Failed to trigger client leave room", err); | ||
} | ||
} | ||
} | ||
yield this.bridge.puppetStore.emptyGhostsInChan(entry.mxid); | ||
} | ||
@@ -190,2 +240,2 @@ }); | ||
exports.ChannelSyncroniser = ChannelSyncroniser; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbHN5bmNyb25pc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NoYW5uZWxzeW5jcm9uaXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsaUNBQThCO0FBQzlCLCtCQUE0QjtBQUc1Qiw0Q0FBeUM7QUFHekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFbkMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLEdBQUMsRUFBRSxDQUFDO0FBS3hDLENBQUM7QUFhRixNQUFhLGtCQUFrQjtJQUc5QixZQUNTLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksV0FBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVZLGdCQUFnQixDQUFDLElBQVk7O1lBQ3pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQzthQUNaO1lBQ0QsT0FBTztnQkFDTixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUNKLENBQUM7UUFDdEIsQ0FBQztLQUFBO0lBRVksU0FBUyxDQUFDLElBQVk7O1lBQ2xDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQzthQUNaO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdC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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbHN5bmNyb25pc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NoYW5uZWxzeW5jcm9uaXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsaUNBQThCO0FBQzlCLCtCQUE0QjtBQUc1Qiw0Q0FBeUM7QUFHekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFbkMsNENBQTRDO0FBQzVDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQWEzQyxNQUFhLGtCQUFrQjtJQUc5QixZQUNTLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksV0FBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVZLGdCQUFnQixDQUFDLElBQVk7O1lBQ3pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQzthQUNaO1lBQ0QsT0FBTztnQkFDTixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUNSLENBQUM7UUFDbEIsQ0FBQztLQUFBO0lBRVksU0FBUyxDQUFDLElBQVk7O1lBQ2xDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQzthQUNaO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFD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 |
@@ -65,2 +65,2 @@ "use strict"; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE1BQWEsY0FBYztJQUEzQjtRQUNRLFdBQU0sR0FBeUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQzFELFlBQU8sR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzdELGFBQVEsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hFLGlCQUFZLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUM1RSxhQUFRLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztJQVl4RSxDQUFDO0lBVE8sV0FBVyxDQUFDLFNBQStCLEVBQUUsY0FBb0MsSUFBSTtRQUN6RixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3hDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLE1BQU0sSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFO2dCQUMvRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNuRDtpQkFBTTtnQkFDTixXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Q7QUFqQkQsd0NBaUJDO0FBRUQsTUFBTSxvQkFBb0I7SUFBMUI7UUFDUSxnQkFBVyxHQUFXLFdBQVcsQ0FBQztJQUkxQyxDQUFDO0NBQUE7QUFFRCxNQUFhLHFCQUFxQjtJQUFsQztRQUNRLFlBQU8sR0FBVyxNQUFNLENBQUM7UUFDekIsbUJBQWMsR0FBVyxvQkFBb0IsQ0FBQztRQUM5QyxVQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQUE7QUFKRCxzREFJQztBQUVELE1BQWEsV0FBVztJQUF4QjtRQUVRLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdkIsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUN6QixZQUFPLEdBQWtCLEtBQUssQ0FBQztRQUMvQixnQkFBVyxHQUFXLFlBQVksQ0FBQztRQUNuQyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBUkQsa0NBUUM7QUFFRCxNQUFhLHNCQUFzQjtJQUFuQztRQUVRLGFBQVEsR0FBVyxhQUFhLENBQUM7SUFDekMsQ0FBQztDQUFBO0FBSEQsd0RBR0M7QUFFRCxNQUFNLDBCQUEwQjtJQUFoQztRQUNRLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFhLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQUE7QUFFRCxNQUFNLHNCQUFzQjtJQUE1QjtRQUNRLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFXLEdBQUcsQ0FBQztJQUMvQixDQUFDO0NBQUEifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE1BQWEsY0FBYztJQUEzQjtRQUNRLFdBQU0sR0FBeUIsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQzFELFlBQU8sR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzdELGFBQVEsR0FBMkIsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hFLGlCQUFZLEdBQStCLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUM1RSxhQUFRLEdBQTJCLElBQUksc0JBQXNCLEVBQUUsQ0FBQztJQVd4RSxDQUFDO0lBVE8sV0FBVyxDQUFDLFNBQStCLEVBQUUsY0FBb0MsSUFBSTtRQUMzRixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLE1BQU0sSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxFQUFFO2dCQUMvRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNuRDtpQkFBTTtnQkFDTixXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Q7QUFoQkQsd0NBZ0JDO0FBRUQsTUFBTSxvQkFBb0I7SUFBMUI7UUFDUSxnQkFBVyxHQUFXLFdBQVcsQ0FBQztJQUkxQyxDQUFDO0NBQUE7QUFFRCxNQUFhLHFCQUFxQjtJQUFsQztRQUNRLFlBQU8sR0FBVyxNQUFNLENBQUM7UUFDekIsbUJBQWMsR0FBVyxvQkFBb0IsQ0FBQztRQUM5QyxVQUFLLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQUE7QUFKRCxzREFJQztBQUVELE1BQWEsV0FBVztJQUF4QjtRQUVRLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdkIsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUN6QixZQUFPLEdBQWtCLEtBQUssQ0FBQztRQUMvQixnQkFBVyxHQUFXLFlBQVksQ0FBQztRQUNuQyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUFBO0FBUkQsa0NBUUM7QUFFRCxNQUFhLHNCQUFzQjtJQUFuQztRQUVRLGFBQVEsR0FBVyxhQUFhLENBQUM7SUFDekMsQ0FBQztDQUFBO0FBSEQsd0RBR0M7QUFFRCxNQUFNLDBCQUEwQjtJQUFoQztRQUNRLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFhLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQUE7QUFFRCxNQUFNLHNCQUFzQjtJQUE1QjtRQUNRLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsYUFBUSxHQUFXLEdBQUcsQ0FBQztJQUMvQixDQUFDO0NBQUEifQ== |
@@ -14,2 +14,3 @@ "use strict"; | ||
const log = new log_1.Log("DbChanStore"); | ||
// tslint:disable-next-line:no-magic-numbers | ||
const CHAN_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
@@ -50,3 +51,3 @@ class DbChanStore { | ||
for (const row of rows) { | ||
let res = this.getFromRow(row); | ||
const res = this.getFromRow(row); | ||
if (res) { | ||
@@ -115,3 +116,3 @@ results.push(res); | ||
}); | ||
this.remoteCache.set(`${data.roomId}_${data.puppetId}`, data); | ||
this.remoteCache.set(`${data.puppetId};${data.roomId}`, data); | ||
this.mxidCache.set(data.mxid, data); | ||
@@ -124,3 +125,3 @@ }); | ||
yield this.db.Run("DELETE FROM chan_op WHERE chan_mxid=$mxid", { mxid: data.mxid }); | ||
this.remoteCache.delete(`${data.roomId}_${data.puppetId}`); | ||
this.remoteCache.delete(`${data.puppetId};${data.roomId}`); | ||
this.mxidCache.delete(data.mxid); | ||
@@ -180,2 +181,2 @@ this.opCache.delete(data.mxid); | ||
exports.DbChanStore = DbChanStore; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RiL2NoYW5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsZ0NBQTZCO0FBQzdCLHlEQUFzRDtBQUV0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVuQyxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQztBQWExQyxNQUFhLFdBQVc7SUFJdkIsWUFDUyxFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUU3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksdUJBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHVCQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsUUFBZ0I7UUFDNUQsT0FBTztZQUNOLElBQUk7WUFDSixNQUFNO1lBQ04sUUFBUTtTQUNXLENBQUM7SUFDdEIsQ0FBQztJQUVZLFdBQVcsQ0FBQyxRQUFnQixFQUFFLE1BQWM7O1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDN0QsSUFBSSxNQUFNLEVBQUU7Z0JBQ1gsT0FBTyxNQUFNLENBQUM7YUFDZDtZQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQzVCLDhFQUE4RSxFQUFFO2dCQUNoRixPQUFPLEVBQUUsTUFBTTtnQkFDZixTQUFTLEVBQUUsUUFBUTthQUNuQixDQUFD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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RiL2NoYW5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsZ0NBQTZCO0FBQzdCLHlEQUFzRDtBQUV0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVuQyw0Q0FBNEM7QUFDNUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFhaEQsTUFBYSxXQUFXO0lBSXZCLFlBQ1MsRUFBc0I7UUFBdEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFFOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHVCQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksdUJBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZLEVBQUUsTUFBYyxFQUFFLFFBQWdCO1FBQzVELE9BQU87WUFDTixJQUFJO1lBQ0osTUFBTTtZQUNOLFFBQVE7U0FDVyxDQUFDO0lBQ3RCLENBQUM7SUFFWSxXQUFXLENBQUMsUUFBZ0IsRUFBRSxNQUFjOztZQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksTUFBTSxFQUFFO2dCQUNYLE9BQU8sTUFBTSxDQUFDO2FBQ2Q7WUFDRCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUM1Qiw4RUFBOEUsRUFBRTtnQkFDaEYsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsU0FBUyxFQUFFLFFB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 |
@@ -96,2 +96,2 @@ "use strict"; | ||
exports.Postgres = Postgres; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvcG9zdGdyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFOzs7Ozs7Ozs7O0FBRUYsd0NBQXdDO0FBQ3hDLGdDQUE2QjtBQUU3QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUVoQyxNQUFNLEdBQUcsR0FBb0IsU0FBUyxDQUFDO0FBQ3RDLHlCQUF5QjtDQUN6QixDQUFDLENBQUM7QUFFSCxNQUFhLFFBQVE7SUFXcEIsWUFBb0IsZ0JBQXdCO1FBQXhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQVZyQyxTQUFJLEdBQUcsVUFBVSxDQUFDO0lBWXpCLENBQUM7SUFWTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDeEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsT0FBTyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBT00sSUFBSTtRQUNWLHlCQUF5QjtRQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDdkMsQ0FBQztRQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFWSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWtDOztZQUMvRCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckUsQ0FBQztLQUFBO0lBRVksR0FBRyxDQUFDLEdBQVcsRUFBRSxVQUFrQzs7WUFDL0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkIsSUFBSTtnQkFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNyRTtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNaLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRztvQkFDOUQsT0FBTyxFQUFFLENBQUM7aUJBQ1Y7Z0JBQ0QsTUFBTSxFQUFFLENBQUM7YUFDVDtRQUNGLENBQUM7S0FBQTtJQUVZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsVUFBa0MsRUFBRSxRQUFpQjs7WUFDbEYsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsR0FBRyxJQUFJLGNBQWMsUUFBUSxFQUFFLENBQUM7YUFDaEM7WUFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hGLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxLQUFLOztZQUNqQiwwQ0FBMEM7UUFDM0MsQ0FBQztLQUFBO0lBRVksSUFBSSxDQUFDLEdBQVc7O1lBQzVCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTztRQUNSLENBQUM7S0FBQTtDQUNEO0FBOURELDRCQThEQyJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvcG9zdGdyZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFOzs7Ozs7Ozs7O0FBRUYsd0NBQXdDO0FBQ3hDLGdDQUE2QjtBQUU3QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUVoQyxNQUFNLEdBQUcsR0FBb0IsU0FBUyxDQUFDO0FBQ3RDLHlCQUF5QjtDQUN6QixDQUFDLENBQUM7QUFFSCxNQUFhLFFBQVE7SUFXcEIsWUFBb0IsZ0JBQXdCO1FBQXhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUpyQyxTQUFJLEdBQUcsVUFBVSxDQUFDO0lBTXpCLENBQUM7SUFaTSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVc7UUFDeEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDNUMsT0FBTyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBU00sSUFBSTtRQUNWLHlCQUF5QjtRQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDdkMsQ0FBQztRQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFWSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWtDOztZQUMvRCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckUsQ0FBQztLQUFBO0lBRVksR0FBRyxDQUFDLEdBQVcsRUFBRSxVQUFrQzs7WUFDL0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkIsSUFBSTtnQkFDSCxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNyRTtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNaLElBQUksRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRztvQkFDOUQsT0FBTyxFQUFFLENBQUM7aUJBQ1Y7Z0JBQ0QsTUFBTSxFQUFFLENBQUM7YUFDVDtRQUNGLENBQUM7S0FBQTtJQUVZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsVUFBa0MsRUFBRSxRQUFpQjs7WUFDbEYsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsR0FBRyxJQUFJLGNBQWMsUUFBUSxFQUFFLENBQUM7YUFDaEM7WUFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2hGLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxLQUFLOztZQUNqQiwwQ0FBMEM7UUFDM0MsQ0FBQztLQUFBO0lBRVksSUFBSSxDQUFDLEdBQVc7O1lBQzVCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTztRQUNSLENBQUM7S0FBQTtDQUNEO0FBOURELDRCQThEQyJ9 |
@@ -15,2 +15,3 @@ "use strict"; | ||
const log = new log_1.Log("DbPuppetStore"); | ||
// tslint:disable:no-magic-numbers | ||
const PUPPET_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
@@ -76,3 +77,3 @@ const MXID_INFO_LOCK_TIMEOUT = 1000; | ||
else { | ||
query = `UPDATE puppet_mxid_store SET | ||
query = `UPDATE puppet_mxid_store SET | ||
name = $name, | ||
@@ -189,2 +190,32 @@ avatar_mxc = $avatarMxc, | ||
} | ||
joinGhostToChan(ghostMxid, chanMxid) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const exists = yield this.db.Get("SELECT * FROM ghosts_joined_chans WHERE ghost_mxid = $ghostMxid AND chan_mxid = $chanMxid", { | ||
ghostMxid, | ||
chanMxid, | ||
}); | ||
if (exists) { | ||
return; // nothing to do | ||
} | ||
yield this.db.Run("INSERT INTO ghosts_joined_chans (ghost_mxid, chan_mxid) VALUES ($ghostMxid, $chanMxid)", { | ||
ghostMxid, | ||
chanMxid, | ||
}); | ||
}); | ||
} | ||
getGhostsInChan(chan) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const result = []; | ||
const rows = yield this.db.All("SELECT * FROM ghosts_joined_chans WHERE chan_mxid = $chan", { chan }); | ||
for (const r of rows) { | ||
result.push(r.ghost_mxid); | ||
} | ||
return result; | ||
}); | ||
} | ||
emptyGhostsInChan(chan) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield this.db.Run("DELETE FROM ghosts_joined_chans WHERE chan_mxid = $chan", { chan }); | ||
}); | ||
} | ||
getRow(row) { | ||
@@ -206,2 +237,2 @@ try { | ||
exports.DbPuppetStore = DbPuppetStore; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVwcGV0c3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvcHVwcGV0c3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBLGdDQUE2QjtBQUM3Qix5REFBc0Q7QUFDdEQsNkNBQTBDO0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRXJDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFDLEVBQUUsR0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDO0FBQzVDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDO0FBaUJwQyxNQUFhLGFBQWE7SUFHekIsWUFDUyxFQUFzQjtRQUF0QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU5QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksdUJBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRVksV0FBVyxDQUFDLFVBQWtCOztZQUMxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLHVEQUF1RCxFQUFFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDM0csSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVCxPQUFPLElBQUksQ0FBQzthQUNaO1lBQ0QsT0FBTztnQkFDTixVQUFVO2dCQUNWLElBQUksRUFBRSxHQUFHLENBQUMsSUFBcUI7Z0JBQy9CLFNBQVMsRUFBRSxHQUFHLENBQUMsVUFBMkI7Z0JBQzFDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBc0I7YUFDcEIsQ0FBQztRQUNoQixDQUFDO0tBQUE7SUFFWSxtQkFBbUIsQ0FBQyxVQUFrQjs7WUFDbEQsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMs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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVwcGV0c3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGIvcHVwcGV0c3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBLGdDQUE2QjtBQUM3Qix5REFBc0Q7QUFDdEQsNkNBQTBDO0FBRTFDLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRXJDLGtDQUFrQztBQUNsQyxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUNsRCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQztBQWtCcEMsTUFBYSxhQUFhO0lBR3pCLFlBQ1MsRUFBc0I7UUFBdEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFFOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHVCQUFVLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVZLFdBQVcsQ0FBQyxVQUFrQjs7WUFDMUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1REFBdUQsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsT0FBTyxJQUFJLENBQUM7YUFDWjtZQUNELE9BQU87Z0JBQ04sVUFBVTtnQkFDVixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQXFCO2dCQUMvQixTQUFTLEVBQUUsR0FBRyxDQUFDLFVBQTJCO2dCQUMxQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQXNCO2FBQ3BCLENBQUM7UUFDaEIsQ0FBQztLQUFBO0lBRVksbUJBQW1CLENBQUMsVUFBa0I7O1lBQ2xELE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENB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 |
@@ -14,2 +14,3 @@ "use strict"; | ||
const log = new log_1.Log("DbUserStore"); | ||
// tslint:disable-next-line:no-magic-numbers | ||
const USERS_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
@@ -21,18 +22,20 @@ class DbUserStore { | ||
} | ||
newData(userId) { | ||
newData(puppetId, userId) { | ||
return { | ||
puppetId, | ||
userId, | ||
}; | ||
} | ||
get(userId) { | ||
get(puppetId, userId) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const cached = this.usersCache.get(userId); | ||
const cacheKey = `${puppetId};${userId}`; | ||
const cached = this.usersCache.get(cacheKey); | ||
if (cached) { | ||
return cached; | ||
} | ||
const row = yield this.db.Get("SELECT * FROM user_store WHERE user_id = $id", { id: userId }); | ||
const row = yield this.db.Get("SELECT * FROM user_store WHERE user_id = $id AND puppet_id = $pid", { id: userId, pid: puppetId }); | ||
if (!row) { | ||
return null; | ||
} | ||
const data = this.newData(userId); | ||
const data = this.newData(puppetId, userId); | ||
data.name = row.name; | ||
@@ -42,3 +45,3 @@ data.avatarUrl = row.avatar_url; | ||
data.avatarHash = row.avatar_hash; | ||
this.usersCache.set(userId, data); | ||
this.usersCache.set(cacheKey, data); | ||
return data; | ||
@@ -49,3 +52,3 @@ }); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const exists = yield this.db.Get("SELECT * FROM user_store WHERE user_id = $id", { id: data.userId }); | ||
const exists = yield this.db.Get("SELECT * FROM user_store WHERE user_id = $id AND puppet_id = $pid", { id: data.userId, pid: data.puppetId }); | ||
let query = ""; | ||
@@ -55,2 +58,3 @@ if (!exists) { | ||
user_id, | ||
puppet_id, | ||
name, | ||
@@ -62,2 +66,3 @@ avatar_url, | ||
$user_id, | ||
$puppet_id, | ||
$name, | ||
@@ -75,6 +80,7 @@ $avatar_url, | ||
avatar_hash = $avatar_hash | ||
WHERE user_id = $user_id`; | ||
WHERE user_id = $user_id AND puppet_id = $puppet_id`; | ||
} | ||
yield this.db.Run(query, { | ||
user_id: data.userId, | ||
puppet_id: data.puppetId, | ||
name: data.name || null, | ||
@@ -85,7 +91,18 @@ avatar_url: data.avatarUrl || null, | ||
}); | ||
this.usersCache.set(data.userId, data); | ||
const cacheKey = `${data.puppetId};${data.userId}`; | ||
this.usersCache.set(cacheKey, data); | ||
}); | ||
} | ||
delete(data) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
yield this.db.Run("DELETE FROM user_store WHERE user_id = $user_id AND puppet_id = $puppet_id", { | ||
user_id: data.userId, | ||
puppet_id: data.puppetId, | ||
}); | ||
const cacheKey = `${data.puppetId};${data.userId}`; | ||
this.usersCache.delete(cacheKey); | ||
}); | ||
} | ||
} | ||
exports.DbUserStore = DbUserStore; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RiL3VzZXJzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsZ0NBQTZCO0FBQzdCLHlEQUFzRDtBQUV0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVuQyxNQUFNLG9CQUFvQixHQUFHLElBQUksR0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQztBQVUzQyxNQUFhLFdBQVc7SUFFdkIsWUFDUyxFQUFzQjtRQUF0QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksdUJBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxPQUFPLENBQUMsTUFBYztRQUM1QixPQUFPO1lBQ04sTUFBTTtTQUNhLENBQUM7SUFDdEIsQ0FBQztJQUVZLEdBQUcsQ0FBQyxNQUFjOztZQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLE1BQU0sRUFBRTtnQkFDWCxPQUFPLE1BQU0sQ0FBQzthQUNkO1lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FDNUIsOENBQThDLEVBQUUsRUFBQyxFQUFFLEVBQUUsTUFBTSxFQUFDLENBQzVELENBQUM7WUFDRixJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNULE9BQU8sSUFBSSxDQUFDO2FBQ1o7WUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQW1CLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBMkIsQ0FBQztZQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUEwQixDQUFDO1lBQ2hELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQTRCLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztLQUFBO0lBRVksR0FBRyxDQUFDLElBQXFCOztZQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUMvQiw4Q0FBOEMsRUFBRSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFDLENBQ2pFLENBQUM7WUFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNaLEtBQUssR0FBRzs7Ozs7Ozs7Ozs7O0tBWU4sQ0FBQzthQUNIO2lCQUFNO2dCQUNOLEtBQUssR0FBRzs7Ozs7NkJBS2tCLENBQUM7YUFDM0I7WUFDRCxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDeEIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJO2dCQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJO2dCQUNsQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJO2dCQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJO2FBQ3BDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQztLQUFBO0NBQ0Q7QUF0RUQsa0NBc0VDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RiL3VzZXJzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsZ0NBQTZCO0FBQzdCLHlEQUFzRDtBQUV0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUVuQyw0Q0FBNEM7QUFDNUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFXakQsTUFBYSxXQUFXO0lBRXZCLFlBQ1MsRUFBc0I7UUFBdEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFFOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWdCLEVBQUUsTUFBYztRQUM5QyxPQUFPO1lBQ04sUUFBUTtZQUNSLE1BQU07U0FDYSxDQUFDO0lBQ3RCLENBQUM7SUFFWSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxNQUFjOztZQUNoRCxNQUFNLFFBQVEsR0FBRyxHQUFHLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QyxJQUFJLE1BQU0sRUFBRTtnQkFDWCxPQUFPLE1BQU0sQ0FBQzthQUNkO1lBQ0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FDNUIsbUVBQW1FLEVBQUUsRUFBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUMsQ0FDaEcsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsT0FBTyxJQUFJLENBQUM7YUFDWjtZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQW1CLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBMkIsQ0FBQztZQUNqRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUEwQixDQUFDO1lBQ2hELElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFdBQTRCLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztLQUFBO0lBRVksR0FBRyxDQUFDLElBQXFCOztZQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUMvQixtRUFBbUUsRUFBRSxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFDLENBQzFHLENBQUM7WUFDRixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNaLEtBQUssR0FBRzs7Ozs7Ozs7Ozs7Ozs7S0FjTixDQUFDO2FBQ0g7aUJBQU07Z0JBQ04sS0FBSyxHQUFHOzs7Ozt3REFLNkMsQ0FBQzthQUN0RDtZQUNELE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSTtnQkFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSTtnQkFDbEMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSTtnQkFDbEMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSTthQUNwQyxDQUFDLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDO0tBQUE7SUFFWSxNQUFNLENBQUMsSUFBcUI7O1lBQ3hDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsNEVBQTRFLEVBQUU7Z0JBQy9GLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLENBQUMsQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQztLQUFBO0NBQ0Q7QUFyRkQsa0NBcUZDIn0= |
@@ -42,2 +42,2 @@ "use strict"; | ||
exports.PuppetBridgeJoinRoomStrategy = PuppetBridgeJoinRoomStrategy; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pvaW5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUEsK0JBQTRCO0FBRTVCLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRXBDLE1BQWEsNEJBQTRCO0lBQ3hDLFlBQ1Msa0JBQXFDLEVBQ3JDLE1BQW9CO1FBRHBCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUN6QixDQUFDO0lBRVEsUUFBUSxDQUFDLGFBQXFCLEVBQUUsTUFBYyxFQUFFLE9BQW1EOztZQUMvRyxJQUFJO2dCQUNILE9BQU8sTUFBTSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDcEM7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDYixHQUFHLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQ3hDLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNaLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDaEQ7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDNUIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQ2pFO3FCQUFNO29CQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN2QjthQUNEO1FBQ0YsQ0FBQztLQUFBO0NBQ0Q7QUF4QkQsb0VBd0JDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9pbnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2pvaW5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUEsK0JBQTRCO0FBRTVCLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRXBDLE1BQWEsNEJBQTRCO0lBQ3hDLFlBQ1Msa0JBQXFDLEVBQ3JDLE1BQW9CO1FBRHBCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUN6QixDQUFDO0lBRVEsUUFBUSxDQUNwQixhQUFxQixFQUNyQixNQUFjLEVBQ2QsT0FBbUQ7O1lBRW5ELElBQUk7Z0JBQ0gsT0FBTyxNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNwQztZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1osTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO2lCQUNoRDtnQkFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO29CQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztpQkFDakU7cUJBQU07b0JBQ04sT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3ZCO2FBQ0Q7UUFDRixDQUFDO0tBQUE7Q0FDRDtBQTVCRCxvRUE0QkMifQ== |
@@ -53,2 +53,3 @@ "use strict"; | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(p); | ||
@@ -59,2 +60,3 @@ } | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(this.presenceQueue[index]); | ||
@@ -76,2 +78,3 @@ } | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(p); | ||
@@ -82,2 +85,3 @@ } | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(this.presenceQueue[index]); | ||
@@ -132,2 +136,2 @@ } | ||
exports.PresenceHandler = PresenceHandler; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VuY2VoYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ByZXNlbmNlaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsK0JBQTRCO0FBRTVCLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFldkMsTUFBYSxlQUFlO0lBRzNCLFlBQ1MsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUU1QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRVksS0FBSyxDQUFDLFlBQW9COztZQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ1o7WUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLCtDQUErQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDdEUsWUFBWSxDQUFDLENBQUM7UUFDaEIsQ0FBQztLQUFBO0lBRU0sSUFBSTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQztZQUNoRCxPQUFPO1NBQ1A7UUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDdEMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN0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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VuY2VoYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3ByZXNlbmNlaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsK0JBQTRCO0FBRTVCLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFldkMsTUFBYSxlQUFlO0lBRzNCLFlBQ1MsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUU1QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRVksS0FBSyxDQUFDLFlBQW9COztZQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ1o7WUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLCtDQUErQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFDdEUsWUFBWSxDQUFDLENBQUM7UUFDaEIsQ0FBQztLQUFBO0lBRU0sSUFBSTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsQ0FBQztZQUNoRCxPQUFPO1NBQ1A7UUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDdEMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRU0sR0FBRyxDQUFDLElBQVksRUFBRSxRQUF3QjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixPQUFPO1NBQ1A7UUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLE9BQU8sUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMxRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sQ0FBQyxHQUFHO2dCQUNULElBQUk7Z0JBQ0osUUFBUTthQUNSLENBQUM7WUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQiwyQ0FBMkM7WUFDM0MsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjthQUFNO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzlDLDJDQUEyQztZQUMzQyxnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNsRDtJQUNGLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBWSxFQUFFLE1BQWM7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsT0FBTztTQUNQO1FBQ0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNqQixNQUFNLENBQUMsR0FBRztnQkFDVCxJQUFJO2dCQUNKLE1BQU07YUFDTixDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsMkNBQTJDO1lBQzNDLGdEQUFnRDtZQUNoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUMxQywyQ0FBMkM7WUFDM0MsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbEQ7SUFDRixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVk7UUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN2RixDQUFDO0lBRWEscUJBQXFCOztZQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hDLElBQUksSUFBSSxFQUFFO2dCQUNULE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO29CQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDOUI7cUJBQU07b0JBQ04sR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLDJCQUEyQixDQUFDLENBQUM7aUJBQzlEO2FBQ0Q7UUFDRixDQUFDO0tBQUE7SUFFYSxpQkFBaUIsQ0FBQyxJQUF5Qjs7WUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVELE1BQU0sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDaEMsTUFBTSxTQUFTLEdBQTBCLEVBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUMsQ0FBQztZQUNuRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNuQztZQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxJQUFJLGNBQWMsSUFBSSxDQUFDLFFBQVEsV0FBVyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNuRyxJQUFJO2dCQUNILDJCQUEyQjtnQkFDM0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUN2QyxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxNQUFNLEdBQUcsR0FBRywrQkFBK0IsTUFBTSxTQUFTLENBQUM7Z0JBQzNELE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNwRDtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNaLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0NBQXdDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQzlEO1FBQ0YsQ0FBQztLQUFBO0NBQ0Q7QUF6SEQsMENBeUhDIn0= |
@@ -33,7 +33,40 @@ "use strict"; | ||
} | ||
getMxid(puppetMxid) { | ||
getMxid(puppetId) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
return yield this.puppetStore.getMxid(puppetMxid); | ||
return yield this.puppetStore.getMxid(puppetId); | ||
}); | ||
} | ||
parseToken(mxid, token) { | ||
let hsUrl = mxid.split(":")[1]; | ||
if (hsUrl === "localhost") { | ||
hsUrl = "http://" + hsUrl; | ||
} | ||
else { | ||
hsUrl = "https://" + hsUrl; | ||
} | ||
return { token, hsUrl }; | ||
} | ||
getToken(puppetId) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
let mxid = ""; | ||
if (typeof puppetId === "string") { | ||
mxid = puppetId; | ||
} | ||
else { | ||
mxid = yield this.getMxid(puppetId); | ||
} | ||
const info = yield this.puppetStore.getMxidInfo(mxid); | ||
if (!info || !info.token) { | ||
return null; | ||
} | ||
return this.parseToken(mxid, info.token); | ||
}); | ||
} | ||
setToken(mxid, token) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const info = yield this.puppetStore.getOrCreateMxidInfo(mxid); | ||
info.token = token; | ||
yield this.puppetStore.setMxidInfo(info); | ||
}); | ||
} | ||
setUserId(puppetId, userId) { | ||
@@ -99,3 +132,3 @@ return __awaiter(this, void 0, void 0, function* () { | ||
const datas = yield this.getForMxid(puppetMxid); | ||
let descs = []; | ||
const descs = []; | ||
for (const data of datas) { | ||
@@ -125,2 +158,2 @@ descs.push(yield this.getDescFromData(data)); | ||
exports.Provisioner = Provisioner; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlzaW9uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlzaW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBLCtCQUE0QjtBQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQVFuQyxNQUFhLFdBQVc7SUFFdkIsWUFDUyxNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRTVCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDNUMsQ0FBQztJQUVZLE1BQU07O1lBQ2xCLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hDLENBQUM7S0FBQTtJQUVZLFVBQVUsQ0FBQyxVQUFrQjs7WUFDekMsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FBQTtJQUVZLEdBQUcsQ0FBQyxRQUFnQjs7WUFDaEMsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7S0FBQTtJQUVZLE9BQU8sQ0FBQyxVQUFrQjs7WUFDdEMsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7S0FBQTtJQUVZLFNBQVMsQ0FBQyxRQUFnQixFQUFFLE1BQWM7O1lBQ3RELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUM7S0FBQTtJQUVZLE9BQU8sQ0FBQyxRQUFnQixFQUFFLElBQVM7O1lBQy9DLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlzaW9uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlzaW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVBLCtCQUE0QjtBQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQWFuQyxNQUFhLFdBQVc7SUFFdkIsWUFDUyxNQUFvQjtRQUFwQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRTVCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDNUMsQ0FBQztJQUVZLE1BQU07O1lBQ2xCLE9BQU8sTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hDLENBQUM7S0FBQTtJQUVZLFVBQVUsQ0FBQyxVQUFrQjs7WUFDekMsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FBQTtJQUVZLEdBQUcsQ0FBQyxRQUFnQjs7WUFDaEMsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7S0FBQTtJQUVZLE9BQU8sQ0FBQyxRQUFnQjs7WUFDcEMsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELENBQUM7S0FBQTtJQUVNLFVBQVUsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM1QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUMxQixLQUFLLEdBQUcsU0FBUyxHQUFHLEtBQUssQ0FBQztTQUMxQjthQUFNO1lBQ04sS0FBSyxHQUFHLFVBQVUsR0FBRyxLQUFLLENBQUM7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 |
@@ -29,12 +29,5 @@ "use strict"; | ||
const log = new log_1.Log("PuppetBridge"); | ||
// tslint:disable-next-line:no-magic-numbers | ||
const PUPPET_INVITE_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
; | ||
; | ||
; | ||
; | ||
; | ||
; | ||
; | ||
; | ||
; | ||
const DEFAULT_TYPING_TIMEOUT = 30000; | ||
class PuppetBridge extends events_1.EventEmitter { | ||
@@ -58,3 +51,3 @@ constructor(registrationPath, configPath, features) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
this.readConfig(); | ||
yield this.readConfig(); | ||
this.store = new store_1.Store(this.config.database); | ||
@@ -66,3 +59,3 @@ yield this.store.init(); | ||
this.presenceHandler = new presencehandler_1.PresenceHandler(this); | ||
this.typingHandler = new typinghandler_1.TypingHandler(this); | ||
this.typingHandler = new typinghandler_1.TypingHandler(this, this.features.typingTimeout || DEFAULT_TYPING_TIMEOUT); | ||
this.botProvisioner = new botprovisioner_1.BotProvisioner(this); | ||
@@ -179,5 +172,20 @@ }); | ||
log.verbose("Got request to update a channel"); | ||
yield this.chanSync.getMxid(chan); | ||
yield this.chanSync.getMxid(chan, undefined, undefined, false); | ||
}); | ||
} | ||
unbridgeChannelByMxid(mxid) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const chan = yield this.chanSync.getRemoteHandler(mxid); | ||
yield this.unbridgeChannel(chan); | ||
}); | ||
} | ||
unbridgeChannel(chan) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (!chan) { | ||
return; | ||
} | ||
log.info(`Got request to unbridge channel puppetId=${chan.puppetId} roomId=${chan.roomId}`); | ||
yield this.chanSync.delete(chan); | ||
}); | ||
} | ||
setUserPresence(user, presence) { | ||
@@ -292,2 +300,3 @@ return __awaiter(this, void 0, void 0, function* () { | ||
body: opts.body, | ||
source: "remote", | ||
}; | ||
@@ -338,2 +347,3 @@ if (opts.formatted_body) { | ||
url: fileMxc, | ||
source: "remote", | ||
}; | ||
@@ -360,7 +370,17 @@ if (typeof thing === "string") { | ||
const client = yield this.userSync.getClient(params.user); | ||
const { mxid, created } = yield this.chanSync.getMxid(params.chan, client, [puppetMxid]); | ||
const userId = yield client.getUserId(); | ||
// we could be the one creating the room, no need to invite ourself | ||
const invites = []; | ||
if (userId !== puppetMxid) { | ||
invites.push(puppetMxid); | ||
} | ||
else { | ||
// else we need the bot client in order to be able to receive matrix messages | ||
invites.push(yield this.botIntent.underlyingClient.getUserId()); | ||
} | ||
const { mxid, created } = yield this.chanSync.getMxid(params.chan, client, invites); | ||
// ensure that the intent is in the room | ||
const userId = yield client.getUserId(); | ||
if (this.appservice.isNamespacedUser(userId)) { | ||
yield this.appservice.getIntentForUserId(userId).ensureRegisteredAndJoined(mxid); | ||
const intent = this.appservice.getIntentForUserId(userId); | ||
yield intent.ensureRegisteredAndJoined(mxid); | ||
} | ||
@@ -380,4 +400,7 @@ // ensure our puppeted user is in the room | ||
} | ||
yield client.inviteUser(puppetMxid, mxid); | ||
this.ghostInviteCache.set(cacheKey, true); | ||
// we can't really invite ourself... | ||
if ((yield inviteClient.getUserId()) !== puppetMxid) { | ||
yield client.inviteUser(puppetMxid, mxid); | ||
this.ghostInviteCache.set(cacheKey, true); | ||
} | ||
} | ||
@@ -403,5 +426,10 @@ } | ||
if (event.type === "m.room.member" && event.content) { | ||
if (event.content.membership === "join") { | ||
yield this.handleJoinEvent(roomId, event); | ||
return; | ||
switch (event.content.membership) { | ||
case "join": | ||
yield this.handleJoinEvent(roomId, event); | ||
return; | ||
case "ban": | ||
case "leave": | ||
yield this.handleLeaveEvent(roomId, event); | ||
return; | ||
} | ||
@@ -420,3 +448,3 @@ } | ||
// this isn't a room we handle....so let's do provisioning! | ||
this.botProvisioner.processEvent(event); | ||
yield this.botProvisioner.processEvent(event); | ||
return; | ||
@@ -429,4 +457,8 @@ } | ||
log.info(`New message by ${event.sender} of type ${event.type} to process!`); | ||
if (event.content.source === "remote") { | ||
log.verbose("Dropping event due to de-duping..."); | ||
return; | ||
} | ||
let msgtype = event.content.msgtype; | ||
if (event.type == "m.sticker") { | ||
if (event.type === "m.sticker") { | ||
msgtype = "m.sticker"; | ||
@@ -436,10 +468,11 @@ } | ||
// short-circuit text stuff | ||
const data = { | ||
const msgData = { | ||
body: event.content.body, | ||
emote: msgtype === "m.emote", | ||
notice: msgtype === "m.notice", | ||
}; | ||
if (event.content.format) { | ||
data.formatted_body = event.content.formatted_body; | ||
msgData.formatted_body = event.content.formatted_body; | ||
} | ||
this.emit("message", room, data, event); | ||
this.emit("message", room, msgData, event); | ||
return; | ||
@@ -489,2 +522,13 @@ } | ||
} | ||
handleGhostJoinEvent(roomId, ghostId) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (ghostId === this.appservice.botIntent.userId) { | ||
return; // we don't handle ghost user here | ||
} | ||
// we CAN'T check for if the room exists here, as if we create a new room | ||
// the m.room.member event triggers before the room is incerted into the store | ||
log.verbose("adding ghost to chan cache"); | ||
yield this.store.puppetStore.joinGhostToChan(ghostId, roomId); | ||
}); | ||
} | ||
handleJoinEvent(roomId, event) { | ||
@@ -494,6 +538,8 @@ return __awaiter(this, void 0, void 0, function* () { | ||
const userId = event.state_key; | ||
if (this.appservice.isNamespacedUser(event.sender)) { | ||
return; // we don't handle things from our own namespace | ||
if (this.appservice.isNamespacedUser(userId)) { | ||
// let's add the ghost to the things to quit.... | ||
yield this.handleGhostJoinEvent(roomId, userId); | ||
return; | ||
} | ||
const room = yield this.chanSync.getRemoteHandler(event.room_id); | ||
const room = yield this.chanSync.getRemoteHandler(roomId); | ||
if (!room) { | ||
@@ -533,2 +579,24 @@ return; // this isn't a room we handle, just ignore it | ||
} | ||
handleLeaveEvent(roomId, event) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const userId = event.state_key; | ||
if (this.appservice.isNamespacedUser(userId)) { | ||
if (userId !== event.sender) { | ||
// puppet got kicked, unbridging room | ||
yield this.unbridgeChannelByMxid(roomId); | ||
} | ||
return; | ||
} | ||
const room = yield this.chanSync.getRemoteHandler(roomId); | ||
if (!room) { | ||
return; // this isn't a room we handle, just ignore it | ||
} | ||
const puppetMxid = yield this.provisioner.getMxid(room.puppetId); | ||
if (userId !== puppetMxid) { | ||
return; // it wasn't us | ||
} | ||
log.verbose(`Received leave event from ${puppetMxid}`); | ||
yield this.unbridgeChannel(room); | ||
}); | ||
} | ||
handleInviteEvent(roomId, event) { | ||
@@ -545,2 +613,2 @@ return __awaiter(this, void 0, void 0, function* () { | ||
exports.PuppetBridge = PuppetBridge; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVwcGV0YnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1cHBldGJyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLG1EQU13QjtBQUN4QixnQ0FBZ0M7QUFDaEMsZ0NBQWdDO0FBQ2hDLG1DQUFzQztBQUN0Qyw2REFBK0Y7QUFDL0YsdURBQXdFO0FBQ3hFLHFDQUEwQztBQUMxQyxpQ0FBOEI7QUFDOUIsK0JBQTRCO0FBSTVCLCtDQUE0QztBQUM1QyxtQ0FBZ0M7QUFDaEMsd0RBQXFEO0FBQ3JELGlEQUE4RDtBQUM5RCxxREFBa0Q7QUFDbEQsdURBQW9FO0FBQ3BFLG1EQUFnRDtBQUVoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUVwQyxNQUFNLDRCQUE0QixHQUFHLElBQUksR0FBQyxFQUFFLEdBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQztBQUtsRCxDQUFDO0FBT0QsQ0FBQztBQWFELENBQUM7QUFLRCxDQUFDO0FBT0QsQ0FBQztBQU1ELENBQUM7QUFZRCxDQUFDO0FBT0QsQ0FBQztBQWNELENBQUM7QUFFRixNQUFhLFlBQWEsU0FBUSxxQkFBWTtJQWE3QyxZQUNTLGdCQUF3QixFQUN4QixVQUFrQixFQUNsQixRQUErQjtRQUV2QyxLQUFLLEVBQUUsQ0FBQztRQUpBLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQXVCO1FBR3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLHVCQUFVLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQXdCLENBQUM7SUFDdkMsQ0FBQztJQUVZLFVBQVU7O1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx1QkFBYyxFQUFFLENBQUM7WUFDbkMsSUFBSSxD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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVwcGV0YnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3B1cHBldGJyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLG1EQU13QjtBQUN4QixnQ0FBZ0M7QUFDaEMsZ0NBQWdDO0FBQ2hDLG1DQUFzQztBQUN0Qyw2REFBdUU7QUFDdkUsdURBQWlFO0FBQ2pFLHFDQUEwQztBQUMxQyxpQ0FBOEI7QUFDOUIsK0JBQTRCO0FBSTVCLCtDQUE0QztBQUM1QyxtQ0FBZ0M7QUFDaEMsd0RBQXFEO0FBQ3JELGlEQUE4RDtBQUM5RCxxREFBa0Q7QUFDbEQsdURBQW9FO0FBQ3BFLG1EQUFnRDtBQUVoRCxNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUVwQyw0Q0FBNEM7QUFDNUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDekQsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUM7QUEyRXJDLE1BQWEsWUFBYSxTQUFRLHFCQUFZO0lBYTdDLFlBQ1MsZ0JBQXdCLEVBQ3hCLFVBQWtCLEVBQ2xCLFFBQStCO1FBRXZDLEtBQUssRUFBRSxDQUFDO1FBSkEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7UUFHdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksdUJBQVUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBd0IsQ0FBQztJQUN2QyxDQUFDO0lBRVksVUFBVTs7WUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHVCQUFjLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFD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 |
@@ -18,3 +18,3 @@ "use strict"; | ||
const log = new log_1.Log("Store"); | ||
exports.CURRENT_SCHEMA = 2; | ||
exports.CURRENT_SCHEMA = 4; | ||
class Store { | ||
@@ -68,3 +68,3 @@ constructor(config) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
this.db.Close(); | ||
yield this.db.Close(); | ||
}); | ||
@@ -133,2 +133,2 @@ } | ||
exports.Store = Store; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBLDBDQUF1QztBQUN2Qyw0Q0FBeUM7QUFDekMsK0JBQTRCO0FBRTVCLDhDQUE2QztBQUM3Qyw4Q0FBNkM7QUFDN0Msa0RBQWlEO0FBRWpELE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRWhCLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUVoQyxNQUFhLEtBQUs7SUFNakIsWUFBb0IsTUFBOEI7UUFBOUIsV0FBTSxHQUFOLE1BQU0sQ0FBd0I7SUFBSSxDQUFDO0lBRXZELElBQUksU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUVZLElBQUksQ0FBQyxpQkFBeUIsQ0FBQzs7WUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLElBQUksT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxZQUFZLEdBQUcsY0FBYyxJQUFJLHNCQUFjLENBQUM7WUFDdEQsR0FBRyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsT0FBTyx1QkFBdUIsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNyRixPQUFPLE9BQU8sR0FBRyxZQUFZLEVBQUU7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUNBLDBDQUF1QztBQUN2Qyw0Q0FBeUM7QUFDekMsK0JBQTRCO0FBRTVCLDhDQUE2QztBQUM3Qyw4Q0FBNkM7QUFDN0Msa0RBQWlEO0FBRWpELE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRWhCLFFBQUEsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUVoQyxNQUFhLEtBQUs7SUFNakIsWUFBb0IsTUFBOEI7UUFBOUIsV0FBTSxHQUFOLE1BQU0sQ0FBd0I7SUFBSSxDQUFDO0lBRXZELElBQUksU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUVZLElBQUksQ0FBQyxpQkFBeUIsQ0FBQzs7WUFDM0MsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFCLElBQUksT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDNUMsTUFBTSxZQUFZLEdBQUcsY0FBYyxJQUFJLHNCQUFjLENBQUM7WUFDdEQsR0FBRyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsT0FBTyx1QkFBdUIsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNyRixPQUFPLE9BQU8sR0FBRyxZQUFZLEVBQUU7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7Z0JB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 |
@@ -25,3 +25,4 @@ "use strict"; | ||
const p = new Promise((resolve) => { | ||
// first we check if the lock has the key....if not, e.g. if it got released too quickly, we still want to resolve our promise | ||
// first we check if the lock has the key....if not, e.g. if it | ||
// got released too quickly, we still want to resolve our promise | ||
if (!this.locks.has(key)) { | ||
@@ -66,2 +67,2 @@ resolve(); | ||
exports.Lock = Lock; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3R1cmVzL2xvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE1BQWEsSUFBSTtJQUdoQixZQUNTLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRXZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFNO1FBQ2hCLDZEQUE2RDtRQUM3RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE9BQU87U0FDUDtRQUVELG1GQUFtRjtRQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckMsOEhBQThIO1lBQzlILElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTzthQUNQO1lBQ0Qsc0VBQXNFO1lBQ3RFLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQiwwQkFBMEI7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxPQUFPLENBQUMsR0FBTTtRQUNwQixrRUFBa0U7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLE9BQU87U0FDUDtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ1Q7UUFDRCxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BCLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVksSUFBSSxDQUFDLEdBQU07O1lBQ3ZCLDBEQUEwRDtZQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxJQUFJLE9BQU8sRUFBRTtnQkFDWixNQUFNLE9BQU8sQ0FBQzthQUNkO1FBQ0YsQ0FBQztLQUFBO0NBQ0Q7QUExREQsb0JBMERDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3R1cmVzL2xvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE1BQWEsSUFBSTtJQUdoQixZQUNTLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRXZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFNO1FBQ2hCLDZEQUE2RDtRQUM3RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE9BQU87U0FDUDtRQUVELG1GQUFtRjtRQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFLLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckMsK0RBQStEO1lBQy9ELGlFQUFpRTtZQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU87YUFDUDtZQUNELHNFQUFzRTtZQUN0RSxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakIsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQU07UUFDcEIsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QixPQUFPO1NBQ1A7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNUO1FBQ0QsSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNwQixZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVZLElBQUksQ0FBQyxHQUFNOztZQUN2QiwwREFBMEQ7WUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsSUFBSSxPQUFPLEVBQUU7Z0JBQ1osTUFBTSxPQUFPLENBQUM7YUFDZDtRQUNGLENBQUM7S0FBQTtDQUNEO0FBM0RELG9CQTJEQyJ9 |
@@ -14,4 +14,5 @@ "use strict"; | ||
class TypingHandler { | ||
constructor(bridge) { | ||
constructor(bridge, timeout) { | ||
this.bridge = bridge; | ||
this.timeout = timeout; | ||
} | ||
@@ -32,3 +33,3 @@ set(mxid, roomId, typing) { | ||
typing, | ||
timeout: 30000, | ||
timeout: this.timeout, | ||
}); | ||
@@ -46,2 +47,2 @@ } | ||
exports.TypingHandler = TypingHandler; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwaW5naGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBpbmdoYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSwrQkFBNEI7QUFFNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFckMsTUFBYSxhQUFhO0lBQ3pCLFlBQ1MsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUN6QixDQUFDO0lBRVEsR0FBRyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsTUFBZTs7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU87YUFDUDtZQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLElBQUksWUFBWSxNQUFNLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMxRSxJQUFJO2dCQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sR0FBRyxHQUFHLDRCQUE0QixTQUFTLFdBQVcsT0FBTyxFQUFFLENBQUM7Z0JBQ3RFLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtvQkFDekQsTUFBTTtvQkFDTixPQUFPLEVBQUUsS0FBSztpQkFDZCxDQUFDLENBQUM7YUFDSDtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDMUM7UUFDRixDQUFDO0tBQUE7SUFFTyxPQUFPLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDdkYsQ0FBQztDQUNEO0FBNUJELHNDQTRCQyJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwaW5naGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBpbmdoYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSwrQkFBNEI7QUFFNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFckMsTUFBYSxhQUFhO0lBQ3pCLFlBQ1MsTUFBb0IsRUFDcEIsT0FBZTtRQURmLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUNwQixDQUFDO0lBRVEsR0FBRyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsTUFBZTs7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLE9BQU87YUFDUDtZQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLElBQUksWUFBWSxNQUFNLE9BQU8sTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMxRSxJQUFJO2dCQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sR0FBRyxHQUFHLDRCQUE0QixTQUFTLFdBQVcsT0FBTyxFQUFFLENBQUM7Z0JBQ3RFLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtvQkFDekQsTUFBTTtvQkFDTixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ3JCLENBQUMsQ0FBQzthQUNIO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUMxQztRQUNGLENBQUM7S0FBQTtJQUVPLE9BQU8sQ0FBQyxJQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN2RixDQUFDO0NBQ0Q7QUE3QkQsc0NBNkJDIn0= |
@@ -11,2 +11,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const matrix_bot_sdk_1 = require("matrix-bot-sdk"); | ||
const util_1 = require("./util"); | ||
@@ -16,2 +17,3 @@ const log_1 = require("./log"); | ||
const log = new log_1.Log("UserSync"); | ||
// tslint:disable-next-line:no-magic-numbers | ||
const CLIENT_LOOKUP_LOCK_TIMEOUT = 1000 * 60; | ||
@@ -24,7 +26,33 @@ class UserSyncroniser { | ||
} | ||
getClientFromTokenCallback(token) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (!token) { | ||
return null; | ||
} | ||
const client = new matrix_bot_sdk_1.MatrixClient(token.hsUrl, token.token); | ||
try { | ||
yield client.getUserId(); | ||
return client; | ||
} | ||
catch (err) { | ||
log.verbose("Invalid client config"); | ||
} | ||
return null; | ||
}); | ||
} | ||
getClient(data) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
// first we look if we can puppet this user to the matrix side | ||
const puppetData = yield this.bridge.provisioner.get(data.puppetId); | ||
if (puppetData && puppetData.userId === data.userId) { | ||
const token = yield this.bridge.provisioner.getToken(data.puppetId); | ||
const puppetClient = yield this.getClientFromTokenCallback(token); | ||
if (puppetClient) { | ||
return puppetClient; | ||
} | ||
} | ||
// now we fetch the ghost client | ||
yield this.clientLock.wait(data.userId); | ||
log.info("Fetching client for " + data.userId); | ||
let user = yield this.userStore.get(data.userId); | ||
let user = yield this.userStore.get(data.puppetId, data.userId); | ||
const update = { | ||
@@ -41,11 +69,14 @@ name: false, | ||
if (this.bridge.hooks.createUser) { | ||
log.verbose("Fetching new override data..."); | ||
const newData = yield this.bridge.hooks.createUser(data.puppetId, data.userId); | ||
if (newData && newData.userId === data.userId && newData.puppetId === data.puppetId) { | ||
log.verbose("got new user data to override"); | ||
data = newData; | ||
} | ||
else { | ||
log.warn("Override data is malformed! Old data:", data, "New data:", newData); | ||
} | ||
} | ||
update.name = data.name ? true : false; | ||
update.avatar = data.avatarUrl ? true : false; | ||
user = this.userStore.newData(data.userId); | ||
user = this.userStore.newData(data.puppetId, data.userId); | ||
} | ||
@@ -61,2 +92,5 @@ else { | ||
log.verbose("Updating name"); | ||
// we *don't* await here as setting the name might take a | ||
// while due to updating all those m.room.member events, we can do that in the BG | ||
// tslint:disable-next-line:no-floating-promises | ||
client.setDisplayName(data.name || ""); | ||
@@ -67,4 +101,4 @@ user.name = data.name; | ||
log.verbose("Updating avatar"); | ||
const { doUpdate, mxcUrl, hash } = yield util_1.Util.MaybeUploadFile(client, data, user.avatarHash); | ||
if (doUpdate) { | ||
const { doUpdate: updateAvatar, mxcUrl, hash } = yield util_1.Util.MaybeUploadFile(client, data, user.avatarHash); | ||
if (updateAvatar) { | ||
update.avatar = true; | ||
@@ -76,2 +110,3 @@ user.avatarUrl = data.avatarUrl; | ||
// and we might as well do this in the background | ||
// tslint:disable-next-line:no-floating-promises | ||
client.setAvatarUrl(user.avatarMxc || ""); | ||
@@ -94,4 +129,37 @@ } | ||
} | ||
getPartsFromMxid(mxid) { | ||
const suffix = this.bridge.AS.getSuffixForUserId(mxid); | ||
if (!suffix) { | ||
return null; | ||
} | ||
const MXID_MATCH_PUPPET_ID = 1; | ||
const MXID_MATCH_USER_ID = 2; | ||
const matches = suffix.match(/^(\d+)_(.*)/); | ||
if (!matches) { | ||
return null; | ||
} | ||
const puppetId = Number(matches[MXID_MATCH_PUPPET_ID]); | ||
const userId = util_1.Util.mxid2str(matches[MXID_MATCH_USER_ID]); | ||
if (isNaN(puppetId)) { | ||
return null; | ||
} | ||
return { | ||
puppetId, | ||
userId, | ||
}; | ||
} | ||
deleteForMxid(mxid) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const user = this.getPartsFromMxid(mxid); | ||
if (!user) { | ||
return null; | ||
} | ||
log.info(`Deleting ghost ${mxid}`); | ||
yield this.userStore.delete(user); | ||
const intent = this.bridge.AS.getIntentForUserId(mxid); | ||
return intent; | ||
}); | ||
} | ||
} | ||
exports.UserSyncroniser = UserSyncroniser; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnN5bmNyb25pc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VzZXJzeW5jcm9uaXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUEsaUNBQThCO0FBQzlCLCtCQUE0QjtBQUU1Qiw0Q0FBeUM7QUFFekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFaEMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLEdBQUMsRUFBRSxDQUFDO0FBVzNDLE1BQWEsZUFBZTtJQUczQixZQUNTLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksV0FBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVZLFNBQVMsQ0FBQyxJQUF3Qjs7WUFDOUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0MsSUFBSSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsTUFBTSxNQUFNLEdBQUc7Z0JBQ2QsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsTUFBTSxFQUFFLEtBQUs7YUFDYixDQUFDO1lBQ0YsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnN5bmNyb25pc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VzZXJzeW5jcm9uaXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsbURBQXNEO0FBQ3RELGlDQUE4QjtBQUM5QiwrQkFBNEI7QUFFNUIsNENBQXlDO0FBR3pDLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRWhDLDRDQUE0QztBQUM1QyxNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFXN0MsTUFBYSxlQUFlO0lBRzNCLFlBQ1MsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUU1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxXQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRVksMEJBQTBCLENBQUMsS0FBNEI7O1lBQ25FLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1gsT0FBTyxJQUFJLENBQUM7YUFDWjtZQUNELE1BQU0sTUFBTSxHQUFHLElBQUksNkJBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRCxJQUFJO2dCQUNILE1BQU0sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLE1BQU0sQ0FBQzthQUNkO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDYixDQUFDO0tBQUE7SUFFWSxTQUFTLENBQUMsSUFBaUI7O1lBQ3ZDLDhEQUE4RDtZQUM5RCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdB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 |
@@ -56,8 +56,9 @@ "use strict"; | ||
static str2mxid(a) { | ||
let buf = buffer_1.Buffer.from(a); | ||
let encoded = ''; | ||
for (let b of buf) { | ||
if (b == 0x5F) { | ||
// tslint:disable:no-magic-numbers | ||
const buf = buffer_1.Buffer.from(a); | ||
let encoded = ""; | ||
for (const b of buf) { | ||
if (b === 0x5F) { | ||
// underscore | ||
encoded += '__'; | ||
encoded += "__"; | ||
} | ||
@@ -69,21 +70,23 @@ else if ((b >= 0x61 && b <= 0x7A) || (b >= 0x30 && b <= 0x39)) { | ||
else if (b >= 0x41 && b <= 0x5A) { | ||
encoded += '_' + String.fromCharCode(b + 0x20); | ||
encoded += "_" + String.fromCharCode(b + 0x20); | ||
} | ||
else if (b < 16) { | ||
encoded += '=0' + b.toString(16); | ||
encoded += "=0" + b.toString(16); | ||
} | ||
else { | ||
encoded += '=' + b.toString(16); | ||
encoded += "=" + b.toString(16); | ||
} | ||
} | ||
return encoded; | ||
// tslint:enable:no-magic-numbers | ||
} | ||
static mxid2str(b) { | ||
let decoded = buffer_1.Buffer.alloc(b.length); | ||
// tslint:disable:no-magic-numbers | ||
const decoded = buffer_1.Buffer.alloc(b.length); | ||
let j = 0; | ||
for (let i = 0; i < b.length; i++) { | ||
let char = b[i]; | ||
if (char == '_') { | ||
const char = b[i]; | ||
if (char === "_") { | ||
i++; | ||
if (b[i] == '_') { | ||
if (b[i] === "_") { | ||
decoded[j] = 0x5F; | ||
@@ -95,3 +98,3 @@ } | ||
} | ||
else if (char == '=') { | ||
else if (char === "=") { | ||
i++; | ||
@@ -106,3 +109,4 @@ decoded[j] = parseInt(b[i] + b[i + 1], 16); | ||
} | ||
return decoded.toString('utf8', 0, j); | ||
return decoded.toString("utf8", 0, j); | ||
// tslint:enable:no-magic-numbers | ||
} | ||
@@ -125,3 +129,2 @@ static sleep(timeout) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
let updateAvatar = true; // we might set this to false if our hashes are the same | ||
let buffer = data.avatarBuffer; | ||
@@ -170,2 +173,2 @@ if ((!buffer && !data.avatarUrl) || (buffer && buffer.byteLength === 0)) { | ||
exports.Util = Util; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHNDQUFzQztBQUN0QyxtQ0FBZ0M7QUFDaEMsK0JBQStCO0FBRS9CLCtCQUE0QjtBQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUU1QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFPcEIsTUFBYSxJQUFJO0lBQ1QsTUFBTSxDQUFPLFlBQVksQ0FBQyxHQUFXLEVBQUUsVUFBZSxFQUFFOztZQUM5RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0QyxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQzVCLEVBQUUsR0FBRyxLQUFLLENBQUM7aUJBQ1g7cUJBQU07b0JBQ04sRUFBRSxHQUFHLElBQUksQ0FBQztpQkFDVjtnQkFDRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDeEMsSUFBSSxNQUFNLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxHQUFHLENBQUMsVUFBVSxLQUFLLE9BQU8sRUFBRTt3QkFDL0IsTUFBTSxDQUFDLHdCQUF3QixHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztxQkFDbEQ7b0JBQ0QsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDcEIsTUFBTSxHQUFHLGVBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMs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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHNDQUFzQztBQUN0QyxtQ0FBZ0M7QUFDaEMsK0JBQStCO0FBRS9CLCtCQUE0QjtBQUU1QixNQUFNLEdBQUcsR0FBRyxJQUFJLFNBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUU1QixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFPcEIsTUFBYSxJQUFJO0lBQ1QsTUFBTSxDQUFPLFlBQVksQ0FBQyxHQUFXLEVBQUUsVUFBZSxFQUFFOztZQUM5RCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0QyxJQUFJLEVBQUUsQ0FBQztnQkFDUCxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQzVCLEVBQUUsR0FBRyxLQUFLLENBQUM7aUJBQ1g7cUJBQU07b0JBQ04sRUFBRSxHQUFHLElBQUksQ0FBQztpQkFDVjtnQkFDRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDeEMsSUFBSSxNQUFNLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxHQUFHLENBQUMsVUFBVSxLQUFLLE9BQU8sRUFBRTt3QkFDL0IsTUFBTSxDQUFDLHdCQUF3QixHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztxQkFDbEQ7b0JBQ0QsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTt3QkFDcEIsTUFBTSxHQUFHLGVBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckMsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO3dCQUNsQixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2dCQUNILEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQyxDQUFDO1lBQ0osQ0FBQyxDQUFvQixDQUFDO1FBQ3ZCLENBQUM7S0FBQTtJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYztRQUN2QyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNoQixPQUFPLFNBQVMsQ0FBQztTQUNqQjtRQUNELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFTO1FBQy9CLGtDQUFrQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxlQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2YsYUFBYTtnQkFDYixPQUFPLElBQUksSUFBSSxDQUFDO2FBQ2hCO2lCQUFNLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFO2dCQUNoRSxXQUFXO2dCQUNYLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUNsQyxPQUFPLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2FBQy9DO2lCQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEIsT0FBTyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2pDO2lCQUFNO2dCQUNOLE9BQU8sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNoQztTQUNEO1FBQ0QsT0FBTyxPQUFPLENBQUM7UUFDZixpQ0FBaUM7SUFDbEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBUztRQUMvQixrQ0FBa0M7UUFDbEMsTUFBTSxPQUFPLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtnQkFDakIsQ0FBQyxFQUFFLENBQUM7Z0JBQ0osSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO29CQUNqQixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtxQkFBTTtvQkFDTixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ3ZDO2FBQ0Q7aUJBQU0sSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO2dCQUN4QixDQUFDLEVBQUUsQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLEVBQUUsQ0FBQzthQUNKO2lCQUFNO2dCQUNOLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsQ0FBQyxFQUFFLENBQUM7U0FDSjtRQUNELE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLGlDQUFpQztJQUNsQyxDQUFDO0lBRU0sTUFBTSxDQUFPLEtBQUssQ0FBQyxPQUFlOztZQUN4QyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0QyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRU0sTUFBTSxDQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUTs7WUFDN0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDL0I7UUFDRixDQUFDO0tBQUE7SUFFTSxNQUFNLENBQU8sZUFBZSxDQUNsQyxNQUFvQixFQUNwQixJQUF5QixFQUN6QixPQUF1Qjs7WUFFdkIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMvQixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDeEUsMERBQTBEO2dCQUMxRCxPQUFPO29CQUNOLFFBQVEsRUFBRSxJQUFJO29CQUNkLE1BQU0sRUFBRSxTQUFTO29CQUNqQixJQUFJLEVBQUUsRUFBRTtpQkFDUixDQUFDO2FBQ0Y7WUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNaLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVUsQ0FBQyxDQUFDO2FBQ2xEO1lBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU8sRUFBRTtnQkFDM0IsU0FBUyxFQUFFLFFBQVE7YUFDbkIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUNyQixpREFBaUQ7Z0JBQ2pELE9BQU87b0JBQ04sUUFBUSxFQUFFLEtBQUs7b0JBQ2YsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLElBQUk7aUJBQ0osQ0FBQzthQUNGO1lBQ0QsSUFBSTtnQkFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLE1BQU8sQ0FBQyxhQUFhLENBQzVDLE1BQU0sRUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUN4QixDQUFDO2dCQUNGLE9BQU87b0JBQ04sUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLElBQUk7aUJBQ0osQ0FBQzthQUNGO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ2IsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDaEQsT0FBTztvQkFDTixRQUFRLEVBQUUsS0FBSztvQkFDZixNQUFNLEVBQUUsU0FBUztvQkFDakIsSUFBSTtpQkFDSixDQUFDO2FBQ0Y7UUFDRixDQUFDO0tBQUE7Q0FDRDtBQS9JRCxvQkErSUMifQ== |
{ | ||
"name": "mx-puppet-bridge", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "Matrix Puppeting Bridge library", | ||
@@ -15,2 +15,3 @@ "repository": { | ||
"prepublishOnly": "npm run build", | ||
"lint": "tslint --project ./tsconfig.json -t stylish", | ||
"build": "tsc", | ||
@@ -26,3 +27,3 @@ "test": "echo \"Error: no test specified\" && exit 1" | ||
"js-yaml": "^3.13.1", | ||
"matrix-bot-sdk": "git://github.com/Sorunome/matrix-js-bot-sdk.git#4a79d976eea1a187e0e28872745591dd19f7df27", | ||
"matrix-bot-sdk": "^0.4.0-beta.1", | ||
"pg-promise": "^8.7.2", | ||
@@ -29,0 +30,0 @@ "tslint": "^5.17.0", |
@@ -27,4 +27,3 @@ import { PuppetBridge } from "./puppetbridge"; | ||
switch (arg) { | ||
case "link": | ||
{ | ||
case "link": { | ||
if (!this.provisioner.canCreate(sender)) { | ||
@@ -47,4 +46,3 @@ await this.sendMessage(roomId, "ERROR: You don't have permission to use this bridge"); | ||
} | ||
case "unlink": | ||
{ | ||
case "unlink": { | ||
if (!param || !param.trim()) { | ||
@@ -68,4 +66,3 @@ await this.sendMessage(roomId, `ERROR: You need to specify an index to unlink`); | ||
} | ||
case "list": | ||
{ | ||
case "list": { | ||
const descs = await this.provisioner.getDescMxid(sender); | ||
@@ -86,4 +83,21 @@ if (descs.length === 0) { | ||
} | ||
case "setmatrixtoken": { | ||
if (!param || !param.trim()) { | ||
await this.provisioner.setToken(sender, null); | ||
await this.sendMessage(roomId, `Removed matrix token!`); | ||
break; | ||
} | ||
const token = param.trim(); | ||
const tokenParts = this.provisioner.parseToken(sender, token); | ||
const client = await this.bridge.userSync.getClientFromTokenCallback(tokenParts); | ||
if (!client) { | ||
await this.sendMessage(roomId, "ERROR: Invalid matrix token"); | ||
break; | ||
} | ||
await this.provisioner.setToken(sender, token); | ||
await this.sendMessage(roomId, `Set matrix token`); | ||
break; | ||
} | ||
default: | ||
await this.sendMessage(roomId, `Available commands: help, list, link, unlink`); | ||
await this.sendMessage(roomId, `Available commands: help, list, link, unlink, setmatrixtoken`); | ||
} | ||
@@ -90,0 +104,0 @@ } |
@@ -11,13 +11,9 @@ import { PuppetBridge } from "./puppetbridge"; | ||
const MXID_LOOKUP_LOCK_TIMEOUT = 1000*60; | ||
// tslint:disable-next-line:no-magic-numbers | ||
const MXID_LOOKUP_LOCK_TIMEOUT = 1000 * 60; | ||
export interface IRemoteChanSend { | ||
export interface IRemoteChan { | ||
roomId: string; | ||
puppetId: number; | ||
}; | ||
export interface IRemoteChanReceive { | ||
roomId: string; | ||
puppetId: number; | ||
avatarUrl?: string | null; | ||
@@ -40,3 +36,3 @@ avatarBuffer?: Buffer | null; | ||
public async getRemoteHandler(mxid: string): Promise<IRemoteChanSend | null> { | ||
public async getRemoteHandler(mxid: string): Promise<IRemoteChan | null> { | ||
const chan = await this.chanStore.getByMxid(mxid); | ||
@@ -49,3 +45,3 @@ if (!chan) { | ||
puppetId: chan.puppetId, | ||
} as IRemoteChanSend; | ||
} as IRemoteChan; | ||
} | ||
@@ -59,4 +55,4 @@ | ||
if (!this.bridge.AS.isNamespacedUser(mxid)) { | ||
// TODO: logic if puppeted | ||
return null; | ||
const token = await this.bridge.provisioner.getToken(mxid); | ||
return await this.bridge.userSync.getClientFromTokenCallback(token); | ||
} | ||
@@ -66,6 +62,10 @@ return this.bridge.AS.getIntentForUserId(mxid).underlyingClient; | ||
public async maybeGetMxid(data: IRemoteChanReceive): Promise<string | null> { | ||
public async maybeGet(data: IRemoteChan): Promise<IChanStoreEntry | null> { | ||
const lockKey = `${data.puppetId};${data.roomId}`; | ||
await this.mxidLock.wait(lockKey); | ||
let chan = await this.chanStore.getByRemote(data.puppetId, data.roomId); | ||
return await this.chanStore.getByRemote(data.puppetId, data.roomId); | ||
} | ||
public async maybeGetMxid(data: IRemoteChan): Promise<string | null> { | ||
const chan = await this.maybeGet(data); | ||
if (!chan) { | ||
@@ -77,3 +77,8 @@ return null; | ||
public async getMxid(data: IRemoteChanReceive, client?: MatrixClient, invites?: string[]): Promise<{mxid: string; created: boolean;}> { | ||
public async getMxid( | ||
data: IRemoteChan, | ||
client?: MatrixClient, | ||
invites?: string[], | ||
doCreate: boolean = true, | ||
): Promise<{ mxid: string; created: boolean; }> { | ||
const lockKey = `${data.puppetId};${data.roomId}`; | ||
@@ -86,2 +91,3 @@ await this.mxidLock.wait(lockKey); | ||
let chan = await this.chanStore.getByRemote(data.puppetId, data.roomId); | ||
log.silly(chan); | ||
const update = { | ||
@@ -96,2 +102,8 @@ name: false, | ||
if (!chan) { | ||
if (!doCreate) { | ||
return { | ||
mxid: "", | ||
created: false, | ||
}; | ||
} | ||
log.info("Channel doesn't exist yet, creating entry..."); | ||
@@ -102,6 +114,8 @@ this.mxidLock.set(lockKey); | ||
if (this.bridge.hooks.createChan) { | ||
log.verbose("Fetching new override data..."); | ||
const newData = await this.bridge.hooks.createChan(data.puppetId, data.roomId); | ||
if (newData && newData.puppetId === data.puppetId && newData.roomId === data.roomId) { | ||
log.verbose("Got new room data to override"); | ||
data = newData; | ||
} else { | ||
log.warn("Override data is malformed! Old data:", data, "New data:", newData); | ||
} | ||
@@ -153,4 +167,4 @@ } | ||
log.verbose("Updating avatar"); | ||
const { doUpdate, mxcUrl, hash } = await Util.MaybeUploadFile(client!, data, chan.avatarHash); | ||
if (doUpdate) { | ||
const { doUpdate: updateAvatar, mxcUrl, hash } = await Util.MaybeUploadFile(client!, data, chan.avatarHash); | ||
if (updateAvatar) { | ||
update.avatar = true; | ||
@@ -195,4 +209,12 @@ chan.avatarUrl = data.avatarUrl; | ||
public async delete(data: IRemoteChan) { | ||
const chan = await this.maybeGet(data); | ||
if (!chan) { | ||
return; | ||
} | ||
await this.deleteEntries([ chan ]); | ||
} | ||
public async deleteForMxid(mxid: string) { | ||
let chan = await this.chanStore.getByMxid(mxid); | ||
const chan = await this.chanStore.getByMxid(mxid); | ||
if (!chan) { | ||
@@ -210,7 +232,33 @@ return; // nothing to do | ||
private async deleteEntries(entries: IChanStoreEntry[]) { | ||
log.info("Deleting entries", entries); | ||
for (const entry of entries) { | ||
// delete from DB (also OP store), cache and trigger ghosts to quit | ||
await this.chanStore.delete(entry); | ||
log.info("Removing bot client from room...."); | ||
const botIntent = this.bridge.botIntent; | ||
const botRooms = await botIntent.getJoinedRooms(); | ||
if (botRooms.includes(entry.mxid)) { | ||
try { | ||
await botIntent.leaveRoom(entry.mxid); | ||
} catch (err) { | ||
log.warn("Failed to make bot client leave", err); | ||
} | ||
} | ||
log.info("Removing ghosts from room...."); | ||
const ghosts = await this.bridge.puppetStore.getGhostsInChan(entry.mxid); | ||
for (const ghost of ghosts) { | ||
const intent = await this.bridge.userSync.deleteForMxid(ghost); | ||
if (intent) { | ||
try { | ||
await intent.underlyingClient.leaveRoom(entry.mxid); | ||
} catch (err) { | ||
log.warn("Failed to trigger client leave room", err); | ||
} | ||
} | ||
} | ||
await this.bridge.puppetStore.emptyGhostsInChan(entry.mxid); | ||
} | ||
} | ||
} |
@@ -7,6 +7,5 @@ export class MxBridgeConfig { | ||
public presence: MxBridgeConfigPresence = new MxBridgeConfigPresence(); | ||
public applyConfig(newConfig: {[key: string]: any}, configLayer: {[key: string]: any} = this) { | ||
Object.keys(newConfig).forEach((key) => { | ||
Object.keys(newConfig).forEach((key) => { | ||
if (configLayer[key] instanceof Object && !(configLayer[key] instanceof Array)) { | ||
@@ -23,3 +22,3 @@ this.applyConfig(newConfig[key], configLayer[key]); | ||
public bindAddress: string = "localhost"; | ||
public port: number; | ||
public port: number; | ||
public domain: string; | ||
@@ -26,0 +25,0 @@ public homeserverUrl: string; |
@@ -7,3 +7,4 @@ import { IDatabaseConnector, ISqlRow } from "./connector"; | ||
const CHAN_CACHE_LIFETIME = 1000*60*60*24; | ||
// tslint:disable-next-line:no-magic-numbers | ||
const CHAN_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
@@ -25,4 +26,4 @@ export interface IChanStoreEntry { | ||
private opCache: TimedCache<string, string>; | ||
constructor ( | ||
private db:IDatabaseConnector, | ||
constructor( | ||
private db: IDatabaseConnector, | ||
) { | ||
@@ -62,3 +63,3 @@ this.remoteCache = new TimedCache(CHAN_CACHE_LIFETIME); | ||
for (const row of rows) { | ||
let res = this.getFromRow(row); | ||
const res = this.getFromRow(row); | ||
if (res) { | ||
@@ -77,3 +78,3 @@ results.push(res); | ||
const row = await this.db.Get( | ||
"SELECT * FROM chan_store WHERE mxid = $mxid", { mxid } | ||
"SELECT * FROM chan_store WHERE mxid = $mxid", { mxid }, | ||
); | ||
@@ -85,3 +86,3 @@ return this.getFromRow(row); | ||
const exists = await this.db.Get( | ||
"SELECT * FROM chan_store WHERE mxid = $mxid", {mxid: data.mxid} | ||
"SELECT * FROM chan_store WHERE mxid = $mxid", {mxid: data.mxid}, | ||
); | ||
@@ -130,3 +131,3 @@ let query = ""; | ||
}); | ||
this.remoteCache.set(`${data.roomId}_${data.puppetId}`, data); | ||
this.remoteCache.set(`${data.puppetId};${data.roomId}`, data); | ||
this.mxidCache.set(data.mxid, data); | ||
@@ -137,8 +138,8 @@ } | ||
await this.db.Run( | ||
"DELETE FROM chan_store WHERE mxid = $mxid", { mxid: data.mxid } | ||
"DELETE FROM chan_store WHERE mxid = $mxid", { mxid: data.mxid }, | ||
); | ||
await this.db.Run( | ||
"DELETE FROM chan_op WHERE chan_mxid=$mxid", { mxid: data.mxid } | ||
"DELETE FROM chan_op WHERE chan_mxid=$mxid", { mxid: data.mxid }, | ||
); | ||
this.remoteCache.delete(`${data.roomId}_${data.puppetId}`); | ||
this.remoteCache.delete(`${data.puppetId};${data.roomId}`); | ||
this.mxidCache.delete(data.mxid); | ||
@@ -177,3 +178,3 @@ this.opCache.delete(data.mxid); | ||
this.opCache.set(chanMxid, userMxid); | ||
return userMxid | ||
return userMxid; | ||
} | ||
@@ -180,0 +181,0 @@ |
@@ -27,4 +27,2 @@ /* | ||
export class Postgres implements IDatabaseConnector { | ||
public type = "postgres"; | ||
public static ParameterizeSql(sql: string): string { | ||
@@ -36,2 +34,4 @@ return sql.replace(/\$((\w|\d|_)+)+/g, (k) => { | ||
public type = "postgres"; | ||
// tslint:disable-next-line no-any | ||
@@ -38,0 +38,0 @@ private db: pgPromise.IDatabase<any>; |
@@ -8,4 +8,6 @@ import { IDatabaseConnector, ISqlRow } from "./connector"; | ||
const PUPPET_CACHE_LIFETIME = 1000*60*60*24; | ||
// tslint:disable:no-magic-numbers | ||
const PUPPET_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
const MXID_INFO_LOCK_TIMEOUT = 1000; | ||
// tslint:enable:no-magic-numbers | ||
@@ -85,3 +87,3 @@ export interface IPuppet { | ||
} else { | ||
query = `UPDATE puppet_mxid_store SET | ||
query = `UPDATE puppet_mxid_store SET | ||
name = $name, | ||
@@ -175,3 +177,5 @@ avatar_mxc = $avatarMxc, | ||
} | ||
const puppetId = await this.db.Run("INSERT INTO puppet_store (puppet_mxid, data, user_id) VALUES ($mxid, $data, $uid)", { | ||
const puppetId = await this.db.Run( | ||
"INSERT INTO puppet_store (puppet_mxid, data, user_id) VALUES ($mxid, $data, $uid)" | ||
, { | ||
mxid: puppetMxid, | ||
@@ -189,2 +193,31 @@ data: dataStr, | ||
public async joinGhostToChan(ghostMxid: string, chanMxid: string) { | ||
const exists = await this.db.Get( | ||
"SELECT * FROM ghosts_joined_chans WHERE ghost_mxid = $ghostMxid AND chan_mxid = $chanMxid" | ||
, { | ||
ghostMxid, | ||
chanMxid, | ||
}); | ||
if (exists) { | ||
return; // nothing to do | ||
} | ||
await this.db.Run("INSERT INTO ghosts_joined_chans (ghost_mxid, chan_mxid) VALUES ($ghostMxid, $chanMxid)", { | ||
ghostMxid, | ||
chanMxid, | ||
}); | ||
} | ||
public async getGhostsInChan(chan: string): Promise<string[]> { | ||
const result = [] as string[]; | ||
const rows = await this.db.All("SELECT * FROM ghosts_joined_chans WHERE chan_mxid = $chan", { chan }); | ||
for (const r of rows) { | ||
result.push(r.ghost_mxid as string); | ||
} | ||
return result; | ||
} | ||
public async emptyGhostsInChan(chan: string) { | ||
await this.db.Run("DELETE FROM ghosts_joined_chans WHERE chan_mxid = $chan", { chan }); | ||
} | ||
private getRow(row: ISqlRow): IPuppet | null { | ||
@@ -191,0 +224,0 @@ try { |
@@ -7,5 +7,7 @@ import { IDatabaseConnector } from "./connector"; | ||
const USERS_CACHE_LIFETIME = 1000*60*60*24; | ||
// tslint:disable-next-line:no-magic-numbers | ||
const USERS_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
export interface IUserStoreEntry { | ||
puppetId: number; | ||
userId: string; | ||
@@ -26,4 +28,5 @@ name?: string | null; | ||
public newData(userId: string): IUserStoreEntry { | ||
public newData(puppetId: number, userId: string): IUserStoreEntry { | ||
return { | ||
puppetId, | ||
userId, | ||
@@ -33,4 +36,5 @@ } as IUserStoreEntry; | ||
public async get(userId: string): Promise<IUserStoreEntry | null> { | ||
const cached = this.usersCache.get(userId); | ||
public async get(puppetId: number, userId: string): Promise<IUserStoreEntry | null> { | ||
const cacheKey = `${puppetId};${userId}`; | ||
const cached = this.usersCache.get(cacheKey); | ||
if (cached) { | ||
@@ -40,3 +44,3 @@ return cached; | ||
const row = await this.db.Get( | ||
"SELECT * FROM user_store WHERE user_id = $id", {id: userId}, | ||
"SELECT * FROM user_store WHERE user_id = $id AND puppet_id = $pid", {id: userId, pid: puppetId}, | ||
); | ||
@@ -46,3 +50,3 @@ if (!row) { | ||
} | ||
const data = this.newData(userId); | ||
const data = this.newData(puppetId, userId); | ||
data.name = row.name as string|null; | ||
@@ -52,3 +56,3 @@ data.avatarUrl = row.avatar_url as string | null; | ||
data.avatarHash = row.avatar_hash as string | null; | ||
this.usersCache.set(userId, data); | ||
this.usersCache.set(cacheKey, data); | ||
return data; | ||
@@ -59,3 +63,3 @@ } | ||
const exists = await this.db.Get( | ||
"SELECT * FROM user_store WHERE user_id = $id", {id: data.userId}, | ||
"SELECT * FROM user_store WHERE user_id = $id AND puppet_id = $pid", {id: data.userId, pid: data.puppetId}, | ||
); | ||
@@ -66,2 +70,3 @@ let query = ""; | ||
user_id, | ||
puppet_id, | ||
name, | ||
@@ -73,2 +78,3 @@ avatar_url, | ||
$user_id, | ||
$puppet_id, | ||
$name, | ||
@@ -85,6 +91,7 @@ $avatar_url, | ||
avatar_hash = $avatar_hash | ||
WHERE user_id = $user_id`; | ||
WHERE user_id = $user_id AND puppet_id = $puppet_id`; | ||
} | ||
await this.db.Run(query, { | ||
user_id: data.userId, | ||
puppet_id: data.puppetId, | ||
name: data.name || null, | ||
@@ -95,4 +102,14 @@ avatar_url: data.avatarUrl || null, | ||
}); | ||
this.usersCache.set(data.userId, data); | ||
const cacheKey = `${data.puppetId};${data.userId}`; | ||
this.usersCache.set(cacheKey, data); | ||
} | ||
public async delete(data: IUserStoreEntry) { | ||
await this.db.Run("DELETE FROM user_store WHERE user_id = $user_id AND puppet_id = $puppet_id", { | ||
user_id: data.userId, | ||
puppet_id: data.puppetId, | ||
}); | ||
const cacheKey = `${data.puppetId};${data.userId}`; | ||
this.usersCache.delete(cacheKey); | ||
} | ||
} |
@@ -5,1 +5,3 @@ export * from "./puppetbridge"; | ||
export * from "./structures/lock"; | ||
export { IRemoteChan } from "./channelsyncroniser"; | ||
export { IRemoteUser } from "./usersyncroniser"; |
@@ -13,3 +13,7 @@ import { IJoinRoomStrategy } from "matrix-bot-sdk"; | ||
public async joinRoom(roomIdOrAlias: string, userId: string, apiCall: (roomIdOrAlias: string) => Promise<string>): Promise<string> { | ||
public async joinRoom( | ||
roomIdOrAlias: string, | ||
userId: string, | ||
apiCall: (roomIdOrAlias: string) => Promise<string>, | ||
): Promise<string> { | ||
try { | ||
@@ -16,0 +20,0 @@ return await apiCall(roomIdOrAlias); |
@@ -65,2 +65,3 @@ import { PuppetBridge } from "./puppetbridge"; | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(p); | ||
@@ -70,2 +71,3 @@ } else { | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(this.presenceQueue[index]); | ||
@@ -88,2 +90,3 @@ } | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(p); | ||
@@ -93,2 +96,3 @@ } else { | ||
// do this async in the BG for live updates | ||
// tslint:disable-next-line:no-floating-promises | ||
this.setMatrixPresence(this.presenceQueue[index]); | ||
@@ -95,0 +99,0 @@ } |
@@ -13,2 +13,7 @@ import { PuppetBridge } from "./puppetbridge"; | ||
export interface ITokenResponse { | ||
token: string; | ||
hsUrl: string; | ||
} | ||
export class Provisioner { | ||
@@ -34,6 +39,36 @@ private puppetStore: DbPuppetStore; | ||
public async getMxid(puppetMxid: number): Promise<string> { | ||
return await this.puppetStore.getMxid(puppetMxid); | ||
public async getMxid(puppetId: number): Promise<string> { | ||
return await this.puppetStore.getMxid(puppetId); | ||
} | ||
public parseToken(mxid: string, token: string): ITokenResponse { | ||
let hsUrl = mxid.split(":")[1]; | ||
if (hsUrl === "localhost") { | ||
hsUrl = "http://" + hsUrl; | ||
} else { | ||
hsUrl = "https://" + hsUrl; | ||
} | ||
return { token, hsUrl } as ITokenResponse; | ||
} | ||
public async getToken(puppetId: number | string): Promise<ITokenResponse | null> { | ||
let mxid = ""; | ||
if (typeof puppetId === "string") { | ||
mxid = puppetId; | ||
} else { | ||
mxid = await this.getMxid(puppetId); | ||
} | ||
const info = await this.puppetStore.getMxidInfo(mxid); | ||
if (!info || !info.token) { | ||
return null; | ||
} | ||
return this.parseToken(mxid, info.token); | ||
} | ||
public async setToken(mxid: string, token: string | null) { | ||
const info = await this.puppetStore.getOrCreateMxidInfo(mxid); | ||
info.token = token; | ||
await this.puppetStore.setMxidInfo(info); | ||
} | ||
public async setUserId(puppetId: number, userId: string) { | ||
@@ -74,3 +109,3 @@ await this.puppetStore.setUserId(puppetId, userId); | ||
public async delete(puppetMxid: string, puppetId: number) { | ||
log.info(`Deleting puppet with id ${puppetId}`) | ||
log.info(`Deleting puppet with id ${puppetId}`); | ||
const data = await this.get(puppetId); | ||
@@ -95,3 +130,3 @@ if (!data || data.puppetMxid !== puppetMxid) { | ||
const datas = await this.getForMxid(puppetMxid); | ||
let descs = [] as IProvisionerDesc[]; | ||
const descs = [] as IProvisionerDesc[]; | ||
for (const data of datas) { | ||
@@ -115,4 +150,4 @@ descs.push(await this.getDescFromData(data)); | ||
html: await this.bridge.hooks.getDesc(data.puppetId, data.data, true), | ||
} as IProvisionerDesc | ||
} as IProvisionerDesc; | ||
} | ||
} |
@@ -12,4 +12,4 @@ import * as fs from "fs"; | ||
import { EventEmitter } from "events"; | ||
import { ChannelSyncroniser, IRemoteChanSend, IRemoteChanReceive } from "./channelsyncroniser"; | ||
import { UserSyncroniser, IRemoteUserReceive } from "./usersyncroniser"; | ||
import { ChannelSyncroniser, IRemoteChan } from "./channelsyncroniser"; | ||
import { UserSyncroniser, IRemoteUser } from "./usersyncroniser"; | ||
import { MxBridgeConfig } from "./config"; | ||
@@ -31,3 +31,5 @@ import { Util } from "./util"; | ||
const PUPPET_INVITE_CACHE_LIFETIME = 1000*60*60*24; | ||
// tslint:disable-next-line:no-magic-numbers | ||
const PUPPET_INVITE_CACHE_LIFETIME = 1000 * 60 * 60 * 24; | ||
const DEFAULT_TYPING_TIMEOUT = 30000; | ||
@@ -37,3 +39,3 @@ interface ISendInfo { | ||
mxid: string; | ||
}; | ||
} | ||
@@ -45,3 +47,3 @@ export interface IPuppetBridgeRegOpts { | ||
botUser?: string; | ||
}; | ||
} | ||
@@ -59,16 +61,12 @@ export interface IPuppetBridgeFeatures { | ||
presence?: boolean; | ||
}; | ||
// typing | ||
typingTimeout?: number; | ||
} | ||
export interface IReceiveParams { | ||
chan: IRemoteChanReceive; | ||
user: IRemoteUserReceive; | ||
}; | ||
chan: IRemoteChan; | ||
user: IRemoteUser; | ||
} | ||
export interface ISendMessageOpts { | ||
body: string; | ||
formatted_body?: string; | ||
emote?: boolean; | ||
notice?: boolean; | ||
}; | ||
export interface IMessageEvent { | ||
@@ -78,3 +76,4 @@ body: string; | ||
emote: boolean; | ||
}; | ||
notice?: boolean; | ||
} | ||
@@ -91,3 +90,3 @@ export interface IFileEvent { | ||
url: string; | ||
}; | ||
} | ||
@@ -99,6 +98,6 @@ export interface IRetData { | ||
userId?: string; | ||
}; | ||
} | ||
export type CreateChanHook = (puppetId: number, chanId: string) => Promise<IRemoteChanReceive | null>; | ||
export type CreateUserHook = (puppetId: number, userId: string) => Promise<IRemoteUserReceive | null>; | ||
export type CreateChanHook = (puppetId: number, chanId: string) => Promise<IRemoteChan | null>; | ||
export type CreateUserHook = (puppetId: number, userId: string) => Promise<IRemoteUser | null>; | ||
export type GetDescHook = (puppetId: number, data: any, html: boolean) => Promise<string>; | ||
@@ -114,3 +113,3 @@ export type GetDataFromStrHook = (str: string) => Promise<IRetData>; | ||
getDataFromStr?: GetDataFromStrHook; | ||
}; | ||
} | ||
@@ -147,3 +146,3 @@ export class PuppetBridge extends EventEmitter { | ||
public async init() { | ||
this.readConfig(); | ||
await this.readConfig(); | ||
this.store = new Store(this.config.database); | ||
@@ -156,3 +155,3 @@ await this.store.init(); | ||
this.presenceHandler = new PresenceHandler(this); | ||
this.typingHandler = new TypingHandler(this); | ||
this.typingHandler = new TypingHandler(this, this.features.typingTimeout || DEFAULT_TYPING_TIMEOUT); | ||
@@ -270,3 +269,3 @@ this.botProvisioner = new BotProvisioner(this); | ||
public async updateUser(user: IRemoteUserReceive) { | ||
public async updateUser(user: IRemoteUser) { | ||
log.verbose("Got request to update a user"); | ||
@@ -276,8 +275,21 @@ await this.userSync.getClient(user); | ||
public async updateChannel(chan: IRemoteChanReceive) { | ||
public async updateChannel(chan: IRemoteChan) { | ||
log.verbose("Got request to update a channel"); | ||
await this.chanSync.getMxid(chan); | ||
await this.chanSync.getMxid(chan, undefined, undefined, false); | ||
} | ||
public async setUserPresence(user: IRemoteUserReceive, presence: MatrixPresence) { | ||
public async unbridgeChannelByMxid(mxid: string) { | ||
const chan = await this.chanSync.getRemoteHandler(mxid); | ||
await this.unbridgeChannel(chan); | ||
} | ||
public async unbridgeChannel(chan: IRemoteChan | null) { | ||
if (!chan) { | ||
return; | ||
} | ||
log.info(`Got request to unbridge channel puppetId=${chan.puppetId} roomId=${chan.roomId}`); | ||
await this.chanSync.delete(chan); | ||
} | ||
public async setUserPresence(user: IRemoteUser, presence: MatrixPresence) { | ||
const client = await this.userSync.getClient(user); | ||
@@ -288,3 +300,3 @@ const userId = await client.getUserId(); | ||
public async setUserStatus(user: IRemoteUserReceive, status: string) { | ||
public async setUserStatus(user: IRemoteUser, status: string) { | ||
const client = await this.userSync.getClient(user); | ||
@@ -303,3 +315,3 @@ const userId = await client.getUserId(); | ||
public async getMxidForUser(user: IRemoteUserReceive): Promise<string> { | ||
public async getMxidForUser(user: IRemoteUser): Promise<string> { | ||
const puppetData = await this.provisioner.get(user.puppetId); | ||
@@ -369,3 +381,3 @@ if (puppetData && puppetData.userId === user.userId) { | ||
public async sendMessage(params: IReceiveParams, opts: ISendMessageOpts) { | ||
public async sendMessage(params: IReceiveParams, opts: IMessageEvent) { | ||
const { client, mxid } = await this.prepareSend(params); | ||
@@ -381,2 +393,3 @@ let msgtype = "m.text"; | ||
body: opts.body, | ||
source: "remote", | ||
} as any; | ||
@@ -428,2 +441,3 @@ if (opts.formatted_body) { | ||
url: fileMxc, | ||
source: "remote", | ||
} as any; | ||
@@ -448,8 +462,17 @@ if (typeof thing === "string") { | ||
const client = await this.userSync.getClient(params.user); | ||
const { mxid, created } = await this.chanSync.getMxid(params.chan, client, [puppetMxid]); | ||
const userId = await client.getUserId(); | ||
// we could be the one creating the room, no need to invite ourself | ||
const invites: string[] = []; | ||
if (userId !== puppetMxid) { | ||
invites.push(puppetMxid); | ||
} else { | ||
// else we need the bot client in order to be able to receive matrix messages | ||
invites.push(await this.botIntent.underlyingClient.getUserId()); | ||
} | ||
const { mxid, created } = await this.chanSync.getMxid(params.chan, client, invites); | ||
// ensure that the intent is in the room | ||
const userId = await client.getUserId(); | ||
if (this.appservice.isNamespacedUser(userId)) { | ||
await this.appservice.getIntentForUserId(userId).ensureRegisteredAndJoined(mxid); | ||
const intent = this.appservice.getIntentForUserId(userId); | ||
await intent.ensureRegisteredAndJoined(mxid); | ||
} | ||
@@ -470,4 +493,7 @@ | ||
} | ||
await client.inviteUser(puppetMxid, mxid); | ||
this.ghostInviteCache.set(cacheKey, true); | ||
// we can't really invite ourself... | ||
if (await inviteClient.getUserId() !== puppetMxid) { | ||
await client.inviteUser(puppetMxid, mxid); | ||
this.ghostInviteCache.set(cacheKey, true); | ||
} | ||
} | ||
@@ -491,5 +517,10 @@ } catch (err) { | ||
if (event.type === "m.room.member" && event.content) { | ||
if (event.content.membership === "join") { | ||
await this.handleJoinEvent(roomId, event); | ||
return; | ||
switch (event.content.membership) { | ||
case "join": | ||
await this.handleJoinEvent(roomId, event); | ||
return; | ||
case "ban": | ||
case "leave": | ||
await this.handleLeaveEvent(roomId, event); | ||
return; | ||
} | ||
@@ -508,3 +539,3 @@ } | ||
// this isn't a room we handle....so let's do provisioning! | ||
this.botProvisioner.processEvent(event); | ||
await this.botProvisioner.processEvent(event); | ||
return; | ||
@@ -517,4 +548,8 @@ } | ||
log.info(`New message by ${event.sender} of type ${event.type} to process!`); | ||
if (event.content.source === "remote") { | ||
log.verbose("Dropping event due to de-duping..."); | ||
return; | ||
} | ||
let msgtype = event.content.msgtype; | ||
if (event.type == "m.sticker") { | ||
if (event.type === "m.sticker") { | ||
msgtype = "m.sticker"; | ||
@@ -524,10 +559,11 @@ } | ||
// short-circuit text stuff | ||
const data = { | ||
const msgData = { | ||
body: event.content.body, | ||
emote: msgtype === "m.emote", | ||
notice: msgtype === "m.notice", | ||
} as IMessageEvent; | ||
if (event.content.format) { | ||
data.formatted_body = event.content.formatted_body; | ||
msgData.formatted_body = event.content.formatted_body; | ||
} | ||
this.emit("message", room, data, event); | ||
this.emit("message", room, msgData, event); | ||
return; | ||
@@ -577,9 +613,23 @@ } | ||
private async handleGhostJoinEvent(roomId: string, ghostId: string) { | ||
if (ghostId === this.appservice.botIntent.userId) { | ||
return; // we don't handle ghost user here | ||
} | ||
// we CAN'T check for if the room exists here, as if we create a new room | ||
// the m.room.member event triggers before the room is incerted into the store | ||
log.verbose("adding ghost to chan cache"); | ||
await this.store.puppetStore.joinGhostToChan(ghostId, roomId); | ||
} | ||
private async handleJoinEvent(roomId: string, event: any) { | ||
// okay, we want to catch *puppet* profile changes, nothing of the ghosts | ||
const userId = event.state_key; | ||
if (this.appservice.isNamespacedUser(event.sender)) { | ||
return; // we don't handle things from our own namespace | ||
if (this.appservice.isNamespacedUser(userId)) { | ||
// let's add the ghost to the things to quit.... | ||
await this.handleGhostJoinEvent(roomId, userId); | ||
return; | ||
} | ||
const room = await this.chanSync.getRemoteHandler(event.room_id); | ||
const room = await this.chanSync.getRemoteHandler(roomId); | ||
if (!room) { | ||
@@ -619,2 +669,25 @@ return; // this isn't a room we handle, just ignore it | ||
private async handleLeaveEvent(roomId: string, event: any) { | ||
const userId = event.state_key; | ||
if (this.appservice.isNamespacedUser(userId)) { | ||
if (userId !== event.sender) { | ||
// puppet got kicked, unbridging room | ||
await this.unbridgeChannelByMxid(roomId); | ||
} | ||
return; | ||
} | ||
const room = await this.chanSync.getRemoteHandler(roomId); | ||
if (!room) { | ||
return; // this isn't a room we handle, just ignore it | ||
} | ||
const puppetMxid = await this.provisioner.getMxid(room.puppetId); | ||
if (userId !== puppetMxid) { | ||
return; // it wasn't us | ||
} | ||
log.verbose(`Received leave event from ${puppetMxid}`); | ||
await this.unbridgeChannel(room); | ||
} | ||
private async handleInviteEvent(roomId: string, event: any) { | ||
@@ -621,0 +694,0 @@ const userId = event.state_key; |
@@ -12,3 +12,3 @@ import { IDbSchema } from "./db/schema/dbschema"; | ||
export const CURRENT_SCHEMA = 2; | ||
export const CURRENT_SCHEMA = 4; | ||
@@ -66,3 +66,3 @@ export class Store { | ||
public async close() { | ||
this.db.Close(); | ||
await this.db.Close(); | ||
} | ||
@@ -69,0 +69,0 @@ |
@@ -21,3 +21,4 @@ export class Lock<T> { | ||
const p = new Promise<{}>((resolve) => { | ||
// first we check if the lock has the key....if not, e.g. if it got released too quickly, we still want to resolve our promise | ||
// first we check if the lock has the key....if not, e.g. if it | ||
// got released too quickly, we still want to resolve our promise | ||
if (!this.locks.has(key)) { | ||
@@ -24,0 +25,0 @@ resolve(); |
@@ -7,4 +7,5 @@ import { PuppetBridge } from "./puppetbridge"; | ||
export class TypingHandler { | ||
constructor ( | ||
constructor( | ||
private bridge: PuppetBridge, | ||
private timeout: number, | ||
) { } | ||
@@ -25,3 +26,3 @@ | ||
typing, | ||
timeout: 30000, | ||
timeout: this.timeout, | ||
}); | ||
@@ -28,0 +29,0 @@ } catch (err) { |
import { PuppetBridge } from "./puppetbridge"; | ||
import { MatrixClient } from "matrix-bot-sdk"; | ||
import { MatrixClient, Intent } from "matrix-bot-sdk"; | ||
import { Util } from "./util"; | ||
@@ -7,11 +7,13 @@ import { Log } from "./log"; | ||
import { Lock } from "./structures/lock"; | ||
import { ITokenResponse } from "./provisioner"; | ||
const log = new Log("UserSync"); | ||
const CLIENT_LOOKUP_LOCK_TIMEOUT = 1000*60; | ||
// tslint:disable-next-line:no-magic-numbers | ||
const CLIENT_LOOKUP_LOCK_TIMEOUT = 1000 * 60; | ||
export interface IRemoteUserReceive { | ||
export interface IRemoteUser { | ||
userId: string; | ||
puppetId: number; | ||
avatarUrl?: string | null; | ||
@@ -32,6 +34,31 @@ avatarBuffer?: Buffer | null; | ||
public async getClient(data: IRemoteUserReceive): Promise<MatrixClient> { | ||
public async getClientFromTokenCallback(token: ITokenResponse | null): Promise<MatrixClient | null> { | ||
if (!token) { | ||
return null; | ||
} | ||
const client = new MatrixClient(token.hsUrl, token.token); | ||
try { | ||
await client.getUserId(); | ||
return client; | ||
} catch (err) { | ||
log.verbose("Invalid client config"); | ||
} | ||
return null; | ||
} | ||
public async getClient(data: IRemoteUser): Promise<MatrixClient> { | ||
// first we look if we can puppet this user to the matrix side | ||
const puppetData = await this.bridge.provisioner.get(data.puppetId); | ||
if (puppetData && puppetData.userId === data.userId) { | ||
const token = await this.bridge.provisioner.getToken(data.puppetId); | ||
const puppetClient = await this.getClientFromTokenCallback(token); | ||
if (puppetClient) { | ||
return puppetClient; | ||
} | ||
} | ||
// now we fetch the ghost client | ||
await this.clientLock.wait(data.userId); | ||
log.info("Fetching client for " + data.userId); | ||
let user = await this.userStore.get(data.userId); | ||
let user = await this.userStore.get(data.puppetId, data.userId); | ||
const update = { | ||
@@ -48,6 +75,8 @@ name: false, | ||
if (this.bridge.hooks.createUser) { | ||
log.verbose("Fetching new override data..."); | ||
const newData = await this.bridge.hooks.createUser(data.puppetId, data.userId); | ||
if (newData && newData.userId === data.userId && newData.puppetId === data.puppetId) { | ||
log.verbose("got new user data to override"); | ||
data = newData; | ||
} else { | ||
log.warn("Override data is malformed! Old data:", data, "New data:", newData); | ||
} | ||
@@ -57,3 +86,3 @@ } | ||
update.avatar = data.avatarUrl ? true : false; | ||
user = this.userStore.newData(data.userId); | ||
user = this.userStore.newData(data.puppetId, data.userId); | ||
} else { | ||
@@ -68,2 +97,5 @@ update.name = data.name !== undefined && data.name !== user.name; | ||
log.verbose("Updating name"); | ||
// we *don't* await here as setting the name might take a | ||
// while due to updating all those m.room.member events, we can do that in the BG | ||
// tslint:disable-next-line:no-floating-promises | ||
client.setDisplayName(data.name || ""); | ||
@@ -74,4 +106,4 @@ user.name = data.name; | ||
log.verbose("Updating avatar"); | ||
const { doUpdate, mxcUrl, hash } = await Util.MaybeUploadFile(client, data, user.avatarHash); | ||
if (doUpdate) { | ||
const { doUpdate: updateAvatar, mxcUrl, hash } = await Util.MaybeUploadFile(client, data, user.avatarHash); | ||
if (updateAvatar) { | ||
update.avatar = true; | ||
@@ -83,2 +115,3 @@ user.avatarUrl = data.avatarUrl; | ||
// and we might as well do this in the background | ||
// tslint:disable-next-line:no-floating-promises | ||
client.setAvatarUrl(user.avatarMxc || ""); | ||
@@ -103,2 +136,35 @@ } | ||
} | ||
public getPartsFromMxid(mxid: string): {puppetId: number; userId: string} | null { | ||
const suffix = this.bridge.AS.getSuffixForUserId(mxid); | ||
if (!suffix) { | ||
return null; | ||
} | ||
const MXID_MATCH_PUPPET_ID = 1; | ||
const MXID_MATCH_USER_ID = 2; | ||
const matches = suffix.match(/^(\d+)_(.*)/); | ||
if (!matches) { | ||
return null; | ||
} | ||
const puppetId = Number(matches[MXID_MATCH_PUPPET_ID]); | ||
const userId = Util.mxid2str(matches[MXID_MATCH_USER_ID]); | ||
if (isNaN(puppetId)) { | ||
return null; | ||
} | ||
return { | ||
puppetId, | ||
userId, | ||
}; | ||
} | ||
public async deleteForMxid(mxid: string): Promise<Intent | null> { | ||
const user = this.getPartsFromMxid(mxid); | ||
if (!user) { | ||
return null; | ||
} | ||
log.info(`Deleting ghost ${mxid}`); | ||
await this.userStore.delete(user); | ||
const intent = this.bridge.AS.getIntentForUserId(mxid); | ||
return intent; | ||
} | ||
} |
@@ -54,8 +54,9 @@ import * as http from "http"; | ||
public static str2mxid(a: string): string { | ||
let buf = Buffer.from(a); | ||
let encoded = ''; | ||
for (let b of buf) { | ||
if (b == 0x5F) { | ||
// tslint:disable:no-magic-numbers | ||
const buf = Buffer.from(a); | ||
let encoded = ""; | ||
for (const b of buf) { | ||
if (b === 0x5F) { | ||
// underscore | ||
encoded += '__'; | ||
encoded += "__"; | ||
} else if ((b >= 0x61 && b <= 0x7A) || (b >= 0x30 && b <= 0x39)) { | ||
@@ -65,20 +66,22 @@ // [a-z0-9] | ||
} else if (b >= 0x41 && b <= 0x5A) { | ||
encoded += '_' + String.fromCharCode(b + 0x20); | ||
encoded += "_" + String.fromCharCode(b + 0x20); | ||
} else if (b < 16) { | ||
encoded += '=0' + b.toString(16); | ||
encoded += "=0" + b.toString(16); | ||
} else { | ||
encoded += '=' + b.toString(16); | ||
encoded += "=" + b.toString(16); | ||
} | ||
} | ||
return encoded; | ||
// tslint:enable:no-magic-numbers | ||
} | ||
public static mxid2str(b: string): string { | ||
let decoded = Buffer.alloc(b.length); | ||
// tslint:disable:no-magic-numbers | ||
const decoded = Buffer.alloc(b.length); | ||
let j = 0; | ||
for (let i = 0; i < b.length; i++) { | ||
let char = b[i]; | ||
if (char == '_') { | ||
const char = b[i]; | ||
if (char === "_") { | ||
i++; | ||
if (b[i] == '_') { | ||
if (b[i] === "_") { | ||
decoded[j] = 0x5F; | ||
@@ -88,5 +91,5 @@ } else { | ||
} | ||
} else if (char == '=') { | ||
} else if (char === "=") { | ||
i++; | ||
decoded[j] = parseInt(b[i]+b[i+1], 16); | ||
decoded[j] = parseInt(b[i] + b[i + 1], 16); | ||
i++; | ||
@@ -98,3 +101,4 @@ } else { | ||
} | ||
return decoded.toString('utf8', 0, j); | ||
return decoded.toString("utf8", 0, j); | ||
// tslint:enable:no-magic-numbers | ||
} | ||
@@ -114,4 +118,7 @@ | ||
public static async MaybeUploadFile(client: MatrixClient, data: IMakeUploadFileData, oldHash?: string | null): Promise<{doUpdate: boolean; mxcUrl: string|undefined; hash: string;}> { | ||
let updateAvatar = true; // we might set this to false if our hashes are the same | ||
public static async MaybeUploadFile( | ||
client: MatrixClient, | ||
data: IMakeUploadFileData, | ||
oldHash?: string | null, | ||
): Promise<{ doUpdate: boolean; mxcUrl: string|undefined; hash: string; }> { | ||
let buffer = data.avatarBuffer; | ||
@@ -124,3 +131,3 @@ if ((!buffer && !data.avatarUrl) || (buffer && buffer.byteLength === 0)) { | ||
hash: "", | ||
} | ||
}; | ||
} | ||
@@ -139,3 +146,3 @@ if (!buffer) { | ||
hash, | ||
} | ||
}; | ||
} | ||
@@ -158,5 +165,5 @@ try { | ||
hash, | ||
} | ||
}; | ||
} | ||
} | ||
} |
spdx disjunction for an artifact's license information
Licensespdx disjunction for an artifact's license information
Found 1 instance in 1 package
Git dependency
Supply chain riskContains a dependency which resolves to a remote git URL. Dependencies fetched from git URLs are not immutable can be used to inject untrusted code or reduce the likelihood of a reproducible install.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
spdx disjunction for an artifact's license information
Licensespdx disjunction for an artifact's license information
Found 1 instance in 1 package
No License Found
License(Experimental) License information could not be found
Found 1 instance in 1 package
324252
57
1
5820
1
11
0
+ Added@types/body-parser@1.19.5(transitive)
+ Added@types/connect@3.4.38(transitive)
+ Added@types/express@4.17.21(transitive)
+ Added@types/express-serve-static-core@4.19.3(transitive)
+ Added@types/http-errors@2.0.4(transitive)
+ Added@types/mime@1.3.5(transitive)
+ Added@types/node@20.14.2(transitive)
+ Added@types/qs@6.9.15(transitive)
+ Added@types/range-parser@1.2.7(transitive)
+ Added@types/send@0.17.4(transitive)
+ Added@types/serve-static@1.15.7(transitive)
+ Addedaccepts@1.3.8(transitive)
+ Addedajv@6.12.6(transitive)
+ Addedansi-styles@4.3.0(transitive)
+ Addedarray-flatten@1.1.1(transitive)
+ Addedasn1@0.2.6(transitive)
+ Addedassert-plus@1.0.0(transitive)
+ Addedasynckit@0.4.0(transitive)
+ Addedaws-sign2@0.7.0(transitive)
+ Addedaws4@1.13.0(transitive)
+ Addedbasic-auth@2.0.1(transitive)
+ Addedbcrypt-pbkdf@1.0.2(transitive)
+ Addedbluebird@3.7.2(transitive)
+ Addedbody-parser@1.20.2(transitive)
+ Addedbytes@3.1.2(transitive)
+ Addedcall-bind@1.0.7(transitive)
+ Addedcaseless@0.12.0(transitive)
+ Addedchalk@3.0.0(transitive)
+ Addedcolor-convert@2.0.1(transitive)
+ Addedcolor-name@1.1.4(transitive)
+ Addedcombined-stream@1.0.8(transitive)
+ Addedcontent-disposition@0.5.4(transitive)
+ Addedcontent-type@1.0.5(transitive)
+ Addedcookie@0.6.0(transitive)
+ Addedcookie-signature@1.0.6(transitive)
+ Addedcore-util-is@1.0.2(transitive)
+ Addeddashdash@1.14.1(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddefine-data-property@1.1.4(transitive)
+ Addeddelayed-stream@1.0.0(transitive)
+ Addeddepd@2.0.0(transitive)
+ Addeddestroy@1.2.0(transitive)
+ Addeddom-serializer@1.4.1(transitive)
+ Addeddomelementtype@2.3.0(transitive)
+ Addeddomhandler@3.3.04.3.1(transitive)
+ Addeddomutils@2.8.0(transitive)
+ Addedecc-jsbn@0.1.2(transitive)
+ Addedee-first@1.1.1(transitive)
+ Addedencodeurl@1.0.2(transitive)
+ Addedentities@2.2.0(transitive)
+ Addedes-define-property@1.0.0(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedescape-html@1.0.3(transitive)
+ Addedetag@1.8.1(transitive)
+ Addedexpress@4.19.2(transitive)
+ Addedextend@3.0.2(transitive)
+ Addedextsprintf@1.3.0(transitive)
+ Addedfast-deep-equal@3.1.3(transitive)
+ Addedfast-json-stable-stringify@2.1.0(transitive)
+ Addedfinalhandler@1.2.0(transitive)
+ Addedforever-agent@0.6.1(transitive)
+ Addedform-data@2.3.3(transitive)
+ Addedforwarded@0.2.0(transitive)
+ Addedfresh@0.5.2(transitive)
+ Addedget-intrinsic@1.2.4(transitive)
+ Addedgetpass@0.1.7(transitive)
+ Addedglob-to-regexp@0.4.1(transitive)
+ Addedgopd@1.0.1(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhar-schema@2.0.0(transitive)
+ Addedhar-validator@5.1.5(transitive)
+ Addedhas-flag@4.0.0(transitive)
+ Addedhas-property-descriptors@1.0.2(transitive)
+ Addedhas-proto@1.0.3(transitive)
+ Addedhas-symbols@1.0.3(transitive)
+ Addedhash.js@1.1.7(transitive)
+ Addedhtmlencode@0.0.4(transitive)
+ Addedhtmlparser2@4.1.0(transitive)
+ Addedhttp-errors@2.0.0(transitive)
+ Addedhttp-signature@1.2.0(transitive)
+ Addediconv-lite@0.4.24(transitive)
+ Addedipaddr.js@1.9.1(transitive)
+ Addedis-promise@2.2.2(transitive)
+ Addedis-typedarray@1.0.0(transitive)
+ Addedisstream@0.1.2(transitive)
+ Addedjsbn@0.1.1(transitive)
+ Addedjson-schema@0.4.0(transitive)
+ Addedjson-schema-traverse@0.4.1(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedjsprim@1.4.2(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlowdb@1.0.0(transitive)
+ Addedlru-cache@5.1.1(transitive)
+ Addedmatrix-bot-sdk@0.4.1(transitive)
+ Addedmedia-typer@0.3.0(transitive)
+ Addedmerge-descriptors@1.0.1(transitive)
+ Addedmethods@1.1.2(transitive)
+ Addedmime@1.6.0(transitive)
+ Addedmime-db@1.52.0(transitive)
+ Addedmime-types@2.1.35(transitive)
+ Addedminimalistic-assert@1.0.1(transitive)
+ Addedmorgan@1.10.0(transitive)
+ Addedms@2.0.0(transitive)
+ Addednegotiator@0.6.3(transitive)
+ Addedoauth-sign@0.9.0(transitive)
+ Addedobject-inspect@1.13.1(transitive)
+ Addedon-finished@2.3.02.4.1(transitive)
+ Addedon-headers@1.0.2(transitive)
+ Addedparse-srcset@1.0.2(transitive)
+ Addedparseurl@1.3.3(transitive)
+ Addedpath-to-regexp@0.1.7(transitive)
+ Addedperformance-now@2.1.0(transitive)
+ Addedpicocolors@0.2.1(transitive)
+ Addedpify@3.0.0(transitive)
+ Addedpostcss@7.0.39(transitive)
+ Addedproxy-addr@2.0.7(transitive)
+ Addedpsl@1.9.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedqs@6.11.06.5.3(transitive)
+ Addedrange-parser@1.2.1(transitive)
+ Addedraw-body@2.5.2(transitive)
+ Addedrequest@2.88.2(transitive)
+ Addedrequest-promise@4.2.6(transitive)
+ Addedrequest-promise-core@1.1.4(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsafer-buffer@2.1.2(transitive)
+ Addedsanitize-html@1.27.5(transitive)
+ Addedsend@0.18.0(transitive)
+ Addedserve-static@1.15.0(transitive)
+ Addedset-function-length@1.2.2(transitive)
+ Addedsetprototypeof@1.2.0(transitive)
+ Addedside-channel@1.0.6(transitive)
+ Addedsource-map@0.6.1(transitive)
+ Addedsshpk@1.18.0(transitive)
+ Addedstatuses@2.0.1(transitive)
+ Addedstealthy-require@1.1.1(transitive)
+ Addedsteno@0.4.4(transitive)
+ Addedsupports-color@7.2.0(transitive)
+ Addedtoidentifier@1.0.1(transitive)
+ Addedtough-cookie@2.5.0(transitive)
+ Addedtunnel-agent@0.6.0(transitive)
+ Addedtweetnacl@0.14.5(transitive)
+ Addedtype-is@1.6.18(transitive)
+ Addedundici-types@5.26.5(transitive)
+ Addedunpipe@1.0.0(transitive)
+ Addeduri-js@4.4.1(transitive)
+ Addedutils-merge@1.0.1(transitive)
+ Addedvary@1.1.2(transitive)
+ Addedverror@1.10.0(transitive)
Updatedmatrix-bot-sdk@^0.4.0-beta.1