UNPKG

io.parrots

Version:

Parrots.io App

196 lines (195 loc) 19.5 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { RequestOptions } from '@angular/http'; import { AbstractServerResource } from 'com.phloxui'; var MeResource = /** @class */ (function (_super) { tslib_1.__extends(MeResource, _super); function MeResource(connectionMgr) { var _this = _super.call(this, connectionMgr) || this; _this.basePath = './me'; return _this; } /** * @return {?} */ MeResource.prototype.getAccountInfo = /** * @return {?} */ function () { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath; var /** @type {?} */ requestOptionsArgs = new RequestOptions(); var /** @type {?} */ responseProm_1 = this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); if (responseProm_1 != null && typeof responseProm_1 !== 'undefined') { return new Promise(function (resolve, reject) { responseProm_1.then(function (response) { resolve(response); }, function (error) { reject(error); }); }); } } return new Promise(function (resolve, reject) { resolve(null); }); }; /** * @return {?} */ MeResource.prototype.getAccountAuthenticationid = /** * @return {?} */ function () { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath + "?fetchAuthenIds=true&fetchFields=address.*,address.addressFormat.*,address.fieldValue.countrySubdivision.*,address.addressFormat.field.countrySubdivisionType.*"; var /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } }; /** * @param {?} body * @return {?} */ MeResource.prototype.addAccountAuthenticationid = /** * @param {?} body * @return {?} */ function (body) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath + "/account/authenid/oauth"; var /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs); } else { return Promise.reject(null); } }; /** * @param {?} accountUUID * @param {?} authenProvider * @param {?} authenProviderUserId * @return {?} */ MeResource.prototype.removeAccountAuthenticationid = /** * @param {?} accountUUID * @param {?} authenProvider * @param {?} authenProviderUserId * @return {?} */ function (accountUUID, authenProvider, authenProviderUserId) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath + "/account/authenid/oauth"; var /** @type {?} */ requestOptionsArgs = new RequestOptions(); requestOptionsArgs.body = { userId: authenProviderUserId, authenProvider: authenProvider }; return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } }; /** * @param {?} body * @return {?} */ MeResource.prototype.accountChangePassword = /** * @param {?} body * @return {?} */ function (body) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath + "/account/changepassword"; var /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs); } else { return Promise.reject(null); } }; /** * @param {?} sessionId * @return {?} */ MeResource.prototype.logoutWithHttpInfo = /** * @param {?} sessionId * @return {?} */ function (sessionId) { if (sessionId === null || sessionId === undefined) { return Promise.reject(null); } if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath + "/session/" + sessionId; //! for testing var /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } }; /** * @return {?} */ MeResource.prototype.checkTimeout = /** * @return {?} */ function () { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath; //! for testing var /** @type {?} */ requestOptionsArgs = new RequestOptions(); var /** @type {?} */ responseProm_2 = this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); if (responseProm_2 != null && typeof responseProm_2 !== 'undefined') { return new Promise(function (resolve, reject) { responseProm_2.then(function (response) { resolve(true); }, function (error) { if (error.status === 401 || error.status === 500) { resolve(false); } else { reject(error); } }); }); } } return new Promise(function (resolve, reject) { resolve(null); }); }; /** * @return {?} */ MeResource.prototype.getAddress = /** * @return {?} */ function () { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { var /** @type {?} */ url = this.basePath + "/account/address"; //! for testing var /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } }; return MeResource; }(AbstractServerResource)); export { MeResource }; function MeResource_tsickle_Closure_declarations() { /** @type {?} */ MeResource.prototype.basePath; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVSZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lvLnBhcnJvdHMvIiwic291cmNlcyI6WyJsaWIvc2hhcmUvcmVzb3VyY2UvTWVSZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBMkIsY0FBYyxFQUEyRSxNQUFNLGVBQWUsQ0FBQztBQUVqSixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckQsSUFBQTtJQUFnQyxzQ0FBc0I7SUFJcEQsb0JBQVksYUFBaUM7UUFBN0MsWUFDRSxrQkFBTSxhQUFhLENBQUMsU0FDckI7eUJBSmtCLE1BQU07O0tBSXhCOzs7O0lBRU0sbUNBQWM7Ozs7UUFDbkIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0UscUJBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUM7WUFFaEMscUJBQUksa0JBQWtCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUM5QyxxQkFBSSxjQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFL0UsRUFBRSxDQUFDLENBQUMsY0FBWSxJQUFJLElBQUksSUFBSSxPQUFPLGNBQVksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtvQkFDakMsY0FBWSxDQUFDLElBQUksQ0FBQyxVQUFDLFFBQWE7d0JBQzlCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbkIsRUFBRSxVQUFDLEtBQUs7d0JBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNmLENBQUMsQ0FBQztpQkFDSixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsTUFB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LE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZixFQUFFLFVBQUMsS0FBSzt3QkFDUCxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQ2pELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDaEI7d0JBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUNmO3FCQUNGLENBQUMsQ0FBQztpQkFDSixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07WUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2YsQ0FBQyxDQUFDOzs7OztJQUlFLCtCQUFVOzs7O1FBQ2YsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0UscUJBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUM7O1lBR3JELHFCQUFJLGtCQUFrQixHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFFOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3BFO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3Qjs7cUJBckpMO0VBSWdDLHNCQUFzQixFQW1KckQsQ0FBQTtBQW5KRCxzQkFtSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwLCBSZXNwb25zZSwgSGVhZGVycywgUmVxdWVzdE9wdGlvbnMsIFJlcXVlc3RPcHRpb25zQXJncywgVVJMU2VhcmNoUGFyYW1zLCBSZXNwb25zZUNvbnRlbnRUeXBlLCBSZXF1ZXN0TWV0aG9kIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvbk1hbmFnZXIgfSBmcm9tICdjb20ucGhsb3h1aSc7XG5pbXBvcnQgeyBBYnN0cmFjdFNlcnZlclJlc291cmNlIH0gZnJvbSAnY29tLnBobG94dWknO1xuXG5leHBvcnQgY2xhc3MgTWVSZXNvdXJjZSBleHRlbmRzIEFic3RyYWN0U2VydmVyUmVzb3VyY2Uge1xuXG4gIHByaXZhdGUgYmFzZVBhdGggPSAnLi9tZSc7XG5cbiAgY29uc3RydWN0b3IoY29ubmVjdGlvbk1ncjogSUNvbm5lY3Rpb25NYW5hZ2VyKSB7XG4gICAgc3VwZXIoY29ubmVjdGlvbk1ncik7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjb3VudEluZm8oKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG4gICAgICBsZXQgcmVzcG9uc2VQcm9tID0gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG5cbiAgICAgIGlmIChyZXNwb25zZVByb20gIT0gbnVsbCAmJiB0eXBlb2YgcmVzcG9uc2VQcm9tICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgIHJlc3BvbnNlUHJvbS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlKG51bGwpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEFjY291bnRBdXRoZW50aWNhdGlvbmlkKCk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiP2ZldGNoQXV0aGVuSWRzPXRydWUmZmV0Y2hGaWVsZHM9YWRkcmVzcy4qLGFkZHJlc3MuYWRkcmVzc0Zvcm1hdC4qLGFkZHJlc3MuZmllbGRWYWx1ZS5jb3VudHJ5U3ViZGl2aXNpb24uKixhZGRyZXNzLmFkZHJlc3NGb3JtYXQuZmllbGQuY291bnRyeVN1YmRpdmlzaW9uVHlwZS4qXCI7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5nZXRXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEFjY291bnRBdXRoZW50aWNhdGlvbmlkKGJvZHk6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiL2FjY291bnQvYXV0aGVuaWQvb2F1dGhcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLnBvc3RXaXRoSHR0cEluZm8odXJsLCBib2R5LCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUFjY291bnRBdXRoZW50aWNhdGlvbmlkKGFjY291bnRVVUlEOiBzdHJpbmcsIGF1dGhlblByb3ZpZGVyOiBzdHJpbmcsIGF1dGhlblByb3ZpZGVyVXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGggKyBcIi9hY2NvdW50L2F1dGhlbmlkL29hdXRoXCI7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgcmVxdWVzdE9wdGlvbnNBcmdzLmJvZHkgPSB7XG4gICAgICAgIHVzZXJJZDogYXV0aGVuUHJvdmlkZXJVc2VySWQsXG4gICAgICAgIGF1dGhlblByb3ZpZGVyOiBhdXRoZW5Qcm92aWRlclxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5kZWxldGVXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFjY291bnRDaGFuZ2VQYXNzd29yZChib2R5OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGggKyBcIi9hY2NvdW50L2NoYW5nZXBhc3N3b3JkXCI7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5wb3N0V2l0aEh0dHBJbmZvKHVybCwgYm9keSwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIGxvZ291dFdpdGhIdHRwSW5mbyhzZXNzaW9uSWQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG5cbiAgICBpZiAoc2Vzc2lvbklkID09PSBudWxsIHx8IHNlc3Npb25JZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogc3RyaW5nID0gdGhpcy5iYXNlUGF0aCArIFwiL3Nlc3Npb24vXCIgKyBzZXNzaW9uSWQ7XG5cbiAgICAgIC8vISBmb3IgdGVzdGluZ1xuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmRlbGV0ZVdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1RpbWVvdXQoKTogUHJvbWlzZTxib29sZWFuPiB7XG5cbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoO1xuXG4gICAgICAvLyEgZm9yIHRlc3RpbmdcbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgbGV0IHJlc3BvbnNlUHJvbSA9IHRoaXMuY29ubmVjdGlvbk1nci5nZXRXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuXG4gICAgICBpZiAocmVzcG9uc2VQcm9tICE9IG51bGwgJiYgdHlwZW9mIHJlc3BvbnNlUHJvbSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICByZXNwb25zZVByb20udGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDEgfHwgZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICB9KTtcblxuICB9XG5cbiAgcHVibGljIGdldEFkZHJlc3MoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvYWNjb3VudC9hZGRyZXNzXCI7XG5cbiAgICAgIC8vISBmb3IgdGVzdGluZ1xuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==