@projectcor/maia-components 2.35.3 → 2.35.4-0
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 +727 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +63 -4
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +16 -4
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
- package/lib/components/atoms/Chip/Chip.spec.js +32 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +12 -1
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +127 -5
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +2 -29
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +24 -33
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +2 -19
- package/lib/components/atoms/Fade/Fade.spec.js +31 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +4 -20
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +7 -18
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +243 -42
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +283 -0
- package/lib/components/atoms/MAIAInput/styles.js +41 -44
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +68 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +208 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +77 -0
- package/lib/components/atoms/SkillsDropdown/index.js +2 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
- package/lib/components/atoms/Switch/Switch.spec.js +41 -0
- package/lib/components/atoms/icons/PlusIcon.js +29 -0
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +20 -0
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +23 -0
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +23 -0
- package/lib/components/atoms/icons/SkillsNavIcon.js +4 -7
- package/lib/components/atoms/icons/index.js +5 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +34 -11
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +5 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +5 -16
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +2 -23
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +5 -33
- package/lib/components/molecules/ChatAIHome/styles.js +2 -11
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +20 -31
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +3 -3
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +59 -20
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +1 -8
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +9 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +3 -14
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +11 -17
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +5 -14
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +2 -12
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +333 -242
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +131 -104
- package/lib/components/molecules/ChatFooter/ChatFooter.js +57 -63
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +105 -0
- package/lib/components/molecules/ChatFooter/styles.js +6 -12
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +1 -3
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +13 -6
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +3 -3
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +183 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +30 -46
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +8 -1
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +430 -184
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +293 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +132 -72
- package/lib/components/organisms/ChatAI/ChatAI.js +1 -6
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
- package/lib/constants/config.js +1 -4
- package/lib/constants/permissions/utils.js +3 -3
- package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
- package/lib/hooks/useCaretPosition.spec.js +58 -0
- package/lib/hooks/useChatManager/useChatManager.js +12 -19
- package/lib/hooks/useContextMentions.js +96 -56
- package/lib/hooks/useDebounce.spec.js +42 -0
- package/lib/hooks/useEntitySearch.js +92 -278
- package/lib/hooks/useEvent.js +15 -2
- package/lib/hooks/useEvent.spec.js +40 -0
- package/lib/hooks/useMentionAllowedTypes.js +9 -25
- package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
- package/lib/hooks/useMentionPopover.js +9 -33
- package/lib/hooks/useModal/useModal.spec.js +73 -0
- package/lib/hooks/useResize.spec.js +37 -0
- package/lib/hooks/useSkillsCatalog.js +66 -0
- package/lib/hooks/useSkillsCatalog.spec.js +88 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
- package/lib/hooks/useT.spec.js +20 -0
- package/lib/hooks/useToggle.spec.js +33 -0
- package/lib/lang/br/index.js +39 -12
- package/lib/lang/en/index.js +39 -12
- package/lib/lang/es/index.js +40 -13
- package/lib/lang/fr/index.js +40 -13
- package/lib/services/maia/Access/updateAccess.spec.js +108 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
- package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
- package/lib/services/maia/Agents/createAgent.spec.js +55 -0
- package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
- package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
- package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
- package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
- package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
- package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
- package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
- package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
- package/lib/services/maia/Chats/patchChat.spec.js +41 -0
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
- package/lib/services/maia/Knowledge/delete.spec.js +45 -0
- package/lib/services/maia/Knowledge/download.spec.js +78 -0
- package/lib/services/maia/Knowledge/save.spec.js +58 -0
- package/lib/services/maia/Orchestrator/orchestrator.js +16 -7
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
- package/lib/services/maia/Skills/createSkill.js +1 -1
- package/lib/services/maia/Skills/createSkill.spec.js +68 -0
- package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
- package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
- package/lib/services/maia/Skills/getSkills.js +70 -40
- package/lib/services/maia/Skills/getSkills.spec.js +152 -0
- package/lib/services/maia/Skills/updateSkill.js +1 -1
- package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
- package/lib/services/maia/client.spec.js +56 -0
- package/lib/services/maia/index.js +2 -4
- package/lib/services/utils/fetchCOR.js +57 -106
- package/lib/services/utils/fetchCOR.spec.js +211 -0
- package/lib/services/utils/getCookie.spec.js +20 -0
- package/lib/services/utils/index.js +1 -2
- package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
- package/lib/store/faqsStore.types.js +1 -1
- package/lib/store/index.js +1 -2
- package/lib/store/maiaLastChatPersistence.spec.js +22 -0
- package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
- package/lib/store/sessions/sessionStreamManager.js +7 -24
- package/lib/store/sessions/sessions.types.spec.js +16 -0
- package/lib/store/sessions/useSessionsStore.spec.js +135 -0
- package/lib/store/useChatsStore.js +3 -3
- package/lib/store/useChatsStore.spec.js +619 -0
- package/lib/store/useFaqsStore.spec.js +57 -0
- package/lib/test/buttonMock.js +22 -0
- package/lib/test/fetchPolyfill.js +160 -0
- package/lib/test/fileMock.js +2 -0
- package/lib/test/global-context.js +49 -0
- package/lib/test/iconMock.js +19 -0
- package/lib/test/mockFetch.js +49 -0
- package/lib/test/portalRoot.js +13 -0
- package/lib/test/styleMock.js +2 -0
- package/lib/test/test-utils.js +26 -0
- package/lib/test/tooltipMock.js +11 -0
- package/lib/types/Chat.js +1 -1
- package/lib/types/FrequentlyAskedQuestion.js +1 -1
- package/lib/types/agentModal.js +1 -1
- package/lib/types/skill.js +1 -1
- package/lib/utils/agentDisplayName.spec.js +44 -0
- package/lib/utils/autoApproveStorage.spec.js +25 -0
- package/lib/utils/chatInputFiles.spec.js +39 -0
- package/lib/utils/contextMentionLabel.spec.js +13 -0
- package/lib/utils/contextMentionTriggers.js +2 -5
- package/lib/utils/contextMentionTriggers.spec.js +38 -0
- package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
- package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
- package/lib/utils/fileDownloadHelper.spec.js +67 -0
- package/lib/utils/formatQuickActionMessage.spec.js +27 -0
- package/lib/utils/formatUnreadCount.spec.js +12 -0
- package/lib/utils/getUnitFileSize.spec.js +18 -0
- package/lib/utils/hitlAnalytics.spec.js +100 -0
- package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
- package/lib/utils/mapBackendLang.spec.js +19 -0
- package/lib/utils/normalizeAgentConnectors.js +44 -16
- package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
- package/lib/utils/orchestratorSubagents.spec.js +32 -0
- package/lib/utils/reasoningMappers.spec.js +103 -0
- package/lib/utils/renderContextMentions.js +39 -18
- package/lib/utils/retryCompletion.spec.js +99 -0
- package/lib/utils/skillContentSize.spec.js +13 -0
- package/lib/utils/slashCommandMarker.spec.js +43 -0
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
- package/lib/utils/sseStreamContent.spec.js +31 -0
- package/lib/utils/streamActivityMessages.spec.js +98 -0
- package/lib/utils/validateTrimmedFields.spec.js +26 -0
- package/package.json +9 -6
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +0 -33
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +0 -47
- package/lib/components/molecules/UsageBlockedBanner/index.js +0 -2
- package/lib/services/maia/Usage/getUsage.js +0 -45
- package/lib/services/maia/Usage/index.js +0 -6
- package/lib/services/utils/MaiaApiError.js +0 -34
- package/lib/store/useUsageStore.js +0 -108
- package/lib/types/usage.js +0 -9
|
@@ -6,7 +6,6 @@ import { useState, useCallback } from 'react';
|
|
|
6
6
|
import { ArrowRight } from '@projectcor/icons/lib/components/ArrowRight';
|
|
7
7
|
import { useT } from '../../../hooks/useT';
|
|
8
8
|
import { useSnackBarManager } from '../../../hooks/useSnackBarManager/useSnackBarManager';
|
|
9
|
-
import { useUsageStore } from '../../../store/useUsageStore';
|
|
10
9
|
import { fetchAgentDetailAndParsedForAbm } from '../../../services/maia/Agents/fetchAgentDetail';
|
|
11
10
|
import { SCSuggestionsWrapper, SCSuggestionsTitle, SCSuggestionsList, SCSuggestionButton, SCSuggestionText } from './ChatAISuggestions.styles';
|
|
12
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -20,48 +19,38 @@ export var ChatAICreateAgentActions = function ChatAICreateAgentActions(_ref) {
|
|
|
20
19
|
t = _useT.t;
|
|
21
20
|
var _useSnackBarManager = useSnackBarManager(),
|
|
22
21
|
handleSnackbarError = _useSnackBarManager.handleSnackbarError;
|
|
23
|
-
var usageBlocked = useUsageStore(function (state) {
|
|
24
|
-
return state.blocked;
|
|
25
|
-
});
|
|
26
22
|
var _useState = useState(null),
|
|
27
23
|
_useState2 = _slicedToArray(_useState, 2),
|
|
28
24
|
busy = _useState2[0],
|
|
29
25
|
setBusy = _useState2[1];
|
|
30
|
-
var isActionDisabled = disabled || hidden || usageBlocked;
|
|
31
26
|
var runAction = useCallback(/*#__PURE__*/function () {
|
|
32
27
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(action) {
|
|
33
28
|
var _yield$fetchAgentDeta, chatAgent, abmParsed, message, _t;
|
|
34
29
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
35
30
|
while (1) switch (_context.prev = _context.next) {
|
|
36
31
|
case 0:
|
|
37
|
-
if (!(!(agentId !== null && agentId !== void 0 && agentId.trim()) ||
|
|
32
|
+
if (!(!(agentId !== null && agentId !== void 0 && agentId.trim()) || disabled || hidden || busy)) {
|
|
38
33
|
_context.next = 1;
|
|
39
34
|
break;
|
|
40
35
|
}
|
|
41
36
|
return _context.abrupt("return");
|
|
42
37
|
case 1:
|
|
43
|
-
if (
|
|
38
|
+
if (window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS) {
|
|
44
39
|
_context.next = 2;
|
|
45
40
|
break;
|
|
46
41
|
}
|
|
47
42
|
return _context.abrupt("return");
|
|
48
43
|
case 2:
|
|
49
|
-
if (window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS) {
|
|
50
|
-
_context.next = 3;
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
return _context.abrupt("return");
|
|
54
|
-
case 3:
|
|
55
44
|
setBusy(action);
|
|
56
|
-
_context.prev =
|
|
57
|
-
_context.next =
|
|
45
|
+
_context.prev = 3;
|
|
46
|
+
_context.next = 4;
|
|
58
47
|
return fetchAgentDetailAndParsedForAbm(agentId);
|
|
59
|
-
case
|
|
48
|
+
case 4:
|
|
60
49
|
_yield$fetchAgentDeta = _context.sent;
|
|
61
50
|
chatAgent = _yield$fetchAgentDeta.chatAgent;
|
|
62
51
|
abmParsed = _yield$fetchAgentDeta.abmParsed;
|
|
63
52
|
if (!(action === 'start_chat')) {
|
|
64
|
-
_context.next =
|
|
53
|
+
_context.next = 5;
|
|
65
54
|
break;
|
|
66
55
|
}
|
|
67
56
|
// Igual que ChatAIMyAgents: setProject/client, selectAgent, volver al home del modal
|
|
@@ -71,7 +60,7 @@ export var ChatAICreateAgentActions = function ChatAICreateAgentActions(_ref) {
|
|
|
71
60
|
}
|
|
72
61
|
}));
|
|
73
62
|
return _context.abrupt("return");
|
|
74
|
-
case
|
|
63
|
+
case 5:
|
|
75
64
|
document.dispatchEvent(new CustomEvent('abm-agent-modal-set-values', {
|
|
76
65
|
detail: {
|
|
77
66
|
agentValues: {
|
|
@@ -88,27 +77,27 @@ export var ChatAICreateAgentActions = function ChatAICreateAgentActions(_ref) {
|
|
|
88
77
|
}
|
|
89
78
|
}
|
|
90
79
|
}));
|
|
91
|
-
_context.next =
|
|
80
|
+
_context.next = 7;
|
|
92
81
|
break;
|
|
93
|
-
case
|
|
94
|
-
_context.prev =
|
|
95
|
-
_t = _context["catch"](
|
|
82
|
+
case 6:
|
|
83
|
+
_context.prev = 6;
|
|
84
|
+
_t = _context["catch"](3);
|
|
96
85
|
message = _t instanceof Error ? _t.message : t('chat.createAgentActionLoadError');
|
|
97
86
|
handleSnackbarError(message);
|
|
98
|
-
case
|
|
99
|
-
_context.prev =
|
|
87
|
+
case 7:
|
|
88
|
+
_context.prev = 7;
|
|
100
89
|
setBusy(null);
|
|
101
|
-
return _context.finish(
|
|
102
|
-
case
|
|
90
|
+
return _context.finish(7);
|
|
91
|
+
case 8:
|
|
103
92
|
case "end":
|
|
104
93
|
return _context.stop();
|
|
105
94
|
}
|
|
106
|
-
}, _callee, null, [[
|
|
95
|
+
}, _callee, null, [[3, 6, 7, 8]]);
|
|
107
96
|
}));
|
|
108
97
|
return function (_x) {
|
|
109
98
|
return _ref2.apply(this, arguments);
|
|
110
99
|
};
|
|
111
|
-
}(), [agentId,
|
|
100
|
+
}(), [agentId, disabled, hidden, busy, handleSnackbarError, t]);
|
|
112
101
|
if (!window.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS) return null;
|
|
113
102
|
return /*#__PURE__*/_jsxs(SCSuggestionsWrapper, {
|
|
114
103
|
$hidden: hidden,
|
|
@@ -120,7 +109,7 @@ export var ChatAICreateAgentActions = function ChatAICreateAgentActions(_ref) {
|
|
|
120
109
|
onClick: function onClick() {
|
|
121
110
|
return runAction('start_chat');
|
|
122
111
|
},
|
|
123
|
-
disabled:
|
|
112
|
+
disabled: disabled || hidden || busy !== null,
|
|
124
113
|
children: [/*#__PURE__*/_jsx(ArrowRight, {
|
|
125
114
|
width: 12,
|
|
126
115
|
height: 12,
|
|
@@ -133,7 +122,7 @@ export var ChatAICreateAgentActions = function ChatAICreateAgentActions(_ref) {
|
|
|
133
122
|
onClick: function onClick() {
|
|
134
123
|
return runAction('knowledge');
|
|
135
124
|
},
|
|
136
|
-
disabled:
|
|
125
|
+
disabled: disabled || hidden || busy !== null,
|
|
137
126
|
children: [/*#__PURE__*/_jsx(ArrowRight, {
|
|
138
127
|
width: 12,
|
|
139
128
|
height: 12,
|
|
@@ -145,4 +134,4 @@ export var ChatAICreateAgentActions = function ChatAICreateAgentActions(_ref) {
|
|
|
145
134
|
})]
|
|
146
135
|
});
|
|
147
136
|
};
|
|
148
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiQXJyb3dSaWdodCIsInVzZVQiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJ1c2VVc2FnZVN0b3JlIiwiZmV0Y2hBZ2VudERldGFpbEFuZFBhcnNlZEZvckFibSIsIlNDU3VnZ2VzdGlvbnNXcmFwcGVyIiwiU0NTdWdnZXN0aW9uc1RpdGxlIiwiU0NTdWdnZXN0aW9uc0xpc3QiLCJTQ1N1Z2dlc3Rpb25CdXR0b24iLCJTQ1N1Z2dlc3Rpb25UZXh0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkNoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucyIsIl9yZWYiLCJhZ2VudElkIiwiX3JlZiRoaWRkZW4iLCJoaWRkZW4iLCJfcmVmJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfdXNlVCIsInQiLCJfdXNlU25hY2tCYXJNYW5hZ2VyIiwiaGFuZGxlU25hY2tiYXJFcnJvciIsInVzYWdlQmxvY2tlZCIsInN0YXRlIiwiYmxvY2tlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImJ1c3kiLCJzZXRCdXN5IiwiaXNBY3Rpb25EaXNhYmxlZCIsInJ1bkFjdGlvbiIsIl9yZWYyIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJhY3Rpb24iLCJfeWllbGQkZmV0Y2hBZ2VudERldGEiLCJjaGF0QWdlbnQiLCJhYm1QYXJzZWQiLCJtZXNzYWdlIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInRyaW0iLCJhYnJ1cHQiLCJ3aW5kb3ciLCJNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTIiwic2VudCIsImRvY3VtZW50IiwiZGlzcGF0Y2hFdmVudCIsIkN1c3RvbUV2ZW50IiwiZGV0YWlsIiwiYWdlbnQiLCJhZ2VudFZhbHVlcyIsInZhbHVlcyIsImlzRWRpdGluZyIsImdlbmVyYWwiLCJpZCIsIm5hbWUiLCJwcmVmZXRjaGVkQWdlbnRCeUlkIiwiaXNPcGVuIiwiaW5pdGlhbFNlY3Rpb24iLCJFcnJvciIsImZpbmlzaCIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwiJGhpZGRlbiIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xpY2siLCJ3aWR0aCIsImhlaWdodCIsImNvbG9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL0NoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQXJyb3dSaWdodCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Fycm93UmlnaHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQgeyB1c2VVc2FnZVN0b3JlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvdXNlVXNhZ2VTdG9yZSdcbmltcG9ydCB7IGZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm0gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9mZXRjaEFnZW50RGV0YWlsJ1xuaW1wb3J0IHtcbiAgU0NTdWdnZXN0aW9uc1dyYXBwZXIsXG4gIFNDU3VnZ2VzdGlvbnNUaXRsZSxcbiAgU0NTdWdnZXN0aW9uc0xpc3QsXG4gIFNDU3VnZ2VzdGlvbkJ1dHRvbixcbiAgU0NTdWdnZXN0aW9uVGV4dCxcbn0gZnJvbSAnLi9DaGF0QUlTdWdnZXN0aW9ucy5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIENyZWF0ZUFnZW50Rm9sbG93VXBBY3Rpb24gPSAnc3RhcnRfY2hhdCcgfCAna25vd2xlZGdlJ1xuXG50eXBlIENoYXRBSUNyZWF0ZUFnZW50QWN0aW9uc1Byb3BzID0ge1xuICBhZ2VudElkOiBzdHJpbmdcbiAgaGlkZGVuPzogYm9vbGVhblxuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IENoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucyA9ICh7XG4gIGFnZW50SWQsXG4gIGhpZGRlbiA9IGZhbHNlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxufTogQ2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBoYW5kbGVTbmFja2JhckVycm9yIH0gPSB1c2VTbmFja0Jhck1hbmFnZXIoKVxuICBjb25zdCB1c2FnZUJsb2NrZWQgPSB1c2VVc2FnZVN0b3JlKHN0YXRlID0+IHN0YXRlLmJsb2NrZWQpXG4gIGNvbnN0IFtidXN5LCBzZXRCdXN5XSA9IHVzZVN0YXRlPENyZWF0ZUFnZW50Rm9sbG93VXBBY3Rpb24gfCBudWxsPihudWxsKVxuICBjb25zdCBpc0FjdGlvbkRpc2FibGVkID0gZGlzYWJsZWQgfHwgaGlkZGVuIHx8IHVzYWdlQmxvY2tlZFxuXG4gIGNvbnN0IHJ1bkFjdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhY3Rpb246IENyZWF0ZUFnZW50Rm9sbG93VXBBY3Rpb24pID0+IHtcbiAgICAgIGlmICghYWdlbnRJZD8udHJpbSgpIHx8IGlzQWN0aW9uRGlzYWJsZWQgfHwgYnVzeSkgcmV0dXJuXG4gICAgICBpZiAoYWN0aW9uID09PSAna25vd2xlZGdlJyAmJiB1c2FnZUJsb2NrZWQpIHJldHVyblxuICAgICAgaWYgKCF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0QnVzeShhY3Rpb24pXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGNoYXRBZ2VudCwgYWJtUGFyc2VkIH0gPSBhd2FpdCBmZXRjaEFnZW50RGV0YWlsQW5kUGFyc2VkRm9yQWJtKGFnZW50SWQpXG4gICAgICAgIGlmIChhY3Rpb24gPT09ICdzdGFydF9jaGF0Jykge1xuICAgICAgICAgIC8vIElndWFsIHF1ZSBDaGF0QUlNeUFnZW50czogc2V0UHJvamVjdC9jbGllbnQsIHNlbGVjdEFnZW50LCB2b2x2ZXIgYWwgaG9tZSBkZWwgbW9kYWxcbiAgICAgICAgICBkb2N1bWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIHtcbiAgICAgICAgICAgICAgZGV0YWlsOiB7IGFnZW50OiBjaGF0QWdlbnQgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywge1xuICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgIGFnZW50VmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgdmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICBpc0VkaXRpbmc6IHRydWUsXG4gICAgICAgICAgICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBhYm1QYXJzZWQuaWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGFibVBhcnNlZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHByZWZldGNoZWRBZ2VudEJ5SWQ6IGFibVBhcnNlZCxcbiAgICAgICAgICAgICAgICBpc09wZW46IHRydWUsXG4gICAgICAgICAgICAgICAgaW5pdGlhbFNlY3Rpb246ICdrbm93bGVkZ2UnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiB0KCdjaGF0LmNyZWF0ZUFnZW50QWN0aW9uTG9hZEVycm9yJylcbiAgICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcihtZXNzYWdlKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0QnVzeShudWxsKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FnZW50SWQsIGlzQWN0aW9uRGlzYWJsZWQsIGJ1c3ksIGhhbmRsZVNuYWNrYmFyRXJyb3IsIHQsIHVzYWdlQmxvY2tlZF1cbiAgKVxuXG4gIGlmICghd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8U0NTdWdnZXN0aW9uc1dyYXBwZXIgJGhpZGRlbj17aGlkZGVufT5cbiAgICAgIDxTQ1N1Z2dlc3Rpb25zVGl0bGU+e3QoJ2NoYXQuY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGUnKX08L1NDU3VnZ2VzdGlvbnNUaXRsZT5cbiAgICAgIDxTQ1N1Z2dlc3Rpb25zTGlzdD5cbiAgICAgICAgPFNDU3VnZ2VzdGlvbkJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHJ1bkFjdGlvbignc3RhcnRfY2hhdCcpfVxuICAgICAgICAgIGRpc2FibGVkPXtpc0FjdGlvbkRpc2FibGVkIHx8IGJ1c3kgIT09IG51bGx9XG4gICAgICAgID5cbiAgICAgICAgICA8QXJyb3dSaWdodCB3aWR0aD17MTJ9IGhlaWdodD17MTJ9IGNvbG9yPVwiIzIwMjAxRlwiIC8+XG4gICAgICAgICAgPFNDU3VnZ2VzdGlvblRleHQ+e3QoJ2NoYXQuY3JlYXRlQWdlbnRBY3Rpb25TdGFydENoYXQnKX08L1NDU3VnZ2VzdGlvblRleHQ+XG4gICAgICAgIDwvU0NTdWdnZXN0aW9uQnV0dG9uPlxuICAgICAgICA8U0NTdWdnZXN0aW9uQnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gcnVuQWN0aW9uKCdrbm93bGVkZ2UnKX1cbiAgICAgICAgICBkaXNhYmxlZD17aXNBY3Rpb25EaXNhYmxlZCB8fCBidXN5ICE9PSBudWxsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFycm93UmlnaHQgd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgICAgIDxTQ1N1Z2dlc3Rpb25UZXh0Pnt0KCdjaGF0LmNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlJyl9PC9TQ1N1Z2dlc3Rpb25UZXh0PlxuICAgICAgICA8L1NDU3VnZ2VzdGlvbkJ1dHRvbj5cbiAgICAgIDwvU0NTdWdnZXN0aW9uc0xpc3Q+XG4gICAgPC9TQ1N1Z2dlc3Rpb25zV3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsV0FBVyxRQUFRLE9BQU87QUFDN0MsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQyxhQUFhLFFBQVEsOEJBQThCO0FBQzVELFNBQVNDLCtCQUErQixRQUFRLGdEQUFnRDtBQUNoRyxTQUNFQyxvQkFBb0IsRUFDcEJDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixRQUNYLDRCQUE0QjtBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFVbkMsT0FBTyxJQUFN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
|
|
137
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUNhbGxiYWNrIiwiQXJyb3dSaWdodCIsInVzZVQiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJmZXRjaEFnZW50RGV0YWlsQW5kUGFyc2VkRm9yQWJtIiwiU0NTdWdnZXN0aW9uc1dyYXBwZXIiLCJTQ1N1Z2dlc3Rpb25zVGl0bGUiLCJTQ1N1Z2dlc3Rpb25zTGlzdCIsIlNDU3VnZ2VzdGlvbkJ1dHRvbiIsIlNDU3VnZ2VzdGlvblRleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiQ2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zIiwiX3JlZiIsImFnZW50SWQiLCJfcmVmJGhpZGRlbiIsImhpZGRlbiIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl91c2VUIiwidCIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiYnVzeSIsInNldEJ1c3kiLCJydW5BY3Rpb24iLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiYWN0aW9uIiwiX3lpZWxkJGZldGNoQWdlbnREZXRhIiwiY2hhdEFnZW50IiwiYWJtUGFyc2VkIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ0cmltIiwiYWJydXB0Iiwid2luZG93IiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsInNlbnQiLCJkb2N1bWVudCIsImRpc3BhdGNoRXZlbnQiLCJDdXN0b21FdmVudCIsImRldGFpbCIsImFnZW50IiwiYWdlbnRWYWx1ZXMiLCJ2YWx1ZXMiLCJpc0VkaXRpbmciLCJnZW5lcmFsIiwiaWQiLCJuYW1lIiwicHJlZmV0Y2hlZEFnZW50QnlJZCIsImlzT3BlbiIsImluaXRpYWxTZWN0aW9uIiwiRXJyb3IiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsIiRoaWRkZW4iLCJjaGlsZHJlbiIsInR5cGUiLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9DaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L2Z1bmN0aW9uLWNvbXBvbmVudC1kZWZpbml0aW9uICovXG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEFycm93UmlnaHQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BcnJvd1JpZ2h0J1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgZmV0Y2hBZ2VudERldGFpbEFuZFBhcnNlZEZvckFibSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2ZldGNoQWdlbnREZXRhaWwnXG5pbXBvcnQge1xuICBTQ1N1Z2dlc3Rpb25zV3JhcHBlcixcbiAgU0NTdWdnZXN0aW9uc1RpdGxlLFxuICBTQ1N1Z2dlc3Rpb25zTGlzdCxcbiAgU0NTdWdnZXN0aW9uQnV0dG9uLFxuICBTQ1N1Z2dlc3Rpb25UZXh0LFxufSBmcm9tICcuL0NoYXRBSVN1Z2dlc3Rpb25zLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQWdlbnRGb2xsb3dVcEFjdGlvbiA9ICdzdGFydF9jaGF0JyB8ICdrbm93bGVkZ2UnXG5cbnR5cGUgQ2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zUHJvcHMgPSB7XG4gIGFnZW50SWQ6IHN0cmluZ1xuICBoaWRkZW4/OiBib29sZWFuXG4gIGRpc2FibGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zID0gKHtcbiAgYWdlbnRJZCxcbiAgaGlkZGVuID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG59OiBDaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IFtidXN5LCBzZXRCdXN5XSA9IHVzZVN0YXRlPENyZWF0ZUFnZW50Rm9sbG93VXBBY3Rpb24gfCBudWxsPihudWxsKVxuXG4gIGNvbnN0IHJ1bkFjdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhY3Rpb246IENyZWF0ZUFnZW50Rm9sbG93VXBBY3Rpb24pID0+IHtcbiAgICAgIGlmICghYWdlbnRJZD8udHJpbSgpIHx8IGRpc2FibGVkIHx8IGhpZGRlbiB8fCBidXN5KSByZXR1cm5cbiAgICAgIGlmICghd2luZG93Lk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHNldEJ1c3koYWN0aW9uKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBjaGF0QWdlbnQsIGFibVBhcnNlZCB9ID0gYXdhaXQgZmV0Y2hBZ2VudERldGFpbEFuZFBhcnNlZEZvckFibShhZ2VudElkKVxuICAgICAgICBpZiAoYWN0aW9uID09PSAnc3RhcnRfY2hhdCcpIHtcbiAgICAgICAgICAvLyBJZ3VhbCBxdWUgQ2hhdEFJTXlBZ2VudHM6IHNldFByb2plY3QvY2xpZW50LCBzZWxlY3RBZ2VudCwgdm9sdmVyIGFsIGhvbWUgZGVsIG1vZGFsXG4gICAgICAgICAgZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudCgnbWFpYS1vcGVuLW5ldy1jaGF0LXdpdGgtYWdlbnQnLCB7XG4gICAgICAgICAgICAgIGRldGFpbDogeyBhZ2VudDogY2hhdEFnZW50IH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIHtcbiAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICBhZ2VudFZhbHVlczoge1xuICAgICAgICAgICAgICAgIHZhbHVlczoge1xuICAgICAgICAgICAgICAgICAgaXNFZGl0aW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xuICAgICAgICAgICAgICAgICAgICBpZDogYWJtUGFyc2VkLmlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhYm1QYXJzZWQubmFtZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwcmVmZXRjaGVkQWdlbnRCeUlkOiBhYm1QYXJzZWQsXG4gICAgICAgICAgICAgICAgaXNPcGVuOiB0cnVlLFxuICAgICAgICAgICAgICAgIGluaXRpYWxTZWN0aW9uOiAna25vd2xlZGdlJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogdCgnY2hhdC5jcmVhdGVBZ2VudEFjdGlvbkxvYWRFcnJvcicpXG4gICAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IobWVzc2FnZSlcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldEJ1c3kobnVsbClcbiAgICAgIH1cbiAgICB9LFxuICAgIFthZ2VudElkLCBkaXNhYmxlZCwgaGlkZGVuLCBidXN5LCBoYW5kbGVTbmFja2JhckVycm9yLCB0XVxuICApXG5cbiAgaWYgKCF3aW5kb3cuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUykgcmV0dXJuIG51bGxcblxuICByZXR1cm4gKFxuICAgIDxTQ1N1Z2dlc3Rpb25zV3JhcHBlciAkaGlkZGVuPXtoaWRkZW59PlxuICAgICAgPFNDU3VnZ2VzdGlvbnNUaXRsZT57dCgnY2hhdC5jcmVhdGVBZ2VudEFjdGlvbnNUaXRsZScpfTwvU0NTdWdnZXN0aW9uc1RpdGxlPlxuICAgICAgPFNDU3VnZ2VzdGlvbnNMaXN0PlxuICAgICAgICA8U0NTdWdnZXN0aW9uQnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gcnVuQWN0aW9uKCdzdGFydF9jaGF0Jyl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IGhpZGRlbiB8fCBidXN5ICE9PSBudWxsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFycm93UmlnaHQgd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgICAgIDxTQ1N1Z2dlc3Rpb25UZXh0Pnt0KCdjaGF0LmNyZWF0ZUFnZW50QWN0aW9uU3RhcnRDaGF0Jyl9PC9TQ1N1Z2dlc3Rpb25UZXh0PlxuICAgICAgICA8L1NDU3VnZ2VzdGlvbkJ1dHRvbj5cbiAgICAgICAgPFNDU3VnZ2VzdGlvbkJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHJ1bkFjdGlvbigna25vd2xlZGdlJyl9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IGhpZGRlbiB8fCBidXN5ICE9PSBudWxsfVxuICAgICAgICA+XG4gICAgICAgICAgPEFycm93UmlnaHQgd2lkdGg9ezEyfSBoZWlnaHQ9ezEyfSBjb2xvcj1cIiMyMDIwMUZcIiAvPlxuICAgICAgICAgIDxTQ1N1Z2dlc3Rpb25UZXh0Pnt0KCdjaGF0LmNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlJyl9PC9TQ1N1Z2dlc3Rpb25UZXh0PlxuICAgICAgICA8L1NDU3VnZ2VzdGlvbkJ1dHRvbj5cbiAgICAgIDwvU0NTdWdnZXN0aW9uc0xpc3Q+XG4gICAgPC9TQ1N1Z2dlc3Rpb25zV3JhcHBlcj5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBLFNBQVNBLFFBQVEsRUFBRUMsV0FBVyxRQUFRLE9BQU87QUFDN0MsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGtCQUFrQixRQUFRLHNEQUFzRDtBQUN6RixTQUFTQywrQkFBK0IsUUFBUSxnREFBZ0Q7QUFDaEcsU0FDRUMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsRUFDbEJDLGlCQUFpQixFQUNqQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsUUFDWCw0QkFBNEI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBVW5DLE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBQUMsSUFBQSxFQUlBO0VBQUEsSUFIbkNDLE9BQU8sR0FBQUQsSUFBQSxDQUFQQyxPQUFPO0lBQUFDLFdBQUEsR0FBQUYsSUFBQSxDQUNQRyxNQUFNO0lBQU5BLE1BQU0sR0FBQUQsV0FBQSxjQUFHLEtBQUssR0FBQUEsV0FBQTtJQUFBRSxhQUFBLEdBQUFKLElBQUEsQ0FDZEssUUFBUTtJQUFSQSxRQUFRLEdBQUFELGFBQUEsY0FBRyxLQUFLLEdBQUFBLGFBQUE7RUFFaEIsSUFBQUUsS0FBQSxHQUFjbkIsSUFBSSxDQUFDLENBQUM7SUFBWm9CLENBQUMsR0FBQUQsS0FBQSxDQUFEQyxDQUFDO0VBQ1QsSUFBQUMsbUJBQUEsR0FBZ0NwQixrQkFBa0IsQ0FBQyxDQUFD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
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
+
import { fireEvent, renderWithProviders, screen, waitFor } from '../../../test/test-utils';
|
|
4
|
+
import { fetchAgentDetailAndParsedForAbm } from '../../../services/maia/Agents/fetchAgentDetail';
|
|
5
|
+
import { ChatAICreateAgentActions } from './ChatAICreateAgentActions';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
jest.mock('../../../services/maia/Agents/fetchAgentDetail', function () {
|
|
8
|
+
return {
|
|
9
|
+
fetchAgentDetailAndParsedForAbm: jest.fn()
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
jest.mock('../../../hooks/useSnackBarManager/useSnackBarManager', function () {
|
|
13
|
+
return {
|
|
14
|
+
useSnackBarManager: function useSnackBarManager() {
|
|
15
|
+
return {
|
|
16
|
+
handleSnackbarError: jest.fn()
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
var fetchDetail = fetchAgentDetailAndParsedForAbm;
|
|
22
|
+
var flags = window;
|
|
23
|
+
describe('ChatAICreateAgentActions', function () {
|
|
24
|
+
beforeEach(function () {
|
|
25
|
+
flags.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS = true;
|
|
26
|
+
fetchDetail.mockResolvedValue({
|
|
27
|
+
chatAgent: {
|
|
28
|
+
id: 'a1',
|
|
29
|
+
name: 'Nuevo',
|
|
30
|
+
emoji: '✨',
|
|
31
|
+
type: 'custom'
|
|
32
|
+
},
|
|
33
|
+
abmParsed: {
|
|
34
|
+
id: 'a1',
|
|
35
|
+
name: 'Nuevo'
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
afterEach(function () {
|
|
40
|
+
delete flags.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
|
|
41
|
+
});
|
|
42
|
+
it('returns null without the multi-agents flag', function () {
|
|
43
|
+
delete flags.MAIA_CHAT_AI_FEATURE_ACCESS_MULTI_AGENTS;
|
|
44
|
+
var _renderWithProviders = renderWithProviders(/*#__PURE__*/_jsx(ChatAICreateAgentActions, {
|
|
45
|
+
agentId: "a1"
|
|
46
|
+
})),
|
|
47
|
+
container = _renderWithProviders.container;
|
|
48
|
+
expect(container).toBeEmptyDOMElement();
|
|
49
|
+
});
|
|
50
|
+
it('opens a new chat with the created agent', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
51
|
+
var onOpen;
|
|
52
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
53
|
+
while (1) switch (_context.prev = _context.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
onOpen = jest.fn();
|
|
56
|
+
document.addEventListener('maia-open-new-chat-with-agent', onOpen);
|
|
57
|
+
renderWithProviders(/*#__PURE__*/_jsx(ChatAICreateAgentActions, {
|
|
58
|
+
agentId: "a1"
|
|
59
|
+
}));
|
|
60
|
+
fireEvent.click(screen.getByRole('button', {
|
|
61
|
+
name: 'chat.createAgentActionStartChat'
|
|
62
|
+
}));
|
|
63
|
+
_context.next = 1;
|
|
64
|
+
return waitFor(function () {
|
|
65
|
+
expect(fetchDetail).toHaveBeenCalledWith('a1');
|
|
66
|
+
expect(onOpen).toHaveBeenCalled();
|
|
67
|
+
});
|
|
68
|
+
case 1:
|
|
69
|
+
document.removeEventListener('maia-open-new-chat-with-agent', onOpen);
|
|
70
|
+
case 2:
|
|
71
|
+
case "end":
|
|
72
|
+
return _context.stop();
|
|
73
|
+
}
|
|
74
|
+
}, _callee);
|
|
75
|
+
})));
|
|
76
|
+
it('opens the ABM on the knowledge section', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
77
|
+
var onAbm, event;
|
|
78
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
79
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
80
|
+
case 0:
|
|
81
|
+
onAbm = jest.fn();
|
|
82
|
+
document.addEventListener('abm-agent-modal-set-values', onAbm);
|
|
83
|
+
renderWithProviders(/*#__PURE__*/_jsx(ChatAICreateAgentActions, {
|
|
84
|
+
agentId: "a1"
|
|
85
|
+
}));
|
|
86
|
+
fireEvent.click(screen.getByRole('button', {
|
|
87
|
+
name: 'chat.createAgentActionKnowledge'
|
|
88
|
+
}));
|
|
89
|
+
_context2.next = 1;
|
|
90
|
+
return waitFor(function () {
|
|
91
|
+
expect(onAbm).toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
case 1:
|
|
94
|
+
event = onAbm.mock.calls[0][0];
|
|
95
|
+
expect(event.detail.agentValues.initialSection).toBe('knowledge');
|
|
96
|
+
document.removeEventListener('abm-agent-modal-set-values', onAbm);
|
|
97
|
+
case 2:
|
|
98
|
+
case "end":
|
|
99
|
+
return _context2.stop();
|
|
100
|
+
}
|
|
101
|
+
}, _callee2);
|
|
102
|
+
})));
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaXJlRXZlbnQiLCJyZW5kZXJXaXRoUHJvdmlkZXJzIiwic2NyZWVuIiwid2FpdEZvciIsImZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm0iLCJDaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMiLCJqc3giLCJfanN4IiwiamVzdCIsIm1vY2siLCJmbiIsInVzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJmZXRjaERldGFpbCIsImZsYWdzIiwid2luZG93IiwiZGVzY3JpYmUiLCJiZWZvcmVFYWNoIiwiTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyIsIm1vY2tSZXNvbHZlZFZhbHVlIiwiY2hhdEFnZW50IiwiaWQiLCJuYW1lIiwiZW1vamkiLCJ0eXBlIiwiYWJtUGFyc2VkIiwiYWZ0ZXJFYWNoIiwiaXQiLCJfcmVuZGVyV2l0aFByb3ZpZGVycyIsImFnZW50SWQiLCJjb250YWluZXIiLCJleHBlY3QiLCJ0b0JlRW1wdHlET01FbGVtZW50IiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJvbk9wZW4iLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImNsaWNrIiwiZ2V0QnlSb2xlIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInN0b3AiLCJfY2FsbGVlMiIsIm9uQWJtIiwiZXZlbnQiLCJfY29udGV4dDIiLCJjYWxscyIsImRldGFpbCIsImFnZW50VmFsdWVzIiwiaW5pdGlhbFNlY3Rpb24iLCJ0b0JlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NoYXRBSU1lc3NhZ2VzL0NoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucy5zcGVjLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXJlRXZlbnQsIHJlbmRlcldpdGhQcm92aWRlcnMsIHNjcmVlbiwgd2FpdEZvciB9IGZyb20gJy4uLy4uLy4uL3Rlc3QvdGVzdC11dGlscydcbmltcG9ydCB7IGZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm0gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy9mZXRjaEFnZW50RGV0YWlsJ1xuaW1wb3J0IHsgQ2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zIH0gZnJvbSAnLi9DaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMnXG5cbmplc3QubW9jaygnLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvZmV0Y2hBZ2VudERldGFpbCcsICgpID0+ICh7XG4gIGZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm06IGplc3QuZm4oKSxcbn0pKVxuXG5qZXN0Lm1vY2soJy4uLy4uLy4uL2hvb2tzL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInLCAoKSA9PiAoe1xuICB1c2VTbmFja0Jhck1hbmFnZXI6ICgpID0+ICh7IGhhbmRsZVNuYWNrYmFyRXJyb3I6IGplc3QuZm4oKSB9KSxcbn0pKVxuXG5jb25zdCBmZXRjaERldGFpbCA9IGZldGNoQWdlbnREZXRhaWxBbmRQYXJzZWRGb3JBYm0gYXMgamVzdC5Nb2NrZWRGdW5jdGlvbjx0eXBlb2YgZmV0Y2hBZ2VudERldGFpbEFuZFBhcnNlZEZvckFibT5cblxudHlwZSBNdWx0aUFnZW50V2luZG93ID0gV2luZG93ICYgeyBNQUlBX0NIQVRfQUlfRkVBVFVSRV9BQ0NFU1NfTVVMVElfQUdFTlRTPzogYm9vbGVhbiB9XG5cbmNvbnN0IGZsYWdzID0gd2luZG93IGFzIE11bHRpQWdlbnRXaW5kb3dcblxuZGVzY3JpYmUoJ0NoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucycsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgZmxhZ3MuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UUyA9IHRydWVcbiAgICBmZXRjaERldGFpbC5tb2NrUmVzb2x2ZWRWYWx1ZSh7XG4gICAgICBjaGF0QWdlbnQ6IHsgaWQ6ICdhMScsIG5hbWU6ICdOdWV2bycsIGVtb2ppOiAn4pyoJywgdHlwZTogJ2N1c3RvbScgfSxcbiAgICAgIGFibVBhcnNlZDogeyBpZDogJ2ExJywgbmFtZTogJ051ZXZvJyB9LFxuICAgIH0gYXMgQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBmZXRjaEFnZW50RGV0YWlsQW5kUGFyc2VkRm9yQWJtPj4pXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBkZWxldGUgZmxhZ3MuTUFJQV9DSEFUX0FJX0ZFQVRVUkVfQUNDRVNTX01VTFRJX0FHRU5UU1xuICB9KVxuXG4gIGl0KCdyZXR1cm5zIG51bGwgd2l0aG91dCB0aGUgbXVsdGktYWdlbnRzIGZsYWcnLCAoKSA9PiB7XG4gICAgZGVsZXRlIGZsYWdzLk1BSUFfQ0hBVF9BSV9GRUFUVVJFX0FDQ0VTU19NVUxUSV9BR0VOVFNcbiAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyV2l0aFByb3ZpZGVycyg8Q2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zIGFnZW50SWQ9XCJhMVwiIC8+KVxuXG4gICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUVtcHR5RE9NRWxlbWVudCgpXG4gIH0pXG5cbiAgaXQoJ29wZW5zIGEgbmV3IGNoYXQgd2l0aCB0aGUgY3JlYXRlZCBhZ2VudCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvbk9wZW4gPSBqZXN0LmZuKClcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9uT3BlbilcblxuICAgIHJlbmRlcldpdGhQcm92aWRlcnMoPENoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucyBhZ2VudElkPVwiYTFcIiAvPilcbiAgICBmaXJlRXZlbnQuY2xpY2soc2NyZWVuLmdldEJ5Um9sZSgnYnV0dG9uJywgeyBuYW1lOiAnY2hhdC5jcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdCcgfSkpXG5cbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICAgIGV4cGVjdChmZXRjaERldGFpbCkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2ExJylcbiAgICAgIGV4cGVjdChvbk9wZW4pLnRvSGF2ZUJlZW5DYWxsZWQoKVxuICAgIH0pXG5cbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLW9wZW4tbmV3LWNoYXQtd2l0aC1hZ2VudCcsIG9uT3BlbilcbiAgfSlcblxuICBpdCgnb3BlbnMgdGhlIEFCTSBvbiB0aGUga25vd2xlZGdlIHNlY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb25BYm0gPSBqZXN0LmZuKClcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdhYm0tYWdlbnQtbW9kYWwtc2V0LXZhbHVlcycsIG9uQWJtKVxuXG4gICAgcmVuZGVyV2l0aFByb3ZpZGVycyg8Q2hhdEFJQ3JlYXRlQWdlbnRBY3Rpb25zIGFnZW50SWQ9XCJhMVwiIC8+KVxuICAgIGZpcmVFdmVudC5jbGljayhzY3JlZW4uZ2V0QnlSb2xlKCdidXR0b24nLCB7IG5hbWU6ICdjaGF0LmNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlJyB9KSlcblxuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4ge1xuICAgICAgZXhwZWN0KG9uQWJtKS50b0hhdmVCZWVuQ2FsbGVkKClcbiAgICB9KVxuXG4gICAgY29uc3QgZXZlbnQgPSBvbkFibS5tb2NrLmNhbGxzWzBdWzBdIGFzIEN1c3RvbUV2ZW50XG4gICAgZXhwZWN0KGV2ZW50LmRldGFpbC5hZ2VudFZhbHVlcy5pbml0aWFsU2VjdGlvbikudG9CZSgna25vd2xlZGdlJylcblxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2FibS1hZ2VudC1tb2RhbC1zZXQtdmFsdWVzJywgb25BYm0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOztB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
|