UNPKG

aws-api-gateway-client

Version:
117 lines (100 loc) 14 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _urlTemplate = _interopRequireDefault(require("url-template")); var _apiGatewayClient = _interopRequireDefault(require("./lib/apiGatewayCore/apiGatewayClient")); /* * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ var apigClientFactory = {}; var removeEmpty = function removeEmpty(obj) { Object.keys(obj).forEach(function (key) { return obj[key] && (0, _typeof2["default"])(obj[key]) === 'object' && removeEmpty(obj[key]) || obj[key] === undefined && delete obj[key]; }); return obj; }; apigClientFactory.newClient = function () { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var apigClient = {}; config = Object.assign({ accessKey: '', secretKey: '', sessionToken: '', region: '', apiKey: '', invokeUrl: '', service: 'execute-api', defaultContentType: 'application/json', defaultAcceptType: 'application/json', systemClockOffset: 0, headers: {}, host: undefined }, removeEmpty(config)); // extract endpoint and path from url var invokeUrl = config.invokeUrl; if (!invokeUrl) { throw new Error("invokeUrl must be specified!"); } var endpoint = /(^https?:\/\/[^/]+)/g.exec(invokeUrl)[1]; var pathComponent = invokeUrl.substring(endpoint.length); var sigV4ClientConfig = { accessKey: config.accessKey, secretKey: config.secretKey, sessionToken: config.sessionToken, serviceName: config.service, region: config.region, endpoint: endpoint, defaultContentType: config.defaultContentType, defaultAcceptType: config.defaultAcceptType, systemClockOffset: config.systemClockOffset, retries: config.retries, retryCondition: config.retryCondition, retryDelay: config.retryDelay, host: config.host }; var authType = 'NONE'; if (sigV4ClientConfig.accessKey !== undefined && sigV4ClientConfig.accessKey !== '' && sigV4ClientConfig.secretKey !== undefined && sigV4ClientConfig.secretKey !== '') { authType = 'AWS_IAM'; } var simpleHttpClientConfig = { endpoint: endpoint, defaultContentType: config.defaultContentType, defaultAcceptType: config.defaultAcceptType, retries: config.retries, retryCondition: config.retryCondition, retryDelay: config.retryDelay, headers: config.headers }; var apiGatewayClient = _apiGatewayClient["default"].newClient(simpleHttpClientConfig, sigV4ClientConfig); apigClient.invokeApi = function (params, pathTemplate, method, additionalParams, body) { if (additionalParams === undefined) additionalParams = {}; if (body === undefined) body = ''; var request = { verb: method.toUpperCase(), path: pathComponent + _urlTemplate["default"].parse(pathTemplate).expand(params), headers: additionalParams.headers || {}, timeout: additionalParams.timeout || 0, queryParams: additionalParams.queryParams, body: body }; return apiGatewayClient.makeRequest(request, authType, additionalParams, config.apiKey); }; return apigClient; }; var _default = apigClientFactory; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcGlnQ2xpZW50LmpzIl0sIm5hbWVzIjpbImFwaWdDbGllbnRGYWN0b3J5IiwicmVtb3ZlRW1wdHkiLCJvYmoiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInVuZGVmaW5lZCIsIm5ld0NsaWVudCIsImNvbmZpZyIsImFwaWdDbGllbnQiLCJhc3NpZ24iLCJhY2Nlc3NLZXkiLCJzZWNyZXRLZXkiLCJzZXNzaW9uVG9rZW4iLCJyZWdpb24iLCJhcGlLZXkiLCJpbnZva2VVcmwiLCJzZXJ2aWNlIiwiZGVmYXVsdENvbnRlbnRUeXBlIiwiZGVmYXVsdEFjY2VwdFR5cGUiLCJzeXN0ZW1DbG9ja09mZnNldCIsImhlYWRlcnMiLCJob3N0IiwiRXJyb3IiLCJlbmRwb2ludCIsImV4ZWMiLCJwYXRoQ29tcG9uZW50Iiwic3Vic3RyaW5nIiwibGVuZ3RoIiwic2lnVjRDbGllbnRDb25maWciLCJzZXJ2aWNlTmFtZSIsInJldHJpZXMiLCJyZXRyeUNvbmRpdGlvbiIsInJldHJ5RGVsYXkiLCJhdXRoVHlwZSIsInNpbXBsZUh0dHBDbGllbnRDb25maWciLCJhcGlHYXRld2F5Q2xpZW50IiwiYXBpR2F0ZXdheUNsaWVudEZhY3RvcnkiLCJpbnZva2VBcGkiLCJwYXJhbXMiLCJwYXRoVGVtcGxhdGUiLCJtZXRob2QiLCJhZGRpdGlvbmFsUGFyYW1zIiwiYm9keSIsInJlcXVlc3QiLCJ2ZXJiIiwidG9VcHBlckNhc2UiLCJwYXRoIiwidXJpdGVtcGxhdGUiLCJwYXJzZSIsImV4cGFuZCIsInRpbWVvdXQiLCJxdWVyeVBhcmFtcyIsIm1ha2VSZXF1ZXN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWVBOztBQUNBOztBQWhCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0EsSUFBTUEsaUJBQWlCLEdBQUcsRUFBMUI7O0FBRUEsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsR0FBRCxFQUFTO0FBQzNCQyxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWUYsR0FBWixFQUFpQkcsT0FBakIsQ0FBeUIsVUFBQ0MsR0FBRDtBQUFBLFdBQ3RCSixHQUFHLENBQUNJLEdBQUQsQ0FBSCxJQUFZLHlCQUFPSixHQUFHLENBQUNJLEdBQUQsQ0FBVixNQUFvQixRQUFqQyxJQUE4Q0wsV0FBVyxDQUFDQyxHQUFHLENBQUNJLEdBQUQsQ0FBSixDQUF6RCxJQUNJSixHQUFHLENBQUNJLEdBQUQsQ0FBSCxLQUFhQyxTQUFkLElBQTRCLE9BQU9MLEdBQUcsQ0FBQ0ksR0FBRCxDQUZsQjtBQUFBLEdBQXpCO0FBSUEsU0FBT0osR0FBUDtBQUNELENBTkQ7O0FBUUFGLGlCQUFpQixDQUFDUSxTQUFsQixHQUE4QixZQUFpQjtBQUFBLE1BQWhCQyxNQUFnQix1RUFBUCxFQUFPO0FBQzdDLE1BQU1DLFVBQVUsR0FBRyxFQUFuQjtBQUVBRCxFQUFBQSxNQUFNLEdBQUdOLE1BQU0sQ0FBQ1EsTUFBUCxDQUFjO0FBQ3JCQyxJQUFBQSxTQUFTLEVBQUUsRUFEVTtBQUVyQkMsSUFBQUEsU0FBUyxFQUFFLEVBRlU7QUFHckJDLElBQUFBLFlBQVksRUFBRSxFQUhPO0FBSXJCQyxJQUFBQSxNQUFNLEVBQUUsRUFKYTtBQUtyQkMsSUFBQUEsTUFBTSxFQUFFLEVBTGE7QUFNckJDLElBQUFBLFNBQVMsRUFBRSxFQU5VO0FBT3JCQyxJQUFBQSxPQUFPLEVBQUUsYUFQWTtBQVFyQkMsSUFBQUEsa0JBQWtCLEVBQUUsa0JBUkM7QUFTckJDLElBQUFBLGlCQUFpQixFQUFFLGtCQVRFO0FBVXJCQyxJQUFBQSxpQkFBaUIsRUFBRSxDQVZFO0FBV3JCQyxJQUFBQSxPQUFPLEVBQUUsRUFYWTtBQVlyQkMsSUFBQUEsSUFBSSxFQUFFaEI7QUFaZSxHQUFkLEVBYU5OLFdBQVcsQ0FBQ1EsTUFBRCxDQWJMLENBQVQsQ0FINkMsQ0FrQjdDOztBQUNBLE1BQU1RLFNBQVMsR0FBR1IsTUFBTSxDQUFDUSxTQUF6Qjs7QUFDQSxNQUFJLENBQUNBLFNBQUwsRUFBZ0I7QUFDZCxVQUFNLElBQUlPLEtBQUosQ0FBVSw4QkFBVixDQUFOO0FBQ0Q7O0FBRUQsTUFBTUMsUUFBUSxHQUFHLHVCQUF1QkMsSUFBdkIsQ0FBNEJULFNBQTVCLEVBQXVDLENBQXZDLENBQWpCO0FBQ0EsTUFBTVUsYUFBYSxHQUFHVixTQUFTLENBQUNXLFNBQVYsQ0FBb0JILFFBQVEsQ0FBQ0ksTUFBN0IsQ0FBdEI7QUFFQSxNQUFNQyxpQkFBaUIsR0FBRztBQUN4QmxCLElBQUFBLFNBQVMsRUFBRUgsTUFBTSxDQUFDRyxTQURNO0FBRXhCQyxJQUFBQSxTQUFTLEVBQUVKLE1BQU0sQ0FBQ0ksU0FGTTtBQUd4QkMsSUFBQUEsWUFBWSxFQUFFTCxNQUFNLENBQUNLLFlBSEc7QUFJeEJpQixJQUFBQSxXQUFXLEVBQUV0QixNQUFNLENBQUNTLE9BSkk7QUFLeEJILElBQUFBLE1BQU0sRUFBRU4sTUFBTSxDQUFDTSxNQUxTO0FBTXhCVSxJQUFBQSxRQUFRLEVBQUVBLFFBTmM7QUFPeEJOLElBQUFBLGtCQUFrQixFQUFFVixNQUFNLENBQUNVLGtCQVBIO0FBUXhCQyxJQUFBQSxpQkFBaUIsRUFBRVgsTUFBTSxDQUFDVyxpQkFSRjtBQVN4QkMsSUFBQUEsaUJBQWlCLEVBQUVaLE1BQU0sQ0FBQ1ksaUJBVEY7QUFVeEJXLElBQUFBLE9BQU8sRUFBRXZCLE1BQU0sQ0FBQ3VCLE9BVlE7QUFXeEJDLElBQUFBLGNBQWMsRUFBRXhCLE1BQU0sQ0FBQ3dCLGNBWEM7QUFZeEJDLElBQUFBLFVBQVUsRUFBRXpCLE1BQU0sQ0FBQ3lCLFVBWks7QUFheEJYLElBQUFBLElBQUksRUFBRWQsTUFBTSxDQUFDYztBQWJXLEdBQTFCO0FBZ0JBLE1BQUlZLFFBQVEsR0FBRyxNQUFmOztBQUNBLE1BQ0VMLGlCQUFpQixDQUFDbEIsU0FBbEIsS0FBZ0NMLFNBQWhDLElBQ0d1QixpQkFBaUIsQ0FBQ2xCLFNBQWxCLEtBQWdDLEVBRG5DLElBRUdrQixpQkFBaUIsQ0FBQ2pCLFNBQWxCLEtBQWdDTixTQUZuQyxJQUdHdUIsaUJBQWlCLENBQUNqQixTQUFsQixLQUFnQyxFQUpyQyxFQUtFO0FBQ0VzQixJQUFBQSxRQUFRLEdBQUcsU0FBWDtBQUNIOztBQUVELE1BQU1DLHNCQUFzQixHQUFHO0FBQzdCWCxJQUFBQSxRQUFRLEVBQUVBLFFBRG1CO0FBRTdCTixJQUFBQSxrQkFBa0IsRUFBRVYsTUFBTSxDQUFDVSxrQkFGRTtBQUc3QkMsSUFBQUEsaUJBQWlCLEVBQUVYLE1BQU0sQ0FBQ1csaUJBSEc7QUFJN0JZLElBQUFBLE9BQU8sRUFBRXZCLE1BQU0sQ0FBQ3VCLE9BSmE7QUFLN0JDLElBQUFBLGNBQWMsRUFBRXhCLE1BQU0sQ0FBQ3dCLGNBTE07QUFNN0JDLElBQUFBLFVBQVUsRUFBRXpCLE1BQU0sQ0FBQ3lCLFVBTlU7QUFPN0JaLElBQUFBLE9BQU8sRUFBRWIsTUFBTSxDQUFDYTtBQVBhLEdBQS9COztBQVVBLE1BQU1lLGdCQUFnQixHQUFHQyw2QkFBd0I5QixTQUF4QixDQUN2QjRCLHNCQUR1QixFQUV2Qk4saUJBRnVCLENBQXpCOztBQUtBcEIsRUFBQUEsVUFBVSxDQUFDNkIsU0FBWCxHQUF1QixVQUFDQyxNQUFELEVBQVNDLFlBQVQsRUFBdUJDLE1BQXZCLEVBQStCQyxnQkFBL0IsRUFBaURDLElBQWpELEVBQTBEO0FBQy9FLFFBQUlELGdCQUFnQixLQUFHcEMsU0FBdkIsRUFBa0NvQyxnQkFBZ0IsR0FBQyxFQUFqQjtBQUNsQyxRQUFJQyxJQUFJLEtBQUdyQyxTQUFYLEVBQXNCcUMsSUFBSSxHQUFDLEVBQUw7QUFFdEIsUUFBTUMsT0FBTyxHQUFHO0FBQ1pDLE1BQUFBLElBQUksRUFBRUosTUFBTSxDQUFDSyxXQUFQLEVBRE07QUFFWkMsTUFBQUEsSUFBSSxFQUFFckIsYUFBYSxHQUFHc0Isd0JBQVlDLEtBQVosQ0FBa0JULFlBQWxCLEVBQWdDVSxNQUFoQyxDQUF1Q1gsTUFBdkMsQ0FGVjtBQUdabEIsTUFBQUEsT0FBTyxFQUFFcUIsZ0JBQWdCLENBQUNyQixPQUFqQixJQUE0QixFQUh6QjtBQUlaOEIsTUFBQUEsT0FBTyxFQUFFVCxnQkFBZ0IsQ0FBQ1MsT0FBakIsSUFBNEIsQ0FKekI7QUFLWkMsTUFBQUEsV0FBVyxFQUFFVixnQkFBZ0IsQ0FBQ1UsV0FMbEI7QUFNWlQsTUFBQUEsSUFBSSxFQUFFQTtBQU5NLEtBQWhCO0FBU0EsV0FBT1AsZ0JBQWdCLENBQUNpQixXQUFqQixDQUE2QlQsT0FBN0IsRUFBc0NWLFFBQXRDLEVBQWdEUSxnQkFBaEQsRUFBa0VsQyxNQUFNLENBQUNPLE1BQXpFLENBQVA7QUFDRCxHQWREOztBQWdCQSxTQUFPTixVQUFQO0FBQ0QsQ0FyRkQ7O2VBdUZlVixpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxMC0yMDE2IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAqIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogIGh0dHA6Ly9hd3MuYW1hem9uLmNvbS9hcGFjaGUyLjBcbiAqXG4gKiBvciBpbiB0aGUgXCJsaWNlbnNlXCIgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWRcbiAqIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlclxuICogZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmdcbiAqIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgdXJpdGVtcGxhdGUgZnJvbSAndXJsLXRlbXBsYXRlJztcbmltcG9ydCBhcGlHYXRld2F5Q2xpZW50RmFjdG9yeSBmcm9tICcuL2xpYi9hcGlHYXRld2F5Q29yZS9hcGlHYXRld2F5Q2xpZW50JztcblxuY29uc3QgYXBpZ0NsaWVudEZhY3RvcnkgPSB7fTtcblxuY29uc3QgcmVtb3ZlRW1wdHkgPSAob2JqKSA9PiB7XG4gIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaCgoa2V5KSA9PlxuICAgIChvYmpba2V5XSAmJiB0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnKSAmJiByZW1vdmVFbXB0eShvYmpba2V5XSlcbiAgICB8fCAob2JqW2tleV0gPT09IHVuZGVmaW5lZCkgJiYgZGVsZXRlIG9ialtrZXldXG4gICk7XG4gIHJldHVybiBvYmo7XG59O1xuXG5hcGlnQ2xpZW50RmFjdG9yeS5uZXdDbGllbnQgPSAoY29uZmlnID0ge30pID0+IHtcbiAgY29uc3QgYXBpZ0NsaWVudCA9IHt9O1xuXG4gIGNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIGFjY2Vzc0tleTogJycsXG4gICAgc2VjcmV0S2V5OiAnJyxcbiAgICBzZXNzaW9uVG9rZW46ICcnLFxuICAgIHJlZ2lvbjogJycsXG4gICAgYXBpS2V5OiAnJyxcbiAgICBpbnZva2VVcmw6ICcnLFxuICAgIHNlcnZpY2U6ICdleGVjdXRlLWFwaScsXG4gICAgZGVmYXVsdENvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgZGVmYXVsdEFjY2VwdFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICBzeXN0ZW1DbG9ja09mZnNldDogMCxcbiAgICBoZWFkZXJzOiB7fSxcbiAgICBob3N0OiB1bmRlZmluZWQsXG4gIH0sIHJlbW92ZUVtcHR5KGNvbmZpZykpO1xuXG4gIC8vIGV4dHJhY3QgZW5kcG9pbnQgYW5kIHBhdGggZnJvbSB1cmxcbiAgY29uc3QgaW52b2tlVXJsID0gY29uZmlnLmludm9rZVVybDtcbiAgaWYgKCFpbnZva2VVcmwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbnZva2VVcmwgbXVzdCBiZSBzcGVjaWZpZWQhXCIpO1xuICB9XG5cbiAgY29uc3QgZW5kcG9pbnQgPSAvKF5odHRwcz86XFwvXFwvW14vXSspL2cuZXhlYyhpbnZva2VVcmwpWzFdO1xuICBjb25zdCBwYXRoQ29tcG9uZW50ID0gaW52b2tlVXJsLnN1YnN0cmluZyhlbmRwb2ludC5sZW5ndGgpO1xuXG4gIGNvbnN0IHNpZ1Y0Q2xpZW50Q29uZmlnID0ge1xuICAgIGFjY2Vzc0tleTogY29uZmlnLmFjY2Vzc0tleSxcbiAgICBzZWNyZXRLZXk6IGNvbmZpZy5zZWNyZXRLZXksXG4gICAgc2Vzc2lvblRva2VuOiBjb25maWcuc2Vzc2lvblRva2VuLFxuICAgIHNlcnZpY2VOYW1lOiBjb25maWcuc2VydmljZSxcbiAgICByZWdpb246IGNvbmZpZy5yZWdpb24sXG4gICAgZW5kcG9pbnQ6IGVuZHBvaW50LFxuICAgIGRlZmF1bHRDb250ZW50VHlwZTogY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZSxcbiAgICBkZWZhdWx0QWNjZXB0VHlwZTogY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlLFxuICAgIHN5c3RlbUNsb2NrT2Zmc2V0OiBjb25maWcuc3lzdGVtQ2xvY2tPZmZzZXQsXG4gICAgcmV0cmllczogY29uZmlnLnJldHJpZXMsXG4gICAgcmV0cnlDb25kaXRpb246IGNvbmZpZy5yZXRyeUNvbmRpdGlvbixcbiAgICByZXRyeURlbGF5OiBjb25maWcucmV0cnlEZWxheSxcbiAgICBob3N0OiBjb25maWcuaG9zdCxcbiAgfTtcblxuICBsZXQgYXV0aFR5cGUgPSAnTk9ORSc7XG4gIGlmIChcbiAgICBzaWdWNENsaWVudENvbmZpZy5hY2Nlc3NLZXkgIT09IHVuZGVmaW5lZFxuICAgICYmIHNpZ1Y0Q2xpZW50Q29uZmlnLmFjY2Vzc0tleSAhPT0gJydcbiAgICAmJiBzaWdWNENsaWVudENvbmZpZy5zZWNyZXRLZXkgIT09IHVuZGVmaW5lZFxuICAgICYmIHNpZ1Y0Q2xpZW50Q29uZmlnLnNlY3JldEtleSAhPT0gJydcbiAgKSB7XG4gICAgICBhdXRoVHlwZSA9ICdBV1NfSUFNJztcbiAgfVxuXG4gIGNvbnN0IHNpbXBsZUh0dHBDbGllbnRDb25maWcgPSB7XG4gICAgZW5kcG9pbnQ6IGVuZHBvaW50LFxuICAgIGRlZmF1bHRDb250ZW50VHlwZTogY29uZmlnLmRlZmF1bHRDb250ZW50VHlwZSxcbiAgICBkZWZhdWx0QWNjZXB0VHlwZTogY29uZmlnLmRlZmF1bHRBY2NlcHRUeXBlLFxuICAgIHJldHJpZXM6IGNvbmZpZy5yZXRyaWVzLFxuICAgIHJldHJ5Q29uZGl0aW9uOiBjb25maWcucmV0cnlDb25kaXRpb24sXG4gICAgcmV0cnlEZWxheTogY29uZmlnLnJldHJ5RGVsYXksXG4gICAgaGVhZGVyczogY29uZmlnLmhlYWRlcnMsXG4gIH07XG5cbiAgY29uc3QgYXBpR2F0ZXdheUNsaWVudCA9IGFwaUdhdGV3YXlDbGllbnRGYWN0b3J5Lm5ld0NsaWVudChcbiAgICBzaW1wbGVIdHRwQ2xpZW50Q29uZmlnLFxuICAgIHNpZ1Y0Q2xpZW50Q29uZmlnXG4gICk7XG5cbiAgYXBpZ0NsaWVudC5pbnZva2VBcGkgPSAocGFyYW1zLCBwYXRoVGVtcGxhdGUsIG1ldGhvZCwgYWRkaXRpb25hbFBhcmFtcywgYm9keSkgPT4ge1xuICAgIGlmIChhZGRpdGlvbmFsUGFyYW1zPT09dW5kZWZpbmVkKSBhZGRpdGlvbmFsUGFyYW1zPXt9O1xuICAgIGlmIChib2R5PT09dW5kZWZpbmVkKSBib2R5PScnO1xuXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgdmVyYjogbWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIHBhdGg6IHBhdGhDb21wb25lbnQgKyB1cml0ZW1wbGF0ZS5wYXJzZShwYXRoVGVtcGxhdGUpLmV4cGFuZChwYXJhbXMpLFxuICAgICAgICBoZWFkZXJzOiBhZGRpdGlvbmFsUGFyYW1zLmhlYWRlcnMgfHwge30sXG4gICAgICAgIHRpbWVvdXQ6IGFkZGl0aW9uYWxQYXJhbXMudGltZW91dCB8fCAwLFxuICAgICAgICBxdWVyeVBhcmFtczogYWRkaXRpb25hbFBhcmFtcy5xdWVyeVBhcmFtcyxcbiAgICAgICAgYm9keTogYm9keVxuICAgIH07XG5cbiAgICByZXR1cm4gYXBpR2F0ZXdheUNsaWVudC5tYWtlUmVxdWVzdChyZXF1ZXN0LCBhdXRoVHlwZSwgYWRkaXRpb25hbFBhcmFtcywgY29uZmlnLmFwaUtleSk7XG4gIH07XG5cbiAgcmV0dXJuIGFwaWdDbGllbnQ7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBhcGlnQ2xpZW50RmFjdG9yeTtcbiJdfQ==