@projectcor/maia-components 2.47.0 → 2.48.1-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/lib/App.js +44 -19
  2. package/lib/components/atoms/ActionableButton.spec.js +111 -0
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.spec.js +52 -0
  4. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.utils.spec.js +11 -0
  5. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
  6. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +123 -0
  7. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +65 -0
  8. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +66 -0
  9. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.js +5 -51
  10. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +211 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +78 -0
  12. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.js +55 -0
  13. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +41 -0
  14. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +18 -76
  15. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +253 -0
  16. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +80 -0
  17. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.js +31 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +33 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +3 -31
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +25 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.js +4 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +11 -0
  23. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +2 -4
  24. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +77 -0
  25. package/lib/components/atoms/Backdrop/Backdrop.spec.js +28 -0
  26. package/lib/components/atoms/CardMenu/CardMenu.spec.js +56 -0
  27. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +67 -0
  28. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  29. package/lib/components/atoms/Chip/Chip.spec.js +82 -0
  30. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +26 -0
  31. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +88 -0
  32. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  33. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +46 -0
  34. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.js +227 -0
  35. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +77 -0
  36. package/lib/components/atoms/ContextMentionChip/buildChipElement.js +15 -255
  37. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +81 -0
  38. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.js +31 -0
  39. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +48 -0
  40. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +5 -34
  41. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +231 -0
  42. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +107 -0
  43. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +136 -0
  44. package/lib/components/atoms/CopyToClipboard.spec.js +74 -0
  45. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +76 -0
  46. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +86 -0
  47. package/lib/components/atoms/Expand/Expand.spec.js +57 -0
  48. package/lib/components/atoms/Fade/Fade.spec.js +31 -0
  49. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +75 -0
  50. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +104 -0
  51. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
  52. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +91 -0
  53. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
  54. package/lib/components/atoms/HelpButton.spec.js +87 -0
  55. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +96 -0
  56. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +54 -0
  57. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +21 -0
  58. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +20 -0
  59. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +26 -0
  60. package/lib/components/atoms/LoadingText/LoadingText.spec.js +25 -0
  61. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  62. package/lib/components/atoms/MAIAError/MAIAError.spec.js +27 -0
  63. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +12 -0
  64. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +26 -0
  65. package/lib/components/atoms/MAIAInput/MAIAInput.js +8 -12
  66. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +444 -0
  67. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.js +50 -0
  68. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +20 -0
  69. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +8 -60
  70. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +53 -0
  71. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +22 -0
  72. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +64 -0
  73. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +43 -0
  74. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +114 -0
  75. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +51 -0
  76. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +48 -0
  77. package/lib/components/atoms/ModalProject/ModalProject.spec.js +66 -0
  78. package/lib/components/atoms/NextPageLoader.spec.js +37 -0
  79. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +20 -0
  80. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.js +17 -0
  81. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +35 -0
  82. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.js +3 -15
  83. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +47 -0
  84. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +86 -0
  85. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.js +36 -8
  86. package/lib/components/atoms/OptionCorPermission/OptionCorPermission.styles.js +23 -5
  87. package/lib/components/atoms/PrimaryButton.spec.js +42 -0
  88. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +69 -0
  89. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
  90. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
  91. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +41 -24
  92. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +27 -13
  93. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
  94. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +79 -52
  95. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +170 -0
  96. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +9 -11
  97. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +199 -0
  98. package/lib/components/atoms/ReasoningBlock/reasoningLeading.js +6 -1
  99. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +70 -0
  100. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +36 -15
  101. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +120 -0
  102. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +8 -0
  103. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.js +10 -0
  104. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +31 -0
  105. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
  106. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
  107. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +29 -0
  108. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +38 -0
  109. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +16 -0
  110. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  111. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +24 -0
  112. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
  113. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  114. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +52 -0
  115. package/lib/components/atoms/TextArea/TextArea.spec.js +68 -0
  116. package/lib/components/atoms/ThirdButton.spec.js +29 -0
  117. package/lib/components/atoms/VideoModal/VideoModal.spec.js +68 -0
  118. package/lib/components/atoms/WithAppCfg.spec.js +60 -0
  119. package/lib/components/index.js +2 -1
  120. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.js +37 -0
  121. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +53 -0
  122. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +129 -39
  123. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +495 -0
  124. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.js +39 -0
  125. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +57 -0
  126. package/lib/components/molecules/AbmSection/AbmGeneralSection.js +6 -40
  127. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +227 -0
  128. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +86 -0
  129. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +108 -0
  130. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +18 -90
  131. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +254 -0
  132. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.js +17 -0
  133. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +50 -0
  134. package/lib/components/molecules/AbmSection/AbmLoaderFiles.js +5 -15
  135. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +94 -0
  136. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
  137. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
  138. package/lib/components/molecules/AgentInputBlock/index.js +5 -0
  139. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
  140. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
  141. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
  142. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
  143. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
  144. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +66 -0
  145. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  146. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +145 -0
  147. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +204 -0
  148. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +92 -73
  149. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
  150. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +86 -0
  151. package/lib/components/molecules/ChatAIHome/styles.js +85 -78
  152. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  153. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.js +54 -0
  154. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +77 -0
  155. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +39 -57
  156. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +445 -0
  157. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  158. package/lib/components/molecules/ChatAIMessages/newStyles.js +32 -35
  159. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +147 -4
  160. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +471 -0
  161. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +64 -108
  162. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +659 -0
  163. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  164. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.js +5 -0
  165. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +33 -0
  166. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.js +3 -2
  167. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +116 -0
  168. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
  169. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +134 -0
  170. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
  171. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.js +30 -0
  172. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +95 -0
  173. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +76 -86
  174. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +241 -0
  175. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
  176. package/lib/components/molecules/ChatAIModal/constants.spec.js +16 -0
  177. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +22 -0
  178. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +67 -0
  179. package/lib/components/molecules/ChatAIModal/layout.spec.js +72 -0
  180. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +172 -0
  181. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
  182. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +66 -0
  183. package/lib/components/molecules/ChatFooter/ChatFooter.js +10 -4
  184. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +369 -0
  185. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +10 -0
  186. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.js +48 -0
  187. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +82 -0
  188. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +9 -44
  189. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +139 -0
  190. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  191. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  192. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +126 -0
  193. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +115 -0
  194. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +79 -0
  195. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +37 -0
  196. package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
  197. package/lib/components/molecules/Sidebar/Sidebar.spec.js +453 -0
  198. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.js +199 -0
  199. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +391 -0
  200. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +133 -215
  201. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +1204 -0
  202. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +112 -0
  203. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +405 -0
  204. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  205. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +526 -0
  206. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +246 -0
  207. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  208. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  209. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  210. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  211. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +275 -0
  212. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +275 -0
  213. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +195 -0
  214. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +94 -0
  215. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +69 -0
  216. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
  217. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  218. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  219. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  220. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +53 -0
  221. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  222. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  223. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  224. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +49 -0
  225. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +67 -0
  226. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +117 -0
  227. package/lib/components/organisms/SnackBar/Snackbar.spec.js +66 -0
  228. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +19 -0
  229. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +52 -0
  230. package/lib/constants/maiaExternalConnectorsAccess.spec.js +29 -0
  231. package/lib/constants/maiaFeatureAccess.spec.js +30 -0
  232. package/lib/constants/maiaHourAgentAccess.spec.js +30 -0
  233. package/lib/constants/maiaTaskPanelAccess.spec.js +30 -0
  234. package/lib/constants/permissions/clientRoleAccess.spec.js +31 -0
  235. package/lib/constants/permissions/index.js +2 -2
  236. package/lib/constants/permissions/utils.js +4 -1
  237. package/lib/constants/permissions/utils.spec.js +128 -0
  238. package/lib/dev/DevMaiaPage.js +30 -0
  239. package/lib/dev/DevReasoningTimeline.js +68 -37
  240. package/lib/dev/Providers.js +5 -3
  241. package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
  242. package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
  243. package/lib/hooks/useAccessClient/useAccessClient.spec.js +149 -0
  244. package/lib/hooks/useAgentModel/useAgentModel.spec.js +83 -0
  245. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +231 -0
  246. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +183 -0
  247. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +313 -0
  248. package/lib/hooks/useAgentSuggestions.spec.js +89 -0
  249. package/lib/hooks/useCaretPosition.spec.js +58 -0
  250. package/lib/hooks/useChatManager/useChatManager.helpers.js +353 -0
  251. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +506 -0
  252. package/lib/hooks/useChatManager/useChatManager.js +76 -351
  253. package/lib/hooks/useChatManager/useChatManager.spec.js +1261 -0
  254. package/lib/hooks/useChatMessages/useChatMessages.helpers.js +109 -0
  255. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +176 -0
  256. package/lib/hooks/useChatMessages/useChatMessages.js +12 -82
  257. package/lib/hooks/useChatMessages/useChatMessages.spec.js +379 -0
  258. package/lib/hooks/useChats/useChats.spec.js +208 -0
  259. package/lib/hooks/useClientSearch.helpers.js +36 -0
  260. package/lib/hooks/useClientSearch.helpers.spec.js +52 -0
  261. package/lib/hooks/useClientSearch.js +4 -32
  262. package/lib/hooks/useClientSearch.spec.js +86 -0
  263. package/lib/hooks/useContextMentions.helpers.js +152 -0
  264. package/lib/hooks/useContextMentions.helpers.spec.js +143 -0
  265. package/lib/hooks/useContextMentions.js +2 -163
  266. package/lib/hooks/useContextMentions.spec.js +239 -0
  267. package/lib/hooks/useContextMentions.types.js +2 -0
  268. package/lib/hooks/useContextPinPopover.helpers.js +95 -0
  269. package/lib/hooks/useContextPinPopover.helpers.spec.js +115 -0
  270. package/lib/hooks/useContextPinPopover.js +16 -75
  271. package/lib/hooks/useContextPinPopover.spec.js +159 -0
  272. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
  273. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
  274. package/lib/hooks/useDebounce.spec.js +42 -0
  275. package/lib/hooks/useEntitySearch.helpers.js +359 -0
  276. package/lib/hooks/useEntitySearch.helpers.spec.js +321 -0
  277. package/lib/hooks/useEntitySearch.js +38 -391
  278. package/lib/hooks/useEntitySearch.spec.js +443 -0
  279. package/lib/hooks/useEvent.spec.js +45 -0
  280. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +222 -0
  281. package/lib/hooks/useFrequentlyUsedActions.js +60 -22
  282. package/lib/hooks/useFrequentlyUsedActions.spec.js +135 -0
  283. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  284. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  285. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +122 -0
  286. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +148 -0
  287. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +104 -0
  288. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +178 -0
  289. package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
  290. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
  291. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  292. package/lib/hooks/useMentionPopover.helpers.js +41 -0
  293. package/lib/hooks/useMentionPopover.helpers.spec.js +71 -0
  294. package/lib/hooks/useMentionPopover.js +9 -35
  295. package/lib/hooks/useMentionPopover.spec.js +215 -0
  296. package/lib/hooks/useMinimizedPillBottomOffset.helpers.js +47 -0
  297. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +132 -0
  298. package/lib/hooks/useMinimizedPillBottomOffset.js +15 -45
  299. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +89 -0
  300. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
  301. package/lib/hooks/useModal/useModal.spec.js +73 -0
  302. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +192 -0
  303. package/lib/hooks/useProjectSearch.helpers.js +61 -0
  304. package/lib/hooks/useProjectSearch.helpers.spec.js +70 -0
  305. package/lib/hooks/useProjectSearch.js +4 -58
  306. package/lib/hooks/useProjectSearch.spec.js +91 -0
  307. package/lib/hooks/useProjectSummary.spec.js +193 -0
  308. package/lib/hooks/useProjectSummaryConfig.helpers.js +62 -0
  309. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +92 -0
  310. package/lib/hooks/useProjectSummaryConfig.js +14 -52
  311. package/lib/hooks/useProjectSummaryConfig.spec.js +133 -0
  312. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +112 -0
  313. package/lib/hooks/useRecentClientsSearch.helpers.js +33 -0
  314. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +33 -0
  315. package/lib/hooks/useRecentClientsSearch.js +4 -32
  316. package/lib/hooks/useRecentClientsSearch.spec.js +85 -0
  317. package/lib/hooks/useRecentContexts.spec.js +139 -0
  318. package/lib/hooks/useResize.spec.js +37 -0
  319. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  320. package/lib/hooks/useSlashCommands.spec.js +139 -0
  321. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +101 -0
  322. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  323. package/lib/hooks/useStreamResponse.spec.js +199 -0
  324. package/lib/hooks/useT.spec.js +20 -0
  325. package/lib/hooks/useToggle.spec.js +33 -0
  326. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +171 -0
  327. package/lib/index.js +5 -2
  328. package/lib/lang/br/index.js +29 -1
  329. package/lib/lang/en/index.js +29 -1
  330. package/lib/lang/es/index.js +29 -1
  331. package/lib/lang/fr/index.js +29 -1
  332. package/lib/services/maia/Access/updateAccess.spec.js +137 -0
  333. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  334. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +56 -0
  335. package/lib/services/maia/Actions/getSlashCommands.spec.js +91 -0
  336. package/lib/services/maia/Agents/connectors.js +88 -46
  337. package/lib/services/maia/Agents/connectors.spec.js +359 -0
  338. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  339. package/lib/services/maia/Agents/deleteAgent.spec.js +57 -0
  340. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  341. package/lib/services/maia/Agents/getAgentById.spec.js +190 -0
  342. package/lib/services/maia/Agents/getAgentModels.spec.js +190 -0
  343. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +89 -0
  344. package/lib/services/maia/Agents/getAgents.helpers.js +181 -0
  345. package/lib/services/maia/Agents/getAgents.helpers.spec.js +211 -0
  346. package/lib/services/maia/Agents/getAgents.js +78 -242
  347. package/lib/services/maia/Agents/getAgents.spec.js +697 -0
  348. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  349. package/lib/services/maia/Agents/toggleFavorite.spec.js +59 -0
  350. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  351. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  352. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  353. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  354. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  355. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  356. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  357. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  358. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  359. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  360. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  361. package/lib/services/maia/Orchestrator/orchestrator.helpers.js +130 -0
  362. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +153 -0
  363. package/lib/services/maia/Orchestrator/orchestrator.js +38 -121
  364. package/lib/services/maia/Orchestrator/orchestrator.spec.js +181 -0
  365. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  366. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +103 -0
  367. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  368. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  369. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  370. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  371. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  372. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  373. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  374. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  375. package/lib/services/maia/client.spec.js +56 -0
  376. package/lib/services/utils/fetchCOR.spec.js +211 -0
  377. package/lib/services/utils/getCookie.spec.js +20 -0
  378. package/lib/services/utils/mapChatMessages.spec.js +254 -0
  379. package/lib/store/chatsSidebarOptimistic.spec.js +112 -0
  380. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  381. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  382. package/lib/store/sessions/sessionNotificationSound.spec.js +145 -0
  383. package/lib/store/sessions/sessionNotifications.helpers.js +45 -0
  384. package/lib/store/sessions/sessionNotifications.helpers.spec.js +63 -0
  385. package/lib/store/sessions/sessionNotifications.js +35 -41
  386. package/lib/store/sessions/sessionNotifications.spec.js +106 -0
  387. package/lib/store/sessions/sessionStreamManager.js +50 -51
  388. package/lib/store/sessions/sessionStreamManager.spec.js +503 -0
  389. package/lib/store/sessions/sessions.types.spec.js +16 -0
  390. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  391. package/lib/store/useChatsStore.spec.js +619 -0
  392. package/lib/store/useFaqsStore.spec.js +57 -0
  393. package/lib/styles/cascade.js +29 -3
  394. package/lib/styles/transitions.js +3 -1
  395. package/lib/test/mockSseStream.js +121 -0
  396. package/lib/test/streamdownCodeMock.js +6 -0
  397. package/lib/test/streamdownMock.js +12 -0
  398. package/lib/types/agentModal.js +1 -1
  399. package/lib/types/global.d.js +1 -1
  400. package/lib/utils/actionCategoryMap.spec.js +18 -0
  401. package/lib/utils/agentDisplayName.spec.js +44 -0
  402. package/lib/utils/autoApproveStorage.spec.js +25 -0
  403. package/lib/utils/chatInputFiles.spec.js +39 -0
  404. package/lib/utils/contextMentionIcons.spec.js +41 -0
  405. package/lib/utils/contextMentionLabel.spec.js +13 -0
  406. package/lib/utils/contextMentionTriggers.spec.js +38 -0
  407. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  408. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  409. package/lib/utils/entityLinkRender.spec.js +72 -0
  410. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  411. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  412. package/lib/utils/formatUnreadCount.spec.js +12 -0
  413. package/lib/utils/getUnitFileSize.spec.js +18 -0
  414. package/lib/utils/hitlAnalytics.spec.js +100 -0
  415. package/lib/utils/hoursPlannerQuickActionType.js +74 -1
  416. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  417. package/lib/utils/imagePreprocessor.helpers.js +28 -0
  418. package/lib/utils/imagePreprocessor.helpers.spec.js +28 -0
  419. package/lib/utils/imagePreprocessor.js +12 -37
  420. package/lib/utils/imagePreprocessor.spec.js +112 -0
  421. package/lib/utils/maiaPageRoute.js +24 -0
  422. package/lib/utils/maiaPageRoute.spec.js +23 -0
  423. package/lib/utils/mapBackendLang.spec.js +19 -0
  424. package/lib/utils/navigateContextEntity.spec.js +50 -0
  425. package/lib/utils/normalizeAgentConnectors.js +4 -4
  426. package/lib/utils/normalizeAgentConnectors.spec.js +98 -0
  427. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  428. package/lib/utils/reasoningMappers.spec.js +103 -0
  429. package/lib/utils/recentContextsHomeLimit.spec.js +32 -0
  430. package/lib/utils/renderContextMentions.spec.js +158 -0
  431. package/lib/utils/retryCompletion.spec.js +99 -0
  432. package/lib/utils/skillContentSize.spec.js +13 -0
  433. package/lib/utils/slashCommandMarker.spec.js +43 -0
  434. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  435. package/lib/utils/sseStreamContent.spec.js +31 -0
  436. package/lib/utils/streamActivityMessages.js +32 -19
  437. package/lib/utils/streamActivityMessages.spec.js +253 -0
  438. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  439. package/package.json +1 -1
  440. package/README.md +0 -2
