genassist-chat-react 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ChatMessage.d.ts +6 -0
- package/dist/components/ChatMessage.js +137 -3
- package/dist/components/GenAgentChat.js +75 -47
- package/dist/hooks/useChat.d.ts +4 -2
- package/dist/hooks/useChat.js +117 -33
- package/dist/services/chatService.d.ts +5 -2
- package/dist/services/chatService.js +44 -5
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +1 -1
- package/package.json +1 -1
- package/assets/chat-logo.png +0 -0
package/dist/hooks/useChat.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
13
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
14
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -58,31 +69,48 @@ export var useChat = function (_a) {
|
|
|
58
69
|
}
|
|
59
70
|
}), messages = _b[0], setMessages = _b[1];
|
|
60
71
|
var _c = useState(false), isLoading = _c[0], setIsLoading = _c[1];
|
|
61
|
-
var _d = useState(
|
|
72
|
+
var _d = useState([]), preloadedAttachments = _d[0], setPreloadedAttachments = _d[1];
|
|
73
|
+
var _e = useState('disconnected'), connectionState = _e[0], setConnectionState = _e[1];
|
|
74
|
+
var _f = useState(false), isAgentTyping = _f[0], setIsAgentTyping = _f[1];
|
|
62
75
|
var chatServiceRef = useRef(null);
|
|
63
|
-
var
|
|
64
|
-
var
|
|
65
|
-
var
|
|
66
|
-
var
|
|
76
|
+
var _g = useState(null), conversationId = _g[0], setConversationId = _g[1];
|
|
77
|
+
var _h = useState([]), possibleQueries = _h[0], setPossibleQueries = _h[1];
|
|
78
|
+
var _j = useState(false), isTakenOver = _j[0], setIsTakenOver = _j[1];
|
|
79
|
+
var _k = useState(false), isFinalized = _k[0], setIsFinalized = _k[1];
|
|
67
80
|
// Initialize chat service
|
|
68
81
|
useEffect(function () {
|
|
69
82
|
chatServiceRef.current = new ChatService(baseUrl, apiKey, metadata);
|
|
70
83
|
chatServiceRef.current.setMessageHandler(function (message) {
|
|
71
|
-
|
|
84
|
+
var normalizedMessage = __assign(__assign({}, message), { create_time: (!message.create_time || isNaN(message.create_time))
|
|
85
|
+
? Math.floor(Date.now() / 1000)
|
|
86
|
+
: message.create_time });
|
|
87
|
+
setMessages(function (prevMessages) { return __spreadArray(__spreadArray([], prevMessages, true), [normalizedMessage], false); });
|
|
88
|
+
// Stop typing animation when agent or system message arrives
|
|
89
|
+
if (normalizedMessage.speaker === 'agent' || normalizedMessage.speaker === 'special') {
|
|
90
|
+
setIsAgentTyping(false);
|
|
91
|
+
}
|
|
72
92
|
});
|
|
73
93
|
chatServiceRef.current.setTakeoverHandler(function () {
|
|
74
94
|
setIsTakenOver(true);
|
|
95
|
+
setIsAgentTyping(false);
|
|
75
96
|
if (onTakeover) {
|
|
76
97
|
onTakeover();
|
|
77
98
|
}
|
|
78
99
|
});
|
|
79
100
|
chatServiceRef.current.setFinalizedHandler(function () {
|
|
80
101
|
setIsFinalized(true);
|
|
102
|
+
setIsAgentTyping(false);
|
|
81
103
|
if (onFinalize) {
|
|
82
104
|
onFinalize();
|
|
83
105
|
}
|
|
84
106
|
});
|
|
85
|
-
|
|
107
|
+
// Clear typing animation if agent is not connected
|
|
108
|
+
chatServiceRef.current.setConnectionStateHandler(function (state) {
|
|
109
|
+
setConnectionState(state);
|
|
110
|
+
if (state !== 'connected') {
|
|
111
|
+
setIsAgentTyping(false);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
86
114
|
// Check for a saved conversation and connect to it
|
|
87
115
|
var convId = chatServiceRef.current.getConversationId();
|
|
88
116
|
if (convId) {
|
|
@@ -124,6 +152,7 @@ export var useChat = function (_a) {
|
|
|
124
152
|
setPossibleQueries([]);
|
|
125
153
|
localStorage.removeItem('chatMessages');
|
|
126
154
|
setIsFinalized(false);
|
|
155
|
+
setIsAgentTyping(false);
|
|
127
156
|
_a.label = 1;
|
|
128
157
|
case 1:
|
|
129
158
|
_a.trys.push([1, 3, 4, 5]);
|
|
@@ -145,6 +174,7 @@ export var useChat = function (_a) {
|
|
|
145
174
|
case 3:
|
|
146
175
|
error_1 = _a.sent();
|
|
147
176
|
setConnectionState('disconnected');
|
|
177
|
+
setIsAgentTyping(false);
|
|
148
178
|
if (onError && error_1 instanceof Error) {
|
|
149
179
|
onError(error_1);
|
|
150
180
|
}
|
|
@@ -159,41 +189,91 @@ export var useChat = function (_a) {
|
|
|
159
189
|
}
|
|
160
190
|
});
|
|
161
191
|
}); }, [onError]);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
var error_2;
|
|
192
|
+
var uploadFile = useCallback(function (file) { return __awaiter(void 0, void 0, void 0, function () {
|
|
193
|
+
var fileUrl, attachment_1, error_2;
|
|
165
194
|
return __generator(this, function (_a) {
|
|
166
195
|
switch (_a.label) {
|
|
167
196
|
case 0:
|
|
168
|
-
if (!chatServiceRef.current) {
|
|
169
|
-
|
|
197
|
+
if (!chatServiceRef.current || !chatServiceRef.current.getConversationId()) {
|
|
198
|
+
console.error('Cannot upload file, conversation not ready');
|
|
199
|
+
return [2 /*return*/, null];
|
|
170
200
|
}
|
|
171
201
|
_a.label = 1;
|
|
172
202
|
case 1:
|
|
173
|
-
_a.trys.push([1, 3,
|
|
174
|
-
|
|
175
|
-
return [4 /*yield*/, chatServiceRef.current.sendMessage(text)];
|
|
203
|
+
_a.trys.push([1, 3, , 4]);
|
|
204
|
+
return [4 /*yield*/, chatServiceRef.current.uploadFile(chatServiceRef.current.getConversationId(), file)];
|
|
176
205
|
case 2:
|
|
177
|
-
_a.sent();
|
|
178
|
-
|
|
206
|
+
fileUrl = (_a.sent()).fileUrl;
|
|
207
|
+
attachment_1 = {
|
|
208
|
+
name: file.name,
|
|
209
|
+
type: file.type,
|
|
210
|
+
size: file.size,
|
|
211
|
+
url: fileUrl,
|
|
212
|
+
};
|
|
213
|
+
setPreloadedAttachments(function (prev) { return __spreadArray(__spreadArray([], prev, true), [attachment_1], false); });
|
|
214
|
+
return [2 /*return*/, attachment_1];
|
|
179
215
|
case 3:
|
|
180
216
|
error_2 = _a.sent();
|
|
181
|
-
|
|
217
|
+
console.error('File upload failed:', error_2);
|
|
218
|
+
if (onError) {
|
|
182
219
|
onError(error_2);
|
|
183
220
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
return [3 /*break*/, 5];
|
|
188
|
-
case 4:
|
|
189
|
-
setIsLoading(false);
|
|
190
|
-
return [7 /*endfinally*/];
|
|
191
|
-
case 5: return [2 /*return*/];
|
|
221
|
+
return [2 /*return*/, null];
|
|
222
|
+
case 4: return [2 /*return*/];
|
|
192
223
|
}
|
|
193
224
|
});
|
|
194
225
|
}); }, [onError]);
|
|
226
|
+
// Send message
|
|
227
|
+
var sendMessage = useCallback(function (text_1) {
|
|
228
|
+
var args_1 = [];
|
|
229
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
230
|
+
args_1[_i - 1] = arguments[_i];
|
|
231
|
+
}
|
|
232
|
+
return __awaiter(void 0, __spreadArray([text_1], args_1, true), void 0, function (text, files) {
|
|
233
|
+
var newAttachments, uploadedFiles, error_3;
|
|
234
|
+
if (files === void 0) { files = []; }
|
|
235
|
+
return __generator(this, function (_a) {
|
|
236
|
+
switch (_a.label) {
|
|
237
|
+
case 0:
|
|
238
|
+
if (!chatServiceRef.current) {
|
|
239
|
+
throw new Error('Chat service not initialized');
|
|
240
|
+
}
|
|
241
|
+
_a.label = 1;
|
|
242
|
+
case 1:
|
|
243
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
244
|
+
setIsLoading(true);
|
|
245
|
+
newAttachments = [];
|
|
246
|
+
if (files.length > 0) {
|
|
247
|
+
uploadedFiles = files.map(function (f) { return preloadedAttachments.find(function (pa) { return pa.name === f.name && pa.size === f.size; }); }).filter(Boolean);
|
|
248
|
+
newAttachments.push.apply(newAttachments, uploadedFiles);
|
|
249
|
+
}
|
|
250
|
+
// Start typing immediately when user sends
|
|
251
|
+
setIsAgentTyping(true);
|
|
252
|
+
return [4 /*yield*/, chatServiceRef.current.sendMessage(text, newAttachments)];
|
|
253
|
+
case 2:
|
|
254
|
+
_a.sent();
|
|
255
|
+
setPreloadedAttachments([]);
|
|
256
|
+
return [3 /*break*/, 5];
|
|
257
|
+
case 3:
|
|
258
|
+
error_3 = _a.sent();
|
|
259
|
+
setIsAgentTyping(false);
|
|
260
|
+
if (onError && error_3 instanceof Error) {
|
|
261
|
+
onError(error_3);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
console.error('Failed to send message:', error_3);
|
|
265
|
+
}
|
|
266
|
+
return [3 /*break*/, 5];
|
|
267
|
+
case 4:
|
|
268
|
+
setIsLoading(false);
|
|
269
|
+
return [7 /*endfinally*/];
|
|
270
|
+
case 5: return [2 /*return*/];
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
}, [onError, preloadedAttachments]);
|
|
195
275
|
var startConversation = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
196
|
-
var convId, queries,
|
|
276
|
+
var convId, queries, error_4;
|
|
197
277
|
return __generator(this, function (_a) {
|
|
198
278
|
switch (_a.label) {
|
|
199
279
|
case 0:
|
|
@@ -210,6 +290,7 @@ export var useChat = function (_a) {
|
|
|
210
290
|
setPossibleQueries([]);
|
|
211
291
|
localStorage.removeItem('chatMessages');
|
|
212
292
|
setIsFinalized(false);
|
|
293
|
+
setIsAgentTyping(false);
|
|
213
294
|
chatServiceRef.current.resetConversation();
|
|
214
295
|
return [4 /*yield*/, chatServiceRef.current.startConversation()];
|
|
215
296
|
case 2:
|
|
@@ -224,13 +305,14 @@ export var useChat = function (_a) {
|
|
|
224
305
|
}
|
|
225
306
|
return [3 /*break*/, 5];
|
|
226
307
|
case 3:
|
|
227
|
-
|
|
308
|
+
error_4 = _a.sent();
|
|
228
309
|
setConnectionState('disconnected');
|
|
229
|
-
|
|
230
|
-
|
|
310
|
+
setIsAgentTyping(false);
|
|
311
|
+
if (onError && error_4 instanceof Error) {
|
|
312
|
+
onError(error_4);
|
|
231
313
|
}
|
|
232
314
|
else {
|
|
233
|
-
console.error('Failed to start conversation:',
|
|
315
|
+
console.error('Failed to start conversation:', error_4);
|
|
234
316
|
}
|
|
235
317
|
return [3 /*break*/, 5];
|
|
236
318
|
case 4:
|
|
@@ -244,13 +326,15 @@ export var useChat = function (_a) {
|
|
|
244
326
|
messages: messages,
|
|
245
327
|
isLoading: isLoading,
|
|
246
328
|
sendMessage: sendMessage,
|
|
329
|
+
uploadFile: uploadFile,
|
|
247
330
|
resetConversation: resetConversation,
|
|
248
331
|
startConversation: startConversation,
|
|
249
332
|
connectionState: connectionState,
|
|
250
333
|
conversationId: conversationId,
|
|
251
334
|
possibleQueries: possibleQueries,
|
|
252
335
|
isTakenOver: isTakenOver,
|
|
253
|
-
isFinalized: isFinalized
|
|
336
|
+
isFinalized: isFinalized,
|
|
337
|
+
isAgentTyping: isAgentTyping,
|
|
254
338
|
};
|
|
255
339
|
};
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQ2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VDaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBWXRELE1BQU0sQ0FBQyxJQUFNLE9BQU8sR0FBRyxVQUFDLEVBQTRFO1FBQTFFLE9BQU8sYUFBQSxFQUFFLE1BQU0sWUFBQSxFQUFFLFFBQVEsY0FBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLFVBQVUsZ0JBQUEsRUFBRSxVQUFVLGdCQUFBO0lBQzVFLElBQUEsS0FBMEIsUUFBUSxDQUFnQjtRQUN0RCxJQUFJLENBQUM7WUFDSCxJQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVELE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUMsQ0FBQyxFQVJLLFFBQVEsUUFBQSxFQUFFLFdBQVcsUUFRMUIsQ0FBQztJQUNHLElBQUEsS0FBNEIsUUFBUSxDQUFVLEtBQUssQ0FBQyxFQUFuRCxTQUFTLFFBQUEsRUFBRSxZQUFZLFFBQTRCLENBQUM7SUFDckQsSUFBQSxLQUF3QyxRQUFRLENBQThDLGNBQWMsQ0FBQyxFQUE1RyxlQUFlLFFBQUEsRUFBRSxrQkFBa0Is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bGJhY2ssIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoYXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY2hhdFNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlQ2hhdFByb3BzIHtcbiAgYmFzZVVybDogc3RyaW5nO1xuICBhcGlLZXk6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgb25UYWtlb3Zlcj86ICgpID0+IHZvaWQ7XG4gIG9uRmluYWxpemU/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdCA9ICh7IGJhc2VVcmwsIGFwaUtleSwgbWV0YWRhdGEsIG9uRXJyb3IsIG9uVGFrZW92ZXIsIG9uRmluYWxpemUgfTogVXNlQ2hhdFByb3BzKSA9PiB7XG4gIGNvbnN0IFttZXNzYWdlcywgc2V0TWVzc2FnZXNdID0gdXNlU3RhdGU8Q2hhdE1lc3NhZ2VbXT4oKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdG9yZWRNZXNzYWdlcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjaGF0TWVzc2FnZXMnKTtcbiAgICAgIHJldHVybiBzdG9yZWRNZXNzYWdlcyA/IEpTT04ucGFyc2Uoc3RvcmVkTWVzc2FnZXMpIDogW107XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgbWVzc2FnZXMgZnJvbSBsb2NhbFN0b3JhZ2U6JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtjb25uZWN0aW9uU3RhdGUsIHNldENvbm5lY3Rpb25TdGF0ZV0gPSB1c2VTdGF0ZTwnY29ubmVjdGluZycgfCAnY29ubmVjdGVkJyB8ICdkaXNjb25uZWN0ZWQnPignZGlzY29ubmVjdGVkJyk7XG4gIGNvbnN0IGNoYXRTZXJ2aWNlUmVmID0gdXNlUmVmPENoYXRTZXJ2aWNlIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtjb252ZXJzYXRpb25JZCwgc2V0Q29udmVyc2F0aW9uSWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtwb3NzaWJsZVF1ZXJpZXMsIHNldFBvc3NpYmxlUXVlcmllc10gPSB1c2VTdGF0ZTxzdHJpbmdbXT4oW10pO1xuICBjb25zdCBbaXNUYWtlbk92ZXIsIHNldElzVGFrZW5PdmVyXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2lzRmluYWxpemVkLCBzZXRJc0ZpbmFsaXplZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG5cbiAgLy8gSW5pdGlhbGl6ZSBjaGF0IHNlcnZpY2VcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50ID0gbmV3IENoYXRTZXJ2aWNlKGJhc2VVcmwsIGFwaUtleSwgbWV0YWRhdGEpO1xuICAgIFxuICAgIGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuc2V0TWVzc2FnZUhhbmRsZXIoKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiB7XG4gICAgICBzZXRNZXNzYWdlcyhwcmV2TWVzc2FnZXMgPT4gWy4uLnByZXZNZXNzYWdlcywgbWVzc2FnZV0pO1xuICAgIH0pO1xuXG4gICAgY2hhdFNlcnZpY2VSZWYuY3VycmVudC5zZXRUYWtlb3ZlckhhbmRsZXIoKCkgPT4ge1xuICAgICAgc2V0SXNUYWtlbk92ZXIodHJ1ZSk7XG4gICAgICBpZiAob25UYWtlb3Zlcikge1xuICAgICAgICBvblRha2VvdmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LnNldEZpbmFsaXplZEhhbmRsZXIoKCkgPT4ge1xuICAgICAgc2V0SXNGaW5hbGl6ZWQodHJ1ZSk7XG4gICAgICBpZiAob25GaW5hbGl6ZSkge1xuICAgICAgICBvbkZpbmFsaXplKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LnNldENvbm5lY3Rpb25TdGF0ZUhhbmRsZXIoc2V0Q29ubmVjdGlvblN0YXRlKTtcblxuICAgIC8vIENoZWNrIGZvciBhIHNhdmVkIGNvbnZlcnNhdGlvbiBhbmQgY29ubmVjdCB0byBpdFxuICAgIGNvbnN0IGNvbnZJZCA9IGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuZ2V0Q29udmVyc2F0aW9uSWQoKTtcbiAgICBpZiAoY29udklkKSB7XG4gICAgICAgIHNldENvbnZlcnNhdGlvbklkKGNvbnZJZCk7XG4gICAgICAgIGlmIChjaGF0U2VydmljZVJlZi5jdXJyZW50LmlzQ29udmVyc2F0aW9uRmluYWxpemVkKCkpIHtcbiAgICAgICAgICBzZXRJc0ZpbmFsaXplZCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LmNvbm5lY3RXZWJTb2NrZXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIENsZWFudXBcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY2hhdFNlcnZpY2VSZWYuY3VycmVudC5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2Jhc2VVcmwsIGFwaUtleSwgbWV0YWRhdGEsIG9uRXJyb3IsIG9uVGFrZW92ZXIsIG9uRmluYWxpemVdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hhdE1lc3NhZ2VzJywgSlNPTi5zdHJpbmdpZnkobWVzc2FnZXMpKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIG1lc3NhZ2VzIHRvIGxvY2FsU3RvcmFnZTonLCBlcnJvcik7XG4gICAgfVxuICB9LCBbbWVzc2FnZXNdKTtcblxuICAvLyBSZXNldCBjb252ZXJzYXRpb25cbiAgY29uc3QgcmVzZXRDb252ZXJzYXRpb24gPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKCFjaGF0U2VydmljZVJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIHNldENvbm5lY3Rpb25TdGF0ZSgnY29ubmVjdGluZycpO1xuICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICBzZXRNZXNzYWdlcyhbXSk7XG4gICAgc2V0UG9zc2libGVRdWVyaWVzKFtdKTtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2hhdE1lc3NhZ2VzJyk7XG4gICAgc2V0SXNGaW5hbGl6ZWQoZmFsc2UpO1xuICAgIFxuICAgIHRyeSB7XG4gICAgICAvLyBSZXNldCB0aGUgY29udmVyc2F0aW9uIGluIHRoZSBjaGF0IHNlcnZpY2VcbiAgICAgIGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQucmVzZXRDb252ZXJzYXRpb24oKTtcbiAgICAgIFxuICAgICAgLy8gU3RhcnQgYSBuZXcgY29udmVyc2F0aW9uXG4gICAgICBjb25zdCBjb252SWQgPSBhd2FpdCBjaGF0U2VydmljZVJlZi5jdXJyZW50LnN0YXJ0Q29udmVyc2F0aW9uKCk7XG4gICAgICBzZXRDb252ZXJzYXRpb25JZChjb252SWQpO1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdjb25uZWN0ZWQnKTtcblxuICAgICAgLy8gR2V0IHBvc3NpYmxlIHF1ZXJpZXMgZnJvbSBBUEkgcmVzcG9uc2VcbiAgICAgIGlmIChjaGF0U2VydmljZVJlZi5jdXJyZW50LmdldFBvc3NpYmxlUXVlcmllcykge1xuICAgICAgICBjb25zdCBxdWVyaWVzID0gY2hhdFNlcnZpY2VSZWYuY3VycmVudC5nZXRQb3NzaWJsZVF1ZXJpZXMoKTtcbiAgICAgICAgaWYgKHF1ZXJpZXMgJiYgcXVlcmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgc2V0UG9zc2libGVRdWVyaWVzKHF1ZXJpZXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHNldENvbm5lY3Rpb25TdGF0ZSgnZGlzY29ubmVjdGVkJyk7XG4gICAgICBpZiAob25FcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIG9uRXJyb3IoZXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJlc2V0IGNvbnZlcnNhdGlvbjonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9LCBbb25FcnJvcl0pO1xuXG4gIC8vIFNlbmQgbWVzc2FnZVxuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKGFzeW5jICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIWNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2hhdCBzZXJ2aWNlIG5vdCBpbml0aWFsaXplZCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICBhd2FpdCBjaGF0U2VydmljZVJlZi5jdXJyZW50LnNlbmRNZXNzYWdlKHRleHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAob25FcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIG9uRXJyb3IoZXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNlbmQgbWVzc2FnZTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9LCBbb25FcnJvcl0pO1xuXG4gIGNvbnN0IHN0YXJ0Q29udmVyc2F0aW9uID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmICghY2hhdFNlcnZpY2VSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdjb25uZWN0aW5nJyk7XG4gICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICBcbiAgICAgIC8vIFJlc2V0IHN0YXRlIGZvciBuZXcgY29udmVyc2F0aW9uXG4gICAgICBzZXRNZXNzYWdlcyhbXSk7XG4gICAgICBzZXRQb3NzaWJsZVF1ZXJpZXMoW10pO1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2NoYXRNZXNzYWdlcycpO1xuICAgICAgc2V0SXNGaW5hbGl6ZWQoZmFsc2UpO1xuICAgICAgY2hhdFNlcnZpY2VSZWYuY3VycmVudC5yZXNldENvbnZlcnNhdGlvbigpO1xuXG4gICAgICBjb25zdCBjb252SWQgPSBhd2FpdCBjaGF0U2VydmljZVJlZi5jdXJyZW50LnN0YXJ0Q29udmVyc2F0aW9uKCk7XG4gICAgICBzZXRDb252ZXJzYXRpb25JZChjb252SWQpO1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdjb25uZWN0ZWQnKTtcblxuICAgICAgaWYgKGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuZ2V0UG9zc2libGVRdWVyaWVzKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJpZXMgPSBjaGF0U2VydmljZVJlZi5jdXJyZW50LmdldFBvc3NpYmxlUXVlcmllcygpO1xuICAgICAgICBpZiAocXVlcmllcyAmJiBxdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzZXRQb3NzaWJsZVF1ZXJpZXMocXVlcmllcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdkaXNjb25uZWN0ZWQnKTtcbiAgICAgIGlmIChvbkVycm9yICYmIGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgY29udmVyc2F0aW9uOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICB9XG4gIH0sIFtvbkVycm9yXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlcyxcbiAgICBpc0xvYWRpbmcsXG4gICAgc2VuZE1lc3NhZ2UsXG4gICAgcmVzZXRDb252ZXJzYXRpb24sXG4gICAgc3RhcnRDb252ZXJzYXRpb24sXG4gICAgY29ubmVjdGlvblN0YXRlLFxuICAgIGNvbnZlcnNhdGlvbklkLFxuICAgIHBvc3NpYmxlUXVlcmllcyxcbiAgICBpc1Rha2VuT3ZlcixcbiAgICBpc0ZpbmFsaXplZFxuICB9O1xufTsgIl19
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQ2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VDaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFZdEQsTUFBTSxDQUFDLElBQU0sT0FBTyxHQUFHLFVBQUMsRUFBNEU7UUFBMUUsT0FBTyxhQUFBLEVBQUUsTUFBTSxZQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsVUFBVSxnQkFBQSxFQUFFLFVBQVUsZ0JBQUE7SUFDNUUsSUFBQSxLQUEwQixRQUFRLENBQWdCO1FBQ3RELElBQUksQ0FBQztZQUNILElBQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUQsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQyxDQUFDLEVBUkssUUFBUSxRQUFBLEVBQUUsV0FBVyxRQVExQixDQUFDO0lBQ0csSUFBQSxLQUE0QixRQUFRLENBQVUsS0FBSyxDQUFDLEVBQW5ELFNBQVMsUUFBQSxFQUFFLFlBQVksUUFBNEIsQ0FBQztJQUNyRCxJQUFBLEtBQWtELFFBQVEsQ0FBZSxFQUFFLENBQUMsRUFBM0Usb0JBQW9CLFFBQUEs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TixPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLE9BQUssQ0FBQyxDQUFDO29CQUN4RCxDQUFDOzs7b0JBRUQsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDOzs7OztTQUV2QixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVkLE9BQU87UUFDTCxRQUFRLFVBQUE7UUFDUixTQUFTLFdBQUE7UUFDVCxXQUFXLGFBQUE7UUFDWCxVQUFVLFlBQUE7UUFDVixpQkFBaUIsbUJBQUE7UUFDakIsaUJBQWlCLG1CQUFBO1FBQ2pCLGVBQWUsaUJBQUE7UUFDZixjQUFjLGdCQUFBO1FBQ2QsZUFBZSxpQkFBQTtRQUNmLFdBQVcsYUFBQTtRQUNYLFdBQVcsYUFBQTtRQUNYLGFBQWEsZUFBQTtLQUNkLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQ2hhdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jaGF0U2VydmljZSc7XG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQXR0YWNobWVudCB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBVc2VDaGF0UHJvcHMge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xuICBvblRha2VvdmVyPzogKCkgPT4gdm9pZDtcbiAgb25GaW5hbGl6ZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCB1c2VDaGF0ID0gKHsgYmFzZVVybCwgYXBpS2V5LCBtZXRhZGF0YSwgb25FcnJvciwgb25UYWtlb3Zlciwgb25GaW5hbGl6ZSB9OiBVc2VDaGF0UHJvcHMpID0+IHtcbiAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZTxDaGF0TWVzc2FnZVtdPigoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0b3JlZE1lc3NhZ2VzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NoYXRNZXNzYWdlcycpO1xuICAgICAgcmV0dXJuIHN0b3JlZE1lc3NhZ2VzID8gSlNPTi5wYXJzZShzdG9yZWRNZXNzYWdlcykgOiBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBtZXNzYWdlcyBmcm9tIGxvY2FsU3RvcmFnZTonLCBlcnJvcik7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9KTtcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3ByZWxvYWRlZEF0dGFjaG1lbnRzLCBzZXRQcmVsb2FkZWRBdHRhY2htZW50c10gPSB1c2VTdGF0ZTxBdHRhY2htZW50W10+KFtdKTtcbiAgY29uc3QgW2Nvbm5lY3Rpb25TdGF0ZSwgc2V0Q29ubmVjdGlvblN0YXRlXSA9IHVzZVN0YXRlPCdjb25uZWN0aW5nJyB8ICdjb25uZWN0ZWQnIHwgJ2Rpc2Nvbm5lY3RlZCc+KCdkaXNjb25uZWN0ZWQnKTtcbiAgY29uc3QgW2lzQWdlbnRUeXBpbmcsIHNldElzQWdlbnRUeXBpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBjaGF0U2VydmljZVJlZiA9IHVzZVJlZjxDaGF0U2VydmljZSB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbY29udmVyc2F0aW9uSWQsIHNldENvbnZlcnNhdGlvbklkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbcG9zc2libGVRdWVyaWVzLCBzZXRQb3NzaWJsZVF1ZXJpZXNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKTtcbiAgY29uc3QgW2lzVGFrZW5PdmVyLCBzZXRJc1Rha2VuT3Zlcl0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtpc0ZpbmFsaXplZCwgc2V0SXNGaW5hbGl6ZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8vIEluaXRpYWxpemUgY2hhdCBzZXJ2aWNlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY2hhdFNlcnZpY2VSZWYuY3VycmVudCA9IG5ldyBDaGF0U2VydmljZShiYXNlVXJsLCBhcGlLZXksIG1ldGFkYXRhKTtcbiAgICBcbiAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LnNldE1lc3NhZ2VIYW5kbGVyKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4ge1xuICAgICAgY29uc3Qgbm9ybWFsaXplZE1lc3NhZ2U6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICAuLi5tZXNzYWdlLFxuICAgICAgICBjcmVhdGVfdGltZTogKCFtZXNzYWdlLmNyZWF0ZV90aW1lIHx8IGlzTmFOKG1lc3NhZ2UuY3JlYXRlX3RpbWUpKVxuICAgICAgICAgID8gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMClcbiAgICAgICAgICA6IG1lc3NhZ2UuY3JlYXRlX3RpbWUsXG4gICAgICB9O1xuXG4gICAgICBzZXRNZXNzYWdlcyhwcmV2TWVzc2FnZXMgPT4gWy4uLnByZXZNZXNzYWdlcywgbm9ybWFsaXplZE1lc3NhZ2VdKTtcbiAgICAgIC8vIFN0b3AgdHlwaW5nIGFuaW1hdGlvbiB3aGVuIGFnZW50IG9yIHN5c3RlbSBtZXNzYWdlIGFycml2ZXNcbiAgICAgIGlmIChub3JtYWxpemVkTWVzc2FnZS5zcGVha2VyID09PSAnYWdlbnQnIHx8IG5vcm1hbGl6ZWRNZXNzYWdlLnNwZWFrZXIgPT09ICdzcGVjaWFsJykge1xuICAgICAgICBzZXRJc0FnZW50VHlwaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuc2V0VGFrZW92ZXJIYW5kbGVyKCgpID0+IHtcbiAgICAgIHNldElzVGFrZW5PdmVyKHRydWUpO1xuICAgICAgc2V0SXNBZ2VudFR5cGluZyhmYWxzZSk7XG4gICAgICBpZiAob25UYWtlb3Zlcikge1xuICAgICAgICBvblRha2VvdmVyKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LnNldEZpbmFsaXplZEhhbmRsZXIoKCkgPT4ge1xuICAgICAgc2V0SXNGaW5hbGl6ZWQodHJ1ZSk7XG4gICAgICBzZXRJc0FnZW50VHlwaW5nKGZhbHNlKTtcbiAgICAgIGlmIChvbkZpbmFsaXplKSB7XG4gICAgICAgIG9uRmluYWxpemUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIENsZWFyIHR5cGluZyBhbmltYXRpb24gaWYgYWdlbnQgaXMgbm90IGNvbm5lY3RlZFxuICAgIGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuc2V0Q29ubmVjdGlvblN0YXRlSGFuZGxlcigoc3RhdGUpID0+IHtcbiAgICAgIHNldENvbm5lY3Rpb25TdGF0ZShzdGF0ZSk7XG4gICAgICBpZiAoc3RhdGUgIT09ICdjb25uZWN0ZWQnKSB7XG4gICAgICAgIHNldElzQWdlbnRUeXBpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gQ2hlY2sgZm9yIGEgc2F2ZWQgY29udmVyc2F0aW9uIGFuZCBjb25uZWN0IHRvIGl0XG4gICAgY29uc3QgY29udklkID0gY2hhdFNlcnZpY2VSZWYuY3VycmVudC5nZXRDb252ZXJzYXRpb25JZCgpO1xuICAgIGlmIChjb252SWQpIHtcbiAgICAgICAgc2V0Q29udmVyc2F0aW9uSWQoY29udklkKTtcbiAgICAgICAgaWYgKGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuaXNDb252ZXJzYXRpb25GaW5hbGl6ZWQoKSkge1xuICAgICAgICAgIHNldElzRmluYWxpemVkKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuY29ubmVjdFdlYlNvY2tldCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xlYW51cFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoY2hhdFNlcnZpY2VSZWYuY3VycmVudCkge1xuICAgICAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbYmFzZVVybCwgYXBpS2V5LCBtZXRhZGF0YSwgb25FcnJvciwgb25UYWtlb3Zlciwgb25GaW5hbGl6ZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjaGF0TWVzc2FnZXMnLCBKU09OLnN0cmluZ2lmeShtZXNzYWdlcykpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgbWVzc2FnZXMgdG8gbG9jYWxTdG9yYWdlOicsIGVycm9yKTtcbiAgICB9XG4gIH0sIFttZXNzYWdlc10pO1xuXG4gIC8vIFJlc2V0IGNvbnZlcnNhdGlvblxuICBjb25zdCByZXNldENvbnZlcnNhdGlvbiA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXG4gICAgc2V0Q29ubmVjdGlvblN0YXRlKCdjb25uZWN0aW5nJyk7XG4gICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgIHNldE1lc3NhZ2VzKFtdKTtcbiAgICBzZXRQb3NzaWJsZVF1ZXJpZXMoW10pO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjaGF0TWVzc2FnZXMnKTtcbiAgICBzZXRJc0ZpbmFsaXplZChmYWxzZSk7XG4gICAgc2V0SXNBZ2VudFR5cGluZyhmYWxzZSk7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlc2V0IHRoZSBjb252ZXJzYXRpb24gaW4gdGhlIGNoYXQgc2VydmljZVxuICAgICAgY2hhdFNlcnZpY2VSZWYuY3VycmVudC5yZXNldENvbnZlcnNhdGlvbigpO1xuICAgICAgXG4gICAgICAvLyBTdGFydCBhIG5ldyBjb252ZXJzYXRpb25cbiAgICAgIGNvbnN0IGNvbnZJZCA9IGF3YWl0IGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuc3RhcnRDb252ZXJzYXRpb24oKTtcbiAgICAgIHNldENvbnZlcnNhdGlvbklkKGNvbnZJZCk7XG4gICAgICBzZXRDb25uZWN0aW9uU3RhdGUoJ2Nvbm5lY3RlZCcpO1xuXG4gICAgICAvLyBHZXQgcG9zc2libGUgcXVlcmllcyBmcm9tIEFQSSByZXNwb25zZVxuICAgICAgaWYgKGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuZ2V0UG9zc2libGVRdWVyaWVzKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJpZXMgPSBjaGF0U2VydmljZVJlZi5jdXJyZW50LmdldFBvc3NpYmxlUXVlcmllcygpO1xuICAgICAgICBpZiAocXVlcmllcyAmJiBxdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzZXRQb3NzaWJsZVF1ZXJpZXMocXVlcmllcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdkaXNjb25uZWN0ZWQnKTtcbiAgICAgIHNldElzQWdlbnRUeXBpbmcoZmFsc2UpO1xuICAgICAgaWYgKG9uRXJyb3IgJiYgZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBvbkVycm9yKGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byByZXNldCBjb252ZXJzYXRpb246JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfSwgW29uRXJyb3JdKTtcblxuICBjb25zdCB1cGxvYWRGaWxlID0gdXNlQ2FsbGJhY2soYXN5bmMgKGZpbGU6IEZpbGUpOiBQcm9taXNlPEF0dGFjaG1lbnQgfCBudWxsPiA9PiB7XG4gICAgaWYgKCFjaGF0U2VydmljZVJlZi5jdXJyZW50IHx8ICFjaGF0U2VydmljZVJlZi5jdXJyZW50LmdldENvbnZlcnNhdGlvbklkKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Nhbm5vdCB1cGxvYWQgZmlsZSwgY29udmVyc2F0aW9uIG5vdCByZWFkeScpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZmlsZVVybCB9ID0gYXdhaXQgY2hhdFNlcnZpY2VSZWYuY3VycmVudC51cGxvYWRGaWxlKFxuICAgICAgICBjaGF0U2VydmljZVJlZi5jdXJyZW50LmdldENvbnZlcnNhdGlvbklkKCkgYXMgc3RyaW5nLFxuICAgICAgICBmaWxlXG4gICAgICApO1xuICAgICAgXG4gICAgICBjb25zdCBhdHRhY2htZW50OiBBdHRhY2htZW50ID0ge1xuICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICB1cmw6IGZpbGVVcmwsXG4gICAgICB9O1xuXG4gICAgICBzZXRQcmVsb2FkZWRBdHRhY2htZW50cyhwcmV2ID0+IFsuLi5wcmV2LCBhdHRhY2htZW50XSk7XG4gICAgICByZXR1cm4gYXR0YWNobWVudDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRmlsZSB1cGxvYWQgZmFpbGVkOicsIGVycm9yKTtcbiAgICAgIGlmIChvbkVycm9yKSB7XG4gICAgICAgIG9uRXJyb3IoZXJyb3IgYXMgRXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9LCBbb25FcnJvcl0pO1xuXG4gIC8vIFNlbmQgbWVzc2FnZVxuICBjb25zdCBzZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKGFzeW5jICh0ZXh0OiBzdHJpbmcsIGZpbGVzOiBGaWxlW10gPSBbXSkgPT4ge1xuICAgIGlmICghY2hhdFNlcnZpY2VSZWYuY3VycmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaGF0IHNlcnZpY2Ugbm90IGluaXRpYWxpemVkJyk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcblxuICAgICAgY29uc3QgbmV3QXR0YWNobWVudHM6IEF0dGFjaG1lbnRbXSA9IFtdO1xuICAgICAgXG4gICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCB1cGxvYWRlZEZpbGVzID0gZmlsZXMubWFwKGYgPT4gcHJlbG9hZGVkQXR0YWNobWVudHMuZmluZChwYSA9PiBwYS5uYW1lID09PSBmLm5hbWUgJiYgcGEuc2l6ZSA9PT0gZi5zaXplKSkuZmlsdGVyKEJvb2xlYW4pIGFzIEF0dGFjaG1lbnRbXTtcbiAgICAgICAgbmV3QXR0YWNobWVudHMucHVzaCguLi51cGxvYWRlZEZpbGVzKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RhcnQgdHlwaW5nIGltbWVkaWF0ZWx5IHdoZW4gdXNlciBzZW5kc1xuICAgICAgc2V0SXNBZ2VudFR5cGluZyh0cnVlKTtcbiAgICAgIGF3YWl0IGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuc2VuZE1lc3NhZ2UodGV4dCwgbmV3QXR0YWNobWVudHMpO1xuXG4gICAgICBzZXRQcmVsb2FkZWRBdHRhY2htZW50cyhbXSk7XG5cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0SXNBZ2VudFR5cGluZyhmYWxzZSk7XG4gICAgICBpZiAob25FcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIG9uRXJyb3IoZXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHNlbmQgbWVzc2FnZTonLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgfVxuICB9LCBbb25FcnJvciwgcHJlbG9hZGVkQXR0YWNobWVudHNdKTtcblxuICBjb25zdCBzdGFydENvbnZlcnNhdGlvbiA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHNldENvbm5lY3Rpb25TdGF0ZSgnY29ubmVjdGluZycpO1xuICAgICAgc2V0SXNMb2FkaW5nKHRydWUpO1xuICAgICAgXG4gICAgICAvLyBSZXNldCBzdGF0ZSBmb3IgbmV3IGNvbnZlcnNhdGlvblxuICAgICAgc2V0TWVzc2FnZXMoW10pO1xuICAgICAgc2V0UG9zc2libGVRdWVyaWVzKFtdKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdjaGF0TWVzc2FnZXMnKTtcbiAgICAgIHNldElzRmluYWxpemVkKGZhbHNlKTtcbiAgICAgIHNldElzQWdlbnRUeXBpbmcoZmFsc2UpO1xuICAgICAgY2hhdFNlcnZpY2VSZWYuY3VycmVudC5yZXNldENvbnZlcnNhdGlvbigpO1xuXG4gICAgICBjb25zdCBjb252SWQgPSBhd2FpdCBjaGF0U2VydmljZVJlZi5jdXJyZW50LnN0YXJ0Q29udmVyc2F0aW9uKCk7XG4gICAgICBzZXRDb252ZXJzYXRpb25JZChjb252SWQpO1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdjb25uZWN0ZWQnKTtcblxuICAgICAgaWYgKGNoYXRTZXJ2aWNlUmVmLmN1cnJlbnQuZ2V0UG9zc2libGVRdWVyaWVzKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJpZXMgPSBjaGF0U2VydmljZVJlZi5jdXJyZW50LmdldFBvc3NpYmxlUXVlcmllcygpO1xuICAgICAgICBpZiAocXVlcmllcyAmJiBxdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzZXRQb3NzaWJsZVF1ZXJpZXMocXVlcmllcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgc2V0Q29ubmVjdGlvblN0YXRlKCdkaXNjb25uZWN0ZWQnKTtcbiAgICAgIHNldElzQWdlbnRUeXBpbmcoZmFsc2UpO1xuICAgICAgaWYgKG9uRXJyb3IgJiYgZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICBvbkVycm9yKGVycm9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBjb252ZXJzYXRpb246JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgIH1cbiAgfSwgW29uRXJyb3JdKTtcblxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2VzLFxuICAgIGlzTG9hZGluZyxcbiAgICBzZW5kTWVzc2FnZSxcbiAgICB1cGxvYWRGaWxlLFxuICAgIHJlc2V0Q29udmVyc2F0aW9uLFxuICAgIHN0YXJ0Q29udmVyc2F0aW9uLFxuICAgIGNvbm5lY3Rpb25TdGF0ZSxcbiAgICBjb252ZXJzYXRpb25JZCxcbiAgICBwb3NzaWJsZVF1ZXJpZXMsXG4gICAgaXNUYWtlbk92ZXIsXG4gICAgaXNGaW5hbGl6ZWQsXG4gICAgaXNBZ2VudFR5cGluZyxcbiAgfTtcbn07ICJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChatMessage } from '../types';
|
|
1
|
+
import { ChatMessage, Attachment } from '../types';
|
|
2
2
|
export declare class ChatService {
|
|
3
3
|
private baseUrl;
|
|
4
4
|
private apiKey;
|
|
@@ -41,7 +41,10 @@ export declare class ChatService {
|
|
|
41
41
|
getConversationId(): string | null;
|
|
42
42
|
isConversationFinalized(): boolean;
|
|
43
43
|
startConversation(): Promise<string>;
|
|
44
|
-
sendMessage(message: string): Promise<void>;
|
|
44
|
+
sendMessage(message: string, attachments?: Attachment[]): Promise<void>;
|
|
45
|
+
uploadFile(chatId: string, file: File): Promise<{
|
|
46
|
+
fileUrl: string;
|
|
47
|
+
}>;
|
|
45
48
|
connectWebSocket(): void;
|
|
46
49
|
disconnect(): void;
|
|
47
50
|
private adjustMessageTimestamps;
|
|
@@ -210,7 +210,7 @@ var ChatService = /** @class */ (function () {
|
|
|
210
210
|
});
|
|
211
211
|
});
|
|
212
212
|
};
|
|
213
|
-
ChatService.prototype.sendMessage = function (message) {
|
|
213
|
+
ChatService.prototype.sendMessage = function (message, attachments) {
|
|
214
214
|
return __awaiter(this, void 0, void 0, function () {
|
|
215
215
|
var now, chatMessage, error_2, errorMessage;
|
|
216
216
|
return __generator(this, function (_a) {
|
|
@@ -225,8 +225,12 @@ var ChatService = /** @class */ (function () {
|
|
|
225
225
|
start_time: now - this.conversationCreateTime, // Relative to conversation start
|
|
226
226
|
end_time: (now - this.conversationCreateTime) + 0.01, // Relative to conversation start
|
|
227
227
|
speaker: 'customer',
|
|
228
|
-
text: message
|
|
228
|
+
text: message,
|
|
229
|
+
attachments: attachments,
|
|
229
230
|
};
|
|
231
|
+
if (this.messageHandler) {
|
|
232
|
+
this.messageHandler(chatMessage);
|
|
233
|
+
}
|
|
230
234
|
_a.label = 1;
|
|
231
235
|
case 1:
|
|
232
236
|
_a.trys.push([1, 3, , 4]);
|
|
@@ -266,6 +270,39 @@ var ChatService = /** @class */ (function () {
|
|
|
266
270
|
});
|
|
267
271
|
});
|
|
268
272
|
};
|
|
273
|
+
ChatService.prototype.uploadFile = function (chatId, file) {
|
|
274
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
275
|
+
var formData, response, error_3;
|
|
276
|
+
return __generator(this, function (_a) {
|
|
277
|
+
switch (_a.label) {
|
|
278
|
+
case 0:
|
|
279
|
+
if (!this.conversationId) {
|
|
280
|
+
throw new Error('Conversation not started');
|
|
281
|
+
}
|
|
282
|
+
formData = new FormData();
|
|
283
|
+
formData.append('chat_id', chatId);
|
|
284
|
+
formData.append('file', file);
|
|
285
|
+
_a.label = 1;
|
|
286
|
+
case 1:
|
|
287
|
+
_a.trys.push([1, 3, , 4]);
|
|
288
|
+
return [4 /*yield*/, axios.post("".concat(this.baseUrl, "/api/genagent/knowledge/upload-chat-file"), formData, {
|
|
289
|
+
headers: {
|
|
290
|
+
'x-api-key': this.apiKey,
|
|
291
|
+
'Content-Type': 'multipart/form-data',
|
|
292
|
+
},
|
|
293
|
+
})];
|
|
294
|
+
case 2:
|
|
295
|
+
response = _a.sent();
|
|
296
|
+
return [2 /*return*/, response.data];
|
|
297
|
+
case 3:
|
|
298
|
+
error_3 = _a.sent();
|
|
299
|
+
console.error('Error uploading file:', error_3);
|
|
300
|
+
throw error_3;
|
|
301
|
+
case 4: return [2 /*return*/];
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
};
|
|
269
306
|
ChatService.prototype.connectWebSocket = function () {
|
|
270
307
|
var _this = this;
|
|
271
308
|
if (this.webSocket) {
|
|
@@ -291,12 +328,14 @@ var ChatService = /** @class */ (function () {
|
|
|
291
328
|
if (Array.isArray(data.payload)) {
|
|
292
329
|
var messages = data.payload;
|
|
293
330
|
// Adjust timestamps to be relative to conversation start
|
|
294
|
-
var adjustedMessages = messages.map(function (msg) { return _this.adjustMessageTimestamps(msg); });
|
|
331
|
+
var adjustedMessages = messages.map(function (msg) { return _this.adjustMessageTimestamps(msg); }).filter(function (msg) { return msg.speaker !== 'customer'; });
|
|
295
332
|
adjustedMessages.forEach(_this.messageHandler);
|
|
296
333
|
}
|
|
297
334
|
else {
|
|
298
335
|
var adjustedMessage = _this.adjustMessageTimestamps(data.payload);
|
|
299
|
-
|
|
336
|
+
if (adjustedMessage.speaker !== 'customer') {
|
|
337
|
+
_this.messageHandler(adjustedMessage);
|
|
338
|
+
}
|
|
300
339
|
}
|
|
301
340
|
}
|
|
302
341
|
else if (data.type === 'takeover') {
|
|
@@ -373,4 +412,4 @@ var ChatService = /** @class */ (function () {
|
|
|
373
412
|
return ChatService;
|
|
374
413
|
}());
|
|
375
414
|
export { ChatService };
|
|
376
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvY2hhdFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksSUFBSSxTQUFTLEVBQThCLE1BQU0sV0FBVyxDQUFDO0FBR2xGO0lBZUUscUJBQVksT0FBZSxFQUFFLE1BQWMsRUFBRSxRQUE4QjtRQVhuRSxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFDckMsMkJBQXNCLEdBQWtCLElBQUksQ0FBQyxDQUFDLGdDQUFnQztRQUM5RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixjQUFTLEdBQXFCLElBQUksQ0FBQztRQUNuQyxtQkFBYyxHQUE0QyxJQUFJLENBQUM7UUFDL0Qsb0JBQWUsR0FBd0IsSUFBSSxDQUFDO1FBQzVDLHFCQUFnQixHQUF3QixJQUFJLENBQUM7UUFDN0MsMkJBQXNCLEdBQTBFLElBQUksQ0FBQztRQUNyRyxlQUFVLEdBQUcsd0JBQXdCLENBQUM7UUFDdEMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFHckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCx1Q0FBaUIsR0FBakIsVUFBa0IsT0FBdUM7UUFDdkQsSUFBSSxD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QUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzRCxJQUFJLEtBQUksQ0FBQyxzQkFBc0I7Z0JBQUUsS0FBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxnQ0FBVSxHQUFWO1FBQ0UsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELDRFQUE0RTtJQUNwRSw2Q0FBdUIsR0FBL0IsVUFBZ0MsT0FBb0I7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCw2QkFDSyxPQUFPLEtBQ1YsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUM1RCxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLElBQ3hEO0lBQ0osQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQXJWRCxJQXFWQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyB3M2N3ZWJzb2NrZXQgYXMgV2ViU29ja2V0LCBJTWVzc2FnZUV2ZW50LCBJQ2xvc2VFdmVudCB9IGZyb20gJ3dlYnNvY2tldCc7XG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgU3RhcnRDb252ZXJzYXRpb25SZXNwb25zZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIENoYXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgYXBpS2V5OiBzdHJpbmc7XG4gIHByaXZhdGUgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgY29udmVyc2F0aW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbnZlcnNhdGlvbkNyZWF0ZVRpbWU6IG51bWJlciB8IG51bGwgPSBudWxsOyAvLyBUcmFjayBjb252ZXJzYXRpb24gc3RhcnQgdGltZVxuICBwcml2YXRlIGlzRmluYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgd2ViU29ja2V0OiBXZWJTb2NrZXQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtZXNzYWdlSGFuZGxlcjogKChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0YWtlb3ZlckhhbmRsZXI6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGZpbmFsaXplZEhhbmRsZXI6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbm5lY3Rpb25TdGF0ZUhhbmRsZXI6ICgoc3RhdGU6ICdjb25uZWN0aW5nJyB8ICdjb25uZWN0ZWQnIHwgJ2Rpc2Nvbm5lY3RlZCcpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RvcmFnZUtleSA9ICdnZW5hc3Npc3RfY29udmVyc2F0aW9uJztcbiAgcHJpdmF0ZSBwb3NzaWJsZVF1ZXJpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoYmFzZVVybDogc3RyaW5nLCBhcGlLZXk6IHN0cmluZywgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgdGhpcy5iYXNlVXJsID0gYmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybC5zbGljZSgwLCAtMSkgOiBiYXNlVXJsO1xuICAgIHRoaXMuYXBpS2V5ID0gYXBpS2V5O1xuICAgIHRoaXMubWV0YWRhdGEgPSBtZXRhZGF0YTtcbiAgICAvLyBUcnkgdG8gbG9hZCBhIHNhdmVkIGNvbnZlcnNhdGlvbiBJRCBmcm9tIGxvY2FsU3RvcmFnZVxuICAgIHRoaXMubG9hZFNhdmVkQ29udmVyc2F0aW9uKCk7XG4gIH1cblxuICBzZXRNZXNzYWdlSGFuZGxlcihoYW5kbGVyOiAobWVzc2FnZTogQ2hhdE1lc3NhZ2UpID0+IHZvaWQpIHtcbiAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyID0gaGFuZGxlcjtcbiAgfVxuXG4gIHNldFRha2VvdmVySGFuZGxlcihoYW5kbGVyOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy50YWtlb3ZlckhhbmRsZXIgPSBoYW5kbGVyO1xuICB9XG5cbiAgc2V0RmluYWxpemVkSGFuZGxlcihoYW5kbGVyOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5maW5hbGl6ZWRIYW5kbGVyID0gaGFuZGxlcjtcbiAgfVxuXG4gIHNldENvbm5lY3Rpb25TdGF0ZUhhbmRsZXIoaGFuZGxlcjogKHN0YXRlOiAnY29ubmVjdGluZycgfCAnY29ubmVjdGVkJyB8ICdkaXNjb25uZWN0ZWQnKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyID0gaGFuZGxlcjtcbiAgfVxuXG4gIGdldFBvc3NpYmxlUXVlcmllcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucG9zc2libGVRdWVyaWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgYSBzYXZlZCBjb252ZXJzYXRpb24gSUQgZnJvbSBsb2NhbFN0b3JhZ2VcbiAgICovXG4gIHByaXZhdGUgbG9hZFNhdmVkQ29udmVyc2F0aW9uKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzYXZlZENvbnZlcnNhdGlvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICBpZiAoc2F2ZWRDb252ZXJzYXRpb24pIHtcbiAgICAgICAgY29uc3QgeyBjb252ZXJzYXRpb25JZCwgY3JlYXRlVGltZSwgaXNGaW5hbGl6ZWQgfSA9IEpTT04ucGFyc2Uoc2F2ZWRDb252ZXJzYXRpb24pO1xuICAgICAgICB0aGlzLmNvbnZlcnNhdGlvbklkID0gY29udmVyc2F0aW9uSWQ7XG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA9IGNyZWF0ZVRpbWU7XG4gICAgICAgIHRoaXMuaXNGaW5hbGl6ZWQgPSBpc0ZpbmFsaXplZCB8fCBmYWxzZTtcbiAgICAgICAgY29uc29sZS5sb2coJ0xvYWRlZCBzYXZlZCBjb252ZXJzYXRpb246JywgdGhpcy5jb252ZXJzYXRpb25JZCwgJ0ZpbmFsaXplZDonLCB0aGlzLmlzRmluYWxpemVkKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBzYXZlZCBjb252ZXJzYXRpb246JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoZSBjdXJyZW50IGNvbnZlcnNhdGlvbiBJRCB0byBsb2NhbFN0b3JhZ2VcbiAgICovXG4gIHByaXZhdGUgc2F2ZUNvbnZlcnNhdGlvbigpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuY29udmVyc2F0aW9uSWQgJiYgdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbkRhdGEgPSB7XG4gICAgICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuY29udmVyc2F0aW9uSWQsXG4gICAgICAgICAgY3JlYXRlVGltZTogdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lLFxuICAgICAgICAgIGlzRmluYWxpemVkOiB0aGlzLmlzRmluYWxpemVkLFxuICAgICAgICB9O1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXksIEpTT04uc3RyaW5naWZ5KGNvbnZlcnNhdGlvbkRhdGEpKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1NhdmVkIGNvbnZlcnNhdGlvbjonLCB0aGlzLmNvbnZlcnNhdGlvbklkKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2F2aW5nIGNvbnZlcnNhdGlvbjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBjdXJyZW50IGNvbnZlcnNhdGlvbiBieSBjbGVhcmluZyB0aGUgSUQgYW5kIHdlYnNvY2tldFxuICAgKi9cbiAgcmVzZXRDb252ZXJzYXRpb24oKTogdm9pZCB7XG4gICAgLy8gQ2xvc2UgdGhlIGN1cnJlbnQgd2Vic29ja2V0IGNvbm5lY3Rpb24gaWYgaXQgZXhpc3RzXG4gICAgaWYgKHRoaXMud2ViU29ja2V0KSB7XG4gICAgICB0aGlzLndlYlNvY2tldC5jbG9zZSgpO1xuICAgICAgdGhpcy53ZWJTb2NrZXQgPSBudWxsO1xuICAgIH1cbiAgICBcbiAgICAvLyBDbGVhciB0aGUgY29udmVyc2F0aW9uIElEXG4gICAgdGhpcy5jb252ZXJzYXRpb25JZCA9IG51bGw7XG4gICAgdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lID0gbnVsbDtcbiAgICB0aGlzLmlzRmluYWxpemVkID0gZmFsc2U7XG5cbiAgICAvLyBDbGVhciBwb3NzaWJsZSBxdWVyaWVzXG4gICAgdGhpcy5wb3NzaWJsZVF1ZXJpZXMgPSBbXTtcbiAgICBcbiAgICAvLyBSZW1vdmUgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlbW92aW5nIGNvbnZlcnNhdGlvbiBmcm9tIHN0b3JhZ2U6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGVyZSdzIGEgY3VycmVudCBjb252ZXJzYXRpb25cbiAgICovXG4gIGhhc0FjdGl2ZUNvbnZlcnNhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNvbnZlcnNhdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBjb252ZXJzYXRpb24gSURcbiAgICovXG4gIGdldENvbnZlcnNhdGlvbklkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbnZlcnNhdGlvbklkO1xuICB9XG5cbiAgaXNDb252ZXJzYXRpb25GaW5hbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNGaW5hbGl6ZWQ7XG4gIH1cblxuICBhc3luYyBzdGFydENvbnZlcnNhdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXF1ZXN0Qm9keTogYW55ID0ge1xuICAgICAgICBtZXNzYWdlczogW10sXG4gICAgICAgIHJlY29yZGVkX2F0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGRhdGFfc291cmNlX2lkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5tZXRhZGF0YSkge1xuICAgICAgICByZXF1ZXN0Qm9keS5tZXRhZGF0YSA9IHRoaXMubWV0YWRhdGE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDxTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlPihcbiAgICAgICAgYCR7dGhpcy5iYXNlVXJsfS9hcGkvY29udmVyc2F0aW9ucy9pbi1wcm9ncmVzcy9zdGFydGAsXG4gICAgICAgIHJlcXVlc3RCb2R5LFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ3gtYXBpLWtleSc6IHRoaXMuYXBpS2V5LFxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgdGhpcy5jb252ZXJzYXRpb25JZCA9IHJlc3BvbnNlLmRhdGEuY29udmVyc2F0aW9uX2lkO1xuICAgICAgLy8gU3RvcmUgY29udmVyc2F0aW9uIGNyZWF0ZSB0aW1lICh1c2UgZnJvbSByZXNwb25zZSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBjdXJyZW50IHRpbWUpXG4gICAgICB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUgPSByZXNwb25zZS5kYXRhLmNyZWF0ZV90aW1lID8gcmVzcG9uc2UuZGF0YS5jcmVhdGVfdGltZSAvIDEwMDAgOiBEYXRlLm5vdygpIC8gMTAwMDtcbiAgICAgIHRoaXMuaXNGaW5hbGl6ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2F2ZUNvbnZlcnNhdGlvbigpO1xuICAgICAgdGhpcy5jb25uZWN0V2ViU29ja2V0KCk7XG5cbiAgICAgIC8vIFN0b3JlIHBvc3NpYmxlIHF1ZXJpZXMgaWYgYXZhaWxhYmxlXG4gICAgICBpZiAocmVzcG9uc2UuZGF0YS5hZ2VudF9wb3NzaWJsZV9xdWVyaWVzICYmIHJlc3BvbnNlLmRhdGEuYWdlbnRfcG9zc2libGVfcXVlcmllcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMucG9zc2libGVRdWVyaWVzID0gcmVzcG9uc2UuZGF0YS5hZ2VudF9wb3NzaWJsZV9xdWVyaWVzO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBQcm9jZXNzIGFnZW50IHdlbGNvbWUgbWVzc2FnZSBpZiBhdmFpbGFibGVcbiAgICAgIGlmIChyZXNwb25zZS5kYXRhLmFnZW50X3dlbGNvbWVfbWVzc2FnZSAmJiB0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCkgLyAxMDAwO1xuICAgICAgICBjb25zdCB3ZWxjb21lTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICAgICAgY3JlYXRlX3RpbWU6IG5vdyxcbiAgICAgICAgICBzdGFydF90aW1lOiBub3cgLSB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUsIC8vIFJlbGF0aXZlIHRvIGNvbnZlcnNhdGlvbiBzdGFydFxuICAgICAgICAgIGVuZF90aW1lOiAobm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSArIDAuMDEsIC8vIFJlbGF0aXZlIHRvIGNvbnZlcnNhdGlvbiBzdGFydFxuICAgICAgICAgIHNwZWFrZXI6ICdhZ2VudCcsXG4gICAgICAgICAgdGV4dDogcmVzcG9uc2UuZGF0YS5hZ2VudF93ZWxjb21lX21lc3NhZ2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlcih3ZWxjb21lTWVzc2FnZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5jb252ZXJzYXRpb25faWQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHN0YXJ0aW5nIGNvbnZlcnNhdGlvbjonLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZW5kTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29udmVyc2F0aW9uSWQgfHwgIXRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb252ZXJzYXRpb24gbm90IHN0YXJ0ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpIC8gMTAwMDtcbiAgICBjb25zdCBjaGF0TWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICBjcmVhdGVfdGltZTogbm93LFxuICAgICAgc3RhcnRfdGltZTogbm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lLCAvLyBSZWxhdGl2ZSB0byBjb252ZXJzYXRpb24gc3RhcnRcbiAgICAgIGVuZF90aW1lOiAobm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSArIDAuMDEsIC8vIFJlbGF0aXZlIHRvIGNvbnZlcnNhdGlvbiBzdGFydFxuICAgICAgc3BlYWtlcjogJ2N1c3RvbWVyJyxcbiAgICAgIHRleHQ6IG1lc3NhZ2VcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGF4aW9zLnBhdGNoKFxuICAgICAgICBgJHt0aGlzLmJhc2VVcmx9L2FwaS9jb252ZXJzYXRpb25zL2luLXByb2dyZXNzL3VwZGF0ZS8ke3RoaXMuY29udmVyc2F0aW9uSWR9YCxcbiAgICAgICAge1xuICAgICAgICAgIG1lc3NhZ2VzOiBbY2hhdE1lc3NhZ2VdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAneC1hcGkta2V5JzogdGhpcy5hcGlLZXksXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNlbmRpbmcgbWVzc2FnZTonLCBlcnJvcik7XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgdGhlIGFnZW50IGluYWN0aXZlIGVycm9yXG4gICAgICBpZiAoZXJyb3IucmVzcG9uc2UgJiYgZXJyb3IucmVzcG9uc2UuZGF0YSAmJiBlcnJvci5yZXNwb25zZS5kYXRhLmVycm9yX2tleSA9PT0gJ0FHRU5UX0lOQUNUSVZFJykge1xuICAgICAgICAvLyBDcmVhdGUgYSBjdXN0b20gbWVzc2FnZSBmb3IgdGhlIGFnZW50IGluYWN0aXZlIGVycm9yXG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBDaGF0TWVzc2FnZSA9IHtcbiAgICAgICAgICAgIGNyZWF0ZV90aW1lOiBub3csXG4gICAgICAgICAgICBzdGFydF90aW1lOiBub3cgLSB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUsXG4gICAgICAgICAgICBlbmRfdGltZTogKG5vdyAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSkgKyAwLjAxLFxuICAgICAgICAgICAgc3BlYWtlcjogJ3NwZWNpYWwnLFxuICAgICAgICAgICAgdGV4dDogJ1RoZSBhZ2VudCBpcyBjdXJyZW50bHkgb2ZmbGluZSwgcGxlYXNlIGNoZWNrIGJhY2sgbGF0ZXIuIFRoYW5rIHlvdSEnXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRG9uJ3QgdGhyb3cgdGhlIGVycm9yIHNpbmNlIHdlIGhhbmRsZWQgaXQgd2l0aCBhIG1lc3NhZ2VcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBjb25uZWN0V2ViU29ja2V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndlYlNvY2tldCkge1xuICAgICAgdGhpcy53ZWJTb2NrZXQuY2xvc2UoKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCF0aGlzLmNvbnZlcnNhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnZlcnNhdGlvbiBJRCBpcyByZXF1aXJlZCBmb3IgV2ViU29ja2V0IGNvbm5lY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyKSB0aGlzLmNvbm5lY3Rpb25TdGF0ZUhhbmRsZXIoJ2Nvbm5lY3RpbmcnKTtcbiAgICBjb25zdCB3c1VybCA9IGAke3RoaXMuYmFzZVVybC5yZXBsYWNlKCdodHRwJywgJ3dzJyl9L2FwaS9jb252ZXJzYXRpb25zL3dzLyR7dGhpcy5jb252ZXJzYXRpb25JZH0/YXBpX2tleT0ke3RoaXMuYXBpS2V5fSZsYW5nPWVuJnRvcGljcz1tZXNzYWdlJnRvcGljcz10YWtlb3ZlciZ0b3BpY3M9ZmluYWxpemVgO1xuICAgIHRoaXMud2ViU29ja2V0ID0gbmV3IFdlYlNvY2tldCh3c1VybCk7XG5cbiAgICB0aGlzLndlYlNvY2tldC5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IGNvbm5lY3RlZCcpO1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvblN0YXRlSGFuZGxlcikgdGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyKCdjb25uZWN0ZWQnKTtcbiAgICB9O1xuXG4gICAgdGhpcy53ZWJTb2NrZXQub25tZXNzYWdlID0gKGV2ZW50OiBJTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IG1lc3NhZ2U6JywgZXZlbnQuZGF0YSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhIGFzIHN0cmluZyk7XG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdtZXNzYWdlJyAmJiB0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgaWYoQXJyYXkuaXNBcnJheShkYXRhLnBheWxvYWQpKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlcyA9IGRhdGEucGF5bG9hZCBhcyBDaGF0TWVzc2FnZVtdXG4gICAgICAgICAgICAvLyBBZGp1c3QgdGltZXN0YW1wcyB0byBiZSByZWxhdGl2ZSB0byBjb252ZXJzYXRpb24gc3RhcnRcbiAgICAgICAgICAgIGNvbnN0IGFkanVzdGVkTWVzc2FnZXMgPSBtZXNzYWdlcy5tYXAobXNnID0+IHRoaXMuYWRqdXN0TWVzc2FnZVRpbWVzdGFtcHMobXNnKSk7XG4gICAgICAgICAgICBhZGp1c3RlZE1lc3NhZ2VzLmZvckVhY2godGhpcy5tZXNzYWdlSGFuZGxlcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFkanVzdGVkTWVzc2FnZSA9IHRoaXMuYWRqdXN0TWVzc2FnZVRpbWVzdGFtcHMoZGF0YS5wYXlsb2FkIGFzIENoYXRNZXNzYWdlKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIoYWRqdXN0ZWRNZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAndGFrZW92ZXInKSB7XG4gICAgICAgICAgLy8gSGFuZGxlIHRha2VvdmVyIGV2ZW50XG4gICAgICAgICAgY29uc29sZS5sb2coJ1Rha2VvdmVyIGV2ZW50IHJlY2VpdmVkJyk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQ3JlYXRlIHNwZWNpYWwgbWVzc2FnZSBmb3IgdGhlIHRha2VvdmVyIGluZGljYXRvclxuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpIC8gMTAwMDtcbiAgICAgICAgICAgIGNvbnN0IHRha2VvdmVyTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgIGNyZWF0ZV90aW1lOiBub3csXG4gICAgICAgICAgICAgIHN0YXJ0X3RpbWU6IHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA/IG5vdyAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA6IDAsXG4gICAgICAgICAgICAgIGVuZF90aW1lOiB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUgPyAobm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSArIDAuMDEgOiAwLjAxLFxuICAgICAgICAgICAgICBzcGVha2VyOiAnc3BlY2lhbCcsXG4gICAgICAgICAgICAgIHRleHQ6ICdTdXBlcnZpc29yIHRvb2sgb3ZlcidcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyKHRha2VvdmVyTWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIENhbGwgdGhlIHRha2VvdmVyIGhhbmRsZXIgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAodGhpcy50YWtlb3ZlckhhbmRsZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGFrZW92ZXJIYW5kbGVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gJ2ZpbmFsaXplJykge1xuICAgICAgICAgIC8vIEhhbmRsZSBmaW5hbGl6ZWQgZXZlbnRcbiAgICAgICAgICBjb25zb2xlLmxvZygnRmluYWxpemVkIGV2ZW50IHJlY2VpdmVkJyk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQ3JlYXRlIHNwZWNpYWwgbWVzc2FnZSBmb3IgdGhlIGZpbmFsaXplZCBpbmRpY2F0b3JcbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlSGFuZGxlcikge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKSAvIDEwMDA7XG4gICAgICAgICAgICBjb25zdCBmaW5hbGl6ZWRNZXNzYWdlOiBDaGF0TWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgY3JlYXRlX3RpbWU6IG5vdyxcbiAgICAgICAgICAgICAgc3RhcnRfdGltZTogdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lID8gbm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lIDogMCxcbiAgICAgICAgICAgICAgZW5kX3RpbWU6IHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA/IChub3cgLSB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUpICsgMC4wMSA6IDAuMDEsXG4gICAgICAgICAgICAgIHNwZWFrZXI6ICdzcGVjaWFsJyxcbiAgICAgICAgICAgICAgdGV4dDogJ0NvbnZlcnNhdGlvbiBGaW5hbGl6ZWQnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlcihmaW5hbGl6ZWRNZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gQ2FsbCB0aGUgZmluYWxpemVkIGhhbmRsZXIgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAodGhpcy5maW5hbGl6ZWRIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmFsaXplZEhhbmRsZXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pc0ZpbmFsaXplZCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5zYXZlQ29udmVyc2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgV2ViU29ja2V0IG1lc3NhZ2U6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB0aGlzLndlYlNvY2tldC5vbmVycm9yID0gKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcignV2ViU29ja2V0IGVycm9yOicsIGVycm9yKTtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb25TdGF0ZUhhbmRsZXIpIHRoaXMuY29ubmVjdGlvblN0YXRlSGFuZGxlcignZGlzY29ubmVjdGVkJyk7XG4gICAgfTtcblxuICAgIHRoaXMud2ViU29ja2V0Lm9uY2xvc2UgPSAoZXZlbnQ6IElDbG9zZUV2ZW50KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IGNsb3NlZDonLCBldmVudC5jb2RlLCBldmVudC5yZWFzb24pO1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvblN0YXRlSGFuZGxlcikgdGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyKCdkaXNjb25uZWN0ZWQnKTtcbiAgICB9O1xuICB9XG5cbiAgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy53ZWJTb2NrZXQpIHtcbiAgICAgIHRoaXMud2ViU29ja2V0LmNsb3NlKCk7XG4gICAgICB0aGlzLndlYlNvY2tldCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVscGVyIG1ldGhvZCB0byBhZGp1c3QgbWVzc2FnZSB0aW1lc3RhbXBzIHJlbGF0aXZlIHRvIGNvbnZlcnNhdGlvbiBzdGFydFxuICBwcml2YXRlIGFkanVzdE1lc3NhZ2VUaW1lc3RhbXBzKG1lc3NhZ2U6IENoYXRNZXNzYWdlKTogQ2hhdE1lc3NhZ2Uge1xuICAgIGlmICghdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSB7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWVzc2FnZSxcbiAgICAgIHN0YXJ0X3RpbWU6IG1lc3NhZ2Uuc3RhcnRfdGltZSAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSxcbiAgICAgIGVuZF90aW1lOiBtZXNzYWdlLmVuZF90aW1lIC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lXG4gICAgfTtcbiAgfVxufSAiXX0=
|
|
415
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdFNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvY2hhdFNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksSUFBSSxTQUFTLEVBQThCLE1BQU0sV0FBVyxDQUFDO0FBR2xGO0lBZUUscUJBQVksT0FBZSxFQUFFLE1BQWMsRUFBRSxRQUE4QjtRQVhuRSxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFDckMsMkJBQXNCLEdBQWtCLElBQUksQ0FBQyxDQUFDLGdDQUFnQztRQUM5RSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixjQUFTLEdBQXFCLElBQUksQ0FBQztRQUNuQyxtQkFBYyxHQUE0QyxJQUFJLENBQUM7UUFDL0Qsb0JBQWUsR0FBd0IsSUFBSSxDQUFDO1FBQzVDLHFCQUFnQixHQUF3QixJQUFJLENBQUM7UUFDN0MsMkJBQXNCLEdBQTBFLElBQUksQ0FBQztRQUNyRyxlQUFVLEdBQUcsd0JBQXdCLENBQUM7UUFDdEMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFHckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCx1Q0FBaUIsR0FBakIsVUFBa0IsT0FBdUM7UUFDdkQsSUFBSSxD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QUFzQjtnQkFBRSxLQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0UsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGdDQUFVLEdBQVY7UUFDRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQsNEVBQTRFO0lBQ3BFLDZDQUF1QixHQUEvQixVQUFnQyxPQUFvQjtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDakMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELDZCQUNLLE9BQU8sS0FDVixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQzVELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsSUFDeEQ7SUFDSixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBdlhELElBdVhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IHczY3dlYnNvY2tldCBhcyBXZWJTb2NrZXQsIElNZXNzYWdlRXZlbnQsIElDbG9zZUV2ZW50IH0gZnJvbSAnd2Vic29ja2V0JztcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlLCBBdHRhY2htZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQ2hhdFNlcnZpY2Uge1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcbiAgcHJpdmF0ZSBhcGlLZXk6IHN0cmluZztcbiAgcHJpdmF0ZSBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBjb252ZXJzYXRpb25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29udmVyc2F0aW9uQ3JlYXRlVGltZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7IC8vIFRyYWNrIGNvbnZlcnNhdGlvbiBzdGFydCB0aW1lXG4gIHByaXZhdGUgaXNGaW5hbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSB3ZWJTb2NrZXQ6IFdlYlNvY2tldCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1lc3NhZ2VIYW5kbGVyOiAoKG1lc3NhZ2U6IENoYXRNZXNzYWdlKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRha2VvdmVySGFuZGxlcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmluYWxpemVkSGFuZGxlcjogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29ubmVjdGlvblN0YXRlSGFuZGxlcjogKChzdGF0ZTogJ2Nvbm5lY3RpbmcnIHwgJ2Nvbm5lY3RlZCcgfCAnZGlzY29ubmVjdGVkJykgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzdG9yYWdlS2V5ID0gJ2dlbmFzc2lzdF9jb252ZXJzYXRpb24nO1xuICBwcml2YXRlIHBvc3NpYmxlUXVlcmllczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihiYXNlVXJsOiBzdHJpbmcsIGFwaUtleTogc3RyaW5nLCBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICB0aGlzLmJhc2VVcmwgPSBiYXNlVXJsLmVuZHNXaXRoKCcvJykgPyBiYXNlVXJsLnNsaWNlKDAsIC0xKSA6IGJhc2VVcmw7XG4gICAgdGhpcy5hcGlLZXkgPSBhcGlLZXk7XG4gICAgdGhpcy5tZXRhZGF0YSA9IG1ldGFkYXRhO1xuICAgIC8vIFRyeSB0byBsb2FkIGEgc2F2ZWQgY29udmVyc2F0aW9uIElEIGZyb20gbG9jYWxTdG9yYWdlXG4gICAgdGhpcy5sb2FkU2F2ZWRDb252ZXJzYXRpb24oKTtcbiAgfVxuXG4gIHNldE1lc3NhZ2VIYW5kbGVyKGhhbmRsZXI6IChtZXNzYWdlOiBDaGF0TWVzc2FnZSkgPT4gdm9pZCkge1xuICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSBoYW5kbGVyO1xuICB9XG5cbiAgc2V0VGFrZW92ZXJIYW5kbGVyKGhhbmRsZXI6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnRha2VvdmVySGFuZGxlciA9IGhhbmRsZXI7XG4gIH1cblxuICBzZXRGaW5hbGl6ZWRIYW5kbGVyKGhhbmRsZXI6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLmZpbmFsaXplZEhhbmRsZXIgPSBoYW5kbGVyO1xuICB9XG5cbiAgc2V0Q29ubmVjdGlvblN0YXRlSGFuZGxlcihoYW5kbGVyOiAoc3RhdGU6ICdjb25uZWN0aW5nJyB8ICdjb25uZWN0ZWQnIHwgJ2Rpc2Nvbm5lY3RlZCcpID0+IHZvaWQpIHtcbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZUhhbmRsZXIgPSBoYW5kbGVyO1xuICB9XG5cbiAgZ2V0UG9zc2libGVRdWVyaWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wb3NzaWJsZVF1ZXJpZXM7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBhIHNhdmVkIGNvbnZlcnNhdGlvbiBJRCBmcm9tIGxvY2FsU3RvcmFnZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkU2F2ZWRDb252ZXJzYXRpb24oKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNhdmVkQ29udmVyc2F0aW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgICAgIGlmIChzYXZlZENvbnZlcnNhdGlvbikge1xuICAgICAgICBjb25zdCB7IGNvbnZlcnNhdGlvbklkLCBjcmVhdGVUaW1lLCBpc0ZpbmFsaXplZCB9ID0gSlNPTi5wYXJzZShzYXZlZENvbnZlcnNhdGlvbik7XG4gICAgICAgIHRoaXMuY29udmVyc2F0aW9uSWQgPSBjb252ZXJzYXRpb25JZDtcbiAgICAgICAgdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lID0gY3JlYXRlVGltZTtcbiAgICAgICAgdGhpcy5pc0ZpbmFsaXplZCA9IGlzRmluYWxpemVkIHx8IGZhbHNlO1xuICAgICAgICBjb25zb2xlLmxvZygnTG9hZGVkIHNhdmVkIGNvbnZlcnNhdGlvbjonLCB0aGlzLmNvbnZlcnNhdGlvbklkLCAnRmluYWxpemVkOicsIHRoaXMuaXNGaW5hbGl6ZWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHNhdmVkIGNvbnZlcnNhdGlvbjonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgdGhlIGN1cnJlbnQgY29udmVyc2F0aW9uIElEIHRvIGxvY2FsU3RvcmFnZVxuICAgKi9cbiAgcHJpdmF0ZSBzYXZlQ29udmVyc2F0aW9uKCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5jb252ZXJzYXRpb25JZCAmJiB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUpIHtcbiAgICAgICAgY29uc3QgY29udmVyc2F0aW9uRGF0YSA9IHtcbiAgICAgICAgICBjb252ZXJzYXRpb25JZDogdGhpcy5jb252ZXJzYXRpb25JZCxcbiAgICAgICAgICBjcmVhdGVUaW1lOiB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUsXG4gICAgICAgICAgaXNGaW5hbGl6ZWQ6IHRoaXMuaXNGaW5hbGl6ZWQsXG4gICAgICAgIH07XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkoY29udmVyc2F0aW9uRGF0YSkpO1xuICAgICAgICBjb25zb2xlLmxvZygnU2F2ZWQgY29udmVyc2F0aW9uOicsIHRoaXMuY29udmVyc2F0aW9uSWQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgY29udmVyc2F0aW9uOicsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGN1cnJlbnQgY29udmVyc2F0aW9uIGJ5IGNsZWFyaW5nIHRoZSBJRCBhbmQgd2Vic29ja2V0XG4gICAqL1xuICByZXNldENvbnZlcnNhdGlvbigpOiB2b2lkIHtcbiAgICAvLyBDbG9zZSB0aGUgY3VycmVudCB3ZWJzb2NrZXQgY29ubmVjdGlvbiBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy53ZWJTb2NrZXQpIHtcbiAgICAgIHRoaXMud2ViU29ja2V0LmNsb3NlKCk7XG4gICAgICB0aGlzLndlYlNvY2tldCA9IG51bGw7XG4gICAgfVxuICAgIFxuICAgIC8vIENsZWFyIHRoZSBjb252ZXJzYXRpb24gSURcbiAgICB0aGlzLmNvbnZlcnNhdGlvbklkID0gbnVsbDtcbiAgICB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUgPSBudWxsO1xuICAgIHRoaXMuaXNGaW5hbGl6ZWQgPSBmYWxzZTtcblxuICAgIC8vIENsZWFyIHBvc3NpYmxlIHF1ZXJpZXNcbiAgICB0aGlzLnBvc3NpYmxlUXVlcmllcyA9IFtdO1xuICAgIFxuICAgIC8vIFJlbW92ZSBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVtb3ZpbmcgY29udmVyc2F0aW9uIGZyb20gc3RvcmFnZTonLCBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZXJlJ3MgYSBjdXJyZW50IGNvbnZlcnNhdGlvblxuICAgKi9cbiAgaGFzQWN0aXZlQ29udmVyc2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY29udmVyc2F0aW9uSWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IGNvbnZlcnNhdGlvbiBJRFxuICAgKi9cbiAgZ2V0Q29udmVyc2F0aW9uSWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udmVyc2F0aW9uSWQ7XG4gIH1cblxuICBpc0NvbnZlcnNhdGlvbkZpbmFsaXplZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0ZpbmFsaXplZDtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0Q29udmVyc2F0aW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcXVlc3RCb2R5OiBhbnkgPSB7XG4gICAgICAgIG1lc3NhZ2VzOiBbXSxcbiAgICAgICAgcmVjb3JkZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgZGF0YV9zb3VyY2VfaWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCJcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm1ldGFkYXRhKSB7XG4gICAgICAgIHJlcXVlc3RCb2R5Lm1ldGFkYXRhID0gdGhpcy5tZXRhZGF0YTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PFN0YXJ0Q29udmVyc2F0aW9uUmVzcG9uc2U+KFxuICAgICAgICBgJHt0aGlzLmJhc2VVcmx9L2FwaS9jb252ZXJzYXRpb25zL2luLXByb2dyZXNzL3N0YXJ0YCxcbiAgICAgICAgcmVxdWVzdEJvZHksXG4gICAgICAgIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAneC1hcGkta2V5JzogdGhpcy5hcGlLZXksXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLmNvbnZlcnNhdGlvbklkID0gcmVzcG9uc2UuZGF0YS5jb252ZXJzYXRpb25faWQ7XG4gICAgICAvLyBTdG9yZSBjb252ZXJzYXRpb24gY3JlYXRlIHRpbWUgKHVzZSBmcm9tIHJlc3BvbnNlIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGN1cnJlbnQgdGltZSlcbiAgICAgIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA9IHJlc3BvbnNlLmRhdGEuY3JlYXRlX3RpbWUgPyByZXNwb25zZS5kYXRhLmNyZWF0ZV90aW1lIC8gMTAwMCA6IERhdGUubm93KCkgLyAxMDAwO1xuICAgICAgdGhpcy5pc0ZpbmFsaXplZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zYXZlQ29udmVyc2F0aW9uKCk7XG4gICAgICB0aGlzLmNvbm5lY3RXZWJTb2NrZXQoKTtcblxuICAgICAgLy8gU3RvcmUgcG9zc2libGUgcXVlcmllcyBpZiBhdmFpbGFibGVcbiAgICAgIGlmIChyZXNwb25zZS5kYXRhLmFnZW50X3Bvc3NpYmxlX3F1ZXJpZXMgJiYgcmVzcG9uc2UuZGF0YS5hZ2VudF9wb3NzaWJsZV9xdWVyaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5wb3NzaWJsZVF1ZXJpZXMgPSByZXNwb25zZS5kYXRhLmFnZW50X3Bvc3NpYmxlX3F1ZXJpZXM7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIFByb2Nlc3MgYWdlbnQgd2VsY29tZSBtZXNzYWdlIGlmIGF2YWlsYWJsZVxuICAgICAgaWYgKHJlc3BvbnNlLmRhdGEuYWdlbnRfd2VsY29tZV9tZXNzYWdlICYmIHRoaXMubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKSAvIDEwMDA7XG4gICAgICAgIGNvbnN0IHdlbGNvbWVNZXNzYWdlOiBDaGF0TWVzc2FnZSA9IHtcbiAgICAgICAgICBjcmVhdGVfdGltZTogbm93LFxuICAgICAgICAgIHN0YXJ0X3RpbWU6IG5vdyAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSwgLy8gUmVsYXRpdmUgdG8gY29udmVyc2F0aW9uIHN0YXJ0XG4gICAgICAgICAgZW5kX3RpbWU6IChub3cgLSB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUpICsgMC4wMSwgLy8gUmVsYXRpdmUgdG8gY29udmVyc2F0aW9uIHN0YXJ0XG4gICAgICAgICAgc3BlYWtlcjogJ2FnZW50JyxcbiAgICAgICAgICB0ZXh0OiByZXNwb25zZS5kYXRhLmFnZW50X3dlbGNvbWVfbWVzc2FnZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyKHdlbGNvbWVNZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmNvbnZlcnNhdGlvbl9pZDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc3RhcnRpbmcgY29udmVyc2F0aW9uOicsIGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZywgYXR0YWNobWVudHM/OiBBdHRhY2htZW50W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29udmVyc2F0aW9uSWQgfHwgIXRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb252ZXJzYXRpb24gbm90IHN0YXJ0ZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpIC8gMTAwMDtcbiAgICBjb25zdCBjaGF0TWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICBjcmVhdGVfdGltZTogbm93LFxuICAgICAgc3RhcnRfdGltZTogbm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lLCAvLyBSZWxhdGl2ZSB0byBjb252ZXJzYXRpb24gc3RhcnRcbiAgICAgIGVuZF90aW1lOiAobm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSArIDAuMDEsIC8vIFJlbGF0aXZlIHRvIGNvbnZlcnNhdGlvbiBzdGFydFxuICAgICAgc3BlYWtlcjogJ2N1c3RvbWVyJyxcbiAgICAgIHRleHQ6IG1lc3NhZ2UsXG4gICAgICBhdHRhY2htZW50czogYXR0YWNobWVudHMsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyKGNoYXRNZXNzYWdlKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgYXhpb3MucGF0Y2goXG4gICAgICAgIGAke3RoaXMuYmFzZVVybH0vYXBpL2NvbnZlcnNhdGlvbnMvaW4tcHJvZ3Jlc3MvdXBkYXRlLyR7dGhpcy5jb252ZXJzYXRpb25JZH1gLFxuICAgICAgICB7XG4gICAgICAgICAgbWVzc2FnZXM6IFtjaGF0TWVzc2FnZV1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICd4LWFwaS1rZXknOiB0aGlzLmFwaUtleSxcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VuZGluZyBtZXNzYWdlOicsIGVycm9yKTtcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyB0aGUgYWdlbnQgaW5hY3RpdmUgZXJyb3JcbiAgICAgIGlmIChlcnJvci5yZXNwb25zZSAmJiBlcnJvci5yZXNwb25zZS5kYXRhICYmIGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3Jfa2V5ID09PSAnQUdFTlRfSU5BQ1RJVkUnKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIGN1c3RvbSBtZXNzYWdlIGZvciB0aGUgYWdlbnQgaW5hY3RpdmUgZXJyb3JcbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2U6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICAgICAgY3JlYXRlX3RpbWU6IG5vdyxcbiAgICAgICAgICAgIHN0YXJ0X3RpbWU6IG5vdyAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSxcbiAgICAgICAgICAgIGVuZF90aW1lOiAobm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSArIDAuMDEsXG4gICAgICAgICAgICBzcGVha2VyOiAnc3BlY2lhbCcsXG4gICAgICAgICAgICB0ZXh0OiAnVGhlIGFnZW50IGlzIGN1cnJlbnRseSBvZmZsaW5lLCBwbGVhc2UgY2hlY2sgYmFjayBsYXRlci4gVGhhbmsgeW91ISdcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBEb24ndCB0aHJvdyB0aGUgZXJyb3Igc2luY2Ugd2UgaGFuZGxlZCBpdCB3aXRoIGEgbWVzc2FnZVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwbG9hZEZpbGUoY2hhdElkOiBzdHJpbmcsIGZpbGU6IEZpbGUpOiBQcm9taXNlPHsgZmlsZVVybDogc3RyaW5nIH0+IHtcbiAgICBpZiAoIXRoaXMuY29udmVyc2F0aW9uSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ29udmVyc2F0aW9uIG5vdCBzdGFydGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2NoYXRfaWQnLCBjaGF0SWQpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDx7IGZpbGVVcmw6IHN0cmluZyB9PihcbiAgICAgICAgYCR7dGhpcy5iYXNlVXJsfS9hcGkvZ2VuYWdlbnQva25vd2xlZGdlL3VwbG9hZC1jaGF0LWZpbGVgLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICd4LWFwaS1rZXknOiB0aGlzLmFwaUtleSxcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB1cGxvYWRpbmcgZmlsZTonLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICBjb25uZWN0V2ViU29ja2V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLndlYlNvY2tldCkge1xuICAgICAgdGhpcy53ZWJTb2NrZXQuY2xvc2UoKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKCF0aGlzLmNvbnZlcnNhdGlvbklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbnZlcnNhdGlvbiBJRCBpcyByZXF1aXJlZCBmb3IgV2ViU29ja2V0IGNvbm5lY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyKSB0aGlzLmNvbm5lY3Rpb25TdGF0ZUhhbmRsZXIoJ2Nvbm5lY3RpbmcnKTtcbiAgICBjb25zdCB3c1VybCA9IGAke3RoaXMuYmFzZVVybC5yZXBsYWNlKCdodHRwJywgJ3dzJyl9L2FwaS9jb252ZXJzYXRpb25zL3dzLyR7dGhpcy5jb252ZXJzYXRpb25JZH0/YXBpX2tleT0ke3RoaXMuYXBpS2V5fSZsYW5nPWVuJnRvcGljcz1tZXNzYWdlJnRvcGljcz10YWtlb3ZlciZ0b3BpY3M9ZmluYWxpemVgO1xuICAgIHRoaXMud2ViU29ja2V0ID0gbmV3IFdlYlNvY2tldCh3c1VybCk7XG5cbiAgICB0aGlzLndlYlNvY2tldC5vbm9wZW4gPSAoKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IGNvbm5lY3RlZCcpO1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvblN0YXRlSGFuZGxlcikgdGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyKCdjb25uZWN0ZWQnKTtcbiAgICB9O1xuXG4gICAgdGhpcy53ZWJTb2NrZXQub25tZXNzYWdlID0gKGV2ZW50OiBJTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZygnV2ViU29ja2V0IG1lc3NhZ2U6JywgZXZlbnQuZGF0YSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShldmVudC5kYXRhIGFzIHN0cmluZyk7XG4gICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICdtZXNzYWdlJyAmJiB0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgaWYoQXJyYXkuaXNBcnJheShkYXRhLnBheWxvYWQpKSB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlcyA9IGRhdGEucGF5bG9hZCBhcyBDaGF0TWVzc2FnZVtdXG4gICAgICAgICAgICAvLyBBZGp1c3QgdGltZXN0YW1wcyB0byBiZSByZWxhdGl2ZSB0byBjb252ZXJzYXRpb24gc3RhcnRcbiAgICAgICAgICAgIGNvbnN0IGFkanVzdGVkTWVzc2FnZXMgPSBtZXNzYWdlcy5tYXAobXNnID0+IHRoaXMuYWRqdXN0TWVzc2FnZVRpbWVzdGFtcHMobXNnKSkuZmlsdGVyKG1zZyA9PiBtc2cuc3BlYWtlciAhPT0gJ2N1c3RvbWVyJyk7XG4gICAgICAgICAgICBhZGp1c3RlZE1lc3NhZ2VzLmZvckVhY2godGhpcy5tZXNzYWdlSGFuZGxlcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFkanVzdGVkTWVzc2FnZSA9IHRoaXMuYWRqdXN0TWVzc2FnZVRpbWVzdGFtcHMoZGF0YS5wYXlsb2FkIGFzIENoYXRNZXNzYWdlKTtcbiAgICAgICAgICAgIGlmIChhZGp1c3RlZE1lc3NhZ2Uuc3BlYWtlciAhPT0gJ2N1c3RvbWVyJykge1xuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VIYW5kbGVyKGFkanVzdGVkTWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gJ3Rha2VvdmVyJykge1xuICAgICAgICAgIC8vIEhhbmRsZSB0YWtlb3ZlciBldmVudFxuICAgICAgICAgIGNvbnNvbGUubG9nKCdUYWtlb3ZlciBldmVudCByZWNlaXZlZCcpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENyZWF0ZSBzcGVjaWFsIG1lc3NhZ2UgZm9yIHRoZSB0YWtlb3ZlciBpbmRpY2F0b3JcbiAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlSGFuZGxlcikge1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKSAvIDEwMDA7XG4gICAgICAgICAgICBjb25zdCB0YWtlb3Zlck1lc3NhZ2U6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICAgICAgICBjcmVhdGVfdGltZTogbm93LFxuICAgICAgICAgICAgICBzdGFydF90aW1lOiB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUgPyBub3cgLSB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUgOiAwLFxuICAgICAgICAgICAgICBlbmRfdGltZTogdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lID8gKG5vdyAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSkgKyAwLjAxIDogMC4wMSxcbiAgICAgICAgICAgICAgc3BlYWtlcjogJ3NwZWNpYWwnLFxuICAgICAgICAgICAgICB0ZXh0OiAnU3VwZXJ2aXNvciB0b29rIG92ZXInXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlcih0YWtlb3Zlck1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBcbiAgICAgICAgICAvLyBDYWxsIHRoZSB0YWtlb3ZlciBoYW5kbGVyIGlmIHByb3ZpZGVkXG4gICAgICAgICAgaWYgKHRoaXMudGFrZW92ZXJIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLnRha2VvdmVySGFuZGxlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICdmaW5hbGl6ZScpIHtcbiAgICAgICAgICAvLyBIYW5kbGUgZmluYWxpemVkIGV2ZW50XG4gICAgICAgICAgY29uc29sZS5sb2coJ0ZpbmFsaXplZCBldmVudCByZWNlaXZlZCcpO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIENyZWF0ZSBzcGVjaWFsIG1lc3NhZ2UgZm9yIHRoZSBmaW5hbGl6ZWQgaW5kaWNhdG9yXG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCkgLyAxMDAwO1xuICAgICAgICAgICAgY29uc3QgZmluYWxpemVkTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgIGNyZWF0ZV90aW1lOiBub3csXG4gICAgICAgICAgICAgIHN0YXJ0X3RpbWU6IHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA/IG5vdyAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSA6IDAsXG4gICAgICAgICAgICAgIGVuZF90aW1lOiB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUgPyAobm93IC0gdGhpcy5jb252ZXJzYXRpb25DcmVhdGVUaW1lKSArIDAuMDEgOiAwLjAxLFxuICAgICAgICAgICAgICBzcGVha2VyOiAnc3BlY2lhbCcsXG4gICAgICAgICAgICAgIHRleHQ6ICdDb252ZXJzYXRpb24gRmluYWxpemVkJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIoZmluYWxpemVkTWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIENhbGwgdGhlIGZpbmFsaXplZCBoYW5kbGVyIGlmIHByb3ZpZGVkXG4gICAgICAgICAgaWYgKHRoaXMuZmluYWxpemVkSGFuZGxlcikge1xuICAgICAgICAgICAgdGhpcy5maW5hbGl6ZWRIYW5kbGVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaXNGaW5hbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2F2ZUNvbnZlcnNhdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIFdlYlNvY2tldCBtZXNzYWdlOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGhpcy53ZWJTb2NrZXQub25lcnJvciA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1dlYlNvY2tldCBlcnJvcjonLCBlcnJvcik7XG4gICAgICBpZiAodGhpcy5jb25uZWN0aW9uU3RhdGVIYW5kbGVyKSB0aGlzLmNvbm5lY3Rpb25TdGF0ZUhhbmRsZXIoJ2Rpc2Nvbm5lY3RlZCcpO1xuICAgIH07XG5cbiAgICB0aGlzLndlYlNvY2tldC5vbmNsb3NlID0gKGV2ZW50OiBJQ2xvc2VFdmVudCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ1dlYlNvY2tldCBjbG9zZWQ6JywgZXZlbnQuY29kZSwgZXZlbnQucmVhc29uKTtcbiAgICAgIGlmICh0aGlzLmNvbm5lY3Rpb25TdGF0ZUhhbmRsZXIpIHRoaXMuY29ubmVjdGlvblN0YXRlSGFuZGxlcignZGlzY29ubmVjdGVkJyk7XG4gICAgfTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud2ViU29ja2V0KSB7XG4gICAgICB0aGlzLndlYlNvY2tldC5jbG9zZSgpO1xuICAgICAgdGhpcy53ZWJTb2NrZXQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhlbHBlciBtZXRob2QgdG8gYWRqdXN0IG1lc3NhZ2UgdGltZXN0YW1wcyByZWxhdGl2ZSB0byBjb252ZXJzYXRpb24gc3RhcnRcbiAgcHJpdmF0ZSBhZGp1c3RNZXNzYWdlVGltZXN0YW1wcyhtZXNzYWdlOiBDaGF0TWVzc2FnZSk6IENoYXRNZXNzYWdlIHtcbiAgICBpZiAoIXRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZSkge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm1lc3NhZ2UsXG4gICAgICBzdGFydF90aW1lOiBtZXNzYWdlLnN0YXJ0X3RpbWUgLSB0aGlzLmNvbnZlcnNhdGlvbkNyZWF0ZVRpbWUsXG4gICAgICBlbmRfdGltZTogbWVzc2FnZS5lbmRfdGltZSAtIHRoaXMuY29udmVyc2F0aW9uQ3JlYXRlVGltZVxuICAgIH07XG4gIH1cbn0gIl19
|
package/dist/types/index.d.ts
CHANGED
|
@@ -4,6 +4,13 @@ export interface ChatMessage {
|
|
|
4
4
|
end_time: number;
|
|
5
5
|
speaker: 'customer' | 'agent' | 'special';
|
|
6
6
|
text: string;
|
|
7
|
+
attachments?: Attachment[];
|
|
8
|
+
}
|
|
9
|
+
export interface Attachment {
|
|
10
|
+
name: string;
|
|
11
|
+
type: string;
|
|
12
|
+
size: number;
|
|
13
|
+
url: string;
|
|
7
14
|
}
|
|
8
15
|
export interface StartConversationResponse {
|
|
9
16
|
message: string;
|
package/dist/types/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENoYXQgbWVzc2FnZSB0eXBlc1xuZXhwb3J0IGludGVyZmFjZSBDaGF0TWVzc2FnZSB7XG4gIGNyZWF0ZV90aW1lOiBudW1iZXI7XG4gIHN0YXJ0X3RpbWU6IG51bWJlcjtcbiAgZW5kX3RpbWU6IG51bWJlcjtcbiAgc3BlYWtlcjogJ2N1c3RvbWVyJyB8ICdhZ2VudCcgfCAnc3BlY2lhbCc7XG4gIHRleHQ6IHN0cmluZztcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50W107XG59XG5cbi8vIEF0dGFjaG1lbnQgdHlwZVxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNpemU6IG51bWJlcjtcbiAgdXJsOiBzdHJpbmc7XG59XG5cbi8vIEFQSSBSZXNwb25zZSB0eXBlc1xuZXhwb3J0IGludGVyZmFjZSBTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlIHtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBjb252ZXJzYXRpb25faWQ6IHN0cmluZztcbiAgYWdlbnRfd2VsY29tZV9tZXNzYWdlPzogc3RyaW5nO1xuICBhZ2VudF9wb3NzaWJsZV9xdWVyaWVzPzogc3RyaW5nW107XG4gIGNyZWF0ZV90aW1lPzogbnVtYmVyO1xufVxuXG4vLyBQcm9wcyBmb3IgdGhlIEdlbkFnZW50Q2hhdCBjb21wb25lbnRcbmV4cG9ydCBpbnRlcmZhY2UgR2VuQWdlbnRDaGF0UHJvcHMge1xuICBiYXNlVXJsOiBzdHJpbmc7XG4gIGFwaUtleTogc3RyaW5nO1xuICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT47IC8vIEZvciBwYXNzaW5nIHVzZXIgaW5mb3JtYXRpb24gb3Igb3RoZXIgbWV0YWRhdGFcbiAgb25FcnJvcj86IChlcnJvcjogRXJyb3IpID0+IHZvaWQ7XG4gIG9uVGFrZW92ZXI/OiAoKSA9PiB2b2lkO1xuICBvbkZpbmFsaXplPzogKCkgPT4gdm9pZDtcbiAgdGhlbWU/OiB7XG4gICAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xuICAgIHNlY29uZGFyeUNvbG9yPzogc3RyaW5nO1xuICAgIGZvbnRGYW1pbHk/OiBzdHJpbmc7XG4gICAgZm9udFNpemU/OiBzdHJpbmc7XG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIHRleHRDb2xvcj86IHN0cmluZztcbiAgfTtcbiAgaGVhZGVyVGl0bGU/OiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBtb2RlPzogJ2VtYmVkZGVkJyB8ICdmbG9hdGluZyc7XG4gIGZsb2F0aW5nQ29uZmlnPzoge1xuICAgIHBvc2l0aW9uPzogJ2JvdHRvbS1yaWdodCcgfCAnYm90dG9tLWxlZnQnIHwgJ3RvcC1yaWdodCcgfCAndG9wLWxlZnQnO1xuICAgIG9mZnNldD86IHsgeD86IG51bWJlcjsgeT86IG51bWJlciB9O1xuICAgIHRvZ2dsZUJ1dHRvbkljb24/OiBSZWFjdC5SZWFjdEVsZW1lbnQ7XG4gICAgY2xvc2VCdXR0b25JY29uPzogUmVhY3QuUmVhY3RFbGVtZW50O1xuICB9O1xufSAiXX0=
|
package/package.json
CHANGED
package/assets/chat-logo.png
DELETED
|
Binary file
|