@circle-fin/circle-sdk
Version:
Node.js SDK for Circle API
136 lines • 19.8 kB
JavaScript
/* tslint:disable */
/* eslint-disable */
/**
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CryptoExchangeRatesApi = exports.CryptoExchangeRatesApiFactory = exports.CryptoExchangeRatesApiFp = exports.CryptoExchangeRatesApiAxiosParamCreator = void 0;
const axios_1 = __importDefault(require("axios"));
// Some imports not used depending on template conditions
// @ts-ignore
const common_1 = require("../common");
// @ts-ignore
const base_1 = require("../base");
/**
* CryptoExchangeRatesApi - axios parameter creator
* @export
*/
const CryptoExchangeRatesApiAxiosParamCreator = function (configuration) {
return {
/**
* Fetch the current rates for the specified trading pair. The trading pair is defined by a base currency followed by a quote currency. The response contains buy and sell rates denominated in the quote currency. **Exchange rate is an estimate only and is subject to change by the time you submit the actual request.**
* @summary Get a exchange rate
* @param {'BTC-USD' | 'ETH-USD' | 'FLOW-USD'} tradingPair
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getExchangeRates: (tradingPair, options = {}) => __awaiter(this, void 0, void 0, function* () {
// verify required parameter 'tradingPair' is not null or undefined
(0, common_1.assertParamExists)("getExchangeRates", "tradingPair", tradingPair);
const localVarPath = `/v1/exchange/rates/{trading-pair}`.replace(`{${"trading-pair"}}`, encodeURIComponent(String(tradingPair)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = Object.assign(Object.assign({ method: "GET" }, baseOptions), options);
const localVarHeaderParameter = {};
const localVarQueryParameter = {};
// authentication bearerAuth required
// http bearer authentication required
yield (0, common_1.setBearerAuthToObject)(localVarHeaderParameter, configuration);
(0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
return {
url: (0, common_1.toPathString)(localVarUrlObj),
options: localVarRequestOptions
};
})
};
};
exports.CryptoExchangeRatesApiAxiosParamCreator = CryptoExchangeRatesApiAxiosParamCreator;
/**
* CryptoExchangeRatesApi - functional programming interface
* @export
*/
const CryptoExchangeRatesApiFp = function (configuration) {
const localVarAxiosParamCreator = (0, exports.CryptoExchangeRatesApiAxiosParamCreator)(configuration);
return {
/**
* Fetch the current rates for the specified trading pair. The trading pair is defined by a base currency followed by a quote currency. The response contains buy and sell rates denominated in the quote currency. **Exchange rate is an estimate only and is subject to change by the time you submit the actual request.**
* @summary Get a exchange rate
* @param {'BTC-USD' | 'ETH-USD' | 'FLOW-USD'} tradingPair
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getExchangeRates(tradingPair, options) {
return __awaiter(this, void 0, void 0, function* () {
const localVarAxiosArgs = yield localVarAxiosParamCreator.getExchangeRates(tradingPair, options);
return (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration);
});
}
};
};
exports.CryptoExchangeRatesApiFp = CryptoExchangeRatesApiFp;
/**
* CryptoExchangeRatesApi - factory interface
* @export
*/
const CryptoExchangeRatesApiFactory = function (configuration, basePath, axios) {
const localVarFp = (0, exports.CryptoExchangeRatesApiFp)(configuration);
return {
/**
* Fetch the current rates for the specified trading pair. The trading pair is defined by a base currency followed by a quote currency. The response contains buy and sell rates denominated in the quote currency. **Exchange rate is an estimate only and is subject to change by the time you submit the actual request.**
* @summary Get a exchange rate
* @param {'BTC-USD' | 'ETH-USD' | 'FLOW-USD'} tradingPair
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getExchangeRates(tradingPair, options) {
return localVarFp
.getExchangeRates(tradingPair, options)
.then((request) => request(axios, basePath));
}
};
};
exports.CryptoExchangeRatesApiFactory = CryptoExchangeRatesApiFactory;
/**
* CryptoExchangeRatesApi - object-oriented interface
* @export
* @class CryptoExchangeRatesApi
* @extends {BaseAPI}
*/
class CryptoExchangeRatesApi extends base_1.BaseAPI {
/**
* Fetch the current rates for the specified trading pair. The trading pair is defined by a base currency followed by a quote currency. The response contains buy and sell rates denominated in the quote currency. **Exchange rate is an estimate only and is subject to change by the time you submit the actual request.**
* @summary Get a exchange rate
* @param {'BTC-USD' | 'ETH-USD' | 'FLOW-USD'} tradingPair
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof CryptoExchangeRatesApi
*/
getExchangeRates(tradingPair, options) {
return (0, exports.CryptoExchangeRatesApiFp)(this.configuration)
.getExchangeRates(tradingPair, options)
.then((request) => request(this.axios, this.basePath));
}
}
exports.CryptoExchangeRatesApi = CryptoExchangeRatesApi;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLWV4Y2hhbmdlLXJhdGVzLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvYXBpcy9jcnlwdG8tZXhjaGFuZ2UtcmF0ZXMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7OztBQUVILGtEQUllO0FBRWYseURBQXlEO0FBQ3pELGFBQWE7QUFDYixzQ0FRbUI7QUFDbkIsYUFBYTtBQUNiLGtDQU1pQjtBQU9qQjs7O0dBR0c7QUFDSSxNQUFNLHVDQUF1QyxHQUFHLFVBQ3JELGFBQTZCO0lBRTdCLE9BQU87UUFDTDs7Ozs7O1dBTUc7UUFDSCxnQkFBZ0IsRUFBRSxDQUNoQixXQUErQyxFQUMvQyxVQUE4QixFQUFFLEVBQ1YsRUFBRTtZQUN4QixtRUFBbUU7WUFDbkUsSUFBQSwwQkFBaUIsRUFBQyxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbEUsTUFBTSxZQUFZLEdBQUcsbUNBQW1DLENBQUMsT0FBTyxDQUM5RCxJQUFJLGNBQWMsR0FBRyxFQUNyQixrQkFBa0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FDeEMsQ0FBQztZQUNGLG9GQUFvRjtZQUNwRixNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUUsdUJBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksV0FBVyxDQUFDO1lBQ2hCLElBQUksYUFBYSxFQUFFO2dCQUNqQixXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQzthQUN6QztZQUVELE1BQU0sc0JBQXNCLGlDQUMxQixNQUFNLEVBQUUsS0FBSyxJQUNWLFdBQVcsR0FDWCxPQUFPLENBQ1gsQ0FBQztZQUNGLE1BQU0sdUJBQXVCLEdBQUcsRUFBUyxDQUFDO1lBQzFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBUyxDQUFDO1lBRXpDLHFDQUFxQztZQUNyQyxzQ0FBc0M7WUFDdEMsTUFBTSxJQUFBLDhCQUFxQixFQUFDLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBRXBFLElBQUEsd0JBQWUsRUFBQyxjQUFjLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztZQUN4RCxJQUFJLHNCQUFzQixHQUN4QixXQUFXLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hFLHNCQUFzQixDQUFDLE9BQU8saURBQ3pCLHVCQUF1QixHQUN2QixzQkFBc0IsR0FDdEIsT0FBTyxDQUFDLE9BQU8sQ0FDbkIsQ0FBQztZQUVGLE9BQU87Z0JBQ0wsR0FBRyxFQUFFLElBQUEscUJBQVksRUFBQyxjQUFjLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxzQkFBc0I7YUFDaEMsQ0FBQztRQUNKLENBQUMsQ0FBQTtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUF2RFcsUUFBQSx1Q0FBdUMsMkNBdURsRDtBQUVGOzs7R0FHRztBQUNJLE1BQU0sd0JBQXdCLEdBQUcsVUFDdEMsYUFBNkI7SUFFN0IsTUFBTSx5QkFBeUIsR0FDN0IsSUFBQSwrQ0FBdUMsRUFBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxPQUFPO1FBQ0w7Ozs7OztXQU1HO1FBQ0csZ0JBQWdCLENBQ3BCLFdBQStDLEVBQy9DLE9BQTRCOztnQkFPNUIsTUFBTSxpQkFBaUIsR0FDckIsTUFBTSx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3pFLE9BQU8sSUFBQSw4QkFBcUIsRUFDMUIsaUJBQWlCLEVBQ2pCLGVBQVcsRUFDWCxnQkFBUyxFQUNULGFBQWEsQ0FDZCxDQUFDO1lBQ0osQ0FBQztTQUFBO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWhDVyxRQUFBLHdCQUF3Qiw0QkFnQ25DO0FBRUY7OztHQUdHO0FBQ0ksTUFBTSw2QkFBNkIsR0FBRyxVQUMzQyxhQUE2QixFQUM3QixRQUFpQixFQUNqQixLQUFxQjtJQUVyQixNQUFNLFVBQVUsR0FBRyxJQUFBLGdDQUF3QixFQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELE9BQU87UUFDTDs7Ozs7O1dBTUc7UUFDSCxnQkFBZ0IsQ0FDZCxXQUErQyxFQUMvQyxPQUFhO1lBRWIsT0FBTyxVQUFVO2lCQUNkLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7aUJBQ3RDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBdkJXLFFBQUEsNkJBQTZCLGlDQXVCeEM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsY0FBTztJQUNqRDs7Ozs7OztPQU9HO0lBQ0ksZ0JBQWdCLENBQ3JCLFdBQStDLEVBQy9DLE9BQTRCO1FBRTVCLE9BQU8sSUFBQSxnQ0FBd0IsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQ2hELGdCQUFnQixDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7YUFDdEMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0Y7QUFqQkQsd0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vKipcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXG4gKiBodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2hcbiAqIERvIG5vdCBlZGl0IHRoZSBjbGFzcyBtYW51YWxseS5cbiAqL1xuXG5pbXBvcnQgZ2xvYmFsQXhpb3MsIHtcbiAgQXhpb3NQcm9taXNlLFxuICBBeGlvc0luc3RhbmNlLFxuICBBeGlvc1JlcXVlc3RDb25maWdcbn0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcbi8vIFNvbWUgaW1wb3J0cyBub3QgdXNlZCBkZXBlbmRpbmcgb24gdGVtcGxhdGUgY29uZGl0aW9uc1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHtcbiAgRFVNTVlfQkFTRV9VUkwsXG4gIGFzc2VydFBhcmFtRXhpc3RzLFxuICBzZXRCZWFyZXJBdXRoVG9PYmplY3QsXG4gIHNldFNlYXJjaFBhcmFtcyxcbiAgc2VyaWFsaXplRGF0YUlmTmVlZGVkLFxuICB0b1BhdGhTdHJpbmcsXG4gIGNyZWF0ZVJlcXVlc3RGdW5jdGlvblxufSBmcm9tIFwiLi4vY29tbW9uXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQge1xuICBCQVNFX1BBVEgsXG4gIENPTExFQ1RJT05fRk9STUFUUyxcbiAgUmVxdWVzdEFyZ3MsXG4gIEJhc2VBUEksXG4gIFJlcXVpcmVkRXJyb3Jcbn0gZnJvbSBcIi4uL2Jhc2VcIjtcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IEJhZFJlcXVlc3QgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBHZXRFeGNoYW5nZVJhdGVzUmVzcG9uc2UgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBOb3RBdXRob3JpemVkIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuLyoqXG4gKiBDcnlwdG9FeGNoYW5nZVJhdGVzQXBpIC0gYXhpb3MgcGFyYW1ldGVyIGNyZWF0b3JcbiAqIEBleHBvcnRcbiAqL1xuZXhwb3J0IGNvbnN0IENyeXB0b0V4Y2hhbmdlUmF0ZXNBcGlBeGlvc1BhcmFtQ3JlYXRvciA9IGZ1bmN0aW9uIChcbiAgY29uZmlndXJhdGlvbj86IENvbmZpZ3VyYXRpb25cbikge1xuICByZXR1cm4ge1xuICAgIC8qKlxuICAgICAqIEZldGNoIHRoZSBjdXJyZW50IHJhdGVzIGZvciB0aGUgc3BlY2lmaWVkIHRyYWRpbmcgcGFpci4gVGhlIHRyYWRpbmcgcGFpciBpcyBkZWZpbmVkIGJ5IGEgYmFzZSBjdXJyZW5jeSBmb2xsb3dlZCBieSBhIHF1b3RlIGN1cnJlbmN5LiBUaGUgcmVzcG9uc2UgY29udGFpbnMgYnV5IGFuZCBzZWxsIHJhdGVzIGRlbm9taW5hdGVkIGluIHRoZSBxdW90ZSBjdXJyZW5jeS4gKipFeGNoYW5nZSByYXRlIGlzIGFuIGVzdGltYXRlIG9ubHkgYW5kIGlzIHN1YmplY3QgdG8gY2hhbmdlIGJ5IHRoZSB0aW1lIHlvdSBzdWJtaXQgdGhlIGFjdHVhbCByZXF1ZXN0LioqXG4gICAgICogQHN1bW1hcnkgR2V0IGEgZXhjaGFuZ2UgcmF0ZVxuICAgICAqIEBwYXJhbSB7J0JUQy1VU0QnIHwgJ0VUSC1VU0QnIHwgJ0ZMT1ctVVNEJ30gdHJhZGluZ1BhaXJcbiAgICAgKiBAcGFyYW0geyp9IFtvcHRpb25zXSBPdmVycmlkZSBodHRwIHJlcXVlc3Qgb3B0aW9uLlxuICAgICAqIEB0aHJvd3Mge1JlcXVpcmVkRXJyb3J9XG4gICAgICovXG4gICAgZ2V0RXhjaGFuZ2VSYXRlczogYXN5bmMgKFxuICAgICAgdHJhZGluZ1BhaXI6IFwiQlRDLVVTRFwiIHwgXCJFVEgtVVNEXCIgfCBcIkZMT1ctVVNEXCIsXG4gICAgICBvcHRpb25zOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7fVxuICAgICk6IFByb21pc2U8UmVxdWVzdEFyZ3M+ID0+IHtcbiAgICAgIC8vIHZlcmlmeSByZXF1aXJlZCBwYXJhbWV0ZXIgJ3RyYWRpbmdQYWlyJyBpcyBub3QgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgIGFzc2VydFBhcmFtRXhpc3RzKFwiZ2V0RXhjaGFuZ2VSYXRlc1wiLCBcInRyYWRpbmdQYWlyXCIsIHRyYWRpbmdQYWlyKTtcbiAgICAgIGNvbnN0IGxvY2FsVmFyUGF0aCA9IGAvdjEvZXhjaGFuZ2UvcmF0ZXMve3RyYWRpbmctcGFpcn1gLnJlcGxhY2UoXG4gICAgICAgIGB7JHtcInRyYWRpbmctcGFpclwifX1gLFxuICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHRyYWRpbmdQYWlyKSlcbiAgICAgICk7XG4gICAgICAvLyB1c2UgZHVtbXkgYmFzZSBVUkwgc3RyaW5nIGJlY2F1c2UgdGhlIFVSTCBjb25zdHJ1Y3RvciBvbmx5IGFjY2VwdHMgYWJzb2x1dGUgVVJMcy5cbiAgICAgIGNvbnN0IGxvY2FsVmFyVXJsT2JqID0gbmV3IFVSTChsb2NhbFZhclBhdGgsIERVTU1ZX0JBU0VfVVJMKTtcbiAgICAgIGxldCBiYXNlT3B0aW9ucztcbiAgICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIGJhc2VPcHRpb25zID0gY29uZmlndXJhdGlvbi5iYXNlT3B0aW9ucztcbiAgICAgIH1cblxuICAgICAgY29uc3QgbG9jYWxWYXJSZXF1ZXN0T3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAuLi5iYXNlT3B0aW9ucyxcbiAgICAgICAgLi4ub3B0aW9uc1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGxvY2FsVmFySGVhZGVyUGFyYW1ldGVyID0ge30gYXMgYW55O1xuICAgICAgY29uc3QgbG9jYWxWYXJRdWVyeVBhcmFtZXRlciA9IHt9IGFzIGFueTtcblxuICAgICAgLy8gYXV0aGVudGljYXRpb24gYmVhcmVyQXV0aCByZXF1aXJlZFxuICAgICAgLy8gaHR0cCBiZWFyZXIgYXV0aGVudGljYXRpb24gcmVxdWlyZWRcbiAgICAgIGF3YWl0IHNldEJlYXJlckF1dGhUb09iamVjdChsb2NhbFZhckhlYWRlclBhcmFtZXRlciwgY29uZmlndXJhdGlvbik7XG5cbiAgICAgIHNldFNlYXJjaFBhcmFtcyhsb2NhbFZhclVybE9iaiwgbG9jYWxWYXJRdWVyeVBhcmFtZXRlcik7XG4gICAgICBsZXQgaGVhZGVyc0Zyb21CYXNlT3B0aW9ucyA9XG4gICAgICAgIGJhc2VPcHRpb25zICYmIGJhc2VPcHRpb25zLmhlYWRlcnMgPyBiYXNlT3B0aW9ucy5oZWFkZXJzIDoge307XG4gICAgICBsb2NhbFZhclJlcXVlc3RPcHRpb25zLmhlYWRlcnMgPSB7XG4gICAgICAgIC4uLmxvY2FsVmFySGVhZGVyUGFyYW1ldGVyLFxuICAgICAgICAuLi5oZWFkZXJzRnJvbUJhc2VPcHRpb25zLFxuICAgICAgICAuLi5vcHRpb25zLmhlYWRlcnNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVybDogdG9QYXRoU3RyaW5nKGxvY2FsVmFyVXJsT2JqKSxcbiAgICAgICAgb3B0aW9uczogbG9jYWxWYXJSZXF1ZXN0T3B0aW9uc1xuICAgICAgfTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIENyeXB0b0V4Y2hhbmdlUmF0ZXNBcGkgLSBmdW5jdGlvbmFsIHByb2dyYW1taW5nIGludGVyZmFjZVxuICogQGV4cG9ydFxuICovXG5leHBvcnQgY29uc3QgQ3J5cHRvRXhjaGFuZ2VSYXRlc0FwaUZwID0gZnVuY3Rpb24gKFxuICBjb25maWd1cmF0aW9uPzogQ29uZmlndXJhdGlvblxuKSB7XG4gIGNvbnN0IGxvY2FsVmFyQXhpb3NQYXJhbUNyZWF0b3IgPVxuICAgIENyeXB0b0V4Y2hhbmdlUmF0ZXNBcGlBeGlvc1BhcmFtQ3JlYXRvcihjb25maWd1cmF0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgY3VycmVudCByYXRlcyBmb3IgdGhlIHNwZWNpZmllZCB0cmFkaW5nIHBhaXIuIFRoZSB0cmFkaW5nIHBhaXIgaXMgZGVmaW5lZCBieSBhIGJhc2UgY3VycmVuY3kgZm9sbG93ZWQgYnkgYSBxdW90ZSBjdXJyZW5jeS4gVGhlIHJlc3BvbnNlIGNvbnRhaW5zIGJ1eSBhbmQgc2VsbCByYXRlcyBkZW5vbWluYXRlZCBpbiB0aGUgcXVvdGUgY3VycmVuY3kuICoqRXhjaGFuZ2UgcmF0ZSBpcyBhbiBlc3RpbWF0ZSBvbmx5IGFuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZSBieSB0aGUgdGltZSB5b3Ugc3VibWl0IHRoZSBhY3R1YWwgcmVxdWVzdC4qKlxuICAgICAqIEBzdW1tYXJ5IEdldCBhIGV4Y2hhbmdlIHJhdGVcbiAgICAgKiBAcGFyYW0geydCVEMtVVNEJyB8ICdFVEgtVVNEJyB8ICdGTE9XLVVTRCd9IHRyYWRpbmdQYWlyXG4gICAgICogQHBhcmFtIHsqfSBbb3B0aW9uc10gT3ZlcnJpZGUgaHR0cCByZXF1ZXN0IG9wdGlvbi5cbiAgICAgKiBAdGhyb3dzIHtSZXF1aXJlZEVycm9yfVxuICAgICAqL1xuICAgIGFzeW5jIGdldEV4Y2hhbmdlUmF0ZXMoXG4gICAgICB0cmFkaW5nUGFpcjogXCJCVEMtVVNEXCIgfCBcIkVUSC1VU0RcIiB8IFwiRkxPVy1VU0RcIixcbiAgICAgIG9wdGlvbnM/OiBBeGlvc1JlcXVlc3RDb25maWdcbiAgICApOiBQcm9taXNlPFxuICAgICAgKFxuICAgICAgICBheGlvcz86IEF4aW9zSW5zdGFuY2UsXG4gICAgICAgIGJhc2VQYXRoPzogc3RyaW5nXG4gICAgICApID0+IEF4aW9zUHJvbWlzZTxHZXRFeGNoYW5nZVJhdGVzUmVzcG9uc2U+XG4gICAgPiB7XG4gICAgICBjb25zdCBsb2NhbFZhckF4aW9zQXJncyA9XG4gICAgICAgIGF3YWl0IGxvY2FsVmFyQXhpb3NQYXJhbUNyZWF0b3IuZ2V0RXhjaGFuZ2VSYXRlcyh0cmFkaW5nUGFpciwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdEZ1bmN0aW9uKFxuICAgICAgICBsb2NhbFZhckF4aW9zQXJncyxcbiAgICAgICAgZ2xvYmFsQXhpb3MsXG4gICAgICAgIEJBU0VfUEFUSCxcbiAgICAgICAgY29uZmlndXJhdGlvblxuICAgICAgKTtcbiAgICB9XG4gIH07XG59O1xuXG4vKipcbiAqIENyeXB0b0V4Y2hhbmdlUmF0ZXNBcGkgLSBmYWN0b3J5IGludGVyZmFjZVxuICogQGV4cG9ydFxuICovXG5leHBvcnQgY29uc3QgQ3J5cHRvRXhjaGFuZ2VSYXRlc0FwaUZhY3RvcnkgPSBmdW5jdGlvbiAoXG4gIGNvbmZpZ3VyYXRpb24/OiBDb25maWd1cmF0aW9uLFxuICBiYXNlUGF0aD86IHN0cmluZyxcbiAgYXhpb3M/OiBBeGlvc0luc3RhbmNlXG4pIHtcbiAgY29uc3QgbG9jYWxWYXJGcCA9IENyeXB0b0V4Y2hhbmdlUmF0ZXNBcGlGcChjb25maWd1cmF0aW9uKTtcbiAgcmV0dXJuIHtcbiAgICAvKipcbiAgICAgKiBGZXRjaCB0aGUgY3VycmVudCByYXRlcyBmb3IgdGhlIHNwZWNpZmllZCB0cmFkaW5nIHBhaXIuIFRoZSB0cmFkaW5nIHBhaXIgaXMgZGVmaW5lZCBieSBhIGJhc2UgY3VycmVuY3kgZm9sbG93ZWQgYnkgYSBxdW90ZSBjdXJyZW5jeS4gVGhlIHJlc3BvbnNlIGNvbnRhaW5zIGJ1eSBhbmQgc2VsbCByYXRlcyBkZW5vbWluYXRlZCBpbiB0aGUgcXVvdGUgY3VycmVuY3kuICoqRXhjaGFuZ2UgcmF0ZSBpcyBhbiBlc3RpbWF0ZSBvbmx5IGFuZCBpcyBzdWJqZWN0IHRvIGNoYW5nZSBieSB0aGUgdGltZSB5b3Ugc3VibWl0IHRoZSBhY3R1YWwgcmVxdWVzdC4qKlxuICAgICAqIEBzdW1tYXJ5IEdldCBhIGV4Y2hhbmdlIHJhdGVcbiAgICAgKiBAcGFyYW0geydCVEMtVVNEJyB8ICdFVEgtVVNEJyB8ICdGTE9XLVVTRCd9IHRyYWRpbmdQYWlyXG4gICAgICogQHBhcmFtIHsqfSBbb3B0aW9uc10gT3ZlcnJpZGUgaHR0cCByZXF1ZXN0IG9wdGlvbi5cbiAgICAgKiBAdGhyb3dzIHtSZXF1aXJlZEVycm9yfVxuICAgICAqL1xuICAgIGdldEV4Y2hhbmdlUmF0ZXMoXG4gICAgICB0cmFkaW5nUGFpcjogXCJCVEMtVVNEXCIgfCBcIkVUSC1VU0RcIiB8IFwiRkxPVy1VU0RcIixcbiAgICAgIG9wdGlvbnM/OiBhbnlcbiAgICApOiBBeGlvc1Byb21pc2U8R2V0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlPiB7XG4gICAgICByZXR1cm4gbG9jYWxWYXJGcFxuICAgICAgICAuZ2V0RXhjaGFuZ2VSYXRlcyh0cmFkaW5nUGFpciwgb3B0aW9ucylcbiAgICAgICAgLnRoZW4oKHJlcXVlc3QpID0+IHJlcXVlc3QoYXhpb3MsIGJhc2VQYXRoKSk7XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBDcnlwdG9FeGNoYW5nZVJhdGVzQXBpIC0gb2JqZWN0LW9yaWVudGVkIGludGVyZmFjZVxuICogQGV4cG9ydFxuICogQGNsYXNzIENyeXB0b0V4Y2hhbmdlUmF0ZXNBcGlcbiAqIEBleHRlbmRzIHtCYXNlQVBJfVxuICovXG5leHBvcnQgY2xhc3MgQ3J5cHRvRXhjaGFuZ2VSYXRlc0FwaSBleHRlbmRzIEJhc2VBUEkge1xuICAvKipcbiAgICogRmV0Y2ggdGhlIGN1cnJlbnQgcmF0ZXMgZm9yIHRoZSBzcGVjaWZpZWQgdHJhZGluZyBwYWlyLiBUaGUgdHJhZGluZyBwYWlyIGlzIGRlZmluZWQgYnkgYSBiYXNlIGN1cnJlbmN5IGZvbGxvd2VkIGJ5IGEgcXVvdGUgY3VycmVuY3kuIFRoZSByZXNwb25zZSBjb250YWlucyBidXkgYW5kIHNlbGwgcmF0ZXMgZGVub21pbmF0ZWQgaW4gdGhlIHF1b3RlIGN1cnJlbmN5LiAqKkV4Y2hhbmdlIHJhdGUgaXMgYW4gZXN0aW1hdGUgb25seSBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UgYnkgdGhlIHRpbWUgeW91IHN1Ym1pdCB0aGUgYWN0dWFsIHJlcXVlc3QuKipcbiAgICogQHN1bW1hcnkgR2V0IGEgZXhjaGFuZ2UgcmF0ZVxuICAgKiBAcGFyYW0geydCVEMtVVNEJyB8ICdFVEgtVVNEJyB8ICdGTE9XLVVTRCd9IHRyYWRpbmdQYWlyXG4gICAqIEBwYXJhbSB7Kn0gW29wdGlvbnNdIE92ZXJyaWRlIGh0dHAgcmVxdWVzdCBvcHRpb24uXG4gICAqIEB0aHJvd3Mge1JlcXVpcmVkRXJyb3J9XG4gICAqIEBtZW1iZXJvZiBDcnlwdG9FeGNoYW5nZVJhdGVzQXBpXG4gICAqL1xuICBwdWJsaWMgZ2V0RXhjaGFuZ2VSYXRlcyhcbiAgICB0cmFkaW5nUGFpcjogXCJCVEMtVVNEXCIgfCBcIkVUSC1VU0RcIiB8IFwiRkxPVy1VU0RcIixcbiAgICBvcHRpb25zPzogQXhpb3NSZXF1ZXN0Q29uZmlnXG4gICkge1xuICAgIHJldHVybiBDcnlwdG9FeGNoYW5nZVJhdGVzQXBpRnAodGhpcy5jb25maWd1cmF0aW9uKVxuICAgICAgLmdldEV4Y2hhbmdlUmF0ZXModHJhZGluZ1BhaXIsIG9wdGlvbnMpXG4gICAgICAudGhlbigocmVxdWVzdCkgPT4gcmVxdWVzdCh0aGlzLmF4aW9zLCB0aGlzLmJhc2VQYXRoKSk7XG4gIH1cbn1cbiJdfQ==
;