@@ -0,0 +1,56 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { fetchMaia } from '../client';
4
+ import { getFrequentlyUsedActions } from './getFrequentlyUsedActions';
5
+ jest.mock('../client', function () {
6
+ return {
7
+ fetchMaia: jest.fn()
8
+ };
9
+ });
10
+ describe('getFrequentlyUsedActions', function () {
11
+ it('requests frequently used actions with section query param', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
12
+ return _regeneratorRuntime.wrap(function (_context2) {
13
+ while (1) switch (_context2.prev = _context2.next) {
14
+ case 0:
15
+ jest.mocked(fetchMaia).mockResolvedValue({
16
+ ok: true,
17
+ json: function () {
18
+ var _json = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
19
+ return _regeneratorRuntime.wrap(function (_context) {
20
+ while (1) switch (_context.prev = _context.next) {
21
+ case 0:
22
+ return _context.abrupt("return", {
23
+ data: [],
24
+ has_more: false,
25
+ next_offset: null
26
+ });
27
+ case 1:
28
+ case "end":
29
+ return _context.stop();
30
+ }
31
+ }, _callee);
32
+ }));
33
+ function json() {
34
+ return _json.apply(this, arguments);
35
+ }
36
+ return json;
37
+ }()
38
+ });
39
+ _context2.next = 1;
40
+ return getFrequentlyUsedActions({
41
+ agentId: 'agent-1',
42
+ section: 'home_collaborator'
43
+ });
44
+ case 1:
45
+ expect(fetchMaia).toHaveBeenCalledWith({
46
+ path: 'agents/agent-1/frequently-used-actions?section=home_collaborator',
47
+ method: 'GET'
48
+ });
49
+ case 2:
50
+ case "end":
51
+ return _context2.stop();
52
+ }
53
+ }, _callee2);
54
+ })));
55
+ });
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJqZXN0IiwibW9jayIsImZuIiwiZGVzY3JpYmUiLCJpdCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlMiIsIndyYXAiLCJfY29udGV4dDIiLCJwcmV2IiwibmV4dCIsIm1vY2tlZCIsIm1vY2tSZXNvbHZlZFZhbHVlIiwib2siLCJqc29uIiwiX2pzb24iLCJfY2FsbGVlIiwiX2NvbnRleHQiLCJhYnJ1cHQiLCJkYXRhIiwiaGFzX21vcmUiLCJuZXh0X29mZnNldCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsImFnZW50SWQiLCJzZWN0aW9uIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJwYXRoIiwibWV0aG9kIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWN0aW9ucy9nZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgeyBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMgfSBmcm9tICcuL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucydcblxuamVzdC5tb2NrKCcuLi9jbGllbnQnLCAoKSA9PiAoe1xuICBmZXRjaE1haWE6IGplc3QuZm4oKSxcbn0pKVxuXG5kZXNjcmliZSgnZ2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zJywgKCkgPT4ge1xuICBpdCgncmVxdWVzdHMgZnJlcXVlbnRseSB1c2VkIGFjdGlvbnMgd2l0aCBzZWN0aW9uIHF1ZXJ5IHBhcmFtJywgYXN5bmMgKCkgPT4ge1xuICAgIGplc3QubW9ja2VkKGZldGNoTWFpYSkubW9ja1Jlc29sdmVkVmFsdWUoe1xuICAgICAgb2s6IHRydWUsXG4gICAgICBqc29uOiBhc3luYyAoKSA9PiAoeyBkYXRhOiBbXSwgaGFzX21vcmU6IGZhbHNlLCBuZXh0X29mZnNldDogbnVsbCB9KSxcbiAgICB9IGFzIFJlc3BvbnNlKVxuXG4gICAgYXdhaXQgZ2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zKHtcbiAgICAgIGFnZW50SWQ6ICdhZ2VudC0xJyxcbiAgICAgIHNlY3Rpb246ICdob21lX2NvbGxhYm9yYXRvcicsXG4gICAgfSlcblxuICAgIGV4cGVjdChmZXRjaE1haWEpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIHBhdGg6ICdhZ2VudHMvYWdlbnQtMS9mcmVxdWVudGx5LXVzZWQtYWN0aW9ucz9zZWN0aW9uPWhvbWVfY29sbGFib3JhdG9yJyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFDckMsU0FBU0Msd0JBQXdCLFFBQVEsNEJBQTRCO0FBRXJFQyxJQUFJLENBQUNDLElBQUksQ0FBQyxXQUFXLEVBQUU7RUFBQSxPQUFPO0lBQzVCSCxTQUFTLEVBQUVFLElBQUksQ0FBQ0UsRUFBRSxDQUFDO0VBQ3JCLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSEMsUUFBUSxDQUFDLDBCQUEwQixFQUFFLFlBQU07RUFDekNDLEVBQUUsQ0FBQywyREFBMkQsZUFBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFFLFNBQUFDLFNBQUE7SUFBQSxPQUFBRixtQkFBQSxDQUFBRyxJQUFBLFdBQUFDLFNBQUE7TUFBQSxrQkFBQUEsU0FBQSxDQUFBQyxJQUFBLEdBQUFELFNBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQzlEWixJQUFJLENBQUNhLE1BQU0sQ0FBQ2YsU0FBUyxDQUFDLENBQUNnQixpQkFBaUIsQ0FBQztZQUN2Q0MsRUFBRSxFQUFFLElBQUk7WUFDUkMsSUFBSTtjQUFBLElBQUFDLEtBQUEsR0FBQVosaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFFLFNBQUFXLFFBQUE7Z0JBQUEsT0FBQVosbUJBQUEsQ0FBQUcsSUFBQSxXQUFBVSxRQUFBO2tCQUFBLGtCQUFBQSxRQUFBLENBQUFSLElBQUEsR0FBQVEsUUFBQSxDQUFBUCxJQUFBO29CQUFBO3NCQUFBLE9BQUFPLFFBQUEsQ0FBQUMsTUFBQSxXQUFhO3dCQUFFQyxJQUFJLEVBQUUsRUFBRTt3QkFBRUMsUUFBUSxFQUFFLEtBQUs7d0JBQUVDLFdBQVcsRUFBRTtzQkFBSyxDQUFDO29CQUFBO29CQUFBO3NCQUFBLE9BQUFKLFFBQUEsQ0FBQUssSUFBQTtrQkFBQTtnQkFBQSxHQUFBTixPQUFBO2NBQUEsQ0FBQztjQUFBLFNBQXBFRixJQUFJQSxDQUFBO2dCQUFBLE9BQUFDLEtBQUEsQ0FBQVEsS0FBQSxPQUFBQyxTQUFBO2NBQUE7Y0FBQSxPQUFKVixJQUFJO1lBQUE7VUFDTixDQUFhLENBQUM7VUFBQU4sU0FBQSxDQUFBRSxJQUFBO1VBQUEsT0FFUmIsd0JBQXdCLENBQUM7WUFDN0I0QixPQUFPLEVBQUUsU0FBUztZQUNsQkMsT0FBTyxFQUFFO1VBQ1gsQ0FBQyxDQUFDO1FBQUE7VUFFRkMsTUFBTSxDQUFDL0IsU0FBUyxDQUFDLENBQUNnQyxvQkFBb0IsQ0FBQztZQUNyQ0MsSUFBSSxFQUFFLGtFQUFrRTtZQUN4RUMsTUFBTSxFQUFFO1VBQ1YsQ0FBQyxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUF0QixTQUFBLENBQUFjLElBQUE7TUFBQTtJQUFBLEdBQUFoQixRQUFBO0VBQUEsQ0FDSCxHQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,91 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { fetchMaia } from '../client';
4
+ import { getSlashCommands } from './getSlashCommands';
5
+ jest.mock('../client', function () {
6
+ return {
7
+ fetchMaia: jest.fn()
8
+ };
9
+ });
10
+ var fetchMaiaMock = fetchMaia;
11
+ describe('getSlashCommands', function () {
12
+ beforeEach(function () {
13
+ fetchMaiaMock.mockReset();
14
+ });
15
+ it('fetches slash commands without lang query when omitted', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
16
+ var payload;
17
+ return _regeneratorRuntime.wrap(function (_context) {
18
+ while (1) switch (_context.prev = _context.next) {
19
+ case 0:
20
+ payload = {
21
+ data: [{
22
+ id: '1',
23
+ name: 'Summarize'
24
+ }]
25
+ };
26
+ fetchMaiaMock.mockResolvedValue({
27
+ ok: true,
28
+ json: jest.fn().mockResolvedValue(payload)
29
+ });
30
+ _context.next = 1;
31
+ return expect(getSlashCommands({
32
+ agentId: 'agent-1'
33
+ })).resolves.toEqual(payload);
34
+ case 1:
35
+ expect(fetchMaiaMock).toHaveBeenCalledWith({
36
+ path: 'agents/agent-1/slash-commands',
37
+ method: 'GET'
38
+ });
39
+ case 2:
40
+ case "end":
41
+ return _context.stop();
42
+ }
43
+ }, _callee);
44
+ })));
45
+ it('appends encoded lang to the path', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
46
+ return _regeneratorRuntime.wrap(function (_context2) {
47
+ while (1) switch (_context2.prev = _context2.next) {
48
+ case 0:
49
+ fetchMaiaMock.mockResolvedValue({
50
+ ok: true,
51
+ json: jest.fn().mockResolvedValue({
52
+ data: []
53
+ })
54
+ });
55
+ _context2.next = 1;
56
+ return getSlashCommands({
57
+ agentId: 'agent-2',
58
+ lang: 'es/ar'
59
+ });
60
+ case 1:
61
+ expect(fetchMaiaMock).toHaveBeenCalledWith({
62
+ path: 'agents/agent-2/slash-commands?lang=es%2Far',
63
+ method: 'GET'
64
+ });
65
+ case 2:
66
+ case "end":
67
+ return _context2.stop();
68
+ }
69
+ }, _callee2);
70
+ })));
71
+ it('throws when the HTTP response is not ok', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
72
+ return _regeneratorRuntime.wrap(function (_context3) {
73
+ while (1) switch (_context3.prev = _context3.next) {
74
+ case 0:
75
+ fetchMaiaMock.mockResolvedValue({
76
+ ok: false,
77
+ status: 503,
78
+ json: jest.fn()
79
+ });
80
+ _context3.next = 1;
81
+ return expect(getSlashCommands({
82
+ agentId: 'agent-3'
83
+ })).rejects.toThrow('HTTP error! status: 503');
84
+ case 1:
85
+ case "end":
86
+ return _context3.stop();
87
+ }
88
+ }, _callee3);
89
+ })));
90
+ });
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRTbGFzaENvbW1hbmRzIiwiamVzdCIsIm1vY2siLCJmbiIsImZldGNoTWFpYU1vY2siLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJtb2NrUmVzZXQiLCJpdCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicGF5bG9hZCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZGF0YSIsImlkIiwibmFtZSIsIm1vY2tSZXNvbHZlZFZhbHVlIiwib2siLCJqc29uIiwiZXhwZWN0IiwiYWdlbnRJZCIsInJlc29sdmVzIiwidG9FcXVhbCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwicGF0aCIsIm1ldGhvZCIsInN0b3AiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsImxhbmciLCJfY2FsbGVlMyIsIl9jb250ZXh0MyIsInN0YXR1cyIsInJlamVjdHMiLCJ0b1Rocm93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWN0aW9ucy9nZXRTbGFzaENvbW1hbmRzLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuaW1wb3J0IHsgZ2V0U2xhc2hDb21tYW5kcyB9IGZyb20gJy4vZ2V0U2xhc2hDb21tYW5kcydcblxuamVzdC5tb2NrKCcuLi9jbGllbnQnLCAoKSA9PiAoe1xuICBmZXRjaE1haWE6IGplc3QuZm4oKSxcbn0pKVxuXG5jb25zdCBmZXRjaE1haWFNb2NrID0gZmV0Y2hNYWlhIGFzIGplc3QuTW9ja2VkRnVuY3Rpb248dHlwZW9mIGZldGNoTWFpYT5cblxuZGVzY3JpYmUoJ2dldFNsYXNoQ29tbWFuZHMnLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGZldGNoTWFpYU1vY2subW9ja1Jlc2V0KClcbiAgfSlcblxuICBpdCgnZmV0Y2hlcyBzbGFzaCBjb21tYW5kcyB3aXRob3V0IGxhbmcgcXVlcnkgd2hlbiBvbWl0dGVkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBheWxvYWQgPSB7IGRhdGE6IFt7IGlkOiAnMScsIG5hbWU6ICdTdW1tYXJpemUnIH1dIH1cbiAgICBmZXRjaE1haWFNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKHtcbiAgICAgIG9rOiB0cnVlLFxuICAgICAganNvbjogamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHBheWxvYWQpLFxuICAgIH0gYXMgUmVzcG9uc2UpXG5cbiAgICBhd2FpdCBleHBlY3QoZ2V0U2xhc2hDb21tYW5kcyh7IGFnZW50SWQ6ICdhZ2VudC0xJyB9KSkucmVzb2x2ZXMudG9FcXVhbChwYXlsb2FkKVxuICAgIGV4cGVjdChmZXRjaE1haWFNb2NrKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBwYXRoOiAnYWdlbnRzL2FnZW50LTEvc2xhc2gtY29tbWFuZHMnLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KVxuICB9KVxuXG4gIGl0KCdhcHBlbmRzIGVuY29kZWQgbGFuZyB0byB0aGUgcGF0aCcsIGFzeW5jICgpID0+IHtcbiAgICBmZXRjaE1haWFNb2NrLm1vY2tSZXNvbHZlZFZhbHVlKHtcbiAgICAgIG9rOiB0cnVlLFxuICAgICAganNvbjogamVzdC5mbigpLm1vY2tSZXNvbHZlZFZhbHVlKHsgZGF0YTogW10gfSksXG4gICAgfSBhcyBSZXNwb25zZSlcblxuICAgIGF3YWl0IGdldFNsYXNoQ29tbWFuZHMoeyBhZ2VudElkOiAnYWdlbnQtMicsIGxhbmc6ICdlcy9hcicgfSlcblxuICAgIGV4cGVjdChmZXRjaE1haWFNb2NrKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBwYXRoOiAnYWdlbnRzL2FnZW50LTIvc2xhc2gtY29tbWFuZHM/bGFuZz1lcyUyRmFyJyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgfSlcbiAgfSlcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIEhUVFAgcmVzcG9uc2UgaXMgbm90IG9rJywgYXN5bmMgKCkgPT4ge1xuICAgIGZldGNoTWFpYU1vY2subW9ja1Jlc29sdmVkVmFsdWUoe1xuICAgICAgb2s6IGZhbHNlLFxuICAgICAgc3RhdHVzOiA1MDMsXG4gICAgICBqc29uOiBqZXN0LmZuKCksXG4gICAgfSBhcyBSZXNwb25zZSlcblxuICAgIGF3YWl0IGV4cGVjdChnZXRTbGFzaENvbW1hbmRzKHsgYWdlbnRJZDogJ2FnZW50LTMnIH0pKS5yZWplY3RzLnRvVGhyb3coJ0hUVFAgZXJyb3IhIHN0YXR1czogNTAzJylcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFDckMsU0FBU0MsZ0JBQWdCLFFBQVEsb0JBQW9CO0FBRXJEQyxJQUFJLENBQUNDLElBQUksQ0FBQyxXQUFXLEVBQUU7RUFBQSxPQUFPO0lBQzVCSCxTQUFTLEVBQUVFLElBQUksQ0FBQ0UsRUFBRSxDQUFDO0VBQ3JCLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSCxJQUFNQyxhQUFhLEdBQUdMLFNBQWtEO0FBRXhFTSxRQUFRLENBQUMsa0JBQWtCLEVBQUUsWUFBTTtFQUNqQ0MsVUFBVSxDQUFDLFlBQU07SUFDZkYsYUFBYSxDQUFDRyxTQUFTLENBQUMsQ0FBQztFQUMzQixDQUFDLENBQUM7RUFFRkMsRUFBRSxDQUFDLHdEQUF3RCxlQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUUsU0FBQUMsUUFBQTtJQUFBLElBQUFDLE9BQUE7SUFBQSxPQUFBSCxtQkFBQSxDQUFBSSxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQ3JESixPQUFPLEdBQUc7WUFBRUssSUFBSSxFQUFFLENBQUM7Y0FBRUMsRUFBRSxFQUFFLEdBQUc7Y0FBRUMsSUFBSSxFQUFFO1lBQVksQ0FBQztVQUFFLENBQUM7VUFDMURoQixhQUFhLENBQUNpQixpQkFB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
@@ -64,13 +64,55 @@ export var getAgentConnectors = /*#__PURE__*/function () {
64
64
  return _ref2.apply(this, arguments);
65
65
  };
