@projectcor/maia-components 2.49.0 → 2.49.1-1

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 (425) 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.helpers.spec.js +63 -0
  6. package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +183 -0
  7. package/lib/components/atoms/AttachmentCard/AttachmentCard.spec.js +123 -0
  8. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.js +3 -1
  9. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.helpers.spec.js +139 -0
  10. package/lib/components/atoms/AttachmentCard/AttachmentCardAudio.spec.js +385 -0
  11. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.js +3 -1
  12. package/lib/components/atoms/AttachmentCard/AttachmentCardImage.spec.js +78 -0
  13. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.helpers.spec.js +94 -0
  14. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +24 -14
  15. package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.spec.js +396 -0
  16. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.js +28 -10
  17. package/lib/components/atoms/AttachmentPreviewModal/ExcelPreview.spec.js +80 -0
  18. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.helpers.spec.js +526 -0
  19. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +19 -15
  20. package/lib/components/atoms/AttachmentPreviewModal/PptPreview.spec.js +169 -0
  21. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.helpers.spec.js +11 -0
  22. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.js +8 -4
  23. package/lib/components/atoms/AttachmentPreviewModal/WordPreview.spec.js +77 -0
  24. package/lib/components/atoms/Backdrop/Backdrop.spec.js +28 -0
  25. package/lib/components/atoms/CardMenu/CardMenu.spec.js +56 -0
  26. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.spec.js +67 -0
  27. package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
  28. package/lib/components/atoms/Chip/Chip.spec.js +82 -0
  29. package/lib/components/atoms/ChipLlm/ChipLlm.spec.js +26 -0
  30. package/lib/components/atoms/ClientSelector/ClientSelector.helpers.spec.js +45 -0
  31. package/lib/components/atoms/ClientSelector/ClientSelector.js +15 -13
  32. package/lib/components/atoms/ClientSelector/ClientSelector.spec.js +133 -0
  33. package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
  34. package/lib/components/atoms/ContextMentionChip/MentionOverflowLabel.spec.js +46 -0
  35. package/lib/components/atoms/ContextMentionChip/buildChipElement.helpers.spec.js +109 -0
  36. package/lib/components/atoms/ContextMentionChip/buildChipElement.spec.js +81 -0
  37. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.helpers.spec.js +92 -0
  38. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.spec.js +319 -0
  39. package/lib/components/atoms/ContextMentionItem/ContextMentionItem.spec.js +107 -0
  40. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.spec.js +136 -0
  41. package/lib/components/atoms/CopyToClipboard.spec.js +74 -0
  42. package/lib/components/atoms/EditableLabel/EditableLabel.spec.js +76 -0
  43. package/lib/components/atoms/EntitySelector/EntitySelector.spec.js +86 -0
  44. package/lib/components/atoms/Expand/Expand.spec.js +57 -0
  45. package/lib/components/atoms/Fade/Fade.js +10 -6
  46. package/lib/components/atoms/Fade/Fade.spec.js +66 -0
  47. package/lib/components/atoms/FeedbackButton/FeedbackButton.spec.js +75 -0
  48. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.spec.js +104 -0
  49. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
  50. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.spec.js +91 -0
  51. package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
  52. package/lib/components/atoms/HelpButton.spec.js +87 -0
  53. package/lib/components/atoms/ImagePreview/ImagePreview.spec.js +96 -0
  54. package/lib/components/atoms/ListMenuOption/ListMenuOption.spec.js +54 -0
  55. package/lib/components/atoms/LoadingFaqs/LoadingFaqs.spec.js +21 -0
  56. package/lib/components/atoms/LoadingSearchClients/LoadingSearchClients.spec.js +20 -0
  57. package/lib/components/atoms/LoadingSearchProjects/LoadingSearchProjects.spec.js +26 -0
  58. package/lib/components/atoms/LoadingText/LoadingText.spec.js +25 -0
  59. package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
  60. package/lib/components/atoms/MAIAError/MAIAError.spec.js +27 -0
  61. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.js +3 -2
  62. package/lib/components/atoms/MAIAInput/MAIAInput.attachments.helpers.spec.js +113 -0
  63. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.js +3 -2
  64. package/lib/components/atoms/MAIAInput/MAIAInput.helpers.spec.js +381 -0
  65. package/lib/components/atoms/MAIAInput/MAIAInput.js +14 -7
  66. package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +641 -0
  67. package/lib/components/atoms/MAIAInput/MAIAInputEditor.helpers.spec.js +92 -0
  68. package/lib/components/atoms/MAIAInput/MAIAInputEditor.spec.js +193 -0
  69. package/lib/components/atoms/MAIAInput/maiaInputLayout.spec.js +32 -0
  70. package/lib/components/atoms/MaiaStreamdown/MaiaStreamdown.spec.js +64 -0
  71. package/lib/components/atoms/MaiaWrapper/MaiaWrapper.spec.js +43 -0
  72. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.js +9 -4
  73. package/lib/components/atoms/MaiaWrapper/MaiaWrapperBase.spec.js +114 -0
  74. package/lib/components/atoms/MaiaWrapper/ModernMaiaWrapper.spec.js +51 -0
  75. package/lib/components/atoms/ModalClientAccess/ModalClientAccess.spec.js +48 -0
  76. package/lib/components/atoms/ModalProject/ModalProject.spec.js +66 -0
  77. package/lib/components/atoms/NextPageLoader.spec.js +37 -0
  78. package/lib/components/atoms/OnboardingModalButton/OnboardingModal.spec.js +20 -0
  79. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.helpers.spec.js +35 -0
  80. package/lib/components/atoms/OnboardingModalButton/OnboardingModalButton.spec.js +47 -0
  81. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.js +4 -5
  82. package/lib/components/atoms/OptionAccessibility/OptionAccessibility.spec.js +146 -0
  83. package/lib/components/atoms/PrimaryButton.spec.js +42 -0
  84. package/lib/components/atoms/ProjectSelector/ProjectSelector.spec.js +69 -0
  85. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
  86. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
  87. package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +41 -24
  88. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +25 -10
  89. package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
  90. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +78 -43
  91. package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +170 -0
  92. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.js +9 -11
  93. package/lib/components/atoms/ReasoningBlock/groupParallelSteps.spec.js +199 -0
  94. package/lib/components/atoms/ReasoningBlock/reasoningLeading.spec.js +70 -0
  95. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +37 -15
  96. package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +120 -0
  97. package/lib/components/atoms/ReasoningBlock/reasoningMotion.js +8 -0
  98. package/lib/components/atoms/ReasoningBlock/reasoningTimeline.helpers.spec.js +31 -0
  99. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
  100. package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
  101. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.js +29 -0
  102. package/lib/components/atoms/ReasoningBlock/useReasoningMarkerHandoff.spec.js +38 -0
  103. package/lib/components/atoms/SessionGeneratingDot/SessionGeneratingDot.spec.js +16 -0
  104. package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
  105. package/lib/components/atoms/SlashCommandChip/SlashCommandChip.spec.js +24 -0
  106. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.helpers.spec.js +71 -0
  107. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +120 -0
  108. package/lib/components/atoms/Switch/Switch.spec.js +41 -0
  109. package/lib/components/atoms/TextArea/CustomTextArea.spec.js +52 -0
  110. package/lib/components/atoms/TextArea/TextArea.helpers.spec.js +25 -0
  111. package/lib/components/atoms/TextArea/TextArea.spec.js +126 -0
  112. package/lib/components/atoms/ThirdButton.spec.js +29 -0
  113. package/lib/components/atoms/VideoModal/VideoModal.spec.js +68 -0
  114. package/lib/components/atoms/WithAppCfg.spec.js +82 -0
  115. package/lib/components/index.js +2 -1
  116. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.helpers.spec.js +53 -0
  117. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +3 -2
  118. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +742 -0
  119. package/lib/components/molecules/AbmSection/AbmGeneralSection.helpers.spec.js +107 -0
  120. package/lib/components/molecules/AbmSection/AbmGeneralSection.spec.js +256 -0
  121. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.js +6 -4
  122. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.helpers.spec.js +175 -0
  123. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +25 -16
  124. package/lib/components/molecules/AbmSection/AbmKnowledgeSection.spec.js +318 -0
  125. package/lib/components/molecules/AbmSection/AbmLoaderFiles.helpers.spec.js +50 -0
  126. package/lib/components/molecules/AbmSection/AbmLoaderFiles.spec.js +94 -0
  127. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.js +83 -0
  128. package/lib/components/molecules/AgentInputBlock/AgentInputBlockMessage.styles.js +30 -0
  129. package/lib/components/molecules/AgentInputBlock/index.js +5 -0
  130. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.js +52 -0
  131. package/lib/components/molecules/AgentInputBlock/resolveAgentInputBlock.spec.js +76 -0
  132. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.js +20 -0
  133. package/lib/components/molecules/AgentInputBlock/resolveLegacyContextSession.spec.js +34 -0
  134. package/lib/components/molecules/AgentInputBlock/useAgentChangeModelAction.js +36 -0
  135. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.spec.js +66 -0
  136. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
  137. package/lib/components/molecules/ChatAIContent/ChatAIContent.spec.js +145 -0
  138. package/lib/components/molecules/ChatAIHistory/ChatAIHistory.spec.js +204 -0
  139. package/lib/components/molecules/ChatAIHome/ChatAIHome.helpers.spec.js +622 -0
  140. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +93 -72
  141. package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +264 -0
  142. package/lib/components/molecules/ChatAIHome/ChatAIHomeMaiaker.spec.js +86 -0
  143. package/lib/components/molecules/ChatAIHome/styles.js +85 -78
  144. package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
  145. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.helpers.spec.js +742 -0
  146. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +30 -14
  147. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +541 -0
  148. package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
  149. package/lib/components/molecules/ChatAIMessages/newStyles.js +32 -35
  150. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
  151. package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +1394 -0
  152. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +25 -8
  153. package/lib/components/molecules/ChatAIModal/ChatAIModal.spec.js +1401 -0
  154. package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +2 -2
  155. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.helpers.spec.js +33 -0
  156. package/lib/components/molecules/ChatAIModal/components/ChatAiAgentOptions/ChatAiAgentOptions.spec.js +116 -0
  157. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +15 -153
  158. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.spec.js +134 -0
  159. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.styles.js +2 -26
  160. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.helpers.spec.js +142 -0
  161. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +63 -367
  162. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.spec.js +241 -0
  163. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.js +69 -0
  164. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.utils.spec.js +144 -0
  165. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentDropdown.js +95 -0
  166. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderAgentSelector.js +174 -0
  167. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.js +99 -0
  168. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeaderLayoutMenu.spec.js +65 -0
  169. package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
  170. package/lib/components/molecules/ChatAIModal/constants.spec.js +16 -0
  171. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.spec.js +22 -0
  172. package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.spec.js +67 -0
  173. package/lib/components/molecules/ChatAIModal/layout.spec.js +72 -0
  174. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.helpers.spec.js +93 -0
  175. package/lib/components/molecules/ChatAIMyAgents/ChatAIMyAgents.spec.js +297 -0
  176. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.helpers.spec.js +62 -0
  177. package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +221 -0
  178. package/lib/components/molecules/ChatAIProjectSelector/ChatAIProjectSelector.spec.js +66 -0
  179. package/lib/components/molecules/ChatFooter/ChatFooter.js +10 -4
  180. package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +369 -0
  181. package/lib/components/molecules/ChatFooter/ChatFooterCorAccess.spec.js +10 -0
  182. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.helpers.spec.js +104 -0
  183. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +5 -2
  184. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.spec.js +139 -0
  185. package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
  186. package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
  187. package/lib/components/molecules/ProjectSummaryChat/ProjectSummaryChat.spec.js +126 -0
  188. package/lib/components/molecules/ProjectSummaryConfig/ProjectSummaryConfig.spec.js +115 -0
  189. package/lib/components/molecules/ProjectSummaryContent/ProjectSummaryContent.spec.js +79 -0
  190. package/lib/components/molecules/ProjectSummaryModal/ProjectSummaryModal.spec.js +37 -0
  191. package/lib/components/molecules/Sidebar/Sidebar.helpers.spec.js +119 -0
  192. package/lib/components/molecules/Sidebar/Sidebar.js +41 -23
  193. package/lib/components/molecules/Sidebar/Sidebar.spec.js +464 -0
  194. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.helpers.spec.js +1067 -0
  195. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
  196. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +1236 -0
  197. package/lib/components/organisms/AbmSkillGenerateModal/AbmSkillGenerateModal.spec.js +112 -0
  198. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.helpers.spec.js +77 -0
  199. package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +503 -0
  200. package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
  201. package/lib/components/organisms/ChatAIPage/ChatAIPage.js +525 -0
  202. package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +246 -0
  203. package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
  204. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
  205. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
  206. package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
  207. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +284 -0
  208. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +275 -0
  209. package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +196 -0
  210. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.js +94 -0
  211. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCardSlot.spec.js +69 -0
  212. package/lib/components/organisms/ChatAIPage/ChatAIPageHomeActionCards.skeleton.js +38 -0
  213. package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
  214. package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
  215. package/lib/components/organisms/ChatAIPage/index.js +3 -0
  216. package/lib/components/organisms/ClientAIButton/ClientAIButton.spec.js +53 -0
  217. package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
  218. package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
  219. package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
  220. package/lib/components/organisms/ModalFileExceeds/ModalFileExceeds.spec.js +49 -0
  221. package/lib/components/organisms/ProjectAIButton/ProjectAIButton.spec.js +67 -0
  222. package/lib/components/organisms/ProjectSummary/ProjectSummary.js +11 -7
  223. package/lib/components/organisms/ProjectSummary/ProjectSummary.spec.js +117 -0
  224. package/lib/components/organisms/SnackBar/Snackbar.spec.js +66 -0
  225. package/lib/components/organisms/SourcesInformation/SourceItem.spec.js +19 -0
  226. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.js +4 -1
  227. package/lib/components/organisms/SourcesInformation/SourcesInformationModal.spec.js +52 -0
  228. package/lib/constants/formatExtensions.spec.js +14 -0
  229. package/lib/constants/maiaExternalConnectorsAccess.spec.js +29 -0
  230. package/lib/constants/maiaFeatureAccess.spec.js +30 -0
  231. package/lib/constants/maiaHourAgentAccess.spec.js +30 -0
  232. package/lib/constants/maiaTaskPanelAccess.spec.js +41 -0
  233. package/lib/constants/permissions/clientRoleAccess.spec.js +65 -0
  234. package/lib/constants/permissions/index.js +2 -2
  235. package/lib/constants/permissions/utils.js +4 -1
  236. package/lib/constants/permissions/utils.spec.js +128 -0
  237. package/lib/constants/plannerSyncEvents.spec.js +31 -0
  238. package/lib/constants/taskUrls.spec.js +9 -0
  239. package/lib/dev/DevMaiaPage.js +30 -0
  240. package/lib/dev/DevReasoningTimeline.js +68 -37
  241. package/lib/dev/Providers.js +5 -3
  242. package/lib/hooks/frequentlyUsedActionsCache.js +17 -0
  243. package/lib/hooks/frequentlyUsedActionsCache.spec.js +25 -0
  244. package/lib/hooks/useAccessClient/useAccessClient.spec.js +149 -0
  245. package/lib/hooks/useAgentModel/useAgentModel.spec.js +83 -0
  246. package/lib/hooks/useAgentModel/useCreateAgent.helpers.spec.js +268 -0
  247. package/lib/hooks/useAgentModel/useCreateAgent.spec.js +314 -0
  248. package/lib/hooks/useAgentModel/useDeleteAgent.spec.js +183 -0
  249. package/lib/hooks/useAgentModel/useUpdateAgent.js +7 -6
  250. package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +374 -0
  251. package/lib/hooks/useAgentSuggestions.spec.js +89 -0
  252. package/lib/hooks/useCaretPosition.spec.js +58 -0
  253. package/lib/hooks/useChatManager/useChatManager.helpers.js +3 -3
  254. package/lib/hooks/useChatManager/useChatManager.helpers.spec.js +2027 -0
  255. package/lib/hooks/useChatManager/useChatManager.js +8 -7
  256. package/lib/hooks/useChatManager/useChatManager.spec.js +2409 -0
  257. package/lib/hooks/useChatMessages/useChatMessages.helpers.spec.js +491 -0
  258. package/lib/hooks/useChatMessages/useChatMessages.spec.js +729 -0
  259. package/lib/hooks/useChats/useChats.spec.js +208 -0
  260. package/lib/hooks/useClientSearch.helpers.spec.js +52 -0
  261. package/lib/hooks/useClientSearch.spec.js +86 -0
  262. package/lib/hooks/useContextMentions.helpers.spec.js +267 -0
  263. package/lib/hooks/useContextMentions.spec.js +338 -0
  264. package/lib/hooks/useContextPinPopover.helpers.spec.js +183 -0
  265. package/lib/hooks/useContextPinPopover.spec.js +159 -0
  266. package/lib/hooks/useContinueLegacyContextInNewChat/index.js +2 -0
  267. package/lib/hooks/useContinueLegacyContextInNewChat/useContinueLegacyContextInNewChat.js +93 -0
  268. package/lib/hooks/useDebounce.spec.js +42 -0
  269. package/lib/hooks/useEntitySearch.helpers.spec.js +723 -0
  270. package/lib/hooks/useEntitySearch.js +3 -1
  271. package/lib/hooks/useEntitySearch.spec.js +718 -0
  272. package/lib/hooks/useEvent.spec.js +45 -0
  273. package/lib/hooks/useFrequentlyAskedQuestions.spec.js +222 -0
  274. package/lib/hooks/useFrequentlyUsedActions.js +60 -22
  275. package/lib/hooks/useFrequentlyUsedActions.spec.js +135 -0
  276. package/lib/hooks/useIsMaiaPageRoute.js +26 -0
  277. package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
  278. package/lib/hooks/useKnowledge/deleteKnowledge.spec.js +122 -0
  279. package/lib/hooks/useKnowledge/downloadKnowledge.js +4 -4
  280. package/lib/hooks/useKnowledge/downloadKnowledge.spec.js +148 -0
  281. package/lib/hooks/useKnowledge/saveKnowledge.spec.js +104 -0
  282. package/lib/hooks/useKnowledge/useKnowledgeOperations.js +16 -15
  283. package/lib/hooks/useKnowledge/useKnowledgeOperations.spec.js +178 -0
  284. package/lib/hooks/useMaiaChatSessionMeta/index.js +2 -0
  285. package/lib/hooks/useMaiaChatSessionMeta/useMaiaChatSessionMeta.js +24 -0
  286. package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
  287. package/lib/hooks/useMentionPopover.helpers.spec.js +100 -0
  288. package/lib/hooks/useMentionPopover.spec.js +392 -0
  289. package/lib/hooks/useMinimizedPillBottomOffset.helpers.spec.js +176 -0
  290. package/lib/hooks/useMinimizedPillBottomOffset.spec.js +89 -0
  291. package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
  292. package/lib/hooks/useModal/useModal.spec.js +73 -0
  293. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.helpers.spec.js +138 -0
  294. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.spec.js +417 -0
  295. package/lib/hooks/useProjectSearch.helpers.spec.js +89 -0
  296. package/lib/hooks/useProjectSearch.spec.js +91 -0
  297. package/lib/hooks/useProjectSummary.spec.js +193 -0
  298. package/lib/hooks/useProjectSummaryConfig.helpers.spec.js +151 -0
  299. package/lib/hooks/useProjectSummaryConfig.js +10 -5
  300. package/lib/hooks/useProjectSummaryConfig.spec.js +133 -0
  301. package/lib/hooks/useReasoningTrace/reasoningStore.spec.js +112 -0
  302. package/lib/hooks/useRecentClientsSearch.helpers.spec.js +33 -0
  303. package/lib/hooks/useRecentClientsSearch.spec.js +85 -0
  304. package/lib/hooks/useRecentContexts.spec.js +139 -0
  305. package/lib/hooks/useResize.spec.js +37 -0
  306. package/lib/hooks/useSkillsCatalog.spec.js +88 -0
  307. package/lib/hooks/useSlashCommands.spec.js +139 -0
  308. package/lib/hooks/useSmoothStreamText/useSmoothStreamText.spec.js +101 -0
  309. package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
  310. package/lib/hooks/useStreamResponse.spec.js +199 -0
  311. package/lib/hooks/useT.spec.js +20 -0
  312. package/lib/hooks/useToggle.spec.js +33 -0
  313. package/lib/hooks/useToggleFavorite/useToggleFavorite.spec.js +171 -0
  314. package/lib/index.js +5 -2
  315. package/lib/lang/br/index.js +26 -1
  316. package/lib/lang/en/index.js +26 -1
  317. package/lib/lang/es/index.js +26 -1
  318. package/lib/lang/fr/index.js +26 -1
  319. package/lib/services/appcues.spec.js +37 -0
  320. package/lib/services/maia/Access/updateAccess.spec.js +137 -0
  321. package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
  322. package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +56 -0
  323. package/lib/services/maia/Actions/getSlashCommands.spec.js +91 -0
  324. package/lib/services/maia/Agents/connectors.js +3 -1
  325. package/lib/services/maia/Agents/connectors.spec.js +496 -0
  326. package/lib/services/maia/Agents/createAgent.spec.js +55 -0
  327. package/lib/services/maia/Agents/deleteAgent.spec.js +57 -0
  328. package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
  329. package/lib/services/maia/Agents/getAgentById.spec.js +190 -0
  330. package/lib/services/maia/Agents/getAgentModels.spec.js +190 -0
  331. package/lib/services/maia/Agents/getAgentSuggestions.spec.js +89 -0
  332. package/lib/services/maia/Agents/getAgents.helpers.spec.js +325 -0
  333. package/lib/services/maia/Agents/getAgents.spec.js +1135 -0
  334. package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
  335. package/lib/services/maia/Agents/toggleFavorite.spec.js +59 -0
  336. package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
  337. package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
  338. package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
  339. package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
  340. package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
  341. package/lib/services/maia/Chats/patchChat.spec.js +41 -0
  342. package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
  343. package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
  344. package/lib/services/maia/Knowledge/delete.spec.js +45 -0
  345. package/lib/services/maia/Knowledge/download.spec.js +78 -0
  346. package/lib/services/maia/Knowledge/save.spec.js +58 -0
  347. package/lib/services/maia/Orchestrator/orchestrator.helpers.spec.js +225 -0
  348. package/lib/services/maia/Orchestrator/orchestrator.spec.js +181 -0
  349. package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
  350. package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +103 -0
  351. package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
  352. package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
  353. package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
  354. package/lib/services/maia/Skills/createSkill.spec.js +68 -0
  355. package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
  356. package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
  357. package/lib/services/maia/Skills/getSkills.spec.js +152 -0
  358. package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
  359. package/lib/services/maia/client.spec.js +56 -0
  360. package/lib/services/utils/fetchCOR.spec.js +211 -0
  361. package/lib/services/utils/getCookie.spec.js +20 -0
  362. package/lib/services/utils/mapChatMessages.helpers.spec.js +336 -0
  363. package/lib/services/utils/mapChatMessages.spec.js +254 -0
  364. package/lib/store/chatsSidebarOptimistic.spec.js +145 -0
  365. package/lib/store/maiaLastChatPersistence.spec.js +22 -0
  366. package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
  367. package/lib/store/sessions/sessionNotificationSound.spec.js +145 -0
  368. package/lib/store/sessions/sessionNotifications.helpers.spec.js +63 -0
  369. package/lib/store/sessions/sessionNotifications.spec.js +106 -0
  370. package/lib/store/sessions/sessionStreamManager.helpers.spec.js +177 -0
  371. package/lib/store/sessions/sessionStreamManager.js +51 -55
  372. package/lib/store/sessions/sessionStreamManager.spec.js +939 -0
  373. package/lib/store/sessions/sessions.types.spec.js +16 -0
  374. package/lib/store/sessions/useSessionsStore.spec.js +135 -0
  375. package/lib/store/useChatsStore.js +4 -3
  376. package/lib/store/useChatsStore.spec.js +619 -0
  377. package/lib/store/useFaqsStore.spec.js +57 -0
  378. package/lib/styles/cascade.js +29 -3
  379. package/lib/styles/transitions.js +3 -1
  380. package/lib/types/global.d.js +1 -1
  381. package/lib/utils/actionCategoryMap.spec.js +18 -0
  382. package/lib/utils/agentDisplayName.spec.js +48 -0
  383. package/lib/utils/autoApproveStorage.spec.js +25 -0
  384. package/lib/utils/chatInputFiles.spec.js +39 -0
  385. package/lib/utils/contextMentionIcons.spec.js +41 -0
  386. package/lib/utils/contextMentionLabel.spec.js +13 -0
  387. package/lib/utils/contextMentionTriggers.spec.js +44 -0
  388. package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
  389. package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
  390. package/lib/utils/entityLinkRender.spec.js +72 -0
  391. package/lib/utils/fileDownloadHelper.spec.js +67 -0
  392. package/lib/utils/formatQuickActionMessage.spec.js +27 -0
  393. package/lib/utils/formatUnreadCount.spec.js +12 -0
  394. package/lib/utils/getUnitFileSize.spec.js +18 -0
  395. package/lib/utils/hitlAnalytics.spec.js +136 -0
  396. package/lib/utils/hoursPlannerQuickActionType.js +74 -1
  397. package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
  398. package/lib/utils/imagePreprocessor.helpers.spec.js +28 -0
  399. package/lib/utils/imagePreprocessor.js +14 -3
  400. package/lib/utils/imagePreprocessor.spec.js +112 -0
  401. package/lib/utils/maiaPageRoute.js +24 -0
  402. package/lib/utils/maiaPageRoute.spec.js +23 -0
  403. package/lib/utils/mapBackendLang.spec.js +19 -0
  404. package/lib/utils/navigateContextEntity.js +2 -2
  405. package/lib/utils/navigateContextEntity.spec.js +50 -0
  406. package/lib/utils/normalizeAgentConnectors.spec.js +98 -0
  407. package/lib/utils/openTaskInCorPanel.js +2 -2
  408. package/lib/utils/openTaskInCorPanel.spec.js +43 -0
  409. package/lib/utils/orchestratorSubagents.spec.js +32 -0
  410. package/lib/utils/reasoningMappers.spec.js +103 -0
  411. package/lib/utils/recentContextsHomeLimit.spec.js +32 -0
  412. package/lib/utils/renderContextMentions.helpers.spec.js +87 -0
  413. package/lib/utils/renderContextMentions.spec.js +268 -0
  414. package/lib/utils/retryCompletion.spec.js +181 -0
  415. package/lib/utils/skillContentSize.spec.js +13 -0
  416. package/lib/utils/slashCommandMarker.spec.js +43 -0
  417. package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
  418. package/lib/utils/sseStreamContent.spec.js +31 -0
  419. package/lib/utils/streamActivityMessages.helpers.js +5 -4
  420. package/lib/utils/streamActivityMessages.helpers.spec.js +84 -0
  421. package/lib/utils/streamActivityMessages.js +32 -20
  422. package/lib/utils/streamActivityMessages.spec.js +336 -0
  423. package/lib/utils/validateTrimmedFields.spec.js +26 -0
  424. package/package.json +1 -1
  425. package/README.md +0 -2
