@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.
Files changed (213) hide show
  1. package/lib/components/atoms/ActionableButton.js +6 -1
  2. package/lib/components/atoms/ApprovalBox/ApprovalBox.js +4 -63
  3. package/lib/components/atoms/ApprovalBox/ApprovalBox.styles.js +4 -16
  4. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +1 -12
  5. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -127
  6. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.js +29 -2
  7. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.styles.js +33 -24
  8. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +19 -2
  9. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +20 -4
  10. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +18 -7
  11. package/lib/components/atoms/MAIAInput/MAIAInput.js +42 -243
  12. package/lib/components/atoms/MAIAInput/styles.js +44 -41
  13. package/lib/components/atoms/icons/SkillsNavIcon.js +7 -4
  14. package/lib/components/atoms/icons/index.js +1 -5
  15. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +11 -34
  16. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +3 -5
  17. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +16 -5
  18. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.js +23 -2
  19. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.styles.js +33 -5
  20. package/lib/components/molecules/ChatAIHome/styles.js +11 -2
  21. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.js +31 -20
  22. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +9 -4
  23. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +21 -61
  24. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  25. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +8 -1
  26. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.styles.js +15 -9
  27. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +14 -3
  28. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -2
  29. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +17 -11
  30. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +14 -5
  31. package/lib/components/molecules/ChatAIModal/layout.js +2 -2
  32. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.js +12 -2
  33. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.styles.js +3 -3
  34. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.js +272 -334
  35. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.styles.js +109 -132
  36. package/lib/components/molecules/ChatFooter/ChatFooter.js +63 -57
  37. package/lib/components/molecules/ChatFooter/styles.js +12 -6
  38. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.js +3 -1
  39. package/lib/components/molecules/MessageFeedback/MessageFeedback.js +15 -5
  40. package/lib/components/molecules/Sidebar/Sidebar.js +7 -15
  41. package/lib/components/molecules/Sidebar/Sidebar.layout.styles.js +3 -3
  42. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.js +33 -0
  43. package/lib/components/molecules/UsageBlockedBanner/UsageBlockedBanner.styles.js +47 -0
  44. package/lib/components/molecules/UsageBlockedBanner/index.js +2 -0
  45. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +46 -30
  46. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.js +38 -26
  47. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.js +209 -430
  48. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.styles.js +74 -131
  49. package/lib/components/organisms/ChatAI/ChatAI.js +6 -1
  50. package/lib/constants/config.js +4 -1
  51. package/lib/constants/permissions/utils.js +3 -3
  52. package/lib/hooks/useAgentModel/useCreateAgent.js +6 -6
  53. package/lib/hooks/useAgentModel/useUpdateAgent.js +6 -6
  54. package/lib/hooks/useChatManager/useChatManager.js +58 -38
  55. package/lib/hooks/useContextMentions.js +56 -96
  56. package/lib/hooks/useEntitySearch.js +278 -92
  57. package/lib/hooks/useEvent.js +2 -15
  58. package/lib/hooks/useMentionAllowedTypes.js +25 -9
  59. package/lib/hooks/useMentionPopover.js +33 -9
  60. package/lib/lang/br/index.js +12 -39
  61. package/lib/lang/en/index.js +12 -39
  62. package/lib/lang/es/index.js +13 -40
  63. package/lib/lang/fr/index.js +13 -40
  64. package/lib/services/maia/Agents/setAgentToolGroups.js +2 -2
  65. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  66. package/lib/services/maia/Orchestrator/orchestrator.js +7 -16
  67. package/lib/services/maia/Skills/createSkill.js +1 -1
  68. package/lib/services/maia/Skills/getSkills.js +40 -70
  69. package/lib/services/maia/Skills/updateSkill.js +1 -1
  70. package/lib/services/maia/Usage/getUsage.js +45 -0
  71. package/lib/services/maia/Usage/index.js +6 -0
  72. package/lib/services/maia/index.js +4 -2
  73. package/lib/services/utils/MaiaApiError.js +34 -0
  74. package/lib/services/utils/fetchCOR.js +106 -57
  75. package/lib/services/utils/index.js +2 -1
  76. package/lib/store/faqsStore.types.js +1 -1
  77. package/lib/store/index.js +2 -1
  78. package/lib/store/sessions/sessionStreamManager.js +61 -35
  79. package/lib/store/sessions/sessions.types.js +1 -1
  80. package/lib/store/useChatsStore.js +3 -3
  81. package/lib/store/useUsageStore.js +108 -0
  82. package/lib/types/Chat.js +1 -1
  83. package/lib/types/FrequentlyAskedQuestion.js +1 -1
  84. package/lib/types/agentModal.js +1 -1
  85. package/lib/types/skill.js +1 -1
  86. package/lib/types/usage.js +9 -0
  87. package/lib/utils/contextMentionTriggers.js +5 -2
  88. package/lib/utils/normalizeAgentConnectors.js +16 -44
  89. package/lib/utils/renderContextMentions.js +18 -39
  90. package/package.json +6 -9
  91. package/CHANGELOG.md +0 -727
  92. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +0 -135
  93. package/lib/components/atoms/Checkbox/Checkbox.spec.js +0 -27
  94. package/lib/components/atoms/Chip/Chip.spec.js +0 -32
  95. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +0 -29
  96. package/lib/components/atoms/Fade/Fade.spec.js +0 -31
  97. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +0 -42
  98. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +0 -283
  99. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +0 -68
  100. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.js +0 -208
  101. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +0 -107
  102. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.styles.js +0 -77
  103. package/lib/components/atoms/SkillsDropdown/index.js +0 -2
  104. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +0 -85
  105. package/lib/components/atoms/Switch/Switch.spec.js +0 -41
  106. package/lib/components/atoms/icons/PlusIcon.js +0 -29
  107. package/lib/components/atoms/icons/SkillCreatedByIcon.js +0 -20
  108. package/lib/components/atoms/icons/SkillVisibilityEveryoneIcon.js +0 -23
  109. package/lib/components/atoms/icons/SkillVisibilityOnlyMeIcon.js +0 -23
  110. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +0 -77
  111. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +0 -104
  112. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +0 -291
  113. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +0 -46
  114. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +0 -128
  115. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +0 -105
  116. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +0 -84
  117. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +0 -116
  118. package/lib/components/molecules/Sidebar/Sidebar.spec.js +0 -192
  119. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +0 -335
  120. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +0 -315
  121. package/lib/components/organisms/ChatAI/ChatAI.spec.js +0 -174
  122. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +0 -59
  123. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +0 -79
  124. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +0 -86
  125. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +0 -95
  126. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +0 -96
  127. package/lib/hooks/useCaretPosition.spec.js +0 -58
  128. package/lib/hooks/useDebounce.spec.js +0 -42
  129. package/lib/hooks/useEvent.spec.js +0 -40
  130. package/lib/hooks/useMentionAllowedTypes.spec.js +0 -89
  131. package/lib/hooks/useModal/useModal.spec.js +0 -73
  132. package/lib/hooks/useResize.spec.js +0 -37
  133. package/lib/hooks/useSkillsCatalog.js +0 -66
  134. package/lib/hooks/useSkillsCatalog.spec.js +0 -88
  135. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +0 -33
  136. package/lib/hooks/useT.spec.js +0 -20
  137. package/lib/hooks/useToggle.spec.js +0 -33
  138. package/lib/services/maia/Access/updateAccess.spec.js +0 -108
  139. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +0 -69
  140. package/lib/services/maia/Actions/getSlashCommands.spec.js +0 -74
  141. package/lib/services/maia/Agents/createAgent.spec.js +0 -55
  142. package/lib/services/maia/Agents/deleteAgent.spec.js +0 -42
  143. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +0 -108
  144. package/lib/services/maia/Agents/getAgentById.spec.js +0 -55
  145. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +0 -82
  146. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +0 -45
  147. package/lib/services/maia/Agents/toggleFavorite.spec.js +0 -47
  148. package/lib/services/maia/Agents/updateAgent.spec.js +0 -48
  149. package/lib/services/maia/Chats/deleteChat.spec.js +0 -31
  150. package/lib/services/maia/Chats/getChatMessages.spec.js +0 -150
  151. package/lib/services/maia/Chats/getChatsByUserId.spec.js +0 -149
  152. package/lib/services/maia/Chats/markSessionAsRead.spec.js +0 -30
  153. package/lib/services/maia/Chats/patchChat.spec.js +0 -41
  154. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +0 -28
  155. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +0 -58
  156. package/lib/services/maia/Knowledge/delete.spec.js +0 -45
  157. package/lib/services/maia/Knowledge/download.spec.js +0 -78
  158. package/lib/services/maia/Knowledge/save.spec.js +0 -58
  159. package/lib/services/maia/Orchestrator/orchestrator.spec.js +0 -72
  160. package/lib/services/maia/RecentClients/getRecentClients.spec.js +0 -52
  161. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +0 -83
  162. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +0 -82
  163. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +0 -63
  164. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +0 -82
  165. package/lib/services/maia/Skills/createSkill.spec.js +0 -68
  166. package/lib/services/maia/Skills/deleteSkill.spec.js +0 -42
  167. package/lib/services/maia/Skills/generateSkill.spec.js +0 -48
  168. package/lib/services/maia/Skills/getSkills.spec.js +0 -152
  169. package/lib/services/maia/Skills/updateSkill.spec.js +0 -62
  170. package/lib/services/maia/client.spec.js +0 -56
  171. package/lib/services/utils/fetchCOR.spec.js +0 -211
  172. package/lib/services/utils/getCookie.spec.js +0 -20
  173. package/lib/store/chatsSidebarOptimistic.spec.js +0 -120
  174. package/lib/store/maiaLastChatPersistence.spec.js +0 -22
  175. package/lib/store/maiaPanelSessionPersistence.spec.js +0 -62
  176. package/lib/store/sessions/sessions.types.spec.js +0 -16
  177. package/lib/store/sessions/useSessionsStore.spec.js +0 -135
  178. package/lib/store/useChatsStore.spec.js +0 -619
  179. package/lib/store/useFaqsStore.spec.js +0 -57
  180. package/lib/test/buttonMock.js +0 -22
  181. package/lib/test/fetchPolyfill.js +0 -160
  182. package/lib/test/fileMock.js +0 -2
  183. package/lib/test/global-context.js +0 -49
  184. package/lib/test/iconMock.js +0 -19
  185. package/lib/test/mockFetch.js +0 -49
  186. package/lib/test/portalRoot.js +0 -13
  187. package/lib/test/styleMock.js +0 -2
  188. package/lib/test/test-utils.js +0 -26
  189. package/lib/test/tooltipMock.js +0 -11
  190. package/lib/utils/agentDisplayName.spec.js +0 -44
  191. package/lib/utils/autoApproveStorage.spec.js +0 -25
  192. package/lib/utils/chatInputFiles.spec.js +0 -39
  193. package/lib/utils/contextMentionLabel.spec.js +0 -13
  194. package/lib/utils/contextMentionTriggers.spec.js +0 -38
  195. package/lib/utils/contextMentionTypeLabel.spec.js +0 -14
  196. package/lib/utils/corConnectorMentionTypes.spec.js +0 -23
  197. package/lib/utils/fileDownloadHelper.spec.js +0 -67
  198. package/lib/utils/formatQuickActionMessage.spec.js +0 -27
  199. package/lib/utils/formatUnreadCount.spec.js +0 -12
  200. package/lib/utils/getUnitFileSize.spec.js +0 -18
  201. package/lib/utils/hitlAnalytics.spec.js +0 -100
  202. package/lib/utils/hoursPlannerQuickActionType.spec.js +0 -64
  203. package/lib/utils/mapBackendLang.spec.js +0 -19
  204. package/lib/utils/normalizeAgentConnectors.spec.js +0 -89
  205. package/lib/utils/orchestratorSubagents.spec.js +0 -32
  206. package/lib/utils/reasoningMappers.spec.js +0 -103
  207. package/lib/utils/retryCompletion.spec.js +0 -99
  208. package/lib/utils/skillContentSize.spec.js +0 -13
  209. package/lib/utils/slashCommandMarker.spec.js +0 -43
  210. package/lib/utils/sortManagerHoursHomeFuas.spec.js +0 -51
  211. package/lib/utils/sseStreamContent.spec.js +0 -31
  212. package/lib/utils/streamActivityMessages.spec.js +0 -98
  213. package/lib/utils/validateTrimmedFields.spec.js +0 -26