66
66
  }();
67
- export var saveAgentConnectors = /*#__PURE__*/function () {
68
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(agentId, connectorSlugs) {
69
- var response;
67
+
68
+ /** Fetch a fresh OAuth URL on click: its state expires after ten minutes. */
69
+ export var authorizeConnector = /*#__PURE__*/function () {
70
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(slug) {
71
+ var response, payload;
70
72
  return _regeneratorRuntime.wrap(function (_context3) {
71
73
  while (1) switch (_context3.prev = _context3.next) {
72
74
  case 0:
73
75
  _context3.next = 1;
76
+ return fetchMaia({
77
+ path: "connectors/".concat(encodeURIComponent(slug), "/authorize"),
78
+ method: 'POST'
79
+ });
80
+ case 1:
81
+ response = _context3.sent;
82
+ if (response.ok) {
83
+ _context3.next = 2;
84
+ break;
85
+ }
86
+ throw new Error('Failed to start connector authorization');
87
+ case 2:
88
+ _context3.next = 3;
89
+ return response.json();
90
+ case 3:
91
+ payload = _context3.sent;
92
+ if (payload.auth_url) {
93
+ _context3.next = 4;
94
+ break;
95
+ }
96
+ throw new Error('Connector authorization URL is missing');
97
+ case 4:
98
+ return _context3.abrupt("return", payload.auth_url);
99
+ case 5:
100
+ case "end":
101
+ return _context3.stop();
102
+ }
103
+ }, _callee3);
104
+ }));
105
+ return function authorizeConnector(_x2) {
106
+ return _ref3.apply(this, arguments);
107
+ };
108
+ }();
109
+ export var saveAgentConnectors = /*#__PURE__*/function () {
110
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(agentId, connectorSlugs) {
111
+ var response;
112
+ return _regeneratorRuntime.wrap(function (_context4) {
113
+ while (1) switch (_context4.prev = _context4.next) {
114
+ case 0:
115
+ _context4.next = 1;
74
116
  return fetchMaia({
75
117
  path: "agents/".concat(agentId, "/connectors"),
76
118
  method: 'POST',
@@ -79,22 +121,22 @@ export var saveAgentConnectors = /*#__PURE__*/function () {
79
121
  }
80
122
  });
81
123
  case 1:
82
- response = _context3.sent;
124
+ response = _context4.sent;
83
125
  if (response.ok) {
84
- _context3.next = 2;
126
+ _context4.next = 2;
85
127
  break;
86
128
  }
87
129
  throw new Error('Failed to save agent connectors');
88
130
  case 2:
89
- return _context3.abrupt("return", response.json());
131
+ return _context4.abrupt("return", response.json());
90
132
  case 3:
91
133
  case "end":
92
- return _context3.stop();
134
+ return _context4.stop();
93
135
  }
94
- }, _callee3);
136
+ }, _callee4);
95
137
  }));
