UNPKG

io.parrots

Version:

Parrots.io App

198 lines (197 loc) 21.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { RequestOptions } from '@angular/http'; import { AbstractServerResource } from 'com.phloxui'; export class ParrotsInstanceResource extends AbstractServerResource { /** * @param {?} connectionMgr */ constructor(connectionMgr) { super(connectionMgr); this.basePath = './instance'; } /** * @param {?} uuid * @return {?} */ startInstance(uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid + "/start"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); requestOptionsArgs.body = {}; return this.connectionMgr.postWithHttpInfo(url, requestOptionsArgs.body, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} uuid * @return {?} */ stopInstance(uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid + "/stop"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); requestOptionsArgs.body = {}; return this.connectionMgr.postWithHttpInfo(url, requestOptionsArgs.body, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} body * @return {?} */ createInstance(body) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + ""; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); let /** @type {?} */ timezone = new Date(); body.configs = { size: 1, country: "thailand", language: "thai", timezone: timezone }; return this.connectionMgr.postWithHttpInfo(url, body, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} body * @return {?} */ editInstance(body) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + body._uuid + "/edit"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.putWithHttpInfo(url, body, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} uuid * @return {?} */ deleteInstance(uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} uuid * @return {?} */ getInstance(uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid; //! for testing let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @return {?} */ getInstances() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + ""; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @return {?} */ getInstanceCount() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/count"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @return {?} */ getInstanceType() { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/type"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} uuid * @return {?} */ getNodes(uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid + "/node"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} uuid * @param {?} node_uuid * @return {?} */ deleteNode(uuid, node_uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid + "/node/" + node_uuid; //! for testing let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.deleteWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } /** * @param {?} uuid * @return {?} */ getNodeStats(uuid) { if (this.connectionMgr !== null && typeof this.connectionMgr !== 'undefined') { let /** @type {?} */ url = this.basePath + "/" + uuid + "/node/stats"; let /** @type {?} */ requestOptionsArgs = new RequestOptions(); return this.connectionMgr.getWithHttpInfo(url, requestOptionsArgs); } else { return Promise.reject(null); } } } function ParrotsInstanceResource_tsickle_Closure_declarations() { /** @type {?} */ ParrotsInstanceResource.prototype.basePath; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFycm90c0luc3RhbmNlUmVzb3VyY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pby5wYXJyb3RzLyIsInNvdXJjZXMiOlsibGliL3NoYXJlL3Jlc291cmNlL1BhcnJvdHNJbnN0YW5jZVJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQTJCLGNBQWMsRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFFakosT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE1BQU0sOEJBQStCLFNBQVEsc0JBQXNCOzs7O0lBSWpFLFlBQVksYUFBaUM7UUFDM0MsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUhKLFlBQVk7S0FJOUI7Ozs7O0lBRU0sYUFBYSxDQUFDLElBQVk7UUFDL0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0UscUJBQUksR0FBRyxHQUFXLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxRQUFRLENBQUM7WUFFeEQscUJBQUksa0JBQWtCLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUM5QyxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBRTdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUU5RjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7Ozs7OztJQUdJLFlBQVksQ0FBQyxJQUFZO1FBQzlCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEs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QUMvQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3RSxxQkFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLFFBQVEsR0FBRyxTQUFTLENBQUM7O1lBRXBFLHFCQUFJLGtCQUFrQixHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFFOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FFdkU7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCOzs7Ozs7SUFHSSxZQUFZLENBQUMsSUFBWTtRQUM5QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3RSxxQkFBSSxHQUFHLEdBQVEsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxHQUFHLGFBQWEsQ0FBQztZQUUxRCxxQkFBSSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBRTlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUNwRTtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0I7O0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwLCBSZXNwb25zZSwgSGVhZGVycywgUmVxdWVzdE9wdGlvbnMsIFJlcXVlc3RPcHRpb25zQXJncywgVVJMU2VhcmNoUGFyYW1zLCBSZXNwb25zZUNvbnRlbnRUeXBlLCBSZXF1ZXN0TWV0aG9kIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvbk1hbmFnZXIgfSBmcm9tICdjb20ucGhsb3h1aSc7XG5pbXBvcnQgeyBBYnN0cmFjdFNlcnZlclJlc291cmNlIH0gZnJvbSAnY29tLnBobG94dWknO1xuXG5leHBvcnQgY2xhc3MgUGFycm90c0luc3RhbmNlUmVzb3VyY2UgZXh0ZW5kcyBBYnN0cmFjdFNlcnZlclJlc291cmNlIHtcblxuICBwcml2YXRlIGJhc2VQYXRoID0gJy4vaW5zdGFuY2UnO1xuXG4gIGNvbnN0cnVjdG9yKGNvbm5lY3Rpb25NZ3I6IElDb25uZWN0aW9uTWFuYWdlcikge1xuICAgIHN1cGVyKGNvbm5lY3Rpb25NZ3IpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0SW5zdGFuY2UodXVpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvXCIgKyB1dWlkICsgXCIvc3RhcnRcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuICAgICAgcmVxdWVzdE9wdGlvbnNBcmdzLmJvZHkgPSB7fTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5wb3N0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzLmJvZHksIHJlcXVlc3RPcHRpb25zQXJncyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdG9wSW5zdGFuY2UodXVpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvXCIgKyB1dWlkICsgXCIvc3RvcFwiO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG4gICAgICByZXF1ZXN0T3B0aW9uc0FyZ3MuYm9keSA9IHt9O1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLnBvc3RXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MuYm9keSwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZUluc3RhbmNlKGJvZHk6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogYW55ID0gdGhpcy5iYXNlUGF0aCArIFwiXCI7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcbiAgICAgIGxldCB0aW1lem9uZTogYW55ID0gbmV3IERhdGUoKTtcbiAgICAgIGJvZHkuY29uZmlncyA9IHtcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgY291bnRyeTogXCJ0aGFpbGFuZFwiLFxuICAgICAgICBsYW5ndWFnZTogXCJ0aGFpXCIsXG4gICAgICAgIHRpbWV6b25lOiB0aW1lem9uZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5wb3N0V2l0aEh0dHBJbmZvKHVybCwgYm9keSwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlZGl0SW5zdGFuY2UoYm9keTogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBhbnkgPSB0aGlzLmJhc2VQYXRoICsgXCIvXCIgKyBib2R5Ll91dWlkICsgXCIvZWRpdFwiO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IucHV0V2l0aEh0dHBJbmZvKHVybCwgYm9keSwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVJbnN0YW5jZSh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IHN0cmluZyA9IHRoaXMuYmFzZVBhdGggKyBcIi9cIiArIHV1aWQ7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5kZWxldGVXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0SW5zdGFuY2UodXVpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvXCIgKyB1dWlkO1xuICAgICAgLy8hIGZvciB0ZXN0aW5nXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcblxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEluc3RhbmNlcygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IGFueSA9IHRoaXMuYmFzZVBhdGggKyBcIlwiO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJbnN0YW5jZUNvdW50KCk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogYW55ID0gdGhpcy5iYXNlUGF0aCArIFwiL2NvdW50XCI7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5nZXRXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEluc3RhbmNlVHlwZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmNvbm5lY3Rpb25NZ3IgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuY29ubmVjdGlvbk1nciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1cmw6IGFueSA9IHRoaXMuYmFzZVBhdGggKyBcIi90eXBlXCI7XG5cbiAgICAgIGxldCByZXF1ZXN0T3B0aW9uc0FyZ3MgPSBuZXcgUmVxdWVzdE9wdGlvbnMoKTtcblxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk1nci5nZXRXaXRoSHR0cEluZm8odXJsLCByZXF1ZXN0T3B0aW9uc0FyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE5vZGVzKHV1aWQpOiBQcm9taXNlPGFueT4ge1xuXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbk1nciAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcy5jb25uZWN0aW9uTWdyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVybDogYW55ID0gdGhpcy5iYXNlUGF0aCArIFwiL1wiICsgdXVpZCArIFwiL25vZGVcIjtcblxuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmdldFdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlTm9kZSh1dWlkOiBzdHJpbmcsIG5vZGVfdXVpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBzdHJpbmcgPSB0aGlzLmJhc2VQYXRoICsgXCIvXCIgKyB1dWlkICsgXCIvbm9kZS9cIiArIG5vZGVfdXVpZDtcbiAgICAgIC8vISBmb3IgdGVzdGluZ1xuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zQXJncyA9IG5ldyBSZXF1ZXN0T3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uTWdyLmRlbGV0ZVdpdGhIdHRwSW5mbyh1cmwsIHJlcXVlc3RPcHRpb25zQXJncyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROb2RlU3RhdHModXVpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5jb25uZWN0aW9uTWdyICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmNvbm5lY3Rpb25NZ3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXJsOiBhbnkgPSB0aGlzLmJhc2VQYXRoICsgXCIvXCIgKyB1dWlkICsgXCIvbm9kZS9zdGF0c1wiO1xuXG4gICAgICBsZXQgcmVxdWVzdE9wdGlvbnNBcmdzID0gbmV3IFJlcXVlc3RPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25NZ3IuZ2V0V2l0aEh0dHBJbmZvKHVybCwgcmVxdWVzdE9wdGlvbnNBcmdzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG51bGwpO1xuICAgIH1cbiAgfVxufVxuIl19