import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator"; import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck"; import _createClass from "@babel/runtime-corejs3/helpers/createClass"; import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty"; import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator"; import "core-js/modules/es.error.cause.js"; import _Promise from "@babel/runtime-corejs3/core-js-stable/promise"; import _Date$now from "@babel/runtime-corejs3/core-js-stable/date/now"; /** * */ import { getLogger } from './util/logger'; /** * */ /** * */ export var SessionRefreshDelegate = /*#__PURE__*/function () { function SessionRefreshDelegate(conn, refreshFn) { _classCallCheck(this, SessionRefreshDelegate); _defineProperty(this, "_lastRefreshedAt", undefined); _defineProperty(this, "_refreshPromise", undefined); this._conn = conn; this._logger = conn._logLevel ? SessionRefreshDelegate._logger.createInstance(conn._logLevel) : SessionRefreshDelegate._logger; this._refreshFn = refreshFn; } /** * Refresh access token * @private */ return _createClass(SessionRefreshDelegate, [{ key: "refresh", value: (function () { var _refresh = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(since) { var _this = this; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (!(this._lastRefreshedAt && this._lastRefreshedAt > since)) { _context.next = 2; break; } return _context.abrupt("return"); case 2: if (!this._refreshPromise) { _context.next = 6; break; } _context.next = 5; return this._refreshPromise; case 5: return _context.abrupt("return"); case 6: _context.prev = 6; this._logger.info(''); this._refreshPromise = new _Promise(function (resolve, reject) { _this._refreshFn(_this._conn, function (err, accessToken, res) { if (!err) { _this._logger.debug('Connection refresh completed.'); _this._conn.accessToken = accessToken; _this._conn.emit('refresh', accessToken, res); resolve(); } else { reject(err); } }); }); _context.next = 11; return this._refreshPromise; case 11: this._logger.info(''); _context.next = 17; break; case 14: _context.prev = 14; _context.t0 = _context["catch"](6); throw new Error("Unable to refresh session due to: ".concat(_context.t0.message)); case 17: _context.prev = 17; this._refreshPromise = undefined; this._lastRefreshedAt = _Date$now(); return _context.finish(17); case 21: case "end": return _context.stop(); } }, _callee, this, [[6, 14, 17, 21]]); })); function refresh(_x) { return _refresh.apply(this, arguments); } return refresh; }()) }, { key: "isRefreshing", value: function isRefreshing() { return !!this._refreshPromise; } }, { key: "waitRefresh", value: function () { var _waitRefresh = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() { return _regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this._refreshPromise); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); function waitRefresh() { return _waitRefresh.apply(this, arguments); } return waitRefresh; }() }]); }(); _defineProperty(SessionRefreshDelegate, "_logger", getLogger('session-refresh-delegate')); export default SessionRefreshDelegate; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRMb2dnZXIiLCJTZXNzaW9uUmVmcmVzaERlbGVnYXRlIiwiY29ubiIsInJlZnJlc2hGbiIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0eSIsInVuZGVmaW5lZCIsIl9jb25uIiwiX2xvZ2dlciIsIl9sb2dMZXZlbCIsImNyZWF0ZUluc3RhbmNlIiwiX3JlZnJlc2hGbiIsIl9jcmVhdGVDbGFzcyIsImtleSIsInZhbHVlIiwiX3JlZnJlc2giLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInNpbmNlIiwiX3RoaXMiLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiX2xhc3RSZWZyZXNoZWRBdCIsImFicnVwdCIsIl9yZWZyZXNoUHJvbWlzZSIsImluZm8iLCJfUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnIiLCJhY2Nlc3NUb2tlbiIsInJlcyIsImRlYnVnIiwiZW1pdCIsInQwIiwiRXJyb3IiLCJjb25jYXQiLCJtZXNzYWdlIiwiX0RhdGUkbm93IiwiZmluaXNoIiwic3RvcCIsInJlZnJlc2giLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiaXNSZWZyZXNoaW5nIiwiX3dhaXRSZWZyZXNoIiwiX2NhbGxlZTIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ3YWl0UmVmcmVzaCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXNzaW9uLXJlZnJlc2gtZGVsZWdhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICovXG5pbXBvcnQgeyBnZXRMb2dnZXIsIExvZ2dlciB9IGZyb20gJy4vdXRpbC9sb2dnZXInO1xuaW1wb3J0IHsgQ2FsbGJhY2ssIFNjaGVtYSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IENvbm5lY3Rpb24gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCB7IFRva2VuUmVzcG9uc2UgfSBmcm9tICcuL29hdXRoMic7XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IHR5cGUgU2Vzc2lvblJlZnJlc2hGdW5jPFMgZXh0ZW5kcyBTY2hlbWE+ID0gKFxuICBjb25uOiBDb25uZWN0aW9uPFM+LFxuICBjYWxsYmFjazogQ2FsbGJhY2s8c3RyaW5nLCBUb2tlblJlc3BvbnNlPixcbikgPT4gdm9pZDtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgY2xhc3MgU2Vzc2lvblJlZnJlc2hEZWxlZ2F0ZTxTIGV4dGVuZHMgU2NoZW1hPiB7XG4gIHN0YXRpYyBfbG9nZ2VyOiBMb2dnZXIgPSBnZXRMb2dnZXIoJ3Nlc3Npb24tcmVmcmVzaC1kZWxlZ2F0ZScpO1xuXG4gIHByaXZhdGUgX3JlZnJlc2hGbjogU2Vzc2lvblJlZnJlc2hGdW5jPFM+O1xuICBwcml2YXRlIF9jb25uOiBDb25uZWN0aW9uPFM+O1xuICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcjtcbiAgcHJpdmF0ZSBfbGFzdFJlZnJlc2hlZEF0OiBudW1iZXIgfCB2b2lkID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIF9yZWZyZXNoUHJvbWlzZTogUHJvbWlzZTx2b2lkPiB8IHZvaWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoY29ubjogQ29ubmVjdGlvbjxTPiwgcmVmcmVzaEZuOiBTZXNzaW9uUmVmcmVzaEZ1bmM8Uz4pIHtcbiAgICB0aGlzLl9jb25uID0gY29ubjtcbiAgICB0aGlzLl9sb2dnZXIgPSBjb25uLl9sb2dMZXZlbFxuICAgICAgPyBTZXNzaW9uUmVmcmVzaERlbGVnYXRlLl9sb2dnZXIuY3JlYXRlSW5zdGFuY2UoY29ubi5fbG9nTGV2ZWwpXG4gICAgICA6IFNlc3Npb25SZWZyZXNoRGVsZWdhdGUuX2xvZ2dlcjtcbiAgICB0aGlzLl9yZWZyZXNoRm4gPSByZWZyZXNoRm47XG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaCBhY2Nlc3MgdG9rZW5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIGFzeW5jIHJlZnJlc2goc2luY2U6IG51bWJlcikge1xuICAgIC8vIENhbGxiYWNrIGltbWVkaWF0ZWx5IFdoZW4gcmVmcmVzaGVkIGFmdGVyIGRlc2lnbmF0ZWQgdGltZVxuICAgIGlmICh0aGlzLl9sYXN0UmVmcmVzaGVkQXQgJiYgdGhpcy5fbGFzdFJlZnJlc2hlZEF0ID4gc2luY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3JlZnJlc2hQcm9taXNlKSB7XG4gICAgICBhd2FpdCB0aGlzLl9yZWZyZXNoUHJvbWlzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuX2xvZ2dlci5pbmZvKCc8cmVmcmVzaCB0b2tlbj4nKTtcbiAgICAgIHRoaXMuX3JlZnJlc2hQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICB0aGlzLl9yZWZyZXNoRm4odGhpcy5fY29ubiwgKGVyciwgYWNjZXNzVG9rZW4sIHJlcykgPT4ge1xuICAgICAgICAgIGlmICghZXJyKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoJ0Nvbm5lY3Rpb24gcmVmcmVzaCBjb21wbGV0ZWQuJyk7XG4gICAgICAgICAgICB0aGlzLl9jb25uLmFjY2Vzc1Rva2VuID0gYWNjZXNzVG9rZW47XG4gICAgICAgICAgICB0aGlzLl9jb25uLmVtaXQoJ3JlZnJlc2gnLCBhY2Nlc3NUb2tlbiwgcmVzKTtcbiAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgdGhpcy5fcmVmcmVzaFByb21pc2U7XG4gICAgICB0aGlzLl9sb2dnZXIuaW5mbygnPHJlZnJlc2ggY29tcGxldGU+Jyk7XG4gICAgfSBjYXRjaChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHJlZnJlc2ggc2Vzc2lvbiBkdWUgdG86ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9yZWZyZXNoUHJvbWlzZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuX2xhc3RSZWZyZXNoZWRBdCA9IERhdGUubm93KCk7XG4gICAgfVxuICB9XG5cbiAgaXNSZWZyZXNoaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3JlZnJlc2hQcm9taXNlO1xuICB9XG5cbiAgYXN5bmMgd2FpdFJlZnJlc2goKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZnJlc2hQcm9taXNlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlc3Npb25SZWZyZXNoRGVsZWdhdGU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBUyxRQUFnQixlQUFlOztBQUtqRDtBQUNBO0FBQ0E7O0FBTUE7QUFDQTtBQUNBO0FBQ0EsV0FBYUMsc0JBQXNCO0VBU2pDLFNBQUFBLHVCQUFZQyxJQUFtQixFQUFFQyxTQUFnQyxFQUFFO0lBQUFDLGVBQUEsT0FBQUgsc0JBQUE7SUFBQUksZUFBQSwyQkFIekJDLFNBQVM7SUFBQUQsZUFBQSwwQkFDSEMsU0FBUztJQUd2RCxJQUFJLENBQUNDLEtBQUssR0FBR0wsSUFBSTtJQUNqQixJQUFJLENBQUNNLE9BQU8sR0FBR04sSUFBSSxDQUFDTyxTQUFTLEdBQ3pCUixzQkFBc0IsQ0FBQ08sT0FBTyxDQUFDRSxjQUFjLENBQUNSLElBQUksQ0FBQ08sU0FBUyxDQUFDLEdBQzdEUixzQkFBc0IsQ0FBQ08sT0FBTztJQUNsQyxJQUFJLENBQUNHLFVBQVUsR0FBR1IsU0FBUztFQUM3Qjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtFQUhFLE9BQUFTLFlBQUEsQ0FBQVgsc0JBQUE7SUFBQVksR0FBQTtJQUFBQyxLQUFBO01BQUEsSUFBQUMsUUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBSUEsU0FBQUMsUUFBY0MsS0FBYTtR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