96
- return function saveAgentConnectors(_x2, _x3) {
97
- return _ref3.apply(this, arguments);
138
+ return function saveAgentConnectors(_x3, _x4) {
139
+ return _ref4.apply(this, arguments);
98
140
  };
99
141
  }();
100
142
  export var openConnectorAuthorizationWindows = function openConnectorAuthorizationWindows(authorizations, popupWindow) {
@@ -128,47 +170,47 @@ var isConnectorOAuthMessage = function isConnectorOAuthMessage(data) {
128
170
 
129
171
  /** Waits until the OAuth popup finishes, then confirms the company token via GET. */
130
172
  export var waitForConnectorAuthorization = /*#__PURE__*/function () {
131
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref4) {
132
- var agentId, slugs, popup, _ref4$timeoutMs, timeoutMs, pending, oauthError, authorizedSlugs;
133
- return _regeneratorRuntime.wrap(function (_context6) {
134
- while (1) switch (_context6.prev = _context6.next) {
173
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref5) {
174
+ var agentId, slugs, popup, _ref5$timeoutMs, timeoutMs, pending, oauthError, authorizedSlugs;
175
+ return _regeneratorRuntime.wrap(function (_context7) {
176
+ while (1) switch (_context7.prev = _context7.next) {
135
177
  case 0:
136
- agentId = _ref4.agentId, slugs = _ref4.slugs, popup = _ref4.popup, _ref4$timeoutMs = _ref4.timeoutMs, timeoutMs = _ref4$timeoutMs === void 0 ? 180000 : _ref4$timeoutMs;
178
+ agentId = _ref5.agentId, slugs = _ref5.slugs, popup = _ref5.popup, _ref5$timeoutMs = _ref5.timeoutMs, timeoutMs = _ref5$timeoutMs === void 0 ? 180000 : _ref5$timeoutMs;
137
179
  if (slugs.length) {
138
- _context6.next = 1;
180
+ _context7.next = 1;
139
181
  break;
140
182
  }
141
- return _context6.abrupt("return", {
183
+ return _context7.abrupt("return", {
142
184
  authorized: []
143
185
  });
144
186
  case 1:
145
187
  pending = new Set(slugs);
146
188
  authorizedSlugs = /*#__PURE__*/function () {
147
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
189
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
148
190
  var connectors;
149
- return _regeneratorRuntime.wrap(function (_context4) {
150
- while (1) switch (_context4.prev = _context4.next) {
191
+ return _regeneratorRuntime.wrap(function (_context5) {
192
+ while (1) switch (_context5.prev = _context5.next) {
151
193
  case 0:
152
- _context4.next = 1;
194
+ _context5.next = 1;
153
195
  return getAgentConnectors(agentId);
154
196
  case 1:
155
- connectors = _context4.sent;
156
- return _context4.abrupt("return", connectors.filter(function (connector) {
197
+ connectors = _context5.sent;
198
+ return _context5.abrupt("return", connectors.filter(function (connector) {
157
199
  return pending.has(connector.slug) && connector.user_authorized;
158
200
  }).map(function (connector) {
159
201
  return connector.slug;
160
202
  }));
161
203
  case 2:
162
204
  case "end":
163
- return _context4.stop();
205
+ return _context5.stop();
164
206
  }
165
- }, _callee4);
207
+ }, _callee5);
166
208
  }));
167
209
  return function authorizedSlugs() {
168
- return _ref6.apply(this, arguments);
210
+ return _ref7.apply(this, arguments);
169
211
  };
170
212
  }();
171
- return _context6.abrupt("return", new Promise(function (resolve) {
213
+ return _context7.abrupt("return", new Promise(function (resolve) {
172
214
  var finished = false;
173
215
  // Declarados antes porque `finish` los limpia y a su vez los tres lo invocan.
174
216
  // Para cuando alguno puede disparar, el bloque de abajo ya los asignó.
@@ -176,47 +218,47 @@ export var waitForConnectorAuthorization = /*#__PURE__*/function () {
176
218
  var poll;
177
219
  var timer;
178
220
  var finish = /*#__PURE__*/function () {
179
- var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
221
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
180
222
  var authorized, _t;
181
- return _regeneratorRuntime.wrap(function (_context5) {
182
- while (1) switch (_context5.prev = _context5.next) {
223
+ return _regeneratorRuntime.wrap(function (_context6) {
224
+ while (1) switch (_context6.prev = _context6.next) {
183
225
  case 0:
184
226
  if (!finished) {
185
- _context5.next = 1;
227
+ _context6.next = 1;
186
228
  break;
187
229
  }
188
- return _context5.abrupt("return");
230
+ return _context6.abrupt("return");
189
231
  case 1:
190
232
  finished = true;
191
233
  window.removeEventListener('message', onMessage);
192
234
  window.clearInterval(poll);
193
235
  window.clearTimeout(timer);
194
- _context5.prev = 2;
195
- _context5.next = 3;
236
+ _context6.prev = 2;
237
+ _context6.next = 3;
196
238
  return authorizedSlugs();
197
239
  case 3:
198
- authorized = _context5.sent;
240
+ authorized = _context6.sent;
199
241
  resolve({
200
242
  authorized: authorized,
201
243
  error: authorized.length ? undefined : oauthError
202
244
  });
203
- _context5.next = 5;
245
+ _context6.next = 5;
204
246
  break;
205
247
  case 4:
206
- _context5.prev = 4;
207
- _t = _context5["catch"](2);
248
+ _context6.prev = 4;
249
+ _t = _context6["catch"](2);
208
250
  resolve({
209
251
  authorized: [],
210
252
  error: oauthError
211
253
  });
212
254
  case 5:
213
255
  case "end":
214
- return _context5.stop();
256
+ return _context6.stop();
215
257
  }
216
- }, _callee5, null, [[2, 4]]);
258
+ }, _callee6, null, [[2, 4]]);
217
259
  }));
218
260
  return function finish() {
219
- return _ref7.apply(this, arguments);
261
+ return _ref8.apply(this, arguments);
220
262
  };
221
263
  }();
222
264
  onMessage = function onMessage(event) {
@@ -241,12 +283,12 @@ export var waitForConnectorAuthorization = /*#__PURE__*/function () {
241
283
  }));
242
284
  case 2:
243
285
  case "end":
244
- return _context6.stop();
286
+ return _context7.stop();
245
287
  }
246
- }, _callee6);
288
+ }, _callee7);
247
289
  }));
248
- return function waitForConnectorAuthorization(_x4) {
249
- return _ref5.apply(this, arguments);
290
+ return function waitForConnectorAuthorization(_x5) {
291
+ return _ref6.apply(this, arguments);
250
292
  };
251
293
  }();
252
294
  export var connectorAuthErrorMessage = function connectorAuthErrorMessage(error) {
@@ -255,4 +297,4 @@ export var connectorAuthErrorMessage = function connectorAuthErrorMessage(error)
255
297
  }
256
298
  return "".concat(error.name, ": ").concat(error.message);
257
299
  };
258
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRBdmFpbGFibGVDb25uZWN0b3JzIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJzZW50Iiwib2siLCJFcnJvciIsImFicnVwdCIsImpzb24iLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJnZXRBZ2VudENvbm5lY3RvcnMiLCJfcmVmMiIsIl9jYWxsZWUyIiwiYWdlbnRJZCIsIl9jb250ZXh0MiIsImNvbmNhdCIsIl94Iiwic2F2ZUFnZW50Q29ubmVjdG9ycyIsIl9yZWYzIiwiX2NhbGxlZTMiLCJjb25uZWN0b3JTbHVncyIsIl9jb250ZXh0MyIsImJvZHkiLCJjb25uZWN0b3Jfc2x1Z3MiLCJfeDIiLCJfeDMiLCJvcGVuQ29ubmVjdG9yQXV0aG9yaXphdGlvbldpbmRvd3MiLCJhdXRob3JpemF0aW9ucyIsInBvcHVwV2luZG93IiwibGVuZ3RoIiwiY2xvc2VkIiwiY2xvc2UiLCJfYXV0aG9yaXphdGlvbnMiLCJfdG9BcnJheSIsImZpcnN0QXV0aG9yaXphdGlvbiIsInJlbWFpbmluZ0F1dGhvcml6YXRpb25zIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJzbGljZSIsIm9wZW5lZCIsImxvY2F0aW9uIiwiaHJlZiIsImF1dGhfdXJsIiwid2luZG93Iiwib3BlbiIsImZvckVhY2giLCJhdXRob3JpemF0aW9uIiwiaXNDb25uZWN0b3JPQXV0aE1lc3NhZ2UiLCJkYXRhIiwiX3R5cGVvZiIsInR5cGUiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsIl9yZWY1IiwiX2NhbGxlZTYiLCJfcmVmNCIsInNsdWdzIiwicG9wdXAiLCJfcmVmNCR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJwZW5kaW5nIiwib2F1dGhFcnJvciIsImF1dGhvcml6ZWRTbHVncyIsIl9jb250ZXh0NiIsImF1dGhvcml6ZWQiLCJTZXQiLCJfcmVmNiIsIl9jYWxsZWU0IiwiY29ubmVjdG9ycyIsIl9jb250ZXh0NCIsImZpbHRlciIsImNvbm5lY3RvciIsImhhcyIsInNsdWciLCJ1c2VyX2F1dGhvcml6ZWQiLCJtYXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsImZpbmlzaGVkIiwib25NZXNzYWdlIiwicG9sbCIsInRpbWVyIiwiZmluaXNoIiwiX3JlZjciLCJfY2FsbGVlNSIsIl90IiwiX2NvbnRleHQ1IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJlcnJvciIsInVuZGVmaW5lZCIsImV2ZW50Iiwic3RhdHVzIiwibWVzc2FnZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJzZXRJbnRlcnZhbCIsInNldFRpbWVvdXQiLCJfeDQiLCJjb25uZWN0b3JBdXRoRXJyb3JNZXNzYWdlIiwibmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9tYWlhL0FnZW50cy9jb25uZWN0b3JzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZldGNoTWFpYSB9IGZyb20gJy4uL2NsaWVudCdcblxuZXhwb3J0IHR5cGUgQ2F0YWxvZ0Nvbm5lY3RvciA9IHtcbiAgaWQ6IG51bWJlclxuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIGljb25fdXJsPzogc3RyaW5nXG4gIHJlcXVpcmVzX2F1dGg6IGJvb2xlYW5cbiAgaXNfYWN0aXZlOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEFnZW50Q29ubmVjdG9yID0gQ2F0YWxvZ0Nvbm5lY3RvciAmIHtcbiAgZW5hYmxlZF9mb3JfYWdlbnQ6IGJvb2xlYW5cbiAgdXNlcl9hdXRob3JpemVkOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGF1dGhfdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQXV0aEVycm9yID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTYXZlQWdlbnRDb25uZWN0b3JzUmVzcG9uc2UgPSB7XG4gIGFnZW50X2lkOiBzdHJpbmdcbiAgY29ubmVjdG9yX3NsdWdzOiBzdHJpbmdbXVxuICByZXF1aXJlc19hdXRoPzogUGVuZGluZ0Nvbm5lY3RvckF1dGhvcml6YXRpb25bXVxuICBhdXRoX2Vycm9ycz86IENvbm5lY3RvckF1dGhFcnJvcltdXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBdmFpbGFibGVDb25uZWN0b3JzID0gYXN5bmMgKCk6IFByb21pc2U8Q2F0YWxvZ0Nvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnY29ubmVjdG9ycycsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxBZ2VudENvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgYWdlbnRzLyR7YWdlbnRJZH0vY29ubmVjdG9yc2AsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWdlbnQgY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbmV4cG9ydCBjb25zdCBzYXZlQWdlbnRDb25uZWN0b3JzID0gYXN5bmMgKFxuICBhZ2VudElkOiBzdHJpbmcsXG4gIGNvbm5lY3RvclNsdWdzOiBzdHJpbmdbXVxuKTogUHJvbWlzZTxTYXZlQWdlbnRDb25uZWN0b3JzUmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaE1haWEoe1xuICAgIHBhdGg6IGBhZ2VudHMvJHthZ2VudElkfS9jb25uZWN0b3JzYCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICBib2R5OiB7XG4gICAgICBjb25uZWN0b3Jfc2x1Z3M6IGNvbm5lY3RvclNsdWdzLFxuICAgIH0sXG4gIH0pXG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHNhdmUgYWdlbnQgY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbmV4cG9ydCBjb25zdCBvcGVuQ29ubmVjdG9yQXV0aG9yaXphdGlvbldpbmRvd3MgPSAoXG4gIGF1dGhvcml6YXRpb25zOiBQZW5kaW5nQ29ubmVjdG9yQXV0aG9yaXphdGlvbltdLFxuICBwb3B1cFdpbmRvdz86IFdpbmRvdyB8IG51bGxcbik6IFdpbmRvdyB8IG51bGwgPT4ge1xuICBpZiAoIWF1dGhvcml6YXRpb25zLmxlbmd0aCkge1xuICAgIGlmIChwb3B1cFdpbmRvdyAmJiAhcG9wdXBXaW5kb3cuY2xvc2VkKSB7XG4gICAgICBwb3B1cFdpbmRvdy5jbG9zZSgpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBbZmlyc3RBdXRob3JpemF0aW9uLCAuLi5yZW1haW5pbmdBdXRob3JpemF0aW9uc10gPSBhdXRob3JpemF0aW9uc1xuXG4gIGxldCBvcGVuZWQ6IFdpbmRvdyB8IG51bGwgPSBudWxsXG4gIGlmIChwb3B1cFdpbmRvdyAmJiAhcG9wdXBXaW5kb3cuY2xvc2VkKSB7XG4gICAgLy8gTmF2ZWdhciBlbCBwb3B1cCBxdWUgeWEgYWJyaW1vcyBlbiBlbCBjbGljayBkZWwgdXN1YXJpbzogc2kgbG8gYWJyacOpcmFtb3NcbiAgICAvLyBhY8OhLCBlbCBicm93c2VyIGxvIGJsb3F1ZWFyw61hIHBvciBubyB2ZW5pciBkZSB1biBnZXN0by5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cbiAgICBwb3B1cFdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZmlyc3RBdXRob3JpemF0aW9uLmF1dGhfdXJsXG4gICAgb3BlbmVkID0gcG9wdXBXaW5kb3dcbiAgfSBlbHNlIHtcbiAgICBvcGVuZWQgPSB3aW5kb3cub3BlbihmaXJzdEF1dGhvcml6YXRpb24uYXV0aF91cmwsICdfYmxhbmsnLCAncG9wdXA9eWVzLHdpZHRoPTU2MCxoZWlnaHQ9NzYwJylcbiAgfVxuXG4gIHJlbWFpbmluZ0F1dGhvcml6YXRpb25zLmZvckVhY2goYXV0aG9yaXphdGlvbiA9PiB7XG4gICAgd2luZG93Lm9wZW4oYXV0aG9yaXphdGlvbi5hdXRoX3VybCwgJ19ibGFuaycsICdwb3B1cD15ZXMsd2lkdGg9NTYwLGhlaWdodD03NjAnKVxuICB9KVxuXG4gIHJldHVybiBvcGVuZWRcbn1cblxuY29uc3QgaXNDb25uZWN0b3JPQXV0aE1lc3NhZ2UgPSAoXG4gIGRhdGE6IHVua25vd25cbik6IGRhdGEgaXMgeyB0eXBlOiBzdHJpbmc7IHN0YXR1czogc3RyaW5nOyBzbHVnPzogc3RyaW5nOyBtZXNzYWdlPzogc3RyaW5nIH0gPT5cbiAgISFkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiAndHlwZScgaW4gZGF0YSAmJiAoZGF0YSBhcyB7IHR5cGU6IHN0cmluZyB9KS50eXBlID09PSAnY29ubmVjdG9yLW9hdXRoJ1xuXG4vKiogV2FpdHMgdW50aWwgdGhlIE9BdXRoIHBvcHVwIGZpbmlzaGVzLCB0aGVuIGNvbmZpcm1zIHRoZSBjb21wYW55IHRva2VuIHZpYSBHRVQuICovXG5leHBvcnQgY29uc3Qgd2FpdEZvckNvbm5lY3RvckF1dGhvcml6YXRpb24gPSBhc3luYyAoe1xuICBhZ2VudElkLFxuICBzbHVncyxcbiAgcG9wdXAsXG4gIHRpbWVvdXRNcyA9IDE4MF8wMDAsXG59OiB7XG4gIGFnZW50SWQ6IHN0cmluZ1xuICBzbHVnczogc3RyaW5nW11cbiAgcG9wdXA/OiBXaW5kb3cgfCBudWxsXG4gIHRpbWVvdXRNcz86IG51bWJlclxufSk6IFByb21pc2U8eyBhdXRob3JpemVkOiBzdHJpbmdbXTsgZXJyb3I/OiBzdHJpbmcgfT4gPT4ge1xuICBpZiAoIXNsdWdzLmxlbmd0aCkge1xuICAgIHJldHVybiB7IGF1dGhvcml6ZWQ6IFtdIH1cbiAgfVxuXG4gIGNvbnN0IHBlbmRpbmcgPSBuZXcgU2V0KHNsdWdzKVxuICBsZXQgb2F1dGhFcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgYXV0aG9yaXplZFNsdWdzID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNvbm5lY3RvcnMgPSBhd2FpdCBnZXRBZ2VudENvbm5lY3RvcnMoYWdlbnRJZClcbiAgICByZXR1cm4gY29ubmVjdG9yc1xuICAgICAgLmZpbHRlcihjb25uZWN0b3IgPT4gcGVuZGluZy5oYXMoY29ubmVjdG9yLnNsdWcpICYmIGNvbm5lY3Rvci51c2VyX2F1dGhvcml6ZWQpXG4gICAgICAubWFwKGNvbm5lY3RvciA9PiBjb25uZWN0b3Iuc2x1ZylcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBsZXQgZmluaXNoZWQgPSBmYWxzZVxuICAgIC8vIERlY2xhcmFkb3MgYW50ZXMgcG9ycXVlIGBmaW5pc2hgIGxvcyBsaW1waWEgeSBhIHN1IHZleiBsb3MgdHJlcyBsbyBpbnZvY2FuLlxuICAgIC8vIFBhcmEgY3VhbmRvIGFsZ3VubyBwdWVkZSBkaXNwYXJhciwgZWwgYmxvcXVlIGRlIGFiYWpvIHlhIGxvcyBhc2lnbsOzLlxuICAgIGxldCBvbk1lc3NhZ2U6IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB2b2lkXG4gICAgbGV0IHBvbGw6IG51bWJlclxuICAgIGxldCB0aW1lcjogbnVtYmVyXG5cbiAgICBjb25zdCBmaW5pc2ggPSBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoZmluaXNoZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBmaW5pc2hlZCA9IHRydWVcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKVxuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwocG9sbClcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZXIpXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBhdXRob3JpemVkID0gYXdhaXQgYXV0aG9yaXplZFNsdWdzKClcbiAgICAgICAgcmVzb2x2ZSh7IGF1dGhvcml6ZWQsIGVycm9yOiBhdXRob3JpemVkLmxlbmd0aCA/IHVuZGVmaW5lZCA6IG9hdXRoRXJyb3IgfSlcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXNvbHZlKHsgYXV0aG9yaXplZDogW10sIGVycm9yOiBvYXV0aEVycm9yIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgb25NZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICAgIGlmICghaXNDb25uZWN0b3JPQXV0aE1lc3NhZ2UoZXZlbnQuZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAoZXZlbnQuZGF0YS5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgICAgb2F1dGhFcnJvciA9IGV2ZW50LmRhdGEubWVzc2FnZVxuICAgICAgfVxuICAgICAgZmluaXNoKClcbiAgICB9XG5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSlcblxuICAgIHBvbGwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKHBvcHVwICYmIHBvcHVwLmNsb3NlZCkge1xuICAgICAgICBmaW5pc2goKVxuICAgICAgfVxuICAgIH0sIDQwMClcblxuICAgIHRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgb2F1dGhFcnJvciA9IG9hdXRoRXJyb3IgfHwgJ3RpbWVvdXQnXG4gICAgICBmaW5pc2goKVxuICAgIH0sIHRpbWVvdXRNcylcbiAgfSlcbn1cblxuZXhwb3J0IGNvbnN0IGNvbm5lY3RvckF1dGhFcnJvck1lc3NhZ2UgPSAoZXJyb3I6IENvbm5lY3RvckF1dGhFcnJvcik6IHN0cmluZyA9PiB7XG4gIGlmIChlcnJvci5zbHVnID09PSAnbmV0c3VpdGUnKSB7XG4gICAgcmV0dXJuIGVycm9yLm1lc3NhZ2VcbiAgfVxuICByZXR1cm4gYCR7ZXJyb3IubmFtZX06ICR7ZXJyb3IubWVzc2FnZX1gXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFvQ3JDLE9BQU8sSUFBTUMsc0JBQXNCO0VBQUEsSUFBQUMsSUFBQSxHQUFBQyxpQkFBQSxjQUFBQyxtQkFBQSxDQUFBQyxJQUFBLENBQUcsU0FBQUMsUUFBQTtJQUFBLElBQUFDLFFBQUE7SUFBQSxPQUFBSCxtQkFBQSxDQUFBSSxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQUFGLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BQ2JYLFNBQVMsQ0FBQztZQUMvQlksSUFBSSxFQUFFLFlBQVk7WUFDbEJDLE1BQU0sRUFBRTtVQUNWLENBQUMsQ0FBQztRQUFBO1VBSElOLFFBQVEsR0FBQUUsUUFBQSxDQUFBSyxJQUFBO1VBQUEsSUFLVFAsUUFBUSxDQUFDUSxFQUFFO1lBQUFOLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxNQUNSLElBQUlLLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQztRQUFBO1VBQUEsT0FBQVAsUUFBQSxD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
300
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRBdmFpbGFibGVDb25uZWN0b3JzIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJzZW50Iiwib2siLCJFcnJvciIsImFicnVwdCIsImpzb24iLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJnZXRBZ2VudENvbm5lY3RvcnMiLCJfcmVmMiIsIl9jYWxsZWUyIiwiYWdlbnRJZCIsIl9jb250ZXh0MiIsImNvbmNhdCIsIl94IiwiYXV0aG9yaXplQ29ubmVjdG9yIiwiX3JlZjMiLCJfY2FsbGVlMyIsInNsdWciLCJwYXlsb2FkIiwiX2NvbnRleHQzIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiYXV0aF91cmwiLCJfeDIiLCJzYXZlQWdlbnRDb25uZWN0b3JzIiwiX3JlZjQiLCJfY2FsbGVlNCIsImNvbm5lY3RvclNsdWdzIiwiX2NvbnRleHQ0IiwiYm9keSIsImNvbm5lY3Rvcl9zbHVncyIsIl94MyIsIl94NCIsIm9wZW5Db25uZWN0b3JBdXRob3JpemF0aW9uV2luZG93cyIsImF1dGhvcml6YXRpb25zIiwicG9wdXBXaW5kb3ciLCJsZW5ndGgiLCJjbG9zZWQiLCJjbG9zZSIsIl9hdXRob3JpemF0aW9ucyIsIl90b0FycmF5IiwiZmlyc3RBdXRob3JpemF0aW9uIiwicmVtYWluaW5nQXV0aG9yaXphdGlvbnMiLCJfYXJyYXlMaWtlVG9BcnJheSIsInNsaWNlIiwib3BlbmVkIiwibG9jYXRpb24iLCJocmVmIiwid2luZG93Iiwib3BlbiIsImZvckVhY2giLCJhdXRob3JpemF0aW9uIiwiaXNDb25uZWN0b3JPQXV0aE1lc3NhZ2UiLCJkYXRhIiwiX3R5cGVvZiIsInR5cGUiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsIl9yZWY2IiwiX2NhbGxlZTciLCJfcmVmNSIsInNsdWdzIiwicG9wdXAiLCJfcmVmNSR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJwZW5kaW5nIiwib2F1dGhFcnJvciIsImF1dGhvcml6ZWRTbHVncyIsIl9jb250ZXh0NyIsImF1dGhvcml6ZWQiLCJTZXQiLCJfcmVmNyIsIl9jYWxsZWU1IiwiY29ubmVjdG9ycyIsIl9jb250ZXh0NSIsImZpbHRlciIsImNvbm5lY3RvciIsImhhcyIsInVzZXJfYXV0aG9yaXplZCIsIm1hcCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZmluaXNoZWQiLCJvbk1lc3NhZ2UiLCJwb2xsIiwidGltZXIiLCJmaW5pc2giLCJfcmVmOCIsIl9jYWxsZWU2IiwiX3QiLCJfY29udGV4dDYiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsImVycm9yIiwidW5kZWZpbmVkIiwiZXZlbnQiLCJzdGF0dXMiLCJtZXNzYWdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldEludGVydmFsIiwic2V0VGltZW91dCIsIl94NSIsImNvbm5lY3RvckF1dGhFcnJvck1lc3NhZ2UiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuXG5leHBvcnQgdHlwZSBDYXRhbG9nQ29ubmVjdG9yID0ge1xuICBpZDogbnVtYmVyXG4gIHNsdWc6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaWNvbl91cmw/OiBzdHJpbmdcbiAgcmVxdWlyZXNfYXV0aDogYm9vbGVhblxuICBpc19hY3RpdmU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQ29ubmVjdGlvblN0YXR1cyA9ICdvaycgfCAnbmVlZHNfYXR0ZW50aW9uJyB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgQWdlbnRDb25uZWN0b3IgPSBDYXRhbG9nQ29ubmVjdG9yICYge1xuICBlbmFibGVkX2Zvcl9hZ2VudDogYm9vbGVhblxuICB1c2VyX2F1dGhvcml6ZWQ6IGJvb2xlYW5cbiAgY29ubmVjdGlvbl9zdGF0dXM/OiBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzXG59XG5cbmV4cG9ydCB0eXBlIFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGF1dGhfdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQXV0aEVycm9yID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTYXZlQWdlbnRDb25uZWN0b3JzUmVzcG9uc2UgPSB7XG4gIGFnZW50X2lkOiBzdHJpbmdcbiAgY29ubmVjdG9yX3NsdWdzOiBzdHJpbmdbXVxuICByZXF1aXJlc19hdXRoPzogUGVuZGluZ0Nvbm5lY3RvckF1dGhvcml6YXRpb25bXVxuICBhdXRoX2Vycm9ycz86IENvbm5lY3RvckF1dGhFcnJvcltdXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBdmFpbGFibGVDb25uZWN0b3JzID0gYXN5bmMgKCk6IFByb21pc2U8Q2F0YWxvZ0Nvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnY29ubmVjdG9ycycsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxBZ2VudENvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgYWdlbnRzLyR7YWdlbnRJZH0vY29ubmVjdG9yc2AsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWdlbnQgY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbi8qKiBGZXRjaCBhIGZyZXNoIE9BdXRoIFVSTCBvbiBjbGljazogaXRzIHN0YXRlIGV4cGlyZXMgYWZ0ZXIgdGVuIG1pbnV0ZXMuICovXG5leHBvcnQgY29uc3QgYXV0aG9yaXplQ29ubmVjdG9yID0gYXN5bmMgKHNsdWc6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgY29ubmVjdG9ycy8ke2VuY29kZVVSSUNvbXBvbmVudChzbHVnKX0vYXV0aG9yaXplYCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gc3RhcnQgY29ubmVjdG9yIGF1dGhvcml6YXRpb24nKVxuICB9XG5cbiAgY29uc3QgcGF5bG9hZDogeyBhdXRoX3VybDogc3RyaW5nIH0gPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgaWYgKCFwYXlsb2FkLmF1dGhfdXJsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0b3IgYXV0aG9yaXphdGlvbiBVUkwgaXMgbWlzc2luZycpXG4gIH1cbiAgcmV0dXJuIHBheWxvYWQuYXV0aF91cmxcbn1cblxuZXhwb3J0IGNvbnN0IHNhdmVBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoXG4gIGFnZW50SWQ6IHN0cmluZyxcbiAgY29ubmVjdG9yU2x1Z3M6IHN0cmluZ1tdXG4pOiBQcm9taXNlPFNhdmVBZ2VudENvbm5lY3RvcnNSZXNwb25zZT4gPT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYGFnZW50cy8ke2FnZW50SWR9L2Nvbm5lY3RvcnNgLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGJvZHk6IHtcbiAgICAgIGNvbm5lY3Rvcl9zbHVnczogY29ubmVjdG9yU2x1Z3MsXG4gICAgfSxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gc2F2ZSBhZ2VudCBjb25uZWN0b3JzJylcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZS5qc29uKClcbn1cblxuZXhwb3J0IGNvbnN0IG9wZW5Db25uZWN0b3JBdXRob3JpemF0aW9uV2luZG93cyA9IChcbiAgYXV0aG9yaXphdGlvbnM6IFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uW10sXG4gIHBvcHVwV2luZG93PzogV2luZG93IHwgbnVsbFxuKTogV2luZG93IHwgbnVsbCA9PiB7XG4gIGlmICghYXV0aG9yaXphdGlvbnMubGVuZ3RoKSB7XG4gICAgaWYgKHBvcHVwV2luZG93ICYmICFwb3B1cFdpbmRvdy5jbG9zZWQpIHtcbiAgICAgIHBvcHVwV2luZG93LmNsb3NlKClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IFtmaXJzdEF1dGhvcml6YXRpb24sIC4uLnJlbWFpbmluZ0F1dGhvcml6YXRpb25zXSA9IGF1dGhvcml6YXRpb25zXG5cbiAgbGV0IG9wZW5lZDogV2luZG93IHwgbnVsbCA9IG51bGxcbiAgaWYgKHBvcHVwV2luZG93ICYmICFwb3B1cFdpbmRvdy5jbG9zZWQpIHtcbiAgICAvLyBOYXZlZ2FyIGVsIHBvcHVwIHF1ZSB5YSBhYnJpbW9zIGVuIGVsIGNsaWNrIGRlbCB1c3VhcmlvOiBzaSBsbyBhYnJpw6lyYW1vc1xuICAgIC8vIGFjw6EsIGVsIGJyb3dzZXIgbG8gYmxvcXVlYXLDrWEgcG9yIG5vIHZlbmlyIGRlIHVuIGdlc3RvLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIHBvcHVwV2luZG93LmxvY2F0aW9uLmhyZWYgPSBmaXJzdEF1dGhvcml6YXRpb24uYXV0aF91cmxcbiAgICBvcGVuZWQgPSBwb3B1cFdpbmRvd1xuICB9IGVsc2Uge1xuICAgIG9wZW5lZCA9IHdpbmRvdy5vcGVuKGZpcnN0QXV0aG9yaXphdGlvbi5hdXRoX3VybCwgJ19ibGFuaycsICdwb3B1cD15ZXMsd2lkdGg9NTYwLGhlaWdodD03NjAnKVxuICB9XG5cbiAgcmVtYWluaW5nQXV0aG9yaXphdGlvbnMuZm9yRWFjaChhdXRob3JpemF0aW9uID0+IHtcbiAgICB3aW5kb3cub3BlbihhdXRob3JpemF0aW9uLmF1dGhfdXJsLCAnX2JsYW5rJywgJ3BvcHVwPXllcyx3aWR0aD01NjAsaGVpZ2h0PTc2MCcpXG4gIH0pXG5cbiAgcmV0dXJuIG9wZW5lZFxufVxuXG5jb25zdCBpc0Nvbm5lY3Rvck9BdXRoTWVzc2FnZSA9IChcbiAgZGF0YTogdW5rbm93blxuKTogZGF0YSBpcyB7IHR5cGU6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmc7IHNsdWc/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfSA9PlxuICAhIWRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiBkYXRhICYmIChkYXRhIGFzIHsgdHlwZTogc3RyaW5nIH0pLnR5cGUgPT09ICdjb25uZWN0b3Itb2F1dGgnXG5cbi8qKiBXYWl0cyB1bnRpbCB0aGUgT0F1dGggcG9wdXAgZmluaXNoZXMsIHRoZW4gY29uZmlybXMgdGhlIGNvbXBhbnkgdG9rZW4gdmlhIEdFVC4gKi9cbmV4cG9ydCBjb25zdCB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiA9IGFzeW5jICh7XG4gIGFnZW50SWQsXG4gIHNsdWdzLFxuICBwb3B1cCxcbiAgdGltZW91dE1zID0gMTgwXzAwMCxcbn06IHtcbiAgYWdlbnRJZDogc3RyaW5nXG4gIHNsdWdzOiBzdHJpbmdbXVxuICBwb3B1cD86IFdpbmRvdyB8IG51bGxcbiAgdGltZW91dE1zPzogbnVtYmVyXG59KTogUHJvbWlzZTx7IGF1dGhvcml6ZWQ6IHN0cmluZ1tdOyBlcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gIGlmICghc2x1Z3MubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHsgYXV0aG9yaXplZDogW10gfVxuICB9XG5cbiAgY29uc3QgcGVuZGluZyA9IG5ldyBTZXQoc2x1Z3MpXG4gIGxldCBvYXV0aEVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBjb25zdCBhdXRob3JpemVkU2x1Z3MgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29ubmVjdG9ycyA9IGF3YWl0IGdldEFnZW50Q29ubmVjdG9ycyhhZ2VudElkKVxuICAgIHJldHVybiBjb25uZWN0b3JzXG4gICAgICAuZmlsdGVyKGNvbm5lY3RvciA9PiBwZW5kaW5nLmhhcyhjb25uZWN0b3Iuc2x1ZykgJiYgY29ubmVjdG9yLnVzZXJfYXV0aG9yaXplZClcbiAgICAgIC5tYXAoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5zbHVnKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlXG4gICAgLy8gRGVjbGFyYWRvcyBhbnRlcyBwb3JxdWUgYGZpbmlzaGAgbG9zIGxpbXBpYSB5IGEgc3UgdmV6IGxvcyB0cmVzIGxvIGludm9jYW4uXG4gICAgLy8gUGFyYSBjdWFuZG8gYWxndW5vIHB1ZWRlIGRpc3BhcmFyLCBlbCBibG9xdWUgZGUgYWJham8geWEgbG9zIGFzaWduw7MuXG4gICAgbGV0IG9uTWVzc2FnZTogKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWRcbiAgICBsZXQgcG9sbDogbnVtYmVyXG4gICAgbGV0IHRpbWVyOiBudW1iZXJcblxuICAgIGNvbnN0IGZpbmlzaCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChmaW5pc2hlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGZpbmlzaGVkID0gdHJ1ZVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpXG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChwb2xsKVxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGF1dGhvcml6ZWQgPSBhd2FpdCBhdXRob3JpemVkU2x1Z3MoKVxuICAgICAgICByZXNvbHZlKHsgYXV0aG9yaXplZCwgZXJyb3I6IGF1dGhvcml6ZWQubGVuZ3RoID8gdW5kZWZpbmVkIDogb2F1dGhFcnJvciB9KVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJlc29sdmUoeyBhdXRob3JpemVkOiBbXSwgZXJyb3I6IG9hdXRoRXJyb3IgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Nvbm5lY3Rvck9BdXRoTWVzc2FnZShldmVudC5kYXRhKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5kYXRhLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICBvYXV0aEVycm9yID0gZXZlbnQuZGF0YS5tZXNzYWdlXG4gICAgICB9XG4gICAgICBmaW5pc2goKVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKVxuXG4gICAgcG9sbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAocG9wdXAgJiYgcG9wdXAuY2xvc2VkKSB7XG4gICAgICAgIGZpbmlzaCgpXG4gICAgICB9XG4gICAgfSwgNDAwKVxuXG4gICAgdGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBvYXV0aEVycm9yID0gb2F1dGhFcnJvciB8fCAndGltZW91dCdcbiAgICAgIGZpbmlzaCgpXG4gICAgfSwgdGltZW91dE1zKVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgY29ubmVjdG9yQXV0aEVycm9yTWVzc2FnZSA9IChlcnJvcjogQ29ubmVjdG9yQXV0aEVycm9yKTogc3RyaW5nID0+IHtcbiAgaWYgKGVycm9yLnNsdWcgPT09ICduZXRzdWl0ZScpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZVxuICB9XG4gIHJldHVybiBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQXVDckMsT0FBTyxJQUFNQyxzQkFBc0I7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFBO0lBQUEsSUFBQUMsUUFBQTtJQUFBLE9BQUFILG1CQUFBLENBQUFJLElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FDYlgsU0FBUyxDQUFDO1lBQy9CWSxJQUFJLEVBQUUsWUFBWTtZQUNsQkMsTUFBTSxFQUFFO1VBQ1YsQ0FBQyxDQUFDO1FBQUE7VUFISU4sUUFBUSxHQUFBRSxRQUFBLENBQUFLLElBQUE7VUFBQSxJQUtUUCxRQUFRLENBQUNRLEVBQUU7WUFBQU4sUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSUssS0FBSyxDQUFDLDRCQUE0QixDQUFDO1FBQUE7VUFBQSxPQUFBUCxRQUFBLENBQUFRLE1BQUEsV0FHeENWLFFBQVEsQ0FBQ1csSUFBSSxDQUFDLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQVQsUUFBQSxDQUFBVSxJQUFBO01BQUE7SUFBQSxHQUFBYixPQUFBO0VBQUEsQ0FDdkI7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