UNPKG

matrix-react-sdk

Version:
87 lines (84 loc) 11.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Kind = exports.IntegrationManagerInstance = void 0; var _logger = require("matrix-js-sdk/src/logger"); var _ScalarAuthClient = _interopRequireDefault(require("../ScalarAuthClient")); var _Terms = require("../Terms"); var _Modal = _interopRequireDefault(require("../Modal")); var _SettingsStore = _interopRequireDefault(require("../settings/SettingsStore")); var _IntegrationManager = _interopRequireDefault(require("../components/views/settings/IntegrationManager")); var _IntegrationManagers = require("./IntegrationManagers"); var _UrlUtils = require("../utils/UrlUtils"); /* 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. */ let Kind = exports.Kind = /*#__PURE__*/function (Kind) { Kind["Account"] = "account"; Kind["Config"] = "config"; Kind["Homeserver"] = "homeserver"; return Kind; }({}); class IntegrationManagerInstance { // Per the spec: UI URL is optional. constructor(kind, apiUrl, uiUrl = apiUrl, id // only applicable in some cases ) { this.kind = kind; this.apiUrl = apiUrl; this.uiUrl = uiUrl; this.id = id; } get name() { const parsed = (0, _UrlUtils.parseUrl)(this.uiUrl); return parsed.host ?? ""; } get trimmedApiUrl() { const parsed = (0, _UrlUtils.parseUrl)(this.apiUrl); parsed.pathname = ""; return parsed.toString(); } getScalarClient() { return new _ScalarAuthClient.default(this.apiUrl, this.uiUrl); } async open(room, screen, integrationId) { if (!_SettingsStore.default.getValue("integrationProvisioning")) { return _IntegrationManagers.IntegrationManagers.sharedInstance().showDisabledDialog(); } const dialog = _Modal.default.createDialog(_IntegrationManager.default, { loading: true }, "mx_IntegrationManager"); const client = this.getScalarClient(); client.setTermsInteractionCallback((policyInfo, agreedUrls) => { // To avoid visual glitching of two modals stacking briefly, we customise the // terms dialog sizing when it will appear for the integration manager so that // it gets the same basic size as the integration manager's own modal. return (0, _Terms.dialogTermsInteractionCallback)(policyInfo, agreedUrls, "mx_TermsDialog_forIntegrationManager"); }); const newProps = {}; try { await client.connect(); if (!client.hasCredentials()) { newProps["connected"] = false; } else { newProps["url"] = client.getScalarInterfaceUrlForRoom(room, screen, integrationId); } } catch (e) { if (e instanceof _Terms.TermsNotSignedError) { dialog.close(); return; } _logger.logger.error(e); newProps["connected"] = false; } // Close the old dialog and open a new one dialog.close(); _Modal.default.createDialog(_IntegrationManager.default, newProps, "mx_IntegrationManager"); } } exports.IntegrationManagerInstance = IntegrationManagerInstance; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwicmVxdWlyZSIsIl9TY2FsYXJBdXRoQ2xpZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9UZXJtcyIsIl9Nb2RhbCIsIl9TZXR0aW5nc1N0b3JlIiwiX0ludGVncmF0aW9uTWFuYWdlciIsIl9JbnRlZ3JhdGlvbk1hbmFnZXJzIiwiX1VybFV0aWxzIiwiS2luZCIsImV4cG9ydHMiLCJJbnRlZ3JhdGlvbk1hbmFnZXJJbnN0YW5jZSIsImNvbnN0cnVjdG9yIiwia2luZCIsImFwaVVybCIsInVpVXJsIiwiaWQiLCJuYW1lIiwicGFyc2VkIiwicGFyc2VVcmwiLCJob3N0IiwidHJpbW1lZEFwaVVybCIsInBhdGhuYW1lIiwidG9TdHJpbmciLCJnZXRTY2FsYXJDbGllbnQiLCJTY2FsYXJBdXRoQ2xpZW50Iiwib3BlbiIsInJvb20iLCJzY3JlZW4iLCJpbnRlZ3JhdGlvbklkIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwiSW50ZWdyYXRpb25NYW5hZ2VycyIsInNoYXJlZEluc3RhbmNlIiwic2hvd0Rpc2FibGVkRGlhbG9nIiwiZGlhbG9nIiwiTW9kYWwiLCJjcmVhdGVEaWFsb2ciLCJJbnRlZ3JhdGlvbk1hbmFnZXIiLCJsb2FkaW5nIiwiY2xpZW50Iiwic2V0VGVybXNJbnRlcmFjdGlvbkNhbGxiYWNrIiwicG9saWN5SW5mbyIsImFncmVlZFVybHMiLCJkaWFsb2dUZXJtc0ludGVyYWN0aW9uQ2FsbGJhY2siLCJuZXdQcm9wcyIsImNvbm5lY3QiLCJoYXNDcmVkZW50aWFscyIsImdldFNjYWxhckludGVyZmFjZVVybEZvclJvb20iLCJlIiwiVGVybXNOb3RTaWduZWRFcnJvciIsImNsb3NlIiwibG9nZ2VyIiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZWdyYXRpb25zL0ludGVncmF0aW9uTWFuYWdlckluc3RhbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCB7IENvbXBvbmVudFByb3BzIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbG9nZ2VyXCI7XG5cbmltcG9ydCB0eXBlIHsgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCBTY2FsYXJBdXRoQ2xpZW50IGZyb20gXCIuLi9TY2FsYXJBdXRoQ2xpZW50XCI7XG5pbXBvcnQgeyBkaWFsb2dUZXJtc0ludGVyYWN0aW9uQ2FsbGJhY2ssIFRlcm1zTm90U2lnbmVkRXJyb3IgfSBmcm9tIFwiLi4vVGVybXNcIjtcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vTW9kYWxcIjtcbmltcG9ydCBTZXR0aW5nc1N0b3JlIGZyb20gXCIuLi9zZXR0aW5ncy9TZXR0aW5nc1N0b3JlXCI7XG5pbXBvcnQgSW50ZWdyYXRpb25NYW5hZ2VyIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL0ludGVncmF0aW9uTWFuYWdlclwiO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25NYW5hZ2VycyB9IGZyb20gXCIuL0ludGVncmF0aW9uTWFuYWdlcnNcIjtcbmltcG9ydCB7IHBhcnNlVXJsIH0gZnJvbSBcIi4uL3V0aWxzL1VybFV0aWxzXCI7XG5cbmV4cG9ydCBlbnVtIEtpbmQge1xuICAgIEFjY291bnQgPSBcImFjY291bnRcIixcbiAgICBDb25maWcgPSBcImNvbmZpZ1wiLFxuICAgIEhvbWVzZXJ2ZXIgPSBcImhvbWVzZXJ2ZXJcIixcbn1cblxuZXhwb3J0IGNsYXNzIEludGVncmF0aW9uTWFuYWdlckluc3RhbmNlIHtcbiAgICAvLyBQZXIgdGhlIHNwZWM6IFVJIFVSTCBpcyBvcHRpb25hbC5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBraW5kOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBhcGlVcmw6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHVpVXJsOiBzdHJpbmcgPSBhcGlVcmwsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpZD86IHN0cmluZywgLy8gb25seSBhcHBsaWNhYmxlIGluIHNvbWUgY2FzZXNcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VVcmwodGhpcy51aVVybCk7XG4gICAgICAgIHJldHVybiBwYXJzZWQuaG9zdCA/PyBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHJpbW1lZEFwaVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVVybCh0aGlzLmFwaVVybCk7XG4gICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IFwiXCI7XG4gICAgICAgIHJldHVybiBwYXJzZWQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NhbGFyQ2xpZW50KCk6IFNjYWxhckF1dGhDbGllbnQge1xuICAgICAgICByZXR1cm4gbmV3IFNjYWxhckF1dGhDbGllbnQodGhpcy5hcGlVcmwsIHRoaXMudWlVcmwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBvcGVuKHJvb206IFJvb20sIHNjcmVlbj86IHN0cmluZywgaW50ZWdyYXRpb25JZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIVNldHRpbmdzU3RvcmUuZ2V0VmFsdWUoXCJpbnRlZ3JhdGlvblByb3Zpc2lvbmluZ1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIEludGVncmF0aW9uTWFuYWdlcnMuc2hhcmVkSW5zdGFuY2UoKS5zaG93RGlzYWJsZWREaWFsb2coKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpYWxvZyA9IE1vZGFsLmNyZWF0ZURpYWxvZyhJbnRlZ3JhdGlvbk1hbmFnZXIsIHsgbG9hZGluZzogdHJ1ZSB9LCBcIm14X0ludGVncmF0aW9uTWFuYWdlclwiKTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmdldFNjYWxhckNsaWVudCgpO1xuICAgICAgICBjbGllbnQuc2V0VGVybXNJbnRlcmFjdGlvbkNhbGxiYWNrKChwb2xpY3lJbmZvLCBhZ3JlZWRVcmxzKSA9PiB7XG4gICAgICAgICAgICAvLyBUbyBhdm9pZCB2aXN1YWwgZ2xpdGNoaW5nIG9mIHR3byBtb2RhbHMgc3RhY2tpbmcgYnJpZWZseSwgd2UgY3VzdG9taXNlIHRoZVxuICAgICAgICAgICAgLy8gdGVybXMgZGlhbG9nIHNpemluZyB3aGVuIGl0IHdpbGwgYXBwZWFyIGZvciB0aGUgaW50ZWdyYXRpb24gbWFuYWdlciBzbyB0aGF0XG4gICAgICAgICAgICAvLyBpdCBnZXRzIHRoZSBzYW1lIGJhc2ljIHNpemUgYXMgdGhlIGludGVncmF0aW9uIG1hbmFnZXIncyBvd24gbW9kYWwuXG4gICAgICAgICAgICByZXR1cm4gZGlhbG9nVGVybXNJbnRlcmFjdGlvbkNhbGxiYWNrKHBvbGljeUluZm8sIGFncmVlZFVybHMsIFwibXhfVGVybXNEaWFsb2dfZm9ySW50ZWdyYXRpb25NYW5hZ2VyXCIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBuZXdQcm9wczogUGFydGlhbDxDb21wb25lbnRQcm9wczx0eXBlb2YgSW50ZWdyYXRpb25NYW5hZ2VyPj4gPSB7fTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5jb25uZWN0KCk7XG4gICAgICAgICAgICBpZiAoIWNsaWVudC5oYXNDcmVkZW50aWFscygpKSB7XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbXCJjb25uZWN0ZWRcIl0gPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UHJvcHNbXCJ1cmxcIl0gPSBjbGllbnQuZ2V0U2NhbGFySW50ZXJmYWNlVXJsRm9yUm9vbShyb29tLCBzY3JlZW4sIGludGVncmF0aW9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFRlcm1zTm90U2lnbmVkRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICAgIG5ld1Byb3BzW1wiY29ubmVjdGVkXCJdID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbG9zZSB0aGUgb2xkIGRpYWxvZyBhbmQgb3BlbiBhIG5ldyBvbmVcbiAgICAgICAgZGlhbG9nLmNsb3NlKCk7XG4gICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhJbnRlZ3JhdGlvbk1hbmFnZXIsIG5ld1Byb3BzLCBcIm14X0ludGVncmF0aW9uTWFuYWdlclwiKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFHQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLG9CQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxTQUFBLEdBQUFSLE9BQUE7QUFsQkE7QUFDQTtBQUNBO0FBQ0E7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