UNPKG

matrix-react-sdk

Version:
63 lines (58 loc) 7.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.RECOMMENDATION_BAN_TYPES = exports.RECOMMENDATION_BAN = exports.ListRule = void 0; exports.recommendationToStable = recommendationToStable; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _invitesIgnorer = require("matrix-js-sdk/src/models/invites-ignorer"); var _MatrixGlob = require("../utils/MatrixGlob"); /* Copyright 2024 New Vector Ltd. Copyright 2019 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ // We are using experimental APIs here, so we need to disable the linter // eslint-disable-next-line no-restricted-imports // Inspiration largely taken from Mjolnir itself const RECOMMENDATION_BAN = exports.RECOMMENDATION_BAN = _invitesIgnorer.PolicyRecommendation.Ban; const RECOMMENDATION_BAN_TYPES = exports.RECOMMENDATION_BAN_TYPES = [RECOMMENDATION_BAN, "org.matrix.mjolnir.ban"]; function recommendationToStable(recommendation, unstable = true) { if (RECOMMENDATION_BAN_TYPES.includes(recommendation)) { return unstable ? RECOMMENDATION_BAN_TYPES[RECOMMENDATION_BAN_TYPES.length - 1] : RECOMMENDATION_BAN; } return null; } class ListRule { constructor(entity, action, reason, kind) { (0, _defineProperty2.default)(this, "_glob", void 0); (0, _defineProperty2.default)(this, "_entity", void 0); (0, _defineProperty2.default)(this, "_action", void 0); (0, _defineProperty2.default)(this, "_reason", void 0); (0, _defineProperty2.default)(this, "_kind", void 0); this._glob = new _MatrixGlob.MatrixGlob(entity); this._entity = entity; this._action = recommendationToStable(action, false); this._reason = reason; this._kind = kind; } get entity() { return this._entity; } get reason() { return this._reason; } get kind() { return this._kind; } get recommendation() { return this._action; } isMatch(entity) { return this._glob.test(entity); } } exports.ListRule = ListRule; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW52aXRlc0lnbm9yZXIiLCJyZXF1aXJlIiwiX01hdHJpeEdsb2IiLCJSRUNPTU1FTkRBVElPTl9CQU4iLCJleHBvcnRzIiwiUG9saWN5UmVjb21tZW5kYXRpb24iLCJCYW4iLCJSRUNPTU1FTkRBVElPTl9CQU5fVFlQRVMiLCJyZWNvbW1lbmRhdGlvblRvU3RhYmxlIiwicmVjb21tZW5kYXRpb24iLCJ1bnN0YWJsZSIsImluY2x1ZGVzIiwibGVuZ3RoIiwiTGlzdFJ1bGUiLCJjb25zdHJ1Y3RvciIsImVudGl0eSIsImFjdGlvbiIsInJlYXNvbiIsImtpbmQiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsIl9nbG9iIiwiTWF0cml4R2xvYiIsIl9lbnRpdHkiLCJfYWN0aW9uIiwiX3JlYXNvbiIsIl9raW5kIiwiaXNNYXRjaCIsInRlc3QiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWpvbG5pci9MaXN0UnVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vLyBXZSBhcmUgdXNpbmcgZXhwZXJpbWVudGFsIEFQSXMgaGVyZSwgc28gd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBsaW50ZXJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCB7IFBvbGljeVJlY29tbWVuZGF0aW9uIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21vZGVscy9pbnZpdGVzLWlnbm9yZXJcIjtcblxuaW1wb3J0IHsgTWF0cml4R2xvYiB9IGZyb20gXCIuLi91dGlscy9NYXRyaXhHbG9iXCI7XG5cbi8vIEluc3BpcmF0aW9uIGxhcmdlbHkgdGFrZW4gZnJvbSBNam9sbmlyIGl0c2VsZlxuXG5leHBvcnQgY29uc3QgUkVDT01NRU5EQVRJT05fQkFOID0gUG9saWN5UmVjb21tZW5kYXRpb24uQmFuO1xuZXhwb3J0IGNvbnN0IFJFQ09NTUVOREFUSU9OX0JBTl9UWVBFUzogUG9saWN5UmVjb21tZW5kYXRpb25bXSA9IFtcbiAgICBSRUNPTU1FTkRBVElPTl9CQU4sXG4gICAgXCJvcmcubWF0cml4Lm1qb2xuaXIuYmFuXCIgYXMgUG9saWN5UmVjb21tZW5kYXRpb24sXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVjb21tZW5kYXRpb25Ub1N0YWJsZShcbiAgICByZWNvbW1lbmRhdGlvbjogUG9saWN5UmVjb21tZW5kYXRpb24sXG4gICAgdW5zdGFibGUgPSB0cnVlLFxuKTogUG9saWN5UmVjb21tZW5kYXRpb24gfCBudWxsIHtcbiAgICBpZiAoUkVDT01NRU5EQVRJT05fQkFOX1RZUEVTLmluY2x1ZGVzKHJlY29tbWVuZGF0aW9uKSkge1xuICAgICAgICByZXR1cm4gdW5zdGFibGUgPyBSRUNPTU1FTkRBVElPTl9CQU5fVFlQRVNbUkVDT01NRU5EQVRJT05fQkFOX1RZUEVTLmxlbmd0aCAtIDFdIDogUkVDT01NRU5EQVRJT05fQkFOO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIExpc3RSdWxlIHtcbiAgICBwcml2YXRlIF9nbG9iOiBNYXRyaXhHbG9iO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0eTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2FjdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWFzb246IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9raW5kOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZW50aXR5OiBzdHJpbmcsIGFjdGlvbjogUG9saWN5UmVjb21tZW5kYXRpb24sIHJlYXNvbjogc3RyaW5nLCBraW5kOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZ2xvYiA9IG5ldyBNYXRyaXhHbG9iKGVudGl0eSk7XG4gICAgICAgIHRoaXMuX2VudGl0eSA9IGVudGl0eTtcbiAgICAgICAgdGhpcy5fYWN0aW9uID0gcmVjb21tZW5kYXRpb25Ub1N0YWJsZShhY3Rpb24sIGZhbHNlKTtcbiAgICAgICAgdGhpcy5fcmVhc29uID0gcmVhc29uO1xuICAgICAgICB0aGlzLl9raW5kID0ga2luZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVudGl0eSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW50aXR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVhc29uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFzb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBraW5kKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9raW5kO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVjb21tZW5kYXRpb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGlzTWF0Y2goZW50aXR5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dsb2IudGVzdChlbnRpdHkpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBVUEsSUFBQUEsZUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFLQTs7QUFFTyxNQUFNRSxrQkFBa0IsR0FBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFHRSxvQ0FBb0IsQ0FBQ0MsR0FBRztBQUNuRCxNQUFNQyx3QkFBZ0QsR0FBQUgsT0FBQSxDQUFBRyx3QkFBQSxHQUFHLENBQzVESixrQkFBa0IsRUFDbEIsd0JBQXdCLENBQzNCO0FBRU0sU0FBU0ssc0JBQXNCQSxDQUNsQ0MsY0FBb0MsRUFDcENDLFFBQVEsR0FBRyxJQUFJLEVBQ1k7RUFDM0IsSUFBSUgsd0JBQXdCLENBQUNJLFFBQVEsQ0FBQ0YsY0FBYyxDQUFDLEVBQUU7SUFDbkQsT0FBT0MsUUFBUSxHQUFHSCx3QkFBd0IsQ0FBQ0Esd0JBQXdCLENBQUNLLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBR1Qsa0JBQWtCO0VBQ3hHO0VBQ0EsT0FBTyxJQUFJO0FBQ2Y7QUFFTyxNQUFNVSxRQUFRLENBQUM7RUFPWEMsV0FBV0EsQ0FBQ0MsTUFBYyxFQUFFQyxNQUE0QixFQUFFQyxNQUFjLEVBQUVDLElBQVksRUFBRTtJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQTtJQUFBLElBQUFELGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQzNGLElBQUksQ0FBQ0MsS0FBSyxHQUFHLElBQUlDLHNCQUFVLENBQUNQLE1BQU0sQ0FBQztJQUNuQyxJQUFJLENBQUNRLE9BQU8sR0FBR1IsTUFBTTtJQUNyQixJQUFJLENBQUNTLE9BQU8sR0FBR2hCLHNCQUFzQixDQUFDUSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ3BELElBQUksQ0FBQ1MsT0FBTyxHQUFHUixNQUFNO0lBQ3JCLElBQUksQ0FBQ1MsS0FBSyxHQUFHUixJQUFJO0VBQ3JCO0VBRUEsSUFBV0gsTUFBTUEsQ0FBQSxFQUFXO0lBQ3hCLE9BQU8sSUFBSSxDQUFDUSxPQUFPO0VBQ3ZCO0VBRUEsSUFBV04sTUFBTUEsQ0FBQSxFQUFXO0lBQ3hCLE9BQU8sSUFBSSxDQUFDUSxPQUFPO0VBQ3ZCO0VBRUEsSUFBV1AsSUFBSUEsQ0FBQSxFQUFXO0lBQ3RCLE9BQU8sSUFBSSxDQUFDUSxLQUFLO0VBQ3JCO0VBRUEsSUFBV2pCLGNBQWNBLENBQUEsRUFBa0I7SUFDdkMsT0FBTyxJQUFJLENBQUNlLE9BQU87RUFDdkI7RUFFT0csT0FBT0EsQ0FBQ1osTUFBYyxFQUFXO0lBQ3BDLE9BQU8sSUFBSSxDQUFDTSxLQUFLLENBQUNPLElBQUksQ0FBQ2IsTUFBTSxDQUFDO0VBQ2xDO0FBQ0o7QUFBQ1gsT0FBQSxDQUFBUyxRQUFBLEdBQUFBLFFBQUEiLCJpZ25vcmVMaXN0IjpbXX0=