UNPKG

15.8 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
8
9var _index = require("./index");
10
11var _index2 = _interopRequireDefault(_index);
12
13var _Utils = require("./Utils");
14
15var _Utils2 = _interopRequireDefault(_Utils);
16
17function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
21/**
22 * Provides access to the `users` endpoint.
23 */
24var Users = function () {
25 _createClass(Users, null, [{
26 key: "PATH",
27 get: function get() {
28 return "/v0.1/users";
29 }
30
31 /**
32 * @param {Credentials} credentials
33 * credentials to be used when interacting with the API.
34 * @param {Object} options
35 * Additional Users options.
36 */
37
38 }]);
39
40 function Users(credentials) {
41 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
43 _classCallCheck(this, Users);
44
45 this.creds = credentials;
46 this.options = options;
47 }
48
49 /**
50 * Create a new user.
51 *
52 * @param {Object} params - Parameters used when creating the user. See https://ea.developer.nexmo.com/api/conversation#create-a-user for more information.
53 * @param {function} callback - function to be called when the request completes.
54 */
55
56
57 _createClass(Users, [{
58 key: "create",
59 value: function create(params, callback) {
60 params = JSON.stringify(params);
61
62 var config = {
63 host: this.options.host || "api.nexmo.com",
64 path: Users.PATH,
65 method: "POST",
66 body: params,
67 headers: {
68 "Content-Type": "application/json",
69 Authorization: "Bearer " + this.creds.generateJwt()
70 }
71 };
72 this.options.httpClient.request(config, callback);
73 }
74
75 /**
76 * Get an existing user.
77 *
78 * @param {string|object} query - The unique identifier for the user to retrieve
79 * or a set of filter parameters for the query. For more information
80 * see https://ea.developer.nexmo.com/api/conversation#retrieve-all-users
81 * @param {function} callback - function to be called when the request completes.
82 */
83
84 }, {
85 key: "get",
86 value: function get(query, callback) {
87 var config = {
88 host: this.options.host || "api.nexmo.com",
89 path: _Utils2.default.createPathWithQuery(Users.PATH, query),
90 method: "GET",
91 body: undefined,
92 headers: {
93 "Content-Type": "application/json",
94 Authorization: "Bearer " + this.creds.generateJwt()
95 }
96 };
97 this.options.httpClient.request(config, callback);
98 }
99
100 /**
101 * Get next page of users or conversations for a user.
102 *
103 * @param {object} response - The response from a paginated users list
104 * see https://ea.developer.nexmo.com/api/conversation#retrieve-all-users
105 * @param {function} callback - function to be called when the request completes.
106 */
107
108 }, {
109 key: "next",
110 value: function next(response, callback) {
111 if (response._links.next) {
112 this.get(_Utils2.default.getQuery(response._links.next.href), callback);
113 } else {
114 var error = new Error("The response doesn't have a next page.");
115 callback(error, null);
116 }
117 }
118
119 /**
120 * Get previous page of users or conversations for a user.
121 *
122 * @param {object} response - The response from a paginated users list
123 * see https://ea.developer.nexmo.com/api/conversation#retrieve-all-users
124 * @param {function} callback - function to be called when the request completes.
125 */
126
127 }, {
128 key: "prev",
129 value: function prev(response, callback) {
130 if (response._links.prev) {
131 this.get(_Utils2.default.getQuery(response._links.prev.href), callback);
132 } else {
133 var error = new Error("The response doesn't have a previous page.");
134 callback(error, null);
135 }
136 }
137
138 /**
139 * Update an existing user.
140 *
141 * @param {string} userId - The unique identifier for the user to update.
142 * @param {Object} params - Parameters used when updating the conversation.
143 * @param {function} callback - function to be called when the request completes.
144 */
145
146 }, {
147 key: "update",
148 value: function update(userId, params, callback) {
149 params = JSON.stringify(params);
150
151 var config = {
152 host: this.options.host || "api.nexmo.com",
153 path: Users.PATH + "/" + userId,
154 method: "PUT",
155 body: params,
156 headers: {
157 "Content-Type": "application/json",
158 Authorization: "Bearer " + this.creds.generateJwt()
159 }
160 };
161
162 this.options.httpClient.request(config, callback);
163 }
164
165 /**
166 * Deleta an existing user.
167 *
168 * @param {string} userId - The unique identifier for the user to delete.
169 * @param {function} callback - function to be called when the request completes.
170 */
171
172 }, {
173 key: "delete",
174 value: function _delete(userId, callback) {
175 var config = {
176 host: this.options.host || "api.nexmo.com",
177 path: Users.PATH + "/" + userId,
178 method: "DELETE",
179 headers: {
180 "Content-Type": "application/json",
181 Authorization: "Bearer " + this.creds.generateJwt()
182 }
183 };
184
185 this.options.httpClient.request(config, callback);
186 }
187 }]);
188
189 return Users;
190}();
191
192exports.default = Users;
193module.exports = exports["default"];
194//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Vc2Vycy5qcyJdLCJuYW1lcyI6WyJVc2VycyIsImNyZWRlbnRpYWxzIiwib3B0aW9ucyIsImNyZWRzIiwicGFyYW1zIiwiY2FsbGJhY2siLCJKU09OIiwic3RyaW5naWZ5IiwiY29uZmlnIiwiaG9zdCIsInBhdGgiLCJQQVRIIiwibWV0aG9kIiwiYm9keSIsImhlYWRlcnMiLCJBdXRob3JpemF0aW9uIiwiZ2VuZXJhdGVKd3QiLCJodHRwQ2xpZW50IiwicmVxdWVzdCIsInF1ZXJ5IiwiY3JlYXRlUGF0aFdpdGhRdWVyeSIsInVuZGVmaW5lZCIsInJlc3BvbnNlIiwiX2xpbmtzIiwibmV4dCIsImdldCIsImdldFF1ZXJ5IiwiaHJlZiIsImVycm9yIiwiRXJyb3IiLCJwcmV2IiwidXNlcklkIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7QUFFQTs7OztBQUVBOzs7Ozs7OztBQUVBOzs7SUFHTUEsSzs7O3dCQUNjO0FBQ2hCLGFBQU8sYUFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7QUFNQSxpQkFBWUMsV0FBWixFQUF1QztBQUFBLFFBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFBQTs7QUFDckMsU0FBS0MsS0FBTCxHQUFhRixXQUFiO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQSxPQUFmO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7MkJBTU9FLE0sRUFBUUMsUSxFQUFVO0FBQ3ZCRCxlQUFTRSxLQUFLQyxTQUFMLENBQWVILE1BQWYsQ0FBVDs7QUFFQSxVQUFJSSxTQUFTO0FBQ1hDLGNBQU0sS0FBS1AsT0FBTCxDQUFhTyxJQUFiLElBQXFCLGVBRGhCO0FBRVhDLGNBQU1WLE1BQU1XLElBRkQ7QUFHWEMsZ0JBQVEsTUFIRztBQUlYQyxjQUFNVCxNQUpLO0FBS1hVLGlCQUFTO0FBQ1AsMEJBQWdCLGtCQURUO0FBRVBDLHFDQUF5QixLQUFLWixLQUFMLENBQVdhLFdBQVg7QUFGbEI7QUFMRSxPQUFiO0FBVUEsV0FBS2QsT0FBTCxDQUFhZSxVQUFiLENBQXdCQyxPQUF4QixDQUFnQ1YsTUFBaEMsRUFBd0NILFFBQXhDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7O3dCQVFJYyxLLEVBQU9kLFEsRUFBVTtBQUNuQixVQUFJRyxTQUFTO0FBQ1hDLGNBQU0sS0FBS1AsT0FBTCxDQUFhTyxJQUFiLElBQXFCLGVBRGhCO0FBRVhDLGNBQU0sZ0JBQU1VLG1CQUFOLENBQTBCcEIsTUFBTVcsSUFBaEMsRUFBc0NRLEtBQXRDLENBRks7QUFHWFAsZ0JBQVEsS0FIRztBQUlYQyxjQUFNUSxTQUpLO0FBS1hQLGlCQUFTO0FBQ1AsMEJBQWdCLGtCQURUO0FBRVBDLHFDQUF5QixLQUFLWixLQUFMLENBQVdhLFdBQVg7QUFGbEI7QUFMRSxPQUFiO0FBVUEsV0FBS2QsT0FBTCxDQUFhZSxVQUFiLENBQXdCQyxPQUF4QixDQUFnQ1YsTUFBaEMsRUFBd0NILFFBQXhDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7eUJBUUtpQixRLEVBQVVqQixRLEVBQVU7QUFDdkIsVUFBSWlCLFNBQVNDLE1BQVQsQ0FBZ0JDLElBQXBCLEVBQTBCO0FBQ3hCLGFBQUtDLEdBQUwsQ0FBUyxnQkFBTUMsUUFBTixDQUFlSixTQUFTQyxNQUFULENBQWdCQyxJQUFoQixDQUFxQkcsSUFBcEMsQ0FBVCxFQUFvRHRCLFFBQXBEO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsWUFBTXVCLFFBQVEsSUFBSUMsS0FBSixDQUFVLHdDQUFWLENBQWQ7QUFDQXhCLGlCQUFTdUIsS0FBVCxFQUFnQixJQUFoQjtBQUNEO0FBQ0Y7O0FBRUQ7Ozs7Ozs7Ozs7eUJBT0tOLFEsRUFBVWpCLFEsRUFBVTtBQUN2QixVQUFJaUIsU0FBU0MsTUFBVCxDQUFnQk8sSUFBcEIsRUFBMEI7QUFDeEIsYUFBS0wsR0FBTCxDQUFTLGdCQUFNQyxRQUFOLENBQWVKLFNBQVNDLE1BQVQsQ0FBZ0JPLElBQWhCLENBQXFCSCxJQUFwQyxDQUFULEVBQW9EdEIsUUFBcEQ7QUFDRCxPQUZELE1BRU87QUFDTCxZQUFNdUIsUUFBUSxJQUFJQyxLQUFKLENBQVUsNENBQVYsQ0FBZDtBQUNBeEIsaUJBQVN1QixLQUFULEVBQWdCLElBQWhCO0FBQ0Q7QUFDRjs7QUFFRDs7Ozs7Ozs7OzsyQkFPT0csTSxFQUFRM0IsTSxFQUFRQyxRLEVBQVU7QUFDL0JELGVBQVNFLEtBQUtDLFNBQUwsQ0FBZUgsTUFBZixDQUFUOztBQUVBLFVBQUlJLFNBQVM7QUFDWEMsY0FBTSxLQUFLUCxPQUFMLENBQWFPLElBQWIsSUFBcUIsZUFEaEI7QUFFWEMsY0FBU1YsTUFBTVcsSUFBZixTQUF1Qm9CLE1BRlo7QUFHWG5CLGdCQUFRLEtBSEc7QUFJWEMsY0FBTVQsTUFKSztBQUtYVSxpQkFBUztBQUNQLDBCQUFnQixrQkFEVDtBQUVQQyxxQ0FBeUIsS0FBS1osS0FBTCxDQUFXYSxXQUFYO0FBRmxCO0FBTEUsT0FBYjs7QUFXQSxXQUFLZCxPQUFMLENBQWFlLFVBQWIsQ0FBd0JDLE9BQXhCLENBQWdDVixNQUFoQyxFQUF3Q0gsUUFBeEM7QUFDRDs7QUFFRDs7Ozs7Ozs7OzRCQU1PMEIsTSxFQUFRMUIsUSxFQUFVO0FBQ3ZCLFVBQUlHLFNBQVM7QUFDWEMsY0FBTSxLQUFLUCxPQUFMLENBQWFPLElBQWIsSUFBcUIsZUFEaEI7QUFFWEMsY0FBU1YsTUFBTVcsSUFBZixTQUF1Qm9CLE1BRlo7QUFHWG5CLGdCQUFRLFFBSEc7QUFJWEUsaUJBQVM7QUFDUCwwQkFBZ0Isa0JBRFQ7QUFFUEMscUNBQXlCLEtBQUtaLEtBQUwsQ0FBV2EsV0FBWDtBQUZsQjtBQUpFLE9BQWI7O0FBVUEsV0FBS2QsT0FBTCxDQUFhZSxVQUFiLENBQXdCQyxPQUF4QixDQUFnQ1YsTUFBaEMsRUFBd0NILFFBQXhDO0FBQ0Q7Ozs7OztrQkFHWUwsSyIsImZpbGUiOiJVc2Vycy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbmV4bW8gZnJvbSBcIi4vaW5kZXhcIjtcblxuaW1wb3J0IFV0aWxzIGZyb20gXCIuL1V0aWxzXCI7XG5cbi8qKlxuICogUHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBgdXNlcnNgIGVuZHBvaW50LlxuICovXG5jbGFzcyBVc2VycyB7XG4gIHN0YXRpYyBnZXQgUEFUSCgpIHtcbiAgICByZXR1cm4gXCIvdjAuMS91c2Vyc1wiO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7Q3JlZGVudGlhbHN9IGNyZWRlbnRpYWxzXG4gICAqICAgIGNyZWRlbnRpYWxzIHRvIGJlIHVzZWQgd2hlbiBpbnRlcmFjdGluZyB3aXRoIHRoZSBBUEkuXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAqICAgIEFkZGl0aW9uYWwgVXNlcnMgb3B0aW9ucy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNyZWRlbnRpYWxzLCBvcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmNyZWRzID0gY3JlZGVudGlhbHM7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFBhcmFtZXRlcnMgdXNlZCB3aGVuIGNyZWF0aW5nIHRoZSB1c2VyLiBTZWUgaHR0cHM6Ly9lYS5kZXZlbG9wZXIubmV4bW8uY29tL2FwaS9jb252ZXJzYXRpb24jY3JlYXRlLWEtdXNlciBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVzdCBjb21wbGV0ZXMuXG4gICAqL1xuICBjcmVhdGUocGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XG5cbiAgICB2YXIgY29uZmlnID0ge1xuICAgICAgaG9zdDogdGhpcy5vcHRpb25zLmhvc3QgfHwgXCJhcGkubmV4bW8uY29tXCIsXG4gICAgICBwYXRoOiBVc2Vycy5QQVRILFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGJvZHk6IHBhcmFtcyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmNyZWRzLmdlbmVyYXRlSnd0KCl9YFxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5vcHRpb25zLmh0dHBDbGllbnQucmVxdWVzdChjb25maWcsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gZXhpc3RpbmcgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fSBxdWVyeSAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIgdG8gcmV0cmlldmVcbiAgICogICAgICAgICAgICAgICBvciBhIHNldCBvZiBmaWx0ZXIgcGFyYW1ldGVycyBmb3IgdGhlIHF1ZXJ5LiBGb3IgbW9yZSBpbmZvcm1hdGlvblxuICAgKiAgICAgICAgICAgICAgIHNlZSBodHRwczovL2VhLmRldmVsb3Blci5uZXhtby5jb20vYXBpL2NvbnZlcnNhdGlvbiNyZXRyaWV2ZS1hbGwtdXNlcnNcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVzdCBjb21wbGV0ZXMuXG4gICAqL1xuICBnZXQocXVlcnksIGNhbGxiYWNrKSB7XG4gICAgdmFyIGNvbmZpZyA9IHtcbiAgICAgIGhvc3Q6IHRoaXMub3B0aW9ucy5ob3N0IHx8IFwiYXBpLm5leG1vLmNvbVwiLFxuICAgICAgcGF0aDogVXRpbHMuY3JlYXRlUGF0aFdpdGhRdWVyeShVc2Vycy5QQVRILCBxdWVyeSksXG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICBib2R5OiB1bmRlZmluZWQsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5jcmVkcy5nZW5lcmF0ZUp3dCgpfWBcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5leHQgcGFnZSBvZiB1c2VycyBvciBjb252ZXJzYXRpb25zIGZvciBhIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZXNwb25zZSAtIFRoZSByZXNwb25zZSBmcm9tIGEgcGFnaW5hdGVkIHVzZXJzIGxpc3RcbiAgICogICAgICAgICAgICAgICBzZWUgaHR0cHM6Ly9lYS5kZXZlbG9wZXIubmV4bW8uY29tL2FwaS9jb252ZXJzYXRpb24jcmV0cmlldmUtYWxsLXVzZXJzXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlcXVlc3QgY29tcGxldGVzLlxuICAgKi9cblxuICBuZXh0KHJlc3BvbnNlLCBjYWxsYmFjaykge1xuICAgIGlmIChyZXNwb25zZS5fbGlua3MubmV4dCkge1xuICAgICAgdGhpcy5nZXQoVXRpbHMuZ2V0UXVlcnkocmVzcG9uc2UuX2xpbmtzLm5leHQuaHJlZiksIGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXCJUaGUgcmVzcG9uc2UgZG9lc24ndCBoYXZlIGEgbmV4dCBwYWdlLlwiKTtcbiAgICAgIGNhbGxiYWNrKGVycm9yLCBudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByZXZpb3VzIHBhZ2Ugb2YgdXNlcnMgb3IgY29udmVyc2F0aW9ucyBmb3IgYSB1c2VyLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2UgZnJvbSBhIHBhZ2luYXRlZCB1c2VycyBsaXN0XG4gICAqICAgICAgICAgICAgICAgc2VlIGh0dHBzOi8vZWEuZGV2ZWxvcGVyLm5leG1vLmNvbS9hcGkvY29udmVyc2F0aW9uI3JldHJpZXZlLWFsbC11c2Vyc1xuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBjYWxsYmFjayAtIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSByZXF1ZXN0IGNvbXBsZXRlcy5cbiAgICovXG4gIHByZXYocmVzcG9uc2UsIGNhbGxiYWNrKSB7XG4gICAgaWYgKHJlc3BvbnNlLl9saW5rcy5wcmV2KSB7XG4gICAgICB0aGlzLmdldChVdGlscy5nZXRRdWVyeShyZXNwb25zZS5fbGlua3MucHJldi5ocmVmKSwgY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihcIlRoZSByZXNwb25zZSBkb2Vzbid0IGhhdmUgYSBwcmV2aW91cyBwYWdlLlwiKTtcbiAgICAgIGNhbGxiYWNrKGVycm9yLCBudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VySWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB1c2VyIHRvIHVwZGF0ZS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFBhcmFtZXRlcnMgdXNlZCB3aGVuIHVwZGF0aW5nIHRoZSBjb252ZXJzYXRpb24uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNhbGxiYWNrIC0gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHJlcXVlc3QgY29tcGxldGVzLlxuICAgKi9cbiAgdXBkYXRlKHVzZXJJZCwgcGFyYW1zLCBjYWxsYmFjaykge1xuICAgIHBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XG5cbiAgICB2YXIgY29uZmlnID0ge1xuICAgICAgaG9zdDogdGhpcy5vcHRpb25zLmhvc3QgfHwgXCJhcGkubmV4bW8uY29tXCIsXG4gICAgICBwYXRoOiBgJHtVc2Vycy5QQVRIfS8ke3VzZXJJZH1gLFxuICAgICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgICAgYm9keTogcGFyYW1zLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuY3JlZHMuZ2VuZXJhdGVKd3QoKX1gXG4gICAgICB9XG4gICAgfTtcblxuICAgIHRoaXMub3B0aW9ucy5odHRwQ2xpZW50LnJlcXVlc3QoY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRhIGFuIGV4aXN0aW5nIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VySWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB1c2VyIHRvIGRlbGV0ZS5cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgcmVxdWVzdCBjb21wbGV0ZXMuXG4gICAqL1xuICBkZWxldGUodXNlcklkLCBjYWxsYmFjaykge1xuICAgIHZhciBjb25maWcgPSB7XG4gICAgICBob3N0OiB0aGlzLm9wdGlvbnMuaG9zdCB8fCBcImFwaS5uZXhtby5jb21cIixcbiAgICAgIHBhdGg6IGAke1VzZXJzLlBBVEh9LyR7dXNlcklkfWAsXG4gICAgICBtZXRob2Q6IFwiREVMRVRFXCIsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy5jcmVkcy5nZW5lcmF0ZUp3dCgpfWBcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy5vcHRpb25zLmh0dHBDbGllbnQucmVxdWVzdChjb25maWcsIGNhbGxiYWNrKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVc2VycztcbiJdfQ==
\No newline at end of file