io.parrots
Version:
Parrots.io App
196 lines (195 loc) • 19.5 kB
JavaScript
/**
* @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==