@@ -43,4 +43,4 @@ export var getFrequentlyUsedActions = /*#__PURE__*/function () {
43
43
  return _ref.apply(this, arguments);
44
44
  };
45
45
  }();
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJwYXJhbXMiLCJhZ2VudElkIiwibGFuZyIsInNlY3Rpb24iLCJlbnRpdHlUeXBlIiwicXVlcnlQYXJhbXMiLCJyZXNwb25zZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiVVJMU2VhcmNoUGFyYW1zIiwic2V0IiwicGF0aCIsImNvbmNhdCIsInRvU3RyaW5nIiwibWV0aG9kIiwic2VudCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJqc29uIiwiYWJydXB0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgdHlwZSB7IEFjdGlvblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uID0gJ2hvbWUnIHwgJ2hvbWVfd2l0aF9ob3VycycgfCAndGFza3MnIHwgJ3BsYW5uZXInXG5cbnR5cGUgR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zUGFyYW1zID0ge1xuICBhZ2VudElkOiBzdHJpbmdcbiAgbGFuZz86IHN0cmluZ1xuICBzZWN0aW9uOiBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uXG4gIC8qKiB0aXBvIGRlIGNvbnRleHRvIC8gc2VjdGlvbiBob21lIChjbGllbnQgfCBwcm9qZWN0IHwgdGFzayB8IHBsYW5uZXIpICovXG4gIGVudGl0eVR5cGU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IGdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9IGFzeW5jIChwYXJhbXM6IEdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc1BhcmFtcyk6IFByb21pc2U8QWN0aW9uUmVzcG9uc2U+ID0+IHtcbiAgY29uc3QgeyBhZ2VudElkLCBsYW5nLCBzZWN0aW9uLCBlbnRpdHlUeXBlIH0gPSBwYXJhbXNcblxuICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICBpZiAobGFuZykge1xuICAgIHF1ZXJ5UGFyYW1zLnNldCgnbGFuZycsIGxhbmcpXG4gIH1cbiAgcXVlcnlQYXJhbXMuc2V0KCdzZWN0aW9uJywgc2VjdGlvbilcbiAgaWYgKGVudGl0eVR5cGUpIHtcbiAgICBxdWVyeVBhcmFtcy5zZXQoJ2VudGl0eV90eXBlJywgZW50aXR5VHlwZSlcbiAgfVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgYWdlbnRzLyR7YWdlbnRJZH0vZnJlcXVlbnRseS11c2VkLWFjdGlvbnM/JHtxdWVyeVBhcmFtcy50b1N0cmluZygpfWAsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApXG4gIH1cblxuICByZXR1cm4gKGF3YWl0IHJlc3BvbnNlLmpzb24oKSkgYXMgQWN0aW9uUmVzcG9uc2Vcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQWFyQyxPQUFPLElBQU1DLHdCQUF3QjtFQUFBLElBQUFDLElBQUEsR0FBQUMsaUJBQUEsY0FBQUMsbUJBQUEsQ0FBQUMsSUFBQSxDQUFHLFNBQUFDLFFBQU9DLE1BQXNDO0lBQUEsSUFBQUMsT0FBQSxFQUFBQyxJQUFBLEVBQUFDLE9BQUEsRUFBQUMsVUFBQSxFQUFBQyxXQUFBLEVBQUFDLFFBQUE7SUFBQSxPQUFBVCxtQkFBQSxDQUFBVSxJQUFBLFdBQUFDLFFBQUE7TUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtRQUFBO1VBQzNFVCxPQUFPLEdBQWdDRCxNQUFNLENBQTdDQyxPQUFPLEVBQUVDLElBQUksR0FBMEJGLE1BQU0sQ0FBcENFLElBQUksRUFBRUMsT0FBTyxHQUFpQkgsTUFBTSxDQUE5QkcsT0FBTyxFQUFFQyxVQUFVLEdBQUtKLE1BQU0sQ0FBckJJLFVBQVU7VUFFcENDLFdBQVcsR0FBRyxJQUFJTSxlQUFlLENBQUMsQ0FBQztVQUN6QyxJQUFJVCxJQUFJLEVBQUU7WUFDUkcsV0FBVyxDQUFDTyxHQUFHLENBQUMsTUFBTSxFQUFFVixJQUFJLENBQUM7VUFDL0I7VUFDQUcsV0FBVyxDQUFDTyxHQUFHLENBQUMsU0FBUyxFQUFFVCxPQUFPLENBQUM7VUFDbkMsSUFBSUMsVUFBVSxFQUFFO1lBQ2RDLFdBQVcsQ0FBQ08sR0FBRyxDQUFDLGFBQWEsRUFBRVIsVUFBVSxDQUFDO1VBQzVDO1VBQUNJLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BRXNCakIsU0FBUyxDQUFDO1lBQy9Cb0IsSUFBSSxZQUFBQyxNQUFBLENBQVliLE9BQU8sK0JBQUFhLE1BQUEsQ0FBNEJULFdBQVcsQ0FBQ1UsUUFBUSxDQUFDLENBQUMsQ0FBRTtZQUMzRUMsTUFBTSxFQUFFO1VBQ1YsQ0FBQyxDQUFDO1FBQUE7VUFISVYsUUFBUSxHQUFBRSxRQUFBLENBQUFTLElBQUE7VUFBQSxJQUtUWCxRQUFRLENBQUNZLEVBQUU7WUFBQVYsUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSVMsS0FBSyx3QkFBQUwsTUFBQSxDQUF3QlIsUUFBUSxDQUFDYyxNQUFNLENBQUUsQ0FBQztRQUFBO1VBQUFaLFFBQUEsQ0FBQUUsSUFBQTtVQUFBLE9BRzdDSixRQUFRLENBQUNlLElBQUksQ0FBQyxDQUFDO1FBQUE7VUFBQSxPQUFBYixRQUFBLENBQUFjLE1BQUEsV0FBQWQsUUFBQSxDQUFBUyxJQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUFULFFBQUEsQ0FBQWUsSUFBQTtNQUFBO0lBQUEsR0FBQXhCLE9BQUE7RUFBQSxDQUM5QjtFQUFBLGdCQXRCWUwsd0JBQXdCQSxDQUFBOEIsRUFBQTtJQUFBLE9BQUE3QixJQUFBLENBQUE4QixLQUFBLE9BQUFDLFNBQUE7RUFBQTtBQUFBLEdBc0JwQyIsImlnbm9yZUxpc3QiOltdfQ==
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJwYXJhbXMiLCJhZ2VudElkIiwibGFuZyIsInNlY3Rpb24iLCJlbnRpdHlUeXBlIiwicXVlcnlQYXJhbXMiLCJyZXNwb25zZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiVVJMU2VhcmNoUGFyYW1zIiwic2V0IiwicGF0aCIsImNvbmNhdCIsInRvU3RyaW5nIiwibWV0aG9kIiwic2VudCIsIm9rIiwiRXJyb3IiLCJzdGF0dXMiLCJqc29uIiwiYWJydXB0Iiwic3RvcCIsIl94IiwiYXBwbHkiLCJhcmd1bWVudHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmZXRjaE1haWEgfSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQgdHlwZSB7IEFjdGlvblJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQWN0aW9uJ1xuXG5leHBvcnQgdHlwZSBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uID0gJ2hvbWUnIHwgJ2hvbWVfd2l0aF9ob3VycycgfCAnaG9tZV9jb2xsYWJvcmF0b3InIHwgJ3Rhc2tzJyB8ICdwbGFubmVyJ1xuXG50eXBlIEdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc1BhcmFtcyA9IHtcbiAgYWdlbnRJZDogc3RyaW5nXG4gIGxhbmc/OiBzdHJpbmdcbiAgc2VjdGlvbjogRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvblxuICAvKiogdGlwbyBkZSBjb250ZXh0byAvIHNlY3Rpb24gaG9tZSAoY2xpZW50IHwgcHJvamVjdCB8IHRhc2sgfCBwbGFubmVyKSAqL1xuICBlbnRpdHlUeXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMgPSBhc3luYyAocGFyYW1zOiBHZXRGcmVxdWVudGx5VXNlZEFjdGlvbnNQYXJhbXMpOiBQcm9taXNlPEFjdGlvblJlc3BvbnNlPiA9PiB7XG4gIGNvbnN0IHsgYWdlbnRJZCwgbGFuZywgc2VjdGlvbiwgZW50aXR5VHlwZSB9ID0gcGFyYW1zXG5cbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgaWYgKGxhbmcpIHtcbiAgICBxdWVyeVBhcmFtcy5zZXQoJ2xhbmcnLCBsYW5nKVxuICB9XG4gIHF1ZXJ5UGFyYW1zLnNldCgnc2VjdGlvbicsIHNlY3Rpb24pXG4gIGlmIChlbnRpdHlUeXBlKSB7XG4gICAgcXVlcnlQYXJhbXMuc2V0KCdlbnRpdHlfdHlwZScsIGVudGl0eVR5cGUpXG4gIH1cblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYGFnZW50cy8ke2FnZW50SWR9L2ZyZXF1ZW50bHktdXNlZC1hY3Rpb25zPyR7cXVlcnlQYXJhbXMudG9TdHJpbmcoKX1gLFxuICAgIG1ldGhvZDogJ0dFVCcsXG4gIH0pXG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gKVxuICB9XG5cbiAgcmV0dXJuIChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIEFjdGlvblJlc3BvbnNlXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsU0FBUyxRQUFRLFdBQVc7QUFhckMsT0FBTyxJQUFNQyx3QkFBd0I7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFPQyxNQUFzQztJQUFBLElBQUFDLE9BQUEsRUFBQUMsSUFBQSxFQUFBQyxPQUFBLEVBQUFDLFVBQUEsRUFBQUMsV0FBQSxFQUFBQyxRQUFBO0lBQUEsT0FBQVQsbUJBQUEsQ0FBQVUsSUFBQSxXQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7UUFBQTtVQUMzRVQsT0FBTyxHQUFnQ0QsTUFBTSxDQUE3Q0MsT0FBTyxFQUFFQyxJQUFJLEdBQTBCRixNQUFNLENBQXBDRSxJQUFJLEVBQUVDLE9BQU8sR0FBaUJILE1BQU0sQ0FBOUJHLE9BQU8sRUFBRUMsVUFBVSxHQUFLSixNQUFNLENBQXJCSSxVQUFVO1VBRXBDQyxXQUFXLEdBQUcsSUFBSU0sZUFBZSxDQUFDLENBQUM7VUFDekMsSUFBSVQsSUFBSSxFQUFFO1lBQ1JHLFdBQVcsQ0FBQ08sR0FBRyxDQUFDLE1BQU0sRUFBRVYsSUFBSSxDQUFDO1VBQy9CO1VBQ0FHLFdBQVcsQ0FBQ08sR0FBRyxDQUFDLFNBQVMsRUFBRVQsT0FBTyxDQUFDO1VBQ25DLElBQUlDLFVBQVUsRUFBRTtZQUNkQyxXQUFXLENBQUNPLEdBQUcsQ0FBQyxhQUFhLEVBQUVSLFVBQVUsQ0FBQztVQUM1QztVQUFDSSxRQUFBLENBQUFFLElBQUE7VUFBQSxPQUVzQmpCLFNBQVMsQ0FBQztZQUMvQm9CLElBQUksWUFBQUMsTUFBQSxDQUFZYixPQUFPLCtCQUFBYSxNQUFBLENBQTRCVCxXQUFXLENBQUNVLFFBQVEsQ0FBQyxDQUFDLENBQUU7WUFDM0VDLE1BQU0sRUFBRTtVQUNWLENBQUMsQ0FBQztRQUFBO1VBSElWLFFBQVEsR0FBQUUsUUFBQSxDQUFBUyxJQUFBO1VBQUEsSUFLVFgsUUFBUSxDQUFDWSxFQUFFO1lBQUFWLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7VUFBQSxNQUNSLElBQUlTLEtBQUssd0JBQUFMLE1BQUEsQ0FBd0JSLFFBQVEsQ0FBQ2MsTUFBTSxDQUFFLENBQUM7UUFBQTtVQUFBWixRQUFBLENBQUFFLElBQUE7VUFBQSxPQUc3Q0osUUFBUSxDQUFDZSxJQUFJLENBQUMsQ0FBQztRQUFBO1VBQUEsT0FBQWIsUUFBQSxDQUFBYyxNQUFBLFdBQUFkLFFBQUEsQ0FBQVMsSUFBQTtRQUFBO1FBQUE7VUFBQSxPQUFBVCxRQUFBLENBQUFlLElBQUE7TUFBQTtJQUFBLEdBQUF4QixPQUFBO0VBQUEsQ0FDOUI7RUFBQSxnQkF0QllMLHdCQUF3QkEsQ0FBQThCLEVBQUE7SUFBQSxPQUFBN0IsSUFBQSxDQUFBOEIsS0FBQSxPQUFBQyxTQUFBO0VBQUE7QUFBQSxHQXNCcEMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -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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
@@ -160,6 +160,8 @@ export var openConnectorAuthorizationWindows = function openConnectorAuthorizati
160
160
  opened = window.open(firstAuthorization.auth_url, '_blank', 'popup=yes,width=560,height=760');
