1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200 | 1
1
72
1
1
1
1
1
1
72
72
72
72
1
21
147
147
1
34
34
1
1
1
4
4
1
13
13
1
1
1
5
5
1
6
6
1
6
6
1
1
34
34
1
17
17
1
38
38
1
1
1
1
1
1
11
11
1
1
1
3
3
1
1
1
1
1
8
8
8
| System.register(['aurelia-path', './http-request-message', './jsonp-request-message'], function (_export) {
'use strict';
var join, HttpRequestMessage, JSONPRequestMessage, RequestBuilder;
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
return {
setters: [function (_aureliaPath) {
join = _aureliaPath.join;
}, function (_httpRequestMessage) {
HttpRequestMessage = _httpRequestMessage.HttpRequestMessage;
}, function (_jsonpRequestMessage) {
JSONPRequestMessage = _jsonpRequestMessage.JSONPRequestMessage;
}],
execute: function () {
/**
* A builder class allowing fluent composition of HTTP requests.
*
* @class RequestBuilder
* @constructor
*/
RequestBuilder = (function () {
function RequestBuilder(client) {
_classCallCheck(this, RequestBuilder);
this.client = client;
this.transformers = client.requestTransformers.slice(0);
this.useJsonp = false;
}
/**
* Adds a user-defined request transformer to the RequestBuilder.
*
* @method addHelper
* @param {String} name The name of the helper to add.
* @param {Function} fn The helper function.
* @chainable
*/
RequestBuilder.addHelper = function addHelper(name, fn) {
RequestBuilder.prototype[name] = function () {
this.transformers.push(fn.apply(this, arguments));
return this;
};
};
/**
* Sends the request.
*
* @method send
* @return {Promise} A cancellable promise object.
*/
RequestBuilder.prototype.send = function send() {
var message = this.useJsonp ? new JSONPRequestMessage() : new HttpRequestMessage();
return this.client.send(message, this.transformers);
};
return RequestBuilder;
})();
_export('RequestBuilder', RequestBuilder);
RequestBuilder.addHelper('asDelete', function () {
return function (client, processor, message) {
message.method = 'DELETE';
};
});
RequestBuilder.addHelper('asGet', function () {
return function (client, processor, message) {
message.method = 'GET';
};
});
RequestBuilder.addHelper('asHead', function () {
return function (client, processor, message) {
message.method = 'HEAD';
};
});
RequestBuilder.addHelper('asOptions', function () {
return function (client, processor, message) {
message.method = 'OPTIONS';
};
});
RequestBuilder.addHelper('asPatch', function () {
return function (client, processor, message) {
message.method = 'PATCH';
};
});
RequestBuilder.addHelper('asPost', function () {
return function (client, processor, message) {
message.method = 'POST';
};
});
RequestBuilder.addHelper('asPut', function () {
return function (client, processor, message) {
message.method = 'PUT';
};
});
RequestBuilder.addHelper('asJsonp', function (callbackParameterName) {
this.useJsonp = true;
return function (client, processor, message) {
message.callbackParameterName = callbackParameterName;
};
});
RequestBuilder.addHelper('withUrl', function (url) {
return function (client, processor, message) {
message.url = url;
};
});
RequestBuilder.addHelper('withContent', function (content) {
return function (client, processor, message) {
message.content = content;
};
});
RequestBuilder.addHelper('withBaseUrl', function (baseUrl) {
return function (client, processor, message) {
message.baseUrl = baseUrl;
};
});
RequestBuilder.addHelper('withParams', function (params) {
return function (client, processor, message) {
message.params = params;
};
});
RequestBuilder.addHelper('withResponseType', function (responseType) {
return function (client, processor, message) {
message.responseType = responseType;
};
});
RequestBuilder.addHelper('withTimeout', function (timeout) {
return function (client, processor, message) {
message.timeout = timeout;
};
});
RequestBuilder.addHelper('withHeader', function (key, value) {
return function (client, processor, message) {
message.headers.add(key, value);
};
});
RequestBuilder.addHelper('withCredentials', function (value) {
return function (client, processor, message) {
message.withCredentials = value;
};
});
RequestBuilder.addHelper('withReviver', function (reviver) {
return function (client, processor, message) {
message.reviver = reviver;
};
});
RequestBuilder.addHelper('withReplacer', function (replacer) {
return function (client, processor, message) {
message.replacer = replacer;
};
});
RequestBuilder.addHelper('withProgressCallback', function (progressCallback) {
return function (client, processor, message) {
message.progressCallback = progressCallback;
};
});
RequestBuilder.addHelper('withCallbackParameterName', function (callbackParameterName) {
return function (client, processor, message) {
message.callbackParameterName = callbackParameterName;
};
});
RequestBuilder.addHelper('withInterceptor', function (interceptor) {
return function (client, processor, message) {
// NOTE: Interceptors are stored in reverse order. Inner interceptors before outer interceptors.
// This reversal is needed so that we can build up the interception chain around the
// server request.
message.interceptors = message.interceptors || [];
message.interceptors.unshift(interceptor);
};
});
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL2h0dHAtY2xpZW50L3NyYy9yZXF1ZXN0LWJ1aWxkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O3FEQVVhLGNBQWM7Ozs7OzswQkFWbkIsSUFBSTs7K0NBQ0osa0JBQWtCOztpREFDbEIsbUJBQW1COzs7Ozs7Ozs7OztBQVFkLG9CQUFjO0FBQ2QsaUJBREEsY0FBYyxDQUNiLE1BQU0sRUFBQztnQ0FEUixjQUFjOztBQUV2QixjQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUNyQixjQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsY0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7Ozs7Ozs7Ozs7O0FBTFUsc0JBQWMsQ0FlbEIsU0FBUyxHQUFBLG1CQUFDLElBQUksRUFBRSxFQUFFLEVBQUM7QUFDeEIsd0JBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBVTtBQUN6QyxnQkFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUNsRCxtQkFBTyxJQUFJLENBQUM7V0FDYixDQUFDO1NBQ0g7Ozs7Ozs7OztBQXBCVSxzQkFBYyxXQTRCekIsSUFBSSxHQUFBLGdCQUFFO0FBQ0osY0FBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0FBQ25GLGlCQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDckQ7O2VBL0JVLGNBQWM7OztnQ0FBZCxjQUFjOztB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QyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQzNCLENBQUM7T0FDSCxDQUFDLENBQUM7O0FBRUgsb0JBQWMsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLFVBQVMsUUFBUSxFQUFDO0FBQ3pELGVBQU8sVUFBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBQztBQUN6QyxpQkFBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7U0FDN0IsQ0FBQztPQUNILENBQUMsQ0FBQzs7QUFFSCxvQkFBYyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxVQUFTLGdCQUFnQixFQUFDO0FBQ3pFLGVBQU8sVUFBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBQztBQUN6QyxpQkFBTyxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1NBQzdDLENBQUM7T0FDSCxDQUFDLENBQUM7O0FBRUgsb0JBQWMsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsVUFBUyxxQkFBcUIsRUFBQztBQUNuRixlQUFPLFVBQVMsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUM7QUFDekMsaUJBQU8sQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztTQUN2RCxDQUFDO09BQ0gsQ0FBQyxDQUFDOztBQUVILG9CQUFjLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLFVBQVMsV0FBVyxFQUFFO0FBQ2hFLGVBQU8sVUFBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRTs7OztBQUkxQyxpQkFBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztBQUNsRCxpQkFBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0MsQ0FBQztPQUNILENBQUMsQ0FBQyIsImZpbGUiOiIvVXNlcnMvRWlzZW5iZXJnRWZmZWN0L0RvY3VtZW50cy9HaXRIdWIvVGhlIER1cmFuZGFsIFByb2plY3QvYXVyZWxpYS9odHRwLWNsaWVudC9zcmMvcmVxdWVzdC1idWlsZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtqb2lufSBmcm9tICdhdXJlbGlhLXBhdGgnO1xuaW1wb3J0IHtIdHRwUmVxdWVzdE1lc3NhZ2V9IGZyb20gJy4vaHR0cC1yZXF1ZXN0LW1lc3NhZ2UnO1xuaW1wb3J0IHtKU09OUFJlcXVlc3RNZXNzYWdlfSBmcm9tICcuL2pzb25wLXJlcXVlc3QtbWVzc2FnZSc7XG5cbi8qKlxuICogQSBidWlsZGVyIGNsYXNzIGFsbG93aW5nIGZsdWVudCBjb21wb3NpdGlvbiBvZiBIVFRQIHJlcXVlc3RzLlxuICpcbiAqIEBjbGFzcyBSZXF1ZXN0QnVpbGRlclxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0QnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKGNsaWVudCl7XG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgdGhpcy50cmFuc2Zvcm1lcnMgPSBjbGllbnQucmVxdWVzdFRyYW5zZm9ybWVycy5zbGljZSgwKTtcbiAgICB0aGlzLnVzZUpzb25wID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHVzZXItZGVmaW5lZCByZXF1ZXN0IHRyYW5zZm9ybWVyIHRvIHRoZSBSZXF1ZXN0QnVpbGRlci5cbiAgICpcbiAgICogQG1ldGhvZCBhZGRIZWxwZXJcbiAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlbHBlciB0byBhZGQuXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBoZWxwZXIgZnVuY3Rpb24uXG4gICAqIEBjaGFpbmFibGVcbiAgICovXG4gIHN0YXRpYyBhZGRIZWxwZXIobmFtZSwgZm4pe1xuICAgIFJlcXVlc3RCdWlsZGVyLnByb3RvdHlwZVtuYW1lXSA9IGZ1bmN0aW9uKCl7XG4gICAgICB0aGlzLnRyYW5zZm9ybWVycy5wdXNoKGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyB0aGUgcmVxdWVzdC5cbiAgICpcbiAgICogQG1ldGhvZCBzZW5kXG4gICAqIEByZXR1cm4ge1Byb21pc2V9IEEgY2FuY2VsbGFibGUgcHJvbWlzZSBvYmplY3QuXG4gICAqL1xuICBzZW5kKCl7XG4gICAgbGV0IG1lc3NhZ2UgPSB0aGlzLnVzZUpzb25wID8gbmV3IEpTT05QUmVxdWVzdE1lc3NhZ2UoKSA6IG5ldyBIdHRwUmVxdWVzdE1lc3NhZ2UoKTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuc2VuZChtZXNzYWdlLCB0aGlzLnRyYW5zZm9ybWVycyk7XG4gIH1cbn1cblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCdhc0RlbGV0ZScsIGZ1bmN0aW9uKCl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5tZXRob2QgPSAnREVMRVRFJztcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ2FzR2V0JywgZnVuY3Rpb24oKXtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKXtcbiAgICBtZXNzYWdlLm1ldGhvZCA9ICdHRVQnO1xuICB9O1xufSk7XG5cblJlcXVlc3RCdWlsZGVyLmFkZEhlbHBlcignYXNIZWFkJywgZnVuY3Rpb24oKXtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKXtcbiAgICBtZXNzYWdlLm1ldGhvZCA9ICdIRUFEJztcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ2FzT3B0aW9ucycsIGZ1bmN0aW9uKCl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5tZXRob2QgPSAnT1BUSU9OUyc7XG4gIH07XG59KTtcblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCdhc1BhdGNoJywgZnVuY3Rpb24oKXtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKXtcbiAgICBtZXNzYWdlLm1ldGhvZCA9ICdQQVRDSCc7XG4gIH07XG59KTtcblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCdhc1Bvc3QnLCBmdW5jdGlvbigpe1xuICByZXR1cm4gZnVuY3Rpb24oY2xpZW50LCBwcm9jZXNzb3IsIG1lc3NhZ2Upe1xuICAgIG1lc3NhZ2UubWV0aG9kID0gJ1BPU1QnO1xuICB9O1xufSk7XG5cblJlcXVlc3RCdWlsZGVyLmFkZEhlbHBlcignYXNQdXQnLCBmdW5jdGlvbigpe1xuICByZXR1cm4gZnVuY3Rpb24oY2xpZW50LCBwcm9jZXNzb3IsIG1lc3NhZ2Upe1xuICAgIG1lc3NhZ2UubWV0aG9kID0gJ1BVVCc7XG4gIH07XG59KTtcblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCdhc0pzb25wJywgZnVuY3Rpb24oY2FsbGJhY2tQYXJhbWV0ZXJOYW1lKXtcbiAgdGhpcy51c2VKc29ucCA9IHRydWU7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5jYWxsYmFja1BhcmFtZXRlck5hbWUgPSBjYWxsYmFja1BhcmFtZXRlck5hbWU7XG4gIH07XG59KTtcblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCd3aXRoVXJsJywgZnVuY3Rpb24odXJsKXtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKXtcbiAgICBtZXNzYWdlLnVybCA9IHVybDtcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ3dpdGhDb250ZW50JywgZnVuY3Rpb24oY29udGVudCl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5jb250ZW50ID0gY29udGVudDtcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ3dpdGhCYXNlVXJsJywgZnVuY3Rpb24oYmFzZVVybCl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5iYXNlVXJsID0gYmFzZVVybDtcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ3dpdGhQYXJhbXMnLCBmdW5jdGlvbihwYXJhbXMpe1xuICByZXR1cm4gZnVuY3Rpb24oY2xpZW50LCBwcm9jZXNzb3IsIG1lc3NhZ2Upe1xuICAgIG1lc3NhZ2UucGFyYW1zID0gcGFyYW1zO1xuICB9O1xufSk7XG5cblJlcXVlc3RCdWlsZGVyLmFkZEhlbHBlcignd2l0aFJlc3BvbnNlVHlwZScsIGZ1bmN0aW9uKHJlc3BvbnNlVHlwZSl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5yZXNwb25zZVR5cGUgPSByZXNwb25zZVR5cGU7XG4gIH07XG59KTtcblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCd3aXRoVGltZW91dCcsIGZ1bmN0aW9uKHRpbWVvdXQpe1xuICByZXR1cm4gZnVuY3Rpb24oY2xpZW50LCBwcm9jZXNzb3IsIG1lc3NhZ2Upe1xuICAgIG1lc3NhZ2UudGltZW91dCA9IHRpbWVvdXQ7XG4gIH07XG59KTtcblxuUmVxdWVzdEJ1aWxkZXIuYWRkSGVscGVyKCd3aXRoSGVhZGVyJywgZnVuY3Rpb24oa2V5LCB2YWx1ZSl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5oZWFkZXJzLmFkZChrZXksIHZhbHVlKTtcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ3dpdGhDcmVkZW50aWFscycsIGZ1bmN0aW9uKHZhbHVlKXtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKXtcbiAgICBtZXNzYWdlLndpdGhDcmVkZW50aWFscyA9IHZhbHVlO1xuICB9O1xufSk7XG5cblJlcXVlc3RCdWlsZGVyLmFkZEhlbHBlcignd2l0aFJldml2ZXInLCBmdW5jdGlvbihyZXZpdmVyKXtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKXtcbiAgICBtZXNzYWdlLnJldml2ZXIgPSByZXZpdmVyO1xuICB9O1xufSk7XG5cblJlcXVlc3RCdWlsZGVyLmFkZEhlbHBlcignd2l0aFJlcGxhY2VyJywgZnVuY3Rpb24ocmVwbGFjZXIpe1xuICByZXR1cm4gZnVuY3Rpb24oY2xpZW50LCBwcm9jZXNzb3IsIG1lc3NhZ2Upe1xuICAgIG1lc3NhZ2UucmVwbGFjZXIgPSByZXBsYWNlcjtcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ3dpdGhQcm9ncmVzc0NhbGxiYWNrJywgZnVuY3Rpb24ocHJvZ3Jlc3NDYWxsYmFjayl7XG4gIHJldHVybiBmdW5jdGlvbihjbGllbnQsIHByb2Nlc3NvciwgbWVzc2FnZSl7XG4gICAgbWVzc2FnZS5wcm9ncmVzc0NhbGxiYWNrID0gcHJvZ3Jlc3NDYWxsYmFjaztcbiAgfTtcbn0pO1xuXG5SZXF1ZXN0QnVpbGRlci5hZGRIZWxwZXIoJ3dpdGhDYWxsYmFja1BhcmFtZXRlck5hbWUnLCBmdW5jdGlvbihjYWxsYmFja1BhcmFtZXRlck5hbWUpe1xuICByZXR1cm4gZnVuY3Rpb24oY2xpZW50LCBwcm9jZXNzb3IsIG1lc3NhZ2Upe1xuICAgIG1lc3NhZ2UuY2FsbGJhY2tQYXJhbWV0ZXJOYW1lID0gY2FsbGJhY2tQYXJhbWV0ZXJOYW1lO1xuICB9O1xufSk7XG5cblJlcXVlc3RCdWlsZGVyLmFkZEhlbHBlcignd2l0aEludGVyY2VwdG9yJywgZnVuY3Rpb24oaW50ZXJjZXB0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNsaWVudCwgcHJvY2Vzc29yLCBtZXNzYWdlKSB7XG4gICAgLy8gTk9URTogSW50ZXJjZXB0b3JzIGFyZSBzdG9yZWQgaW4gcmV2ZXJzZSBvcmRlci4gSW5uZXIgaW50ZXJjZXB0b3JzIGJlZm9yZSBvdXRlciBpbnRlcmNlcHRvcnMuXG4gICAgLy8gVGhpcyByZXZlcnNhbCBpcyBuZWVkZWQgc28gdGhhdCB3ZSBjYW4gYnVpbGQgdXAgdGhlIGludGVyY2VwdGlvbiBjaGFpbiBhcm91bmQgdGhlXG4gICAgLy8gc2VydmVyIHJlcXVlc3QuXG4gICAgbWVzc2FnZS5pbnRlcmNlcHRvcnMgPSBtZXNzYWdlLmludGVyY2VwdG9ycyB8fCBbXTtcbiAgICBtZXNzYWdlLmludGVyY2VwdG9ycy51bnNoaWZ0KGludGVyY2VwdG9yKTtcbiAgfTtcbn0pO1xuIl19 |