@projectcor/maia-components 2.35.4-4 → 2.35.6
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/lib/components/atoms/ActionableButton.js +6 -1
- package/lib/components/atoms/ApprovalBox/ApprovalBox.js +4 -63
- package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +4 -16
- package/lib/components/atoms/ContextMentionChip/buildChipElement.js +1 -12
- package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -127
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
- package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
- package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +19 -2
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +20 -4
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +18 -7
- package/lib/components/atoms/MAIAInput/MAIAInput.js +42 -243
- package/lib/components/atoms/MAIAInput/styles.js +44 -41
- package/lib/components/atoms/icons/SkillsNavIcon.js +7 -4
- package/lib/components/atoms/icons/index.js +1 -5
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +11 -34
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -5
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +16 -5
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +23 -2
- package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +33 -5
- package/lib/components/molecules/ChatAIHome/styles.js +11 -2
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +31 -20
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +9 -4
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +21 -61
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +8 -1
- package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +15 -9
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +14 -3
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +17 -11
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +14 -5
- package/lib/components/molecules/ChatAIModal/layout.js +2 -2
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +12 -2
- package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +272 -334
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +109 -132
- package/lib/components/molecules/ChatFooter/ChatFooter.js +63 -57
- package/lib/components/molecules/ChatFooter/styles.js +12 -6
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
- package/lib/components/molecules/MessageFeedback/MessageFeedback.js +15 -5
- package/lib/components/molecules/Sidebar/Sidebar.js +7 -15
- package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +3 -3
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +33 -0
- package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +47 -0
- package/lib/components/molecules/UsageBlockedBanner/index.js +2 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +46 -30
- package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +38 -26
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +209 -430
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +74 -131
- package/lib/components/organisms/ChatAI/ChatAI.js +6 -1
- package/lib/constants/config.js +4 -1
- package/lib/constants/permissions/utils.js +3 -3
- package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
- package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
- package/lib/hooks/useChatManager/useChatManager.js +58 -38
- package/lib/hooks/useContextMentions.js +56 -96
- package/lib/hooks/useEntitySearch.js +278 -92
- package/lib/hooks/useEvent.js +2 -15
- package/lib/hooks/useMentionAllowedTypes.js +25 -9
- package/lib/hooks/useMentionPopover.js +33 -9
- package/lib/lang/br/index.js +12 -39
- package/lib/lang/en/index.js +12 -39
- package/lib/lang/es/index.js +13 -40
- package/lib/lang/fr/index.js +13 -40
- package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
- package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
- package/lib/services/maia/Orchestrator/orchestrator.js +7 -16
- package/lib/services/maia/Skills/createSkill.js +1 -1
- package/lib/services/maia/Skills/getSkills.js +40 -70
- package/lib/services/maia/Skills/updateSkill.js +1 -1
- package/lib/services/maia/Usage/getUsage.js +45 -0
- package/lib/services/maia/Usage/index.js +6 -0
- package/lib/services/maia/index.js +4 -2
- package/lib/services/utils/MaiaApiError.js +34 -0
- package/lib/services/utils/fetchCOR.js +106 -57
- package/lib/services/utils/index.js +2 -1
- package/lib/store/faqsStore.types.js +1 -1
- package/lib/store/index.js +2 -1
- package/lib/store/sessions/sessionStreamManager.js +61 -35
- package/lib/store/sessions/sessions.types.js +1 -1
- package/lib/store/useChatsStore.js +3 -3
- package/lib/store/useUsageStore.js +108 -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/types/usage.js +9 -0
- package/lib/utils/contextMentionTriggers.js +5 -2
- package/lib/utils/normalizeAgentConnectors.js +16 -44
- package/lib/utils/renderContextMentions.js +18 -39
- package/package.json +6 -9
- package/CHANGELOG.md +0 -727
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
- package/lib/components/atoms/Chip/Chip.spec.js +0 -32
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
- package/lib/components/atoms/Fade/Fade.spec.js +0 -31
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -283
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -68
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
- package/lib/components/atoms/SkillsDropdown/index.js +0 -2
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
- package/lib/components/atoms/Switch/Switch.spec.js +0 -41
- package/lib/components/atoms/icons/PlusIcon.js +0 -29
- package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
- package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
- package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -77
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -291
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -105
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -192
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -335
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -315
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -95
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -96
- package/lib/hooks/useCaretPosition.spec.js +0 -58
- package/lib/hooks/useDebounce.spec.js +0 -42
- package/lib/hooks/useEvent.spec.js +0 -40
- package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
- package/lib/hooks/useModal/useModal.spec.js +0 -73
- package/lib/hooks/useResize.spec.js +0 -37
- package/lib/hooks/useSkillsCatalog.js +0 -66
- package/lib/hooks/useSkillsCatalog.spec.js +0 -88
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
- package/lib/hooks/useT.spec.js +0 -20
- package/lib/hooks/useToggle.spec.js +0 -33
- package/lib/services/maia/Access/updateAccess.spec.js +0 -108
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -69
- package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -74
- package/lib/services/maia/Agents/createAgent.spec.js +0 -55
- package/lib/services/maia/Agents/deleteAgent.spec.js +0 -42
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
- package/lib/services/maia/Agents/getAgentById.spec.js +0 -55
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -82
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
- package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -47
- package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
- package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
- package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
- package/lib/services/maia/Chats/patchChat.spec.js +0 -41
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
- package/lib/services/maia/Knowledge/delete.spec.js +0 -45
- package/lib/services/maia/Knowledge/download.spec.js +0 -78
- package/lib/services/maia/Knowledge/save.spec.js +0 -58
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -72
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -83
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
- package/lib/services/maia/Skills/createSkill.spec.js +0 -68
- package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
- package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
- package/lib/services/maia/Skills/getSkills.spec.js +0 -152
- package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
- package/lib/services/maia/client.spec.js +0 -56
- package/lib/services/utils/fetchCOR.spec.js +0 -211
- package/lib/services/utils/getCookie.spec.js +0 -20
- package/lib/store/chatsSidebarOptimistic.spec.js +0 -120
- package/lib/store/maiaLastChatPersistence.spec.js +0 -22
- package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
- package/lib/store/sessions/sessions.types.spec.js +0 -16
- package/lib/store/sessions/useSessionsStore.spec.js +0 -135
- package/lib/store/useChatsStore.spec.js +0 -619
- package/lib/store/useFaqsStore.spec.js +0 -57
- package/lib/test/buttonMock.js +0 -22
- package/lib/test/fetchPolyfill.js +0 -160
- package/lib/test/fileMock.js +0 -2
- package/lib/test/global-context.js +0 -49
- package/lib/test/iconMock.js +0 -19
- package/lib/test/mockFetch.js +0 -49
- package/lib/test/portalRoot.js +0 -13
- package/lib/test/styleMock.js +0 -2
- package/lib/test/test-utils.js +0 -26
- package/lib/test/tooltipMock.js +0 -11
- package/lib/utils/agentDisplayName.spec.js +0 -44
- package/lib/utils/autoApproveStorage.spec.js +0 -25
- package/lib/utils/chatInputFiles.spec.js +0 -39
- package/lib/utils/contextMentionLabel.spec.js +0 -13
- package/lib/utils/contextMentionTriggers.spec.js +0 -38
- package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
- package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
- package/lib/utils/fileDownloadHelper.spec.js +0 -67
- package/lib/utils/formatQuickActionMessage.spec.js +0 -27
- package/lib/utils/formatUnreadCount.spec.js +0 -12
- package/lib/utils/getUnitFileSize.spec.js +0 -18
- package/lib/utils/hitlAnalytics.spec.js +0 -100
- package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
- package/lib/utils/mapBackendLang.spec.js +0 -19
- package/lib/utils/normalizeAgentConnectors.spec.js +0 -89
- package/lib/utils/orchestratorSubagents.spec.js +0 -32
- package/lib/utils/reasoningMappers.spec.js +0 -103
- package/lib/utils/retryCompletion.spec.js +0 -99
- package/lib/utils/skillContentSize.spec.js +0 -13
- package/lib/utils/slashCommandMarker.spec.js +0 -43
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
- package/lib/utils/sseStreamContent.spec.js +0 -31
- package/lib/utils/streamActivityMessages.spec.js +0 -98
- package/lib/utils/validateTrimmedFields.spec.js +0 -26
|
@@ -52,7 +52,7 @@ export var useChatsStore = create(function (set, get) {
|
|
|
52
52
|
nextItem = _yield$maia$Chats$get.nextItem;
|
|
53
53
|
hasMore = _yield$maia$Chats$get.hasMore;
|
|
54
54
|
unreadCount = _yield$maia$Chats$get.unreadCount;
|
|
55
|
-
nextOffset = hasMore && nextItem
|
|
55
|
+
nextOffset = hasMore && nextItem ? Number(nextItem) : null;
|
|
56
56
|
apiItems = items;
|
|
57
57
|
apiIds = new Set(apiItems.map(function (item) {
|
|
58
58
|
return item.sessionExternalId;
|
|
@@ -125,7 +125,7 @@ export var useChatsStore = create(function (set, get) {
|
|
|
125
125
|
nextItem = _yield$maia$Chats$get2.nextItem;
|
|
126
126
|
hasMore = _yield$maia$Chats$get2.hasMore;
|
|
127
127
|
unreadCount = _yield$maia$Chats$get2.unreadCount;
|
|
128
|
-
newNextOffset = hasMore && nextItem
|
|
128
|
+
newNextOffset = hasMore && nextItem ? Number(nextItem) : null;
|
|
129
129
|
set(function (state) {
|
|
130
130
|
return {
|
|
131
131
|
chats: [].concat(_toConsumableArray(state.chats), _toConsumableArray(items)),
|
|
@@ -384,4 +384,4 @@ export var useChatsStore = create(function (set, get) {
|
|
|
384
384
|
export var getChatsStoreState = function getChatsStoreState() {
|
|
385
385
|
return useChatsStore.getState();
|
|
386
386
|
};
|
|
387
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJtYWlhIiwiREVGQVVMVF9MSU1JVCIsImluaXRpYWxTdGF0ZSIsImNoYXRzIiwib3B0aW1pc3RpY1Nlc3Npb25JZHMiLCJsb2FkaW5nQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJuZXh0T2Zmc2V0IiwibGltaXQiLCJvZmZzZXQiLCJtb3VudENvdW50IiwidW5yZWFkQ291bnQiLCJhY3RpdmVDaGF0SWQiLCJpc0NoYXRWaWV3VmlzaWJsZSIsInVzZUNoYXRzU3RvcmUiLCJzZXQiLCJnZXQiLCJfb2JqZWN0U3ByZWFkIiwiZmV0Y2hDaGF0cyIsIl9mZXRjaENoYXRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmIiwiYWdlbnQiLCJzZWN0aW9uIiwiX3JlZiRsaW1pdCIsIl9yZWYkb2Zmc2V0Iiwib25FcnJvciIsImxhbmciLCJfcmVmJGJhY2tncm91bmQiLCJiYWNrZ3JvdW5kIiwiaGFzRXhpc3RpbmdDaGF0cyIsIl95aWVsZCRtYWlhJENoYXRzJGdldCIsIml0ZW1zIiwibmV4dEl0ZW0iLCJoYXNNb3JlIiwiYXBpSXRlbXMiLCJhcGlJZHMiLCJfZ2V0IiwiY3VycmVudENoYXRzIiwic3RpbGxPcHRpbWlzdGljIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsIkNoYXRzIiwiZ2V0Q2hhdHNCeVVzZXJJZCIsInNlbnQiLCJOdW1iZXIiLCJTZXQiLCJtYXAiLCJpdGVtIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJmaWx0ZXIiLCJjaGF0IiwiaW5jbHVkZXMiLCJoYXMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJpZCIsImNvbnNvbGUiLCJlcnJvciIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1vcmVDaGF0cyIsIl9sb2FkTW9yZUNoYXRzIiwiX2NhbGxlZTIiLCJfcmVmMiIsIl9nZXQyIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0MiIsIm5ld05leHRPZmZzZXQiLCJfdDIiLCJfY29udGV4dDIiLCJhYnJ1cHQiLCJzdGF0ZSIsIl94MiIsInByZXBlbmRDaGF0IiwiZmlsdGVyZWQiLCJleGlzdGluZyIsImFscmVhZHlPcHRpbWlzdGljIiwiZGVsZXRlQ2hhdCIsIl9kZWxldGVDaGF0IiwiX2NhbGxlZTMiLCJfcmVmMyIsImNoYXRJZCIsInVzZXJJZCIsIl90MyIsIl9jb250ZXh0MyIsIl94MyIsInVwZGF0ZUNoYXQiLCJfdXBkYXRlQ2hhdCIsIl9jYWxsZWU0IiwiX3JlZjQiLCJfY3VycmVudCR0aXRsZSIsImN1cnJlbnQiLCJsYXN0UXVlc3Rpb24iLCJfdDQiLCJfY29udGV4dDQiLCJmaW5kIiwiYyIsInRpdGxlIiwicGF0Y2hDaGF0IiwiX3g0IiwibWFya0NoYXRBc1JlYWQiLCJfbWFya0NoYXRBc1JlYWQiLCJfY2FsbGVlNSIsIm9wdGlvbnMiLCJfdDUiLCJfY29udGV4dDUiLCJmb3JjZSIsImlzUmVhZCIsIk1hdGgiLCJtYXgiLCJtYXJrU2Vzc2lvbkFzUmVhZCIsIl94NSIsIl94NiIsIm1hcmtDaGF0QXNVbnJlYWQiLCJzZXRDaGF0UmVhZFN0YXRlIiwic2V0QWN0aXZlQ2hhdElkIiwic2V0Q2hhdFZpZXdWaXNpYmxlIiwidmlzaWJsZSIsInNldFVucmVhZENvdW50IiwiY291bnQiLCJyZXNldCIsImFjcXVpcmUiLCJyZWxlYXNlIiwibmV3Q291bnQiLCJnZXRDaGF0c1N0b3JlU3RhdGUiLCJnZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS91c2VDaGF0c1N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnenVzdGFuZCdcbmltcG9ydCBtYWlhIGZyb20gJy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgdHlwZSB7IENoYXRMaXN0SXRlbSwgRmV0Y2hDaGF0c1BhcmFtcywgTG9hZE1vcmVDaGF0c1BhcmFtcywgRGVsZXRlQ2hhdFBhcmFtcyB9IGZyb20gJy4vY2hhdHNTdG9yZS50eXBlcydcblxuY29uc3QgREVGQVVMVF9MSU1JVCA9IDIwXG5cbnR5cGUgQ2hhdHNTdGF0ZSA9IHtcbiAgY2hhdHM6IENoYXRMaXN0SXRlbVtdXG4gIC8qKiBTZXNpb25lcyBhZ3JlZ2FkYXMgb3B0aW1pc3RhbWVudGUgaGFzdGEgcXVlIGVsIGJhY2tlbmQgbGFzIGRldnVlbHZhIGVuIEdFVCBzZXNzaW9ucy4gKi9cbiAgb3B0aW1pc3RpY1Nlc3Npb25JZHM6IHN0cmluZ1tdXG4gIGxvYWRpbmdDaGF0czogYm9vbGVhblxuICBpc0xvYWRpbmdNb3JlQ2hhdHM6IGJvb2xlYW5cbiAgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbFxuICBsaW1pdDogbnVtYmVyXG4gIG9mZnNldDogbnVtYmVyXG4gIG1vdW50Q291bnQ6IG51bWJlclxuICB1bnJlYWRDb3VudDogbnVtYmVyXG4gIGFjdGl2ZUNoYXRJZDogc3RyaW5nIHwgbnVsbFxuICBpc0NoYXRWaWV3VmlzaWJsZTogYm9vbGVhblxufVxuXG50eXBlIENoYXRzQWN0aW9ucyA9IHtcbiAgZmV0Y2hDaGF0czogKHBhcmFtczogRmV0Y2hDaGF0c1BhcmFtcykgPT4gUHJvbWlzZTx2b2lkPlxuICBsb2FkTW9yZUNoYXRzOiAocGFyYW1zOiBMb2FkTW9yZUNoYXRzUGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHByZXBlbmRDaGF0OiAoY2hhdDogQ2hhdExpc3RJdGVtKSA9PiB2b2lkXG4gIGRlbGV0ZUNoYXQ6IChwYXJhbXM6IERlbGV0ZUNoYXRQYXJhbXMpID0+IFByb21pc2U8Ym9vbGVhbj5cbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IFBhcnRpYWw8Q2hhdExpc3RJdGVtPiAmIHsgc2Vzc2lvbkV4dGVybmFsSWQ6IHN0cmluZzsgaWQ6IHN0cmluZyB9KSA9PiBQcm9taXNlPGJvb2xlYW4+XG4gIG1hcmtDaGF0QXNSZWFkOiAoY2hhdElkPzogc3RyaW5nIHwgbnVsbCwgb3B0aW9ucz86IHsgZm9yY2U/OiBib29sZWFuIH0pID0+IFByb21pc2U8dm9pZD5cbiAgbWFya0NoYXRBc1VucmVhZDogKGNoYXRJZD86IHN0cmluZyB8IG51bGwpID0+IHZvaWRcbiAgc2V0Q2hhdFJlYWRTdGF0ZTogKGNoYXRJZDogc3RyaW5nLCBpc1JlYWQ6IGJvb2xlYW4pID0+IHZvaWRcbiAgc2V0QWN0aXZlQ2hhdElkOiAoY2hhdElkOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkXG4gIHNldENoYXRWaWV3VmlzaWJsZTogKHZpc2libGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgc2V0VW5yZWFkQ291bnQ6IChjb3VudDogbnVtYmVyKSA9PiB2b2lkXG4gIHJlc2V0OiAoKSA9PiB2b2lkXG4gIGFjcXVpcmU6ICgpID0+IHZvaWRcbiAgcmVsZWFzZTogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IENoYXRzU3RhdGUgPSB7XG4gIGNoYXRzOiBbXSxcbiAgb3B0aW1pc3RpY1Nlc3Npb25JZHM6IFtdLFxuICBsb2FkaW5nQ2hhdHM6IHRydWUsXG4gIGlzTG9hZGluZ01vcmVDaGF0czogZmFsc2UsXG4gIG5leHRPZmZzZXQ6IG51bGwsXG4gIGxpbWl0OiBERUZBVUxUX0xJTUlULFxuICBvZmZzZXQ6IDAsXG4gIG1vdW50Q291bnQ6IDAsXG4gIHVucmVhZENvdW50OiAwLFxuICBhY3RpdmVDaGF0SWQ6IG51bGwsXG4gIGlzQ2hhdFZpZXdWaXNpYmxlOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdHNTdG9yZSA9IGNyZWF0ZTxDaGF0c1N0YXRlICYgQ2hhdHNBY3Rpb25zPigoc2V0LCBnZXQpID0+ICh7XG4gIC4uLmluaXRpYWxTdGF0ZSxcblxuICBmZXRjaENoYXRzOiBhc3luYyAoeyBhZ2VudCwgc2VjdGlvbiwgbGltaXQgPSBERUZBVUxUX0xJTUlULCBvZmZzZXQgPSAwLCBvbkVycm9yLCBsYW5nLCBiYWNrZ3JvdW5kID0gZmFsc2UgfSkgPT4ge1xuICAgIGNvbnN0IGhhc0V4aXN0aW5nQ2hhdHMgPSBnZXQoKS5jaGF0cy5sZW5ndGggPiAwXG4gICAgaWYgKCFiYWNrZ3JvdW5kIHx8ICFoYXNFeGlzdGluZ0NoYXRzKSB7XG4gICAgICBzZXQoeyBsb2FkaW5nQ2hhdHM6IHRydWUgfSlcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgaXRlbXMsIG5leHRJdGVtLCBoYXNNb3JlLCB1bnJlYWRDb3VudCB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0c0J5VXNlcklkKHtcbiAgICAgICAgYWdlbnQsXG4gICAgICAgIHNlY3Rpb24sXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIGxhbmcsXG4gICAgICB9KVxuICAgICAgY29uc3QgbmV4dE9mZnNldCA9IGhhc01vcmUgJiYgbmV4dEl0ZW0gIT0gbnVsbCA/IE51bWJlcihuZXh0SXRlbSkgOiBudWxsXG4gICAgICBjb25zdCBhcGlJdGVtcyA9IGl0ZW1zIGFzIENoYXRMaXN0SXRlbVtdXG4gICAgICBjb25zdCBhcGlJZHMgPSBuZXcgU2V0KGFwaUl0ZW1zLm1hcChpdGVtID0+IGl0ZW0uc2Vzc2lvbkV4dGVybmFsSWQpKVxuICAgICAgY29uc3QgeyBjaGF0czogY3VycmVudENoYXRzLCBvcHRpbWlzdGljU2Vzc2lvbklkcyB9ID0gZ2V0KClcbiAgICAgIGNvbnN0IHN0aWxsT3B0aW1pc3RpYyA9IGN1cnJlbnRDaGF0cy5maWx0ZXIoXG4gICAgICAgIGNoYXQgPT4gb3B0aW1pc3RpY1Nlc3Npb25JZHMuaW5jbHVkZXMoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZCkgJiYgIWFwaUlkcy5oYXMoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIClcbiAgICAgIHNldCh7XG4gICAgICAgIGNoYXRzOiBbLi4uc3RpbGxPcHRpbWlzdGljLCAuLi5hcGlJdGVtc10sXG4gICAgICAgIG9wdGltaXN0aWNTZXNzaW9uSWRzOiBvcHRpbWlzdGljU2Vzc2lvbklkcy5maWx0ZXIoaWQgPT4gIWFwaUlkcy5oYXMoaWQpKSxcbiAgICAgICAgbG9hZGluZ0NoYXRzOiBmYWxzZSxcbiAgICAgICAgbmV4dE9mZnNldCxcbiAgICAgICAgbGltaXQsXG4gICAgICAgIG9mZnNldDogbmV4dE9mZnNldCA/PyAwLFxuICAgICAgICB1bnJlYWRDb3VudCxcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNoYXRzOicsIGVycm9yKVxuICAgICAgc2V0KHsgbG9hZGluZ0NoYXRzOiBmYWxzZSB9KVxuICAgICAgb25FcnJvcj8uKClcbiAgICB9XG4gIH0sXG5cbiAgbG9hZE1vcmVDaGF0czogYXN5bmMgKHsgYWdlbnQsIHNlY3Rpb24sIG9uRXJyb3IsIGxhbmcgfSkgPT4ge1xuICAgIGNvbnN0IHsgbmV4dE9mZnNldCwgbGltaXQsIGlzTG9hZGluZ01vcmVDaGF0cyB9ID0gZ2V0KClcbiAgICBpZiAobmV4dE9mZnNldCA9PT0gbnVsbCB8fCBpc0xvYWRpbmdNb3JlQ2hhdHMpIHJldHVyblxuICAgIHNldCh7IGlzTG9hZGluZ01vcmVDaGF0czogdHJ1ZSB9KVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGl0ZW1zLCBuZXh0SXRlbSwgaGFzTW9yZSwgdW5yZWFkQ291bnQgfSA9IGF3YWl0IG1haWEuQ2hhdHMuZ2V0Q2hhdHNCeVVzZXJJZCh7XG4gICAgICAgIGFnZW50LFxuICAgICAgICBzZWN0aW9uLFxuICAgICAgICBsaW1pdCxcbiAgICAgICAgb2Zmc2V0OiBuZXh0T2Zmc2V0LFxuICAgICAgICBsYW5nLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IG5ld05leHRPZmZzZXQgPSBoYXNNb3JlICYmIG5leHRJdGVtICE9IG51bGwgPyBOdW1iZXIobmV4dEl0ZW0pIDogbnVsbFxuICAgICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICAgIGNoYXRzOiBbLi4uc3RhdGUuY2hhdHMsIC4uLihpdGVtcyBhcyBDaGF0TGlzdEl0ZW1bXSldLFxuICAgICAgICBpc0xvYWRpbmdNb3JlQ2hhdHM6IGZhbHNlLFxuICAgICAgICBuZXh0T2Zmc2V0OiBuZXdOZXh0T2Zmc2V0LFxuICAgICAgICBvZmZzZXQ6IG5ld05leHRPZmZzZXQgPz8gMCxcbiAgICAgICAgdW5yZWFkQ291bnQsXG4gICAgICB9KSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBtb3JlIGNoYXRzOicsIGVycm9yKVxuICAgICAgc2V0KHsgaXNMb2FkaW5nTW9yZUNoYXRzOiBmYWxzZSB9KVxuICAgICAgb25FcnJvcj8uKClcbiAgICB9XG4gIH0sXG5cbiAgcHJlcGVuZENoYXQ6IGNoYXQgPT5cbiAgICBzZXQoc3RhdGUgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWQgPSBzdGF0ZS5jaGF0cy5maWx0ZXIoZXhpc3RpbmcgPT4gZXhpc3Rpbmcuc2Vzc2lvbkV4dGVybmFsSWQgIT09IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICBjb25zdCBhbHJlYWR5T3B0aW1pc3RpYyA9IHN0YXRlLm9wdGltaXN0aWNTZXNzaW9uSWRzLmluY2x1ZGVzKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjaGF0czogW2NoYXQsIC4uLmZpbHRlcmVkXSxcbiAgICAgICAgb3B0aW1pc3RpY1Nlc3Npb25JZHM6IGFscmVhZHlPcHRpbWlzdGljXG4gICAgICAgICAgPyBzdGF0ZS5vcHRpbWlzdGljU2Vzc2lvbklkc1xuICAgICAgICAgIDogWy4uLnN0YXRlLm9wdGltaXN0aWNTZXNzaW9uSWRzLCBjaGF0LnNlc3Npb25FeHRlcm5hbElkXSxcbiAgICAgIH1cbiAgICB9KSxcblxuICBkZWxldGVDaGF0OiBhc3luYyAoeyBjaGF0SWQsIHVzZXJJZCB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG1haWEuQ2hhdHMuZGVsZXRlQ2hhdCh7IGNoYXRJZCwgdXNlcklkIH0pXG4gICAgICBzZXQoc3RhdGUgPT4gKHtcbiAgICAgICAgY2hhdHM6IHN0YXRlLmNoYXRzLmZpbHRlcihjaGF0ID0+IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQgIT09IGNoYXRJZCksXG4gICAgICAgIG9wdGltaXN0aWNTZXNzaW9uSWRzOiBzdGF0ZS5vcHRpbWlzdGljU2Vzc2lvbklkcy5maWx0ZXIoaWQgPT4gaWQgIT09IGNoYXRJZCksXG4gICAgICB9KSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGRlbGV0aW5nIGNoYXQ6JywgZXJyb3IpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH0sXG5cbiAgdXBkYXRlQ2hhdDogYXN5bmMgY2hhdCA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBnZXQoKS5jaGF0cy5maW5kKGMgPT4gYy5pZCA9PT0gY2hhdC5pZClcbiAgICAgIGNvbnN0IGxhc3RRdWVzdGlvbiA9IGN1cnJlbnQ/LnRpdGxlID8/IGNoYXQudGl0bGUgPz8gJydcbiAgICAgIGF3YWl0IG1haWEuQ2hhdHMucGF0Y2hDaGF0KHtcbiAgICAgICAgY2hhdElkOiBjaGF0LnNlc3Npb25FeHRlcm5hbElkLFxuICAgICAgICBsYXN0UXVlc3Rpb24sXG4gICAgICAgIC4uLihjaGF0LnRpdGxlICE9IG51bGwgJiYgeyB0aXRsZTogY2hhdC50aXRsZSB9KSxcbiAgICAgIH0pXG4gICAgICBzZXQoc3RhdGUgPT4gKHtcbiAgICAgICAgY2hhdHM6IHN0YXRlLmNoYXRzLm1hcChjID0+IChjLmlkID09PSBjaGF0LmlkID8geyAuLi5jLCAuLi5jaGF0IH0gOiBjKSksXG4gICAgICB9KSlcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHVwZGF0aW5nIGNoYXQ6JywgZXJyb3IpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH0sXG5cbiAgbWFya0NoYXRBc1JlYWQ6IGFzeW5jIChjaGF0SWQsIG9wdGlvbnMpID0+IHtcbiAgICBjb25zdCBpZCA9IGNoYXRJZCB8fCBnZXQoKS5hY3RpdmVDaGF0SWRcbiAgICBpZiAoIWlkKSByZXR1cm5cblxuICAgIGNvbnN0IGNoYXQgPSBnZXQoKS5jaGF0cy5maW5kKGMgPT4gYy5zZXNzaW9uRXh0ZXJuYWxJZCA9PT0gaWQpXG4gICAgaWYgKCFvcHRpb25zPy5mb3JjZSAmJiBjaGF0Py5pc1JlYWQpIHJldHVyblxuXG4gICAgaWYgKGNoYXQ/LmlzUmVhZCA9PT0gZmFsc2UpIHtcbiAgICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgICBjaGF0czogc3RhdGUuY2hhdHMubWFwKGMgPT4gKGMuc2Vzc2lvbkV4dGVybmFsSWQgPT09IGlkID8geyAuLi5jLCBpc1JlYWQ6IHRydWUgfSA6IGMpKSxcbiAgICAgICAgdW5yZWFkQ291bnQ6IE1hdGgubWF4KDAsIHN0YXRlLnVucmVhZENvdW50IC0gMSksXG4gICAgICB9KSlcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgbWFpYS5DaGF0cy5tYXJrU2Vzc2lvbkFzUmVhZCh7IGNoYXRJZDogaWQgfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbWFya2luZyBjaGF0IGFzIHJlYWQ6JywgZXJyb3IpXG4gICAgfVxuICB9LFxuXG4gIG1hcmtDaGF0QXNVbnJlYWQ6IGNoYXRJZCA9PiB7XG4gICAgaWYgKCFjaGF0SWQpIHJldHVyblxuICAgIGNvbnN0IGNoYXQgPSBnZXQoKS5jaGF0cy5maW5kKGMgPT4gYy5zZXNzaW9uRXh0ZXJuYWxJZCA9PT0gY2hhdElkKVxuICAgIGlmIChjaGF0Py5pc1JlYWQgPT09IGZhbHNlKSByZXR1cm5cblxuICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgY2hhdHM6IHN0YXRlLmNoYXRzLm1hcChjID0+IChjLnNlc3Npb25FeHRlcm5hbElkID09PSBjaGF0SWQgPyB7IC4uLmMsIGlzUmVhZDogZmFsc2UgfSA6IGMpKSxcbiAgICAgIHVucmVhZENvdW50OiBzdGF0ZS51bnJlYWRDb3VudCArIDEsXG4gICAgfSkpXG4gIH0sXG5cbiAgc2V0Q2hhdFJlYWRTdGF0ZTogKGNoYXRJZCwgaXNSZWFkKSA9PlxuICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgY2hhdHM6IHN0YXRlLmNoYXRzLm1hcChjID0+IChjLnNlc3Npb25FeHRlcm5hbElkID09PSBjaGF0SWQgPyB7IC4uLmMsIGlzUmVhZCB9IDogYykpLFxuICAgIH0pKSxcblxuICBzZXRBY3RpdmVDaGF0SWQ6IGNoYXRJZCA9PiBzZXQoeyBhY3RpdmVDaGF0SWQ6IGNoYXRJZCB9KSxcblxuICBzZXRDaGF0Vmlld1Zpc2libGU6IHZpc2libGUgPT4gc2V0KHsgaXNDaGF0Vmlld1Zpc2libGU6IHZpc2libGUgfSksXG5cbiAgc2V0VW5yZWFkQ291bnQ6IGNvdW50ID0+IHNldCh7IHVucmVhZENvdW50OiBNYXRoLm1heCgwLCBjb3VudCkgfSksXG5cbiAgcmVzZXQ6ICgpID0+IHNldChzdGF0ZSA9PiAoeyAuLi5pbml0aWFsU3RhdGUsIG1vdW50Q291bnQ6IHN0YXRlLm1vdW50Q291bnQgfSkpLFxuXG4gIGFjcXVpcmU6ICgpID0+IHNldChzdGF0ZSA9PiAoeyBtb3VudENvdW50OiBzdGF0ZS5tb3VudENvdW50ICsgMSB9KSksXG5cbiAgcmVsZWFzZTogKCkgPT4ge1xuICAgIHNldChzdGF0ZSA9PiB7XG4gICAgICBjb25zdCBuZXdDb3VudCA9IE1hdGgubWF4KDAsIHN0YXRlLm1vdW50Q291bnQgLSAxKVxuICAgICAgaWYgKG5ld0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxTdGF0ZSwgbW91bnRDb3VudDogMCB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBtb3VudENvdW50OiBuZXdDb3VudCB9XG4gICAgfSlcbiAgfSxcbn0pKVxuXG5leHBvcnQgY29uc3QgZ2V0Q2hhdHNTdG9yZVN0YXRlID0gKCkgPT4gdXNlQ2hhdHNTdG9yZS5nZXRTdGF0ZSgpXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQSxTQUFTQSxNQUFNLFFBQVEsU0FBUztBQUNoQyxPQUFPQyxJQUFJLE1BQU0sa0JBQWtCO0FBR25DLElBQU1DLGFBQWEsR0FBRyxFQUFFO0FBa0N4QixJQUFNQyxZQUF3QixHQUFHO0VBQy9CQyxLQUFLLEVBQUUsRUFBRTtFQUNUQyxvQkFBb0IsRUFBRSxFQUFFO0VBQ3hCQyxZQUFZLEVBQUUsSUFBSTtFQUNsQkMsa0JBQWtCLEVBQUUsS0FBSztFQUN6QkMsVUFBVSxFQUFFLElBQUk7RUFDaEJDLEtBQUssRUFBRVAsYUFBYTtFQUNwQlEsTUFBTSxFQUFFLENBQUM7RUFDVEMsVUFBVSxFQUFFLENBQUM7RUFDYkMsV0FBVyxFQUFFLENBQUM7RUFDZEMsWUFBWSxFQUFFLElBQUk7RUFDbEJDLGlCQUFpQixFQUFFO0FBQ3JCLENBQUM7QUFFRCxPQUFPLElBQU1DLGFBQWEsR0FBR2YsTUFBTSxDQUE0QixVQUFDZ0IsR0FBRyxFQUFFQyxHQUFHO0VBQUEsT0FBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQ25FZixZQUFZO0lBRWZnQixVQUFVO01BQUEsSUFBQUMsV0FBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUUsU0FBQUMsUUFBQUMsSUFBQTtRQUFBLElBQUFDLEtBQUEsRUFBQUMsT0FBQSxFQUFBQyxVQUFBLEVBQUFuQixLQUFBLEVBQUFvQixXQUFBLEVBQUFuQixNQUFBLEVBQUFvQixPQUFBLEVBQUFDLElBQUEsRUFBQUMsZUFBQSxFQUFBQyxVQUFBLEVBQUFDLGdCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLEtBQUEsRUFBQUMsUUFBQSxFQUFBQyxPQUFBLEVBQUExQixXQUFBLEVBQUFKLFVBQUEsRUFBQStCLFFB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LFNBQWpCQSxlQUFlQSxDQUFFbEMsTUFBTTtNQUFBLE9BQUkzRSxHQUFHLENBQUM7UUFBRUgsWUFBWSxFQUFFOEU7TUFBTyxDQUFDLENBQUM7SUFBQTtJQUV4RG1DLGtCQUFrQixFQUFFLFNBQXBCQSxrQkFBa0JBLENBQUVDLE9BQU87TUFBQSxPQUFJL0csR0FBRyxDQUFDO1FBQUVGLGlCQUFpQixFQUFFaUg7TUFBUSxDQUFDLENBQUM7SUFBQTtJQUVsRUMsY0FBYyxFQUFFLFNBQWhCQSxjQUFjQSxDQUFFQyxLQUFLO01BQUEsT0FBSWpILEdBQUcsQ0FBQztRQUFFSixXQUFXLEVBQUUwRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVVLEtBQUs7TUFBRSxDQUFDLENBQUM7SUFBQTtJQUVqRUMsS0FBSyxFQUFFLFNBQVBBLEtBQUtBLENBQUE7TUFBQSxPQUFRbEgsR0FBRyxDQUFDLFVBQUFpRSxLQUFLO1FBQUEsT0FBQS9ELGFBQUEsQ0FBQUEsYUFBQSxLQUFVZixZQUFZO1VBQUVRLFVBQVUsRUFBRXNFLEtBQUssQ0FBQ3RFO1FBQVU7TUFBQSxDQUFHLENBQUM7SUFBQTtJQUU5RXdILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5ILEdBQUcsQ0FBQyxVQUFBaUUsS0FBSztRQUFBLE9BQUs7VUFBRXRFLFVBQVUsRUFBRXNFLEtBQUssQ0FBQ3RFLFVBQVUsR0FBRztRQUFFLENBQUM7TUFBQSxDQUFDLENBQUM7SUFBQTtJQUVuRXlILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7TUFDYnBILEdBQUcsQ0FBQyxVQUFBaUUsS0FBSyxFQUFJO1FBQ1gsSUFBTW9ELFFBQVEsR0FBR2YsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFdEMsS0FBSyxDQUFDdEUsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFJMEgsUUFBUSxLQUFLLENBQUMsRUFBRTtVQUNsQixPQUFBbkgsYUFBQSxDQUFBQSxhQUFBLEtBQVlmLFlBQVk7WUFBRVEsVUFBVSxFQUFFO1VBQUM7UUFDekM7UUFDQSxPQUFPO1VBQUVBLFVBQVUsRUFBRTBIO1FBQVMsQ0FBQztNQUNqQyxDQUFDLENBQUM7SUFDSjtFQUFDO0FBQUEsQ0FDRCxDQUFDO0FBRUgsT0FBTyxJQUFNQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBO0VBQUEsT0FBU3ZILGFBQWEsQ0FBQ3dILFFBQVEsQ0FBQyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
387
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJtYWlhIiwiREVGQVVMVF9MSU1JVCIsImluaXRpYWxTdGF0ZSIsImNoYXRzIiwib3B0aW1pc3RpY1Nlc3Npb25JZHMiLCJsb2FkaW5nQ2hhdHMiLCJpc0xvYWRpbmdNb3JlQ2hhdHMiLCJuZXh0T2Zmc2V0IiwibGltaXQiLCJvZmZzZXQiLCJtb3VudENvdW50IiwidW5yZWFkQ291bnQiLCJhY3RpdmVDaGF0SWQiLCJpc0NoYXRWaWV3VmlzaWJsZSIsInVzZUNoYXRzU3RvcmUiLCJzZXQiLCJnZXQiLCJfb2JqZWN0U3ByZWFkIiwiZmV0Y2hDaGF0cyIsIl9mZXRjaENoYXRzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJfcmVmIiwiYWdlbnQiLCJzZWN0aW9uIiwiX3JlZiRsaW1pdCIsIl9yZWYkb2Zmc2V0Iiwib25FcnJvciIsImxhbmciLCJfcmVmJGJhY2tncm91bmQiLCJiYWNrZ3JvdW5kIiwiaGFzRXhpc3RpbmdDaGF0cyIsIl95aWVsZCRtYWlhJENoYXRzJGdldCIsIml0ZW1zIiwibmV4dEl0ZW0iLCJoYXNNb3JlIiwiYXBpSXRlbXMiLCJhcGlJZHMiLCJfZ2V0IiwiY3VycmVudENoYXRzIiwic3RpbGxPcHRpbWlzdGljIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsIkNoYXRzIiwiZ2V0Q2hhdHNCeVVzZXJJZCIsInNlbnQiLCJOdW1iZXIiLCJTZXQiLCJtYXAiLCJpdGVtIiwic2Vzc2lvbkV4dGVybmFsSWQiLCJmaWx0ZXIiLCJjaGF0IiwiaW5jbHVkZXMiLCJoYXMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJpZCIsImNvbnNvbGUiLCJlcnJvciIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwibG9hZE1vcmVDaGF0cyIsIl9sb2FkTW9yZUNoYXRzIiwiX2NhbGxlZTIiLCJfcmVmMiIsIl9nZXQyIiwiX3lpZWxkJG1haWEkQ2hhdHMkZ2V0MiIsIm5ld05leHRPZmZzZXQiLCJfdDIiLCJfY29udGV4dDIiLCJhYnJ1cHQiLCJzdGF0ZSIsIl94MiIsInByZXBlbmRDaGF0IiwiZmlsdGVyZWQiLCJleGlzdGluZyIsImFscmVhZHlPcHRpbWlzdGljIiwiZGVsZXRlQ2hhdCIsIl9kZWxldGVDaGF0IiwiX2NhbGxlZTMiLCJfcmVmMyIsImNoYXRJZCIsInVzZXJJZCIsIl90MyIsIl9jb250ZXh0MyIsIl94MyIsInVwZGF0ZUNoYXQiLCJfdXBkYXRlQ2hhdCIsIl9jYWxsZWU0IiwiX3JlZjQiLCJfY3VycmVudCR0aXRsZSIsImN1cnJlbnQiLCJsYXN0UXVlc3Rpb24iLCJfdDQiLCJfY29udGV4dDQiLCJmaW5kIiwiYyIsInRpdGxlIiwicGF0Y2hDaGF0IiwiX3g0IiwibWFya0NoYXRBc1JlYWQiLCJfbWFya0NoYXRBc1JlYWQiLCJfY2FsbGVlNSIsIm9wdGlvbnMiLCJfdDUiLCJfY29udGV4dDUiLCJmb3JjZSIsImlzUmVhZCIsIk1hdGgiLCJtYXgiLCJtYXJrU2Vzc2lvbkFzUmVhZCIsIl94NSIsIl94NiIsIm1hcmtDaGF0QXNVbnJlYWQiLCJzZXRDaGF0UmVhZFN0YXRlIiwic2V0QWN0aXZlQ2hhdElkIiwic2V0Q2hhdFZpZXdWaXNpYmxlIiwidmlzaWJsZSIsInNldFVucmVhZENvdW50IiwiY291bnQiLCJyZXNldCIsImFjcXVpcmUiLCJyZWxlYXNlIiwibmV3Q291bnQiLCJnZXRDaGF0c1N0b3JlU3RhdGUiLCJnZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZS91c2VDaGF0c1N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgY3JlYXRlIH0gZnJvbSAnenVzdGFuZCdcbmltcG9ydCBtYWlhIGZyb20gJy4uL3NlcnZpY2VzL21haWEnXG5pbXBvcnQgdHlwZSB7IENoYXRMaXN0SXRlbSwgRmV0Y2hDaGF0c1BhcmFtcywgTG9hZE1vcmVDaGF0c1BhcmFtcywgRGVsZXRlQ2hhdFBhcmFtcyB9IGZyb20gJy4vY2hhdHNTdG9yZS50eXBlcydcblxuY29uc3QgREVGQVVMVF9MSU1JVCA9IDIwXG5cbnR5cGUgQ2hhdHNTdGF0ZSA9IHtcbiAgY2hhdHM6IENoYXRMaXN0SXRlbVtdXG4gIC8qKiBTZXNpb25lcyBhZ3JlZ2FkYXMgb3B0aW1pc3RhbWVudGUgaGFzdGEgcXVlIGVsIGJhY2tlbmQgbGFzIGRldnVlbHZhIGVuIEdFVCBzZXNzaW9ucy4gKi9cbiAgb3B0aW1pc3RpY1Nlc3Npb25JZHM6IHN0cmluZ1tdXG4gIGxvYWRpbmdDaGF0czogYm9vbGVhblxuICBpc0xvYWRpbmdNb3JlQ2hhdHM6IGJvb2xlYW5cbiAgbmV4dE9mZnNldDogbnVtYmVyIHwgbnVsbFxuICBsaW1pdDogbnVtYmVyXG4gIG9mZnNldDogbnVtYmVyXG4gIG1vdW50Q291bnQ6IG51bWJlclxuICB1bnJlYWRDb3VudDogbnVtYmVyXG4gIGFjdGl2ZUNoYXRJZDogc3RyaW5nIHwgbnVsbFxuICBpc0NoYXRWaWV3VmlzaWJsZTogYm9vbGVhblxufVxuXG50eXBlIENoYXRzQWN0aW9ucyA9IHtcbiAgZmV0Y2hDaGF0czogKHBhcmFtczogRmV0Y2hDaGF0c1BhcmFtcykgPT4gUHJvbWlzZTx2b2lkPlxuICBsb2FkTW9yZUNoYXRzOiAocGFyYW1zOiBMb2FkTW9yZUNoYXRzUGFyYW1zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHByZXBlbmRDaGF0OiAoY2hhdDogQ2hhdExpc3RJdGVtKSA9PiB2b2lkXG4gIGRlbGV0ZUNoYXQ6IChwYXJhbXM6IERlbGV0ZUNoYXRQYXJhbXMpID0+IFByb21pc2U8Ym9vbGVhbj5cbiAgdXBkYXRlQ2hhdDogKGNoYXQ6IFBhcnRpYWw8Q2hhdExpc3RJdGVtPiAmIHsgc2Vzc2lvbkV4dGVybmFsSWQ6IHN0cmluZzsgaWQ6IHN0cmluZyB9KSA9PiBQcm9taXNlPGJvb2xlYW4+XG4gIG1hcmtDaGF0QXNSZWFkOiAoY2hhdElkPzogc3RyaW5nIHwgbnVsbCwgb3B0aW9ucz86IHsgZm9yY2U/OiBib29sZWFuIH0pID0+IFByb21pc2U8dm9pZD5cbiAgbWFya0NoYXRBc1VucmVhZDogKGNoYXRJZD86IHN0cmluZyB8IG51bGwpID0+IHZvaWRcbiAgc2V0Q2hhdFJlYWRTdGF0ZTogKGNoYXRJZDogc3RyaW5nLCBpc1JlYWQ6IGJvb2xlYW4pID0+IHZvaWRcbiAgc2V0QWN0aXZlQ2hhdElkOiAoY2hhdElkOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkXG4gIHNldENoYXRWaWV3VmlzaWJsZTogKHZpc2libGU6IGJvb2xlYW4pID0+IHZvaWRcbiAgc2V0VW5yZWFkQ291bnQ6IChjb3VudDogbnVtYmVyKSA9PiB2b2lkXG4gIHJlc2V0OiAoKSA9PiB2b2lkXG4gIGFjcXVpcmU6ICgpID0+IHZvaWRcbiAgcmVsZWFzZTogKCkgPT4gdm9pZFxufVxuXG5jb25zdCBpbml0aWFsU3RhdGU6IENoYXRzU3RhdGUgPSB7XG4gIGNoYXRzOiBbXSxcbiAgb3B0aW1pc3RpY1Nlc3Npb25JZHM6IFtdLFxuICBsb2FkaW5nQ2hhdHM6IHRydWUsXG4gIGlzTG9hZGluZ01vcmVDaGF0czogZmFsc2UsXG4gIG5leHRPZmZzZXQ6IG51bGwsXG4gIGxpbWl0OiBERUZBVUxUX0xJTUlULFxuICBvZmZzZXQ6IDAsXG4gIG1vdW50Q291bnQ6IDAsXG4gIHVucmVhZENvdW50OiAwLFxuICBhY3RpdmVDaGF0SWQ6IG51bGwsXG4gIGlzQ2hhdFZpZXdWaXNpYmxlOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgdXNlQ2hhdHNTdG9yZSA9IGNyZWF0ZTxDaGF0c1N0YXRlICYgQ2hhdHNBY3Rpb25zPigoc2V0LCBnZXQpID0+ICh7XG4gIC4uLmluaXRpYWxTdGF0ZSxcblxuICBmZXRjaENoYXRzOiBhc3luYyAoeyBhZ2VudCwgc2VjdGlvbiwgbGltaXQgPSBERUZBVUxUX0xJTUlULCBvZmZzZXQgPSAwLCBvbkVycm9yLCBsYW5nLCBiYWNrZ3JvdW5kID0gZmFsc2UgfSkgPT4ge1xuICAgIGNvbnN0IGhhc0V4aXN0aW5nQ2hhdHMgPSBnZXQoKS5jaGF0cy5sZW5ndGggPiAwXG4gICAgaWYgKCFiYWNrZ3JvdW5kIHx8ICFoYXNFeGlzdGluZ0NoYXRzKSB7XG4gICAgICBzZXQoeyBsb2FkaW5nQ2hhdHM6IHRydWUgfSlcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgaXRlbXMsIG5leHRJdGVtLCBoYXNNb3JlLCB1bnJlYWRDb3VudCB9ID0gYXdhaXQgbWFpYS5DaGF0cy5nZXRDaGF0c0J5VXNlcklkKHtcbiAgICAgICAgYWdlbnQsXG4gICAgICAgIHNlY3Rpb24sXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQsXG4gICAgICAgIGxhbmcsXG4gICAgICB9KVxuICAgICAgY29uc3QgbmV4dE9mZnNldCA9IGhhc01vcmUgJiYgbmV4dEl0ZW0gPyBOdW1iZXIobmV4dEl0ZW0pIDogbnVsbFxuICAgICAgY29uc3QgYXBpSXRlbXMgPSBpdGVtcyBhcyBDaGF0TGlzdEl0ZW1bXVxuICAgICAgY29uc3QgYXBpSWRzID0gbmV3IFNldChhcGlJdGVtcy5tYXAoaXRlbSA9PiBpdGVtLnNlc3Npb25FeHRlcm5hbElkKSlcbiAgICAgIGNvbnN0IHsgY2hhdHM6IGN1cnJlbnRDaGF0cywgb3B0aW1pc3RpY1Nlc3Npb25JZHMgfSA9IGdldCgpXG4gICAgICBjb25zdCBzdGlsbE9wdGltaXN0aWMgPSBjdXJyZW50Q2hhdHMuZmlsdGVyKFxuICAgICAgICBjaGF0ID0+IG9wdGltaXN0aWNTZXNzaW9uSWRzLmluY2x1ZGVzKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpICYmICFhcGlJZHMuaGFzKGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQpXG4gICAgICApXG4gICAgICBzZXQoe1xuICAgICAgICBjaGF0czogWy4uLnN0aWxsT3B0aW1pc3RpYywgLi4uYXBpSXRlbXNdLFxuICAgICAgICBvcHRpbWlzdGljU2Vzc2lvbklkczogb3B0aW1pc3RpY1Nlc3Npb25JZHMuZmlsdGVyKGlkID0+ICFhcGlJZHMuaGFzKGlkKSksXG4gICAgICAgIGxvYWRpbmdDaGF0czogZmFsc2UsXG4gICAgICAgIG5leHRPZmZzZXQsXG4gICAgICAgIGxpbWl0LFxuICAgICAgICBvZmZzZXQ6IG5leHRPZmZzZXQgPz8gMCxcbiAgICAgICAgdW5yZWFkQ291bnQsXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBjaGF0czonLCBlcnJvcilcbiAgICAgIHNldCh7IGxvYWRpbmdDaGF0czogZmFsc2UgfSlcbiAgICAgIG9uRXJyb3I/LigpXG4gICAgfVxuICB9LFxuXG4gIGxvYWRNb3JlQ2hhdHM6IGFzeW5jICh7IGFnZW50LCBzZWN0aW9uLCBvbkVycm9yLCBsYW5nIH0pID0+IHtcbiAgICBjb25zdCB7IG5leHRPZmZzZXQsIGxpbWl0LCBpc0xvYWRpbmdNb3JlQ2hhdHMgfSA9IGdldCgpXG4gICAgaWYgKG5leHRPZmZzZXQgPT09IG51bGwgfHwgaXNMb2FkaW5nTW9yZUNoYXRzKSByZXR1cm5cbiAgICBzZXQoeyBpc0xvYWRpbmdNb3JlQ2hhdHM6IHRydWUgfSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBpdGVtcywgbmV4dEl0ZW0sIGhhc01vcmUsIHVucmVhZENvdW50IH0gPSBhd2FpdCBtYWlhLkNoYXRzLmdldENoYXRzQnlVc2VySWQoe1xuICAgICAgICBhZ2VudCxcbiAgICAgICAgc2VjdGlvbixcbiAgICAgICAgbGltaXQsXG4gICAgICAgIG9mZnNldDogbmV4dE9mZnNldCxcbiAgICAgICAgbGFuZyxcbiAgICAgIH0pXG4gICAgICBjb25zdCBuZXdOZXh0T2Zmc2V0ID0gaGFzTW9yZSAmJiBuZXh0SXRlbSA/IE51bWJlcihuZXh0SXRlbSkgOiBudWxsXG4gICAgICBzZXQoc3RhdGUgPT4gKHtcbiAgICAgICAgY2hhdHM6IFsuLi5zdGF0ZS5jaGF0cywgLi4uKGl0ZW1zIGFzIENoYXRMaXN0SXRlbVtdKV0sXG4gICAgICAgIGlzTG9hZGluZ01vcmVDaGF0czogZmFsc2UsXG4gICAgICAgIG5leHRPZmZzZXQ6IG5ld05leHRPZmZzZXQsXG4gICAgICAgIG9mZnNldDogbmV3TmV4dE9mZnNldCA/PyAwLFxuICAgICAgICB1bnJlYWRDb3VudCxcbiAgICAgIH0pKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIG1vcmUgY2hhdHM6JywgZXJyb3IpXG4gICAgICBzZXQoeyBpc0xvYWRpbmdNb3JlQ2hhdHM6IGZhbHNlIH0pXG4gICAgICBvbkVycm9yPy4oKVxuICAgIH1cbiAgfSxcblxuICBwcmVwZW5kQ2hhdDogY2hhdCA9PlxuICAgIHNldChzdGF0ZSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZCA9IHN0YXRlLmNoYXRzLmZpbHRlcihleGlzdGluZyA9PiBleGlzdGluZy5zZXNzaW9uRXh0ZXJuYWxJZCAhPT0gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIGNvbnN0IGFscmVhZHlPcHRpbWlzdGljID0gc3RhdGUub3B0aW1pc3RpY1Nlc3Npb25JZHMuaW5jbHVkZXMoY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNoYXRzOiBbY2hhdCwgLi4uZmlsdGVyZWRdLFxuICAgICAgICBvcHRpbWlzdGljU2Vzc2lvbklkczogYWxyZWFkeU9wdGltaXN0aWNcbiAgICAgICAgICA/IHN0YXRlLm9wdGltaXN0aWNTZXNzaW9uSWRzXG4gICAgICAgICAgOiBbLi4uc3RhdGUub3B0aW1pc3RpY1Nlc3Npb25JZHMsIGNoYXQuc2Vzc2lvbkV4dGVybmFsSWRdLFxuICAgICAgfVxuICAgIH0pLFxuXG4gIGRlbGV0ZUNoYXQ6IGFzeW5jICh7IGNoYXRJZCwgdXNlcklkIH0pID0+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbWFpYS5DaGF0cy5kZWxldGVDaGF0KHsgY2hhdElkLCB1c2VySWQgfSlcbiAgICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgICBjaGF0czogc3RhdGUuY2hhdHMuZmlsdGVyKGNoYXQgPT4gY2hhdC5zZXNzaW9uRXh0ZXJuYWxJZCAhPT0gY2hhdElkKSxcbiAgICAgICAgb3B0aW1pc3RpY1Nlc3Npb25JZHM6IHN0YXRlLm9wdGltaXN0aWNTZXNzaW9uSWRzLmZpbHRlcihpZCA9PiBpZCAhPT0gY2hhdElkKSxcbiAgICAgIH0pKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZGVsZXRpbmcgY2hhdDonLCBlcnJvcilcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSxcblxuICB1cGRhdGVDaGF0OiBhc3luYyBjaGF0ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY3VycmVudCA9IGdldCgpLmNoYXRzLmZpbmQoYyA9PiBjLmlkID09PSBjaGF0LmlkKVxuICAgICAgY29uc3QgbGFzdFF1ZXN0aW9uID0gY3VycmVudD8udGl0bGUgPz8gY2hhdC50aXRsZSA/PyAnJ1xuICAgICAgYXdhaXQgbWFpYS5DaGF0cy5wYXRjaENoYXQoe1xuICAgICAgICBjaGF0SWQ6IGNoYXQuc2Vzc2lvbkV4dGVybmFsSWQsXG4gICAgICAgIGxhc3RRdWVzdGlvbixcbiAgICAgICAgLi4uKGNoYXQudGl0bGUgIT0gbnVsbCAmJiB7IHRpdGxlOiBjaGF0LnRpdGxlIH0pLFxuICAgICAgfSlcbiAgICAgIHNldChzdGF0ZSA9PiAoe1xuICAgICAgICBjaGF0czogc3RhdGUuY2hhdHMubWFwKGMgPT4gKGMuaWQgPT09IGNoYXQuaWQgPyB7IC4uLmMsIC4uLmNoYXQgfSA6IGMpKSxcbiAgICAgIH0pKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgdXBkYXRpbmcgY2hhdDonLCBlcnJvcilcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfSxcblxuICBtYXJrQ2hhdEFzUmVhZDogYXN5bmMgKGNoYXRJZCwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGlkID0gY2hhdElkIHx8IGdldCgpLmFjdGl2ZUNoYXRJZFxuICAgIGlmICghaWQpIHJldHVyblxuXG4gICAgY29uc3QgY2hhdCA9IGdldCgpLmNoYXRzLmZpbmQoYyA9PiBjLnNlc3Npb25FeHRlcm5hbElkID09PSBpZClcbiAgICBpZiAoIW9wdGlvbnM/LmZvcmNlICYmIGNoYXQ/LmlzUmVhZCkgcmV0dXJuXG5cbiAgICBpZiAoY2hhdD8uaXNSZWFkID09PSBmYWxzZSkge1xuICAgICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICAgIGNoYXRzOiBzdGF0ZS5jaGF0cy5tYXAoYyA9PiAoYy5zZXNzaW9uRXh0ZXJuYWxJZCA9PT0gaWQgPyB7IC4uLmMsIGlzUmVhZDogdHJ1ZSB9IDogYykpLFxuICAgICAgICB1bnJlYWRDb3VudDogTWF0aC5tYXgoMCwgc3RhdGUudW5yZWFkQ291bnQgLSAxKSxcbiAgICAgIH0pKVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBtYWlhLkNoYXRzLm1hcmtTZXNzaW9uQXNSZWFkKHsgY2hhdElkOiBpZCB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBtYXJraW5nIGNoYXQgYXMgcmVhZDonLCBlcnJvcilcbiAgICB9XG4gIH0sXG5cbiAgbWFya0NoYXRBc1VucmVhZDogY2hhdElkID0+IHtcbiAgICBpZiAoIWNoYXRJZCkgcmV0dXJuXG4gICAgY29uc3QgY2hhdCA9IGdldCgpLmNoYXRzLmZpbmQoYyA9PiBjLnNlc3Npb25FeHRlcm5hbElkID09PSBjaGF0SWQpXG4gICAgaWYgKGNoYXQ/LmlzUmVhZCA9PT0gZmFsc2UpIHJldHVyblxuXG4gICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICBjaGF0czogc3RhdGUuY2hhdHMubWFwKGMgPT4gKGMuc2Vzc2lvbkV4dGVybmFsSWQgPT09IGNoYXRJZCA/IHsgLi4uYywgaXNSZWFkOiBmYWxzZSB9IDogYykpLFxuICAgICAgdW5yZWFkQ291bnQ6IHN0YXRlLnVucmVhZENvdW50ICsgMSxcbiAgICB9KSlcbiAgfSxcblxuICBzZXRDaGF0UmVhZFN0YXRlOiAoY2hhdElkLCBpc1JlYWQpID0+XG4gICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICBjaGF0czogc3RhdGUuY2hhdHMubWFwKGMgPT4gKGMuc2Vzc2lvbkV4dGVybmFsSWQgPT09IGNoYXRJZCA/IHsgLi4uYywgaXNSZWFkIH0gOiBjKSksXG4gICAgfSkpLFxuXG4gIHNldEFjdGl2ZUNoYXRJZDogY2hhdElkID0+IHNldCh7IGFjdGl2ZUNoYXRJZDogY2hhdElkIH0pLFxuXG4gIHNldENoYXRWaWV3VmlzaWJsZTogdmlzaWJsZSA9PiBzZXQoeyBpc0NoYXRWaWV3VmlzaWJsZTogdmlzaWJsZSB9KSxcblxuICBzZXRVbnJlYWRDb3VudDogY291bnQgPT4gc2V0KHsgdW5yZWFkQ291bnQ6IE1hdGgubWF4KDAsIGNvdW50KSB9KSxcblxuICByZXNldDogKCkgPT4gc2V0KHN0YXRlID0+ICh7IC4uLmluaXRpYWxTdGF0ZSwgbW91bnRDb3VudDogc3RhdGUubW91bnRDb3VudCB9KSksXG5cbiAgYWNxdWlyZTogKCkgPT4gc2V0KHN0YXRlID0+ICh7IG1vdW50Q291bnQ6IHN0YXRlLm1vdW50Q291bnQgKyAxIH0pKSxcblxuICByZWxlYXNlOiAoKSA9PiB7XG4gICAgc2V0KHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IG5ld0NvdW50ID0gTWF0aC5tYXgoMCwgc3RhdGUubW91bnRDb3VudCAtIDEpXG4gICAgICBpZiAobmV3Q291bnQgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uaW5pdGlhbFN0YXRlLCBtb3VudENvdW50OiAwIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IG1vdW50Q291bnQ6IG5ld0NvdW50IH1cbiAgICB9KVxuICB9LFxufSkpXG5cbmV4cG9ydCBjb25zdCBnZXRDaGF0c1N0b3JlU3RhdGUgPSAoKSA9PiB1c2VDaGF0c1N0b3JlLmdldFN0YXRlKClcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBLFNBQVNBLE1BQU0sUUFBUSxTQUFTO0FBQ2hDLE9BQU9DLElBQUksTUFBTSxrQkFBa0I7QUFHbkMsSUFBTUMsYUFBYSxHQUFHLEVBQUU7QUFrQ3hCLElBQU1DLFlBQXdCLEdBQUc7RUFDL0JDLEtBQUssRUFBRSxFQUFFO0VBQ1RDLG9CQUFvQixFQUFFLEVBQUU7RUFDeEJDLFlBQVksRUFBRSxJQUFJO0VBQ2xCQyxrQkFBa0IsRUFBRSxLQUFLO0VBQ3pCQyxVQUFVLEVBQUUsSUFBSTtFQUNoQkMsS0FBSyxFQUFFUCxhQUFhO0VBQ3BCUSxNQUFNLEVBQUUsQ0FBQztFQUNUQyxVQUFVLEVBQUUsQ0FBQztFQUNiQyxXQUFXLEVBQUUsQ0FBQztFQUNkQyxZQUFZLEVBQUUsSUFBSTtFQUNsQkMsaUJBQWlCLEVBQUU7QUFDckIsQ0FBQztBQUVELE9BQU8sSUFBTUMsYUFBYSxHQUFHZixNQUFNLENBQTRCLFVBQUNnQixHQUFHLEVBQUVDLEdBQUc7RUFBQSxPQUFBQyxhQUFBLENBQUFBLGFBQUEsS0FDbkVmLFlBQVk7SUFFZmdCLFVBQVU7TUFBQSxJQUFBQyxXQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRSxTQUFBQyxRQUFBQyxJQUFBO1FBQUEsSUFBQUMsS0FBQSxFQUFBQyxPQUFBLEVBQUFDLFVBQUEsRUFBQW5CLEtBQUEsRUFBQW9CLFdBQUEsRUFBQW5CLE1BQUEsRUFBQW9CLE9BQUEsRUFBQUMsSUFBQSxFQUFBQyxlQUFBLEVBQUFDLFVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMscUJBQUEsRUFBQUMsS0FBQSxFQUFBQyxRQUFBLEVBQUFDLE9BQUEsRUFBQTFCLFdBQUEsRUFBQUosVUFBQSxFQUFBK0IsUUFBQSxFQUFBQyxNQUFBLEVB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RSxHQUFHLENBQUM7UUFBRUgsWUFBWSxFQUFFOEU7TUFBTyxDQUFDLENBQUM7SUFBQTtJQUV4RG1DLGtCQUFrQixFQUFFLFNBQXBCQSxrQkFBa0JBLENBQUVDLE9BQU87TUFBQSxPQUFJL0csR0FBRyxDQUFDO1FBQUVGLGlCQUFpQixFQUFFaUg7TUFBUSxDQUFDLENBQUM7SUFBQTtJQUVsRUMsY0FBYyxFQUFFLFNBQWhCQSxjQUFjQSxDQUFFQyxLQUFLO01BQUEsT0FBSWpILEdBQUcsQ0FBQztRQUFFSixXQUFXLEVBQUUwRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVVLEtBQUs7TUFBRSxDQUFDLENBQUM7SUFBQTtJQUVqRUMsS0FBSyxFQUFFLFNBQVBBLEtBQUtBLENBQUE7TUFBQSxPQUFRbEgsR0FBRyxDQUFDLFVBQUFpRSxLQUFLO1FBQUEsT0FBQS9ELGFBQUEsQ0FBQUEsYUFBQSxLQUFVZixZQUFZO1VBQUVRLFVBQVUsRUFBRXNFLEtBQUssQ0FBQ3RFO1FBQVU7TUFBQSxDQUFHLENBQUM7SUFBQTtJQUU5RXdILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUW5ILEdBQUcsQ0FBQyxVQUFBaUUsS0FBSztRQUFBLE9BQUs7VUFBRXRFLFVBQVUsRUFBRXNFLEtBQUssQ0FBQ3RFLFVBQVUsR0FBRztRQUFFLENBQUM7TUFBQSxDQUFDLENBQUM7SUFBQTtJQUVuRXlILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQVE7TUFDYnBILEdBQUcsQ0FBQyxVQUFBaUUsS0FBSyxFQUFJO1FBQ1gsSUFBTW9ELFFBQVEsR0FBR2YsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUFFdEMsS0FBSyxDQUFDdEUsVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNsRCxJQUFJMEgsUUFBUSxLQUFLLENBQUMsRUFBRTtVQUNsQixPQUFBbkgsYUFBQSxDQUFBQSxhQUFBLEtBQVlmLFlBQVk7WUFBRVEsVUFBVSxFQUFFO1VBQUM7UUFDekM7UUFDQSxPQUFPO1VBQUVBLFVBQVUsRUFBRTBIO1FBQVMsQ0FBQztNQUNqQyxDQUFDLENBQUM7SUFDSjtFQUFDO0FBQUEsQ0FDRCxDQUFDO0FBRUgsT0FBTyxJQUFNQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBO0VBQUEsT0FBU3ZILGFBQWEsQ0FBQ3dILFFBQVEsQ0FBQyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
import { create } from 'zustand';
|
|
7
|
+
import i18n from '../lang';
|
|
8
|
+
import { getUsage } from '../services/maia/Usage';
|
|
9
|
+
import { USAGE_QUOTA_EXCEEDED_CODE } from '../types/usage';
|
|
10
|
+
var initialState = {
|
|
11
|
+
usage: null,
|
|
12
|
+
blocked: false,
|
|
13
|
+
quotaExceededMessage: null,
|
|
14
|
+
loading: false,
|
|
15
|
+
fetched: false
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/** Evita que un GET usage en vuelo pise un 402 más reciente. */
|
|
19
|
+
var fetchSeq = 0;
|
|
20
|
+
export var useUsageStore = create(function (set, get) {
|
|
21
|
+
return _objectSpread(_objectSpread({}, initialState), {}, {
|
|
22
|
+
fetchUsage: function () {
|
|
23
|
+
var _fetchUsage = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
24
|
+
var seq, usage, _t;
|
|
25
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
26
|
+
while (1) switch (_context.prev = _context.next) {
|
|
27
|
+
case 0:
|
|
28
|
+
fetchSeq += 1;
|
|
29
|
+
seq = fetchSeq;
|
|
30
|
+
set({
|
|
31
|
+
loading: true
|
|
32
|
+
});
|
|
33
|
+
_context.prev = 1;
|
|
34
|
+
_context.next = 2;
|
|
35
|
+
return getUsage(i18n.language);
|
|
36
|
+
case 2:
|
|
37
|
+
usage = _context.sent;
|
|
38
|
+
if (!(seq !== fetchSeq)) {
|
|
39
|
+
_context.next = 3;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
return _context.abrupt("return");
|
|
43
|
+
case 3:
|
|
44
|
+
set(_objectSpread({
|
|
45
|
+
usage: usage,
|
|
46
|
+
// Solo bloquear cuando el backend lo dice explícitamente (fail-open si falta).
|
|
47
|
+
blocked: usage.blocked === true,
|
|
48
|
+
loading: false,
|
|
49
|
+
fetched: true
|
|
50
|
+
}, usage.blocked !== true ? {
|
|
51
|
+
quotaExceededMessage: null
|
|
52
|
+
} : {}));
|
|
53
|
+
_context.next = 6;
|
|
54
|
+
break;
|
|
55
|
+
case 4:
|
|
56
|
+
_context.prev = 4;
|
|
57
|
+
_t = _context["catch"](1);
|
|
58
|
+
if (!(seq !== fetchSeq)) {
|
|
59
|
+
_context.next = 5;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
return _context.abrupt("return");
|
|
63
|
+
case 5:
|
|
64
|
+
// Fail-open: si usage no responde, no desbloquear un 402 ya aplicado.
|
|
65
|
+
console.error('Failed to fetch MAIA usage', _t);
|
|
66
|
+
set(function (state) {
|
|
67
|
+
return {
|
|
68
|
+
loading: false,
|
|
69
|
+
fetched: true,
|
|
70
|
+
blocked: state.blocked
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
case 6:
|
|
74
|
+
case "end":
|
|
75
|
+
return _context.stop();
|
|
76
|
+
}
|
|
77
|
+
}, _callee, null, [[1, 4]]);
|
|
78
|
+
}));
|
|
79
|
+
function fetchUsage() {
|
|
80
|
+
return _fetchUsage.apply(this, arguments);
|
|
81
|
+
}
|
|
82
|
+
return fetchUsage;
|
|
83
|
+
}(),
|
|
84
|
+
applyQuotaExceeded: function applyQuotaExceeded(message) {
|
|
85
|
+
// Invalida fetches en vuelo para que no limpien el bloqueo del 402.
|
|
86
|
+
fetchSeq += 1;
|
|
87
|
+
set({
|
|
88
|
+
blocked: true,
|
|
89
|
+
quotaExceededMessage: message || null
|
|
90
|
+
});
|
|
91
|
+
// Alinear el resto de la UI con el backend (race del pool compartido).
|
|
92
|
+
get().fetchUsage()["catch"](function () {
|
|
93
|
+
return undefined;
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
reset: function reset() {
|
|
97
|
+
fetchSeq += 1;
|
|
98
|
+
set(_objectSpread({}, initialState));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
export var getUsageStoreState = function getUsageStoreState() {
|
|
103
|
+
return useUsageStore.getState();
|
|
104
|
+
};
|
|
105
|
+
export var isUsageQuotaExceededError = function isUsageQuotaExceededError(code) {
|
|
106
|
+
return code === USAGE_QUOTA_EXCEEDED_CODE;
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGUiLCJpMThuIiwiZ2V0VXNhZ2UiLCJVU0FHRV9RVU9UQV9FWENFRURFRF9DT0RFIiwiaW5pdGlhbFN0YXRlIiwidXNhZ2UiLCJibG9ja2VkIiwicXVvdGFFeGNlZWRlZE1lc3NhZ2UiLCJsb2FkaW5nIiwiZmV0Y2hlZCIsImZldGNoU2VxIiwidXNlVXNhZ2VTdG9yZSIsInNldCIsImdldCIsIl9vYmplY3RTcHJlYWQiLCJmZXRjaFVzYWdlIiwiX2ZldGNoVXNhZ2UiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInNlcSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJsYW5ndWFnZSIsInNlbnQiLCJhYnJ1cHQiLCJjb25zb2xlIiwiZXJyb3IiLCJzdGF0ZSIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsImFwcGx5UXVvdGFFeGNlZWRlZCIsIm1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJyZXNldCIsImdldFVzYWdlU3RvcmVTdGF0ZSIsImdldFN0YXRlIiwiaXNVc2FnZVF1b3RhRXhjZWVkZWRFcnJvciIsImNvZGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUvdXNlVXNhZ2VTdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGUgfSBmcm9tICd6dXN0YW5kJ1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vbGFuZydcbmltcG9ydCB7IGdldFVzYWdlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9Vc2FnZSdcbmltcG9ydCB0eXBlIHsgTWFpYVVzYWdlIH0gZnJvbSAnLi4vdHlwZXMvdXNhZ2UnXG5pbXBvcnQgeyBVU0FHRV9RVU9UQV9FWENFRURFRF9DT0RFIH0gZnJvbSAnLi4vdHlwZXMvdXNhZ2UnXG5cbnR5cGUgVXNhZ2VTdGF0ZSA9IHtcbiAgdXNhZ2U6IE1haWFVc2FnZSB8IG51bGxcbiAgLyoqIEZ1ZW50ZSBkZSB2ZXJkYWQgVUk6IHRydWUgc2kgR0VUIHVzYWdlLmJsb2NrZWQgbyB0cmFzIDQwMiB1c2FnZV9xdW90YV9leGNlZWRlZC4gKi9cbiAgYmxvY2tlZDogYm9vbGVhblxuICAvKiogTWVuc2FqZSBkZWwgNDAyIChsb2NhbGl6YWRvIHBvciBBY2NlcHQtTGFuZ3VhZ2UpIHBhcmEgbW9zdHJhciBhcy1pcy4gKi9cbiAgcXVvdGFFeGNlZWRlZE1lc3NhZ2U6IHN0cmluZyB8IG51bGxcbiAgbG9hZGluZzogYm9vbGVhblxuICBmZXRjaGVkOiBib29sZWFuXG59XG5cbnR5cGUgVXNhZ2VBY3Rpb25zID0ge1xuICBmZXRjaFVzYWdlOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIC8qKiBNYXJjYSBibG9xdWVvIGlubWVkaWF0byBwb3IgNDAyOyByZWZyZXNjYSB1c2FnZSBlbiBwYXJhbGVsby4gKi9cbiAgYXBwbHlRdW90YUV4Y2VlZGVkOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkXG4gIHJlc2V0OiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IGluaXRpYWxTdGF0ZTogVXNhZ2VTdGF0ZSA9IHtcbiAgdXNhZ2U6IG51bGwsXG4gIGJsb2NrZWQ6IGZhbHNlLFxuICBxdW90YUV4Y2VlZGVkTWVzc2FnZTogbnVsbCxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGZldGNoZWQ6IGZhbHNlLFxufVxuXG4vKiogRXZpdGEgcXVlIHVuIEdFVCB1c2FnZSBlbiB2dWVsbyBwaXNlIHVuIDQwMiBtw6FzIHJlY2llbnRlLiAqL1xubGV0IGZldGNoU2VxID0gMFxuXG5leHBvcnQgY29uc3QgdXNlVXNhZ2VTdG9yZSA9IGNyZWF0ZTxVc2FnZVN0YXRlICYgVXNhZ2VBY3Rpb25zPigoc2V0LCBnZXQpID0+ICh7XG4gIC4uLmluaXRpYWxTdGF0ZSxcblxuICBmZXRjaFVzYWdlOiBhc3luYyAoKSA9PiB7XG4gICAgZmV0Y2hTZXEgKz0gMVxuICAgIGNvbnN0IHNlcSA9IGZldGNoU2VxXG4gICAgc2V0KHsgbG9hZGluZzogdHJ1ZSB9KVxuICAgIHRyeSB7XG4gICAgICBjb25zdCB1c2FnZSA9IGF3YWl0IGdldFVzYWdlKGkxOG4ubGFuZ3VhZ2UpXG4gICAgICBpZiAoc2VxICE9PSBmZXRjaFNlcSkgcmV0dXJuXG5cbiAgICAgIHNldCh7XG4gICAgICAgIHVzYWdlLFxuICAgICAgICAvLyBTb2xvIGJsb3F1ZWFyIGN1YW5kbyBlbCBiYWNrZW5kIGxvIGRpY2UgZXhwbMOtY2l0YW1lbnRlIChmYWlsLW9wZW4gc2kgZmFsdGEpLlxuICAgICAgICBibG9ja2VkOiB1c2FnZS5ibG9ja2VkID09PSB0cnVlLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgZmV0Y2hlZDogdHJ1ZSxcbiAgICAgICAgLy8gU2kgeWEgbm8gZXN0w6EgYmxvY2tlZCwgbGltcGlhciBtZW5zYWplIGRlIDQwMi5cbiAgICAgICAgLi4uKHVzYWdlLmJsb2NrZWQgIT09IHRydWUgPyB7IHF1b3RhRXhjZWVkZWRNZXNzYWdlOiBudWxsIH0gOiB7fSksXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoc2VxICE9PSBmZXRjaFNlcSkgcmV0dXJuXG4gICAgICAvLyBGYWlsLW9wZW46IHNpIHVzYWdlIG5vIHJlc3BvbmRlLCBubyBkZXNibG9xdWVhciB1biA0MDIgeWEgYXBsaWNhZG8uXG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggTUFJQSB1c2FnZScsIGVycm9yKVxuICAgICAgc2V0KHN0YXRlID0+ICh7XG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBmZXRjaGVkOiB0cnVlLFxuICAgICAgICBibG9ja2VkOiBzdGF0ZS5ibG9ja2VkLFxuICAgICAgfSkpXG4gICAgfVxuICB9LFxuXG4gIGFwcGx5UXVvdGFFeGNlZWRlZDogbWVzc2FnZSA9PiB7XG4gICAgLy8gSW52YWxpZGEgZmV0Y2hlcyBlbiB2dWVsbyBwYXJhIHF1ZSBubyBsaW1waWVuIGVsIGJsb3F1ZW8gZGVsIDQwMi5cbiAgICBmZXRjaFNlcSArPSAxXG4gICAgc2V0KHtcbiAgICAgIGJsb2NrZWQ6IHRydWUsXG4gICAgICBxdW90YUV4Y2VlZGVkTWVzc2FnZTogbWVzc2FnZSB8fCBudWxsLFxuICAgIH0pXG4gICAgLy8gQWxpbmVhciBlbCByZXN0byBkZSBsYSBVSSBjb24gZWwgYmFja2VuZCAocmFjZSBkZWwgcG9vbCBjb21wYXJ0aWRvKS5cbiAgICBnZXQoKVxuICAgICAgLmZldGNoVXNhZ2UoKVxuICAgICAgLmNhdGNoKCgpID0+IHVuZGVmaW5lZClcbiAgfSxcblxuICByZXNldDogKCkgPT4ge1xuICAgIGZldGNoU2VxICs9IDFcbiAgICBzZXQoeyAuLi5pbml0aWFsU3RhdGUgfSlcbiAgfSxcbn0pKVxuXG5leHBvcnQgY29uc3QgZ2V0VXNhZ2VTdG9yZVN0YXRlID0gKCkgPT4gdXNlVXNhZ2VTdG9yZS5nZXRTdGF0ZSgpXG5cbmV4cG9ydCBjb25zdCBpc1VzYWdlUXVvdGFFeGNlZWRlZEVycm9yID0gKGNvZGU/OiBzdHJpbmcpOiBib29sZWFuID0+IGNvZGUgPT09IFVTQUdFX1FVT1RBX0VYQ0VFREVEX0NPREVcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxNQUFNLFFBQVEsU0FBUztBQUNoQyxPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUMxQixTQUFTQyxRQUFRLFFBQVEsd0JBQXdCO0FBRWpELFNBQVNDLHlCQUF5QixRQUFRLGdCQUFnQjtBQW1CMUQsSUFBTUMsWUFBd0IsR0FBRztFQUMvQkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsT0FBTyxFQUFFLEtBQUs7RUFDZEMsb0JBQW9CLEVBQUUsSUFBSTtFQUMxQkMsT0FBTyxFQUFFLEtBQUs7RUFDZEMsT0FBTyxFQUFFO0FBQ1gsQ0FBQzs7QUFFRDtBQUNBLElBQUlDLFFBQVEsR0FBRyxDQUFDO0FBRWhCLE9BQU8sSUFBTUMsYUFBYSxHQUFHWCxNQUFNLENBQTRCLFVBQUNZLEdBQUcsRUFBRUMsR0FBRztFQUFBLE9BQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUNuRVYsWUFBWTtJQUVmVyxVQUFV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
|
package/lib/types/Chat.js
CHANGED
|
@@ -7,4 +7,4 @@ export var ChatHistoryRole = /*#__PURE__*/function (ChatHistoryRole) {
|
|
|
7
7
|
}({});
|
|
8
8
|
|
|
9
9
|
// Backend pending_approval format (before transformation)
|
|
10
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGF0SGlzdG9yeVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQ2hhdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nVHJhY2UsIFJlYXNvbmluZ1RyYWNlUGF5bG9hZCB9IGZyb20gJy4vcmVhc29uaW5nJ1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4vUHJvamVjdCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ29udGV4dE1lc3NhZ2UgfSBmcm9tICcuL2NvbnRleHRNZW50aW9uJ1xuXG5leHBvcnQgdHlwZSBDaGF0SXRlbSA9IHtcbiAgY2hhdF9pZDogc3RyaW5nXG4gIGNoYXRfc3RhdHVzOiBzdHJpbmdcbiAgbGFzdF9xdWVzdGlvbjogc3RyaW5nXG4gIGxhc3RfcXVlc3Rpb25fZGF0ZTogc3RyaW5nXG4gIG1lc3NhZ2VfaWQ6IHN0cmluZ1xuICBxX2Fuc3dlcnM6IG51bWJlclxuICBnZW5lcmFsX3JhdGluZzogbnVtYmVyXG4gIHVzZXJfaWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBDaGF0UmVzcG9uc2UgPSB7XG4gIGl0ZW1zOiBDaGF0SXRlbVtdXG4gIGxhc3RfZXZhbHVhdGVkX2tleTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIENoYXQgPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBkYXRlOiBEYXRlXG4gIGFnZW50X3R5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ2hhdE1lc3NhZ2VVc2VyID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBhdmF0YXI/OiBzdHJpbmdcbiAgYXZhdGFySWNvbj86IFJlYWN0Tm9kZVxufVxuXG5leHBvcnQgZW51bSBDaGF0SGlzdG9yeVJvbGUge1xuICBVU0VSID0gJ3VzZXInLFxuICBBU1NJU1RBTlQgPSAnYXNzaXN0YW50Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZW5kaW5nQWN0aW9uIHtcbiAgdG9vbF9uYW1lOiBzdHJpbmdcbiAgdG9vbF9jYWxsX2lkOiBzdHJpbmdcbiAgdG9vbF9hcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgYW55W11cbiAgdGhyZWFkX2lkOiBzdHJpbmcgLy8gRWFjaCBhY3Rpb24gaGFzIGl0cyBvd24gdW5pcXVlIHRocmVhZF9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsUmVxdWVzdCB7XG4gIHR5cGU6ICdhcHByb3ZhbF9yZXF1aXJlZCdcbiAgcGVuZGluZ19hY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgdG90YWxfYWN0aW9uczogbnVtYmVyXG4gIG9yaWdpbmFsX3RocmVhZF9pZDogc3RyaW5nIC8vIE9yaWdpbmFsIGNoZWNrcG9pbnQgdGhyZWFkX2lkXG4gIHNlc3Npb25faWQ6IHN0cmluZ1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ/OiBib29sZWFuXG4gIHdhcm5pbmdfbWVzc2FnZT86IHN0cmluZ1xuICBhdXRvX2FwcHJvdmVkPzogYm9vbGVhblxuICBhcHByb3ZhbF9zdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnXG4gIHJlYXNvbmluZz86IFJlYXNvbmluZ1RyYWNlUGF5bG9hZCB8IG51bGxcbn1cblxuLy8gQmFja2VuZCBwZW5kaW5nX2FwcHJvdmFsIGZvcm1hdCAoYmVmb3JlIHRyYW5zZm9ybWF0aW9uKVxuZXhwb3J0IGludGVyZmFjZSBCYWNrZW5kUGVuZGluZ0FwcHJvdmFsIHtcbiAgdHlwZTogJ2FwcHJvdmFsX3JlcXVpcmVkJ1xuICB0b29sX2NhbGxfaWQ6IHN0cmluZ1xuICB0b29sX25hbWU/OiBzdHJpbmdcbiAgdG9vbF9hcmdzPzogUmVjb3JkPHN0cmluZywgYW55PiB8IGFueVtdXG4gIG9yaWdpbmFsX3RocmVhZF9pZDogc3RyaW5nXG4gIHNlc3Npb25faWQ6IHN0cmluZ1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ/OiBib29sZWFuXG4gIHdhcm5pbmdfbWVzc2FnZT86IHN0cmluZ1xuICBhdXRvX2FwcHJvdmVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZSA9IHtcbiAgaWQ6IHN0cmluZ1xuICBtZXNzYWdlOiBzdHJpbmdcbiAgZGF0ZTogRGF0ZVxuICBpc0Vycm9yPzogYm9vbGVhblxuICBpc19jYW5jZWxsZWQ/OiBib29sZWFuXG4gIGlzRnJvbnRlbmRDYW5jZWxsZWQ/OiBib29sZWFuXG4gIHVzZXI6IENoYXRNZXNzYWdlVXNlclxuICBwcm9qZWN0SWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICBpc0NoYW5nZVByb2plY3Q/OiBib29sZWFuXG4gIHByb2plY3Q/OiBQcm9qZWN0XG4gIGFnZW50SWQ/OiBzdHJpbmdcbiAgb3B0aW9ucz86IHtcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbmFtZT86IHN0cmluZ1xuICB9W11cbiAgcm9sZT86IENoYXRIaXN0b3J5Um9sZVxuICBzb3VyY2VzPzogYW55XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICB3YXNIZWxwZnVsPzogYm9vbGVhbiB8IG51bGxcbiAgbWVtb3J5U2Vzc2lvbklkPzogc3RyaW5nXG4gIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBUcmFzIGFwcm9iYXIgY3JlYXRlX2FnZW50OiBhY2Npb25lcyByw6FwaWRhcyBlbiBlbCBtZW5zYWplIGZpbmFsOyByZXF1aWVyZSBhZ2VudElkIGRldGVjdGFkbyBlbiBlbCB0ZXh0byAqL1xuICBjcmVhdGVBZ2VudEZvbGxvd1VwPzogeyBhZ2VudElkOiBzdHJpbmcgfSB8IG51bGxcbiAgYXBwcm92YWw/OiBBcHByb3ZhbFJlcXVlc3RcbiAgYXBwcm92YWxTdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBwcm9qZWN0TWV0YWRhdGE/OiB7XG4gICAgaXNfZGVsZXRlZD86IGJvb2xlYW4gfCBudWxsXG4gIH1cbiAgLyoqXG4gICAqIEVudGlkYWRlcyBtZW5jaW9uYWRhcyBjb24gYEBgIGVuIEVTRSBtZW5zYWplIHB1bnR1YWwuIE5vIHNlIHByb3BhZ2EgYWxcbiAgICogY29udGV4dG8gZ2xvYmFsIG5pIGEgb3Ryb3MgdHVybm9zOyBzw7NsbyB2aXZlIGFjw6EgcGFyYSBxdWUgZWwgcmVuZGVyZXJcbiAgICogcHVlZGEgcGludGFyIGNoaXBzIHkgcGFyYSBtYW5kYXJsbyBhbCBvcmNoZXN0cmF0b3IgdsOtYSBtZXRhZGF0YS5cbiAgICovXG4gIGNvbnRleHRNZXNzYWdlPzogQ29udGV4dE1lc3NhZ2VcbiAgcmVhc29uaW5nPzogUmVhc29uaW5nVHJhY2UgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlSXRlbSA9IHtcbiAgY2hhdElkOiBzdHJpbmdcbiAgY2hhdFN0YXR1czogc3RyaW5nXG4gIGxhc3RRdWVzdGlvbjogc3RyaW5nXG4gIGxhc3RRdWVzdGlvbkRhdGU6IHN0cmluZ1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBxQW5zd2VyczogbnVtYmVyXG4gIGdlbmVyYWxSYXRpbmc6IG51bWJlclxuICB1c2VySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZUl0ZW1SZXNwb25zZSA9IHtcbiAgYWdlbnRfaWQ6IHN0cmluZ1xuICB1c2VyX2lkOiBzdHJpbmdcbiAgYW5zd2VyOiBzdHJpbmdcbiAgZGF0ZTogc3RyaW5nXG4gIHRpbWVzdGFtcDogc3RyaW5nXG4gIHF1ZXN0aW9uOiBzdHJpbmdcbiAgd2FzX2hlbHBmdWw6IGJvb2xlYW4gfCBudWxsXG4gIG1lc3NhZ2VfaWQ6IHN0cmluZ1xuICBtZW1vcnlfc2Vzc2lvbl9pZDogc3RyaW5nXG4gIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsXG4gIHN1Z2dlc3RfcmVwbHk/OiBzdHJpbmdbXSB8IG51bGxcbiAgaXNfY2FuY2VsbGVkPzogYm9vbGVhblxuICByZWFzb25pbmc/OiBSZWFzb25pbmdUcmFjZVBheWxvYWQgfCBudWxsXG4gIHByb2plY3RfbWV0YWRhdGE/OiB7XG4gICAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIGlzX2RlbGV0ZWQ/OiBib29sZWFuIHwgbnVsbFxuICB9XG4gIGNsaWVudF9tZXRhZGF0YT86IHtcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgdGFza19tZXRhZGF0YT86IHtcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgcHJvamVjdF9pZD86IG51bWJlclxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgc291cmNlcz86IHsgc291cmNlOiBzdHJpbmc7IHJlZmVyZW5jZTogc3RyaW5nIH1bXVxuICBzdGF0dXM/OiBzdHJpbmdcbiAgcGVuZGluZ19hcHByb3ZhbD86IEJhY2tlbmRQZW5kaW5nQXBwcm92YWxcbiAgdGhyZWFkX2lkPzogc3RyaW5nXG4gIC8qKiBTZXQgZGUgZW50aWRhZGVzIG1lbmNpb25hZGFzIGNvbiBgQGAgcXVlIGVsIHVzdWFyaW8gZW52acOzIGVuIGVzZSBtZW5zYWplICovXG4gIGNvbnRleHRfbWVzc2FnZT86IENvbnRleHRNZXNzYWdlXG59XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlc1Jlc3BvbnNlU2NoZW1hID0ge1xuICBpdGVtczogQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2VbXVxuICBsYXN0X2V2YWx1YXRlZF9rZXk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRIaXN0b3J5IHtcbiAgY29udGVudDogc3RyaW5nXG4gIHJvbGU6IENoYXRIaXN0b3J5Um9sZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRJdGVtUmVzcG9uc2Uge1xuICBhZ2VudF9uYW1lOiBzdHJpbmdcbiAgYWdlbnRfaWQ6IG51bWJlclxuICBhZ2VudF90eXBlPzogc3RyaW5nXG4gIGVtb2ppOiBzdHJpbmcgfCBudWxsXG4gIGlkOiBudW1iZXJcbiAgbGFzdF9xdWVzdGlvbjogc3RyaW5nXG4gIGxhc3RfcXVlc3Rpb25fZGF0ZTogc3RyaW5nXG4gIHNlc3Npb25fZXh0ZXJuYWxfaWQ6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nIHwgbnVsbFxuICBpc19yZWFkPzogYm9vbGVhblxuICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICBwcm9qZWN0X21ldGFkYXRhPzoge1xuICAgIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgfVxuICBjbGllbnRfbWV0YWRhdGE/
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGF0SGlzdG9yeVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvQ2hhdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUmVhc29uaW5nVHJhY2UsIFJlYXNvbmluZ1RyYWNlUGF5bG9hZCB9IGZyb20gJy4vcmVhc29uaW5nJ1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4vUHJvamVjdCdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hhdEZvb3Rlci9DaGF0Rm9vdGVyJ1xuaW1wb3J0IHsgQ29udGV4dE1lc3NhZ2UgfSBmcm9tICcuL2NvbnRleHRNZW50aW9uJ1xuXG5leHBvcnQgdHlwZSBDaGF0SXRlbSA9IHtcbiAgY2hhdF9pZDogc3RyaW5nXG4gIGNoYXRfc3RhdHVzOiBzdHJpbmdcbiAgbGFzdF9xdWVzdGlvbjogc3RyaW5nXG4gIGxhc3RfcXVlc3Rpb25fZGF0ZTogc3RyaW5nXG4gIG1lc3NhZ2VfaWQ6IHN0cmluZ1xuICBxX2Fuc3dlcnM6IG51bWJlclxuICBnZW5lcmFsX3JhdGluZzogbnVtYmVyXG4gIHVzZXJfaWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBDaGF0UmVzcG9uc2UgPSB7XG4gIGl0ZW1zOiBDaGF0SXRlbVtdXG4gIGxhc3RfZXZhbHVhdGVkX2tleTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIENoYXQgPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICBkYXRlOiBEYXRlXG4gIGFnZW50X3R5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ2hhdE1lc3NhZ2VVc2VyID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBhdmF0YXI/OiBzdHJpbmdcbiAgYXZhdGFySWNvbj86IFJlYWN0Tm9kZVxufVxuXG5leHBvcnQgZW51bSBDaGF0SGlzdG9yeVJvbGUge1xuICBVU0VSID0gJ3VzZXInLFxuICBBU1NJU1RBTlQgPSAnYXNzaXN0YW50Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZW5kaW5nQWN0aW9uIHtcbiAgdG9vbF9uYW1lOiBzdHJpbmdcbiAgdG9vbF9jYWxsX2lkOiBzdHJpbmdcbiAgdG9vbF9hcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgYW55W11cbiAgdGhyZWFkX2lkOiBzdHJpbmcgLy8gRWFjaCBhY3Rpb24gaGFzIGl0cyBvd24gdW5pcXVlIHRocmVhZF9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcHJvdmFsUmVxdWVzdCB7XG4gIHR5cGU6ICdhcHByb3ZhbF9yZXF1aXJlZCdcbiAgcGVuZGluZ19hY3Rpb25zOiBQZW5kaW5nQWN0aW9uW11cbiAgdG90YWxfYWN0aW9uczogbnVtYmVyXG4gIG9yaWdpbmFsX3RocmVhZF9pZDogc3RyaW5nIC8vIE9yaWdpbmFsIGNoZWNrcG9pbnQgdGhyZWFkX2lkXG4gIHNlc3Npb25faWQ6IHN0cmluZ1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ/OiBib29sZWFuXG4gIHdhcm5pbmdfbWVzc2FnZT86IHN0cmluZ1xuICBhdXRvX2FwcHJvdmVkPzogYm9vbGVhblxuICBhcHByb3ZhbF9zdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnXG4gIHJlYXNvbmluZz86IFJlYXNvbmluZ1RyYWNlUGF5bG9hZCB8IG51bGxcbn1cblxuLy8gQmFja2VuZCBwZW5kaW5nX2FwcHJvdmFsIGZvcm1hdCAoYmVmb3JlIHRyYW5zZm9ybWF0aW9uKVxuZXhwb3J0IGludGVyZmFjZSBCYWNrZW5kUGVuZGluZ0FwcHJvdmFsIHtcbiAgdHlwZTogJ2FwcHJvdmFsX3JlcXVpcmVkJ1xuICB0b29sX2NhbGxfaWQ6IHN0cmluZ1xuICB0b29sX25hbWU/OiBzdHJpbmdcbiAgdG9vbF9hcmdzPzogUmVjb3JkPHN0cmluZywgYW55PiB8IGFueVtdXG4gIG9yaWdpbmFsX3RocmVhZF9pZDogc3RyaW5nXG4gIHNlc3Npb25faWQ6IHN0cmluZ1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ/OiBib29sZWFuXG4gIHdhcm5pbmdfbWVzc2FnZT86IHN0cmluZ1xuICBhdXRvX2FwcHJvdmVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZSA9IHtcbiAgaWQ6IHN0cmluZ1xuICBtZXNzYWdlOiBzdHJpbmdcbiAgZGF0ZTogRGF0ZVxuICBpc0Vycm9yPzogYm9vbGVhblxuICBpc19jYW5jZWxsZWQ/OiBib29sZWFuXG4gIGlzRnJvbnRlbmRDYW5jZWxsZWQ/OiBib29sZWFuXG4gIHVzZXI6IENoYXRNZXNzYWdlVXNlclxuICBwcm9qZWN0SWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmdcbiAgY2xpZW50SWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgY2xpZW50TmFtZT86IHN0cmluZ1xuICBpc0NoYW5nZVByb2plY3Q/OiBib29sZWFuXG4gIHByb2plY3Q/OiBQcm9qZWN0XG4gIGFnZW50SWQ/OiBzdHJpbmdcbiAgb3B0aW9ucz86IHtcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbmFtZT86IHN0cmluZ1xuICB9W11cbiAgcm9sZT86IENoYXRIaXN0b3J5Um9sZVxuICBzb3VyY2VzPzogYW55XG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXVxuICB3YXNIZWxwZnVsPzogYm9vbGVhbiB8IG51bGxcbiAgbWVtb3J5U2Vzc2lvbklkPzogc3RyaW5nXG4gIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsXG4gIC8qKiBUcmFzIGFwcm9iYXIgY3JlYXRlX2FnZW50OiBhY2Npb25lcyByw6FwaWRhcyBlbiBlbCBtZW5zYWplIGZpbmFsOyByZXF1aWVyZSBhZ2VudElkIGRldGVjdGFkbyBlbiBlbCB0ZXh0byAqL1xuICBjcmVhdGVBZ2VudEZvbGxvd1VwPzogeyBhZ2VudElkOiBzdHJpbmcgfSB8IG51bGxcbiAgYXBwcm92YWw/OiBBcHByb3ZhbFJlcXVlc3RcbiAgYXBwcm92YWxTdGF0dXM/OiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJ1xuICBwcm9qZWN0TWV0YWRhdGE/OiB7XG4gICAgaXNfZGVsZXRlZD86IGJvb2xlYW4gfCBudWxsXG4gIH1cbiAgLyoqXG4gICAqIEVudGlkYWRlcyBtZW5jaW9uYWRhcyBjb24gYEBgIGVuIEVTRSBtZW5zYWplIHB1bnR1YWwuIE5vIHNlIHByb3BhZ2EgYWxcbiAgICogY29udGV4dG8gZ2xvYmFsIG5pIGEgb3Ryb3MgdHVybm9zOyBzw7NsbyB2aXZlIGFjw6EgcGFyYSBxdWUgZWwgcmVuZGVyZXJcbiAgICogcHVlZGEgcGludGFyIGNoaXBzIHkgcGFyYSBtYW5kYXJsbyBhbCBvcmNoZXN0cmF0b3IgdsOtYSBtZXRhZGF0YS5cbiAgICovXG4gIGNvbnRleHRNZXNzYWdlPzogQ29udGV4dE1lc3NhZ2VcbiAgcmVhc29uaW5nPzogUmVhc29uaW5nVHJhY2UgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlSXRlbSA9IHtcbiAgY2hhdElkOiBzdHJpbmdcbiAgY2hhdFN0YXR1czogc3RyaW5nXG4gIGxhc3RRdWVzdGlvbjogc3RyaW5nXG4gIGxhc3RRdWVzdGlvbkRhdGU6IHN0cmluZ1xuICBtZXNzYWdlSWQ6IHN0cmluZ1xuICBxQW5zd2VyczogbnVtYmVyXG4gIGdlbmVyYWxSYXRpbmc6IG51bWJlclxuICB1c2VySWQ6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBDaGF0TWVzc2FnZUl0ZW1SZXNwb25zZSA9IHtcbiAgYWdlbnRfaWQ6IHN0cmluZ1xuICB1c2VyX2lkOiBzdHJpbmdcbiAgYW5zd2VyOiBzdHJpbmdcbiAgZGF0ZTogc3RyaW5nXG4gIHRpbWVzdGFtcDogc3RyaW5nXG4gIHF1ZXN0aW9uOiBzdHJpbmdcbiAgd2FzX2hlbHBmdWw6IGJvb2xlYW4gfCBudWxsXG4gIG1lc3NhZ2VfaWQ6IHN0cmluZ1xuICBtZW1vcnlfc2Vzc2lvbl9pZDogc3RyaW5nXG4gIHN1Z2dlc3Rpb25zPzogc3RyaW5nW10gfCBudWxsXG4gIHN1Z2dlc3RfcmVwbHk/OiBzdHJpbmdbXSB8IG51bGxcbiAgaXNfY2FuY2VsbGVkPzogYm9vbGVhblxuICByZWFzb25pbmc/OiBSZWFzb25pbmdUcmFjZVBheWxvYWQgfCBudWxsXG4gIHByb2plY3RfbWV0YWRhdGE/OiB7XG4gICAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIGlzX2RlbGV0ZWQ/OiBib29sZWFuIHwgbnVsbFxuICB9XG4gIGNsaWVudF9tZXRhZGF0YT86IHtcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgdGFza19tZXRhZGF0YT86IHtcbiAgICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgcHJvamVjdF9pZD86IG51bWJlclxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgc291cmNlcz86IHsgc291cmNlOiBzdHJpbmc7IHJlZmVyZW5jZTogc3RyaW5nIH1bXVxuICBzdGF0dXM/OiBzdHJpbmdcbiAgcGVuZGluZ19hcHByb3ZhbD86IEJhY2tlbmRQZW5kaW5nQXBwcm92YWxcbiAgdGhyZWFkX2lkPzogc3RyaW5nXG4gIC8qKiBTZXQgZGUgZW50aWRhZGVzIG1lbmNpb25hZGFzIGNvbiBgQGAgcXVlIGVsIHVzdWFyaW8gZW52acOzIGVuIGVzZSBtZW5zYWplICovXG4gIGNvbnRleHRfbWVzc2FnZT86IENvbnRleHRNZXNzYWdlXG59XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlc1Jlc3BvbnNlU2NoZW1hID0ge1xuICBpdGVtczogQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2VbXVxuICBsYXN0X2V2YWx1YXRlZF9rZXk6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRIaXN0b3J5IHtcbiAgY29udGVudDogc3RyaW5nXG4gIHJvbGU6IENoYXRIaXN0b3J5Um9sZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYXRJdGVtUmVzcG9uc2Uge1xuICBhZ2VudF9uYW1lOiBzdHJpbmdcbiAgYWdlbnRfaWQ6IG51bWJlclxuICBhZ2VudF90eXBlPzogc3RyaW5nXG4gIGVtb2ppOiBzdHJpbmcgfCBudWxsXG4gIGlkOiBudW1iZXJcbiAgbGFzdF9xdWVzdGlvbjogc3RyaW5nXG4gIGxhc3RfcXVlc3Rpb25fZGF0ZTogc3RyaW5nXG4gIHNlc3Npb25fZXh0ZXJuYWxfaWQ6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nIHwgbnVsbFxuICBpc19yZWFkPzogYm9vbGVhblxuICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICBwcm9qZWN0X21ldGFkYXRhPzoge1xuICAgIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgfVxuICBjbGllbnRfbWV0YWRhdGE/OiB7XG4gICAgaWQ6IG51bWJlclxuICAgIG5hbWU6IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdHNSZXNwb25zZVNjaGVtYSB7XG4gIGRhdGE6IENoYXRJdGVtUmVzcG9uc2VbXVxuICBoYXNfbW9yZTogYm9vbGVhblxuICBuZXh0X29mZnNldDogc3RyaW5nIHwgbnVsbFxuICB1bnJlYWRfY291bnQ/OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXNrSW5mbyB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU6IHN0cmluZ1xuICB1cmw6IHN0cmluZ1xuICBwcm9qZWN0TmFtZT86IHN0cmluZ1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFxQ0EsV0FBWUEsZUFBZSwwQkFBZkEsZUFBZTtFQUFmQSxlQUFlO0VBQWZBLGVBQWU7RUFBQSxPQUFmQSxlQUFlO0FBQUE7O0FBMEIzQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uID0ge1xuICBpZDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgcHJvbXB0OiBzdHJpbmdcbiAgbGFuZ3VhZ2U6IHN0cmluZ1xuICBjYXRlZ29yeTogc3RyaW5nIHwgbnVsbFxuICAvKiogT3JkZW4gZGUgYXBhcmljacOzbiBlbiBsYSBVSSAodmllbmUgZW4gbGEgcmVzcHVlc3RhIGRlIGxhIEFQSSkgKi9cbiAgb3JkZXI/OiBudW1iZXJcbiAgYWdlbnRfaWQ/OiBudW1iZXJcbiAgY29tcGFueV9pZD86IHN0cmluZyB8IG51bGxcbiAgY3JlYXRlZF9ieT86IG51bWJlciB8IG51bGxcbiAgY3JlYXRlZF9hdD86IHN0cmluZ1xuICB1cGRhdGVkX2F0Pzogc3RyaW5nXG4gIGlzX2RlbGV0ZWQ/OiBib29sZWFuXG4gIGRlbGV0ZWRfYXQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uID0ge1xuICBpZDogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgcHJvbXB0OiBzdHJpbmdcbiAgbGFuZ3VhZ2U6IHN0cmluZ1xuICBjYXRlZ29yeTogc3RyaW5nIHwgbnVsbFxuICAvKiogT3JkZW4gZGUgYXBhcmljacOzbiBlbiBsYSBVSSAodmllbmUgZW4gbGEgcmVzcHVlc3RhIGRlIGxhIEFQSSkgKi9cbiAgb3JkZXI/OiBudW1iZXJcbiAgYWdlbnRfaWQ/OiBudW1iZXJcbiAgY29tcGFueV9pZD86IHN0cmluZyB8IG51bGxcbiAgY3JlYXRlZF9ieT86IG51bWJlciB8IG51bGxcbiAgY3JlYXRlZF9hdD86IHN0cmluZ1xuICB1cGRhdGVkX2F0Pzogc3RyaW5nXG4gIGlzX2RlbGV0ZWQ/OiBib29sZWFuXG4gIGRlbGV0ZWRfYXQ/OiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCB0eXBlIEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uUmVzcG9uc2UgPSB7XG4gIGRhdGE6IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uW11cbiAgaGFzX21vcmU6IGJvb2xlYW5cbiAgbmV4dF9vZmZzZXQ6IHN0cmluZyB8IG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/types/agentModal.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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL2FnZW50TW9kYWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50Rm9ybURhdGEgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLmludGVyZmFjZSdcbmltcG9ydCB7IEFnZW50TW9kZWwgfSBmcm9tICcuL2FnZW50J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5cbmV4cG9ydCB0eXBlIE1vZGFsVmFsdWVzID0ge1xuICBpc0VkaXRpbmc6IGJvb2xlYW5cbiAga25vd2xlZGdlOiBBdHRhY2htZW50RmlsZVtdXG4gIGdlbmVyYWw6IHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBlbW9qaTogc3RyaW5nXG4gICAgaW50cm9kdWN0aW9uOiBzdHJpbmdcbiAgICBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmdcbiAgICBpc0FjdGl2ZTogYm9vbGVhblxuICAgIGFpTW9kZWw6IEFnZW50TW9kZWwgfCBudWxsXG4gICAgaWQ6IG51bWJlciB8IG51bGxcbiAgICB1c2VyUHJvbXB0OiBzdHJpbmcgfCBudWxsXG4gICAga25vd2xlZGdlQmFzZXM6IHN0cmluZ1tdXG4gICAgaXNfZmF2b3JpdGU/OiBib29sZWFuXG4gICAgY3JlYXRlZF9ieT86IHtcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgaXNfZGVsZXRlZDogYm9vbGVhblxuICAgIH1cbiAgfVxuICBhY2Nlc3NpYmlsaXR5OiB7XG4gICAgYWNjZXNzVHlwZTogJ2NvbXBhbnknIHwgJ2NsaWVudHMnIHwgJ29ubHlfbWUnXG4gICAgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgLyoqIFBlcm1pc28gZGUgY29uZWN0b3IgQ09SOiBhY2Nlc28gYSB0YXJlYXMgKi9cbiAgICB0YXNrQWNjZXNzPzogYm9vbGVhblxuICB9XG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/types/skill.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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3NraWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNraWxsID0ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbiAgY3JlYXRlZF9hdD86IHN0cmluZ1xuICB1cGRhdGVkX2F0Pzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFNraWxsc1Jlc3BvbnNlID0ge1xuICBkYXRhOiBTa2lsbFtdXG4gIGhhc19tb3JlPzogYm9vbGVhblxuICBuZXh0X29mZnNldD86IG51bWJlciB8IG51bGxcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Respuesta de GET /v1/usage (pool de tokens por company).
|
|
3
|
+
* `blocked` es la fuente de verdad del FE — no recomputar por consumed vs granted.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/** Detail body de POST orchestrator cuando HTTP 402 + code usage_quota_exceeded. */
|
|
7
|
+
|
|
8
|
+
export var USAGE_QUOTA_EXCEEDED_CODE = 'usage_quota_exceeded';
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVU0FHRV9RVU9UQV9FWENFRURFRF9DT0RFIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL3VzYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzcHVlc3RhIGRlIEdFVCAvdjEvdXNhZ2UgKHBvb2wgZGUgdG9rZW5zIHBvciBjb21wYW55KS5cbiAqIGBibG9ja2VkYCBlcyBsYSBmdWVudGUgZGUgdmVyZGFkIGRlbCBGRSDigJQgbm8gcmVjb21wdXRhciBwb3IgY29uc3VtZWQgdnMgZ3JhbnRlZC5cbiAqL1xuZXhwb3J0IHR5cGUgTWFpYVVzYWdlID0ge1xuICBjb21wYW55X2lkOiBzdHJpbmdcbiAgcGVyaW9kX3N0YXJ0OiBzdHJpbmdcbiAgcGVyaW9kX2VuZDogc3RyaW5nXG4gIHNlYXRzOiBudW1iZXJcbiAgdXNkX3Blcl9zZWF0OiBudW1iZXJcbiAgZ3JhbnRlZF91c2Q6IG51bWJlclxuICBjb25zdW1lZF91c2Q6IG51bWJlclxuICByZW1haW5pbmdfdXNkOiBudW1iZXJcbiAgcGN0OiBudW1iZXJcbiAgYmxvY2tlZDogYm9vbGVhblxuICBjb25zdW1lZF90b2tlbnM6IG51bWJlclxuICBvbl9kZW1hbmRfZ3JhbnRlZF91c2Q6IG51bWJlclxuICBvbl9kZW1hbmRfY29uc3VtZWRfdXNkOiBudW1iZXJcbiAgc2VhdHNfa25vd246IGJvb2xlYW5cbiAgZW5mb3JjZW1lbnRfZW5hYmxlZDogYm9vbGVhblxufVxuXG4vKiogRGV0YWlsIGJvZHkgZGUgUE9TVCBvcmNoZXN0cmF0b3IgY3VhbmRvIEhUVFAgNDAyICsgY29kZSB1c2FnZV9xdW90YV9leGNlZWRlZC4gKi9cbmV4cG9ydCB0eXBlIFVzYWdlUXVvdGFFeGNlZWRlZERldGFpbCA9IHtcbiAgbWVzc2FnZTogc3RyaW5nXG4gIGNvZGU6ICd1c2FnZV9xdW90YV9leGNlZWRlZCdcbiAgZ3JhbnRlZF91c2Q/OiBudW1iZXJcbiAgY29uc3VtZWRfdXNkPzogbnVtYmVyXG4gIHBlcmlvZF9lbmQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IFVTQUdFX1FVT1RBX0VYQ0VFREVEX0NPREUgPSAndXNhZ2VfcXVvdGFfZXhjZWVkZWQnIGFzIGNvbnN0XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQW1CQTs7QUFTQSxPQUFPLElBQU1BLHlCQUF5QixHQUFHLHNCQUErQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -5,10 +5,12 @@ export var TYPE_TO_TRIGGER_SEQUENCE = {
|
|
|
5
5
|
task: 2,
|
|
6
6
|
project: 3,
|
|
7
7
|
client: 4,
|
|
8
|
-
/** Triggers con slash: @@/ mcp (atRunLength negativo en el editor) */
|
|
8
|
+
/** Triggers con slash: @/ skills, @@/ mcp (atRunLength negativo en el editor) */
|
|
9
|
+
skill: -1,
|
|
9
10
|
mcp: -2
|
|
10
11
|
};
|
|
11
12
|
export var getMentionTabPrefix = function getMentionTabPrefix(type) {
|
|
13
|
+
if (type === 'skill') return '@/';
|
|
12
14
|
var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
|
|
13
15
|
if (mapped === undefined) return '@';
|
|
14
16
|
if (mapped < 0) return "".concat('@'.repeat(Math.abs(mapped)), "/");
|
|
@@ -16,6 +18,7 @@ export var getMentionTabPrefix = function getMentionTabPrefix(type) {
|
|
|
16
18
|
};
|
|
17
19
|
export var getAtRunTabTypes = function getAtRunTabTypes(allowedTypes) {
|
|
18
20
|
return allowedTypes.filter(function (type) {
|
|
21
|
+
if (type === 'skill') return false;
|
|
19
22
|
var mapped = TYPE_TO_TRIGGER_SEQUENCE[type];
|
|
20
23
|
return mapped === undefined || mapped > 0;
|
|
21
24
|
});
|
|
@@ -48,4 +51,4 @@ export var getTriggerSequenceFromType = function getTriggerSequenceFromType(type
|
|
|
48
51
|
var idx = allowedTypes.indexOf(type);
|
|
49
52
|
return idx >= 0 ? idx + 1 : 1;
|
|
50
53
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0UiLCJ1c2VyIiwidGFzayIsInByb2plY3QiLCJjbGllbnQiLCJza2lsbCIsIm1jcCIsImdldE1lbnRpb25UYWJQcmVmaXgiLCJ0eXBlIiwibWFwcGVkIiwidW5kZWZpbmVkIiwiY29uY2F0IiwicmVwZWF0IiwiTWF0aCIsImFicyIsImdldEF0UnVuVGFiVHlwZXMiLCJhbGxvd2VkVHlwZXMiLCJmaWx0ZXIiLCJnZXRUeXBlRnJvbVRyaWdnZXJTZXF1ZW5jZSIsImF0UnVuTGVuZ3RoIiwiZGVmYXVsdFR5cGUiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQyIiwiX09iamVjdCRlbnRyaWVzJGZpbmQyIiwiX2FsbG93ZWRUeXBlcyR0YWJJZHgiLCJfT2JqZWN0JGVudHJpZXMkZmluZCQiLCJfT2JqZWN0JGVudHJpZXMkZmluZCIsInNsYXNoVHlwZSIsIk9iamVjdCIsImVudHJpZXMiLCJmaW5kIiwiX3JlZiIsIl9yZWYyIiwiX3NsaWNlZFRvQXJyYXkiLCJsZW4iLCJpbmNsdWRlcyIsIm5vcm1hbGl6ZWQiLCJtYXgiLCJmbG9vciIsIm1hcHBlZFR5cGUiLCJfcmVmMyIsIl9yZWY0IiwidGFiSWR4IiwibWluIiwibGVuZ3RoIiwiZ2V0VHJpZ2dlclNlcXVlbmNlRnJvbVR5cGUiLCJpZHgiLCJpbmRleE9mIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbnRleHRNZW50aW9uVHJpZ2dlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dEVudGl0eVR5cGUgfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcblxuLyoqIFNlY3VlbmNpYSBkZSBgQGAgKHBvc2l0aXZhKSBvIGBAL2AvYEBAL2DigKYgKG5lZ2F0aXZhID0gcnVuIGRlIEAgKyBzbGFzaCkgcG9yIHRpcG8gZGUgdGFiLiAqL1xuZXhwb3J0IGNvbnN0IFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRTogUGFydGlhbDxSZWNvcmQ8Q29udGV4dEVudGl0eVR5cGUsIG51bWJlcj4+ID0ge1xuICB1c2VyOiAxLFxuICB0YXNrOiAyLFxuICBwcm9qZWN0OiAzLFxuICBjbGllbnQ6IDQsXG4gIC8qKiBUcmlnZ2VycyBjb24gc2xhc2g6IEAvIHNraWxscywgQEAvIG1jcCAoYXRSdW5MZW5ndGggbmVnYXRpdm8gZW4gZWwgZWRpdG9yKSAqL1xuICBza2lsbDogLTEsXG4gIG1jcDogLTIsXG59XG5cbmV4cG9ydCBjb25zdCBnZXRNZW50aW9uVGFiUHJlZml4ID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGUgPT09ICdza2lsbCcpIHJldHVybiAnQC8nXG4gIGNvbnN0IG1hcHBlZCA9IFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRVt0eXBlXVxuICBpZiAobWFwcGVkID09PSB1bmRlZmluZWQpIHJldHVybiAnQCdcbiAgaWYgKG1hcHBlZCA8IDApIHJldHVybiBgJHsnQCcucmVwZWF0KE1hdGguYWJzKG1hcHBlZCkpfS9gXG4gIHJldHVybiAnQCcucmVwZWF0KG1hcHBlZClcbn1cblxuZXhwb3J0IGNvbnN0IGdldEF0UnVuVGFiVHlwZXMgPSAoYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogQ29udGV4dEVudGl0eVR5cGVbXSA9PlxuICBhbGxvd2VkVHlwZXMuZmlsdGVyKHR5cGUgPT4ge1xuICAgIGlmICh0eXBlID09PSAnc2tpbGwnKSByZXR1cm4gZmFsc2VcbiAgICBjb25zdCBtYXBwZWQgPSBUWVBFX1RPX1RSSUdHRVJfU0VRVUVOQ0VbdHlwZV1cbiAgICByZXR1cm4gbWFwcGVkID09PSB1bmRlZmluZWQgfHwgbWFwcGVkID4gMFxuICB9KVxuXG5leHBvcnQgY29uc3QgZ2V0VHlwZUZyb21UcmlnZ2VyU2VxdWVuY2UgPSAoXG4gIGF0UnVuTGVuZ3RoOiBudW1iZXIsXG4gIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXSxcbiAgZGVmYXVsdFR5cGU6IENvbnRleHRFbnRpdHlUeXBlXG4pOiBDb250ZXh0RW50aXR5VHlwZSA9PiB7XG4gIGlmIChhdFJ1bkxlbmd0aCA8IDApIHtcbiAgICBjb25zdCBzbGFzaFR5cGUgPSAoT2JqZWN0LmVudHJpZXMoVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFKS5maW5kKChbLCBsZW5dKSA9PiBsZW4gPT09IGF0UnVuTGVuZ3RoKT8uWzBdID8/XG4gICAgICBudWxsKSBhcyBDb250ZXh0RW50aXR5VHlwZSB8IG51bGxcbiAgICBpZiAoc2xhc2hUeXBlICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhzbGFzaFR5cGUpKSByZXR1cm4gc2xhc2hUeXBlXG4gICAgcmV0dXJuIGRlZmF1bHRUeXBlXG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZCA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IoYXRSdW5MZW5ndGgpKVxuICBjb25zdCBtYXBwZWRUeXBlID0gKE9iamVjdC5lbnRyaWVzKFRZUEVfVE9fVFJJR0dFUl9TRVFVRU5DRSkuZmluZCgoWywgbGVuXSkgPT4gbGVuID09PSBub3JtYWxpemVkKT8uWzBdID8/XG4gICAgbnVsbCkgYXMgQ29udGV4dEVudGl0eVR5cGUgfCBudWxsXG4gIGlmIChtYXBwZWRUeXBlICYmIGFsbG93ZWRUeXBlcy5pbmNsdWRlcyhtYXBwZWRUeXBlKSkgcmV0dXJuIG1hcHBlZFR5cGVcbiAgY29uc3QgdGFiSWR4ID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbm9ybWFsaXplZCAtIDEpLCBhbGxvd2VkVHlwZXMubGVuZ3RoIC0gMSlcbiAgcmV0dXJuIGFsbG93ZWRUeXBlc1t0YWJJZHhdID8/IGRlZmF1bHRUeXBlXG59XG5cbmV4cG9ydCBjb25zdCBnZXRUcmlnZ2VyU2VxdWVuY2VGcm9tVHlwZSA9ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSwgYWxsb3dlZFR5cGVzOiBDb250ZXh0RW50aXR5VHlwZVtdKTogbnVtYmVyID0+IHtcbiAgY29uc3QgbWFwcGVkID0gVFlQRV9UT19UUklHR0VSX1NFUVVFTkNFW3R5cGVdXG4gIGlmIChtYXBwZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIG1hcHBlZFxuICBjb25zdCBpZHggPSBhbGxvd2VkVHlwZXMuaW5kZXhPZih0eXBlKVxuICByZXR1cm4gaWR4ID49IDAgPyBpZHggKyAxIDogMVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBRUE7QUFDQSxPQUFPLElBQU1BLHdCQUFvRSxHQUFHO0VBQ2xGQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxJQUFJLEVBQUUsQ0FBQztFQUNQQyxPQUFPLEVBQUUsQ0FBQztFQUNWQyxNQUFNLEVBQUUsQ0FBQztFQUNUO0VBQ0FDLEtBQUssRUFBRSxDQUFDLENBQUM7RUFDVEMsR0FBRyxFQUFFLENBQUM7QUFDUixDQUFDO0FBRUQsT0FBTyxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFJQyxJQUF1QixFQUFhO0VBQ3RFLElBQUlBLElBQUksS0FBSyxPQUFPLEVBQUUsT0FBTyxJQUFJO0VBQ2pDLElBQU1DLE1BQU0sR0FBR1Qsd0JBQXdCLENBQUNRLElBQUksQ0FBQztFQUM3QyxJQUFJQyxNQUFNLEtBQUtDLFNBQVMsRUFBRSxPQUFPLEdBQUc7RUFDcEMsSUFBSUQsTUFBTSxHQUFHLENBQUMsRUFBRSxVQUFBRSxNQUFBLENBQVUsR0FBRyxDQUFDQyxNQUFNLENBQUNDLElBQUksQ0FBQ0MsR0FBRyxDQUFDTCxNQUFNLENBQUMsQ0FBQztFQUN0RCxPQUFPLEdBQUcsQ0FBQ0csTUFBTSxDQUFDSCxNQUFNLENBQUM7QUFDM0IsQ0FBQztBQUVELE9BQU8sSUFBTU0sZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBSUMsWUFBaUM7RUFBQSxPQUNoRUEsWUFBWSxDQUFDQyxNQUFNLENBQUMsVUFBQVQsSUFBSSxFQUFJO0lBQzFCLElBQUlBLElBQUksS0FBSyxPQUFPLEVBQUUsT0FBTyxLQUFLO0lBQ2xDLElBQU1DLE1BQU0sR0FBR1Qsd0JBQXdCLENBQUNRLElBQUksQ0FBQztJQUM3QyxPQUFPQyxNQUFNLEtBQUtDLFNBQVMsSUFBSUQsTUFBTSxH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
|
|
@@ -2,50 +2,28 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
import _typeof from "@babel/runtime/helpers/typeof";
|
|
3
3
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
4
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
-
import { normalizeCorEntitySlug } from './corConnectorMentionTypes';
|
|
6
|
-
|
|
7
5
|
/** Grupo de conectores COR dentro de `connectors`. */
|
|
8
6
|
export var COR_CONNECTOR_GROUP = 'COR';
|
|
9
7
|
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
* Orden = jerarquía de COR (cliente > proyecto > tarea), de más amplio a más específico —
|
|
13
|
-
* es el orden en que se muestran los toggles en el tab Permisos.
|
|
14
|
-
*/
|
|
15
|
-
export var COR_TOOL_GROUP_SLUGS = ['clientes', 'proyectos', 'tareas'];
|
|
16
|
-
|
|
17
|
-
/** Estado de los 3 conectores COR, uno por slug. */
|
|
18
|
-
|
|
19
|
-
/** Los 3 conectores vienen prendidos por defecto en agentes nuevos (manual y MAIAKER). */
|
|
20
|
-
export var DEFAULT_COR_ACCESS = {
|
|
21
|
-
clientes: true,
|
|
22
|
-
proyectos: true,
|
|
23
|
-
tareas: true
|
|
24
|
-
};
|
|
25
|
-
var ENTITY_BY_SLUG = {
|
|
26
|
-
clientes: 'client',
|
|
27
|
-
proyectos: 'project',
|
|
28
|
-
tareas: 'task'
|
|
29
|
-
};
|
|
8
|
+
/** Slugs de tool groups COR que habilita el switch de "acceso a tareas" del ABM. */
|
|
9
|
+
export var COR_TOOL_GROUP_SLUGS = ['tareas', 'proyectos'];
|
|
30
10
|
|
|
31
11
|
/**
|
|
32
|
-
* Construye el array `tool_group_slugs` para la ruta `POST agents/{id}/tool-groups`
|
|
33
|
-
*
|
|
12
|
+
* Construye el array `tool_group_slugs` para la ruta `POST agents/{id}/tool-groups` a partir del switch.
|
|
13
|
+
* Activo → `['tareas', 'proyectos']`; apagado → `[]`.
|
|
34
14
|
*/
|
|
35
|
-
export var buildAgentToolGroupsRequest = function buildAgentToolGroupsRequest(
|
|
36
|
-
return
|
|
37
|
-
return corAccess[slug];
|
|
38
|
-
});
|
|
15
|
+
export var buildAgentToolGroupsRequest = function buildAgentToolGroupsRequest(taskAccess) {
|
|
16
|
+
return taskAccess ? [].concat(COR_TOOL_GROUP_SLUGS) : [];
|
|
39
17
|
};
|
|
40
18
|
|
|
41
19
|
/**
|
|
42
20
|
* Construye los `connectors` agrupados (mismo formato que devuelve el back en listado/sesión)
|
|
43
|
-
* a partir del
|
|
21
|
+
* a partir del switch, para hidratar de forma optimista el agente recién creado/editado sin refetch.
|
|
44
22
|
*/
|
|
45
|
-
export var
|
|
23
|
+
export var buildAgentConnectorsFromTaskAccess = function buildAgentConnectorsFromTaskAccess(taskAccess) {
|
|
46
24
|
return [{
|
|
47
25
|
group: COR_CONNECTOR_GROUP,
|
|
48
|
-
slugs:
|
|
26
|
+
slugs: taskAccess ? [].concat(COR_TOOL_GROUP_SLUGS) : []
|
|
49
27
|
}, {
|
|
50
28
|
group: 'MCP',
|
|
51
29
|
slugs: []
|
|
@@ -73,19 +51,13 @@ export var normalizeAgentConnectors = function normalizeAgentConnectors(raw) {
|
|
|
73
51
|
};
|
|
74
52
|
|
|
75
53
|
/**
|
|
76
|
-
* Deriva el estado de
|
|
77
|
-
* (`GET agents/{id}`).
|
|
78
|
-
* (tolera variantes de entidad/legacy vía `normalizeCorEntitySlug`), a diferencia del viejo
|
|
79
|
-
* "prendido si el array trae cualquier slug" que no distinguía un conector de otro.
|
|
54
|
+
* Deriva el estado del switch de "acceso a tareas" desde `tool_group_slugs` del detalle del agente
|
|
55
|
+
* (`GET agents/{id}`). Activo si el array trae al menos un slug.
|
|
80
56
|
*/
|
|
81
|
-
export var
|
|
82
|
-
|
|
83
|
-
return typeof slug === 'string';
|
|
84
|
-
})
|
|
85
|
-
return COR_TOOL_GROUP_SLUGS.reduce(function (acc, slug) {
|
|
86
|
-
acc[slug] = entities.has(ENTITY_BY_SLUG[slug]);
|
|
87
|
-
return acc;
|
|
88
|
-
}, {});
|
|
57
|
+
export var deriveTaskAccessFromToolGroupSlugs = function deriveTaskAccessFromToolGroupSlugs(raw) {
|
|
58
|
+
return Array.isArray(raw) && raw.some(function (slug) {
|
|
59
|
+
return typeof slug === 'string' && slug.length > 0;
|
|
60
|
+
});
|
|
89
61
|
};
|
|
90
62
|
|
|
91
63
|
/** Asegura `connectors` normalizados en un agente proveniente del listado de customs. */
|
|
@@ -95,4 +67,4 @@ export var withNormalizedConnectors = function withNormalizedConnectors(agent) {
|
|
|
95
67
|
connectors: connectors
|
|
96
68
|
}) : agent;
|
|
97
69
|
};
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDT1JfQ09OTkVDVE9SX0dST1VQIiwiQ09SX1RPT0xfR1JPVVBfU0xVR1MiLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJ0YXNrQWNjZXNzIiwiY29uY2F0IiwiYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tVGFza0FjY2VzcyIsImdyb3VwIiwic2x1Z3MiLCJub3JtYWxpemVBZ2VudENvbm5lY3RvcnMiLCJyYXciLCJBcnJheSIsImlzQXJyYXkiLCJ1bmRlZmluZWQiLCJwYXJzZWQiLCJmaWx0ZXIiLCJjb25uZWN0b3IiLCJfdHlwZW9mIiwibWFwIiwic2x1ZyIsImxlbmd0aCIsImRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MiLCJzb21lIiwid2l0aE5vcm1hbGl6ZWRDb25uZWN0b3JzIiwiYWdlbnQiLCJjb25uZWN0b3JzIiwiX29iamVjdFNwcmVhZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBZ2VudENvbm5lY3RvciB9IGZyb20gJy4uL3R5cGVzL2FnZW50J1xuXG4vKiogR3J1cG8gZGUgY29uZWN0b3JlcyBDT1IgZGVudHJvIGRlIGBjb25uZWN0b3JzYC4gKi9cbmV4cG9ydCBjb25zdCBDT1JfQ09OTkVDVE9SX0dST1VQID0gJ0NPUidcblxuLyoqIFNsdWdzIGRlIHRvb2wgZ3JvdXBzIENPUiBxdWUgaGFiaWxpdGEgZWwgc3dpdGNoIGRlIFwiYWNjZXNvIGEgdGFyZWFzXCIgZGVsIEFCTS4gKi9cbmV4cG9ydCBjb25zdCBDT1JfVE9PTF9HUk9VUF9TTFVHUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJ3RhcmVhcycsICdwcm95ZWN0b3MnXVxuXG4vKipcbiAqIENvbnN0cnV5ZSBlbCBhcnJheSBgdG9vbF9ncm91cF9zbHVnc2AgcGFyYSBsYSBydXRhIGBQT1NUIGFnZW50cy97aWR9L3Rvb2wtZ3JvdXBzYCBhIHBhcnRpciBkZWwgc3dpdGNoLlxuICogQWN0aXZvIOKGkiBgWyd0YXJlYXMnLCAncHJveWVjdG9zJ11gOyBhcGFnYWRvIOKGkiBgW11gLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0ID0gKHRhc2tBY2Nlc3M6IGJvb2xlYW4pOiBzdHJpbmdbXSA9PlxuICB0YXNrQWNjZXNzID8gWy4uLkNPUl9UT09MX0dST1VQX1NMVUdTXSA6IFtdXG5cbi8qKlxuICogQ29uc3RydXllIGxvcyBgY29ubmVjdG9yc2AgYWdydXBhZG9zIChtaXNtbyBmb3JtYXRvIHF1ZSBkZXZ1ZWx2ZSBlbCBiYWNrIGVuIGxpc3RhZG8vc2VzacOzbilcbiAqIGEgcGFydGlyIGRlbCBzd2l0Y2gsIHBhcmEgaGlkcmF0YXIgZGUgZm9ybWEgb3B0aW1pc3RhIGVsIGFnZW50ZSByZWNpw6luIGNyZWFkby9lZGl0YWRvIHNpbiByZWZldGNoLlxuICovXG5leHBvcnQgY29uc3QgYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tVGFza0FjY2VzcyA9ICh0YXNrQWNjZXNzOiBib29sZWFuKTogQWdlbnRDb25uZWN0b3JbXSA9PiBbXG4gIHsgZ3JvdXA6IENPUl9DT05ORUNUT1JfR1JPVVAsIHNsdWdzOiB0YXNrQWNjZXNzID8gWy4uLkNPUl9UT09MX0dST1VQX1NMVUdTXSA6IFtdIH0sXG4gIHsgZ3JvdXA6ICdNQ1AnLCBzbHVnczogW10gfSxcbl1cblxuLyoqIE5vcm1hbGl6YSBlbCBhcnJheSBgY29ubmVjdG9yc2AgcXVlIGRldnVlbHZlIGxhIEFQSSBkZSBhZ2VudGVzIG8gc2VzaW9uZXMuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzID0gKHJhdzogdW5rbm93bik6IEFnZW50Q29ubmVjdG9yW10gfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBwYXJzZWQgPSByYXdcbiAgICAuZmlsdGVyKChjb25uZWN0b3IpOiBjb25uZWN0b3IgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gISFjb25uZWN0b3IgJiYgdHlwZW9mIGNvbm5lY3RvciA9PT0gJ29iamVjdCcpXG4gICAgLm1hcChjb25uZWN0b3IgPT4ge1xuICAgICAgY29uc3QgZ3JvdXAgPSB0eXBlb2YgY29ubmVjdG9yLmdyb3VwID09PSAnc3RyaW5nJyA/IGNvbm5lY3Rvci5ncm91cCA6ICcnXG4gICAgICBjb25zdCBzbHVncyA9IEFycmF5LmlzQXJyYXkoY29ubmVjdG9yLnNsdWdzKVxuICAgICAgICA/IGNvbm5lY3Rvci5zbHVncy5maWx0ZXIoKHNsdWcpOiBzbHVnIGlzIHN0cmluZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycpXG4gICAgICAgIDogW11cbiAgICAgIHJldHVybiB7IGdyb3VwLCBzbHVncyB9XG4gICAgfSlcbiAgICAuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuZ3JvdXAubGVuZ3RoID4gMClcblxuICByZXR1cm4gcGFyc2VkLmxlbmd0aCA+IDAgPyBwYXJzZWQgOiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBEZXJpdmEgZWwgZXN0YWRvIGRlbCBzd2l0Y2ggZGUgXCJhY2Nlc28gYSB0YXJlYXNcIiBkZXNkZSBgdG9vbF9ncm91cF9zbHVnc2AgZGVsIGRldGFsbGUgZGVsIGFnZW50ZVxuICogKGBHRVQgYWdlbnRzL3tpZH1gKS4gQWN0aXZvIHNpIGVsIGFycmF5IHRyYWUgYWwgbWVub3MgdW4gc2x1Zy5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlcml2ZVRhc2tBY2Nlc3NGcm9tVG9vbEdyb3VwU2x1Z3MgPSAocmF3OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICBBcnJheS5pc0FycmF5KHJhdykgJiYgcmF3LnNvbWUoc2x1ZyA9PiB0eXBlb2Ygc2x1ZyA9PT0gJ3N0cmluZycgJiYgc2x1Zy5sZW5ndGggPiAwKVxuXG4vKiogQXNlZ3VyYSBgY29ubmVjdG9yc2Agbm9ybWFsaXphZG9zIGVuIHVuIGFnZW50ZSBwcm92ZW5pZW50ZSBkZWwgbGlzdGFkbyBkZSBjdXN0b21zLiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhOb3JtYWxpemVkQ29ubmVjdG9ycyA9IDxUIGV4dGVuZHMgeyBjb25uZWN0b3JzPzogdW5rbm93biB9PihhZ2VudDogVCk6IFQgPT4ge1xuICBjb25zdCBjb25uZWN0b3JzID0gbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzKGFnZW50LmNvbm5lY3RvcnMpXG4gIHJldHVybiBjb25uZWN0b3JzID8geyAuLi5hZ2VudCwgY29ubmVjdG9ycyB9IDogYWdlbnRcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUVBO0FBQ0EsT0FBTyxJQUFNQSxtQkFBbUIsR0FBRyxLQUFLOztBQUV4QztBQUNBLE9BQU8sSUFBTUMsb0JBQXVDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDOztBQUU5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsMkJBQTJCLEdBQUcsU0FBOUJBLDJCQUEyQkEsQ0FBSUMsVUFBbUI7RUFBQSxPQUM3REEsVUFBVSxNQUFBQyxNQUFBLENBQU9ILG9CQUFvQixJQUFJLEVBQUU7QUFBQTs7QUFFN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1JLGtDQUFrQyxHQUFHLFNBQXJDQSxrQ0FBa0NBLENBQUlGLFVBQW1CO0VBQUEsT0FBdUIsQ0FDM0Y7SUFBRUcsS0FBSyxFQUFFTixtQkFBbUI7SUFBRU8sS0FBSyxFQUFFSixVQUFVLE1BQUFDLE1BQUEsQ0FBT0gsb0JBQW9CLElBQUk7RUFBRyxDQUFDLEVBQ2xGO0lBQUVLLEtBQUssRUFBRSxLQUFLO0lBQUVDLEtBQUssRUFBRTtFQUFHLENBQUMsQ0FDNUI7QUFBQTs7QUFFRDtBQUNBLE9BQU8sSUFBTUMsd0JBQXdCLEdBQUcsU0FBM0JBLHdCQUF3QkEsQ0FBSUMsR0FBWSxFQUFtQztFQUN0RixJQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixHQUFHLENBQUMsRUFBRSxPQUFPRyxTQUFTO0VBQ3pDLElBQU1DLE1BQU0sR0FBR0osR0FBRyxDQUNmSyxNQUFNLENBQUMsVUFBQ0MsU0FBUztJQUFBLE9BQTJDLENBQUMsQ0FBQ0EsU0FBUyxJQUFJQyxPQUFBLENBQU9ELFNBQVMsTUFBSyxRQUFRO0VBQUEsRUFBQyxDQUN6R0UsR0FBRyxDQUFDLFVBQUFGLFNBQVMsRUFBSTtJQUNoQixJQUFNVCxLQUFLLEdBQUcsT0FBT1MsU0FBUyxDQUFDVCxLQUFLLEtBQUssUUFBUSxHQUFHUyxTQUFTLENBQUNULEtBQUssR0FBRyxFQUFFO0lBQ3hFLElBQU1DLEtBQUssR0FBR0csS0FBSyxDQUFDQyxPQUFPLENBQUNJLFNBQVMsQ0FBQ1IsS0FBSyxDQUFDLEdBQ3hDUSxTQUFTLENBQUNSLEtBQUssQ0FBQ08sTUFBTSxDQUFDLFVBQUNJLElBQUk7TUFBQSxPQUFxQixPQUFPQSxJQUFJLEtBQUssUUFBUTtJQUFBLEVBQUMsR0FDMUUsRUFBRTtJQUNOLE9BQU87TUFBRVosS0FBSyxFQUFMQSxLQUFLO01BQUVDLEtBQUssRUFBTEE7SUFBTSxDQUFDO0VBQ3pCLENBQUMsQ0FBQyxDQUNETyxNQUFNLENBQUMsVUFBQUMsU0FBUztJQUFBLE9BQUlBLFNBQVMsQ0FBQ1QsS0FBSyxDQUFDYSxNQUFNLEdBQUcsQ0FBQztFQUFBLEVBQUM7RUFFbEQsT0FBT04sTUFBTSxDQUFDTSxNQUFNLEdBQUcsQ0FBQyxHQUFHTixNQUFNLEdBQUdELFNBQVM7QUFDL0MsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTVEsa0NBQWtDLEdBQUcsU0FBckNBLGtDQUFrQ0EsQ0FBSVgsR0FBWTtFQUFBLE9BQzdEQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLElBQUlBLEdBQUcsQ0FBQ1ksSUFBSSxDQUFDLFVBQUFILElBQUk7SUFBQSxPQUFJLE9BQU9BLElBQUksS0FBSyxRQUFRLElBQUlBLElBQUksQ0FBQ0MsTUFBTSxHQUFHLENBQUM7RUFBQSxFQUFDO0FBQUE7O0FBRXJGO0FBQ0EsT0FBTyxJQUFNRyx3QkFBd0IsR0FBRyxTQUEzQkEsd0JBQXdCQSxDQUF3Q0MsS0FBUSxFQUFRO0VBQzNGLElBQU1DLFVBQVUsR0FBR2hCLHdCQUF3QixDQUFDZSxLQUFLLENBQUNDLFVBQVUsQ0FBQztFQUM3RCxPQUFPQSxVQUFVLEdBQUFDLGFBQUEsQ0FBQUEsYUFBQSxLQUFRRixLQUFLO0lBQUVDLFVBQVUsRUFBVkE7RUFBVSxLQUFLRCxLQUFLO0FBQ3RELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|