feat: complete Ancestor quote bot with production-ready Docker support

This commit is contained in:
unfunny
2026-09-13 14:14:38 -04:00
parent f2016da05a
commit fe7351a7dc
1145 changed files with 30890 additions and 97684 deletions

View File

@@ -1,3 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ServerSupport = exports.Feature = void 0;
exports.buildFeatureSupportMap = buildFeatureSupportMap;
/*
Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -13,19 +20,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
export let ServerSupport = /*#__PURE__*/function (ServerSupport) {
let ServerSupport = /*#__PURE__*/function (ServerSupport) {
ServerSupport[ServerSupport["Stable"] = 0] = "Stable";
ServerSupport[ServerSupport["Unstable"] = 1] = "Unstable";
ServerSupport[ServerSupport["Unsupported"] = 2] = "Unsupported";
return ServerSupport;
}({});
export let Feature = /*#__PURE__*/function (Feature) {
exports.ServerSupport = ServerSupport;
let Feature = /*#__PURE__*/function (Feature) {
Feature["Thread"] = "Thread";
Feature["ThreadUnreadNotifications"] = "ThreadUnreadNotifications";
/**
* @deprecated this is now exposed as a capability not a feature
*/
Feature["LoginTokenRequest"] = "LoginTokenRequest";
Feature["RelationBasedRedactions"] = "RelationBasedRedactions";
Feature["AccountDataDeletion"] = "AccountDataDeletion";
@@ -33,6 +37,7 @@ export let Feature = /*#__PURE__*/function (Feature) {
Feature["IntentionalMentions"] = "IntentionalMentions";
return Feature;
}({});
exports.Feature = Feature;
const featureSupportResolver = {
[Feature.Thread]: {
unstablePrefixes: ["org.matrix.msc3440"],
@@ -48,22 +53,26 @@ const featureSupportResolver = {
[Feature.RelationBasedRedactions]: {
unstablePrefixes: ["org.matrix.msc3912"]
},
[Feature.AccountDataDeletion]: {
unstablePrefixes: ["org.matrix.msc3391"]
},
[Feature.RelationsRecursion]: {
unstablePrefixes: ["org.matrix.msc3981"],
matrixVersion: "v1.10"
unstablePrefixes: ["org.matrix.msc3981"]
},
[Feature.IntentionalMentions]: {
unstablePrefixes: ["org.matrix.msc3952_intentional_mentions"],
matrixVersion: "v1.7"
}
};
export async function buildFeatureSupportMap(versions) {
async function buildFeatureSupportMap(versions) {
const supportMap = new Map();
for (const [feature, supportCondition] of Object.entries(featureSupportResolver)) {
const supportMatrixVersion = versions.versions?.includes(supportCondition.matrixVersion || "") ?? false;
const supportUnstablePrefixes = supportCondition.unstablePrefixes?.every(unstablePrefix => {
return versions.unstable_features?.[unstablePrefix] === true;
}) ?? false;
var _versions$versions$in, _versions$versions, _supportCondition$uns, _supportCondition$uns2;
const supportMatrixVersion = (_versions$versions$in = (_versions$versions = versions.versions) === null || _versions$versions === void 0 ? void 0 : _versions$versions.includes(supportCondition.matrixVersion || "")) !== null && _versions$versions$in !== void 0 ? _versions$versions$in : false;
const supportUnstablePrefixes = (_supportCondition$uns = (_supportCondition$uns2 = supportCondition.unstablePrefixes) === null || _supportCondition$uns2 === void 0 ? void 0 : _supportCondition$uns2.every(unstablePrefix => {
var _versions$unstable_fe;
return ((_versions$unstable_fe = versions.unstable_features) === null || _versions$unstable_fe === void 0 ? void 0 : _versions$unstable_fe[unstablePrefix]) === true;
})) !== null && _supportCondition$uns !== void 0 ? _supportCondition$uns : false;
if (supportMatrixVersion) {
supportMap.set(feature, ServerSupport.Stable);
} else if (supportUnstablePrefixes) {