@projectcor/maia-components 2.11.78-16 → 2.11.78-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/CHANGELOG.md +0 -15
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.js +17 -0
- package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.styles.js +15 -0
- package/lib/components/atoms/SessionGeneratingDot/index.js +2 -0
- package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.js +12 -0
- package/lib/components/atoms/SessionUnreadDot/SessionUnreadDot.styles.js +8 -0
- package/lib/components/atoms/SessionUnreadDot/index.js +2 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +46 -7
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +4 -5
- package/lib/components/molecules/Sidebar/Sidebar.js +51 -42
- package/lib/components/molecules/Sidebar/Sidebar.styles.js +10 -6
- package/lib/components/organisms/ChatAI/ChatAI.js +10 -2
- package/lib/hooks/useChatManager/useChatManager.js +456 -428
- package/lib/hooks/useChatMessages/useChatMessages.js +411 -249
- package/lib/hooks/useChats/useChats.js +8 -3
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.interface.js +1 -1
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +140 -496
- package/lib/hooks/useStreamingMessage/index.js +2 -3
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +13 -17
- package/lib/lang/br/index.js +7 -4
- package/lib/lang/en/index.js +7 -4
- package/lib/lang/es/index.js +7 -4
- package/lib/lang/fr/index.js +9 -5
- package/lib/store/chatsSidebarOptimistic.js +87 -0
- package/lib/store/chatsStore.types.js +1 -1
- package/lib/store/sessions/activeView.js +22 -0
- package/lib/store/sessions/index.js +10 -0
- package/lib/store/sessions/sessionHitlContext.js +15 -0
- package/lib/store/sessions/sessionNotificationSound.js +57 -0
- package/lib/store/sessions/sessionNotifications.js +111 -0
- package/lib/store/sessions/sessionNotifications.types.js +2 -0
- package/lib/store/sessions/sessionStreamManager.js +585 -0
- package/lib/store/sessions/sessionStreamingText.js +80 -0
- package/lib/store/sessions/sessionUnreadPersistence.js +49 -0
- package/lib/store/sessions/sessions.types.js +35 -0
- package/lib/store/sessions/useSessionMeta.js +39 -0
- package/lib/store/sessions/useSessionStreamingText.js +18 -0
- package/lib/store/sessions/useSessionsStore.js +234 -0
- package/lib/store/useChatsStore.js +41 -9
- package/lib/types/streamActivity.js +1 -1
- package/lib/types/userType.d.js +1 -1
- package/package.json +31 -70
- package/lib/hooks/useStreamingMessage/streamingStore.js +0 -69
|
@@ -8,9 +8,11 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
8
8
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
9
9
|
import { create } from 'zustand';
|
|
10
10
|
import maia from '../services/maia';
|
|
11
|
+
import { removePersistedSessionUnread } from './sessions/sessionUnreadPersistence';
|
|
11
12
|
var DEFAULT_LIMIT = 20;
|
|
12
13
|
var initialState = {
|
|
13
14
|
chats: [],
|
|
15
|
+
optimisticSessionIds: [],
|
|
14
16
|
loadingChats: true,
|
|
15
17
|
isLoadingMoreChats: false,
|
|
16
18
|
nextOffset: null,
|
|
@@ -22,14 +24,17 @@ export var useChatsStore = create(function (set, get) {
|
|
|
22
24
|
return _objectSpread(_objectSpread({}, initialState), {}, {
|
|
23
25
|
fetchChats: function () {
|
|
24
26
|
var _fetchChats = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
25
|
-
var agent, section, _ref$limit, limit, _ref$offset, offset, onError, lang, _yield$maia$Chats$get, items, nextItem, hasMore, nextOffset, _t;
|
|
27
|
+
var agent, section, _ref$limit, limit, _ref$offset, offset, onError, lang, _ref$background, background, hasExistingChats, _yield$maia$Chats$get, items, nextItem, hasMore, nextOffset, apiItems, apiIds, _get, currentChats, optimisticSessionIds, stillOptimistic, _t;
|
|
26
28
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
27
29
|
while (1) switch (_context.prev = _context.next) {
|
|
28
30
|
case 0:
|
|
29
|
-
agent = _ref.agent, section = _ref.section, _ref$limit = _ref.limit, limit = _ref$limit === void 0 ? DEFAULT_LIMIT : _ref$limit, _ref$offset = _ref.offset, offset = _ref$offset === void 0 ? 0 : _ref$offset, onError = _ref.onError, lang = _ref.lang;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
agent = _ref.agent, section = _ref.section, _ref$limit = _ref.limit, limit = _ref$limit === void 0 ? DEFAULT_LIMIT : _ref$limit, _ref$offset = _ref.offset, offset = _ref$offset === void 0 ? 0 : _ref$offset, onError = _ref.onError, lang = _ref.lang, _ref$background = _ref.background, background = _ref$background === void 0 ? false : _ref$background;
|
|
32
|
+
hasExistingChats = get().chats.length > 0;
|
|
33
|
+
if (!background || !hasExistingChats) {
|
|
34
|
+
set({
|
|
35
|
+
loadingChats: true
|
|
36
|
+
});
|
|
37
|
+
}
|
|
33
38
|
_context.prev = 1;
|
|
34
39
|
_context.next = 2;
|
|
35
40
|
return maia.Chats.getChatsByUserId({
|
|
@@ -45,8 +50,19 @@ export var useChatsStore = create(function (set, get) {
|
|
|
45
50
|
nextItem = _yield$maia$Chats$get.nextItem;
|
|
46
51
|
hasMore = _yield$maia$Chats$get.hasMore;
|
|
47
52
|
nextOffset = hasMore && nextItem ? Number(nextItem) : null;
|
|
53
|
+
apiItems = items;
|
|
54
|
+
apiIds = new Set(apiItems.map(function (item) {
|
|
55
|
+
return item.sessionExternalId;
|
|
56
|
+
}));
|
|
57
|
+
_get = get(), currentChats = _get.chats, optimisticSessionIds = _get.optimisticSessionIds;
|
|
58
|
+
stillOptimistic = currentChats.filter(function (chat) {
|
|
59
|
+
return optimisticSessionIds.includes(chat.sessionExternalId) && !apiIds.has(chat.sessionExternalId);
|
|
60
|
+
});
|
|
48
61
|
set({
|
|
49
|
-
chats:
|
|
62
|
+
chats: [].concat(_toConsumableArray(stillOptimistic), _toConsumableArray(apiItems)),
|
|
63
|
+
optimisticSessionIds: optimisticSessionIds.filter(function (id) {
|
|
64
|
+
return !apiIds.has(id);
|
|
65
|
+
}),
|
|
50
66
|
loadingChats: false,
|
|
51
67
|
nextOffset: nextOffset,
|
|
52
68
|
limit: limit,
|
|
@@ -75,12 +91,12 @@ export var useChatsStore = create(function (set, get) {
|
|
|
75
91
|
}(),
|
|
76
92
|
loadMoreChats: function () {
|
|
77
93
|
var _loadMoreChats = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref2) {
|
|
78
|
-
var agent, section, onError, lang,
|
|
94
|
+
var agent, section, onError, lang, _get2, nextOffset, limit, isLoadingMoreChats, _yield$maia$Chats$get2, items, nextItem, hasMore, newNextOffset, _t2;
|
|
79
95
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
80
96
|
while (1) switch (_context2.prev = _context2.next) {
|
|
81
97
|
case 0:
|
|
82
98
|
agent = _ref2.agent, section = _ref2.section, onError = _ref2.onError, lang = _ref2.lang;
|
|
83
|
-
|
|
99
|
+
_get2 = get(), nextOffset = _get2.nextOffset, limit = _get2.limit, isLoadingMoreChats = _get2.isLoadingMoreChats;
|
|
84
100
|
if (!(nextOffset === null || isLoadingMoreChats)) {
|
|
85
101
|
_context2.next = 1;
|
|
86
102
|
break;
|
|
@@ -134,6 +150,18 @@ export var useChatsStore = create(function (set, get) {
|
|
|
134
150
|
}
|
|
135
151
|
return loadMoreChats;
|
|
136
152
|
}(),
|
|
153
|
+
prependChat: function prependChat(chat) {
|
|
154
|
+
return set(function (state) {
|
|
155
|
+
var filtered = state.chats.filter(function (existing) {
|
|
156
|
+
return existing.sessionExternalId !== chat.sessionExternalId;
|
|
157
|
+
});
|
|
158
|
+
var alreadyOptimistic = state.optimisticSessionIds.includes(chat.sessionExternalId);
|
|
159
|
+
return {
|
|
160
|
+
chats: [chat].concat(_toConsumableArray(filtered)),
|
|
161
|
+
optimisticSessionIds: alreadyOptimistic ? state.optimisticSessionIds : [].concat(_toConsumableArray(state.optimisticSessionIds), [chat.sessionExternalId])
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
},
|
|
137
165
|
deleteChat: function () {
|
|
138
166
|
var _deleteChat = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref3) {
|
|
139
167
|
var chatId, userId, _t3;
|
|
@@ -148,10 +176,14 @@ export var useChatsStore = create(function (set, get) {
|
|
|
148
176
|
userId: userId
|
|
149
177
|
});
|
|
150
178
|
case 2:
|
|
179
|
+
removePersistedSessionUnread(chatId);
|
|
151
180
|
set(function (state) {
|
|
152
181
|
return {
|
|
153
182
|
chats: state.chats.filter(function (chat) {
|
|
154
183
|
return chat.sessionExternalId !== chatId;
|
|
184
|
+
}),
|
|
185
|
+
optimisticSessionIds: state.optimisticSessionIds.filter(function (id) {
|
|
186
|
+
return id !== chatId;
|
|
155
187
|
})
|
|
156
188
|
};
|
|
157
189
|
});
|
|
@@ -247,4 +279,4 @@ export var useChatsStore = create(function (set, get) {
|
|
|
247
279
|
export var getChatsStoreState = function getChatsStoreState() {
|
|
248
280
|
return useChatsStore.getState();
|
|
249
281
|
};
|
|
250
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJtYWlhIiwiREVGQVVMVF9MSU1JVCIsImluaXRpYWxTdGF0ZSIsImNoYXRzIiwibG9hZGluZ0NoYXRzIiwiaXNMb2FkaW5nTW9yZUNoYXRzIiwibmV4dE9mZnNldCIsImxpbWl0Iiwib2Zmc2V0IiwibW91bnRDb3VudCIsInVzZUNoYXRzU3RvcmUiLCJzZXQiLCJnZXQiLCJfb2JqZWN0U3ByZWFkIiwiZmV0Y2hDaGF0cyIsIl9mZXRjaENoYXRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmIiwiYWdlbnQiLCJzZWN0aW9uIiwiX3JlZiRsaW1pdCIsIl9yZWYkb2Zmc2V0Iiwib25FcnJvciIsImxhbmciLCJfeWllbGQkbWFpYSRDaGF0cyRnZXQiLCJpdGVtcyIsIm5leHRJdGVtIiwiaGFzTW9yZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJDaGF0cyIsImdldENoYXRzQnlVc2VySWQiLCJzZW50IiwiTnVtYmVyIiwiY29uc29sZSIsImVycm9yIiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiLCJsb2FkTW9yZUNoYXRzIiwiX2xvYWRNb3JlQ2hhdHMiLCJfY2FsbGVlMiIsIl9yZWYyIiwiX2dldCIsIl95aWVsZCRtYWlhJENoYXRzJGdldDIiLCJuZXdOZXh0T2Zmc2V0IiwiX3QyIiwiX2NvbnRleHQyIiwiYWJydXB0Iiwic3RhdGUiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfeDIiLCJkZWxldGVDaGF0IiwiX2RlbGV0ZUNoYXQiLCJfY2FsbGVlMyIsIl9yZWYzIiwiY2hhdElkIiwidXNlcklkIiwiX3QzIiwiX2NvbnRleHQzIiwiZmlsdGVyIiwiY2hhdCIsInNlc3Npb25FeHRlcm5hbElkIiwiX3gzIiwidXBkYXRlQ2hhdCIsIl91cGRhdGVDaGF0IiwiX2NhbGxlZTQiLCJfcmVmNCIsIl9jdXJyZW50JHRpdGxlIiwiY3VycmVudCIsImxhc3RRdWVzdGlvbiIsIl90NCIsIl9jb250ZXh0NCIsImZpbmQiLCJjIiwiaWQiLCJ0aXRsZSIsInBhdGNoQ2hhdCIsIm1hcCIsIl94NCIsInJlc2V0IiwiYWNxdWlyZSIsInJlbGVhc2UiLCJuZXdDb3VudCIsIk1hdGgiLCJtYXgiLCJnZXRDaGF0c1N0b3JlU3RhdGUiLCJnZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS91c2VDaGF0c1N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnenVzdGFuZCdcbmltcG9ydCBtYWlhIGZyb20gJy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgdHlwZSB7IENoYXRMaXN0SXRlbSwgRmV0Y2hDaGF0c1BhcmFtcywgTG9hZE1vcmVDaGF0c1BhcmFtcywgRGVsZXRlQ2hhdFBhcmFtcyB9IGZyb20gJy4vY2hhdHNTdG9yZS50eXBlcydcblxuY29uc3QgREVGQVVMVF9MSU1JVCA9IDIwXG5cbnR5cGUgQ2hhdHNTdGF0ZSA9IHtcbiAgY2hhdHM6IENoYXRMaXN0SXRlbVtdXG4gIGxvYWRpbmdDaGF0czogYm9vbGVhblxuICBpc0xvYWRpbmdNb3JlQ2hhdHM6IGJvb2xlYW5cbiAgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbFxuICBsaW1pdDogbnVtYmVyXG4gIG9mZnNldDogbnVtYmVyXG4gIG1vdW50Q291bnQ6IG51bWJlclxufVxuXG50eXBlIENoYXRzQWN0aW9ucyA9IHtcbiAgZmV0Y2hDaGF0czogKHBhcmFtczogRmV0Y2hDaGF0c1BhcmFtcykgPT4gUHJvbWlzZTx2b2lkPlxuICBsb2FkTW9yZUNoYXRzOiAocGFyYW1zOiBMb2FkTW9yZUNoYXRzUGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYXQ6IChwYXJhbXM6IERlbGV0ZUNoYXRQYXJhbXMpID0+IFByb21pc2U8Ym9vbGVhbj5cbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IFBhcnRpYWw8Q2hhdExpc3RJdGVtPiAmIHsgc2Vzc2lvbkV4dGVybmFsSWQ6IHN0cmluZzsgaWQ6IHN0cmluZyB9KSA9PiBQcm9taXNlPGJvb2xlYW4+XG4gIHJlc2V0OiAoKSA9PiB2b2lkXG4gIGFjcXVpcmU6ICgpID0+IHZvaWRcbiAgcmVsZWFzZTogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IENoYXRzU3RhdGUgPSB7XG4gIGNoYXRzOiBbXSxcbiAgbG9hZGluZ0NoYXRzOiB0cnVlLFxuICBpc0xvYWRpbmdNb3JlQ2hhdHM6IGZhbHNlLFxuICBuZXh0T2Zmc2V0OiBudWxsLFxuICBsaW1pdDogREVGQVVMVF9MSU1JVCxcbiAgb2Zmc2V0OiAwLFxuICBtb3VudENvdW50OiAwLFxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdHNTdG9yZSA9IGNyZWF0ZTxDaGF0c1N0YXRlICYgQ2hhdHNBY3Rpb25zPigoc2V0LCBnZXQpID0+ICh7XG4gIC4uLmluaXRpYWxTdGF0ZSxcblxuICBmZXRjaENoYXRzOiBhc3luYyAoeyBhZ2VudCwgc2VjdGlvbiwgbGltaXQgPSBERUZBVUxUX0xJTUlULCBvZmZzZXQgPSAwLCBvbkVycm9yLCBsYW5nIH0pID0+IHtcbiAgICBzZXQoeyBsb2FkaW5nQ2hhdHM6IHRydWUgfSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBpdGVtcywgbmV4dEl0ZW0sIGhhc01vcmUgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdHNCeVVzZXJJZCh7XG4gICAgICAgIGFnZW50LFxuICAgICAgICBzZWN0aW9uLFxuICAgICAgICBsaW1pdCxcbiAgICAgICAgb2Zmc2V0LFxuICAgICAgICBsYW5nLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IG5leHRPZmZzZXQgPSBoYXNNb3JlICYmIG5leHRJdGVtID8gTnVtYmVyKG5leHRJdGVtKSA6IG51bGxcbiAgICAgIHNldCh7XG4gICAgICAgIGNoYXRzOiBpdGVtcyBhcyBDaGF0TGlzdEl0ZW1bXSxcbiAgICAgICAgbG9hZGluZ0NoYXRzOiBmYWxzZSxcbiAgICAgICAgbmV4dE9mZnNldCxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIG9mZnNldDogbmV4dE9mZnNldCA/PyAwLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgY2hhdHM6JywgZXJyb3IpXG4gICAgICBzZXQoeyBsb2FkaW5nQ2hhdHM6IGZhbHNlIH0pXG4gICAgICBvbkVycm9yPy4oKVxuICAgIH1cbiAgfSxcblxuICBsb2FkTW9yZUNoYXRzOiBhc3luYyAoeyBhZ2VudCwgc2VjdGlvbiwgb25FcnJvciwgbGFuZyB9KSA9PiB7XG4gICAgY29uc3QgeyBuZXh0T2Zmc2V0LCBsaW1pdCwgaXNMb2FkaW5nTW9yZUNoYXRzIH0gPSBnZXQoKVxuICAgIGlmIChuZXh0T2Zmc2V0ID09PSBudWxsIHx8IGlzTG9hZGluZ01vcmVDaGF0cykgcmV0dXJuXG4gICAgc2V0KHsgaXNMb2FkaW5nTW9yZUNoYXRzOiB0cnVlIH0pXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgaXRlbXMsIG5leHRJdGVtLCBoYXNNb3JlIH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRzQnlVc2VySWQoe1xuICAgICAgICBhZ2VudCxcbiAgICAgICAgc2VjdGlvbixcbiAgICAgICAgbGltaXQsXG4gICAgICAgIG9mZnNldDogbmV4dE9mZnNldCxcbiAgICAgICAgbGFuZyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBuZXdOZXh0T2Zmc2V0ID0gaGFzTW9yZSAmJiBuZXh0SXRlbSA/IE51bWJlcihuZXh0SXRlbSkgOiBudWxsXG4gICAgICBzZXQoc3RhdGUgPT4gKHtcbiAgICAgICAgY2hhdHM6IFsuLi5zdGF0ZS5jaGF0cywgLi4uKGl0ZW1zIGFzIENoYXRMaXN0SXRlbVtdKV0sXG4gICAgICAgIGlzTG9hZGluZ01vcmVDaGF0czogZmFsc2UsXG4gICAgICAgIG5leHRPZmZzZXQ6IG5ld05leHRPZmZzZXQsXG4gICAgICAgIG9mZnNldDogbmV3TmV4dE9mZnNldCA/PyAwLFxuICAgICAgfSkpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgbW9yZSBjaGF0czonLCBlcnJvcilcbiAgICAgIHNldCh7IGlzTG9hZGluZ01vcmVDaGF0czogZmFsc2UgfSlcbiAgICAgIG9uRXJyb3I/LigpXG4gICAgfVxuICB9LFxuXG4gIGRlbGV0ZUNoYXQ6IGFzeW5jICh7IGNoYXRJZCwgdXNlcklkIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbWFpYS5DaGF0cy5kZWxldGVDaGF0KHsgY2hhdElkLCB1c2VySWQgfSlcbiAgICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgICBjaGF0czogc3RhdGUuY2hhdHMuZmlsdGVyKGNoYXQgPT4gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZCAhPT0gY2hhdElkKSxcbiAgICAgIH0pKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgY2hhdDonLCBlcnJvcilcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSxcblxuICB1cGRhdGVDaGF0OiBhc3luYyBjaGF0ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3VycmVudCA9IGdldCgpLmNoYXRzLmZpbmQoYyA9PiBjLmlkID09PSBjaGF0LmlkKVxuICAgICAgY29uc3QgbGFzdFF1ZXN0aW9uID0gY3VycmVudD8udGl0bGUgPz8gY2hhdC50aXRsZSA/PyAnJ1xuICAgICAgYXdhaXQgbWFpYS5DaGF0cy5wYXRjaENoYXQoe1xuICAgICAgICBjaGF0SWQ6IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQsXG4gICAgICAgIGxhc3RRdWVzdGlvbixcbiAgICAgICAgLi4uKGNoYXQudGl0bGUgIT0gbnVsbCAmJiB7IHRpdGxlOiBjaGF0LnRpdGxlIH0pLFxuICAgICAgfSlcbiAgICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgICBjaGF0czogc3RhdGUuY2hhdHMubWFwKGMgPT4gKGMuaWQgPT09IGNoYXQuaWQgPyB7IC4uLmMsIC4uLmNoYXQgfSA6IGMpKSxcbiAgICAgIH0pKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgdXBkYXRpbmcgY2hhdDonLCBlcnJvcilcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSxcblxuICByZXNldDogKCkgPT4gc2V0KHN0YXRlID0+ICh7IC4uLmluaXRpYWxTdGF0ZSwgbW91bnRDb3VudDogc3RhdGUubW91bnRDb3VudCB9KSksXG5cbiAgYWNxdWlyZTogKCkgPT4gc2V0KHN0YXRlID0+ICh7IG1vdW50Q291bnQ6IHN0YXRlLm1vdW50Q291bnQgKyAxIH0pKSxcblxuICByZWxlYXNlOiAoKSA9PiB7XG4gICAgc2V0KHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IG5ld0NvdW50ID0gTWF0aC5tYXgoMCwgc3RhdGUubW91bnRDb3VudCAtIDEpXG4gICAgICBpZiAobmV3Q291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uaW5pdGlhbFN0YXRlLCBtb3VudENvdW50OiAwIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IG1vdW50Q291bnQ6IG5ld0NvdW50IH1cbiAgICB9KVxuICB9LFxufSkpXG5cbmV4cG9ydCBjb25zdCBnZXRDaGF0c1N0b3JlU3RhdGUgPSAoKSA9PiB1c2VDaGF0c1N0b3JlLmdldFN0YXRlKClcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBLFNBQVNBLE1BQU0sUUFBUSxTQUFTO0FBQ2hDLE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFHbkMsSUFBTUMsYUFB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
|
|
282
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJtYWlhIiwicmVtb3ZlUGVyc2lzdGVkU2Vzc2lvblVucmVhZCIsIkRFRkFVTFRfTElNSVQiLCJpbml0aWFsU3RhdGUiLCJjaGF0cyIsIm9wdGltaXN0aWNTZXNzaW9uSWRzIiwibG9hZGluZ0NoYXRzIiwiaXNMb2FkaW5nTW9yZUNoYXRzIiwibmV4dE9mZnNldCIsImxpbWl0Iiwib2Zmc2V0IiwibW91bnRDb3VudCIsInVzZUNoYXRzU3RvcmUiLCJzZXQiLCJnZXQiLCJfb2JqZWN0U3ByZWFkIiwiZmV0Y2hDaGF0cyIsIl9mZXRjaENoYXRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmIiwiYWdlbnQiLCJzZWN0aW9uIiwiX3JlZiRsaW1pdCIsIl9yZWYkb2Zmc2V0Iiwib25FcnJvciIsImxhbmciLCJfcmVmJGJhY2tncm91bmQiLCJiYWNrZ3JvdW5kIiwiaGFzRXhpc3RpbmdDaGF0cyIsIl95aWVsZCRtYWlhJENoYXRzJGdldCIsIml0ZW1zIiwibmV4dEl0ZW0iLCJoYXNNb3JlIiwiYXBpSXRlbXMiLCJhcGlJZHMiLCJfZ2V0IiwiY3VycmVudENoYXRzIiwic3RpbGxPcHRpbWlzdGljIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsIkNoYXRzIiwiZ2V0Q2hhdHNCeVVzZXJJZCIsInNlbnQiLCJOdW1iZXIiLCJTZXQiLCJtYXAiLCJpdGVtIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJmaWx0ZXIiLCJjaGF0IiwiaW5jbHVkZXMiLCJoYXMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJpZCIsImNvbnNvbGUiLCJlcnJvciIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1vcmVDaGF0cyIsIl9sb2FkTW9yZUNoYXRzIiwiX2NhbGxlZTIiLCJfcmVmMiIsIl9nZXQyIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0MiIsIm5ld05leHRPZmZzZXQiLCJfdDIiLCJfY29udGV4dDIiLCJhYnJ1cHQiLCJzdGF0ZSIsIl94MiIsInByZXBlbmRDaGF0IiwiZmlsdGVyZWQiLCJleGlzdGluZyIsImFscmVhZHlPcHRpbWlzdGljIiwiZGVsZXRlQ2hhdCIsIl9kZWxldGVDaGF0IiwiX2NhbGxlZTMiLCJfcmVmMyIsImNoYXRJZCIsInVzZXJJZCIsIl90MyIsIl9jb250ZXh0MyIsIl94MyIsInVwZGF0ZUNoYXQiLCJfdXBkYXRlQ2hhdCIsIl9jYWxsZWU0IiwiX3JlZjQiLCJfY3VycmVudCR0aXRsZSIsImN1cnJlbnQiLCJsYXN0UXVlc3Rpb24iLCJfdDQiLCJfY29udGV4dDQiLCJmaW5kIiwiYyIsInRpdGxlIiwicGF0Y2hDaGF0IiwiX3g0IiwicmVzZXQiLCJhY3F1aXJlIiwicmVsZWFzZSIsIm5ld0NvdW50IiwiTWF0aCIsIm1heCIsImdldENoYXRzU3RvcmVTdGF0ZSIsImdldFN0YXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL3VzZUNoYXRzU3RvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICd6dXN0YW5kJ1xuaW1wb3J0IG1haWEgZnJvbSAnLi4vc2VydmljZXMvbWFpYSdcbmltcG9ydCB0eXBlIHsgQ2hhdExpc3RJdGVtLCBGZXRjaENoYXRzUGFyYW1zLCBMb2FkTW9yZUNoYXRzUGFyYW1zLCBEZWxldGVDaGF0UGFyYW1zIH0gZnJvbSAnLi9jaGF0c1N0b3JlLnR5cGVzJ1xuaW1wb3J0IHsgcmVtb3ZlUGVyc2lzdGVkU2Vzc2lvblVucmVhZCB9IGZyb20gJy4vc2Vzc2lvbnMvc2Vzc2lvblVucmVhZFBlcnNpc3RlbmNlJ1xuXG5jb25zdCBERUZBVUxUX0xJTUlUID0gMjBcblxudHlwZSBDaGF0c1N0YXRlID0ge1xuICBjaGF0czogQ2hhdExpc3RJdGVtW11cbiAgLyoqIFNlc2lvbmVzIGFncmVnYWRhcyBvcHRpbWlzdGFtZW50ZSBoYXN0YSBxdWUgZWwgYmFja2VuZCBsYXMgZGV2dWVsdmEgZW4gR0VUIHNlc3Npb25zLiAqL1xuICBvcHRpbWlzdGljU2Vzc2lvbklkczogc3RyaW5nW11cbiAgbG9hZGluZ0NoYXRzOiBib29sZWFuXG4gIGlzTG9hZGluZ01vcmVDaGF0czogYm9vbGVhblxuICBuZXh0T2Zmc2V0OiBudW1iZXIgfCBudWxsXG4gIGxpbWl0OiBudW1iZXJcbiAgb2Zmc2V0OiBudW1iZXJcbiAgbW91bnRDb3VudDogbnVtYmVyXG59XG5cbnR5cGUgQ2hhdHNBY3Rpb25zID0ge1xuICBmZXRjaENoYXRzOiAocGFyYW1zOiBGZXRjaENoYXRzUGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxvYWRNb3JlQ2hhdHM6IChwYXJhbXM6IExvYWRNb3JlQ2hhdHNQYXJhbXMpID0+IFByb21pc2U8dm9pZD5cbiAgcHJlcGVuZENoYXQ6IChjaGF0OiBDaGF0TGlzdEl0ZW0pID0+IHZvaWRcbiAgZGVsZXRlQ2hhdDogKHBhcmFtczogRGVsZXRlQ2hhdFBhcmFtcykgPT4gUHJvbWlzZTxib29sZWFuPlxuICB1cGRhdGVDaGF0OiAoY2hhdDogUGFydGlhbDxDaGF0TGlzdEl0ZW0+ICYgeyBzZXNzaW9uRXh0ZXJuYWxJZDogc3RyaW5nOyBpZDogc3RyaW5nIH0pID0+IFByb21pc2U8Ym9vbGVhbj5cbiAgcmVzZXQ6ICgpID0+IHZvaWRcbiAgYWNxdWlyZTogKCkgPT4gdm9pZFxuICByZWxlYXNlOiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogQ2hhdHNTdGF0ZSA9IHtcbiAgY2hhdHM6IFtdLFxuICBvcHRpbWlzdGljU2Vzc2lvbklkczogW10sXG4gIGxvYWRpbmdDaGF0czogdHJ1ZSxcbiAgaXNMb2FkaW5nTW9yZUNoYXRzOiBmYWxzZSxcbiAgbmV4dE9mZnNldDogbnVsbCxcbiAgbGltaXQ6IERFRkFVTFRfTElNSVQsXG4gIG9mZnNldDogMCxcbiAgbW91bnRDb3VudDogMCxcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUNoYXRzU3RvcmUgPSBjcmVhdGU8Q2hhdHNTdGF0ZSAmIENoYXRzQWN0aW9ucz4oKHNldCwgZ2V0KSA9PiAoe1xuICAuLi5pbml0aWFsU3RhdGUsXG5cbiAgZmV0Y2hDaGF0czogYXN5bmMgKHsgYWdlbnQsIHNlY3Rpb24sIGxpbWl0ID0gREVGQVVMVF9MSU1JVCwgb2Zmc2V0ID0gMCwgb25FcnJvciwgbGFuZywgYmFja2dyb3VuZCA9IGZhbHNlIH0pID0+IHtcbiAgICBjb25zdCBoYXNFeGlzdGluZ0NoYXRzID0gZ2V0KCkuY2hhdHMubGVuZ3RoID4gMFxuICAgIGlmICghYmFja2dyb3VuZCB8fCAhaGFzRXhpc3RpbmdDaGF0cykge1xuICAgICAgc2V0KHsgbG9hZGluZ0NoYXRzOiB0cnVlIH0pXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGl0ZW1zLCBuZXh0SXRlbSwgaGFzTW9yZSB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0c0J5VXNlcklkKHtcbiAgICAgICAgYWdlbnQsXG4gICAgICAgIHNlY3Rpb24sXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIGxhbmcsXG4gICAgICB9KVxuICAgICAgY29uc3QgbmV4dE9mZnNldCA9IGhhc01vcmUgJiYgbmV4dEl0ZW0gPyBOdW1iZXIobmV4dEl0ZW0pIDogbnVsbFxuICAgICAgY29uc3QgYXBpSXRlbXMgPSBpdGVtcyBhcyBDaGF0TGlzdEl0ZW1bXVxuICAgICAgY29uc3QgYXBpSWRzID0gbmV3IFNldChhcGlJdGVtcy5tYXAoaXRlbSA9PiBpdGVtLnNlc3Npb25FeHRlcm5hbElkKSlcbiAgICAgIGNvbnN0IHsgY2hhdHM6IGN1cnJlbnRDaGF0cywgb3B0aW1pc3RpY1Nlc3Npb25JZHMgfSA9IGdldCgpXG4gICAgICBjb25zdCBzdGlsbE9wdGltaXN0aWMgPSBjdXJyZW50Q2hhdHMuZmlsdGVyKFxuICAgICAgICBjaGF0ID0+IG9wdGltaXN0aWNTZXNzaW9uSWRzLmluY2x1ZGVzKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpICYmICFhcGlJZHMuaGFzKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICApXG4gICAgICBzZXQoe1xuICAgICAgICBjaGF0czogWy4uLnN0aWxsT3B0aW1pc3RpYywgLi4uYXBpSXRlbXNdLFxuICAgICAgICBvcHRpbWlzdGljU2Vzc2lvbklkczogb3B0aW1pc3RpY1Nlc3Npb25JZHMuZmlsdGVyKGlkID0+ICFhcGlJZHMuaGFzKGlkKSksXG4gICAgICAgIGxvYWRpbmdDaGF0czogZmFsc2UsXG4gICAgICAgIG5leHRPZmZzZXQsXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQ6IG5leHRPZmZzZXQgPz8gMCxcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNoYXRzOicsIGVycm9yKVxuICAgICAgc2V0KHsgbG9hZGluZ0NoYXRzOiBmYWxzZSB9KVxuICAgICAgb25FcnJvcj8uKClcbiAgICB9XG4gIH0sXG5cbiAgbG9hZE1vcmVDaGF0czogYXN5bmMgKHsgYWdlbnQsIHNlY3Rpb24sIG9uRXJyb3IsIGxhbmcgfSkgPT4ge1xuICAgIGNvbnN0IHsgbmV4dE9mZnNldCwgbGltaXQsIGlzTG9hZGluZ01vcmVDaGF0cyB9ID0gZ2V0KClcbiAgICBpZiAobmV4dE9mZnNldCA9PT0gbnVsbCB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMpIHJldHVyblxuICAgIHNldCh7IGlzTG9hZGluZ01vcmVDaGF0czogdHJ1ZSB9KVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGl0ZW1zLCBuZXh0SXRlbSwgaGFzTW9yZSB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0c0J5VXNlcklkKHtcbiAgICAgICAgYWdlbnQsXG4gICAgICAgIHNlY3Rpb24sXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgIGxhbmcsXG4gICAgICB9KVxuICAgICAgY29uc3QgbmV3TmV4dE9mZnNldCA9IGhhc01vcmUgJiYgbmV4dEl0ZW0gPyBOdW1iZXIobmV4dEl0ZW0pIDogbnVsbFxuICAgICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICAgIGNoYXRzOiBbLi4uc3RhdGUuY2hhdHMsIC4uLihpdGVtcyBhcyBDaGF0TGlzdEl0ZW1bXSldLFxuICAgICAgICBpc0xvYWRpbmdNb3JlQ2hhdHM6IGZhbHNlLFxuICAgICAgICBuZXh0T2Zmc2V0OiBuZXdOZXh0T2Zmc2V0LFxuICAgICAgICBvZmZzZXQ6IG5ld05leHRPZmZzZXQgPz8gMCxcbiAgICAgIH0pKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIG1vcmUgY2hhdHM6JywgZXJyb3IpXG4gICAgICBzZXQoeyBpc0xvYWRpbmdNb3JlQ2hhdHM6IGZhbHNlIH0pXG4gICAgICBvbkVycm9yPy4oKVxuICAgIH1cbiAgfSxcblxuICBwcmVwZW5kQ2hhdDogY2hhdCA9PlxuICAgIHNldChzdGF0ZSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZCA9IHN0YXRlLmNoYXRzLmZpbHRlcihleGlzdGluZyA9PiBleGlzdGluZy5zZXNzaW9uRXh0ZXJuYWxJZCAhPT0gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIGNvbnN0IGFscmVhZHlPcHRpbWlzdGljID0gc3RhdGUub3B0aW1pc3RpY1Nlc3Npb25JZHMuaW5jbHVkZXMoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoYXRzOiBbY2hhdCwgLi4uZmlsdGVyZWRdLFxuICAgICAgICBvcHRpbWlzdGljU2Vzc2lvbklkczogYWxyZWFkeU9wdGltaXN0aWNcbiAgICAgICAgICA/IHN0YXRlLm9wdGltaXN0aWNTZXNzaW9uSWRzXG4gICAgICAgICAgOiBbLi4uc3RhdGUub3B0aW1pc3RpY1Nlc3Npb25JZHMsIGNoYXQuc2Vzc2lvbkV4dGVybmFsSWRdLFxuICAgICAgfVxuICAgIH0pLFxuXG4gIGRlbGV0ZUNoYXQ6IGFzeW5jICh7IGNoYXRJZCwgdXNlcklkIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbWFpYS5DaGF0cy5kZWxldGVDaGF0KHsgY2hhdElkLCB1c2VySWQgfSlcbiAgICAgIHJlbW92ZVBlcnNpc3RlZFNlc3Npb25VbnJlYWQoY2hhdElkKVxuICAgICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICAgIGNoYXRzOiBzdGF0ZS5jaGF0cy5maWx0ZXIoY2hhdCA9PiBjaGF0LnNlc3Npb25FeHRlcm5hbElkICE9PSBjaGF0SWQpLFxuICAgICAgICBvcHRpbWlzdGljU2Vzc2lvbklkczogc3RhdGUub3B0aW1pc3RpY1Nlc3Npb25JZHMuZmlsdGVyKGlkID0+IGlkICE9PSBjaGF0SWQpLFxuICAgICAgfSkpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkZWxldGluZyBjaGF0OicsIGVycm9yKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9LFxuXG4gIHVwZGF0ZUNoYXQ6IGFzeW5jIGNoYXQgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gZ2V0KCkuY2hhdHMuZmluZChjID0+IGMuaWQgPT09IGNoYXQuaWQpXG4gICAgICBjb25zdCBsYXN0UXVlc3Rpb24gPSBjdXJyZW50Py50aXRsZSA/PyBjaGF0LnRpdGxlID8/ICcnXG4gICAgICBhd2FpdCBtYWlhLkNoYXRzLnBhdGNoQ2hhdCh7XG4gICAgICAgIGNoYXRJZDogY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZCxcbiAgICAgICAgbGFzdFF1ZXN0aW9uLFxuICAgICAgICAuLi4oY2hhdC50aXRsZSAhPSBudWxsICYmIHsgdGl0bGU6IGNoYXQudGl0bGUgfSksXG4gICAgICB9KVxuICAgICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICAgIGNoYXRzOiBzdGF0ZS5jaGF0cy5tYXAoYyA9PiAoYy5pZCA9PT0gY2hhdC5pZCA/IHsgLi4uYywgLi4uY2hhdCB9IDogYykpLFxuICAgICAgfSkpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB1cGRhdGluZyBjaGF0OicsIGVycm9yKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9LFxuXG4gIHJlc2V0OiAoKSA9PiBzZXQoc3RhdGUgPT4gKHsgLi4uaW5pdGlhbFN0YXRlLCBtb3VudENvdW50OiBzdGF0ZS5tb3VudENvdW50IH0pKSxcblxuICBhY3F1aXJlOiAoKSA9PiBzZXQoc3RhdGUgPT4gKHsgbW91bnRDb3VudDogc3RhdGUubW91bnRDb3VudCArIDEgfSkpLFxuXG4gIHJlbGVhc2U6ICgpID0+IHtcbiAgICBzZXQoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgbmV3Q291bnQgPSBNYXRoLm1heCgwLCBzdGF0ZS5tb3VudENvdW50IC0gMSlcbiAgICAgIGlmIChuZXdDb3VudCA9PT0gMCkge1xuICAgICAgICByZXR1cm4geyAuLi5pbml0aWFsU3RhdGUsIG1vdW50Q291bnQ6IDAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgbW91bnRDb3VudDogbmV3Q291bnQgfVxuICAgIH0pXG4gIH0sXG59KSlcblxuZXhwb3J0IGNvbnN0IGdldENoYXRzU3RvcmVTdGF0ZSA9ICgpID0+IHVzZUNoYXRzU3RvcmUuZ2V0U3RhdGUoKVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0EsU0FBU0EsTUFBTSxRQUFRLFNBQVM7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLGtCQUFrQjtBQUVuQyxTQUFTQyw0QkFBNEIsUUFBUSxxQ0FBcUM7QUFFbEYsSUFBTUMsYUFBYSxHQUFHLEVBQUU7QUF5QnhCLElBQU1DLFlBQXdC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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3N0cmVhbUFjdGl2aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0cmVhbUFjdGl2aXR5UGhhc2UgPVxuICB8ICdnZW5lcmF0aW5nJ1xuICB8ICd0aGlua2luZydcbiAgfCAnYWN0aW9uJ1xuICB8ICd3cml0aW5nJ1xuICB8ICdzZWFyY2gnXG4gIHwgJ2RlZXBfc2VhcmNoJ1xuICB8ICdhdHRhY2htZW50J1xuICB8ICdwcm9jZXNzaW5nJ1xuXG5leHBvcnQgdHlwZSBTdHJlYW1BY3Rpdml0eSA9IHtcbiAgcGhhc2U6IFN0cmVhbUFjdGl2aXR5UGhhc2VcbiAgbWVzc2FnZTogc3RyaW5nXG4gIGF0dGFjaG1lbnRzQ291bnQ/OiBudW1iZXJcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/types/userType.d.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3VzZXJUeXBlLmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBQZXJtaXNzaW9uVHlwZXMgPVxuICB8ICdwcm95ZWN0b3MnXG4gIHwgJ3Rhc2tzJ1xuICB8ICd0YXNrc19kZWFkbGluZSdcbiAgfCAnbm90aWZpY2F0aW9ucydcbiAgfCAnaG91cnMnXG4gIHwgJ2dhbnR0J1xuICB8ICdxdW90YXRpb25zJ1xuICB8ICdjbGllbnRzJ1xuICB8ICd1c2VycydcbiAgfCAnbGVhdmVzJ1xuICB8ICdwcm9qZWN0X2dhbnR0J1xuICB8ICdzZXR0aW5ncydcbiAgfCAncGFzc3dvcmRzJ1xuICB8ICdwcm9qZWN0X3RlbXBsYXRlcydcbiAgfCAnbWV0cmljcydcbiAgfCAnZGFzaGJvYXJkcydcbiAgfCAnc2FsYXJ5J1xuICB8ICdhaV9hZ2VudHMnXG5cbnR5cGUgUGVybWlzc2lvbkFjdGlvbnMgPVxuICB8ICdhcmNoaXZlJ1xuICB8ICd2aWV3J1xuICB8ICdlZGl0J1xuICB8ICdjcmVhdGUnXG4gIHwgJ2RlbGV0ZSdcbiAgfCAnZGVsZXRlRmlsZSdcbiAgfCAndmlld1VzZXJDYXBhY2l0eSdcbiAgfCAndmlld0hvdXJzJ1xuXG50eXBlIENvbXBhbnlJbmZvID0ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xuICBzdWJkb21haW46IHN0cmluZ1xuICB1c2VyX2lkOiBudW1iZXJcbiAgcGljdHVyZTogc3RyaW5nXG4gIHVzZXJzX3E6IG51bWJlclxufVxuXG50eXBlIFVzZXJJbnRlcm5hbFByb3BzID0ge1xuICBpZDogbnVtYmVyXG4gIGZpcnN0X25hbWU6IHN0cmluZ1xuICBsYXN0X25hbWU6IHN0cmluZ1xuICBwaWN0dXJlOiBzdHJpbmcgfCBudWxsXG4gIGxhbmc6IHN0cmluZ1xuICBjb21wYW55X2lkOiBudW1iZXJcbiAgY29tcGFueTogc3RyaW5nXG4gIHJlbWFpbmluZ19ob3VyczogbnVtYmVyXG4gIGVtYWlsOiBzdHJpbmdcbiAgdHlwZTogc3RyaW5nXG4gIHVzZXJfdHlwZTogc3RyaW5nXG4gIHJvbGU6IHN0cmluZ1xuICByb2xlX2lkOiBudW1iZXJcbiAgY29tcGFuaWVzOiBDb21wYW55SW5mb1tdXG4gIGNvbXBhbnlfc2VnbWVudDogbnVsbCB8IHN0cmluZ1xuICBkYWlseV9ob3VyczogbnVtYmVyXG4gIG1vbnRobHlfaG91cnM6IG51bWJlclxuICBmaXJzdF91c2VyOiBib29sZWFuXG4gIGxlYXZlczogbnVsbCB8IHN0cmluZ1xuICB1c2VyX2NyZWF0ZWRfYXQ6IHN0cmluZ1xuICBjb21wYW55X2NyZWF0ZWRfYXQ6IHN0cmluZ1xuICBnbXQ6IHN0cmluZ1xuICB0aW1lem9uZTogc3RyaW5nXG4gIGltcGxlbWVudGVyOiBib29sZWFuXG4gIGNvbXBhbnlfdXNlcnNfcV9wYWlkOiBudW1iZXJcbiAgY29tcGFueV91c2Vyc19xX2F2YWlsYWJsZTogbnVtYmVyXG4gIGhhc19tZXRyaWNzX3ZpZXc6IGJvb2xlYW5cbiAgaGFzX3F1b3RhdGlvbnNfdmlldzogYm9vbGVhblxuICBoYXNfcXVvdGF0aW9uc19jcmVhdGU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBVc2VyUHJvcHMgPSB7XG4gIHBlcm1pc3Npb25zOiB7XG4gICAgW3ggaW4gUGVybWlzc2lvblR5cGVzXToge1xuICAgICAgW3kgaW4gUGVybWlzc2lvbkFjdGlvbnNdPzogYm9vbGVhblxuICAgIH1cbiAgfVxuICBpbmZvOiBVc2VySW50ZXJuYWxQcm9wc1xuICBzZXR0aW5nczoge1xuICAgIGFsbG93X2luX2Rlc2lnbl9zdGF0dXM6IGJvb2xlYW5cbiAgICBhbGxvd19pbl9yZXZpZXdfc3RhdHVzOiBib29sZWFuXG4gIH1cbn1cblxuLyogTm90ZXM6XG4gIFRoZXJlIGFyZSBtb3JlIHNldHRpbmdzIGFuZCB1c2VyIGluZm8ga2V5cywgdGhpcyBkaXNwbGF5cyB0aGUgbW9zdCB1c2VkIG9uZXNcblxuICBVc2VyIHBvc3NpYmxlIHBpY3R1cmUgZGF0YSAocG5nL2pwZy9qcGVnL2pmaWYvanBlZylcbiAgICAtICd1c2VyX2ltYWdlJywgJ3VzZXInLCAnbm9fdXNlcicsICdudWxsJ1xuICAgIC0gbnVsbFxuICAgIC0gW251bWJlcl0tW251bWJlcl1cbiAgICAtIGMtW2NvbXBhbnlJZF0tW2hhc2hdXG4qL1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@projectcor/maia-components",
|
|
3
|
-
"version": "2.11.78-
|
|
3
|
+
"version": "2.11.78-2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"repository": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"clean:web": "rm -Rf ~/cor/dockerEnviroment/web/node_modules/@projectcor/[REPLACE_WITH_YOUR_LIBRARY_NAME]/lib",
|
|
22
22
|
"copy:web": "cp -R ./lib ~/cor/dockerEnviroment/web/node_modules/@projectcor/[REPLACE_WITH_YOUR_LIBRARY_NAME]/lib",
|
|
23
23
|
"eslint": "eslint \"src/**/*.{ts,tsx,js}\"",
|
|
24
|
-
"prepare": "husky
|
|
24
|
+
"prepare": "husky",
|
|
25
25
|
"start": "node scripts/auth-and-start.js",
|
|
26
26
|
"start:no-auth": "NODE_ENV=development webpack-dev-server --mode development",
|
|
27
27
|
"test:coverage": "npm test -- --coverage",
|
|
@@ -37,55 +37,17 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@streamdown/code": "^1.0.1",
|
|
40
|
-
"react-file-viewer": "^1.2.1",
|
|
41
40
|
"rehype-sanitize": "^6.0.0",
|
|
41
|
+
"react-file-viewer": "^1.2.1",
|
|
42
42
|
"streamdown": "^2.1.0",
|
|
43
|
-
"xlsx": "
|
|
43
|
+
"xlsx": "^0.18.5",
|
|
44
44
|
"zustand": "^4.* || ^5.*"
|
|
45
45
|
},
|
|
46
|
-
"overrides": {
|
|
47
|
-
"brace-expansion@1": "1.1.16",
|
|
48
|
-
"brace-expansion@2": "2.1.2",
|
|
49
|
-
"brace-expansion@5": "5.0.8",
|
|
50
|
-
"body-parser": "^1.20.6",
|
|
51
|
-
"@babel/plugin-transform-modules-systemjs": "^7.29.7",
|
|
52
|
-
"@tootallnate/once": "^3.0.1",
|
|
53
|
-
"fast-uri": "^3.1.4",
|
|
54
|
-
"flatted": "^3.4.2",
|
|
55
|
-
"follow-redirects": "^1.16.0",
|
|
56
|
-
"form-data": "^4.0.6",
|
|
57
|
-
"got": "^11.8.6",
|
|
58
|
-
"handlebars": "^4.7.9",
|
|
59
|
-
"http-proxy-middleware": "^2.0.10",
|
|
60
|
-
"js-yaml@3": "3.15.0",
|
|
61
|
-
"js-yaml@4": "4.3.0",
|
|
62
|
-
"jszip": "^3.10.1",
|
|
63
|
-
"lodash": "^4.18.1",
|
|
64
|
-
"lodash@3": "4.18.1",
|
|
65
|
-
"mammoth": "^1.11.0",
|
|
66
|
-
"node-forge": "^1.4.0",
|
|
67
|
-
"path-to-regexp@0.1": "0.1.13",
|
|
68
|
-
"pdfjs-dist": "4.10.38",
|
|
69
|
-
"picomatch@2": "2.3.2",
|
|
70
|
-
"picomatch@4": "4.0.4",
|
|
71
|
-
"postcss": "^8.5.10",
|
|
72
|
-
"qs": "^6.15.2",
|
|
73
|
-
"shell-quote": "^1.9.0",
|
|
74
|
-
"tar": "^7.5.22",
|
|
75
|
-
"three": "0.125.0",
|
|
76
|
-
"tmp": "^0.2.6",
|
|
77
|
-
"underscore": "^1.13.8",
|
|
78
|
-
"websocket-driver": "^0.7.5",
|
|
79
|
-
"ajv@6": "6.14.0",
|
|
80
|
-
"ws@7": "7.5.11",
|
|
81
|
-
"ws@8": "8.21.0",
|
|
82
|
-
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
83
|
-
"yaml": "^1.10.3"
|
|
84
|
-
},
|
|
85
46
|
"devDependencies": {
|
|
86
|
-
"
|
|
87
|
-
"@
|
|
88
|
-
"@babel/
|
|
47
|
+
"postcss-loader": "^8.2.0",
|
|
48
|
+
"@apollo/client": "3.8.0",
|
|
49
|
+
"@babel/cli": "^7.25.6",
|
|
50
|
+
"@babel/core": "^7.25.2",
|
|
89
51
|
"@babel/eslint-parser": "^7.25.1",
|
|
90
52
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
91
53
|
"@babel/plugin-proposal-export-default-from": "^7.24.7",
|
|
@@ -115,12 +77,12 @@
|
|
|
115
77
|
"@projectcor/tooltipv2": "^2.0.1",
|
|
116
78
|
"@projectcor/user-avatar": "2.0.2",
|
|
117
79
|
"@testing-library/jest-dom": "^5.17.0",
|
|
118
|
-
"@testing-library/react": "^
|
|
80
|
+
"@testing-library/react": "^14.3.1",
|
|
119
81
|
"@testing-library/user-event": "^12.8.3",
|
|
120
82
|
"@types/jest": "^27.5.2",
|
|
121
|
-
"@types/node": "^
|
|
83
|
+
"@types/node": "^16.18.126",
|
|
122
84
|
"@types/react": "^18.3.5",
|
|
123
|
-
"@types/react-dom": "^
|
|
85
|
+
"@types/react-dom": "^18.3.0",
|
|
124
86
|
"@types/styled-components": "^5.1.34",
|
|
125
87
|
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
126
88
|
"@typescript-eslint/parser": "^6.21.0",
|
|
@@ -137,20 +99,20 @@
|
|
|
137
99
|
"dotenv-webpack": "^8.1.0",
|
|
138
100
|
"emoji-mart": "^5.6.0",
|
|
139
101
|
"eslint": "^8.57.0",
|
|
102
|
+
"framer-motion": "^12.0.0",
|
|
140
103
|
"eslint-config-airbnb": "^19.0.4",
|
|
141
104
|
"eslint-config-prettier": "^9.1.0",
|
|
142
|
-
"eslint-import-resolver-typescript": "^
|
|
105
|
+
"eslint-import-resolver-typescript": "^3.6.3",
|
|
143
106
|
"eslint-plugin-import": "^2.29.1",
|
|
144
107
|
"eslint-plugin-jsx-a11y": "^6.9.0",
|
|
145
108
|
"eslint-plugin-node": "^11.1.0",
|
|
146
109
|
"eslint-plugin-prettier": "^5.2.1",
|
|
147
110
|
"eslint-plugin-react": "^7.35.0",
|
|
148
111
|
"eslint-plugin-react-hooks": "^4.6.2",
|
|
149
|
-
"
|
|
150
|
-
"graphql": "^17.0.2",
|
|
112
|
+
"graphql": "^15.9.0",
|
|
151
113
|
"html-webpack-plugin": "^5.6.0",
|
|
152
114
|
"husky": "^8.0.3",
|
|
153
|
-
"i18next": "
|
|
115
|
+
"i18next": "19.9.2",
|
|
154
116
|
"intersection-observer": "^0.12.0",
|
|
155
117
|
"jest": "^29.7.0",
|
|
156
118
|
"jest-canvas-mock": "^2.5.2",
|
|
@@ -158,19 +120,18 @@
|
|
|
158
120
|
"jest-styled-components": "^7.2.0",
|
|
159
121
|
"lottie-react": "^2.4.0",
|
|
160
122
|
"mini-css-extract-plugin": "^2.9.1",
|
|
161
|
-
"moment": "2.
|
|
162
|
-
"np": "
|
|
123
|
+
"moment": "2.29.1",
|
|
124
|
+
"np": "^6.5.0",
|
|
163
125
|
"path-browserify": "^1.0.1",
|
|
164
|
-
"postcss": "^8.5.
|
|
165
|
-
"postcss-loader": "^8.2.0",
|
|
126
|
+
"postcss": "^8.5.6",
|
|
166
127
|
"prettier": "^3.3.3",
|
|
167
128
|
"process": "0.11.10",
|
|
168
129
|
"react": "18.2.0",
|
|
169
|
-
"react-dom": "
|
|
130
|
+
"react-dom": "18.2.0",
|
|
170
131
|
"react-i18next": "11.18.6",
|
|
171
|
-
"react-router-dom": "6.
|
|
172
|
-
"react-tooltip": "^
|
|
173
|
-
"react-tracked": "^
|
|
132
|
+
"react-router-dom": "6.8.0",
|
|
133
|
+
"react-tooltip": "^5.29.1",
|
|
134
|
+
"react-tracked": "^1.7.14",
|
|
174
135
|
"stream-browserify": "^3.0.0",
|
|
175
136
|
"style-loader": "^3.3.4",
|
|
176
137
|
"styled-components": "^5.3.11",
|
|
@@ -180,11 +141,11 @@
|
|
|
180
141
|
"ts-jest": "^29.2.5",
|
|
181
142
|
"ts-loader": "^9.5.1",
|
|
182
143
|
"typescript": "5.5.4",
|
|
183
|
-
"uuid": "
|
|
144
|
+
"uuid": "8.3.2",
|
|
184
145
|
"webpack": "^5.94.0",
|
|
185
|
-
"webpack-bundle-analyzer": "^
|
|
146
|
+
"webpack-bundle-analyzer": "^4.10.2",
|
|
186
147
|
"webpack-cli": "^5.1.4",
|
|
187
|
-
"webpack-dev-server": "^
|
|
148
|
+
"webpack-dev-server": "^4.15.2"
|
|
188
149
|
},
|
|
189
150
|
"peerDependencies": {
|
|
190
151
|
"@apollo/client": "^3.*",
|
|
@@ -200,20 +161,20 @@
|
|
|
200
161
|
"@projectcor/theme": "^2.*",
|
|
201
162
|
"@projectcor/tooltipv2": "^2.*",
|
|
202
163
|
"@projectcor/user-avatar": "^2.*",
|
|
203
|
-
"framer-motion": "^2.* || ^12.*",
|
|
204
164
|
"graphql": "^15.*",
|
|
205
165
|
"i18next": "^19.*",
|
|
206
166
|
"moment": "^2.*",
|
|
207
167
|
"react": "18.2.0",
|
|
208
|
-
"react-dom": "
|
|
168
|
+
"react-dom": "18.2.0",
|
|
209
169
|
"react-i18next": "^11.*",
|
|
210
|
-
"react-router-dom": "
|
|
170
|
+
"react-router-dom": "6.8.0",
|
|
211
171
|
"react-tracked": "^1.*",
|
|
212
172
|
"styled-components": "^5.*",
|
|
213
|
-
"
|
|
173
|
+
"framer-motion": "^2.* || ^12.*",
|
|
174
|
+
"uuid": "^8.*"
|
|
214
175
|
},
|
|
215
176
|
"engines": {
|
|
216
|
-
"node": "
|
|
217
|
-
"npm": "
|
|
177
|
+
"node": "16",
|
|
178
|
+
"npm": "6"
|
|
218
179
|
}
|
|
219
180
|
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Store externo (module-level) para el mensaje actualmente en streaming.
|
|
3
|
-
*
|
|
4
|
-
* Desacopla el texto del stream del array de `messages` de React: durante
|
|
5
|
-
* el streaming, el texto se mantiene acá y solo los componentes suscritos
|
|
6
|
-
* (vía `useStreamingMessage` / `useSyncExternalStore`) re-renderizan cuando
|
|
7
|
-
* cambia. El array `messages` no se muta en cada token, evitando ráfagas
|
|
8
|
-
* de re-renders del padre y ejecuciones innecesarias de useEffects.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
var snapshot = {
|
|
12
|
-
id: null,
|
|
13
|
-
text: ''
|
|
14
|
-
};
|
|
15
|
-
var listeners = new Set();
|
|
16
|
-
var emitChange = function emitChange() {
|
|
17
|
-
listeners.forEach(function (listener) {
|
|
18
|
-
listener();
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
export var streamingStore = {
|
|
22
|
-
/** Inicia una nueva sesión de streaming para el mensaje con este id. */start: function start(id) {
|
|
23
|
-
snapshot = {
|
|
24
|
-
id: id,
|
|
25
|
-
text: ''
|
|
26
|
-
};
|
|
27
|
-
emitChange();
|
|
28
|
-
},
|
|
29
|
-
/** Setea el texto del mensaje en streaming. Solo aplica si el id coincide. */setText: function setText(id, text) {
|
|
30
|
-
if (snapshot.id !== id) {
|
|
31
|
-
snapshot = {
|
|
32
|
-
id: id,
|
|
33
|
-
text: text
|
|
34
|
-
};
|
|
35
|
-
} else if (snapshot.text !== text) {
|
|
36
|
-
snapshot = {
|
|
37
|
-
id: id,
|
|
38
|
-
text: text
|
|
39
|
-
};
|
|
40
|
-
} else {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
emitChange();
|
|
44
|
-
},
|
|
45
|
-
/** Limpia el estado de streaming (fin de stream, error o aprobación). */clear: function clear() {
|
|
46
|
-
if (snapshot.id == null && snapshot.text === '') return;
|
|
47
|
-
snapshot = {
|
|
48
|
-
id: null,
|
|
49
|
-
text: ''
|
|
50
|
-
};
|
|
51
|
-
emitChange();
|
|
52
|
-
},
|
|
53
|
-
/** API para useSyncExternalStore. */subscribe: function subscribe(listener) {
|
|
54
|
-
listeners.add(listener);
|
|
55
|
-
return function () {
|
|
56
|
-
listeners["delete"](listener);
|
|
57
|
-
};
|
|
58
|
-
},
|
|
59
|
-
/** Snapshot referencialmente estable mientras no haya cambios. */getSnapshot: function getSnapshot() {
|
|
60
|
-
return snapshot;
|
|
61
|
-
},
|
|
62
|
-
/** Server snapshot (SSR): siempre vacío. */getServerSnapshot: function getServerSnapshot() {
|
|
63
|
-
return {
|
|
64
|
-
id: null,
|
|
65
|
-
text: ''
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzbmFwc2hvdCIsImlkIiwidGV4dCIsImxpc3RlbmVycyIsIlNldCIsImVtaXRDaGFuZ2UiLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJzdHJlYW1pbmdTdG9yZSIsInN0YXJ0Iiwic2V0VGV4dCIsImNsZWFyIiwic3Vic2NyaWJlIiwiYWRkIiwiZ2V0U25hcHNob3QiLCJnZXRTZXJ2ZXJTbmFwc2hvdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VTdHJlYW1pbmdNZXNzYWdlL3N0cmVhbWluZ1N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmUgZXh0ZXJubyAobW9kdWxlLWxldmVsKSBwYXJhIGVsIG1lbnNhamUgYWN0dWFsbWVudGUgZW4gc3RyZWFtaW5nLlxuICpcbiAqIERlc2Fjb3BsYSBlbCB0ZXh0byBkZWwgc3RyZWFtIGRlbCBhcnJheSBkZSBgbWVzc2FnZXNgIGRlIFJlYWN0OiBkdXJhbnRlXG4gKiBlbCBzdHJlYW1pbmcsIGVsIHRleHRvIHNlIG1hbnRpZW5lIGFjw6EgeSBzb2xvIGxvcyBjb21wb25lbnRlcyBzdXNjcml0b3NcbiAqICh2w61hIGB1c2VTdHJlYW1pbmdNZXNzYWdlYCAvIGB1c2VTeW5jRXh0ZXJuYWxTdG9yZWApIHJlLXJlbmRlcml6YW4gY3VhbmRvXG4gKiBjYW1iaWEuIEVsIGFycmF5IGBtZXNzYWdlc2Agbm8gc2UgbXV0YSBlbiBjYWRhIHRva2VuLCBldml0YW5kbyByw6FmYWdhc1xuICogZGUgcmUtcmVuZGVycyBkZWwgcGFkcmUgeSBlamVjdWNpb25lcyBpbm5lY2VzYXJpYXMgZGUgdXNlRWZmZWN0cy5cbiAqL1xuXG50eXBlIFN0cmVhbWluZ1NuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nIHwgbnVsbFxuICB0ZXh0OiBzdHJpbmdcbn1cblxubGV0IHNuYXBzaG90OiBTdHJlYW1pbmdTbmFwc2hvdCA9IHsgaWQ6IG51bGwsIHRleHQ6ICcnIH1cbmNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQ8KCkgPT4gdm9pZD4oKVxuXG5jb25zdCBlbWl0Q2hhbmdlID0gKCkgPT4ge1xuICBsaXN0ZW5lcnMuZm9yRWFjaChsaXN0ZW5lciA9PiB7XG4gICAgbGlzdGVuZXIoKVxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtaW5nU3RvcmUgPSB7XG4gIC8qKiBJbmljaWEgdW5hIG51ZXZhIHNlc2nDs24gZGUgc3RyZWFtaW5nIHBhcmEgZWwgbWVuc2FqZSBjb24gZXN0ZSBpZC4gKi9cbiAgc3RhcnQoaWQ6IHN0cmluZykge1xuICAgIHNuYXBzaG90ID0geyBpZCwgdGV4dDogJycgfVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICAvKiogU2V0ZWEgZWwgdGV4dG8gZGVsIG1lbnNhamUgZW4gc3RyZWFtaW5nLiBTb2xvIGFwbGljYSBzaSBlbCBpZCBjb2luY2lkZS4gKi9cbiAgc2V0VGV4dChpZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpIHtcbiAgICBpZiAoc25hcHNob3QuaWQgIT09IGlkKSB7XG4gICAgICBzbmFwc2hvdCA9IHsgaWQsIHRleHQgfVxuICAgIH0gZWxzZSBpZiAoc25hcHNob3QudGV4dCAhPT0gdGV4dCkge1xuICAgICAgc25hcHNob3QgPSB7IGlkLCB0ZXh0IH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICAvKiogTGltcGlhIGVsIGVzdGFkbyBkZSBzdHJlYW1pbmcgKGZpbiBkZSBzdHJlYW0sIGVycm9yIG8gYXByb2JhY2nDs24pLiAqL1xuICBjbGVhcigpIHtcbiAgICBpZiAoc25hcHNob3QuaWQgPT0gbnVsbCAmJiBzbmFwc2hvdC50ZXh0ID09PSAnJykgcmV0dXJuXG4gICAgc25hcHNob3QgPSB7IGlkOiBudWxsLCB0ZXh0OiAnJyB9XG4gICAgZW1pdENoYW5nZSgpXG4gIH0sXG4gIC8qKiBBUEkgcGFyYSB1c2VTeW5jRXh0ZXJuYWxTdG9yZS4gKi9cbiAgc3Vic2NyaWJlKGxpc3RlbmVyOiAoKSA9PiB2b2lkKSB7XG4gICAgbGlzdGVuZXJzLmFkZChsaXN0ZW5lcilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lcilcbiAgICB9XG4gIH0sXG4gIC8qKiBTbmFwc2hvdCByZWZlcmVuY2lhbG1lbnRlIGVzdGFibGUgbWllbnRyYXMgbm8gaGF5YSBjYW1iaW9zLiAqL1xuICBnZXRTbmFwc2hvdCgpOiBTdHJlYW1pbmdTbmFwc2hvdCB7XG4gICAgcmV0dXJuIHNuYXBzaG90XG4gIH0sXG4gIC8qKiBTZXJ2ZXIgc25hcHNob3QgKFNTUik6IHNpZW1wcmUgdmFjw61vLiAqL1xuICBnZXRTZXJ2ZXJTbmFwc2hvdCgpOiBTdHJlYW1pbmdTbmFwc2hvdCB7XG4gICAgcmV0dXJuIHsgaWQ6IG51bGwsIHRleHQ6ICcnIH1cbiAgfSxcbn1cblxuZXhwb3J0IHR5cGUgeyBTdHJlYW1pbmdTbmFwc2hvdCB9XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFPQSxJQUFJQSxRQUEyQixHQUFHO0VBQUVDLEVBQUUsRUFBRSxJQUFJO0VBQUVDLElBQUksRUFBRTtBQUFHLENBQUM7QUFDeEQsSUFBTUMsU0FBUyxHQUFHLElBQUlDLEdBQUcsQ0FBYSxDQUFDO0FBRXZDLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7RUFDdkJGLFNBQVMsQ0FBQ0csT0FBTyxDQUFDLFVBQUFDLFFBQVEsRUFBSTtJQUM1QkEsUUFBUSxDQUFDLENBQUM7RUFDWixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxJQUFNQyxjQUFjLEdBQUc7RUFDNUIsd0VBQ0FDLEtBQUssV0FBTEEsS0FBS0EsQ0FBQ1IsRUFBVSxFQUFFO0lBQ2hCRCxRQUFRLEdBQUc7TUFBRUMsRUFBRSxFQUFGQSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFHLENBQUM7SUFDM0JHLFVBQVUsQ0FBQyxDQUFDO0VBQ2QsQ0FBQztFQUNELDhFQUNBSyxPQUFPLFdBQVBBLE9BQU9BLENBQUNULEVBQVUsRUFBRUMsSUFBWSxFQUFFO0lBQ2hDLElBQUlGLFFBQVEsQ0FBQ0MsRUFBRSxLQUFLQSxFQUFFLEVBQUU7TUFDdEJELFFBQVEsR0FBRztRQUFFQyxFQUFFLEVBQUZBLEVBQUU7UUFBRUMsSUFBSSxFQUFKQTtNQUFLLENBQUM7SUFDekIsQ0FBQyxNQUFNLElBQUlGLFFBQVEsQ0FBQ0UsSUFBSSxLQUFLQSxJQUFJLEVBQUU7TUFDakNGLFFBQVEsR0FBRztRQUFFQyxFQUFFLEVBQUZBLEVBQUU7UUFBRUMsSUFBSSxFQUFKQTtNQUFLLENBQUM7SUFDekIsQ0FBQyxNQUFNO01BQ0w7SUFDRjtJQUNBRyxVQUFVLENBQUMsQ0FBQztFQUNkLENBQUM7RUFDRCx5RUFDQU0sS0FBSyxXQUFMQSxLQUFLQSxDQUFBLEVBQUc7SUFDTixJQUFJWCxRQUFRLENBQUNDLEVBQUUsSUFBSSxJQUFJLElBQUlELFFBQVEsQ0FBQ0UsSUFBSSxLQUFLLEVBQUUsRUFBRTtJQUNqREYsUUFBUSxHQUFHO01BQUVDLEVBQUUsRUFBRSxJQUFJO01BQUVDLElBQUksRUFBRTtJQUFHLENBQUM7SUFDakNHLFVBQVUsQ0FBQyxDQUFDO0VBQ2QsQ0FBQztFQUNELHFDQUNBTyxTQUFTLFdBQVRBLFNBQVNBLENBQUNMLFFBQW9CLEVBQUU7SUFDOUJKLFNBQVMsQ0FBQ1UsR0FBRyxDQUFDTixRQUFRLENBQUM7SUFDdkIsT0FBTyxZQUFNO01BQ1hKLFNBQVMsVUFBTyxDQUFDSSxRQUFRLENBQUM7SUFDNUIsQ0FBQztFQUNILENBQUM7RUFDRCxrRUFDQU8sV0FBVyxXQUFYQSxXQUFXQSxDQUFBLEVBQXNCO0lBQy9CLE9BQU9kLFFBQVE7RUFDakIsQ0FBQztFQUNELDRDQUNBZSxpQkFBaUIsV0FBakJBLGlCQUFpQkEsQ0FBQSxFQUFzQjtJQUNyQyxPQUFPO01BQUVkLEVBQUUsRUFBRSxJQUFJO01BQUVDLElBQUksRUFBRTtJQUFHLENBQUM7RUFDL0I7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|