@@ -10,7 +10,7 @@ import { useTranslation } from 'react-i18next';
10
10
  import { updateAgent } from '../../services/maia/Agents/updateAgent';
11
11
  import { setAgentToolGroups } from '../../services/maia/Agents/setAgentToolGroups';
12
12
  import { useSnackBarManager } from '../useSnackBarManager/useSnackBarManager';
13
- import { buildAgentToolGroupsRequest, buildAgentConnectorsFromCorAccess, DEFAULT_COR_ACCESS } from '../../utils/normalizeAgentConnectors';
13
+ import { buildAgentToolGroupsRequest, buildAgentConnectorsFromTaskAccess } from '../../utils/normalizeAgentConnectors';
14
14
  export var parsedValuesByReq = function parsedValuesByReq(agentValues) {
15
15
  var _agentValues$aiModel, _agentValues$aiModel2;
16
16
  return {
@@ -47,7 +47,7 @@ export var useUpdateAgent = function useUpdateAgent() {
47
47
  };
48
48
  var handleUpdateAgent = /*#__PURE__*/function () {
49
49
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(values) {
50
- var parsedValue, _values$accessibility, _values$accessibility2, _values$general, response, corAccess, agentId, _t, _t2;
50
+ var parsedValue, _values$accessibility, _values$accessibility2, _values$general, response, taskAccess, agentId, _t, _t2;
51
51
  return _regeneratorRuntime.wrap(function (_context) {
52
52
  while (1) switch (_context.prev = _context.next) {
53
53
  case 0:
@@ -72,7 +72,7 @@ export var useUpdateAgent = function useUpdateAgent() {
72
72
  }
73
73
  throw new Error(response.error);
74
74
  case 4:
75
- corAccess = (_values$accessibility = (_values$accessibility2 = values.accessibility) === null || _values$accessibility2 === void 0 ? void 0 : _values$accessibility2.corAccess) !== null && _values$accessibility !== void 0 ? _values$accessibility : DEFAULT_COR_ACCESS;
75
+ taskAccess = (_values$accessibility = (_values$accessibility2 = values.accessibility) === null || _values$accessibility2 === void 0 ? void 0 : _values$accessibility2.taskAccess) !== null && _values$accessibility !== void 0 ? _values$accessibility : true;
76
76
  agentId = (_values$general = values.general) === null || _values$general === void 0 ? void 0 : _values$general.id;
77
77
  if (!agentId) {
78
78
  _context.next = 8;
@@ -80,7 +80,7 @@ export var useUpdateAgent = function useUpdateAgent() {
80
80
  }
81
81
  _context.prev = 5;
82
82
  _context.next = 6;
83
- return setAgentToolGroups(agentId.toString(), buildAgentToolGroupsRequest(corAccess));
83
+ return setAgentToolGroups(agentId.toString(), buildAgentToolGroupsRequest(taskAccess));
84
84
  case 6:
85
85
  _context.next = 8;
86
86
  break;
@@ -91,7 +91,7 @@ export var useUpdateAgent = function useUpdateAgent() {
91
91
  case 8:
92
92
  setError(null);
93
93
  setSuccess(_objectSpread(_objectSpread({}, response), {}, {
94
- connectors: buildAgentConnectorsFromCorAccess(corAccess)
94
+ connectors: buildAgentConnectorsFromTaskAccess(taskAccess)
95
95
  }));
96
96
  setIsLoading(false);
97
97
  isProcessingRef.current = false;
@@ -126,4 +126,4 @@ export var useUpdateAgent = function useUpdateAgent() {
126
126
  resetSuccess: resetSuccess
127
127
  };
128
128
  };
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZVRyYW5zbGF0aW9uIiwidXBkYXRlQWdlbnQiLCJzZXRBZ2VudFRvb2xHcm91cHMiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21Db3JBY2Nlc3MiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJwYXJzZWRWYWx1ZXNCeVJlcSIsImFnZW50VmFsdWVzIiwiX2FnZW50VmFsdWVzJGFpTW9kZWwiLCJfYWdlbnRWYWx1ZXMkYWlNb2RlbDIiLCJpZCIsIm5hbWUiLCJlbW9qaSIsImludHJvZHVjdGlvbiIsImlucHV0X3BsYWNlaG9sZGVyIiwiaW5wdXRQbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwidXNlclByb21wdCIsInByb3ZpZGVyIiwiYWlNb2RlbCIsIm1vZGVsX25hbWUiLCJ1c2VVcGRhdGVBZ2VudCIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInN1Y2Nlc3MiLCJzZXRTdWNjZXNzIiwiX3VzZVNuYWNrQmFyTWFuYWdlciIsImhhbmRsZVNuYWNrYmFyRXJyb3IiLCJpc1Byb2Nlc3NpbmdSZWYiLCJoYW5kbGVTZXRTdWNjZXNzIiwidmFsdWUiLCJoYW5kbGVVcGRhdGVBZ2VudCIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsInZhbHVlcyIsInBhcnNlZFZhbHVlIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MiIsIl92YWx1ZXMkZ2VuZXJhbCIsInJlc3BvbnNlIiwiY29yQWNjZXNzIiwiYWdlbnRJZCIsIl90IiwiX3QyIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJjdXJyZW50IiwiYWJydXB0IiwiZ2VuZXJhbCIsInNlbnQiLCJFcnJvciIsImFjY2Vzc2liaWxpdHkiLCJ0b1N0cmluZyIsImNvbnNvbGUiLCJfb2JqZWN0U3ByZWFkIiwiY29ubmVjdG9ycyIsIm1lc3NhZ2UiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsInJlc2V0U3VjY2VzcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VBZ2VudE1vZGVsL3VzZVVwZGF0ZUFnZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IEFnZW50VXBkYXRlUmVxdWVzdCwgdXBkYXRlQWdlbnQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhL0FnZW50cy91cGRhdGVBZ2VudCdcbmltcG9ydCB7IHNldEFnZW50VG9vbEdyb3VwcyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL3NldEFnZW50VG9vbEdyb3VwcydcbmltcG9ydCB7IHVzZVNuYWNrQmFyTWFuYWdlciB9IGZyb20gJy4uL3VzZVNuYWNrQmFyTWFuYWdlci91c2VTbmFja0Jhck1hbmFnZXInXG5pbXBvcnQge1xuICBidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QsXG4gIGJ1aWxkQWdlbnRDb25uZWN0b3JzRnJvbUNvckFjY2VzcyxcbiAgREVGQVVMVF9DT1JfQUNDRVNTLFxufSBmcm9tICcuLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5cbmV4cG9ydCBjb25zdCBwYXJzZWRWYWx1ZXNCeVJlcSA9IChhZ2VudFZhbHVlczogYW55KTogQWdlbnRVcGRhdGVSZXF1ZXN0ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDogYWdlbnRWYWx1ZXMuaWQsXG4gICAgbmFtZTogYWdlbnRWYWx1ZXMubmFtZSxcbiAgICBlbW9qaTogYWdlbnRWYWx1ZXMuZW1vamkgfHwgJ+KcqCcsXG4gICAgaW50cm9kdWN0aW9uOiBhZ2VudFZhbHVlcy5pbnRyb2R1Y3Rpb24gfHwgJycsXG4gICAgaW5wdXRfcGxhY2Vob2xkZXI6IGFnZW50VmFsdWVzLmlucHV0UGxhY2Vob2xkZXIgfHwgJycsXG4gICAgdXNlcl9wcm9tcHQ6IGFnZW50VmFsdWVzLnVzZXJQcm9tcHQsXG4gICAgcHJvdmlkZXI6IGFnZW50VmFsdWVzLmFpTW9kZWw/LnByb3ZpZGVyLFxuICAgIG1vZGVsX25hbWU6IGFnZW50VmFsdWVzLmFpTW9kZWw/Lm1vZGVsX25hbWUsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVVwZGF0ZUFnZW50ID0gKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2Vycm9yLCBzZXRFcnJvcl0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBbc3VjY2Vzcywgc2V0U3VjY2Vzc10gPSB1c2VTdGF0ZTxhbnk+KGZhbHNlKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG4gIGNvbnN0IGlzUHJvY2Vzc2luZ1JlZiA9IHVzZVJlZihmYWxzZSlcblxuICBjb25zdCBoYW5kbGVTZXRTdWNjZXNzID0gKHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgc2V0U3VjY2Vzcyh2YWx1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVVwZGF0ZUFnZW50ID0gYXN5bmMgKHZhbHVlczogYW55KSA9PiB7XG4gICAgaWYgKGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZWRWYWx1ZTogQWdlbnRVcGRhdGVSZXF1ZXN0ID0gcGFyc2VkVmFsdWVzQnlSZXEodmFsdWVzLmdlbmVyYWwpXG5cbiAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICBzZXRJc0xvYWRpbmcodHJ1ZSlcbiAgICBzZXRTdWNjZXNzKGZhbHNlKVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdXBkYXRlQWdlbnQocGFyc2VkVmFsdWUpXG5cbiAgICAgIGlmIChyZXNwb25zZS5lcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzcG9uc2UuZXJyb3IpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvckFjY2VzcyA9IHZhbHVlcy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTXG4gICAgICBjb25zdCBhZ2VudElkID0gdmFsdWVzLmdlbmVyYWw/LmlkXG4gICAgICBpZiAoYWdlbnRJZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHNldEFnZW50VG9vbEdyb3VwcyhhZ2VudElkLnRvU3RyaW5nKCksIGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdChjb3JBY2Nlc3MpKVxuICAgICAgICB9IGNhdGNoICh0b29sR3JvdXBzRXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZXR0aW5nIGFnZW50IHRvb2wgZ3JvdXBzOicsIHRvb2xHcm91cHNFcnJvcilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgc2V0U3VjY2Vzcyh7IC4uLnJlc3BvbnNlLCBjb25uZWN0b3JzOiBidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21Db3JBY2Nlc3MoY29yQWNjZXNzKSB9KVxuICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6IHQoJ2Vycm9yQWdlbnRDcmVhdGVkJykpXG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBoYW5kbGVTbmFja2JhckVycm9yKHQoJ2Vycm9yQWdlbnRDcmVhdGVkJykpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzZXRTdWNjZXNzID0gKCkgPT4ge1xuICAgIHNldFN1Y2Nlc3MoZmFsc2UpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGhhbmRsZVVwZGF0ZUFnZW50LFxuICAgIGlzTG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBzdWNjZXNzLFxuICAgIGhhbmRsZVNldFN1Y2Nlc3MsXG4gICAgcmVzZXRTdWNjZXNzLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0EsU0FBU0EsUUFBUSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUN4QyxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUE2QkMsV0FBVyxRQUFRLHdDQUF3QztBQUN4RixTQUFTQyxrQkFBa0IsUUFBUSwrQ0FBK0M7QUFDbEYsU0FBU0Msa0JBQWtCLFFBQVEsMENBQTBDO0FBQzdFLFNBQ0VDLDJCQUEyQixFQUMzQkMsaUNBQWlDLEVBQ2pDQyxrQkFBa0IsUUFDYixzQ0FBc0M7QUFFN0MsT0FBTyxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJQyxXQUFnQixFQUF5QjtFQUFBLElBQUFDLG9CQUFBLEVBQUFDLHFCQUFBO0VBQ3pFLE9BQU87SUFDTEMsRUFBRSxFQUFFSCxXQUFXLENBQUNHLEVBQUU7SUFDbEJDLElBQUksRUFBRUosV0FBVyxDQUFDSSxJQUFJO0lBQ3RCQyxLQUFLLEVBQUVMLFdBQVcsQ0FB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
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZVRyYW5zbGF0aW9uIiwidXBkYXRlQWdlbnQiLCJzZXRBZ2VudFRvb2xHcm91cHMiLCJ1c2VTbmFja0Jhck1hbmFnZXIiLCJidWlsZEFnZW50VG9vbEdyb3Vwc1JlcXVlc3QiLCJidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzIiwicGFyc2VkVmFsdWVzQnlSZXEiLCJhZ2VudFZhbHVlcyIsIl9hZ2VudFZhbHVlcyRhaU1vZGVsIiwiX2FnZW50VmFsdWVzJGFpTW9kZWwyIiwiaWQiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsImlucHV0UGxhY2Vob2xkZXIiLCJ1c2VyX3Byb21wdCIsInVzZXJQcm9tcHQiLCJwcm92aWRlciIsImFpTW9kZWwiLCJtb2RlbF9uYW1lIiwidXNlVXBkYXRlQWdlbnQiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJlcnJvciIsInNldEVycm9yIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzdWNjZXNzIiwic2V0U3VjY2VzcyIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiaXNQcm9jZXNzaW5nUmVmIiwiaGFuZGxlU2V0U3VjY2VzcyIsInZhbHVlIiwiaGFuZGxlVXBkYXRlQWdlbnQiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ2YWx1ZXMiLCJwYXJzZWRWYWx1ZSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTIiLCJfdmFsdWVzJGdlbmVyYWwiLCJyZXNwb25zZSIsInRhc2tBY2Nlc3MiLCJhZ2VudElkIiwiX3QiLCJfdDIiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImN1cnJlbnQiLCJhYnJ1cHQiLCJnZW5lcmFsIiwic2VudCIsIkVycm9yIiwiYWNjZXNzaWJpbGl0eSIsInRvU3RyaW5nIiwiY29uc29sZSIsIl9vYmplY3RTcHJlYWQiLCJjb25uZWN0b3JzIiwibWVzc2FnZSIsInN0b3AiLCJfeCIsImFwcGx5IiwiYXJndW1lbnRzIiwicmVzZXRTdWNjZXNzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hvb2tzL3VzZUFnZW50TW9kZWwvdXNlVXBkYXRlQWdlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgQWdlbnRVcGRhdGVSZXF1ZXN0LCB1cGRhdGVBZ2VudCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL3VwZGF0ZUFnZW50J1xuaW1wb3J0IHsgc2V0QWdlbnRUb29sR3JvdXBzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvc2V0QWdlbnRUb29sR3JvdXBzJ1xuaW1wb3J0IHsgdXNlU25hY2tCYXJNYW5hZ2VyIH0gZnJvbSAnLi4vdXNlU25hY2tCYXJNYW5hZ2VyL3VzZVNuYWNrQmFyTWFuYWdlcidcbmltcG9ydCB7IGJ1aWxkQWdlbnRUb29sR3JvdXBzUmVxdWVzdCwgYnVpbGRBZ2VudENvbm5lY3RvcnNGcm9tVGFza0FjY2VzcyB9IGZyb20gJy4uLy4uL3V0aWxzL25vcm1hbGl6ZUFnZW50Q29ubmVjdG9ycydcblxuZXhwb3J0IGNvbnN0IHBhcnNlZFZhbHVlc0J5UmVxID0gKGFnZW50VmFsdWVzOiBhbnkpOiBBZ2VudFVwZGF0ZVJlcXVlc3QgPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBhZ2VudFZhbHVlcy5pZCxcbiAgICBuYW1lOiBhZ2VudFZhbHVlcy5uYW1lLFxuICAgIGVtb2ppOiBhZ2VudFZhbHVlcy5lbW9qaSB8fCAn4pyoJyxcbiAgICBpbnRyb2R1Y3Rpb246IGFnZW50VmFsdWVzLmludHJvZHVjdGlvbiB8fCAnJyxcbiAgICBpbnB1dF9wbGFjZWhvbGRlcjogYWdlbnRWYWx1ZXMuaW5wdXRQbGFjZWhvbGRlciB8fCAnJyxcbiAgICB1c2VyX3Byb21wdDogYWdlbnRWYWx1ZXMudXNlclByb21wdCxcbiAgICBwcm92aWRlcjogYWdlbnRWYWx1ZXMuYWlNb2RlbD8ucHJvdmlkZXIsXG4gICAgbW9kZWxfbmFtZTogYWdlbnRWYWx1ZXMuYWlNb2RlbD8ubW9kZWxfbmFtZSxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlVXBkYXRlQWdlbnQgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzdWNjZXNzLCBzZXRTdWNjZXNzXSA9IHVzZVN0YXRlPGFueT4oZmFsc2UpXG4gIGNvbnN0IHsgaGFuZGxlU25hY2tiYXJFcnJvciB9ID0gdXNlU25hY2tCYXJNYW5hZ2VyKClcbiAgY29uc3QgaXNQcm9jZXNzaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIGNvbnN0IGhhbmRsZVNldFN1Y2Nlc3MgPSAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICBzZXRTdWNjZXNzKHZhbHVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlVXBkYXRlQWdlbnQgPSBhc3luYyAodmFsdWVzOiBhbnkpID0+IHtcbiAgICBpZiAoaXNQcm9jZXNzaW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZFZhbHVlOiBBZ2VudFVwZGF0ZVJlcXVlc3QgPSBwYXJzZWRWYWx1ZXNCeVJlcSh2YWx1ZXMuZ2VuZXJhbClcblxuICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gdHJ1ZVxuICAgIHNldElzTG9hZGluZyh0cnVlKVxuICAgIHNldFN1Y2Nlc3MoZmFsc2UpXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB1cGRhdGVBZ2VudChwYXJzZWRWYWx1ZSlcblxuICAgICAgaWYgKHJlc3BvbnNlLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihyZXNwb25zZS5lcnJvcilcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFza0FjY2VzcyA9IHZhbHVlcy5hY2Nlc3NpYmlsaXR5Py50YXNrQWNjZXNzID8/IHRydWVcbiAgICAgIGNvbnN0IGFnZW50SWQgPSB2YWx1ZXMuZ2VuZXJhbD8uaWRcbiAgICAgIGlmIChhZ2VudElkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgc2V0QWdlbnRUb29sR3JvdXBzKGFnZW50SWQudG9TdHJpbmcoKSwgYnVpbGRBZ2VudFRvb2xHcm91cHNSZXF1ZXN0KHRhc2tBY2Nlc3MpKVxuICAgICAgICB9IGNhdGNoICh0b29sR3JvdXBzRXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZXR0aW5nIGFnZW50IHRvb2wgZ3JvdXBzOicsIHRvb2xHcm91cHNFcnJvcilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgc2V0U3VjY2Vzcyh7IC4uLnJlc3BvbnNlLCBjb25uZWN0b3JzOiBidWlsZEFnZW50Q29ubmVjdG9yc0Zyb21UYXNrQWNjZXNzKHRhc2tBY2Nlc3MpIH0pXG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgICBpc1Byb2Nlc3NpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBzZXRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogdCgnZXJyb3JBZ2VudENyZWF0ZWQnKSlcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgIGlzUHJvY2Vzc2luZ1JlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnZXJyb3JBZ2VudENyZWF0ZWQnKSlcbiAgICB9XG4gIH1cblxuICBjb25zdCByZXNldFN1Y2Nlc3MgPSAoKSA9PiB7XG4gICAgc2V0U3VjY2VzcyhmYWxzZSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaGFuZGxlVXBkYXRlQWdlbnQsXG4gICAgaXNMb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIHN1Y2Nlc3MsXG4gICAgaGFuZGxlU2V0U3VjY2VzcyxcbiAgICByZXNldFN1Y2Nlc3MsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQSxTQUFTQSxRQUFRLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3hDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQTZCQyxXQUFXLFFBQVEsd0NBQXdDO0FBQ3hGLFNBQVNDLGtCQUFrQixRQUFRLCtDQUErQztBQUNsRixTQUFTQyxrQkFBa0IsUUFBUSwwQ0FBMEM7QUFDN0UsU0FBU0MsMkJBQTJCLEVBQUVDLGtDQUFrQyxRQUFRLHNDQUFzQztBQUV0SCxPQUFPLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQUlDLFdBQWdCLEVBQXlCO0VBQUEsSUFBQUMsb0JBQUEsRUFBQUMscUJBQUE7RUFDekUsT0FBTztJQUNMQyxFQUFFLEVBQUVILFdBQVcsQ0FBQ0csRUFBRTtJQUNsQkMsSUFBSSxFQUFFSixXQUFXLENBQUNJLElBQUk7SUFDdEJDLEtBQUssRUFBRUwsV0FBVyxDQUFDSyxLQUFLLElBQUksR0FBRztJQUMvQkMsWUFBWSxFQUFFTixXQUFXLENBQUNNLFlBQVksSUFBSSxFQUFFO0lBQzVDQyxpQkFB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