UNPKG

ngx-http-client-service

Version:

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->

134 lines 18.9 kB
import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { HttpOptionsService } from '../http-options/http-options.service'; import { ApiPathService } from '../api-path/api-path.service'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; import * as i2 from "../http-options/http-options.service"; import * as i3 from "../api-path/api-path.service"; /** * @description Injectable Http Client Service */ var NgxHttpClientService = /** @class */ (function () { /** * @description Creates an instance of http client service. * @param httpClient - an instance of HttpClient * @param httpOptionsService - an instance of HttpOptionsService */ function NgxHttpClientService(httpClient, httpOptionsService, apiPathService) { this.httpClient = httpClient; this.httpOptionsService = httpOptionsService; this.apiPathService = apiPathService; } /** * @description will expose get method of http client. * @param pathParams contains path parameters of type string array * @param HttpOptions contains parameter of type HttpOptions. */ NgxHttpClientService.prototype.get = function (pathParams, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.get(apiUrl, options); }; /** * @description will expose post method of http client. * @param pathParams contains path parameters of type string array * @param HttpOptions contains parameter of type HttpOptions. * @param body contains parameter for http post body */ NgxHttpClientService.prototype.post = function (pathParams, body, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.post(apiUrl, body, options); }; /** * @description will expose put method of http client. * @param pathParams contains path parameters of type string array * @param HttpOptions contains parameter of type HttpOptions. * @param body contains parameter for http put body */ NgxHttpClientService.prototype.put = function (pathParams, body, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.put(apiUrl, body, options); }; /** * @description will expose delete method of http client. * @param pathParams contains path parameters of type string array * @param HttpOptions contains parameter of type HttpOptions. */ NgxHttpClientService.prototype.delete = function (pathParams, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.delete(apiUrl, options); }; /** * @description will expose request method of http client. * @param method contains the method parameter of type string. * @param pathParams contains path parameters of type string array. * @param HttpOptions contains parameter of type HttpOptions. */ NgxHttpClientService.prototype.request = function (method, pathParams, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.request(method, apiUrl, options); }; /** * @description will expose head method of http client. * @param pathParams contains path parameters of type string array. * @param HttpOptions contains parameter of type HttpOptions. */ NgxHttpClientService.prototype.head = function (pathParams, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.head(apiUrl, options); }; /** * @description will expose jsonp method of http client. * @param pathParams contains path parameters of type string array. * @param callbackFn contains parameter of type string. */ NgxHttpClientService.prototype.jsonp = function (pathParams, callbackFn) { var apiUrl = this.apiPathService.createApiPath(pathParams); return this.httpClient.jsonp(apiUrl, callbackFn); }; /** * @description will expose options method of http client. * @param pathParams contains path parameters of type string array. * @param HttpOptions contains parameter of type HttpOptions. */ NgxHttpClientService.prototype.options = function (pathParams, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.options(apiUrl, options); }; /** * @description will expose patch method of http client. * @param pathParams contains path parameters of type string array. * @param body of type any. * @param HttpOptions contains parameter of type HttpOptions. */ NgxHttpClientService.prototype.patch = function (pathParams, body, httpOptions) { var apiUrl = this.apiPathService.createApiPath(pathParams); var options = this.httpOptionsService.appendHttpOptions(httpOptions); return this.httpClient.patch(apiUrl, body, options); }; NgxHttpClientService.ctorParameters = function () { return [ { type: HttpClient }, { type: HttpOptionsService }, { type: ApiPathService } ]; }; NgxHttpClientService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgxHttpClientService_Factory() { return new NgxHttpClientService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HttpOptionsService), i0.ɵɵinject(i3.ApiPathService)); }, token: NgxHttpClientService, providedIn: "root" }); NgxHttpClientService = tslib_1.__decorate([ Injectable({ providedIn: 'root' }) /** NgxHttpClientService Library where all reusable and repeated functionalities can be managed * It can contains common methods and common methods related params. */ ], NgxHttpClientService); return NgxHttpClientService; }()); export { NgxHttpClientService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWh0dHAtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaHR0cC1jbGllbnQtc2VydmljZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9uZ3gtaHR0cC1jbGllbnQvbmd4LWh0dHAtY2xpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFHOUQ7O0dBRUc7QUFRSDtJQUVFOzs7O09BSUc7SUFDSCw4QkFDVSxVQUFzQixFQUN0QixrQkFBc0MsRUFDdEMsY0FBOEI7UUFGOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNwQyxDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLGtDQUFHLEdBQVYsVUFBVyxVQUFvQixFQUFFLFdBQXlCO1FBQ3hELElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxtQ0FBSSxHQUFYLFVBQVksVUFBb0IsRUFBRSxJQUFTLEVBQUUsV0FBeUI7UUFDcEUsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxh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QUNyRSxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7O2dCQXpHcUIsVUFBVTtnQkFDRixrQkFBa0I7Z0JBQ3RCLGNBQWM7OztJQVY3QixvQkFBb0I7UUFQaEMsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztRQUVGOztXQUVHO09BQ1Usb0JBQW9CLENBa0hoQzsrQkFuSUQ7Q0FtSUMsQUFsSEQsSUFrSEM7U0FsSFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9odHRwLW9wdGlvbnMvaHR0cC1vcHRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9odHRwLW9wdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBBcGlQYXRoU2VydmljZSB9IGZyb20gJy4uL2FwaS1wYXRoL2FwaS1wYXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIEluamVjdGFibGUgSHR0cCBDbGllbnQgU2VydmljZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuLyoqIE5neEh0dHBDbGllbnRTZXJ2aWNlIExpYnJhcnkgd2hlcmUgYWxsIHJldXNhYmxlIGFuZCByZXBlYXRlZCBmdW5jdGlvbmFsaXRpZXMgY2FuIGJlIG1hbmFnZWRcclxuICogSXQgY2FuIGNvbnRhaW5zIGNvbW1vbiBtZXRob2RzIGFuZCBjb21tb24gbWV0aG9kcyByZWxhdGVkIHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBOZ3hIdHRwQ2xpZW50U2VydmljZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGh0dHAgY2xpZW50IHNlcnZpY2UuXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgLSBhbiBpbnN0YW5jZSBvZiBIdHRwQ2xpZW50XHJcbiAgICogQHBhcmFtIGh0dHBPcHRpb25zU2VydmljZSAtIGFuIGluc3RhbmNlIG9mIEh0dHBPcHRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9uc1NlcnZpY2U6IEh0dHBPcHRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpUGF0aFNlcnZpY2U6IEFwaVBhdGhTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHdpbGwgZXhwb3NlIGdldCBtZXRob2Qgb2YgaHR0cCBjbGllbnQuXHJcbiAgICogQHBhcmFtIHBhdGhQYXJhbXMgY29udGFpbnMgcGF0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgc3RyaW5nIGFycmF5XHJcbiAgICogQHBhcmFtIEh0dHBPcHRpb25zIGNvbnRhaW5zIHBhcmFtZXRlciBvZiB0eXBlIEh0dHBPcHRpb25zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQocGF0aFBhcmFtczogc3RyaW5nW10sIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5hcGlQYXRoU2VydmljZS5jcmVhdGVBcGlQYXRoKHBhdGhQYXJhbXMpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaHR0cE9wdGlvbnNTZXJ2aWNlLmFwcGVuZEh0dHBPcHRpb25zKGh0dHBPcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGFwaVVybCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gd2lsbCBleHBvc2UgcG9zdCBtZXRob2Qgb2YgaHR0cCBjbGllbnQuXHJcbiAgICogQHBhcmFtIHBhdGhQYXJhbXMgY29udGFpbnMgcGF0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgc3RyaW5nIGFycmF5XHJcbiAgICogQHBhcmFtIEh0dHBPcHRpb25zIGNvbnRhaW5zIHBhcmFtZXRlciBvZiB0eXBlIEh0dHBPcHRpb25zLlxyXG4gICAqIEBwYXJhbSBib2R5IGNvbnRhaW5zIHBhcmFtZXRlciBmb3IgaHR0cCBwb3N0IGJvZHlcclxuICAgKi9cclxuICBwdWJsaWMgcG9zdChwYXRoUGFyYW1zOiBzdHJpbmdbXSwgYm9keTogYW55LCBodHRwT3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmh0dHBPcHRpb25zU2VydmljZS5hcHBlbmRIdHRwT3B0aW9ucyhodHRwT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoYXBpVXJsLCBib2R5LCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSBwdXQgbWV0aG9kIG9mIGh0dHAgY2xpZW50LlxyXG4gICAqIEBwYXJhbSBwYXRoUGFyYW1zIGNvbnRhaW5zIHBhdGggcGFyYW1ldGVycyBvZiB0eXBlIHN0cmluZyBhcnJheVxyXG4gICAqIEBwYXJhbSBIdHRwT3B0aW9ucyBjb250YWlucyBwYXJhbWV0ZXIgb2YgdHlwZSBIdHRwT3B0aW9ucy5cclxuICAgKiBAcGFyYW0gYm9keSBjb250YWlucyBwYXJhbWV0ZXIgZm9yIGh0dHAgcHV0IGJvZHlcclxuICAgKi9cclxuICBwdWJsaWMgcHV0KHBhdGhQYXJhbXM6IHN0cmluZ1tdLCBib2R5OiBhbnksIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5hcGlQYXRoU2VydmljZS5jcmVhdGVBcGlQYXRoKHBhdGhQYXJhbXMpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaHR0cE9wdGlvbnNTZXJ2aWNlLmFwcGVuZEh0dHBPcHRpb25zKGh0dHBPcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KGFwaVVybCwgYm9keSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gd2lsbCBleHBvc2UgZGVsZXRlIG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gcGF0aFBhcmFtcyBjb250YWlucyBwYXRoIHBhcmFtZXRlcnMgb2YgdHlwZSBzdHJpbmcgYXJyYXlcclxuICAgKiBAcGFyYW0gSHR0cE9wdGlvbnMgY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgSHR0cE9wdGlvbnMuXHJcbiAgICovXHJcbiAgcHVibGljIGRlbGV0ZShwYXRoUGFyYW1zOiBzdHJpbmdbXSwgaHR0cE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmFwaVBhdGhTZXJ2aWNlLmNyZWF0ZUFwaVBhdGgocGF0aFBhcmFtcyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5odHRwT3B0aW9uc1NlcnZpY2UuYXBwZW5kSHR0cE9wdGlvbnMoaHR0cE9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUoYXBpVXJsLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSByZXF1ZXN0IG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gbWV0aG9kIGNvbnRhaW5zIHRoZSBtZXRob2QgcGFyYW1ldGVyIG9mIHR5cGUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBwYXRoUGFyYW1zIGNvbnRhaW5zIHBhdGggcGFyYW1ldGVycyBvZiB0eXBlIHN0cmluZyBhcnJheS5cclxuICAgKiBAcGFyYW0gSHR0cE9wdGlvbnMgY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgSHR0cE9wdGlvbnMuXHJcbiAgICovXHJcbiAgcHVibGljIHJlcXVlc3QobWV0aG9kOiBzdHJpbmcsIHBhdGhQYXJhbXM6IHN0cmluZ1tdLCBodHRwT3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmh0dHBPcHRpb25zU2VydmljZS5hcHBlbmRIdHRwT3B0aW9ucyhodHRwT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QobWV0aG9kLCBhcGlVcmwsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHdpbGwgZXhwb3NlIGhlYWQgbWV0aG9kIG9mIGh0dHAgY2xpZW50LlxyXG4gICAqIEBwYXJhbSBwYXRoUGFyYW1zIGNvbnRhaW5zIHBhdGggcGFyYW1ldGVycyBvZiB0eXBlIHN0cmluZyBhcnJheS5cclxuICAgKiBAcGFyYW0gSHR0cE9wdGlvbnMgY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgSHR0cE9wdGlvbnMuXHJcbiAgICovXHJcbiAgcHVibGljIGhlYWQocGF0aFBhcmFtczogc3RyaW5nW10sIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5hcGlQYXRoU2VydmljZS5jcmVhdGVBcGlQYXRoKHBhdGhQYXJhbXMpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaHR0cE9wdGlvbnNTZXJ2aWNlLmFwcGVuZEh0dHBPcHRpb25zKGh0dHBPcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuaGVhZChhcGlVcmwsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHdpbGwgZXhwb3NlIGpzb25wIG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gcGF0aFBhcmFtcyBjb250YWlucyBwYXRoIHBhcmFtZXRlcnMgb2YgdHlwZSBzdHJpbmcgYXJyYXkuXHJcbiAgICogQHBhcmFtIGNhbGxiYWNrRm4gY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgc3RyaW5nLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBqc29ucChwYXRoUGFyYW1zOiBzdHJpbmdbXSwgY2FsbGJhY2tGbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuanNvbnAoYXBpVXJsLCBjYWxsYmFja0ZuKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSBvcHRpb25zIG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gcGF0aFBhcmFtcyBjb250YWlucyBwYXRoIHBhcmFtZXRlcnMgb2YgdHlwZSBzdHJpbmcgYXJyYXkuXHJcbiAgICogQHBhcmFtIEh0dHBPcHRpb25zIGNvbnRhaW5zIHBhcmFtZXRlciBvZiB0eXBlIEh0dHBPcHRpb25zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBvcHRpb25zKHBhdGhQYXJhbXM6IHN0cmluZ1tdLCBodHRwT3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmh0dHBPcHRpb25zU2VydmljZS5hcHBlbmRIdHRwT3B0aW9ucyhodHRwT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50Lm9wdGlvbnMoYXBpVXJsLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSBwYXRjaCBtZXRob2Qgb2YgaHR0cCBjbGllbnQuXHJcbiAgICogQHBhcmFtIHBhdGhQYXJhbXMgY29udGFpbnMgcGF0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgc3RyaW5nIGFycmF5LlxyXG4gICAqIEBwYXJhbSBib2R5IG9mIHR5cGUgYW55LlxyXG4gICAqIEBwYXJhbSBIdHRwT3B0aW9ucyBjb250YWlucyBwYXJhbWV0ZXIgb2YgdHlwZSBIdHRwT3B0aW9ucy5cclxuICAgKi9cclxuICBwdWJsaWMgcGF0Y2gocGF0aFBhcmFtczogc3RyaW5nW10sIGJvZHk6IGFueSwgaHR0cE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmFwaVBhdGhTZXJ2aWNlLmNyZWF0ZUFwaVBhdGgocGF0aFBhcmFtcyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5odHRwT3B0aW9uc1NlcnZpY2UuYXBwZW5kSHR0cE9wdGlvbnMoaHR0cE9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaChhcGlVcmwsIGJvZHksIG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=