161
161
  }
162
162
  remainingAuthorizations.forEach(function (authorization) {
163
+ // Mismo comportamiento que el popup principal: el callback OAuth del proveedor puede depender de window.opener
164
+ // react-doctor-disable-next-line react-doctor/window-open-without-noopener
163
165
  window.open(authorization.auth_url, '_blank', 'popup=yes,width=560,height=760');
164
166
  });
165
167
  return opened;
@@ -297,4 +299,4 @@ export var connectorAuthErrorMessage = function connectorAuthErrorMessage(error)
297
299
  }
298
300
  return "".concat(error.name, ": ").concat(error.message);
299
301
  };
300
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRBdmFpbGFibGVDb25uZWN0b3JzIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJzZW50Iiwib2siLCJFcnJvciIsImFicnVwdCIsImpzb24iLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJnZXRBZ2VudENvbm5lY3RvcnMiLCJfcmVmMiIsIl9jYWxsZWUyIiwiYWdlbnRJZCIsIl9jb250ZXh0MiIsImNvbmNhdCIsIl94IiwiYXV0aG9yaXplQ29ubmVjdG9yIiwiX3JlZjMiLCJfY2FsbGVlMyIsInNsdWciLCJwYXlsb2FkIiwiX2NvbnRleHQzIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiYXV0aF91cmwiLCJfeDIiLCJzYXZlQWdlbnRDb25uZWN0b3JzIiwiX3JlZjQiLCJfY2FsbGVlNCIsImNvbm5lY3RvclNsdWdzIiwiX2NvbnRleHQ0IiwiYm9keSIsImNvbm5lY3Rvcl9zbHVncyIsIl94MyIsIl94NCIsIm9wZW5Db25uZWN0b3JBdXRob3JpemF0aW9uV2luZG93cyIsImF1dGhvcml6YXRpb25zIiwicG9wdXBXaW5kb3ciLCJsZW5ndGgiLCJjbG9zZWQiLCJjbG9zZSIsIl9hdXRob3JpemF0aW9ucyIsIl90b0FycmF5IiwiZmlyc3RBdXRob3JpemF0aW9uIiwicmVtYWluaW5nQXV0aG9yaXphdGlvbnMiLCJfYXJyYXlMaWtlVG9BcnJheSIsInNsaWNlIiwib3BlbmVkIiwibG9jYXRpb24iLCJocmVmIiwid2luZG93Iiwib3BlbiIsImZvckVhY2giLCJhdXRob3JpemF0aW9uIiwiaXNDb25uZWN0b3JPQXV0aE1lc3NhZ2UiLCJkYXRhIiwiX3R5cGVvZiIsInR5cGUiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsIl9yZWY2IiwiX2NhbGxlZTciLCJfcmVmNSIsInNsdWdzIiwicG9wdXAiLCJfcmVmNSR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJwZW5kaW5nIiwib2F1dGhFcnJvciIsImF1dGhvcml6ZWRTbHVncyIsIl9jb250ZXh0NyIsImF1dGhvcml6ZWQiLCJTZXQiLCJfcmVmNyIsIl9jYWxsZWU1IiwiY29ubmVjdG9ycyIsIl9jb250ZXh0NSIsImZpbHRlciIsImNvbm5lY3RvciIsImhhcyIsInVzZXJfYXV0aG9yaXplZCIsIm1hcCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZmluaXNoZWQiLCJvbk1lc3NhZ2UiLCJwb2xsIiwidGltZXIiLCJmaW5pc2giLCJfcmVmOCIsIl9jYWxsZWU2IiwiX3QiLCJfY29udGV4dDYiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsImVycm9yIiwidW5kZWZpbmVkIiwiZXZlbnQiLCJzdGF0dXMiLCJtZXNzYWdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldEludGVydmFsIiwic2V0VGltZW91dCIsIl94NSIsImNvbm5lY3RvckF1dGhFcnJvck1lc3NhZ2UiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuXG5leHBvcnQgdHlwZSBDYXRhbG9nQ29ubmVjdG9yID0ge1xuICBpZDogbnVtYmVyXG4gIHNsdWc6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaWNvbl91cmw/OiBzdHJpbmdcbiAgcmVxdWlyZXNfYXV0aDogYm9vbGVhblxuICBpc19hY3RpdmU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQ29ubmVjdGlvblN0YXR1cyA9ICdvaycgfCAnbmVlZHNfYXR0ZW50aW9uJyB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgQWdlbnRDb25uZWN0b3IgPSBDYXRhbG9nQ29ubmVjdG9yICYge1xuICBlbmFibGVkX2Zvcl9hZ2VudDogYm9vbGVhblxuICB1c2VyX2F1dGhvcml6ZWQ6IGJvb2xlYW5cbiAgY29ubmVjdGlvbl9zdGF0dXM/OiBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzXG59XG5cbmV4cG9ydCB0eXBlIFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGF1dGhfdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQXV0aEVycm9yID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTYXZlQWdlbnRDb25uZWN0b3JzUmVzcG9uc2UgPSB7XG4gIGFnZW50X2lkOiBzdHJpbmdcbiAgY29ubmVjdG9yX3NsdWdzOiBzdHJpbmdbXVxuICByZXF1aXJlc19hdXRoPzogUGVuZGluZ0Nvbm5lY3RvckF1dGhvcml6YXRpb25bXVxuICBhdXRoX2Vycm9ycz86IENvbm5lY3RvckF1dGhFcnJvcltdXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBdmFpbGFibGVDb25uZWN0b3JzID0gYXN5bmMgKCk6IFByb21pc2U8Q2F0YWxvZ0Nvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnY29ubmVjdG9ycycsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxBZ2VudENvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgYWdlbnRzLyR7YWdlbnRJZH0vY29ubmVjdG9yc2AsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWdlbnQgY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbi8qKiBGZXRjaCBhIGZyZXNoIE9BdXRoIFVSTCBvbiBjbGljazogaXRzIHN0YXRlIGV4cGlyZXMgYWZ0ZXIgdGVuIG1pbnV0ZXMuICovXG5leHBvcnQgY29uc3QgYXV0aG9yaXplQ29ubmVjdG9yID0gYXN5bmMgKHNsdWc6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgY29ubmVjdG9ycy8ke2VuY29kZVVSSUNvbXBvbmVudChzbHVnKX0vYXV0aG9yaXplYCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gc3RhcnQgY29ubmVjdG9yIGF1dGhvcml6YXRpb24nKVxuICB9XG5cbiAgY29uc3QgcGF5bG9hZDogeyBhdXRoX3VybDogc3RyaW5nIH0gPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgaWYgKCFwYXlsb2FkLmF1dGhfdXJsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0b3IgYXV0aG9yaXphdGlvbiBVUkwgaXMgbWlzc2luZycpXG4gIH1cbiAgcmV0dXJuIHBheWxvYWQuYXV0aF91cmxcbn1cblxuZXhwb3J0IGNvbnN0IHNhdmVBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoXG4gIGFnZW50SWQ6IHN0cmluZyxcbiAgY29ubmVjdG9yU2x1Z3M6IHN0cmluZ1tdXG4pOiBQcm9taXNlPFNhdmVBZ2VudENvbm5lY3RvcnNSZXNwb25zZT4gPT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYGFnZW50cy8ke2FnZW50SWR9L2Nvbm5lY3RvcnNgLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGJvZHk6IHtcbiAgICAgIGNvbm5lY3Rvcl9zbHVnczogY29ubmVjdG9yU2x1Z3MsXG4gICAgfSxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gc2F2ZSBhZ2VudCBjb25uZWN0b3JzJylcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZS5qc29uKClcbn1cblxuZXhwb3J0IGNvbnN0IG9wZW5Db25uZWN0b3JBdXRob3JpemF0aW9uV2luZG93cyA9IChcbiAgYXV0aG9yaXphdGlvbnM6IFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uW10sXG4gIHBvcHVwV2luZG93PzogV2luZG93IHwgbnVsbFxuKTogV2luZG93IHwgbnVsbCA9PiB7XG4gIGlmICghYXV0aG9yaXphdGlvbnMubGVuZ3RoKSB7XG4gICAgaWYgKHBvcHVwV2luZG93ICYmICFwb3B1cFdpbmRvdy5jbG9zZWQpIHtcbiAgICAgIHBvcHVwV2luZG93LmNsb3NlKClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IFtmaXJzdEF1dGhvcml6YXRpb24sIC4uLnJlbWFpbmluZ0F1dGhvcml6YXRpb25zXSA9IGF1dGhvcml6YXRpb25zXG5cbiAgbGV0IG9wZW5lZDogV2luZG93IHwgbnVsbCA9IG51bGxcbiAgaWYgKHBvcHVwV2luZG93ICYmICFwb3B1cFdpbmRvdy5jbG9zZWQpIHtcbiAgICAvLyBOYXZlZ2FyIGVsIHBvcHVwIHF1ZSB5YSBhYnJpbW9zIGVuIGVsIGNsaWNrIGRlbCB1c3VhcmlvOiBzaSBsbyBhYnJpw6lyYW1vc1xuICAgIC8vIGFjw6EsIGVsIGJyb3dzZXIgbG8gYmxvcXVlYXLDrWEgcG9yIG5vIHZlbmlyIGRlIHVuIGdlc3RvLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIHBvcHVwV2luZG93LmxvY2F0aW9uLmhyZWYgPSBmaXJzdEF1dGhvcml6YXRpb24uYXV0aF91cmxcbiAgICBvcGVuZWQgPSBwb3B1cFdpbmRvd1xuICB9IGVsc2Uge1xuICAgIG9wZW5lZCA9IHdpbmRvdy5vcGVuKGZpcnN0QXV0aG9yaXphdGlvbi5hdXRoX3VybCwgJ19ibGFuaycsICdwb3B1cD15ZXMsd2lkdGg9NTYwLGhlaWdodD03NjAnKVxuICB9XG5cbiAgcmVtYWluaW5nQXV0aG9yaXphdGlvbnMuZm9yRWFjaChhdXRob3JpemF0aW9uID0+IHtcbiAgICB3aW5kb3cub3BlbihhdXRob3JpemF0aW9uLmF1dGhfdXJsLCAnX2JsYW5rJywgJ3BvcHVwPXllcyx3aWR0aD01NjAsaGVpZ2h0PTc2MCcpXG4gIH0pXG5cbiAgcmV0dXJuIG9wZW5lZFxufVxuXG5jb25zdCBpc0Nvbm5lY3Rvck9BdXRoTWVzc2FnZSA9IChcbiAgZGF0YTogdW5rbm93blxuKTogZGF0YSBpcyB7IHR5cGU6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmc7IHNsdWc/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfSA9PlxuICAhIWRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiBkYXRhICYmIChkYXRhIGFzIHsgdHlwZTogc3RyaW5nIH0pLnR5cGUgPT09ICdjb25uZWN0b3Itb2F1dGgnXG5cbi8qKiBXYWl0cyB1bnRpbCB0aGUgT0F1dGggcG9wdXAgZmluaXNoZXMsIHRoZW4gY29uZmlybXMgdGhlIGNvbXBhbnkgdG9rZW4gdmlhIEdFVC4gKi9cbmV4cG9ydCBjb25zdCB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiA9IGFzeW5jICh7XG4gIGFnZW50SWQsXG4gIHNsdWdzLFxuICBwb3B1cCxcbiAgdGltZW91dE1zID0gMTgwXzAwMCxcbn06IHtcbiAgYWdlbnRJZDogc3RyaW5nXG4gIHNsdWdzOiBzdHJpbmdbXVxuICBwb3B1cD86IFdpbmRvdyB8IG51bGxcbiAgdGltZW91dE1zPzogbnVtYmVyXG59KTogUHJvbWlzZTx7IGF1dGhvcml6ZWQ6IHN0cmluZ1tdOyBlcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gIGlmICghc2x1Z3MubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHsgYXV0aG9yaXplZDogW10gfVxuICB9XG5cbiAgY29uc3QgcGVuZGluZyA9IG5ldyBTZXQoc2x1Z3MpXG4gIGxldCBvYXV0aEVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBjb25zdCBhdXRob3JpemVkU2x1Z3MgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29ubmVjdG9ycyA9IGF3YWl0IGdldEFnZW50Q29ubmVjdG9ycyhhZ2VudElkKVxuICAgIHJldHVybiBjb25uZWN0b3JzXG4gICAgICAuZmlsdGVyKGNvbm5lY3RvciA9PiBwZW5kaW5nLmhhcyhjb25uZWN0b3Iuc2x1ZykgJiYgY29ubmVjdG9yLnVzZXJfYXV0aG9yaXplZClcbiAgICAgIC5tYXAoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5zbHVnKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlXG4gICAgLy8gRGVjbGFyYWRvcyBhbnRlcyBwb3JxdWUgYGZpbmlzaGAgbG9zIGxpbXBpYSB5IGEgc3UgdmV6IGxvcyB0cmVzIGxvIGludm9jYW4uXG4gICAgLy8gUGFyYSBjdWFuZG8gYWxndW5vIHB1ZWRlIGRpc3BhcmFyLCBlbCBibG9xdWUgZGUgYWJham8geWEgbG9zIGFzaWduw7MuXG4gICAgbGV0IG9uTWVzc2FnZTogKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWRcbiAgICBsZXQgcG9sbDogbnVtYmVyXG4gICAgbGV0IHRpbWVyOiBudW1iZXJcblxuICAgIGNvbnN0IGZpbmlzaCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChmaW5pc2hlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGZpbmlzaGVkID0gdHJ1ZVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpXG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChwb2xsKVxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGF1dGhvcml6ZWQgPSBhd2FpdCBhdXRob3JpemVkU2x1Z3MoKVxuICAgICAgICByZXNvbHZlKHsgYXV0aG9yaXplZCwgZXJyb3I6IGF1dGhvcml6ZWQubGVuZ3RoID8gdW5kZWZpbmVkIDogb2F1dGhFcnJvciB9KVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJlc29sdmUoeyBhdXRob3JpemVkOiBbXSwgZXJyb3I6IG9hdXRoRXJyb3IgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Nvbm5lY3Rvck9BdXRoTWVzc2FnZShldmVudC5kYXRhKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5kYXRhLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICBvYXV0aEVycm9yID0gZXZlbnQuZGF0YS5tZXNzYWdlXG4gICAgICB9XG4gICAgICBmaW5pc2goKVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKVxuXG4gICAgcG9sbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAocG9wdXAgJiYgcG9wdXAuY2xvc2VkKSB7XG4gICAgICAgIGZpbmlzaCgpXG4gICAgICB9XG4gICAgfSwgNDAwKVxuXG4gICAgdGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBvYXV0aEVycm9yID0gb2F1dGhFcnJvciB8fCAndGltZW91dCdcbiAgICAgIGZpbmlzaCgpXG4gICAgfSwgdGltZW91dE1zKVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgY29ubmVjdG9yQXV0aEVycm9yTWVzc2FnZSA9IChlcnJvcjogQ29ubmVjdG9yQXV0aEVycm9yKTogc3RyaW5nID0+IHtcbiAgaWYgKGVycm9yLnNsdWcgPT09ICduZXRzdWl0ZScpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZVxuICB9XG4gIHJldHVybiBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQXVDckMsT0FBTyxJQUFNQyxzQkFBc0I7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFBO0lBQUEsSUFBQUMsUUFBQTtJQUFBLE9BQUFILG1CQUFBLENBQUFJLElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FDYlgsU0FBUyxDQUFDO1lBQy9CWSxJQUFJLEVBQUUsWUFBWTtZQUNsQkMsTUFBTSxFQUFFO1VBQ1YsQ0FBQyxDQUFDO1FBQUE7VUFISU4sUUFBUSxHQUFBRSxRQUFBLENBQUFLLElBQUE7VUFBQSxJQUtUUCxRQUFRLENBQUNRLEVBQUU7WUFBQU4sUUFBQSxDQUFBRSxJQUFBO1lBQUE7VUFBQTtVQUFBLE1BQ1IsSUFBSUssS0FBSyxDQUFDLDRCQUE0QixDQUFDO1FBQUE7VUFBQSxPQUFBUCxRQUFBLENBQUFRLE1BQUEsV0FHeENWLFFBQVEsQ0FBQ1csSUFBSSxDQUFDLENBQUM7UUFBQTtRQUFBO1VBQUEsT0FBQVQsUUFBQSxDQUFBVSxJQUFBO01BQUE7SUFBQSxHQUFBYixPQUFBO0VBQUEsQ0FDdkI7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
302
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZXRjaE1haWEiLCJnZXRBdmFpbGFibGVDb25uZWN0b3JzIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInBhdGgiLCJtZXRob2QiLCJzZW50Iiwib2siLCJFcnJvciIsImFicnVwdCIsImpzb24iLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJnZXRBZ2VudENvbm5lY3RvcnMiLCJfcmVmMiIsIl9jYWxsZWUyIiwiYWdlbnRJZCIsIl9jb250ZXh0MiIsImNvbmNhdCIsIl94IiwiYXV0aG9yaXplQ29ubmVjdG9yIiwiX3JlZjMiLCJfY2FsbGVlMyIsInNsdWciLCJwYXlsb2FkIiwiX2NvbnRleHQzIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiYXV0aF91cmwiLCJfeDIiLCJzYXZlQWdlbnRDb25uZWN0b3JzIiwiX3JlZjQiLCJfY2FsbGVlNCIsImNvbm5lY3RvclNsdWdzIiwiX2NvbnRleHQ0IiwiYm9keSIsImNvbm5lY3Rvcl9zbHVncyIsIl94MyIsIl94NCIsIm9wZW5Db25uZWN0b3JBdXRob3JpemF0aW9uV2luZG93cyIsImF1dGhvcml6YXRpb25zIiwicG9wdXBXaW5kb3ciLCJsZW5ndGgiLCJjbG9zZWQiLCJjbG9zZSIsIl9hdXRob3JpemF0aW9ucyIsIl90b0FycmF5IiwiZmlyc3RBdXRob3JpemF0aW9uIiwicmVtYWluaW5nQXV0aG9yaXphdGlvbnMiLCJfYXJyYXlMaWtlVG9BcnJheSIsInNsaWNlIiwib3BlbmVkIiwibG9jYXRpb24iLCJocmVmIiwid2luZG93Iiwib3BlbiIsImZvckVhY2giLCJhdXRob3JpemF0aW9uIiwiaXNDb25uZWN0b3JPQXV0aE1lc3NhZ2UiLCJkYXRhIiwiX3R5cGVvZiIsInR5cGUiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsIl9yZWY2IiwiX2NhbGxlZTciLCJfcmVmNSIsInNsdWdzIiwicG9wdXAiLCJfcmVmNSR0aW1lb3V0TXMiLCJ0aW1lb3V0TXMiLCJwZW5kaW5nIiwib2F1dGhFcnJvciIsImF1dGhvcml6ZWRTbHVncyIsIl9jb250ZXh0NyIsImF1dGhvcml6ZWQiLCJTZXQiLCJfcmVmNyIsIl9jYWxsZWU1IiwiY29ubmVjdG9ycyIsIl9jb250ZXh0NSIsImZpbHRlciIsImNvbm5lY3RvciIsImhhcyIsInVzZXJfYXV0aG9yaXplZCIsIm1hcCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZmluaXNoZWQiLCJvbk1lc3NhZ2UiLCJwb2xsIiwidGltZXIiLCJmaW5pc2giLCJfcmVmOCIsIl9jYWxsZWU2IiwiX3QiLCJfY29udGV4dDYiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2xlYXJJbnRlcnZhbCIsImNsZWFyVGltZW91dCIsImVycm9yIiwidW5kZWZpbmVkIiwiZXZlbnQiLCJzdGF0dXMiLCJtZXNzYWdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNldEludGVydmFsIiwic2V0VGltZW91dCIsIl94NSIsImNvbm5lY3RvckF1dGhFcnJvck1lc3NhZ2UiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmV0Y2hNYWlhIH0gZnJvbSAnLi4vY2xpZW50J1xuXG5leHBvcnQgdHlwZSBDYXRhbG9nQ29ubmVjdG9yID0ge1xuICBpZDogbnVtYmVyXG4gIHNsdWc6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgaWNvbl91cmw/OiBzdHJpbmdcbiAgcmVxdWlyZXNfYXV0aDogYm9vbGVhblxuICBpc19hY3RpdmU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQ29ubmVjdGlvblN0YXR1cyA9ICdvaycgfCAnbmVlZHNfYXR0ZW50aW9uJyB8ICdlcnJvcidcblxuZXhwb3J0IHR5cGUgQWdlbnRDb25uZWN0b3IgPSBDYXRhbG9nQ29ubmVjdG9yICYge1xuICBlbmFibGVkX2Zvcl9hZ2VudDogYm9vbGVhblxuICB1c2VyX2F1dGhvcml6ZWQ6IGJvb2xlYW5cbiAgY29ubmVjdGlvbl9zdGF0dXM/OiBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzXG59XG5cbmV4cG9ydCB0eXBlIFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGF1dGhfdXJsOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQ29ubmVjdG9yQXV0aEVycm9yID0ge1xuICBzbHVnOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBTYXZlQWdlbnRDb25uZWN0b3JzUmVzcG9uc2UgPSB7XG4gIGFnZW50X2lkOiBzdHJpbmdcbiAgY29ubmVjdG9yX3NsdWdzOiBzdHJpbmdbXVxuICByZXF1aXJlc19hdXRoPzogUGVuZGluZ0Nvbm5lY3RvckF1dGhvcml6YXRpb25bXVxuICBhdXRoX2Vycm9ycz86IENvbm5lY3RvckF1dGhFcnJvcltdXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBdmFpbGFibGVDb25uZWN0b3JzID0gYXN5bmMgKCk6IFByb21pc2U8Q2F0YWxvZ0Nvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiAnY29ubmVjdG9ycycsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbmV4cG9ydCBjb25zdCBnZXRBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoYWdlbnRJZDogc3RyaW5nKTogUHJvbWlzZTxBZ2VudENvbm5lY3RvcltdPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgYWdlbnRzLyR7YWdlbnRJZH0vY29ubmVjdG9yc2AsXG4gICAgbWV0aG9kOiAnR0VUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggYWdlbnQgY29ubmVjdG9ycycpXG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuanNvbigpXG59XG5cbi8qKiBGZXRjaCBhIGZyZXNoIE9BdXRoIFVSTCBvbiBjbGljazogaXRzIHN0YXRlIGV4cGlyZXMgYWZ0ZXIgdGVuIG1pbnV0ZXMuICovXG5leHBvcnQgY29uc3QgYXV0aG9yaXplQ29ubmVjdG9yID0gYXN5bmMgKHNsdWc6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hNYWlhKHtcbiAgICBwYXRoOiBgY29ubmVjdG9ycy8ke2VuY29kZVVSSUNvbXBvbmVudChzbHVnKX0vYXV0aG9yaXplYCxcbiAgICBtZXRob2Q6ICdQT1NUJyxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gc3RhcnQgY29ubmVjdG9yIGF1dGhvcml6YXRpb24nKVxuICB9XG5cbiAgY29uc3QgcGF5bG9hZDogeyBhdXRoX3VybDogc3RyaW5nIH0gPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgaWYgKCFwYXlsb2FkLmF1dGhfdXJsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb25uZWN0b3IgYXV0aG9yaXphdGlvbiBVUkwgaXMgbWlzc2luZycpXG4gIH1cbiAgcmV0dXJuIHBheWxvYWQuYXV0aF91cmxcbn1cblxuZXhwb3J0IGNvbnN0IHNhdmVBZ2VudENvbm5lY3RvcnMgPSBhc3luYyAoXG4gIGFnZW50SWQ6IHN0cmluZyxcbiAgY29ubmVjdG9yU2x1Z3M6IHN0cmluZ1tdXG4pOiBQcm9taXNlPFNhdmVBZ2VudENvbm5lY3RvcnNSZXNwb25zZT4gPT4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoTWFpYSh7XG4gICAgcGF0aDogYGFnZW50cy8ke2FnZW50SWR9L2Nvbm5lY3RvcnNgLFxuICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIGJvZHk6IHtcbiAgICAgIGNvbm5lY3Rvcl9zbHVnczogY29ubmVjdG9yU2x1Z3MsXG4gICAgfSxcbiAgfSlcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gc2F2ZSBhZ2VudCBjb25uZWN0b3JzJylcbiAgfVxuXG4gIHJldHVybiByZXNwb25zZS5qc29uKClcbn1cblxuZXhwb3J0IGNvbnN0IG9wZW5Db25uZWN0b3JBdXRob3JpemF0aW9uV2luZG93cyA9IChcbiAgYXV0aG9yaXphdGlvbnM6IFBlbmRpbmdDb25uZWN0b3JBdXRob3JpemF0aW9uW10sXG4gIHBvcHVwV2luZG93PzogV2luZG93IHwgbnVsbFxuKTogV2luZG93IHwgbnVsbCA9PiB7XG4gIGlmICghYXV0aG9yaXphdGlvbnMubGVuZ3RoKSB7XG4gICAgaWYgKHBvcHVwV2luZG93ICYmICFwb3B1cFdpbmRvdy5jbG9zZWQpIHtcbiAgICAgIHBvcHVwV2luZG93LmNsb3NlKClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IFtmaXJzdEF1dGhvcml6YXRpb24sIC4uLnJlbWFpbmluZ0F1dGhvcml6YXRpb25zXSA9IGF1dGhvcml6YXRpb25zXG5cbiAgbGV0IG9wZW5lZDogV2luZG93IHwgbnVsbCA9IG51bGxcbiAgaWYgKHBvcHVwV2luZG93ICYmICFwb3B1cFdpbmRvdy5jbG9zZWQpIHtcbiAgICAvLyBOYXZlZ2FyIGVsIHBvcHVwIHF1ZSB5YSBhYnJpbW9zIGVuIGVsIGNsaWNrIGRlbCB1c3VhcmlvOiBzaSBsbyBhYnJpw6lyYW1vc1xuICAgIC8vIGFjw6EsIGVsIGJyb3dzZXIgbG8gYmxvcXVlYXLDrWEgcG9yIG5vIHZlbmlyIGRlIHVuIGdlc3RvLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuICAgIHBvcHVwV2luZG93LmxvY2F0aW9uLmhyZWYgPSBmaXJzdEF1dGhvcml6YXRpb24uYXV0aF91cmxcbiAgICBvcGVuZWQgPSBwb3B1cFdpbmRvd1xuICB9IGVsc2Uge1xuICAgIG9wZW5lZCA9IHdpbmRvdy5vcGVuKGZpcnN0QXV0aG9yaXphdGlvbi5hdXRoX3VybCwgJ19ibGFuaycsICdwb3B1cD15ZXMsd2lkdGg9NTYwLGhlaWdodD03NjAnKVxuICB9XG5cbiAgcmVtYWluaW5nQXV0aG9yaXphdGlvbnMuZm9yRWFjaChhdXRob3JpemF0aW9uID0+IHtcbiAgICAvLyBNaXNtbyBjb21wb3J0YW1pZW50byBxdWUgZWwgcG9wdXAgcHJpbmNpcGFsOiBlbCBjYWxsYmFjayBPQXV0aCBkZWwgcHJvdmVlZG9yIHB1ZWRlIGRlcGVuZGVyIGRlIHdpbmRvdy5vcGVuZXJcbiAgICAvLyByZWFjdC1kb2N0b3ItZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtZG9jdG9yL3dpbmRvdy1vcGVuLXdpdGhvdXQtbm9vcGVuZXJcbiAgICB3aW5kb3cub3BlbihhdXRob3JpemF0aW9uLmF1dGhfdXJsLCAnX2JsYW5rJywgJ3BvcHVwPXllcyx3aWR0aD01NjAsaGVpZ2h0PTc2MCcpXG4gIH0pXG5cbiAgcmV0dXJuIG9wZW5lZFxufVxuXG5jb25zdCBpc0Nvbm5lY3Rvck9BdXRoTWVzc2FnZSA9IChcbiAgZGF0YTogdW5rbm93blxuKTogZGF0YSBpcyB7IHR5cGU6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmc7IHNsdWc/OiBzdHJpbmc7IG1lc3NhZ2U/OiBzdHJpbmcgfSA9PlxuICAhIWRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICd0eXBlJyBpbiBkYXRhICYmIChkYXRhIGFzIHsgdHlwZTogc3RyaW5nIH0pLnR5cGUgPT09ICdjb25uZWN0b3Itb2F1dGgnXG5cbi8qKiBXYWl0cyB1bnRpbCB0aGUgT0F1dGggcG9wdXAgZmluaXNoZXMsIHRoZW4gY29uZmlybXMgdGhlIGNvbXBhbnkgdG9rZW4gdmlhIEdFVC4gKi9cbmV4cG9ydCBjb25zdCB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiA9IGFzeW5jICh7XG4gIGFnZW50SWQsXG4gIHNsdWdzLFxuICBwb3B1cCxcbiAgdGltZW91dE1zID0gMTgwXzAwMCxcbn06IHtcbiAgYWdlbnRJZDogc3RyaW5nXG4gIHNsdWdzOiBzdHJpbmdbXVxuICBwb3B1cD86IFdpbmRvdyB8IG51bGxcbiAgdGltZW91dE1zPzogbnVtYmVyXG59KTogUHJvbWlzZTx7IGF1dGhvcml6ZWQ6IHN0cmluZ1tdOyBlcnJvcj86IHN0cmluZyB9PiA9PiB7XG4gIGlmICghc2x1Z3MubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHsgYXV0aG9yaXplZDogW10gfVxuICB9XG5cbiAgY29uc3QgcGVuZGluZyA9IG5ldyBTZXQoc2x1Z3MpXG4gIGxldCBvYXV0aEVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBjb25zdCBhdXRob3JpemVkU2x1Z3MgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY29ubmVjdG9ycyA9IGF3YWl0IGdldEFnZW50Q29ubmVjdG9ycyhhZ2VudElkKVxuICAgIHJldHVybiBjb25uZWN0b3JzXG4gICAgICAuZmlsdGVyKGNvbm5lY3RvciA9PiBwZW5kaW5nLmhhcyhjb25uZWN0b3Iuc2x1ZykgJiYgY29ubmVjdG9yLnVzZXJfYXV0aG9yaXplZClcbiAgICAgIC5tYXAoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5zbHVnKVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlXG4gICAgLy8gRGVjbGFyYWRvcyBhbnRlcyBwb3JxdWUgYGZpbmlzaGAgbG9zIGxpbXBpYSB5IGEgc3UgdmV6IGxvcyB0cmVzIGxvIGludm9jYW4uXG4gICAgLy8gUGFyYSBjdWFuZG8gYWxndW5vIHB1ZWRlIGRpc3BhcmFyLCBlbCBibG9xdWUgZGUgYWJham8geWEgbG9zIGFzaWduw7MuXG4gICAgbGV0IG9uTWVzc2FnZTogKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWRcbiAgICBsZXQgcG9sbDogbnVtYmVyXG4gICAgbGV0IHRpbWVyOiBudW1iZXJcblxuICAgIGNvbnN0IGZpbmlzaCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChmaW5pc2hlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGZpbmlzaGVkID0gdHJ1ZVxuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpXG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbChwb2xsKVxuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGF1dGhvcml6ZWQgPSBhd2FpdCBhdXRob3JpemVkU2x1Z3MoKVxuICAgICAgICByZXNvbHZlKHsgYXV0aG9yaXplZCwgZXJyb3I6IGF1dGhvcml6ZWQubGVuZ3RoID8gdW5kZWZpbmVkIDogb2F1dGhFcnJvciB9KVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJlc29sdmUoeyBhdXRob3JpemVkOiBbXSwgZXJyb3I6IG9hdXRoRXJyb3IgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Nvbm5lY3Rvck9BdXRoTWVzc2FnZShldmVudC5kYXRhKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChldmVudC5kYXRhLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICBvYXV0aEVycm9yID0gZXZlbnQuZGF0YS5tZXNzYWdlXG4gICAgICB9XG4gICAgICBmaW5pc2goKVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKVxuXG4gICAgcG9sbCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAocG9wdXAgJiYgcG9wdXAuY2xvc2VkKSB7XG4gICAgICAgIGZpbmlzaCgpXG4gICAgICB9XG4gICAgfSwgNDAwKVxuXG4gICAgdGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBvYXV0aEVycm9yID0gb2F1dGhFcnJvciB8fCAndGltZW91dCdcbiAgICAgIGZpbmlzaCgpXG4gICAgfSwgdGltZW91dE1zKVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgY29ubmVjdG9yQXV0aEVycm9yTWVzc2FnZSA9IChlcnJvcjogQ29ubmVjdG9yQXV0aEVycm9yKTogc3RyaW5nID0+IHtcbiAgaWYgKGVycm9yLnNsdWcgPT09ICduZXRzdWl0ZScpIHtcbiAgICByZXR1cm4gZXJyb3IubWVzc2FnZVxuICB9XG4gIHJldHVybiBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWBcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsV0FBVztBQXVDckMsT0FBTyxJQUFNQyxzQkFBc0I7RUFBQSxJQUFBQyxJQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFBO0lBQUEsSUFBQUMsUUFBQTtJQUFBLE9BQUFILG1CQUFBLENBQUFJLElBQUEsV0FBQUMsUUFBQTtNQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBRSxJQUFBO1FBQUE7VUFBQUYsUUFBQSxDQUFBRSxJQUFBO1VBQUEsT0FDYlgsU0FBUyxDQUFDO1lBQy9CWSxJQUFJLEVBQUUsWUFBWTtZQUNsQkMsTUFBTSxFQUFFO1VBQ1YsQ0FBQyxDQUFDO1FBQUE7VUFISU4sUUFBUSxHQUFBRSxRQUFBLENBQUFLLElBQUE7VUFBQSxJQUtUUCxRQUFRLENBQUNRLEVBQUU7WUFBQU4s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