Fix merge conflicts

This commit is contained in:
MTRNord
2023-09-04 14:23:08 +02:00
6 changed files with 149 additions and 258 deletions
+82 -82
View File
@@ -1,85 +1,85 @@
{
"name": "draupnir",
"version": "1.84.0",
"description": "A moderation tool for Matrix",
"main": "lib/index.js",
"repository": "git@github.com:MTRNord/Draupnir.git",
"author": "Gnuxie",
"license": "SEE LICENSE IN LICENSE",
"private": true,
"scripts": {
"build": "tsc",
"postbuild": "yarn remove-tests-from-lib && yarn describe-version",
"describe-version": "(git describe > version.txt.tmp && mv version.txt.tmp version.txt) || true && rm -f version.txt.tmp",
"remove-tests-from-lib": "rm -rf lib/test/ && cp -r lib/src/* lib/ && rm -rf lib/src/",
"lint": "tslint --project ./tsconfig.json -t stylish",
"start:dev": "yarn build && node --async-stack-traces lib/index.js",
"test": "ts-mocha --project ./tsconfig.json test/commands/**/*.ts",
"test:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --require test/integration/fixtures.ts --timeout 300000 --project ./tsconfig.json \"test/integration/**/*Test.ts\"",
"test:integration:single": "NODE_ENV=harness npx ts-mocha --require test/integration/fixtures.ts --timeout 300000 --project ./tsconfig.json",
"test:appservice:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --timeout 300000 --project ./tsconfig.json \"test/appservice/integration/**/*Test.ts\"",
"test:appservice:integration:single": "NODE_ENV=harness npx ts-mocha --timeout 300000 --project ./tsconfig.json",
"test:manual": "NODE_ENV=harness ts-node test/integration/manualLaunchScript.ts",
"version": "sed -i '/# version automated/s/[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][^\"]*/'$npm_package_version'/' synapse_antispam/setup.py && git add synapse_antispam/setup.py && cat synapse_antispam/setup.py"
},
"devDependencies": {
"@types/config": "^3.3.0",
"@types/crypto-js": "^4.0.2",
"@types/express": "^4.17.13",
"@types/html-to-text": "^8.0.1",
"@types/humanize-duration": "^3.27.1",
"@types/js-yaml": "^4.0.5",
"@types/jsdom": "^16.2.11",
"@types/mocha": "^9.0.0",
"@types/nedb": "^1.8.12",
"@types/node": "^18.16.7",
"@types/pg": "^8.6.5",
"@types/request": "^2.48.8",
"@types/shell-quote": "1.7.1",
"crypto-js": "^4.1.1",
"eslint": "^7.32",
"expect": "^27.0.6",
"mocha": "^9.0.1",
"ts-mocha": "^9.0.2",
"tslint": "^6.1.3",
"typescript": "^5.1.6",
"typescript-formatter": "^7.2"
},
"dependencies": {
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/auto-instrumentations-node": "^0.38.0",
"@opentelemetry/exporter-metrics-otlp-http": "^0.41.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.41.0",
"@opentelemetry/sdk-metrics": "^1.15.0",
"@opentelemetry/sdk-node": "^0.41.0",
"@opentelemetry/sdk-trace-base": "^1.15.0",
"@sentry/node": "^7.17.2",
"@sentry/tracing": "^7.17.2",
"await-lock": "^2.2.2",
"body-parser": "^1.20.1",
"config": "^3.3.8",
"express": "^4.17",
"html-to-text": "^8.0.0",
"humanize-duration": "^3.27.1",
"humanize-duration-ts": "^2.1.1",
"js-yaml": "^4.1.0",
"jsdom": "^16.6.0",
"matrix-appservice-bridge": "8.1.2",
"parse-duration": "^1.0.2",
"pg": "^8.8.0",
"shell-quote": "^1.7.3",
"ulidx": "^0.3.0",
"yaml": "^2.2.2"
},
"overrides": {
"matrix-appservice-bridge": {
"matrix-appservice": "MTRNord/matrix-appservice-node#669af793863f12429f30854dd104673794884abe"
}
},
"resolutions": {
"matrix-appservice": "https://github.com/MTRNord/matrix-appservice-node.git#669af793863f12429f30854dd104673794884abe"
},
"engines": {
"node": ">=18.0.0"
"name": "draupnir",
"version": "1.84.0",
"description": "A moderation tool for Matrix",
"main": "lib/index.js",
"repository": "https://github.com/MTRNord/Draupnir.git",
"author": "Gnuxie",
"license": "SEE LICENSE IN LICENSE",
"private": true,
"scripts": {
"build": "tsc",
"postbuild": "yarn remove-tests-from-lib && yarn describe-version",
"describe-version": "(git describe > version.txt.tmp && mv version.txt.tmp version.txt) || true && rm -f version.txt.tmp",
"remove-tests-from-lib": "rm -rf lib/test/ && cp -r lib/src/* lib/ && rm -rf lib/src/",
"lint": "tslint --project ./tsconfig.json -t stylish",
"start:dev": "yarn build && node --async-stack-traces lib/index.js",
"test": "ts-mocha --project ./tsconfig.json test/commands/**/*.ts",
"test:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --require test/integration/fixtures.ts --timeout 300000 --project ./tsconfig.json \"test/integration/**/*Test.ts\"",
"test:integration:single": "NODE_ENV=harness npx ts-mocha --require test/integration/fixtures.ts --timeout 300000 --project ./tsconfig.json",
"test:appservice:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --timeout 300000 --project ./tsconfig.json \"test/appservice/integration/**/*Test.ts\"",
"test:appservice:integration:single": "NODE_ENV=harness npx ts-mocha --timeout 300000 --project ./tsconfig.json",
"test:manual": "NODE_ENV=harness ts-node test/integration/manualLaunchScript.ts",
"version": "sed -i '/# version automated/s/[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][^\"]*/'$npm_package_version'/' synapse_antispam/setup.py && git add synapse_antispam/setup.py && cat synapse_antispam/setup.py"
},
"devDependencies": {
"@types/config": "^3.3.0",
"@types/crypto-js": "^4.0.2",
"@types/express": "^4.17.13",
"@types/html-to-text": "^8.0.1",
"@types/humanize-duration": "^3.27.1",
"@types/js-yaml": "^4.0.5",
"@types/jsdom": "^16.2.11",
"@types/mocha": "^9.0.0",
"@types/nedb": "^1.8.12",
"@types/node": "^18.16.7",
"@types/pg": "^8.6.5",
"@types/request": "^2.48.8",
"@types/shell-quote": "1.7.1",
"crypto-js": "^4.1.1",
"eslint": "^7.32",
"expect": "^27.0.6",
"mocha": "^9.0.1",
"ts-mocha": "^9.0.2",
"tslint": "^6.1.3",
"typescript": "^5.1.6",
"typescript-formatter": "^7.2"
},
"dependencies": {
"@opentelemetry/api": "^1.4.1",
"@opentelemetry/auto-instrumentations-node": "^0.38.0",
"@opentelemetry/exporter-metrics-otlp-http": "^0.41.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.41.0",
"@opentelemetry/sdk-metrics": "^1.15.0",
"@opentelemetry/sdk-node": "^0.41.0",
"@opentelemetry/sdk-trace-base": "^1.15.0",
"@sentry/node": "^7.17.2",
"@sentry/tracing": "^7.17.2",
"await-lock": "^2.2.2",
"body-parser": "^1.20.1",
"config": "^3.3.8",
"express": "^4.17",
"html-to-text": "^8.0.0",
"humanize-duration": "^3.27.1",
"humanize-duration-ts": "^2.1.1",
"js-yaml": "^4.1.0",
"jsdom": "^16.6.0",
"matrix-appservice-bridge": "8.1.2",
"parse-duration": "^1.0.2",
"pg": "^8.8.0",
"shell-quote": "^1.7.3",
"ulidx": "^0.3.0",
"yaml": "^2.2.2"
},
"overrides": {
"matrix-appservice-bridge": {
"matrix-appservice": "MTRNord/matrix-appservice-node#669af793863f12429f30854dd104673794884abe"
}
},
"resolutions": {
"matrix-appservice": "https://github.com/MTRNord/matrix-appservice-node.git#669af793863f12429f30854dd104673794884abe"
},
"engines": {
"node": ">=18.0.0"
}
}
+6 -1
View File
@@ -37,6 +37,7 @@ import { SOFTWARE_VERSION } from "../config";
import { independentTrace, trace } from "../utils";
import { DRAUPNIR_RESULT, DRAUPNIR_TRACING_ATTRIBUTES } from "../tracer";
import * as api from '@opentelemetry/api'
import { Registry } from 'prom-client';
const log = new Logger("AppService");
@@ -91,8 +92,12 @@ export class MjolnirAppService {
const accessControlListId = await bridge.getBot().getClient().resolveRoom(config.adminRoom);
const accessControl = await AccessControl.setupAccessControl(accessControlListId, bridge);
// Activate /metrics endpoint for Prometheus
// This should happen automatically but in testing this didn't happen in the docker image
setBridgeVersion(SOFTWARE_VERSION);
const prometheus = bridge.getPrometheusMetrics(false);
// Due to the way the tests and this prom library works we need to explicitly create a new one each time.
const prometheus = bridge.getPrometheusMetrics(true, new Registry());
const instanceCountGauge = prometheus.addGauge({
name: "draupnir_instances",
help: "Count of Draupnir Instances",
+10 -29
View File
@@ -14,6 +14,7 @@ import { MatrixRoomReference } from "../commands/interface-manager/MatrixRoomRef
import { Gauge } from "prom-client";
import { trace } from "../utils";
import * as api from '@opentelemetry/api';
import { decrementGaugeValue, incrementGaugeValue } from "../utils";
const log = new Logger('MjolnirManager');
@@ -76,18 +77,9 @@ export class MjolnirManager {
await managedMjolnir.start();
this.mjolnirs.set(mxid, managedMjolnir);
this.unstartedMjolnirs.delete(mxid);
// @ts-ignore
if (this.instanceCountGauge._getValue({ status: "offline", uuid: localPart })) {
this.instanceCountGauge.dec({ status: "offline", uuid: localPart });
}
// @ts-ignore
if (this.instanceCountGauge._getValue({ status: "disabled", uuid: localPart })) {
this.instanceCountGauge.dec({ status: "disabled", uuid: localPart });
}
// @ts-ignore
if (!this.instanceCountGauge._getValue({ status: "online", uuid: localPart })) {
this.instanceCountGauge.inc({ status: "online", uuid: localPart });
}
incrementGaugeValue(this.instanceCountGauge, "offline", localPart);
decrementGaugeValue(this.instanceCountGauge, "disabled", localPart);
incrementGaugeValue(this.instanceCountGauge, "online", localPart);
return managedMjolnir;
}
@@ -222,16 +214,11 @@ export class MjolnirManager {
// Don't await, we don't want to clobber initialization just because we can't tell someone they're no longer allowed.
mjIntent.matrixClient.sendNotice(mjolnirRecord.management_room, `Your mjolnir has been disabled by the administrator: ${access.rule?.reason ?? "no reason supplied"}`);
this.reportUnstartedMjolnir(UnstartedMjolnir.FailCode.Unauthorized, access.outcome, mjolnirRecord, mjIntent.userId);
// @ts-ignore
if (this.instanceCountGauge._getValue({ status: "online", uuid: mjolnirRecord.local_part })) {
this.instanceCountGauge.dec({ status: "online", uuid: mjolnirRecord.local_part });
}
// @ts-ignore
if (!this.instanceCountGauge._getValue({ status: "disabled", uuid: mjolnirRecord.local_part })) {
this.instanceCountGauge.inc({ status: "disabled", uuid: mjolnirRecord.local_part });
}
decrementGaugeValue(this.instanceCountGauge, "online", mjolnirRecord.local_part);
incrementGaugeValue(this.instanceCountGauge, "disabled", mjolnirRecord.local_part);
} else {
await this.makeInstance(mjolnirRecord.local_part,
await this.makeInstance(
mjolnirRecord.local_part,
mjolnirRecord.owner,
mjolnirRecord.management_room,
mjIntent.matrixClient,
@@ -241,14 +228,8 @@ export class MjolnirManager {
// Don't await, we don't want to clobber initialization if this fails.
mjIntent.matrixClient.sendNotice(mjolnirRecord.management_room, `Your mjolnir could not be started. Please alert the administrator`);
this.reportUnstartedMjolnir(UnstartedMjolnir.FailCode.StartError, e, mjolnirRecord, mjIntent.userId);
// @ts-ignore
if (this.instanceCountGauge._getValue({ status: "online", uuid: mjolnirRecord.local_part })) {
this.instanceCountGauge.dec({ status: "online", uuid: mjolnirRecord.local_part });
}
// @ts-ignore
if (!this.instanceCountGauge._getValue({ status: "offline", uuid: mjolnirRecord.local_part })) {
this.instanceCountGauge.inc({ status: "offline", uuid: mjolnirRecord.local_part });
}
decrementGaugeValue(this.instanceCountGauge, "online", mjolnirRecord.local_part);
incrementGaugeValue(this.instanceCountGauge, "offline", mjolnirRecord.local_part);
});
}
}
@@ -64,10 +64,13 @@ export function renderCommandHelp(command: InterfaceCommand<BaseFunction>): stri
}
function renderTableHelp(table: CommandTable): DocumentNode {
// FIXME: is it possible to force case of table names?
let tableName = table.name;
if (typeof table.name === 'string') {
tableName = table.name.charAt(0).toUpperCase() + table.name.slice(1);
}
return <root>
<details>
<summary><b>{table.name} commands:</b></summary>
<summary><b>{tableName} commands:</b></summary>
{table.getExportedCommands().map(renderCommandSummary)}
{table.getImportedTables().map(renderTableHelp)}
</details>
+37
View File
@@ -42,6 +42,7 @@ import * as _ from '@sentry/tracing'; // Performing the import activates tracing
import ManagementRoomOutput from "./ManagementRoomOutput";
import { IConfig } from "./config";
import { MatrixSendClient } from "./MatrixEmitter";
import { Gauge } from "prom-client";
// Define a few aliases to simplify parsing durations.
@@ -71,6 +72,42 @@ export function setToArray<T>(set: Set<T>): T[] {
return arr;
}
/**
* This increments a prometheus gauge. Used in the Appservice MjolnirManager.
*
* The ts-ignore is mandatory since we access a private method due to lack of a public one.
*
* See https://github.com/Gnuxie/Draupnir/pull/70#discussion_r1299188922
*
* @param gauge The Gauge to be modified
* @param status The status value that should be modified
* @param uuid The UUID of the instance. (Usually the localPart)
*/
export function incrementGaugeValue(gauge: Gauge<"status" | "uuid">, status: "offline" | "disabled" | "online", uuid: string) {
// @ts-ignore
if (!gauge._getValue({ status: status, uuid: uuid })) {
gauge.inc({ status: status, uuid: uuid });
}
}
/**
* This decrements a prometheus gauge. Used in the Appservice MjolnirManager.
*
* The ts-ignore is mandatory since we access a private method due to lack of a public one.
*
* See https://github.com/Gnuxie/Draupnir/pull/70#discussion_r1299188922
*
* @param gauge The Gauge to be modified
* @param status The status value that should be modified
* @param uuid The UUID of the instance. (Usually the localPart)
*/
export function decrementGaugeValue(gauge: Gauge<"status" | "uuid">, status: "offline" | "disabled" | "online", uuid: string) {
// @ts-ignore
if (gauge._getValue({ status: status, uuid: uuid })) {
gauge.dec({ status: status, uuid: uuid });
}
}
export function isTrueJoinEvent(event: any): boolean {
const membership = event['content']['membership'] || 'join';
let prevMembership = "leave";
+9 -144
View File
@@ -1609,22 +1609,6 @@ bluebird@^3.5.0:
resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
body-parser@1.19.2:
version "1.19.2"
resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz"
integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==
dependencies:
bytes "3.1.2"
content-type "~1.0.4"
debug "2.6.9"
depd "~1.1.2"
http-errors "1.8.1"
iconv-lite "0.4.24"
on-finished "~2.3.0"
qs "6.9.7"
raw-body "2.4.3"
type-is "~1.6.18"
body-parser@1.20.0:
version "1.20.0"
resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz"
@@ -1888,16 +1872,16 @@ cookie-signature@1.0.6:
resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
cookie@0.4.2, cookie@^0.4.1:
version "0.4.2"
resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
cookie@0.5.0:
version "0.5.0"
resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
cookie@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
@@ -1994,21 +1978,11 @@ depd@2.0.0, depd@~2.0.0:
resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
destroy@1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
destroy@~1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==
diff-sequences@^27.0.6:
version "27.5.1"
resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz"
@@ -2314,43 +2288,7 @@ express-rate-limit@^6.7.0:
resolved "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.7.0.tgz"
integrity sha512-vhwIdRoqcYB/72TK3tRZI+0ttS8Ytrk24GfmsxDXK9o9IhHNO5bXRiXQSExPQ4GbaE5tvIS7j1SGrxsuWs+sGA==
express@^4.17:
version "4.17.3"
resolved "https://registry.npmjs.org/express/-/express-4.17.3.tgz"
integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
body-parser "1.19.2"
content-disposition "0.5.4"
content-type "~1.0.4"
cookie "0.4.2"
cookie-signature "1.0.6"
debug "2.6.9"
depd "~1.1.2"
encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
finalhandler "~1.1.2"
fresh "0.5.2"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
parseurl "~1.3.3"
path-to-regexp "0.1.7"
proxy-addr "~2.0.7"
qs "6.9.7"
range-parser "~1.2.1"
safe-buffer "5.2.1"
send "0.17.2"
serve-static "1.14.2"
setprototypeof "1.2.0"
statuses "~1.5.0"
type-is "~1.6.18"
utils-merge "1.0.1"
vary "~1.1.2"
express@^4.18.1:
express@^4.17, express@^4.18.1:
version "4.18.1"
resolved "https://registry.npmjs.org/express/-/express-4.18.1.tgz"
integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
@@ -2456,19 +2394,6 @@ finalhandler@1.2.0:
statuses "2.0.1"
unpipe "~1.0.0"
finalhandler@~1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"
integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
escape-html "~1.0.3"
on-finished "~2.3.0"
parseurl "~1.3.3"
statuses "~1.5.0"
unpipe "~1.0.0"
find-up@5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
@@ -2791,17 +2716,6 @@ htmlparser2@^6.0.0, htmlparser2@^6.1.0:
domutils "^2.5.2"
entities "^2.0.0"
http-errors@1.8.1:
version "1.8.1"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz"
integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
dependencies:
depd "~1.1.2"
inherits "2.0.4"
setprototypeof "1.2.0"
statuses ">= 1.5.0 < 2"
toidentifier "1.0.1"
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
@@ -3363,7 +3277,7 @@ make-error@^1.1.1:
matrix-appservice-bridge@8.1.2:
version "8.1.2"
resolved "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-8.1.2.tgz"
resolved "https://registry.yarnpkg.com/matrix-appservice-bridge/-/matrix-appservice-bridge-8.1.2.tgz#30953a4599533fe61a0c37bd5500b654cd236e30"
integrity sha512-OTQVEuYgsnlg7fBFASCaiYHgwi5+I/+vxwjOmR4y9n5ESKXoqI465bN+6zvW8MazdNfBl6NgZVWSm4DZohz8Zw==
dependencies:
"@alloc/quick-lru" "^5.2.0"
@@ -3388,9 +3302,9 @@ matrix-appservice-bridge@8.1.2:
winston "^3.3.3"
winston-daily-rotate-file "^4.5.1"
matrix-appservice@^1.1.0, "matrix-appservice@https://github.com/MTRNord/matrix-appservice-node.git#78e0cf8f025cea22236c6c12553794bc6dd1bb07":
matrix-appservice@^1.1.0, "matrix-appservice@https://github.com/MTRNord/matrix-appservice-node.git#669af793863f12429f30854dd104673794884abe":
version "2.0.0"
resolved "https://github.com/MTRNord/matrix-appservice-node.git#78e0cf8f025cea22236c6c12553794bc6dd1bb07"
resolved "https://github.com/MTRNord/matrix-appservice-node.git#669af793863f12429f30854dd104673794884abe"
dependencies:
"@opentelemetry/api" "^1.4.1"
"@opentelemetry/shim-opentracing" "^1.15.2"
@@ -4037,11 +3951,6 @@ qs@6.11.0:
dependencies:
side-channel "^1.0.4"
qs@6.9.7:
version "6.9.7"
resolved "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz"
integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==
qs@~6.5.2:
version "6.5.3"
resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz"
@@ -4072,16 +3981,6 @@ range-parser@~1.2.1:
resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
raw-body@2.4.3:
version "2.4.3"
resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz"
integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==
dependencies:
bytes "3.1.2"
http-errors "1.8.1"
iconv-lite "0.4.24"
unpipe "1.0.0"
raw-body@2.5.1:
version "2.5.1"
resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
@@ -4264,25 +4163,6 @@ semver@^7.2.1, semver@^7.5.1, semver@^7.5.4:
dependencies:
lru-cache "^6.0.0"
send@0.17.2:
version "0.17.2"
resolved "https://registry.npmjs.org/send/-/send-0.17.2.tgz"
integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
dependencies:
debug "2.6.9"
depd "~1.1.2"
destroy "~1.0.4"
encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
fresh "0.5.2"
http-errors "1.8.1"
mime "1.6.0"
ms "2.1.3"
on-finished "~2.3.0"
range-parser "~1.2.1"
statuses "~1.5.0"
send@0.18.0:
version "0.18.0"
resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz"
@@ -4309,16 +4189,6 @@ serialize-javascript@6.0.0:
dependencies:
randombytes "^2.1.0"
serve-static@1.14.2:
version "1.14.2"
resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz"
integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
parseurl "~1.3.3"
send "0.17.2"
serve-static@1.15.0:
version "1.15.0"
resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
@@ -4456,11 +4326,6 @@ statuses@2.0.1:
resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
version "1.5.0"
resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
stealthy-require@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz"