@envive-ai/react-hooks 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.cjs +0 -2
- package/dist/application/commerce-api.cjs +1 -1
- package/dist/application/commerce-api.js +1 -1
- package/dist/application/models/chatElementDisplayLocationV3.cjs +5 -1
- package/dist/application/models/chatElementDisplayLocationV3.d.cts +5 -1
- package/dist/application/models/chatElementDisplayLocationV3.d.ts +5 -1
- package/dist/application/models/chatElementDisplayLocationV3.js +5 -1
- package/dist/application/models/frontendConfigV3.d.cts +2 -2
- package/dist/application/models/frontendConfigV3.d.ts +2 -2
- package/dist/application/models/variantInfo/variantInfo.cjs +2 -2
- package/dist/application/models/variantInfo/variantInfo.d.cts +2 -2
- package/dist/application/models/variantInfo/variantInfo.d.ts +2 -2
- package/dist/application/models/variantInfo/variantInfo.js +2 -2
- package/dist/application/utils/widgetTextRequestToApiRequest.cjs +6 -2
- package/dist/application/utils/widgetTextRequestToApiRequest.js +6 -2
- package/dist/atoms/app/index.cjs +4 -4
- package/dist/atoms/app/index.d.cts +7 -7
- package/dist/atoms/app/index.d.ts +2 -2
- package/dist/atoms/app/index.js +4 -4
- package/dist/atoms/app/variant.d.cts +6 -6
- package/dist/atoms/app/variant.d.ts +6 -6
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +17 -17
- package/dist/atoms/chat/form.d.cts +2 -2
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.cjs +7 -1
- package/dist/atoms/chat/index.d.cts +5 -4
- package/dist/atoms/chat/index.d.ts +5 -4
- package/dist/atoms/chat/index.js +3 -2
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.cjs +1 -0
- package/dist/atoms/chat/messageQueue.d.cts +31 -0
- package/dist/atoms/chat/messageQueue.d.ts +31 -0
- package/dist/atoms/chat/messageQueue.js +1 -1
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.cjs +46 -0
- package/dist/atoms/chat/replies.d.cts +14 -0
- package/dist/atoms/chat/replies.d.ts +14 -0
- package/dist/atoms/chat/replies.js +45 -0
- package/dist/atoms/chat/suggestions.d.cts +2 -2
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
- package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
- package/dist/atoms/org/customerService.d.cts +6 -6
- package/dist/atoms/org/customerService.d.ts +6 -6
- package/dist/atoms/org/graphqlConfig.d.cts +4 -4
- package/dist/atoms/org/graphqlConfig.d.ts +4 -4
- package/dist/atoms/org/index.cjs +2 -2
- package/dist/atoms/org/index.js +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
- package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
- package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
- package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
- package/dist/atoms/search/chatSearch.cjs +1 -1
- package/dist/atoms/search/chatSearch.d.cts +17 -17
- package/dist/atoms/search/chatSearch.d.ts +17 -17
- package/dist/atoms/search/chatSearch.js +1 -1
- package/dist/atoms/search/searchAPI.cjs +1 -1
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/searchAPI.d.ts +13 -13
- package/dist/atoms/search/searchAPI.js +1 -1
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +6 -4
- package/dist/contexts/amplitudeContext/amplitudeContext.js +6 -4
- package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +66 -0
- package/dist/contexts/enviveContext/WindowChatToggleBinder.js +65 -0
- package/dist/contexts/enviveContext/enviveContext.cjs +40 -17
- package/dist/contexts/enviveContext/enviveContext.d.cts +4 -1
- package/dist/contexts/enviveContext/enviveContext.d.ts +4 -1
- package/dist/contexts/enviveContext/enviveContext.js +41 -18
- package/dist/contexts/enviveContext/types.d.cts +1 -1
- package/dist/contexts/enviveContext/types.d.ts +1 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +56 -2
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +6 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +6 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +56 -2
- package/dist/contexts/graphqlContext/graphqlContext.cjs +15 -10
- package/dist/contexts/graphqlContext/graphqlContext.js +11 -6
- package/dist/contexts/graphqlContext/mockV3Config.cjs +65 -58
- package/dist/contexts/graphqlContext/mockV3Config.js +27 -21
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +29 -1
- package/dist/contexts/hardcopyContext/hardcopyContext.js +29 -1
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +1 -1
- package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +1 -1
- package/dist/contexts/pageContext/mapping.cjs +9 -1
- package/dist/contexts/pageContext/mapping.js +9 -1
- package/dist/contexts/pageContext/pageContext.cjs +8 -3
- package/dist/contexts/pageContext/pageContext.d.cts +2 -1
- package/dist/contexts/pageContext/pageContext.d.ts +2 -1
- package/dist/contexts/pageContext/pageContext.js +8 -3
- package/dist/contexts/pageContext/types.d.cts +11 -3
- package/dist/contexts/pageContext/types.d.ts +11 -3
- package/dist/contexts/salesAgentContext/chatAPI.cjs +44 -8
- package/dist/contexts/salesAgentContext/chatAPI.d.cts +7 -6
- package/dist/contexts/salesAgentContext/chatAPI.d.ts +7 -6
- package/dist/contexts/salesAgentContext/chatAPI.js +44 -8
- package/dist/contexts/salesAgentContext/formSubmittedUtils.cjs +37 -0
- package/dist/contexts/salesAgentContext/formSubmittedUtils.js +36 -0
- package/dist/contexts/salesAgentContext/index.d.cts +2 -2
- package/dist/contexts/salesAgentContext/index.d.ts +2 -2
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +39 -6
- package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +11 -4
- package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +11 -4
- package/dist/contexts/salesAgentContext/salesAgentContext.js +40 -7
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +13 -7
- package/dist/contexts/salesAgentContext/salesAgentService.js +13 -7
- package/dist/contexts/searchContext/searchContext.cjs +1 -1
- package/dist/contexts/searchContext/searchContext.js +1 -1
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/typesV3.cjs +2 -7
- package/dist/contexts/typesV3.d.cts +19 -11
- package/dist/contexts/typesV3.d.ts +21 -13
- package/dist/contexts/typesV3.js +3 -7
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +22 -29
- package/dist/contexts/userIdentityContext/userIdentityContext.d.cts +9 -8
- package/dist/contexts/userIdentityContext/userIdentityContext.d.ts +9 -8
- package/dist/contexts/userIdentityContext/userIdentityContext.js +22 -29
- package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +2 -1
- package/dist/contexts/widgetConfigContext/widgetConfigContext.js +2 -1
- package/dist/hooks/ElementObserver/useElementObserver.cjs +3 -2
- package/dist/hooks/ElementObserver/useElementObserver.js +3 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/Search/useSearch.cjs +2 -2
- package/dist/hooks/Search/useSearch.js +2 -2
- package/dist/hooks/Search/useSearchInput.cjs +2 -2
- package/dist/hooks/Search/useSearchInput.js +2 -2
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/mocks/index.cjs +5 -0
- package/dist/mocks/index.d.cts +2 -0
- package/dist/mocks/index.d.ts +2 -0
- package/dist/mocks/index.js +3 -0
- package/dist/mocks/salesAgentMockData.cjs +207 -0
- package/dist/mocks/salesAgentMockData.d.cts +11 -0
- package/dist/mocks/salesAgentMockData.d.ts +11 -0
- package/dist/mocks/salesAgentMockData.js +204 -0
- package/dist/services/amplitudeService/amplitudeService.cjs +77 -12
- package/dist/services/amplitudeService/amplitudeService.d.cts +12 -3
- package/dist/services/amplitudeService/amplitudeService.d.ts +12 -3
- package/dist/services/amplitudeService/amplitudeService.js +77 -12
- package/dist/services/userIdentityService/index.cjs +3 -0
- package/dist/services/userIdentityService/index.d.cts +2 -0
- package/dist/services/userIdentityService/index.d.ts +2 -0
- package/dist/services/userIdentityService/index.js +3 -0
- package/dist/services/userIdentityService/userIdentityService.cjs +49 -0
- package/dist/services/userIdentityService/userIdentityService.d.cts +19 -0
- package/dist/services/userIdentityService/userIdentityService.d.ts +19 -0
- package/dist/services/userIdentityService/userIdentityService.js +48 -0
- package/package.json +18 -5
- package/src/application/models/chatElementDisplayLocationV3.ts +4 -0
- package/src/application/models/frontendConfigV3.ts +1 -1
- package/src/application/models/variantInfo/variantInfo.ts +1 -1
- package/src/application/utils/widgetTextRequestToApiRequest.ts +7 -5
- package/src/atoms/app/index.ts +9 -7
- package/src/atoms/chat/index.ts +1 -0
- package/src/atoms/chat/replies.ts +56 -0
- package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +47 -66
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +4 -1
- package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +66 -0
- package/src/contexts/enviveContext/enviveContext.tsx +50 -7
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +101 -2
- package/src/contexts/graphqlContext/graphqlContext.tsx +11 -2
- package/src/contexts/graphqlContext/mockV3Config.ts +19 -4
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +29 -0
- package/src/contexts/pageContext/mapping.ts +16 -1
- package/src/contexts/pageContext/pageContext.tsx +12 -3
- package/src/contexts/pageContext/types.ts +16 -1
- package/src/contexts/salesAgentContext/chatAPI.ts +52 -11
- package/src/contexts/salesAgentContext/formSubmittedUtils.ts +57 -0
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +71 -5
- package/src/contexts/salesAgentContext/salesAgentService.ts +15 -9
- package/src/contexts/searchContext/__tests__/searchContext.test.tsx +3 -1
- package/src/contexts/typesV3.ts +22 -12
- package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +18 -131
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +47 -41
- package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -0
- package/src/hooks/ElementObserver/useElementObserver.ts +2 -1
- package/src/hooks/Search/__tests__/useSearch.test.tsx +11 -1
- package/src/mocks/index.ts +1 -0
- package/src/mocks/salesAgentMockData.ts +247 -0
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +17 -0
- package/src/services/amplitudeService/amplitudeService.ts +106 -11
- package/src/services/userIdentityService/index.ts +1 -0
- package/src/services/userIdentityService/userIdentityService.ts +64 -0
- package/dist/_virtual/rolldown_runtime.js +0 -29
- package/dist/contexts/featureFlagContext/featureFlagContext.cjs +0 -105
- package/dist/contexts/featureFlagContext/featureFlagContext.d.cts +0 -19
- package/dist/contexts/featureFlagContext/featureFlagContext.d.ts +0 -19
- package/dist/contexts/featureFlagContext/featureFlagContext.js +0 -102
- package/dist/contexts/featureFlagContext/index.cjs +0 -4
- package/dist/contexts/featureFlagContext/index.d.cts +0 -2
- package/dist/contexts/featureFlagContext/index.d.ts +0 -2
- package/dist/contexts/featureFlagContext/index.js +0 -3
- package/dist/node_modules/classnames/index.cjs +0 -52
- package/dist/node_modules/classnames/index.js +0 -49
- package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.cjs +0 -2
- package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.js +0 -4
- package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.cjs +0 -16
- package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.js +0 -17
- package/dist/packages/components-v3/dist/ChatHeader/components/Handle.cjs +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/Handle.js +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/components/Layout.cjs +0 -4
- package/dist/packages/components-v3/dist/ChatHeader/components/Layout.js +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/Logo.cjs +0 -3
- package/dist/packages/components-v3/dist/ChatHeader/components/Logo.js +0 -5
- package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.cjs +0 -7
- package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.js +0 -9
- package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.cjs +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.js +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/components/index.cjs +0 -6
- package/dist/packages/components-v3/dist/ChatHeader/components/index.js +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +0 -22
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +0 -23
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.cjs +0 -58
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.js +0 -59
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +0 -8
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.js +0 -9
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +0 -3
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.cjs +0 -12
- package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.js +0 -13
- package/dist/packages/components-v3/dist/ChatHeader/index.cjs +0 -2
- package/dist/packages/components-v3/dist/ChatHeader/index.js +0 -4
- package/dist/packages/components-v3/dist/ChatHeader/types/index.cjs +0 -11
- package/dist/packages/components-v3/dist/ChatHeader/types/index.js +0 -10
- package/dist/packages/components-v3/dist/Container/Container.cjs +0 -11
- package/dist/packages/components-v3/dist/Container/Container.js +0 -12
- package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +0 -3
- package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +0 -3
- package/dist/packages/components-v3/dist/Container/index.cjs +0 -1
- package/dist/packages/components-v3/dist/Container/index.js +0 -3
- package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.cjs +0 -2
- package/dist/packages/components-v3/dist/FloatingButton/FloatingButton.js +0 -4
- package/dist/packages/components-v3/dist/FloatingButton/components/Button.cjs +0 -9
- package/dist/packages/components-v3/dist/FloatingButton/components/Button.js +0 -10
- package/dist/packages/components-v3/dist/FloatingButton/components/Container.cjs +0 -9
- package/dist/packages/components-v3/dist/FloatingButton/components/Container.js +0 -10
- package/dist/packages/components-v3/dist/FloatingButton/components/Icon.cjs +0 -3
- package/dist/packages/components-v3/dist/FloatingButton/components/Icon.js +0 -5
- package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.cjs +0 -9
- package/dist/packages/components-v3/dist/FloatingButton/components/Wrapper.js +0 -10
- package/dist/packages/components-v3/dist/FloatingButton/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/FloatingButton/components/index.js +0 -6
- package/dist/packages/components-v3/dist/FloatingButton/index.cjs +0 -2
- package/dist/packages/components-v3/dist/FloatingButton/index.js +0 -4
- package/dist/packages/components-v3/dist/FloatingButton/types/types.cjs +0 -17
- package/dist/packages/components-v3/dist/FloatingButton/types/types.js +0 -16
- package/dist/packages/components-v3/dist/Image/Image.cjs +0 -16
- package/dist/packages/components-v3/dist/Image/Image.js +0 -17
- package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.js +0 -3
- package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.cjs +0 -1
- package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.js +0 -3
- package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.cjs +0 -2
- package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.cjs +0 -2
- package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +0 -15
- package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +0 -16
- package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.cjs +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.cjs +0 -1
- package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.js +0 -3
- package/dist/packages/components-v3/dist/ImageGallery/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/components/index.js +0 -6
- package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.js +0 -3
- package/dist/packages/components-v3/dist/ImageGallery/index.cjs +0 -2
- package/dist/packages/components-v3/dist/ImageGallery/index.js +0 -4
- package/dist/packages/components-v3/dist/ImageGallery/types/types.cjs +0 -13
- package/dist/packages/components-v3/dist/ImageGallery/types/types.js +0 -12
- package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +0 -12
- package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +0 -13
- package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +0 -3
- package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +0 -3
- package/dist/packages/components-v3/dist/PromptButton/components/Label.js +0 -5
- package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +0 -12
- package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +0 -13
- package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +0 -9
- package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +0 -10
- package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/PromptButton/components/index.js +0 -6
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +0 -3
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +0 -8
- package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +0 -9
- package/dist/packages/components-v3/dist/PromptButton/index.cjs +0 -2
- package/dist/packages/components-v3/dist/PromptButton/index.js +0 -4
- package/dist/packages/components-v3/dist/PromptButton/types/index.cjs +0 -13
- package/dist/packages/components-v3/dist/PromptButton/types/index.js +0 -12
- package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.cjs +0 -12
- package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.js +0 -14
- package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.cjs +0 -9
- package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.js +0 -10
- package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.cjs +0 -11
- package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.js +0 -12
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +0 -4
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +0 -6
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +0 -4
- package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +0 -6
- package/dist/packages/components-v3/dist/PromptCarousel/components/index.cjs +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/components/index.js +0 -5
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.cjs +0 -5
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.js +0 -7
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.js +0 -5
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +0 -1
- package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +0 -3
- package/dist/packages/components-v3/dist/PromptCarousel/index.cjs +0 -2
- package/dist/packages/components-v3/dist/PromptCarousel/index.js +0 -4
- package/dist/packages/components-v3/dist/PromptCarousel/types/types.cjs +0 -19
- package/dist/packages/components-v3/dist/PromptCarousel/types/types.js +0 -17
- package/dist/packages/components-v3/dist/Stack/Stack.cjs +0 -36
- package/dist/packages/components-v3/dist/Stack/Stack.js +0 -36
- package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.cjs +0 -27
- package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.js +0 -26
- package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.cjs +0 -20
- package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.js +0 -19
- package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.cjs +0 -19
- package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.js +0 -18
- package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.cjs +0 -16
- package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.js +0 -15
- package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.cjs +0 -21
- package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.js +0 -20
- package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.cjs +0 -38
- package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.js +0 -38
- package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.cjs +0 -13
- package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.js +0 -12
- package/dist/packages/components-v3/dist/Stack/index.cjs +0 -1
- package/dist/packages/components-v3/dist/Stack/index.js +0 -3
- package/dist/packages/components-v3/dist/Stack/utils/constants.cjs +0 -42
- package/dist/packages/components-v3/dist/Stack/utils/constants.js +0 -41
- package/dist/packages/components-v3/dist/Tokens/index.cjs +0 -11
- package/dist/packages/components-v3/dist/Tokens/index.js +0 -13
- package/dist/packages/components-v3/dist/Typography/Typography.cjs +0 -15
- package/dist/packages/components-v3/dist/Typography/Typography.js +0 -16
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +0 -3
- package/dist/packages/components-v3/dist/Typography/index.cjs +0 -1
- package/dist/packages/components-v3/dist/Typography/index.js +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.cjs +0 -2
- package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.js +0 -4
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.cjs +0 -14
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.js +0 -15
- package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.cjs +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.js +0 -5
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.cjs +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.js +0 -5
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.cjs +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.js +0 -5
- package/dist/packages/components-v3/dist/WelcomeMessage/components/index.cjs +0 -4
- package/dist/packages/components-v3/dist/WelcomeMessage/components/index.js +0 -6
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.js +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.js +0 -3
- package/dist/packages/components-v3/dist/WelcomeMessage/index.cjs +0 -2
- package/dist/packages/components-v3/dist/WelcomeMessage/index.js +0 -4
- package/dist/packages/components-v3/dist/WelcomeMessage/types/types.cjs +0 -14
- package/dist/packages/components-v3/dist/WelcomeMessage/types/types.js +0 -14
- package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.cjs +0 -12
- package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.js +0 -13
- package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +0 -1
- package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +0 -3
- package/dist/packages/components-v3/dist/WidgetWrapper/index.cjs +0 -2
- package/dist/packages/components-v3/dist/WidgetWrapper/index.js +0 -4
- package/dist/packages/components-v3/dist/WidgetWrapper/types/types.cjs +0 -13
- package/dist/packages/components-v3/dist/WidgetWrapper/types/types.js +0 -12
- package/dist/packages/components-v3/dist/src/models/colorsConfig.cjs +0 -26
- package/dist/packages/components-v3/dist/src/models/colorsConfig.js +0 -25
- package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.cjs +0 -16
- package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.js +0 -17
- package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.cjs +0 -25
- package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.js +0 -23
- package/dist/packages/components-v3/dist/tokens/colors/colors.cjs +0 -51
- package/dist/packages/components-v3/dist/tokens/colors/colors.js +0 -51
- package/dist/packages/components-v3/dist/tokens/radius/radius.cjs +0 -64
- package/dist/packages/components-v3/dist/tokens/radius/radius.js +0 -65
- package/dist/packages/components-v3/dist/tokens/theme/theme.cjs +0 -13
- package/dist/packages/components-v3/dist/tokens/theme/theme.js +0 -12
- package/dist/packages/components-v3/dist/tokens/typography/fontFamily.cjs +0 -25
- package/dist/packages/components-v3/dist/tokens/typography/fontFamily.js +0 -25
- package/dist/packages/components-v3/dist/tokens/typography/fontSize.cjs +0 -37
- package/dist/packages/components-v3/dist/tokens/typography/fontSize.js +0 -38
- package/dist/packages/components-v3/dist/tokens/typography/fontWeight.cjs +0 -17
- package/dist/packages/components-v3/dist/tokens/typography/fontWeight.js +0 -18
- package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.cjs +0 -15
- package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.js +0 -16
- package/dist/packages/components-v3/dist/tokens/typography/lineHeight.cjs +0 -31
- package/dist/packages/components-v3/dist/tokens/typography/lineHeight.js +0 -32
- package/dist/packages/components-v3/dist/tokens/typography/typography.cjs +0 -5
- package/dist/packages/components-v3/dist/tokens/typography/typography.js +0 -7
- package/dist/packages/components-v3/dist/tokens/utils.cjs +0 -7
- package/dist/packages/components-v3/dist/tokens/utils.js +0 -6
- package/dist/packages/components-v3/dist/utils/CustomIcon.cjs +0 -2
- package/dist/packages/components-v3/dist/utils/CustomIcon.js +0 -4
- package/dist/packages/components-v3/dist/utils/useCheckIsMobile.cjs +0 -1
- package/dist/packages/components-v3/dist/utils/useCheckIsMobile.js +0 -3
- package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +0 -57
- package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +0 -56
- package/dist/packages/icons/dist/FourPointStar.cjs +0 -8
- package/dist/packages/icons/dist/FourPointStar.js +0 -9
- package/dist/packages/icons/dist/IconCloseRounded.cjs +0 -22
- package/dist/packages/icons/dist/IconCloseRounded.js +0 -22
- package/dist/packages/icons/dist/IconCloseSharp.cjs +0 -31
- package/dist/packages/icons/dist/IconCloseSharp.js +0 -31
- package/dist/packages/icons/dist/IconCloseTransparent.cjs +0 -24
- package/dist/packages/icons/dist/IconCloseTransparent.js +0 -24
- package/dist/packages/icons/dist/Sparkles.cjs +0 -8
- package/dist/packages/icons/dist/Sparkles.js +0 -9
- package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +0 -28
- package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +0 -26
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +0 -697
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +0 -697
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +0 -44
- package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +0 -44
- package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +0 -1529
- package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +0 -1529
- package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +0 -330
- package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +0 -330
- package/dist/packages/icons/dist/node_modules/react/index.cjs +0 -14
- package/dist/packages/icons/dist/node_modules/react/index.js +0 -14
- package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +0 -14
- package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +0 -14
- package/src/contexts/featureFlagContext/featureFlagContext.tsx +0 -180
- package/src/contexts/featureFlagContext/index.ts +0 -1
|
@@ -13,10 +13,17 @@ interface SalesAgent extends SalesAgentChatAPI {
|
|
|
13
13
|
isPendingResponse: boolean;
|
|
14
14
|
isInitialized: boolean;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
interface MockSalesAgentData {
|
|
17
|
+
messages?: Message[][];
|
|
18
|
+
suggestions?: Suggestion[];
|
|
19
|
+
}
|
|
20
|
+
interface SalesAgentProviderProps {
|
|
17
21
|
children: ReactNode;
|
|
18
|
-
|
|
22
|
+
previewMode?: boolean;
|
|
23
|
+
mockData?: MockSalesAgentData;
|
|
24
|
+
}
|
|
25
|
+
declare const SalesAgentProvider: React.FC<SalesAgentProviderProps>;
|
|
19
26
|
declare const useSalesAgent: () => SalesAgent;
|
|
20
27
|
//#endregion
|
|
21
|
-
export { SalesAgent, SalesAgentProvider, useSalesAgent };
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
export { MockSalesAgentData, SalesAgent, SalesAgentProvider, SalesAgentProviderProps, useSalesAgent };
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBTdWdnZXN0aW9uLCBVc2VyRXZlbnQgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJIH0gZnJvbSAnLi9jaGF0QVBJJztcbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudCBleHRlbmRzIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gICAgcGVuZGluZ01lc3NhZ2VzOiBVc2VyRXZlbnRbXTtcbiAgICBzdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdO1xuICAgIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gICAgaXNQZW5kaW5nUmVzcG9uc2U6IGJvb2xlYW47XG4gICAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1NhbGVzQWdlbnREYXRhIHtcbiAgICBtZXNzYWdlcz86IE1lc3NhZ2VbXVtdO1xuICAgIHN1Z2dlc3Rpb25zPzogU3VnZ2VzdGlvbltdO1xufVxuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50UHJvdmlkZXJQcm9wcyB7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gICAgbW9ja0RhdGE/OiBNb2NrU2FsZXNBZ2VudERhdGE7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVNhbGVzQWdlbnQ6ICgpID0+IFNhbGVzQWdlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxJQUFXLGFBQWE7Q0FBQztPQUFXO09BQWU7T0FBRztPQUFBO0NBQUE7QUFDdEQsSUFBVyxxQkFBYztDQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3pCLElBQVcsMEJBQXFCO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDaEMsSUFBVyxxQkFBa0I7Q0FBQTtPQUFBO09BQUEsTUFBQTtDQUFBO0FBQzdCLElBQVcsZ0JBQWdCLENBQUMsV0FBSSxXQUFBIn0=
|
|
@@ -13,10 +13,17 @@ interface SalesAgent extends SalesAgentChatAPI {
|
|
|
13
13
|
isPendingResponse: boolean;
|
|
14
14
|
isInitialized: boolean;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
interface MockSalesAgentData {
|
|
17
|
+
messages?: Message[][];
|
|
18
|
+
suggestions?: Suggestion[];
|
|
19
|
+
}
|
|
20
|
+
interface SalesAgentProviderProps {
|
|
17
21
|
children: ReactNode;
|
|
18
|
-
|
|
22
|
+
previewMode?: boolean;
|
|
23
|
+
mockData?: MockSalesAgentData;
|
|
24
|
+
}
|
|
25
|
+
declare const SalesAgentProvider: React.FC<SalesAgentProviderProps>;
|
|
19
26
|
declare const useSalesAgent: () => SalesAgent;
|
|
20
27
|
//#endregion
|
|
21
|
-
export { SalesAgent, SalesAgentProvider, useSalesAgent };
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
export { MockSalesAgentData, SalesAgent, SalesAgentProvider, SalesAgentProviderProps, useSalesAgent };
|
|
29
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlJztcbmltcG9ydCB7IFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudENoYXRBUEkgfSBmcm9tICcuL2NoYXRBUEknO1xuZXhwb3J0IGludGVyZmFjZSBTYWxlc0FnZW50IGV4dGVuZHMgU2FsZXNBZ2VudENoYXRBUEkge1xuICAgIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgICBwZW5kaW5nTWVzc2FnZXM6IFVzZXJFdmVudFtdO1xuICAgIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gICAgaXNSZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbjtcbiAgICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBNb2NrU2FsZXNBZ2VudERhdGEge1xuICAgIG1lc3NhZ2VzPzogTWVzc2FnZVtdW107XG4gICAgc3VnZ2VzdGlvbnM/OiBTdWdnZXN0aW9uW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRQcm92aWRlclByb3BzIHtcbiAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAgIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgICBtb2NrRGF0YT86IE1vY2tTYWxlc0FnZW50RGF0YTtcbn1cbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFByb3ZpZGVyUHJvcHM+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdXNlU2FsZXNBZ2VudDogKCkgPT4gU2FsZXNBZ2VudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLElBQVcsYUFBYTtDQUFDO09BQVc7T0FBZTtPQUFHO09BQUE7Q0FBQTtBQUN0RCxJQUFXLHFCQUFjO0NBQUE7T0FBQTtPQUFBO0NBQUE7QUFDekIsSUFBVywwQkFBcUI7Q0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNoQyxJQUFXLHFCQUFrQjtDQUFBO09BQUE7T0FBQSxNQUFBO0NBQUE7QUFDN0IsSUFBVyxnQkFBZ0IsQ0FBQyxXQUFJLFdBQUEifQ==
|
|
@@ -4,23 +4,39 @@ import { initializedAtom, messagesAtom, pendingResponseAtom, responseStreamingAt
|
|
|
4
4
|
import { processUserEventAtom, userEventQueueAtom, userQueueEventCountAtom } from "../../atoms/chat/messageQueue.js";
|
|
5
5
|
import { useSystemSettingsContext } from "../../hooks/SystemSettingsContext/useSystemSettingsContext.js";
|
|
6
6
|
import "../../hooks/SystemSettingsContext/index.js";
|
|
7
|
+
import { buildFormSubmittedDisplayContent, createFormSubmittedUserMessage } from "./formSubmittedUtils.js";
|
|
7
8
|
import { useSalesAgentChatAPI } from "./chatAPI.js";
|
|
8
9
|
import { useSalesAgentService } from "./salesAgentService.js";
|
|
9
10
|
import { UserEventCategory } from "@spiffy-ai/commerce-api-client";
|
|
10
|
-
import { createContext, useCallback, useEffect, useMemo } from "react";
|
|
11
|
+
import { createContext, useCallback, useEffect, useMemo, useRef } from "react";
|
|
11
12
|
import { useAtom, useAtomValue, useSetAtom } from "jotai";
|
|
12
13
|
import { jsx } from "react/jsx-runtime";
|
|
13
14
|
|
|
14
15
|
//#region src/contexts/salesAgentContext/salesAgentContext.tsx
|
|
15
16
|
const SalesAgentContext = createContext(void 0);
|
|
16
|
-
const SalesAgentProvider = ({ children }) => {
|
|
17
|
+
const SalesAgentProvider = ({ children, previewMode = false, mockData }) => {
|
|
17
18
|
const userEvents = useAtomValue(userEventQueueAtom);
|
|
18
19
|
const userQueueEventCount = useAtomValue(userQueueEventCountAtom);
|
|
19
20
|
const markUserEventsProcessed = useSetAtom(processUserEventAtom);
|
|
20
21
|
const [isInitialized, setIsInitialized] = useAtom(initializedAtom);
|
|
21
22
|
const settingsContext = useSystemSettingsContext();
|
|
22
23
|
const setMessages = useSetAtom(messagesAtom);
|
|
24
|
+
const setSuggestions = useSetAtom(suggestionsAtom);
|
|
23
25
|
const { getStreamingResponses, createResponsePayload, getSuggestions, hydrateMessages } = useSalesAgentService();
|
|
26
|
+
const isSendingRef = useRef(false);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (previewMode && mockData) {
|
|
29
|
+
if (mockData.messages) setMessages(mockData.messages);
|
|
30
|
+
if (mockData.suggestions) setSuggestions(mockData.suggestions);
|
|
31
|
+
setIsInitialized(true);
|
|
32
|
+
}
|
|
33
|
+
}, [
|
|
34
|
+
previewMode,
|
|
35
|
+
mockData,
|
|
36
|
+
setMessages,
|
|
37
|
+
setSuggestions,
|
|
38
|
+
setIsInitialized
|
|
39
|
+
]);
|
|
24
40
|
const sendMessagesToBackend = useCallback(async (requestPayload) => {
|
|
25
41
|
try {
|
|
26
42
|
await getStreamingResponses(requestPayload);
|
|
@@ -35,7 +51,9 @@ const SalesAgentProvider = ({ children }) => {
|
|
|
35
51
|
markUserEventsProcessed
|
|
36
52
|
]);
|
|
37
53
|
useEffect(() => {
|
|
38
|
-
if (
|
|
54
|
+
if (previewMode) return;
|
|
55
|
+
if (userQueueEventCount > 0 && !isSendingRef.current) {
|
|
56
|
+
isSendingRef.current = true;
|
|
39
57
|
const payloadEvents = userEvents.slice(0, userQueueEventCount);
|
|
40
58
|
payloadEvents.forEach((userEvent) => {
|
|
41
59
|
if (userEvent && userEvent.category === UserEventCategory.QueryTyped) {
|
|
@@ -58,11 +76,20 @@ const SalesAgentProvider = ({ children }) => {
|
|
|
58
76
|
};
|
|
59
77
|
setMessages((current) => [...current, [newMessage]]);
|
|
60
78
|
}
|
|
79
|
+
if (userEvent && userEvent.category === UserEventCategory.FormSubmitted) {
|
|
80
|
+
const { formResponseId, filledSchema } = userEvent.attributes;
|
|
81
|
+
setMessages((prevMessagesState) => {
|
|
82
|
+
const newUserMessage = createFormSubmittedUserMessage(userEvent, buildFormSubmittedDisplayContent(prevMessagesState, formResponseId, filledSchema));
|
|
83
|
+
return [...prevMessagesState.map((turn) => turn.filter((msg) => !(msg.type === MessageType.Form && msg.id === formResponseId))).filter((turn) => turn.length > 0), [newUserMessage]];
|
|
84
|
+
});
|
|
85
|
+
}
|
|
61
86
|
});
|
|
62
87
|
sendMessagesToBackend(createResponsePayload({
|
|
63
88
|
userEvents: payloadEvents,
|
|
64
89
|
generationParams: settingsContext.generationParams
|
|
65
|
-
}))
|
|
90
|
+
})).finally(() => {
|
|
91
|
+
isSendingRef.current = false;
|
|
92
|
+
});
|
|
66
93
|
} else if (isInitialized) getSuggestions(createResponsePayload({
|
|
67
94
|
userEvents: [],
|
|
68
95
|
generationParams: settingsContext.generationParams
|
|
@@ -75,11 +102,17 @@ const SalesAgentProvider = ({ children }) => {
|
|
|
75
102
|
sendMessagesToBackend,
|
|
76
103
|
settingsContext.generationParams,
|
|
77
104
|
userEvents,
|
|
78
|
-
userQueueEventCount
|
|
105
|
+
userQueueEventCount,
|
|
106
|
+
previewMode
|
|
79
107
|
]);
|
|
80
108
|
useEffect(() => {
|
|
109
|
+
if (previewMode) return;
|
|
81
110
|
if (isInitialized) hydrateMessages();
|
|
82
|
-
}, [
|
|
111
|
+
}, [
|
|
112
|
+
isInitialized,
|
|
113
|
+
hydrateMessages,
|
|
114
|
+
previewMode
|
|
115
|
+
]);
|
|
83
116
|
return /* @__PURE__ */ jsx(SalesAgentContext.Provider, {
|
|
84
117
|
value: void 0,
|
|
85
118
|
children
|
|
@@ -124,4 +157,4 @@ const useSalesAgent = () => {
|
|
|
124
157
|
|
|
125
158
|
//#endregion
|
|
126
159
|
export { SalesAgentProvider, useSalesAgent };
|
|
127
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuanMiLCJuYW1lcyI6WyJTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9PiIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VSb2xlLCBNZXNzYWdlVHlwZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvbWVzc2FnZSc7XG5pbXBvcnQgeyBOZXh0TWVzc2FnZVJlcXVlc3QsIFN1Z2dlc3Rpb24sIFVzZXJFdmVudCB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgaW5pdGlhbGl6ZWRBdG9tLFxuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHtcbiAgcHJvY2Vzc1VzZXJFdmVudEF0b20sXG4gIHVzZXJFdmVudFF1ZXVlQXRvbSxcbiAgdXNlclF1ZXVlRXZlbnRDb3VudEF0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L21lc3NhZ2VRdWV1ZSc7XG5pbXBvcnQgeyB1c2VTeXN0ZW1TZXR0aW5nc0NvbnRleHQgfSBmcm9tICdzcmMvaG9va3MvU3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRDaGF0QVBJLCB1c2VTYWxlc0FnZW50Q2hhdEFQSSB9IGZyb20gJy4vY2hhdEFQSSc7XG5pbXBvcnQgeyB1c2VTYWxlc0FnZW50U2VydmljZSB9IGZyb20gJy4vc2FsZXNBZ2VudFNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnQgZXh0ZW5kcyBTYWxlc0FnZW50Q2hhdEFQSSB7XG4gIC8vIE1lc3NhZ2VzIGFyZSB0aGUgZnVsbCBsaXN0IG9mIGFsbCB0dXJuc1xuICBtZXNzYWdlczogTWVzc2FnZVtdW107XG4gIC8vIFBlbmRpbmcgbWVzc2FnZXMgYXJlIG1lc3NhZ2VzIHRoYXQgdGhlIHVzZXIgaGFzIGNsaWNrZWQvdHlwZWQgYnV0IGhhdmUgbm90IHlldCBiZWVuIHNlbnQgdG8gdGhlIGJhY2tlbmQuXG4gIHBlbmRpbmdNZXNzYWdlczogVXNlckV2ZW50W107XG4gIC8vIFN1Z2dlc3Rpb25zIGFyZSB0aGUgbGlzdCBvZiBzdWdnZXN0aW9ucyB0aGF0IHRoZSB1c2VyIGNhbiBjbGljayBvbiBpbiByZXNwb25zZSB0byB0aGUgbW9zdCByZWNlbnQgbWVzc2FnZSBmcm9tIHRoZSBiYWNrZW5kXG4gIHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW107XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHN0cmVhbWluZyBmcm9tIHRoZSBiYWNrZW5kXG4gIGlzUmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW47XG4gIC8vIFRydWUgd2hpbGUgdGhlIHJlc3BvbnNlIGlzIHBlbmRpbmcgZnJvbSB0aGUgYmFja2VuZFxuICBpc1BlbmRpbmdSZXNwb25zZTogYm9vbGVhbjtcbiAgLy8gVHJ1ZSB3aGVuIHRoZSBzYWxlcyBhZ2VudCBpcyBpbml0aWFsaXplZFxuICBpc0luaXRpYWxpemVkOiBib29sZWFuO1xufVxuXG5jb25zdCBTYWxlc0FnZW50Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U2FsZXNBZ2VudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgY2hpbGRyZW4gfSkgPT4ge1xuICBjb25zdCB1c2VyRXZlbnRzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IHVzZXJRdWV1ZUV2ZW50Q291bnQgPSB1c2VBdG9tVmFsdWUodXNlclF1ZXVlRXZlbnRDb3VudEF0b20pO1xuICBjb25zdCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZCA9IHVzZVNldEF0b20ocHJvY2Vzc1VzZXJFdmVudEF0b20pO1xuICBjb25zdCBbaXNJbml0aWFsaXplZCwgc2V0SXNJbml0aWFsaXplZF0gPSB1c2VBdG9tKGluaXRpYWxpemVkQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dCA9IHVzZVN5c3RlbVNldHRpbmdzQ29udGV4dCgpO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcblxuICBjb25zdCB7IGdldFN0cmVhbWluZ1Jlc3BvbnNlcywgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLCBnZXRTdWdnZXN0aW9ucywgaHlkcmF0ZU1lc3NhZ2VzIH0gPVxuICAgIHVzZVNhbGVzQWdlbnRTZXJ2aWNlKCk7XG5cbiAgLy8gVE9ETzogRW5zdXJlIHRoYXQgYW1wbGl0dWRlIGV2ZW50cyBhcmUgYmVpbmcgZW1pdHRlZFxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgc3RyZWFtaW5nIHJlc3BvbnNlcyB0byBmdW5jdGlvblxuXG4gIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgaHlkcmF0aW9uIG9mIHRoZSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kIG9uIGluaXRpYWxpemF0aW9uXG4gIGNvbnN0IHNlbmRNZXNzYWdlc1RvQmFja2VuZCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChyZXF1ZXN0UGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMocmVxdWVzdFBheWxvYWQpO1xuICAgICAgICBzZXRJc0luaXRpYWxpemVkKHRydWUpO1xuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgcGVuZGluZyBtZXNzYWdlIGZyb20gdGhlIHVzZXIgZXZlbnRzXG4gICAgICAgIHJlcXVlc3RQYXlsb2FkLnVzZXJFdmVudHM/Lm1hcCh1c2VyRXZlbnQgPT4gbWFya1VzZXJFdmVudHNQcm9jZXNzZWQoW3VzZXJFdmVudC5ldmVudElkXSkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgTG9nZ2VyLmxvZ0Vycm9yKCdbZW52aXZlLWFpXSBlcnJvciBzZW5kaW5nIG1lc3NhZ2UnLCBlcnJvcik7XG4gICAgICB9XG4gICAgfSxcbiAgICBbZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLCBzZXRJc0luaXRpYWxpemVkLCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZF0sXG4gICk7XG5cbiAgLy8gVGhpcyBpcyB0aGUgcHJpbWFyeSBldmVudCBsb29wIGZvciBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGJhY2tlbmQgQVBJXG4gIC8vIEl0IHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgYXJlIHBlbmRpbmcgbWVzc2FnZXMgdG8gYmUgc2VudCB0byB0aGUgYmFja2VuZFxuICAvLyBJdCB3aWxsIGJlIHJlc3BvbnNpYmxlIGZvciBzZW5kaW5nIHRoZSBtZXNzYWdlcyB0byB0aGUgYmFja2VuZCBhbmQgcmVjZWl2aW5nIHRoZSByZXNwb25zZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlclF1ZXVlRXZlbnRDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IHBheWxvYWRFdmVudHMgPSB1c2VyRXZlbnRzLnNsaWNlKDAsIHVzZXJRdWV1ZUV2ZW50Q291bnQpO1xuXG4gICAgICBwYXlsb2FkRXZlbnRzLmZvckVhY2godXNlckV2ZW50ID0+IHtcbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBzZXRNZXNzYWdlcyhjdXJyZW50ID0+IFsuLi5jdXJyZW50LCBbbmV3TWVzc2FnZV1dKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlOiBNZXNzYWdlID0ge1xuICAgICAgICAgICAgaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuVXNlcixcbiAgICAgICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlF1ZXJ5VHlwZWQsXG4gICAgICAgICAgICBjcmVhdGVkQXQ6IHVzZXJFdmVudC5jcmVhdGVkQXQsXG4gICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICBjb250ZW50OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50ID8/ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNldE1lc3NhZ2VzKGN1cnJlbnQgPT4gWy4uLmN1cnJlbnQsIFtuZXdNZXNzYWdlXV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IHBheWxvYWRFdmVudHMsXG4gICAgICAgICAgZ2VuZXJhdGlvblBhcmFtczogc2V0dGluZ3NDb250ZXh0LmdlbmVyYXRpb25QYXJhbXMsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGdldFN1Z2dlc3Rpb25zKFxuICAgICAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQoe1xuICAgICAgICAgIHVzZXJFdmVudHM6IFtdLFxuICAgICAgICAgIGdlbmVyYXRpb25QYXJhbXM6IHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgc2V0TWVzc2FnZXMsXG4gICAgc2VuZE1lc3NhZ2VzVG9CYWNrZW5kLFxuICAgIHNldHRpbmdzQ29udGV4dC5nZW5lcmF0aW9uUGFyYW1zLFxuICAgIHVzZXJFdmVudHMsXG4gICAgdXNlclF1ZXVlRXZlbnRDb3VudCxcbiAgXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNJbml0aWFsaXplZCkge1xuICAgICAgLy8gUmVoeWRyYXRlIGFueSBtZXNzYWdlcyBmcm9tIHRoZSBiYWNrZW5kXG4gICAgICBoeWRyYXRlTWVzc2FnZXMoKTtcbiAgICB9XG4gIH0sIFtpc0luaXRpYWxpemVkLCBoeWRyYXRlTWVzc2FnZXNdKTtcblxuICByZXR1cm4gPFNhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt1bmRlZmluZWR9PntjaGlsZHJlbn08L1NhbGVzQWdlbnRDb250ZXh0LlByb3ZpZGVyPjtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50ID0gKCk6IFNhbGVzQWdlbnQgPT4ge1xuICBjb25zdCBtZXNzYWdlcyA9IHVzZUF0b21WYWx1ZShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzdWdnZXN0aW9ucyA9IHVzZUF0b21WYWx1ZShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZXMgPSB1c2VBdG9tVmFsdWUodXNlckV2ZW50UXVldWVBdG9tKTtcbiAgY29uc3QgaXNSZXNwb25zZVN0cmVhbWluZyA9IHVzZUF0b21WYWx1ZShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBpc1BlbmRpbmdSZXNwb25zZSA9IHVzZUF0b21WYWx1ZShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3QgaXNJbml0aWFsaXplZCA9IHVzZUF0b21WYWx1ZShpbml0aWFsaXplZEF0b20pO1xuICBjb25zdCB7XG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICB9ID0gdXNlU2FsZXNBZ2VudENoYXRBUEkoKTtcblxuICBjb25zdCBzYWxlc0FnZW50OiBTYWxlc0FnZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VzLFxuICAgICAgc3VnZ2VzdGlvbnMsXG4gICAgICBwZW5kaW5nTWVzc2FnZXMsXG4gICAgICBpc0luaXRpYWxpemVkLFxuICAgICAgaXNSZXNwb25zZVN0cmVhbWluZyxcbiAgICAgIGlzUGVuZGluZ1Jlc3BvbnNlLFxuICAgICAgbG9nUGFnZVZpc2l0LFxuICAgICAgbG9nVXNlckV2ZW50LFxuICAgICAgb25TdWdnZXN0aW9uQ2xpY2tlZCxcbiAgICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gICAgfTtcbiAgfSwgW1xuICAgIG1lc3NhZ2VzLFxuICAgIHN1Z2dlc3Rpb25zLFxuICAgIHBlbmRpbmdNZXNzYWdlcyxcbiAgICBpc0luaXRpYWxpemVkLFxuICAgIGlzUmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgaXNQZW5kaW5nUmVzcG9uc2UsXG4gICAgbG9nUGFnZVZpc2l0LFxuICAgIGxvZ1VzZXJFdmVudCxcbiAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgIG9uVHlwZWRNZXNzYWdlU3VibWl0dGVkLFxuICAgIG9uRm9ybVJlc3BvbnNlU3VibWl0dGVkLFxuICBdKTtcbiAgcmV0dXJuIHNhbGVzQWdlbnQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNLG9CQUFvQixjQUFzQyxPQUFVO0FBRTFFLE1BQWFBLHNCQUF5RCxFQUFFLGVBQWU7Q0FDckYsTUFBTSxhQUFhLGFBQWEsbUJBQW1CO0NBQ25ELE1BQU0sc0JBQXNCLGFBQWEsd0JBQXdCO0NBQ2pFLE1BQU0sMEJBQTBCLFdBQVcscUJBQXFCO0NBQ2hFLE1BQU0sQ0FBQyxlQUFlLG9CQUFvQixRQUFRLGdCQUFnQjtDQUNsRSxNQUFNLGtCQUFrQiwwQkFBMEI7Q0FDbEQsTUFBTSxjQUFjLFdBQVcsYUFBYTtDQUU1QyxNQUFNLEVBQUUsdUJBQXVCLHVCQUF1QixnQkFBZ0Isb0JBQ3BFLHNCQUFzQjtDQU94QixNQUFNLHdCQUF3QixZQUM1QixPQUFPLG1CQUF1QztBQUM1QyxNQUFJO0FBQ0YsU0FBTSxzQkFBc0IsZUFBZTtBQUMzQyxvQkFBaUIsS0FBSztBQUd0QixrQkFBZSxZQUFZLEtBQUksY0FBYSx3QkFBd0IsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxDQUFDO1dBQ2xGLE9BQU87QUFDZCxrQkFBTyxTQUFTLHFDQUFxQyxNQUFNOztJQUcvRDtFQUFDO0VBQXVCO0VBQWtCO0VBQXdCLENBQ25FO0FBS0QsaUJBQWdCO0FBQ2QsTUFBSSxzQkFBc0IsR0FBRztHQUMzQixNQUFNLGdCQUFnQixXQUFXLE1BQU0sR0FBRyxvQkFBb0I7QUFFOUQsaUJBQWMsU0FBUSxjQUFhO0FBQ2pDLFFBQUksYUFBYSxVQUFVLGFBQWEsa0JBQWtCLFlBQVk7S0FDcEUsTUFBTUMsYUFBc0I7TUFDMUIsSUFBSSxVQUFVO01BQ2QsTUFBTSxZQUFZO01BQ2xCLE1BQU0sWUFBWTtNQUNsQixXQUFXLFVBQVU7TUFDckIsVUFBVSxFQUNSLFNBQVMsVUFBVSxXQUFXLE9BQy9CO01BQ0Y7QUFDRCxrQkFBWSxZQUFXLENBQUMsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7O0FBRXBELFFBQUksYUFBYSxVQUFVLGFBQWEsa0JBQWtCLG1CQUFtQjtLQUMzRSxNQUFNQSxhQUFzQjtNQUMxQixJQUFJLFVBQVU7TUFDZCxNQUFNLFlBQVk7TUFDbEIsTUFBTSxZQUFZO01BQ2xCLFdBQVcsVUFBVTtNQUNyQixVQUFVLEVBQ1IsU0FBUyxVQUFVLFdBQVcsV0FBVyxJQUMxQztNQUNGO0FBQ0Qsa0JBQVksWUFBVyxDQUFDLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDOztLQUVwRDtBQUVGLHlCQUNFLHNCQUFzQjtJQUNwQixZQUFZO0lBQ1osa0JBQWtCLGdCQUFnQjtJQUNuQyxDQUFDLENBQ0g7YUFDUSxjQUNULGdCQUNFLHNCQUFzQjtHQUNwQixZQUFZLEVBQUU7R0FDZCxrQkFBa0IsZ0JBQWdCO0dBQ25DLENBQUMsQ0FDSDtJQUVGO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLGdCQUFnQjtFQUNoQjtFQUNBO0VBQ0QsQ0FBQztBQUVGLGlCQUFnQjtBQUNkLE1BQUksY0FFRixrQkFBaUI7SUFFbEIsQ0FBQyxlQUFlLGdCQUFnQixDQUFDO0FBRXBDLFFBQU8sb0JBQUMsa0JBQWtCO0VBQVMsT0FBTztFQUFZO0dBQXNDOztBQUc5RixNQUFhLHNCQUFrQztDQUM3QyxNQUFNLFdBQVcsYUFBYSxhQUFhO0NBQzNDLE1BQU0sY0FBYyxhQUFhLGdCQUFnQjtDQUNqRCxNQUFNLGtCQUFrQixhQUFhLG1CQUFtQjtDQUN4RCxNQUFNLHNCQUFzQixhQUFhLHNCQUFzQjtDQUMvRCxNQUFNLG9CQUFvQixhQUFhLG9CQUFvQjtDQUMzRCxNQUFNLGdCQUFnQixhQUFhLGdCQUFnQjtDQUNuRCxNQUFNLEVBQ0osY0FDQSxjQUNBLHFCQUNBLHlCQUNBLDRCQUNFLHNCQUFzQjtBQTZCMUIsUUEzQitCLGNBQWM7QUFDM0MsU0FBTztHQUNMO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDQTtHQUNBO0dBQ0E7R0FDRDtJQUNBO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNELENBQUMifQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudENvbnRleHQuanMiLCJuYW1lcyI6WyJTYWxlc0FnZW50UHJvdmlkZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRQcm92aWRlclByb3BzPiIsIm5ld01lc3NhZ2U6IE1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudENvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b20sIHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgTWVzc2FnZSwgTWVzc2FnZVJvbGUsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9tZXNzYWdlJztcbmltcG9ydCB7IE5leHRNZXNzYWdlUmVxdWVzdCwgU3VnZ2VzdGlvbiwgVXNlckV2ZW50IH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscyc7XG5pbXBvcnQge1xuICBpbml0aWFsaXplZEF0b20sXG4gIG1lc3NhZ2VzQXRvbSxcbiAgcGVuZGluZ1Jlc3BvbnNlQXRvbSxcbiAgcmVzcG9uc2VTdHJlYW1pbmdBdG9tLFxuICBzdWdnZXN0aW9uc0F0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L2NoYXRTdGF0ZSc7XG5pbXBvcnQge1xuICBwcm9jZXNzVXNlckV2ZW50QXRvbSxcbiAgdXNlckV2ZW50UXVldWVBdG9tLFxuICB1c2VyUXVldWVFdmVudENvdW50QXRvbSxcbn0gZnJvbSAnc3JjL2F0b21zL2NoYXQvbWVzc2FnZVF1ZXVlJztcbmltcG9ydCB7IHVzZVN5c3RlbVNldHRpbmdzQ29udGV4dCB9IGZyb20gJ3NyYy9ob29rcy9TeXN0ZW1TZXR0aW5nc0NvbnRleHQnO1xuaW1wb3J0IHtcbiAgYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQsXG4gIGNyZWF0ZUZvcm1TdWJtaXR0ZWRVc2VyTWVzc2FnZSxcbn0gZnJvbSAnLi9mb3JtU3VibWl0dGVkVXRpbHMnO1xuaW1wb3J0IHsgU2FsZXNBZ2VudENoYXRBUEksIHVzZVNhbGVzQWdlbnRDaGF0QVBJIH0gZnJvbSAnLi9jaGF0QVBJJztcbmltcG9ydCB7IHVzZVNhbGVzQWdlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zYWxlc0FnZW50U2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FsZXNBZ2VudCBleHRlbmRzIFNhbGVzQWdlbnRDaGF0QVBJIHtcbiAgLy8gTWVzc2FnZXMgYXJlIHRoZSBmdWxsIGxpc3Qgb2YgYWxsIHR1cm5zXG4gIG1lc3NhZ2VzOiBNZXNzYWdlW11bXTtcbiAgLy8gUGVuZGluZyBtZXNzYWdlcyBhcmUgbWVzc2FnZXMgdGhhdCB0aGUgdXNlciBoYXMgY2xpY2tlZC90eXBlZCBidXQgaGF2ZSBub3QgeWV0IGJlZW4gc2VudCB0byB0aGUgYmFja2VuZC5cbiAgcGVuZGluZ01lc3NhZ2VzOiBVc2VyRXZlbnRbXTtcbiAgLy8gU3VnZ2VzdGlvbnMgYXJlIHRoZSBsaXN0IG9mIHN1Z2dlc3Rpb25zIHRoYXQgdGhlIHVzZXIgY2FuIGNsaWNrIG9uIGluIHJlc3BvbnNlIHRvIHRoZSBtb3N0IHJlY2VudCBtZXNzYWdlIGZyb20gdGhlIGJhY2tlbmRcbiAgc3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25bXTtcbiAgLy8gVHJ1ZSB3aGlsZSB0aGUgcmVzcG9uc2UgaXMgc3RyZWFtaW5nIGZyb20gdGhlIGJhY2tlbmRcbiAgaXNSZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbjtcbiAgLy8gVHJ1ZSB3aGlsZSB0aGUgcmVzcG9uc2UgaXMgcGVuZGluZyBmcm9tIHRoZSBiYWNrZW5kXG4gIGlzUGVuZGluZ1Jlc3BvbnNlOiBib29sZWFuO1xuICAvLyBUcnVlIHdoZW4gdGhlIHNhbGVzIGFnZW50IGlzIGluaXRpYWxpemVkXG4gIGlzSW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTW9ja1NhbGVzQWdlbnREYXRhIHtcbiAgbWVzc2FnZXM/OiBNZXNzYWdlW11bXTtcbiAgc3VnZ2VzdGlvbnM/OiBTdWdnZXN0aW9uW107XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxTYWxlc0FnZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNhbGVzQWdlbnRQcm92aWRlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBtb2NrRGF0YT86IE1vY2tTYWxlc0FnZW50RGF0YTtcbn1cblxuZXhwb3J0IGNvbnN0IFNhbGVzQWdlbnRQcm92aWRlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gIG1vY2tEYXRhLFxufSkgPT4ge1xuICBjb25zdCB1c2VyRXZlbnRzID0gdXNlQXRvbVZhbHVlKHVzZXJFdmVudFF1ZXVlQXRvbSk7XG4gIGNvbnN0IHVzZXJRdWV1ZUV2ZW50Q291bnQgPSB1c2VBdG9tVmFsdWUodXNlclF1ZXVlRXZlbnRDb3VudEF0b20pO1xuICBjb25zdCBtYXJrVXNlckV2ZW50c1Byb2Nlc3NlZCA9IHVzZVNldEF0b20ocHJvY2Vzc1VzZXJFdmVudEF0b20pO1xuICBjb25zdCBbaXNJbml0aWFsaXplZCwgc2V0SXNJbml0aWFsaXplZF0gPSB1c2VBdG9tKGluaXRpYWxpemVkQXRvbSk7XG4gIGNvbnN0IHNldHRpbmdzQ29udGV4dCA9IHVzZVN5c3RlbVNldHRpbmdzQ29udGV4dCgpO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc2V0U3VnZ2VzdGlvbnMgPSB1c2VTZXRBdG9tKHN1Z2dlc3Rpb25zQXRvbSk7XG5cbiAgY29uc3QgeyBnZXRTdHJlYW1pbmdSZXNwb25zZXMsIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCwgZ2V0U3VnZ2VzdGlvbnMsIGh5ZHJhdGVNZXNzYWdlcyB9ID1cbiAgICB1c2VTYWxlc0FnZW50U2VydmljZSgpO1xuXG4gIGNvbnN0IGlzU2VuZGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgLy8gSW5pdGlhbGl6ZSB3aXRoIG1vY2sgZGF0YSBpbiBwcmV2aWV3IG1vZGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldmlld01vZGUgJiYgbW9ja0RhdGEpIHtcbiAgICAgIGlmIChtb2NrRGF0YS5tZXNzYWdlcykge1xuICAgICAgICBzZXRNZXNzYWdlcyhtb2NrRGF0YS5tZXNzYWdlcyk7XG4gICAgICB9XG4gICAgICBpZiAobW9ja0RhdGEuc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgc2V0U3VnZ2VzdGlvbnMobW9ja0RhdGEuc3VnZ2VzdGlvbnMpO1xuICAgICAgfVxuICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKTtcbiAgICB9XG4gIH0sIFtwcmV2aWV3TW9kZSwgbW9ja0RhdGEsIHNldE1lc3NhZ2VzLCBzZXRTdWdnZXN0aW9ucywgc2V0SXNJbml0aWFsaXplZF0pO1xuXG4gIC8vIFRPRE86IEVuc3VyZSB0aGF0IGFtcGxpdHVkZSBldmVudHMgYXJlIGJlaW5nIGVtaXR0ZWRcblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHN0cmVhbWluZyByZXNwb25zZXMgdG8gZnVuY3Rpb25cblxuICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIGh5ZHJhdGlvbiBvZiB0aGUgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZCBvbiBpbml0aWFsaXphdGlvblxuICBjb25zdCBzZW5kTWVzc2FnZXNUb0JhY2tlbmQgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocmVxdWVzdFBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzKHJlcXVlc3RQYXlsb2FkKTtcbiAgICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKTtcblxuICAgICAgICAvLyBSZW1vdmUgdGhlIHBlbmRpbmcgbWVzc2FnZSBmcm9tIHRoZSB1c2VyIGV2ZW50c1xuICAgICAgICByZXF1ZXN0UGF5bG9hZC51c2VyRXZlbnRzPy5tYXAodXNlckV2ZW50ID0+IG1hcmtVc2VyRXZlbnRzUHJvY2Vzc2VkKFt1c2VyRXZlbnQuZXZlbnRJZF0pKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIExvZ2dlci5sb2dFcnJvcignW2Vudml2ZS1haV0gZXJyb3Igc2VuZGluZyBtZXNzYWdlJywgZXJyb3IpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2dldFN0cmVhbWluZ1Jlc3BvbnNlcywgc2V0SXNJbml0aWFsaXplZCwgbWFya1VzZXJFdmVudHNQcm9jZXNzZWRdLFxuICApO1xuXG4gIC8vIFRoaXMgaXMgdGhlIHByaW1hcnkgZXZlbnQgbG9vcCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBiYWNrZW5kIEFQSVxuICAvLyBJdCB3aWxsIGJlIHRyaWdnZXJlZCB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nIG1lc3NhZ2VzIHRvIGJlIHNlbnQgdG8gdGhlIGJhY2tlbmRcbiAgLy8gSXQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3Igc2VuZGluZyB0aGUgbWVzc2FnZXMgdG8gdGhlIGJhY2tlbmQgYW5kIHJlY2VpdmluZyB0aGUgcmVzcG9uc2VzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2tpcCBiYWNrZW5kIGNvbW11bmljYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgaWYgKHByZXZpZXdNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVzZXJRdWV1ZUV2ZW50Q291bnQgPiAwICYmICFpc1NlbmRpbmdSZWYuY3VycmVudCkge1xuICAgICAgaXNTZW5kaW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgY29uc3QgcGF5bG9hZEV2ZW50cyA9IHVzZXJFdmVudHMuc2xpY2UoMCwgdXNlclF1ZXVlRXZlbnRDb3VudCk7XG5cbiAgICAgIHBheWxvYWRFdmVudHMuZm9yRWFjaCh1c2VyRXZlbnQgPT4ge1xuICAgICAgICBpZiAodXNlckV2ZW50ICYmIHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgICAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBpZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogdXNlckV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHNldE1lc3NhZ2VzKGN1cnJlbnQgPT4gWy4uLmN1cnJlbnQsIFtuZXdNZXNzYWdlXV0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1c2VyRXZlbnQgJiYgdXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5TdWdnZXN0aW9uQ2xpY2tlZCkge1xuICAgICAgICAgIGNvbnN0IG5ld01lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgICAgICBpZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Vc2VyLFxuICAgICAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuUXVlcnlUeXBlZCxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogdXNlckV2ZW50LmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLmNvbnRlbnQgPz8gJycsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgc2V0TWVzc2FnZXMoY3VycmVudCA9PiBbLi4uY3VycmVudCwgW25ld01lc3NhZ2VdXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZXJFdmVudCAmJiB1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LkZvcm1TdWJtaXR0ZWQpIHtcbiAgICAgICAgICBjb25zdCB7IGZvcm1SZXNwb25zZUlkLCBmaWxsZWRTY2hlbWEgfSA9IHVzZXJFdmVudC5hdHRyaWJ1dGVzO1xuICAgICAgICAgIHNldE1lc3NhZ2VzKHByZXZNZXNzYWdlc1N0YXRlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1TdWJtaXR0ZWRDb250ZW50ID0gYnVpbGRGb3JtU3VibWl0dGVkRGlzcGxheUNvbnRlbnQoXG4gICAgICAgICAgICAgIHByZXZNZXNzYWdlc1N0YXRlLFxuICAgICAgICAgICAgICBmb3JtUmVzcG9uc2VJZCxcbiAgICAgICAgICAgICAgZmlsbGVkU2NoZW1hLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1VzZXJNZXNzYWdlID0gY3JlYXRlRm9ybVN1Ym1pdHRlZFVzZXJNZXNzYWdlKHVzZXJFdmVudCwgZm9ybVN1Ym1pdHRlZENvbnRlbnQpO1xuICAgICAgICAgICAgY29uc3QgdHVybnNXaXRob3V0Rm9ybSA9IHByZXZNZXNzYWdlc1N0YXRlXG4gICAgICAgICAgICAgIC5tYXAodHVybiA9PlxuICAgICAgICAgICAgICAgIHR1cm4uZmlsdGVyKG1zZyA9PiAhKG1zZy50eXBlID09PSBNZXNzYWdlVHlwZS5Gb3JtICYmIG1zZy5pZCA9PT0gZm9ybVJlc3BvbnNlSWQpKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuZmlsdGVyKHR1cm4gPT4gdHVybi5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgIHJldHVybiBbLi4udHVybnNXaXRob3V0Rm9ybSwgW25ld1VzZXJNZXNzYWdlXV07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzZW5kTWVzc2FnZXNUb0JhY2tlbmQoXG4gICAgICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCh7XG4gICAgICAgICAgdXNlckV2ZW50czogcGF5bG9hZEV2ZW50cyxcbiAgICAgICAgICBnZW5lcmF0aW9uUGFyYW1zOiBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgfSksXG4gICAgICApLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBpc1NlbmRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChpc0luaXRpYWxpemVkKSB7XG4gICAgICBnZXRTdWdnZXN0aW9ucyhcbiAgICAgICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkKHtcbiAgICAgICAgICB1c2VyRXZlbnRzOiBbXSxcbiAgICAgICAgICBnZW5lcmF0aW9uUGFyYW1zOiBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfSwgW1xuICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBpc0luaXRpYWxpemVkLFxuICAgIHNldE1lc3NhZ2VzLFxuICAgIHNlbmRNZXNzYWdlc1RvQmFja2VuZCxcbiAgICBzZXR0aW5nc0NvbnRleHQuZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB1c2VyRXZlbnRzLFxuICAgIHVzZXJRdWV1ZUV2ZW50Q291bnQsXG4gICAgcHJldmlld01vZGUsXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gU2tpcCBoeWRyYXRpb24gaW4gcHJldmlldyBtb2RlXG4gICAgaWYgKHByZXZpZXdNb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIC8vIFJlaHlkcmF0ZSBhbnkgbWVzc2FnZXMgZnJvbSB0aGUgYmFja2VuZFxuICAgICAgaHlkcmF0ZU1lc3NhZ2VzKCk7XG4gICAgfVxuICB9LCBbaXNJbml0aWFsaXplZCwgaHlkcmF0ZU1lc3NhZ2VzLCBwcmV2aWV3TW9kZV0pO1xuXG4gIHJldHVybiA8U2FsZXNBZ2VudENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3VuZGVmaW5lZH0+e2NoaWxkcmVufTwvU2FsZXNBZ2VudENvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnQgPSAoKTogU2FsZXNBZ2VudCA9PiB7XG4gIGNvbnN0IG1lc3NhZ2VzID0gdXNlQXRvbVZhbHVlKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHN1Z2dlc3Rpb25zID0gdXNlQXRvbVZhbHVlKHN1Z2dlc3Rpb25zQXRvbSk7XG4gIGNvbnN0IHBlbmRpbmdNZXNzYWdlcyA9IHVzZUF0b21WYWx1ZSh1c2VyRXZlbnRRdWV1ZUF0b20pO1xuICBjb25zdCBpc1Jlc3BvbnNlU3RyZWFtaW5nID0gdXNlQXRvbVZhbHVlKHJlc3BvbnNlU3RyZWFtaW5nQXRvbSk7XG4gIGNvbnN0IGlzUGVuZGluZ1Jlc3BvbnNlID0gdXNlQXRvbVZhbHVlKHBlbmRpbmdSZXNwb25zZUF0b20pO1xuICBjb25zdCBpc0luaXRpYWxpemVkID0gdXNlQXRvbVZhbHVlKGluaXRpYWxpemVkQXRvbSk7XG4gIGNvbnN0IHtcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIH0gPSB1c2VTYWxlc0FnZW50Q2hhdEFQSSgpO1xuXG4gIGNvbnN0IHNhbGVzQWdlbnQ6IFNhbGVzQWdlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZXMsXG4gICAgICBzdWdnZXN0aW9ucyxcbiAgICAgIHBlbmRpbmdNZXNzYWdlcyxcbiAgICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgICBpc1Jlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgaXNQZW5kaW5nUmVzcG9uc2UsXG4gICAgICBsb2dQYWdlVmlzaXQsXG4gICAgICBsb2dVc2VyRXZlbnQsXG4gICAgICBvblN1Z2dlc3Rpb25DbGlja2VkLFxuICAgICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgICBvbkZvcm1SZXNwb25zZVN1Ym1pdHRlZCxcbiAgICB9O1xuICB9LCBbXG4gICAgbWVzc2FnZXMsXG4gICAgc3VnZ2VzdGlvbnMsXG4gICAgcGVuZGluZ01lc3NhZ2VzLFxuICAgIGlzSW5pdGlhbGl6ZWQsXG4gICAgaXNSZXNwb25zZVN0cmVhbWluZyxcbiAgICBpc1BlbmRpbmdSZXNwb25zZSxcbiAgICBsb2dQYWdlVmlzaXQsXG4gICAgbG9nVXNlckV2ZW50LFxuICAgIG9uU3VnZ2VzdGlvbkNsaWNrZWQsXG4gICAgb25UeXBlZE1lc3NhZ2VTdWJtaXR0ZWQsXG4gICAgb25Gb3JtUmVzcG9uc2VTdWJtaXR0ZWQsXG4gIF0pO1xuICByZXR1cm4gc2FsZXNBZ2VudDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQThDQSxNQUFNLG9CQUFvQixjQUFzQyxPQUFVO0FBUTFFLE1BQWFBLHNCQUF5RCxFQUNwRSxVQUNBLGNBQWMsT0FDZCxlQUNJO0NBQ0osTUFBTSxhQUFhLGFBQWEsbUJBQW1CO0NBQ25ELE1BQU0sc0JBQXNCLGFBQWEsd0JBQXdCO0NBQ2pFLE1BQU0sMEJBQTBC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
|
|
@@ -9,10 +9,10 @@ const require_amplitudeService = require('../../services/amplitudeService/amplit
|
|
|
9
9
|
const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
|
|
10
10
|
const require_messageFromResponse = require('../../application/utils/messageFromResponse.cjs');
|
|
11
11
|
require('../../application/utils/index.cjs');
|
|
12
|
-
const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
|
|
13
12
|
require('../amplitudeContext/index.cjs');
|
|
14
13
|
require('../featureFlagServiceContext/index.cjs');
|
|
15
14
|
const require_commerce_api = require('../../application/commerce-api.cjs');
|
|
15
|
+
const require_atoms_chat_chatState = require('../../atoms/chat/chatState.cjs');
|
|
16
16
|
const require_statusCodeError = require('./statusCodeError.cjs');
|
|
17
17
|
let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
|
|
18
18
|
let uuid = require("uuid");
|
|
@@ -23,10 +23,12 @@ let jotai = require("jotai");
|
|
|
23
23
|
const inputPropsToTrackingProps = (payload) => {
|
|
24
24
|
const [userEvent] = payload.userEvents || [];
|
|
25
25
|
if (userEvent.category === __spiffy_ai_commerce_api_client.UserEventCategory.SuggestionClicked) return {
|
|
26
|
+
message_id: userEvent.eventId,
|
|
26
27
|
user_event_type: "suggestion_clicked",
|
|
27
28
|
user_query: userEvent.attributes.content
|
|
28
29
|
};
|
|
29
30
|
if (userEvent.category === __spiffy_ai_commerce_api_client.UserEventCategory.QueryTyped) return {
|
|
31
|
+
message_id: userEvent.eventId,
|
|
30
32
|
user_event_type: "query_typed",
|
|
31
33
|
user_query: userEvent.attributes.query
|
|
32
34
|
};
|
|
@@ -120,24 +122,28 @@ const useSalesAgentService = () => {
|
|
|
120
122
|
}, [context, featureFlagService?.featureFlagService]),
|
|
121
123
|
getStreamingResponses: (0, react.useCallback)(async (payload) => {
|
|
122
124
|
const startTime = Date.now();
|
|
125
|
+
let successfulResponse;
|
|
123
126
|
setPendingResponse(true);
|
|
124
127
|
const stream = require_commerce_api.default.getNextResponseStreaming(payload);
|
|
125
128
|
try {
|
|
126
129
|
setRequestFailure(false);
|
|
127
130
|
await processStreamingResponse(stream, messageInterceptor, setMessages, setResponseStreaming);
|
|
131
|
+
successfulResponse = true;
|
|
132
|
+
} catch (e) {
|
|
133
|
+
console.error("error getting streaming responses", e);
|
|
134
|
+
successfulResponse = false;
|
|
135
|
+
handleStreamingError(e, setRequestFailure, setMessages);
|
|
136
|
+
throw e;
|
|
137
|
+
} finally {
|
|
128
138
|
const responseTime = Date.now() - startTime;
|
|
129
139
|
trackEvent({
|
|
130
140
|
eventName: require_amplitudeService.SpiffyMetricsEventName.ChatAssistantResponse,
|
|
131
141
|
eventProps: {
|
|
132
142
|
responseTimeMs: responseTime.toString(),
|
|
143
|
+
successful_response: successfulResponse,
|
|
133
144
|
...inputPropsToTrackingProps(payload)
|
|
134
145
|
}
|
|
135
146
|
});
|
|
136
|
-
} catch (e) {
|
|
137
|
-
console.error("error getting streaming responses", e);
|
|
138
|
-
handleStreamingError(e, setRequestFailure, setMessages);
|
|
139
|
-
throw e;
|
|
140
|
-
} finally {
|
|
141
147
|
setPendingResponse(false);
|
|
142
148
|
setResponseStreaming(false);
|
|
143
149
|
}
|
|
@@ -160,4 +166,4 @@ const useSalesAgentService = () => {
|
|
|
160
166
|
|
|
161
167
|
//#endregion
|
|
162
168
|
exports.useSalesAgentService = useSalesAgentService;
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuY2pzIiwibmFtZXMiOlsiVXNlckV2ZW50Q2F0ZWdvcnkiLCJTdGF0dXNDb2RlRXJyb3IiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJtZXNzYWdlRnJvbVJlc3BvbnNlIiwiZXJyb3I6IHVua25vd24iLCJ1c2VTYWxlc0FnZW50U2VydmljZTogKCkgPT4gU2FsZXNBZ2VudFNlcnZpY2UiLCJyZXF1ZXN0RmFpbHVyZUF0b20iLCJtZXNzYWdlc0F0b20iLCJzdWdnZXN0aW9uc0F0b20iLCJwZW5kaW5nUmVzcG9uc2VBdG9tIiwicmVzcG9uc2VTdHJlYW1pbmdBdG9tIiwidXNlTWVzc2FnZUludGVyY2VwdG9yIiwidXNlQW1wbGl0dWRlIiwidXNlRmVhdHVyZUZsYWdTZXJ2aWNlIiwiYXBwRGV0YWlsc0F0b20iLCJDb21tZXJjZUFwaUNsaWVudCIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudFNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgQ29tbWVyY2VBcGlDbGllbnQgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2NvbW1lcmNlLWFwaSc7XG5pbXBvcnQgeyBhcHBEZXRhaWxzQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGlvblBhcmFtcyxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBOZXh0TWVzc2FnZVJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21SZXNwb25zZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi91dGlscyc7XG5pbXBvcnQge1xuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlcXVlc3RGYWlsdXJlQXRvbSxcbiAgcmVzcG9uc2VTdHJlYW1pbmdBdG9tLFxuICBzdWdnZXN0aW9uc0F0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L2NoYXRTdGF0ZSc7XG5pbXBvcnQgeyB1c2VNZXNzYWdlSW50ZXJjZXB0b3IgfSBmcm9tICdzcmMvaW50ZXJjZXB0b3JzL3VzZU1lc3NhZ2VJbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCB1c2VBbXBsaXR1ZGUgfSBmcm9tICdzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVFcnJvciB9IGZyb20gJy4vc3RhdHVzQ29kZUVycm9yJztcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRTZXJ2aWNlIHtcbiAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkOiAocGF5bG9hZDoge1xuICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICB9KSA9PiBOZXh0TWVzc2FnZVJlcXVlc3Q7XG4gIGdldFN0cmVhbWluZ1Jlc3BvbnNlczogKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0U3VnZ2VzdGlvbnM6IChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IFByb21pc2U8dm9pZD47XG4gIGh5ZHJhdGVNZXNzYWdlczogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuY29uc3QgaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyA9IChcbiAgcGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbdXNlckV2ZW50XSA9IHBheWxvYWQudXNlckV2ZW50cyB8fCBbXTtcbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcl9ldmVudF90eXBlOiAnc3VnZ2VzdGlvbl9jbGlja2VkJyxcbiAgICAgIHVzZXJfcXVlcnk6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLmNvbnRlbnQsXG4gICAgfTtcbiAgfVxuICBpZiAodXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJfZXZlbnRfdHlwZTogJ3F1ZXJ5X3R5cGVkJyxcbiAgICAgIHVzZXJfcXVlcnk6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLnF1ZXJ5LFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHt9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFF1ZXJ5UGFyYW0gPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgY29uc3QgdXJsT2JqID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gIHJldHVybiB1cmxPYmouc2VhcmNoUGFyYW1zLmdldChrZXkpO1xufTtcblxuY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKF9lcnJvcjogdW5rbm93bik6IHN0cmluZyA9PiB7XG4gIGlmIChfZXJyb3IgaW5zdGFuY2VvZiBTdGF0dXNDb2RlRXJyb3IpIHtcbiAgICBpZiAoX2Vycm9yLnN0YXR1c0NvZGUgPT09IDQyMykge1xuICAgICAgcmV0dXJuICdEdWUgdG8gdmlvbGF0aW9uIG9mIHRlcm1zIGFuZCBzZXJ2aWNlcywgdGhpcyBzZXNzaW9uIGhhcyBiZWVuIHRlcm1pbmF0ZWQuJztcbiAgICB9XG4gICAgLy8gS2VlcGluZyB0aGUgNDI5IGVycm9yIG1lc3NhZ2VzIGFzIHRoZSBnZW5lcmljIGVycm9yIG1lc3NhZ2UgZm9yIG5vdy5cbiAgICAvLyBpZiAoX2Vycm9yLnN0YXR1c0NvZGUgPT09IDQyOSkge1xuICAgIC8vICAgcmV0dXJuIFwiSSdtIHNvcnJ5ISBUaGUgc3lzdGVtIGlzIGJ1c3kgcmlnaHQgbm93LiBQbGVhc2UgdHJ5IGFnYWluIGluIGEgZmV3IG1pbnV0ZXMuXCI7XG4gICAgLy8gfVxuICB9XG5cbiAgcmV0dXJuIFwiSSdtIHNvcnJ5ISBJJ20gaGF2aW5nIHRyb3VibGUgcmlnaHQgbm93LiBQbGVhc2UgcmVmcmVzaCB0aGUgcGFnZSBvciB0cnkgYWdhaW4gaW4gYSBtb21lbnQuXCI7XG59O1xuXG5jb25zdCBoYW5kbGVTdHJlYW1pbmdFcnJvciA9IChcbiAgX2Vycm9yOiB1bmtub3duLFxuICBzZXRSZXF1ZXN0RmFpbHVyZTogKGZhaWxlZDogYm9vbGVhbikgPT4gdm9pZCxcbiAgc2V0TWVzc2FnZXM6ICh1cGRhdGVyOiAocHJldjogTWVzc2FnZVtdW10pID0+IE1lc3NhZ2VbXVtdKSA9PiB2b2lkLFxuKSA9PiB7XG4gIHNldFJlcXVlc3RGYWlsdXJlKHRydWUpO1xuXG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGdldEVycm9yTWVzc2FnZShfZXJyb3IpO1xuICBzZXRNZXNzYWdlcyhwcmV2ID0+IFtcbiAgICAuLi5wcmV2LFxuICAgIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgICAgcm9sZTogTWVzc2FnZVJvbGUuQXNzaXN0YW50LFxuICAgICAgICB0eXBlOiBNZXNzYWdlVHlwZS5UZXh0LFxuICAgICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBjb250ZW50OiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gIF0pO1xufTtcblxuY29uc3QgdXBkYXRlTWVzc2FnZVN0YXRlID0gKFxuICBtZXNzYWdlOiBNZXNzYWdlLFxuICBsYXN0TWVzc2FnZTogTWVzc2FnZSxcbiAgc2V0TWVzc2FnZXM6ICh1cGRhdGVyOiAocHJldjogTWVzc2FnZVtdW10pID0+IE1lc3NhZ2VbXVtdKSA9PiB2b2lkLFxuKTogTWVzc2FnZSA9PiB7XG4gIGlmIChsYXN0TWVzc2FnZSA9PSBudWxsKSB7XG4gICAgc2V0TWVzc2FnZXMocHJldiA9PiBbLi4ucHJldiwgW21lc3NhZ2VdXSk7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cbiAgaWYgKGxhc3RNZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlRleHQgJiYgbWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5UZXh0KSB7XG4gICAgY29uc3QgbmV3TWVzc2FnZSA9IHtcbiAgICAgIC4uLmxhc3RNZXNzYWdlLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgLi4ubGFzdE1lc3NhZ2UubWV0YWRhdGEsXG4gICAgICAgIGNvbnRlbnQ6IGxhc3RNZXNzYWdlLm1ldGFkYXRhLmNvbnRlbnQgKyBtZXNzYWdlLm1ldGFkYXRhLmNvbnRlbnQsXG4gICAgICB9LFxuICAgIH07XG4gICAgc2V0TWVzc2FnZXMocHJldiA9PiB7XG4gICAgICBjb25zdCBsYXN0VHVybiA9IHByZXZbcHJldi5sZW5ndGggLSAxXTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnByZXYuc2xpY2UoMCwgcHJldi5sZW5ndGggLSAxKSxcbiAgICAgICAgWy4uLmxhc3RUdXJuLnNsaWNlKDAsIGxhc3RUdXJuLmxlbmd0aCAtIDEpLCBuZXdNZXNzYWdlXSxcbiAgICAgIF07XG4gICAgfSk7XG4gICAgcmV0dXJuIG5ld01lc3NhZ2U7XG4gIH1cbiAgc2V0TWVzc2FnZXMocHJldiA9PiBbLi4ucHJldi5zbGljZSgwLCBwcmV2Lmxlbmd0aCAtIDEpLCBbLi4ucHJldltwcmV2Lmxlbmd0aCAtIDFdLCBtZXNzYWdlXV0pO1xuICByZXR1cm4gbWVzc2FnZTtcbn07XG5cbmNvbnN0IHByb2Nlc3NTdHJlYW1pbmdSZXNwb25zZSA9IGFzeW5jIChcbiAgc3RyZWFtOiBBc3luY0l0ZXJhYmxlPFJlc3BvbnNlPixcbiAgbWVzc2FnZUludGVyY2VwdG9yOiB7IGludGVyY2VwdDogKHJlc3BvbnNlPzogUmVzcG9uc2UpID0+IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgc2V0TWVzc2FnZXM6ICh1cGRhdGVyOiAocHJldjogTWVzc2FnZVtdW10pID0+IE1lc3NhZ2VbXVtdKSA9PiB2b2lkLFxuICBzZXRSZXNwb25zZVN0cmVhbWluZzogKHJlc3BvbnNlU3RyZWFtaW5nOiBib29sZWFuKSA9PiB2b2lkLFxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGxldCBsYXN0TWVzc2FnZTogTWVzc2FnZSB8IHVuZGVmaW5lZDtcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmcodHJ1ZSk7XG5cbiAgZm9yIGF3YWl0IChjb25zdCByZXNwb25zZSBvZiBzdHJlYW0pIHtcbiAgICB0cnkge1xuICAgICAgaWYgKG1lc3NhZ2VJbnRlcmNlcHRvci5pbnRlcmNlcHQocmVzcG9uc2UpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHJlc3BvbnNlIGZyb20gc3RyZWFtJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBtZXNzYWdlRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgIGlmICghbWVzc2FnZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byB0cmFuc2Zvcm0gQVBJIHJlc3BvbnNlIHRvIGNsaWVudCBtZXNzYWdlJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIE5vIHN1cHBvcnQgZm9yIENoYXRTZWFyY2ggbWVzc2FnZXMgYXQgdGhlIGN1cnJlbnQgdGltZS5cbiAgICAgIC8vIFBlcmhhcHMgd2UgYWRkIHN1cHBvcnQgYmFjayBpbiB0aGUgZnV0dXJlXG4gICAgICAvLyBpZiAobWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5Qcm9kdWN0U2VhcmNoKSB7XG4gICAgICAvLyAgIGhhbmRsZVNlYXJjaFJlc3VsdHMobWVzc2FnZSk7XG4gICAgICAvLyAgIGhhc1NlYXJjaFJlc3VsdHMgPSB0cnVlO1xuICAgICAgLy8gICBzZXRTZWFyY2hJc0xvYWRpbmcoZmFsc2UpOyAvLyBVcGRhdGUgc2VhcmNoIGxvYWRpbmcgaW1tZWRpYXRlbHkgd2hlbiByZXN1bHRzIGFyZSBkZXRlY3RlZFxuICAgICAgLy8gfVxuXG4gICAgICBsYXN0TWVzc2FnZSA9IHVwZGF0ZU1lc3NhZ2VTdGF0ZShtZXNzYWdlLCBsYXN0TWVzc2FnZSEsIHNldE1lc3NhZ2VzKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgTG9nZ2VyLmxvZ1dhcm4oYFtzcGlmZnktYWldIEZhaWxlZCB0byBnZW5lcmF0ZSByZXNwb25zZXMgZnJvbSBzdHJlYW1gLCBlcnJvciwge1xuICAgICAgICBsYXN0UmVzcG9uc2U6IGxhc3RNZXNzYWdlLFxuICAgICAgICByZXNwb25zZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCB1c2VTYWxlc0FnZW50U2VydmljZTogKCkgPT4gU2FsZXNBZ2VudFNlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IHNldFJlcXVlc3RGYWlsdXJlID0gdXNlU2V0QXRvbShyZXF1ZXN0RmFpbHVyZUF0b20pO1xuICBjb25zdCBzZXRNZXNzYWdlcyA9IHVzZVNldEF0b20obWVzc2FnZXNBdG9tKTtcbiAgY29uc3Qgc2V0U3VnZ2VzdGlvbnMgPSB1c2VTZXRBdG9tKHN1Z2dlc3Rpb25zQXRvbSk7XG4gIGNvbnN0IHNldFBlbmRpbmdSZXNwb25zZSA9IHVzZVNldEF0b20ocGVuZGluZ1Jlc3BvbnNlQXRvbSk7XG4gIGNvbnN0IHNldFJlc3BvbnNlU3RyZWFtaW5nID0gdXNlU2V0QXRvbShyZXNwb25zZVN0cmVhbWluZ0F0b20pO1xuICBjb25zdCBtZXNzYWdlSW50ZXJjZXB0b3IgPSB1c2VNZXNzYWdlSW50ZXJjZXB0b3IoKTtcbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UoKTtcbiAgY29uc3QgY29udGV4dCA9IHVzZUF0b21WYWx1ZShhcHBEZXRhaWxzQXRvbSk7XG5cbiAgY29uc3QgY3JlYXRlUmVzcG9uc2VQYXlsb2FkID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHVzZXJFdmVudHMsXG4gICAgICBnZW5lcmF0aW9uUGFyYW1zLFxuICAgIH06IHtcbiAgICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgICAgZ2VuZXJhdGlvblBhcmFtcz86IEdlbmVyYXRpb25QYXJhbXM7XG4gICAgfSk6IE5leHRNZXNzYWdlUmVxdWVzdCA9PiB7XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3MgPSBmZWF0dXJlRmxhZ1NlcnZpY2U/LmZlYXR1cmVGbGFnU2VydmljZT8uZ2V0RmVhdHVyZUZsYWdzKCkgfHwge307XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRlQ29uZmlnVmVyc2lvbiA9XG4gICAgICAgIGdldFF1ZXJ5UGFyYW0oJ3NwaWZmeV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICAgIGdldFF1ZXJ5UGFyYW0oJ2Vudml2ZV9jb25maWdfdmVyc2lvbicpIHx8XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IG92ZXJyaWRlTW9kZWxEYXRldGltZSA9IGdldFF1ZXJ5UGFyYW0oJ292ZXJyaWRlX21vZGVsX2RhdGV0aW1lJykgfHwgdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IHV1aWQoKSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgdXNlckV2ZW50cyxcbiAgICAgICAgZmVhdHVyZUZsYWdzLFxuICAgICAgICBnZW5lcmF0aW9uUGFyYW1zLFxuICAgICAgICBvdmVycmlkZUNvbmZpZ1ZlcnNpb24sXG4gICAgICAgIG92ZXJyaWRlTW9kZWxEYXRldGltZSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBbY29udGV4dCwgZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2VdLFxuICApO1xuXG4gIGNvbnN0IGdldFN0cmVhbWluZ1Jlc3BvbnNlcyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICBzZXRQZW5kaW5nUmVzcG9uc2UodHJ1ZSk7XG4gICAgICBjb25zdCBzdHJlYW0gPSBDb21tZXJjZUFwaUNsaWVudC5nZXROZXh0UmVzcG9uc2VTdHJlYW1pbmcocGF5bG9hZCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFJlcXVlc3RGYWlsdXJlKGZhbHNlKTtcblxuICAgICAgICBhd2FpdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UoXG4gICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgICAgICBzZXRNZXNzYWdlcyxcbiAgICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBMb2cgc3VjY2Vzc2Z1bCBuZXh0X3Jlc3BvbnNlcyBjYWxsXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0QXNzaXN0YW50UmVzcG9uc2UsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgcmVzcG9uc2VUaW1lTXM6IHJlc3BvbnNlVGltZS50b1N0cmluZygpLFxuICAgICAgICAgICAgLi4uaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyhwYXlsb2FkKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIHRoZSBDaHJvbWUgRXh0ZW5zaW9uIGNvbW11bmljYXRpb25cbiAgICAgICAgLy8gYXdhaXQgbG9nQnVuZGxlRXZlbnQoe1xuICAgICAgICAvLyAgIGxldmVsOiAnaW5mbycsXG4gICAgICAgIC8vICAgZXZlbnQ6ICdORVhUX1JFU1BPTlNFX1NVQ0NFU1MnLFxuICAgICAgICAvLyAgIGNvbnRleHQ6IHtcbiAgICAgICAgLy8gICAgIHR5cGU6ICduZXh0X3Jlc3BvbnNlcycsXG4gICAgICAgIC8vICAgICBlbmRwb2ludDogJy92MS9uZXh0X3Jlc3BvbnNlcycsXG4gICAgICAgIC8vICAgICBzdGF0dXNDb2RlOiAyMDAsXG4gICAgICAgIC8vICAgICByZXNwb25zZVRpbWUsXG4gICAgICAgIC8vICAgfSxcbiAgICAgICAgLy8gfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIGdldHRpbmcgc3RyZWFtaW5nIHJlc3BvbnNlcycsIGUpO1xuICAgICAgICAvLyBMb2cgZmFpbGVkIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgLy8gY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgLy8gYXdhaXQgbG9nQnVuZGxlRXZlbnQoe1xuICAgICAgICAvLyAgIGxldmVsOiAnZXJyb3InLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9GQUlMRUQnLFxuICAgICAgICAvLyAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gZ2V0IHN0cmVhbWluZyByZXNwb25zZTogJHtlfWAsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICAgIGVycm9yOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSksXG4gICAgICAgIC8vICAgfSxcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgaGFuZGxlU3RyZWFtaW5nRXJyb3IoZSwgc2V0UmVxdWVzdEZhaWx1cmUsIHNldE1lc3NhZ2VzKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldFBlbmRpbmdSZXNwb25zZShmYWxzZSk7XG4gICAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nKGZhbHNlKTtcbiAgICAgICAgLy8gbG9nUGVyZk1ldHJpYyhQZXJmTWV0cmljc0V2ZW50cy5GaXJzdFJlc3BvbnNlQ29tcGxldGVkKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIC8vIGxvZ1BlcmZNZXRyaWMsXG4gICAgICBzZXRSZXF1ZXN0RmFpbHVyZSxcbiAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgIHNldE1lc3NhZ2VzLFxuICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlLFxuICAgIF0sXG4gICk7XG5cbiAgY29uc3QgZ2V0U3VnZ2VzdGlvbnMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBuZXdTdWdnZXN0aW9ucyA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldE5leHRTdWdnZXN0aW9ucyhwYXlsb2FkKTtcbiAgICAgIHNldFN1Z2dlc3Rpb25zKG5ld1N1Z2dlc3Rpb25zKTtcbiAgICB9LFxuICAgIFtzZXRTdWdnZXN0aW9uc10sXG4gICk7XG5cbiAgY29uc3QgaHlkcmF0ZU1lc3NhZ2VzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHsgb3JnSWQsIGNoYXRJZCwgdXNlcklkIH0gPSBjb250ZXh0O1xuICAgIGNvbnN0IHsgbWVzc2FnZXM6IGV4aXN0aW5nTWVzc2FnZXMsIHVzZXJFdmVudHMgfSA9IGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LmdldFJlc3BvbnNlcyhcbiAgICAgIG9yZ0lkLFxuICAgICAgY2hhdElkLFxuICAgICAgdXNlcklkLFxuICAgICk7XG4gICAgc2V0TWVzc2FnZXMoWy4uLmV4aXN0aW5nTWVzc2FnZXNdKTtcbiAgfSwgW2NvbnRleHQsIHNldE1lc3NhZ2VzXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVSZXNwb25zZVBheWxvYWQsXG4gICAgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzLFxuICAgIGdldFN1Z2dlc3Rpb25zLFxuICAgIGh5ZHJhdGVNZXNzYWdlcyxcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3Q0EsTUFBTSw2QkFDSixZQUN3QztDQUN4QyxNQUFNLENBQUMsYUFBYSxRQUFRLGNBQWMsRUFBRTtBQUM1QyxLQUFJLFVBQVUsYUFBYUEsa0RBQWtCLGtCQUMzQyxRQUFPO0VBQ0wsaUJBQWlCO0VBQ2pCLFlBQVksVUFBVSxXQUFXO0VBQ2xDO0FBRUgsS0FBSSxVQUFVLGFBQWFBLGtEQUFrQixXQUMzQyxRQUFPO0VBQ0wsaUJBQWlCO0VBQ2pCLFlBQVksVUFBVSxXQUFXO0VBQ2xDO0FBRUgsUUFBTyxFQUFFOztBQUdYLE1BQWEsaUJB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
|
|
169
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuY2pzIiwibmFtZXMiOlsiVXNlckV2ZW50Q2F0ZWdvcnkiLCJTdGF0dXNDb2RlRXJyb3IiLCJNZXNzYWdlUm9sZSIsIk1lc3NhZ2VUeXBlIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJtZXNzYWdlRnJvbVJlc3BvbnNlIiwiZXJyb3I6IHVua25vd24iLCJ1c2VTYWxlc0FnZW50U2VydmljZTogKCkgPT4gU2FsZXNBZ2VudFNlcnZpY2UiLCJyZXF1ZXN0RmFpbHVyZUF0b20iLCJtZXNzYWdlc0F0b20iLCJzdWdnZXN0aW9uc0F0b20iLCJwZW5kaW5nUmVzcG9uc2VBdG9tIiwicmVzcG9uc2VTdHJlYW1pbmdBdG9tIiwidXNlTWVzc2FnZUludGVyY2VwdG9yIiwidXNlQW1wbGl0dWRlIiwidXNlRmVhdHVyZUZsYWdTZXJ2aWNlIiwiYXBwRGV0YWlsc0F0b20iLCJzdWNjZXNzZnVsUmVzcG9uc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQiLCJDb21tZXJjZUFwaUNsaWVudCIsIlNwaWZmeU1ldHJpY3NFdmVudE5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvc2FsZXNBZ2VudENvbnRleHQvc2FsZXNBZ2VudFNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQXRvbVZhbHVlLCB1c2VTZXRBdG9tIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgQ29tbWVyY2VBcGlDbGllbnQgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2NvbW1lcmNlLWFwaSc7XG5pbXBvcnQgeyBhcHBEZXRhaWxzQXRvbSB9IGZyb20gJ3NyYy9hdG9tcy9hcHAnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHtcbiAgR2VuZXJhdGlvblBhcmFtcyxcbiAgTWVzc2FnZSxcbiAgTWVzc2FnZVJvbGUsXG4gIE1lc3NhZ2VUeXBlLFxuICBOZXh0TWVzc2FnZVJlcXVlc3QsXG4gIFJlc3BvbnNlLFxuICBVc2VyRXZlbnQsXG59IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgbWVzc2FnZUZyb21SZXNwb25zZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi91dGlscyc7XG5pbXBvcnQge1xuICBtZXNzYWdlc0F0b20sXG4gIHBlbmRpbmdSZXNwb25zZUF0b20sXG4gIHJlcXVlc3RGYWlsdXJlQXRvbSxcbiAgcmVzcG9uc2VTdHJlYW1pbmdBdG9tLFxuICBzdWdnZXN0aW9uc0F0b20sXG59IGZyb20gJ3NyYy9hdG9tcy9jaGF0L2NoYXRTdGF0ZSc7XG5pbXBvcnQgeyB1c2VNZXNzYWdlSW50ZXJjZXB0b3IgfSBmcm9tICdzcmMvaW50ZXJjZXB0b3JzL3VzZU1lc3NhZ2VJbnRlcmNlcHRvcic7XG5pbXBvcnQgeyBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLCB1c2VBbXBsaXR1ZGUgfSBmcm9tICdzcmMvY29udGV4dHMvYW1wbGl0dWRlQ29udGV4dCc7XG5pbXBvcnQgeyB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICdzcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5cbmltcG9ydCB7IFN0YXR1c0NvZGVFcnJvciB9IGZyb20gJy4vc3RhdHVzQ29kZUVycm9yJztcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRTZXJ2aWNlIHtcbiAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkOiAocGF5bG9hZDoge1xuICAgIHVzZXJFdmVudHM6IFVzZXJFdmVudFtdO1xuICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICB9KSA9PiBOZXh0TWVzc2FnZVJlcXVlc3Q7XG4gIGdldFN0cmVhbWluZ1Jlc3BvbnNlczogKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgZ2V0U3VnZ2VzdGlvbnM6IChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IFByb21pc2U8dm9pZD47XG4gIGh5ZHJhdGVNZXNzYWdlczogKCkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuY29uc3QgaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyA9IChcbiAgcGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBbdXNlckV2ZW50XSA9IHBheWxvYWQudXNlckV2ZW50cyB8fCBbXTtcbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuU3VnZ2VzdGlvbkNsaWNrZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZV9pZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdzdWdnZXN0aW9uX2NsaWNrZWQnLFxuICAgICAgdXNlcl9xdWVyeTogdXNlckV2ZW50LmF0dHJpYnV0ZXMuY29udGVudCxcbiAgICB9O1xuICB9XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlF1ZXJ5VHlwZWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZV9pZDogdXNlckV2ZW50LmV2ZW50SWQsXG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdxdWVyeV90eXBlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRRdWVyeVBhcmFtID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICByZXR1cm4gdXJsT2JqLnNlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbn07XG5cbmNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChfZXJyb3I6IHVua25vd24pOiBzdHJpbmcgPT4ge1xuICBpZiAoX2Vycm9yIGluc3RhbmNlb2YgU3RhdHVzQ29kZUVycm9yKSB7XG4gICAgaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjMpIHtcbiAgICAgIHJldHVybiAnRHVlIHRvIHZpb2xhdGlvbiBvZiB0ZXJtcyBhbmQgc2VydmljZXMsIHRoaXMgc2Vzc2lvbiBoYXMgYmVlbiB0ZXJtaW5hdGVkLic7XG4gICAgfVxuICAgIC8vIEtlZXBpbmcgdGhlIDQyOSBlcnJvciBtZXNzYWdlcyBhcyB0aGUgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGZvciBub3cuXG4gICAgLy8gaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjkpIHtcbiAgICAvLyAgIHJldHVybiBcIkknbSBzb3JyeSEgVGhlIHN5c3RlbSBpcyBidXN5IHJpZ2h0IG5vdy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLlwiO1xuICAgIC8vIH1cbiAgfVxuXG4gIHJldHVybiBcIkknbSBzb3JyeSEgSSdtIGhhdmluZyB0cm91YmxlIHJpZ2h0IG5vdy4gUGxlYXNlIHJlZnJlc2ggdGhlIHBhZ2Ugb3IgdHJ5IGFnYWluIGluIGEgbW9tZW50LlwiO1xufTtcblxuY29uc3QgaGFuZGxlU3RyZWFtaW5nRXJyb3IgPSAoXG4gIF9lcnJvcjogdW5rbm93bixcbiAgc2V0UmVxdWVzdEZhaWx1cmU6IChmYWlsZWQ6IGJvb2xlYW4pID0+IHZvaWQsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbikgPT4ge1xuICBzZXRSZXF1ZXN0RmFpbHVyZSh0cnVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2UoX2Vycm9yKTtcbiAgc2V0TWVzc2FnZXMocHJldiA9PiBbXG4gICAgLi4ucHJldixcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLkFzc2lzdGFudCxcbiAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuVGV4dCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgY29udGVudDogZXJyb3JNZXNzYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICBdKTtcbn07XG5cbmNvbnN0IHVwZGF0ZU1lc3NhZ2VTdGF0ZSA9IChcbiAgbWVzc2FnZTogTWVzc2FnZSxcbiAgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbik6IE1lc3NhZ2UgPT4ge1xuICBpZiAobGFzdE1lc3NhZ2UgPT0gbnVsbCkge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYsIFttZXNzYWdlXV0pO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIGlmIChsYXN0TWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5UZXh0ICYmIG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCkge1xuICAgIGNvbnN0IG5ld01lc3NhZ2UgPSB7XG4gICAgICAuLi5sYXN0TWVzc2FnZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIC4uLmxhc3RNZXNzYWdlLm1ldGFkYXRhLFxuICAgICAgICBjb250ZW50OiBsYXN0TWVzc2FnZS5tZXRhZGF0YS5jb250ZW50ICsgbWVzc2FnZS5tZXRhZGF0YS5jb250ZW50LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbGFzdFR1cm4gPSBwcmV2W3ByZXYubGVuZ3RoIC0gMV07XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksXG4gICAgICAgIFsuLi5sYXN0VHVybi5zbGljZSgwLCBsYXN0VHVybi5sZW5ndGggLSAxKSwgbmV3TWVzc2FnZV0sXG4gICAgICBdO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdNZXNzYWdlO1xuICB9XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYuc2xpY2UoMCwgcHJldi5sZW5ndGggLSAxKSwgWy4uLnByZXZbcHJldi5sZW5ndGggLSAxXSwgbWVzc2FnZV1dKTtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG5jb25zdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UgPSBhc3luYyAoXG4gIHN0cmVhbTogQXN5bmNJdGVyYWJsZTxSZXNwb25zZT4sXG4gIG1lc3NhZ2VJbnRlcmNlcHRvcjogeyBpbnRlcmNlcHQ6IChyZXNwb25zZT86IFJlc3BvbnNlKSA9PiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmc6IChyZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbikgPT4gdm9pZCxcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBsZXQgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nKHRydWUpO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgcmVzcG9uc2Ugb2Ygc3RyZWFtKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXNzYWdlSW50ZXJjZXB0b3IuaW50ZXJjZXB0KHJlc3BvbnNlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXNwb25zZSBmcm9tIHN0cmVhbScpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZUZyb21SZXNwb25zZShyZXNwb25zZSk7XG4gICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gdHJhbnNmb3JtIEFQSSByZXNwb25zZSB0byBjbGllbnQgbWVzc2FnZScpO1xuICAgICAgfVxuXG4gICAgICAvLyBObyBzdXBwb3J0IGZvciBDaGF0U2VhcmNoIG1lc3NhZ2VzIGF0IHRoZSBjdXJyZW50IHRpbWUuXG4gICAgICAvLyBQZXJoYXBzIHdlIGFkZCBzdXBwb3J0IGJhY2sgaW4gdGhlIGZ1dHVyZVxuICAgICAgLy8gaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuUHJvZHVjdFNlYXJjaCkge1xuICAgICAgLy8gICBoYW5kbGVTZWFyY2hSZXN1bHRzKG1lc3NhZ2UpO1xuICAgICAgLy8gICBoYXNTZWFyY2hSZXN1bHRzID0gdHJ1ZTtcbiAgICAgIC8vICAgc2V0U2VhcmNoSXNMb2FkaW5nKGZhbHNlKTsgLy8gVXBkYXRlIHNlYXJjaCBsb2FkaW5nIGltbWVkaWF0ZWx5IHdoZW4gcmVzdWx0cyBhcmUgZGV0ZWN0ZWRcbiAgICAgIC8vIH1cblxuICAgICAgbGFzdE1lc3NhZ2UgPSB1cGRhdGVNZXNzYWdlU3RhdGUobWVzc2FnZSwgbGFzdE1lc3NhZ2UhLCBzZXRNZXNzYWdlcyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIExvZ2dlci5sb2dXYXJuKGBbc3BpZmZ5LWFpXSBGYWlsZWQgdG8gZ2VuZXJhdGUgcmVzcG9uc2VzIGZyb20gc3RyZWFtYCwgZXJyb3IsIHtcbiAgICAgICAgbGFzdFJlc3BvbnNlOiBsYXN0TWVzc2FnZSxcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcoZmFsc2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudFNlcnZpY2U6ICgpID0+IFNhbGVzQWdlbnRTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBzZXRSZXF1ZXN0RmFpbHVyZSA9IHVzZVNldEF0b20ocmVxdWVzdEZhaWx1cmVBdG9tKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBzZXRQZW5kaW5nUmVzcG9uc2UgPSB1c2VTZXRBdG9tKHBlbmRpbmdSZXNwb25zZUF0b20pO1xuICBjb25zdCBzZXRSZXNwb25zZVN0cmVhbWluZyA9IHVzZVNldEF0b20ocmVzcG9uc2VTdHJlYW1pbmdBdG9tKTtcbiAgY29uc3QgbWVzc2FnZUludGVyY2VwdG9yID0gdXNlTWVzc2FnZUludGVyY2VwdG9yKCk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VBdG9tVmFsdWUoYXBwRGV0YWlsc0F0b20pO1xuXG4gIGNvbnN0IGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB1c2VyRXZlbnRzLFxuICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB9OiB7XG4gICAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICAgIH0pOiBOZXh0TWVzc2FnZVJlcXVlc3QgPT4ge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9O1xuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBvdmVycmlkZU1vZGVsRGF0ZXRpbWUgPSBnZXRRdWVyeVBhcmFtKCdvdmVycmlkZV9tb2RlbF9kYXRldGltZScpIHx8IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHVzZXJFdmVudHMsXG4gICAgICAgIGZlYXR1cmVGbGFncyxcbiAgICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgICBvdmVycmlkZU1vZGVsRGF0ZXRpbWUsXG4gICAgICB9O1xuICAgIH0sXG4gICAgW2NvbnRleHQsIGZlYXR1cmVGbGFnU2VydmljZT8uZmVhdHVyZUZsYWdTZXJ2aWNlXSxcbiAgKTtcblxuICBjb25zdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgbGV0IHN1Y2Nlc3NmdWxSZXNwb25zZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSh0cnVlKTtcbiAgICAgIGNvbnN0IHN0cmVhbSA9IENvbW1lcmNlQXBpQ2xpZW50LmdldE5leHRSZXNwb25zZVN0cmVhbWluZyhwYXlsb2FkKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgc2V0UmVxdWVzdEZhaWx1cmUoZmFsc2UpO1xuXG4gICAgICAgIGF3YWl0IHByb2Nlc3NTdHJlYW1pbmdSZXNwb25zZShcbiAgICAgICAgICBzdHJlYW0sXG4gICAgICAgICAgbWVzc2FnZUludGVyY2VwdG9yLFxuICAgICAgICAgIHNldE1lc3NhZ2VzLFxuICAgICAgICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nLFxuICAgICAgICApO1xuICAgICAgICBzdWNjZXNzZnVsUmVzcG9uc2UgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgQ2hyb21lIEV4dGVuc2lvbiBjb21tdW5pY2F0aW9uXG4gICAgICAgIC8vIGF3YWl0IGxvZ0J1bmRsZUV2ZW50KHtcbiAgICAgICAgLy8gICBsZXZlbDogJ2luZm8nLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9TVUNDRVNTJyxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgc3RhdHVzQ29kZTogMjAwLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgIH0sXG4gICAgICAgIC8vIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBnZXR0aW5nIHN0cmVhbWluZyByZXNwb25zZXMnLCBlKTtcbiAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgIC8vIExvZyBmYWlsZWQgbmV4dF9yZXNwb25zZXMgY2FsbFxuICAgICAgICAvLyBjb25zdCByZXNwb25zZVRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICAvLyBhd2FpdCBsb2dCdW5kbGVFdmVudCh7XG4gICAgICAgIC8vICAgbGV2ZWw6ICdlcnJvcicsXG4gICAgICAgIC8vICAgZXZlbnQ6ICdORVhUX1JFU1BPTlNFX0ZBSUxFRCcsXG4gICAgICAgIC8vICAgbWVzc2FnZTogYEZhaWxlZCB0byBnZXQgc3RyZWFtaW5nIHJlc3BvbnNlOiAke2V9YCxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgICAgZXJyb3I6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9KTtcblxuICAgICAgICBoYW5kbGVTdHJlYW1pbmdFcnJvcihlLCBzZXRSZXF1ZXN0RmFpbHVyZSwgc2V0TWVzc2FnZXMpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgLy8gTG9nIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgdHJhY2tFdmVudCh7XG4gICAgICAgICAgZXZlbnROYW1lOiBTcGlmZnlNZXRyaWNzRXZlbnROYW1lLkNoYXRBc3Npc3RhbnRSZXNwb25zZSxcbiAgICAgICAgICBldmVudFByb3BzOiB7XG4gICAgICAgICAgICByZXNwb25zZVRpbWVNczogcmVzcG9uc2VUaW1lLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBzdWNjZXNzZnVsX3Jlc3BvbnNlOiBzdWNjZXNzZnVsUmVzcG9uc2UsXG4gICAgICAgICAgICAuLi5pbnB1dFByb3BzVG9UcmFja2luZ1Byb3BzKHBheWxvYWQpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBzZXRQZW5kaW5nUmVzcG9uc2UoZmFsc2UpO1xuICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gICAgICAgIC8vIGxvZ1BlcmZNZXRyaWMoUGVyZk1ldHJpY3NFdmVudHMuRmlyc3RSZXNwb25zZUNvbXBsZXRlZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICAvLyBsb2dQZXJmTWV0cmljLFxuICAgICAgc2V0UmVxdWVzdEZhaWx1cmUsXG4gICAgICBtZXNzYWdlSW50ZXJjZXB0b3IsXG4gICAgICBzZXRNZXNzYWdlcyxcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSxcbiAgICBdLFxuICApO1xuXG4gIGNvbnN0IGdldFN1Z2dlc3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgbmV3U3VnZ2VzdGlvbnMgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXROZXh0U3VnZ2VzdGlvbnMocGF5bG9hZCk7XG4gICAgICBzZXRTdWdnZXN0aW9ucyhuZXdTdWdnZXN0aW9ucyk7XG4gICAgfSxcbiAgICBbc2V0U3VnZ2VzdGlvbnNdLFxuICApO1xuXG4gIGNvbnN0IGh5ZHJhdGVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IG9yZ0lkLCBjaGF0SWQsIHVzZXJJZCB9ID0gY29udGV4dDtcbiAgICBjb25zdCB7IG1lc3NhZ2VzOiBleGlzdGluZ01lc3NhZ2VzLCB1c2VyRXZlbnRzIH0gPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRSZXNwb25zZXMoXG4gICAgICBvcmdJZCxcbiAgICAgIGNoYXRJZCxcbiAgICAgIHVzZXJJZCxcbiAgICApO1xuICAgIHNldE1lc3NhZ2VzKFsuLi5leGlzdGluZ01lc3NhZ2VzXSk7XG4gIH0sIFtjb250ZXh0LCBzZXRNZXNzYWdlc10pO1xuXG4gIHJldHVybiB7XG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN0cmVhbWluZ1Jlc3BvbnNlcyxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBoeWRyYXRlTWVzc2FnZXMsXG4gIH07XG59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
|
|
@@ -8,10 +8,10 @@ import { SpiffyMetricsEventName } from "../../services/amplitudeService/amplitud
|
|
|
8
8
|
import { useAmplitude } from "../amplitudeContext/amplitudeContext.js";
|
|
9
9
|
import { messageFromResponse } from "../../application/utils/messageFromResponse.js";
|
|
10
10
|
import "../../application/utils/index.js";
|
|
11
|
-
import { messagesAtom, pendingResponseAtom, requestFailureAtom, responseStreamingAtom, suggestionsAtom } from "../../atoms/chat/chatState.js";
|
|
12
11
|
import "../amplitudeContext/index.js";
|
|
13
12
|
import "../featureFlagServiceContext/index.js";
|
|
14
13
|
import commerce_api_default from "../../application/commerce-api.js";
|
|
14
|
+
import { messagesAtom, pendingResponseAtom, requestFailureAtom, responseStreamingAtom, suggestionsAtom } from "../../atoms/chat/chatState.js";
|
|
15
15
|
import { StatusCodeError } from "./statusCodeError.js";
|
|
16
16
|
import { UserEventCategory } from "@spiffy-ai/commerce-api-client";
|
|
17
17
|
import { v4 } from "uuid";
|
|
@@ -22,10 +22,12 @@ import { useAtomValue, useSetAtom } from "jotai";
|
|
|
22
22
|
const inputPropsToTrackingProps = (payload) => {
|
|
23
23
|
const [userEvent] = payload.userEvents || [];
|
|
24
24
|
if (userEvent.category === UserEventCategory.SuggestionClicked) return {
|
|
25
|
+
message_id: userEvent.eventId,
|
|
25
26
|
user_event_type: "suggestion_clicked",
|
|
26
27
|
user_query: userEvent.attributes.content
|
|
27
28
|
};
|
|
28
29
|
if (userEvent.category === UserEventCategory.QueryTyped) return {
|
|
30
|
+
message_id: userEvent.eventId,
|
|
29
31
|
user_event_type: "query_typed",
|
|
30
32
|
user_query: userEvent.attributes.query
|
|
31
33
|
};
|
|
@@ -119,24 +121,28 @@ const useSalesAgentService = () => {
|
|
|
119
121
|
}, [context, featureFlagService?.featureFlagService]),
|
|
120
122
|
getStreamingResponses: useCallback(async (payload) => {
|
|
121
123
|
const startTime = Date.now();
|
|
124
|
+
let successfulResponse;
|
|
122
125
|
setPendingResponse(true);
|
|
123
126
|
const stream = commerce_api_default.getNextResponseStreaming(payload);
|
|
124
127
|
try {
|
|
125
128
|
setRequestFailure(false);
|
|
126
129
|
await processStreamingResponse(stream, messageInterceptor, setMessages, setResponseStreaming);
|
|
130
|
+
successfulResponse = true;
|
|
131
|
+
} catch (e) {
|
|
132
|
+
console.error("error getting streaming responses", e);
|
|
133
|
+
successfulResponse = false;
|
|
134
|
+
handleStreamingError(e, setRequestFailure, setMessages);
|
|
135
|
+
throw e;
|
|
136
|
+
} finally {
|
|
127
137
|
const responseTime = Date.now() - startTime;
|
|
128
138
|
trackEvent({
|
|
129
139
|
eventName: SpiffyMetricsEventName.ChatAssistantResponse,
|
|
130
140
|
eventProps: {
|
|
131
141
|
responseTimeMs: responseTime.toString(),
|
|
142
|
+
successful_response: successfulResponse,
|
|
132
143
|
...inputPropsToTrackingProps(payload)
|
|
133
144
|
}
|
|
134
145
|
});
|
|
135
|
-
} catch (e) {
|
|
136
|
-
console.error("error getting streaming responses", e);
|
|
137
|
-
handleStreamingError(e, setRequestFailure, setMessages);
|
|
138
|
-
throw e;
|
|
139
|
-
} finally {
|
|
140
146
|
setPendingResponse(false);
|
|
141
147
|
setResponseStreaming(false);
|
|
142
148
|
}
|
|
@@ -159,4 +165,4 @@ const useSalesAgentService = () => {
|
|
|
159
165
|
|
|
160
166
|
//#endregion
|
|
161
167
|
export { useSalesAgentService };
|
|
162
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuanMiLCJuYW1lcyI6WyJ1dWlkIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJlcnJvcjogdW5rbm93biIsInVzZVNhbGVzQWdlbnRTZXJ2aWNlOiAoKSA9PiBTYWxlc0FnZW50U2VydmljZSIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgYXBwRGV0YWlsc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIEdlbmVyYXRpb25QYXJhbXMsXG4gIE1lc3NhZ2UsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuICBSZXNwb25zZSxcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IG1lc3NhZ2VGcm9tUmVzcG9uc2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtcbiAgbWVzc2FnZXNBdG9tLFxuICBwZW5kaW5nUmVzcG9uc2VBdG9tLFxuICByZXF1ZXN0RmFpbHVyZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUludGVyY2VwdG9yIH0gZnJvbSAnc3JjL2ludGVyY2VwdG9ycy91c2VNZXNzYWdlSW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5pbXBvcnQgeyBTdGF0dXNDb2RlRXJyb3IgfSBmcm9tICcuL3N0YXR1c0NvZGVFcnJvcic7XG5cbmludGVyZmFjZSBTYWxlc0FnZW50U2VydmljZSB7XG4gIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZDogKHBheWxvYWQ6IHtcbiAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICBnZW5lcmF0aW9uUGFyYW1zPzogR2VuZXJhdGlvblBhcmFtcztcbiAgfSkgPT4gTmV4dE1lc3NhZ2VSZXF1ZXN0O1xuICBnZXRTdHJlYW1pbmdSZXNwb25zZXM6IChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IFByb21pc2U8dm9pZD47XG4gIGdldFN1Z2dlc3Rpb25zOiAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBoeWRyYXRlTWVzc2FnZXM6ICgpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmNvbnN0IGlucHV0UHJvcHNUb1RyYWNraW5nUHJvcHMgPSAoXG4gIHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW3VzZXJFdmVudF0gPSBwYXlsb2FkLnVzZXJFdmVudHMgfHwgW107XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVzZXJfZXZlbnRfdHlwZTogJ3N1Z2dlc3Rpb25fY2xpY2tlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5jb250ZW50LFxuICAgIH07XG4gIH1cbiAgaWYgKHVzZXJFdmVudC5jYXRlZ29yeSA9PT0gVXNlckV2ZW50Q2F0ZWdvcnkuUXVlcnlUeXBlZCkge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyX2V2ZW50X3R5cGU6ICdxdWVyeV90eXBlZCcsXG4gICAgICB1c2VyX3F1ZXJ5OiB1c2VyRXZlbnQuYXR0cmlidXRlcy5xdWVyeSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7fTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRRdWVyeVBhcmFtID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICByZXR1cm4gdXJsT2JqLnNlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbn07XG5cbmNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChfZXJyb3I6IHVua25vd24pOiBzdHJpbmcgPT4ge1xuICBpZiAoX2Vycm9yIGluc3RhbmNlb2YgU3RhdHVzQ29kZUVycm9yKSB7XG4gICAgaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjMpIHtcbiAgICAgIHJldHVybiAnRHVlIHRvIHZpb2xhdGlvbiBvZiB0ZXJtcyBhbmQgc2VydmljZXMsIHRoaXMgc2Vzc2lvbiBoYXMgYmVlbiB0ZXJtaW5hdGVkLic7XG4gICAgfVxuICAgIC8vIEtlZXBpbmcgdGhlIDQyOSBlcnJvciBtZXNzYWdlcyBhcyB0aGUgZ2VuZXJpYyBlcnJvciBtZXNzYWdlIGZvciBub3cuXG4gICAgLy8gaWYgKF9lcnJvci5zdGF0dXNDb2RlID09PSA0MjkpIHtcbiAgICAvLyAgIHJldHVybiBcIkknbSBzb3JyeSEgVGhlIHN5c3RlbSBpcyBidXN5IHJpZ2h0IG5vdy4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIGZldyBtaW51dGVzLlwiO1xuICAgIC8vIH1cbiAgfVxuXG4gIHJldHVybiBcIkknbSBzb3JyeSEgSSdtIGhhdmluZyB0cm91YmxlIHJpZ2h0IG5vdy4gUGxlYXNlIHJlZnJlc2ggdGhlIHBhZ2Ugb3IgdHJ5IGFnYWluIGluIGEgbW9tZW50LlwiO1xufTtcblxuY29uc3QgaGFuZGxlU3RyZWFtaW5nRXJyb3IgPSAoXG4gIF9lcnJvcjogdW5rbm93bixcbiAgc2V0UmVxdWVzdEZhaWx1cmU6IChmYWlsZWQ6IGJvb2xlYW4pID0+IHZvaWQsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbikgPT4ge1xuICBzZXRSZXF1ZXN0RmFpbHVyZSh0cnVlKTtcblxuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBnZXRFcnJvck1lc3NhZ2UoX2Vycm9yKTtcbiAgc2V0TWVzc2FnZXMocHJldiA9PiBbXG4gICAgLi4ucHJldixcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIHJvbGU6IE1lc3NhZ2VSb2xlLkFzc2lzdGFudCxcbiAgICAgICAgdHlwZTogTWVzc2FnZVR5cGUuVGV4dCxcbiAgICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgY29udGVudDogZXJyb3JNZXNzYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICBdKTtcbn07XG5cbmNvbnN0IHVwZGF0ZU1lc3NhZ2VTdGF0ZSA9IChcbiAgbWVzc2FnZTogTWVzc2FnZSxcbiAgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UsXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbik6IE1lc3NhZ2UgPT4ge1xuICBpZiAobGFzdE1lc3NhZ2UgPT0gbnVsbCkge1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYsIFttZXNzYWdlXV0pO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG4gIGlmIChsYXN0TWVzc2FnZS50eXBlID09PSBNZXNzYWdlVHlwZS5UZXh0ICYmIG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCkge1xuICAgIGNvbnN0IG5ld01lc3NhZ2UgPSB7XG4gICAgICAuLi5sYXN0TWVzc2FnZSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIC4uLmxhc3RNZXNzYWdlLm1ldGFkYXRhLFxuICAgICAgICBjb250ZW50OiBsYXN0TWVzc2FnZS5tZXRhZGF0YS5jb250ZW50ICsgbWVzc2FnZS5tZXRhZGF0YS5jb250ZW50LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHNldE1lc3NhZ2VzKHByZXYgPT4ge1xuICAgICAgY29uc3QgbGFzdFR1cm4gPSBwcmV2W3ByZXYubGVuZ3RoIC0gMV07XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksXG4gICAgICAgIFsuLi5sYXN0VHVybi5zbGljZSgwLCBsYXN0VHVybi5sZW5ndGggLSAxKSwgbmV3TWVzc2FnZV0sXG4gICAgICBdO1xuICAgIH0pO1xuICAgIHJldHVybiBuZXdNZXNzYWdlO1xuICB9XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gWy4uLnByZXYuc2xpY2UoMCwgcHJldi5sZW5ndGggLSAxKSwgWy4uLnByZXZbcHJldi5sZW5ndGggLSAxXSwgbWVzc2FnZV1dKTtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59O1xuXG5jb25zdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UgPSBhc3luYyAoXG4gIHN0cmVhbTogQXN5bmNJdGVyYWJsZTxSZXNwb25zZT4sXG4gIG1lc3NhZ2VJbnRlcmNlcHRvcjogeyBpbnRlcmNlcHQ6IChyZXNwb25zZT86IFJlc3BvbnNlKSA9PiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIHNldE1lc3NhZ2VzOiAodXBkYXRlcjogKHByZXY6IE1lc3NhZ2VbXVtdKSA9PiBNZXNzYWdlW11bXSkgPT4gdm9pZCxcbiAgc2V0UmVzcG9uc2VTdHJlYW1pbmc6IChyZXNwb25zZVN0cmVhbWluZzogYm9vbGVhbikgPT4gdm9pZCxcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBsZXQgbGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nKHRydWUpO1xuXG4gIGZvciBhd2FpdCAoY29uc3QgcmVzcG9uc2Ugb2Ygc3RyZWFtKSB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXNzYWdlSW50ZXJjZXB0b3IuaW50ZXJjZXB0KHJlc3BvbnNlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyByZXNwb25zZSBmcm9tIHN0cmVhbScpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZXNzYWdlID0gbWVzc2FnZUZyb21SZXNwb25zZShyZXNwb25zZSk7XG4gICAgICBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gdHJhbnNmb3JtIEFQSSByZXNwb25zZSB0byBjbGllbnQgbWVzc2FnZScpO1xuICAgICAgfVxuXG4gICAgICAvLyBObyBzdXBwb3J0IGZvciBDaGF0U2VhcmNoIG1lc3NhZ2VzIGF0IHRoZSBjdXJyZW50IHRpbWUuXG4gICAgICAvLyBQZXJoYXBzIHdlIGFkZCBzdXBwb3J0IGJhY2sgaW4gdGhlIGZ1dHVyZVxuICAgICAgLy8gaWYgKG1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuUHJvZHVjdFNlYXJjaCkge1xuICAgICAgLy8gICBoYW5kbGVTZWFyY2hSZXN1bHRzKG1lc3NhZ2UpO1xuICAgICAgLy8gICBoYXNTZWFyY2hSZXN1bHRzID0gdHJ1ZTtcbiAgICAgIC8vICAgc2V0U2VhcmNoSXNMb2FkaW5nKGZhbHNlKTsgLy8gVXBkYXRlIHNlYXJjaCBsb2FkaW5nIGltbWVkaWF0ZWx5IHdoZW4gcmVzdWx0cyBhcmUgZGV0ZWN0ZWRcbiAgICAgIC8vIH1cblxuICAgICAgbGFzdE1lc3NhZ2UgPSB1cGRhdGVNZXNzYWdlU3RhdGUobWVzc2FnZSwgbGFzdE1lc3NhZ2UhLCBzZXRNZXNzYWdlcyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIExvZ2dlci5sb2dXYXJuKGBbc3BpZmZ5LWFpXSBGYWlsZWQgdG8gZ2VuZXJhdGUgcmVzcG9uc2VzIGZyb20gc3RyZWFtYCwgZXJyb3IsIHtcbiAgICAgICAgbGFzdFJlc3BvbnNlOiBsYXN0TWVzc2FnZSxcbiAgICAgICAgcmVzcG9uc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcoZmFsc2UpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgdXNlU2FsZXNBZ2VudFNlcnZpY2U6ICgpID0+IFNhbGVzQWdlbnRTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBzZXRSZXF1ZXN0RmFpbHVyZSA9IHVzZVNldEF0b20ocmVxdWVzdEZhaWx1cmVBdG9tKTtcbiAgY29uc3Qgc2V0TWVzc2FnZXMgPSB1c2VTZXRBdG9tKG1lc3NhZ2VzQXRvbSk7XG4gIGNvbnN0IHNldFN1Z2dlc3Rpb25zID0gdXNlU2V0QXRvbShzdWdnZXN0aW9uc0F0b20pO1xuICBjb25zdCBzZXRQZW5kaW5nUmVzcG9uc2UgPSB1c2VTZXRBdG9tKHBlbmRpbmdSZXNwb25zZUF0b20pO1xuICBjb25zdCBzZXRSZXNwb25zZVN0cmVhbWluZyA9IHVzZVNldEF0b20ocmVzcG9uc2VTdHJlYW1pbmdBdG9tKTtcbiAgY29uc3QgbWVzc2FnZUludGVyY2VwdG9yID0gdXNlTWVzc2FnZUludGVyY2VwdG9yKCk7XG4gIGNvbnN0IHsgdHJhY2tFdmVudCB9ID0gdXNlQW1wbGl0dWRlKCk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlRmVhdHVyZUZsYWdTZXJ2aWNlKCk7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VBdG9tVmFsdWUoYXBwRGV0YWlsc0F0b20pO1xuXG4gIGNvbnN0IGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB1c2VyRXZlbnRzLFxuICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICB9OiB7XG4gICAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICAgIGdlbmVyYXRpb25QYXJhbXM/OiBHZW5lcmF0aW9uUGFyYW1zO1xuICAgIH0pOiBOZXh0TWVzc2FnZVJlcXVlc3QgPT4ge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gZmVhdHVyZUZsYWdTZXJ2aWNlPy5mZWF0dXJlRmxhZ1NlcnZpY2U/LmdldEZlYXR1cmVGbGFncygpIHx8IHt9O1xuXG4gICAgICBjb25zdCBvdmVycmlkZUNvbmZpZ1ZlcnNpb24gPVxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdzcGlmZnlfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICBnZXRRdWVyeVBhcmFtKCdlbnZpdmVfY29uZmlnX3ZlcnNpb24nKSB8fFxuICAgICAgICB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBvdmVycmlkZU1vZGVsRGF0ZXRpbWUgPSBnZXRRdWVyeVBhcmFtKCdvdmVycmlkZV9tb2RlbF9kYXRldGltZScpIHx8IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB1dWlkKCksXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHVzZXJFdmVudHMsXG4gICAgICAgIGZlYXR1cmVGbGFncyxcbiAgICAgICAgZ2VuZXJhdGlvblBhcmFtcyxcbiAgICAgICAgb3ZlcnJpZGVDb25maWdWZXJzaW9uLFxuICAgICAgICBvdmVycmlkZU1vZGVsRGF0ZXRpbWUsXG4gICAgICB9O1xuICAgIH0sXG4gICAgW2NvbnRleHQsIGZlYXR1cmVGbGFnU2VydmljZT8uZmVhdHVyZUZsYWdTZXJ2aWNlXSxcbiAgKTtcblxuICBjb25zdCBnZXRTdHJlYW1pbmdSZXNwb25zZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlKHRydWUpO1xuICAgICAgY29uc3Qgc3RyZWFtID0gQ29tbWVyY2VBcGlDbGllbnQuZ2V0TmV4dFJlc3BvbnNlU3RyZWFtaW5nKHBheWxvYWQpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBzZXRSZXF1ZXN0RmFpbHVyZShmYWxzZSk7XG5cbiAgICAgICAgYXdhaXQgcHJvY2Vzc1N0cmVhbWluZ1Jlc3BvbnNlKFxuICAgICAgICAgIHN0cmVhbSxcbiAgICAgICAgICBtZXNzYWdlSW50ZXJjZXB0b3IsXG4gICAgICAgICAgc2V0TWVzc2FnZXMsXG4gICAgICAgICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcsXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gTG9nIHN1Y2Nlc3NmdWwgbmV4dF9yZXNwb25zZXMgY2FsbFxuICAgICAgICBjb25zdCByZXNwb25zZVRpbWUgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgICAgICB0cmFja0V2ZW50KHtcbiAgICAgICAgICBldmVudE5hbWU6IFNwaWZmeU1ldHJpY3NFdmVudE5hbWUuQ2hhdEFzc2lzdGFudFJlc3BvbnNlLFxuICAgICAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHJlc3BvbnNlVGltZU1zOiByZXNwb25zZVRpbWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIC4uLmlucHV0UHJvcHNUb1RyYWNraW5nUHJvcHMocGF5bG9hZCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFRPRE86IEFkZCBzdXBwb3J0IGZvciB0aGUgQ2hyb21lIEV4dGVuc2lvbiBjb21tdW5pY2F0aW9uXG4gICAgICAgIC8vIGF3YWl0IGxvZ0J1bmRsZUV2ZW50KHtcbiAgICAgICAgLy8gICBsZXZlbDogJ2luZm8nLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9TVUNDRVNTJyxcbiAgICAgICAgLy8gICBjb250ZXh0OiB7XG4gICAgICAgIC8vICAgICB0eXBlOiAnbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgZW5kcG9pbnQ6ICcvdjEvbmV4dF9yZXNwb25zZXMnLFxuICAgICAgICAvLyAgICAgc3RhdHVzQ29kZTogMjAwLFxuICAgICAgICAvLyAgICAgcmVzcG9uc2VUaW1lLFxuICAgICAgICAvLyAgIH0sXG4gICAgICAgIC8vIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciBnZXR0aW5nIHN0cmVhbWluZyByZXNwb25zZXMnLCBlKTtcbiAgICAgICAgLy8gTG9nIGZhaWxlZCBuZXh0X3Jlc3BvbnNlcyBjYWxsXG4gICAgICAgIC8vIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIC8vIGF3YWl0IGxvZ0J1bmRsZUV2ZW50KHtcbiAgICAgICAgLy8gICBsZXZlbDogJ2Vycm9yJyxcbiAgICAgICAgLy8gICBldmVudDogJ05FWFRfUkVTUE9OU0VfRkFJTEVEJyxcbiAgICAgICAgLy8gICBtZXNzYWdlOiBgRmFpbGVkIHRvIGdldCBzdHJlYW1pbmcgcmVzcG9uc2U6ICR7ZX1gLFxuICAgICAgICAvLyAgIGNvbnRleHQ6IHtcbiAgICAgICAgLy8gICAgIHR5cGU6ICduZXh0X3Jlc3BvbnNlcycsXG4gICAgICAgIC8vICAgICBlbmRwb2ludDogJy92MS9uZXh0X3Jlc3BvbnNlcycsXG4gICAgICAgIC8vICAgICByZXNwb25zZVRpbWUsXG4gICAgICAgIC8vICAgICBlcnJvcjogZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpLFxuICAgICAgICAvLyAgIH0sXG4gICAgICAgIC8vIH0pO1xuXG4gICAgICAgIGhhbmRsZVN0cmVhbWluZ0Vycm9yKGUsIHNldFJlcXVlc3RGYWlsdXJlLCBzZXRNZXNzYWdlcyk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRQZW5kaW5nUmVzcG9uc2UoZmFsc2UpO1xuICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyhmYWxzZSk7XG4gICAgICAgIC8vIGxvZ1BlcmZNZXRyaWMoUGVyZk1ldHJpY3NFdmVudHMuRmlyc3RSZXNwb25zZUNvbXBsZXRlZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICAvLyBsb2dQZXJmTWV0cmljLFxuICAgICAgc2V0UmVxdWVzdEZhaWx1cmUsXG4gICAgICBtZXNzYWdlSW50ZXJjZXB0b3IsXG4gICAgICBzZXRNZXNzYWdlcyxcbiAgICAgIHNldFBlbmRpbmdSZXNwb25zZSxcbiAgICBdLFxuICApO1xuXG4gIGNvbnN0IGdldFN1Z2dlc3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgbmV3U3VnZ2VzdGlvbnMgPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXROZXh0U3VnZ2VzdGlvbnMocGF5bG9hZCk7XG4gICAgICBzZXRTdWdnZXN0aW9ucyhuZXdTdWdnZXN0aW9ucyk7XG4gICAgfSxcbiAgICBbc2V0U3VnZ2VzdGlvbnNdLFxuICApO1xuXG4gIGNvbnN0IGh5ZHJhdGVNZXNzYWdlcyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7IG9yZ0lkLCBjaGF0SWQsIHVzZXJJZCB9ID0gY29udGV4dDtcbiAgICBjb25zdCB7IG1lc3NhZ2VzOiBleGlzdGluZ01lc3NhZ2VzLCB1c2VyRXZlbnRzIH0gPSBhd2FpdCBDb21tZXJjZUFwaUNsaWVudC5nZXRSZXNwb25zZXMoXG4gICAgICBvcmdJZCxcbiAgICAgIGNoYXRJZCxcbiAgICAgIHVzZXJJZCxcbiAgICApO1xuICAgIHNldE1lc3NhZ2VzKFsuLi5leGlzdGluZ01lc3NhZ2VzXSk7XG4gIH0sIFtjb250ZXh0LCBzZXRNZXNzYWdlc10pO1xuXG4gIHJldHVybiB7XG4gICAgY3JlYXRlUmVzcG9uc2VQYXlsb2FkLFxuICAgIGdldFN0cmVhbWluZ1Jlc3BvbnNlcyxcbiAgICBnZXRTdWdnZXN0aW9ucyxcbiAgICBoeWRyYXRlTWVzc2FnZXMsXG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3Q0EsTUFBTSw2QkFDSixZQUN3QztDQUN4QyxNQUFNLENBQUMsYUFBYSxRQUFRLGNBQWMsRUFBRTtBQUM1QyxLQUFJLFVBQVUsYUFBYSxrQkFBa0Isa0JBQzNDLFFBQU87RUFDTCxpQkFBaUI7RUFDakIsWUFBWSxVQUFVLFdBQVc7RUFDbEM7QUFFSCxLQUFJLFVBQVUsYUFBYSxrQkFBa0IsV0FDM0MsUUFBTztFQUNMLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztBQUVILFFBQU8sRUFBRTs7QUFHWCxNQUFhLGlCQUFpQixRQUErQjtBQUUzRCxRQURlLElBQUksSUFBSSxPQUFPLFNBQVMsS0FBSyxDQUM5QixhQUFhLElBQUksSUFBSTs7QUFHckMsTUFBTSxtQkFBbUIsV0FBNEI7QUFDbkQsS0FBSSxrQkFBa0IsaUJBQ3BCO01BQUksT0FBTyxlQUFlLElBQ3hCLFFBQU87O0FBUVgsUUFBTzs7QUFHVCxNQUFNLHdCQUNKLFFBQ0EsbUJBQ0EsZ0JBQ0c7QUFDSCxtQkFBa0IsS0FBSztDQUV2QixNQUFNLGVBQWUsZ0JBQWdCLE9BQU87QUFDNUMsY0FBWSxTQUFRLENBQ2xCLEdBQUcsTUFDSCxDQUNFO0VBQ0UsSUFBSUEsSUFBTTtFQUNW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
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNBZ2VudFNlcnZpY2UuanMiLCJuYW1lcyI6WyJ1dWlkIiwibGFzdE1lc3NhZ2U6IE1lc3NhZ2UgfCB1bmRlZmluZWQiLCJlcnJvcjogdW5rbm93biIsInVzZVNhbGVzQWdlbnRTZXJ2aWNlOiAoKSA9PiBTYWxlc0FnZW50U2VydmljZSIsInN1Y2Nlc3NmdWxSZXNwb25zZTogYm9vbGVhbiB8IHVuZGVmaW5lZCIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUF0b21WYWx1ZSwgdXNlU2V0QXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IHsgYXBwRGV0YWlsc0F0b20gfSBmcm9tICdzcmMvYXRvbXMvYXBwJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7XG4gIEdlbmVyYXRpb25QYXJhbXMsXG4gIE1lc3NhZ2UsXG4gIE1lc3NhZ2VSb2xlLFxuICBNZXNzYWdlVHlwZSxcbiAgTmV4dE1lc3NhZ2VSZXF1ZXN0LFxuICBSZXNwb25zZSxcbiAgVXNlckV2ZW50LFxufSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IG1lc3NhZ2VGcm9tUmVzcG9uc2UgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtcbiAgbWVzc2FnZXNBdG9tLFxuICBwZW5kaW5nUmVzcG9uc2VBdG9tLFxuICByZXF1ZXN0RmFpbHVyZUF0b20sXG4gIHJlc3BvbnNlU3RyZWFtaW5nQXRvbSxcbiAgc3VnZ2VzdGlvbnNBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvY2hhdC9jaGF0U3RhdGUnO1xuaW1wb3J0IHsgdXNlTWVzc2FnZUludGVyY2VwdG9yIH0gZnJvbSAnc3JjL2ludGVyY2VwdG9ycy91c2VNZXNzYWdlSW50ZXJjZXB0b3InO1xuaW1wb3J0IHsgU3BpZmZ5TWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgVXNlckV2ZW50Q2F0ZWdvcnkgfSBmcm9tICdAc3BpZmZ5LWFpL2NvbW1lcmNlLWFwaS1jbGllbnQnO1xuXG5pbXBvcnQgeyBTdGF0dXNDb2RlRXJyb3IgfSBmcm9tICcuL3N0YXR1c0NvZGVFcnJvcic7XG5cbmludGVyZmFjZSBTYWxlc0FnZW50U2VydmljZSB7XG4gIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZDogKHBheWxvYWQ6IHtcbiAgICB1c2VyRXZlbnRzOiBVc2VyRXZlbnRbXTtcbiAgICBnZW5lcmF0aW9uUGFyYW1zPzogR2VuZXJhdGlvblBhcmFtcztcbiAgfSkgPT4gTmV4dE1lc3NhZ2VSZXF1ZXN0O1xuICBnZXRTdHJlYW1pbmdSZXNwb25zZXM6IChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpID0+IFByb21pc2U8dm9pZD47XG4gIGdldFN1Z2dlc3Rpb25zOiAocGF5bG9hZDogTmV4dE1lc3NhZ2VSZXF1ZXN0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICBoeWRyYXRlTWVzc2FnZXM6ICgpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmNvbnN0IGlucHV0UHJvcHNUb1RyYWNraW5nUHJvcHMgPSAoXG4gIHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgW3VzZXJFdmVudF0gPSBwYXlsb2FkLnVzZXJFdmVudHMgfHwgW107XG4gIGlmICh1c2VyRXZlbnQuY2F0ZWdvcnkgPT09IFVzZXJFdmVudENhdGVnb3J5LlN1Z2dlc3Rpb25DbGlja2VkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VfaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgdXNlcl9ldmVudF90eXBlOiAnc3VnZ2VzdGlvbl9jbGlja2VkJyxcbiAgICAgIHVzZXJfcXVlcnk6IHVzZXJFdmVudC5hdHRyaWJ1dGVzLmNvbnRlbnQsXG4gICAgfTtcbiAgfVxuICBpZiAodXNlckV2ZW50LmNhdGVnb3J5ID09PSBVc2VyRXZlbnRDYXRlZ29yeS5RdWVyeVR5cGVkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VfaWQ6IHVzZXJFdmVudC5ldmVudElkLFxuICAgICAgdXNlcl9ldmVudF90eXBlOiAncXVlcnlfdHlwZWQnLFxuICAgICAgdXNlcl9xdWVyeTogdXNlckV2ZW50LmF0dHJpYnV0ZXMucXVlcnksXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UXVlcnlQYXJhbSA9IChrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgcmV0dXJuIHVybE9iai5zZWFyY2hQYXJhbXMuZ2V0KGtleSk7XG59O1xuXG5jb25zdCBnZXRFcnJvck1lc3NhZ2UgPSAoX2Vycm9yOiB1bmtub3duKTogc3RyaW5nID0+IHtcbiAgaWYgKF9lcnJvciBpbnN0YW5jZW9mIFN0YXR1c0NvZGVFcnJvcikge1xuICAgIGlmIChfZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDIzKSB7XG4gICAgICByZXR1cm4gJ0R1ZSB0byB2aW9sYXRpb24gb2YgdGVybXMgYW5kIHNlcnZpY2VzLCB0aGlzIHNlc3Npb24gaGFzIGJlZW4gdGVybWluYXRlZC4nO1xuICAgIH1cbiAgICAvLyBLZWVwaW5nIHRoZSA0MjkgZXJyb3IgbWVzc2FnZXMgYXMgdGhlIGdlbmVyaWMgZXJyb3IgbWVzc2FnZSBmb3Igbm93LlxuICAgIC8vIGlmIChfZXJyb3Iuc3RhdHVzQ29kZSA9PT0gNDI5KSB7XG4gICAgLy8gICByZXR1cm4gXCJJJ20gc29ycnkhIFRoZSBzeXN0ZW0gaXMgYnVzeSByaWdodCBub3cuIFBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgbWludXRlcy5cIjtcbiAgICAvLyB9XG4gIH1cblxuICByZXR1cm4gXCJJJ20gc29ycnkhIEknbSBoYXZpbmcgdHJvdWJsZSByaWdodCBub3cuIFBsZWFzZSByZWZyZXNoIHRoZSBwYWdlIG9yIHRyeSBhZ2FpbiBpbiBhIG1vbWVudC5cIjtcbn07XG5cbmNvbnN0IGhhbmRsZVN0cmVhbWluZ0Vycm9yID0gKFxuICBfZXJyb3I6IHVua25vd24sXG4gIHNldFJlcXVlc3RGYWlsdXJlOiAoZmFpbGVkOiBib29sZWFuKSA9PiB2b2lkLFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4pID0+IHtcbiAgc2V0UmVxdWVzdEZhaWx1cmUodHJ1ZSk7XG5cbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gZ2V0RXJyb3JNZXNzYWdlKF9lcnJvcik7XG4gIHNldE1lc3NhZ2VzKHByZXYgPT4gW1xuICAgIC4uLnByZXYsXG4gICAgW1xuICAgICAge1xuICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICByb2xlOiBNZXNzYWdlUm9sZS5Bc3Npc3RhbnQsXG4gICAgICAgIHR5cGU6IE1lc3NhZ2VUeXBlLlRleHQsXG4gICAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIGNvbnRlbnQ6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgXSk7XG59O1xuXG5jb25zdCB1cGRhdGVNZXNzYWdlU3RhdGUgPSAoXG4gIG1lc3NhZ2U6IE1lc3NhZ2UsXG4gIGxhc3RNZXNzYWdlOiBNZXNzYWdlLFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4pOiBNZXNzYWdlID0+IHtcbiAgaWYgKGxhc3RNZXNzYWdlID09IG51bGwpIHtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IFsuLi5wcmV2LCBbbWVzc2FnZV1dKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuICBpZiAobGFzdE1lc3NhZ2UudHlwZSA9PT0gTWVzc2FnZVR5cGUuVGV4dCAmJiBtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlRleHQpIHtcbiAgICBjb25zdCBuZXdNZXNzYWdlID0ge1xuICAgICAgLi4ubGFzdE1lc3NhZ2UsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICAuLi5sYXN0TWVzc2FnZS5tZXRhZGF0YSxcbiAgICAgICAgY29udGVudDogbGFzdE1lc3NhZ2UubWV0YWRhdGEuY29udGVudCArIG1lc3NhZ2UubWV0YWRhdGEuY29udGVudCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBzZXRNZXNzYWdlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IGxhc3RUdXJuID0gcHJldltwcmV2Lmxlbmd0aCAtIDFdO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4ucHJldi5zbGljZSgwLCBwcmV2Lmxlbmd0aCAtIDEpLFxuICAgICAgICBbLi4ubGFzdFR1cm4uc2xpY2UoMCwgbGFzdFR1cm4ubGVuZ3RoIC0gMSksIG5ld01lc3NhZ2VdLFxuICAgICAgXTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3TWVzc2FnZTtcbiAgfVxuICBzZXRNZXNzYWdlcyhwcmV2ID0+IFsuLi5wcmV2LnNsaWNlKDAsIHByZXYubGVuZ3RoIC0gMSksIFsuLi5wcmV2W3ByZXYubGVuZ3RoIC0gMV0sIG1lc3NhZ2VdXSk7XG4gIHJldHVybiBtZXNzYWdlO1xufTtcblxuY29uc3QgcHJvY2Vzc1N0cmVhbWluZ1Jlc3BvbnNlID0gYXN5bmMgKFxuICBzdHJlYW06IEFzeW5jSXRlcmFibGU8UmVzcG9uc2U+LFxuICBtZXNzYWdlSW50ZXJjZXB0b3I6IHsgaW50ZXJjZXB0OiAocmVzcG9uc2U/OiBSZXNwb25zZSkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBzZXRNZXNzYWdlczogKHVwZGF0ZXI6IChwcmV2OiBNZXNzYWdlW11bXSkgPT4gTWVzc2FnZVtdW10pID0+IHZvaWQsXG4gIHNldFJlc3BvbnNlU3RyZWFtaW5nOiAocmVzcG9uc2VTdHJlYW1pbmc6IGJvb2xlYW4pID0+IHZvaWQsXG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgbGV0IGxhc3RNZXNzYWdlOiBNZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBzZXRSZXNwb25zZVN0cmVhbWluZyh0cnVlKTtcblxuICBmb3IgYXdhaXQgKGNvbnN0IHJlc3BvbnNlIG9mIHN0cmVhbSkge1xuICAgIHRyeSB7XG4gICAgICBpZiAobWVzc2FnZUludGVyY2VwdG9yLmludGVyY2VwdChyZXNwb25zZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVzcG9uc2UgZnJvbSBzdHJlYW0nKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVzc2FnZSA9IG1lc3NhZ2VGcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHRyYW5zZm9ybSBBUEkgcmVzcG9uc2UgdG8gY2xpZW50IG1lc3NhZ2UnKTtcbiAgICAgIH1cblxuICAgICAgLy8gTm8gc3VwcG9ydCBmb3IgQ2hhdFNlYXJjaCBtZXNzYWdlcyBhdCB0aGUgY3VycmVudCB0aW1lLlxuICAgICAgLy8gUGVyaGFwcyB3ZSBhZGQgc3VwcG9ydCBiYWNrIGluIHRoZSBmdXR1cmVcbiAgICAgIC8vIGlmIChtZXNzYWdlLnR5cGUgPT09IE1lc3NhZ2VUeXBlLlByb2R1Y3RTZWFyY2gpIHtcbiAgICAgIC8vICAgaGFuZGxlU2VhcmNoUmVzdWx0cyhtZXNzYWdlKTtcbiAgICAgIC8vICAgaGFzU2VhcmNoUmVzdWx0cyA9IHRydWU7XG4gICAgICAvLyAgIHNldFNlYXJjaElzTG9hZGluZyhmYWxzZSk7IC8vIFVwZGF0ZSBzZWFyY2ggbG9hZGluZyBpbW1lZGlhdGVseSB3aGVuIHJlc3VsdHMgYXJlIGRldGVjdGVkXG4gICAgICAvLyB9XG5cbiAgICAgIGxhc3RNZXNzYWdlID0gdXBkYXRlTWVzc2FnZVN0YXRlKG1lc3NhZ2UsIGxhc3RNZXNzYWdlISwgc2V0TWVzc2FnZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBMb2dnZXIubG9nV2FybihgW3NwaWZmeS1haV0gRmFpbGVkIHRvIGdlbmVyYXRlIHJlc3BvbnNlcyBmcm9tIHN0cmVhbWAsIGVycm9yLCB7XG4gICAgICAgIGxhc3RSZXNwb25zZTogbGFzdE1lc3NhZ2UsXG4gICAgICAgIHJlc3BvbnNlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHNldFJlc3BvbnNlU3RyZWFtaW5nKGZhbHNlKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHVzZVNhbGVzQWdlbnRTZXJ2aWNlOiAoKSA9PiBTYWxlc0FnZW50U2VydmljZSA9ICgpID0+IHtcbiAgY29uc3Qgc2V0UmVxdWVzdEZhaWx1cmUgPSB1c2VTZXRBdG9tKHJlcXVlc3RGYWlsdXJlQXRvbSk7XG4gIGNvbnN0IHNldE1lc3NhZ2VzID0gdXNlU2V0QXRvbShtZXNzYWdlc0F0b20pO1xuICBjb25zdCBzZXRTdWdnZXN0aW9ucyA9IHVzZVNldEF0b20oc3VnZ2VzdGlvbnNBdG9tKTtcbiAgY29uc3Qgc2V0UGVuZGluZ1Jlc3BvbnNlID0gdXNlU2V0QXRvbShwZW5kaW5nUmVzcG9uc2VBdG9tKTtcbiAgY29uc3Qgc2V0UmVzcG9uc2VTdHJlYW1pbmcgPSB1c2VTZXRBdG9tKHJlc3BvbnNlU3RyZWFtaW5nQXRvbSk7XG4gIGNvbnN0IG1lc3NhZ2VJbnRlcmNlcHRvciA9IHVzZU1lc3NhZ2VJbnRlcmNlcHRvcigpO1xuICBjb25zdCB7IHRyYWNrRXZlbnQgfSA9IHVzZUFtcGxpdHVkZSgpO1xuXG4gIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IHVzZUZlYXR1cmVGbGFnU2VydmljZSgpO1xuICBjb25zdCBjb250ZXh0ID0gdXNlQXRvbVZhbHVlKGFwcERldGFpbHNBdG9tKTtcblxuICBjb25zdCBjcmVhdGVSZXNwb25zZVBheWxvYWQgPSB1c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgdXNlckV2ZW50cyxcbiAgICAgIGdlbmVyYXRpb25QYXJhbXMsXG4gICAgfToge1xuICAgICAgdXNlckV2ZW50czogVXNlckV2ZW50W107XG4gICAgICBnZW5lcmF0aW9uUGFyYW1zPzogR2VuZXJhdGlvblBhcmFtcztcbiAgICB9KTogTmV4dE1lc3NhZ2VSZXF1ZXN0ID0+IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IGZlYXR1cmVGbGFnU2VydmljZT8uZmVhdHVyZUZsYWdTZXJ2aWNlPy5nZXRGZWF0dXJlRmxhZ3MoKSB8fCB7fTtcblxuICAgICAgY29uc3Qgb3ZlcnJpZGVDb25maWdWZXJzaW9uID1cbiAgICAgICAgZ2V0UXVlcnlQYXJhbSgnc3BpZmZ5X2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgICAgZ2V0UXVlcnlQYXJhbSgnZW52aXZlX2NvbmZpZ192ZXJzaW9uJykgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgY29uc3Qgb3ZlcnJpZGVNb2RlbERhdGV0aW1lID0gZ2V0UXVlcnlQYXJhbSgnb3ZlcnJpZGVfbW9kZWxfZGF0ZXRpbWUnKSB8fCB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICB1c2VyRXZlbnRzLFxuICAgICAgICBmZWF0dXJlRmxhZ3MsXG4gICAgICAgIGdlbmVyYXRpb25QYXJhbXMsXG4gICAgICAgIG92ZXJyaWRlQ29uZmlnVmVyc2lvbixcbiAgICAgICAgb3ZlcnJpZGVNb2RlbERhdGV0aW1lLFxuICAgICAgfTtcbiAgICB9LFxuICAgIFtjb250ZXh0LCBmZWF0dXJlRmxhZ1NlcnZpY2U/LmZlYXR1cmVGbGFnU2VydmljZV0sXG4gICk7XG5cbiAgY29uc3QgZ2V0U3RyZWFtaW5nUmVzcG9uc2VzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHBheWxvYWQ6IE5leHRNZXNzYWdlUmVxdWVzdCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIGxldCBzdWNjZXNzZnVsUmVzcG9uc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICBzZXRQZW5kaW5nUmVzcG9uc2UodHJ1ZSk7XG4gICAgICBjb25zdCBzdHJlYW0gPSBDb21tZXJjZUFwaUNsaWVudC5nZXROZXh0UmVzcG9uc2VTdHJlYW1pbmcocGF5bG9hZCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFJlcXVlc3RGYWlsdXJlKGZhbHNlKTtcblxuICAgICAgICBhd2FpdCBwcm9jZXNzU3RyZWFtaW5nUmVzcG9uc2UoXG4gICAgICAgICAgc3RyZWFtLFxuICAgICAgICAgIG1lc3NhZ2VJbnRlcmNlcHRvcixcbiAgICAgICAgICBzZXRNZXNzYWdlcyxcbiAgICAgICAgICBzZXRSZXNwb25zZVN0cmVhbWluZyxcbiAgICAgICAgKTtcbiAgICAgICAgc3VjY2Vzc2Z1bFJlc3BvbnNlID0gdHJ1ZTtcblxuICAgICAgICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIENocm9tZSBFeHRlbnNpb24gY29tbXVuaWNhdGlvblxuICAgICAgICAvLyBhd2FpdCBsb2dCdW5kbGVFdmVudCh7XG4gICAgICAgIC8vICAgbGV2ZWw6ICdpbmZvJyxcbiAgICAgICAgLy8gICBldmVudDogJ05FWFRfUkVTUE9OU0VfU1VDQ0VTUycsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHN0YXR1c0NvZGU6IDIwMCxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICB9LFxuICAgICAgICAvLyB9KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgZ2V0dGluZyBzdHJlYW1pbmcgcmVzcG9uc2VzJywgZSk7XG4gICAgICAgIHN1Y2Nlc3NmdWxSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAvLyBMb2cgZmFpbGVkIG5leHRfcmVzcG9uc2VzIGNhbGxcbiAgICAgICAgLy8gY29uc3QgcmVzcG9uc2VUaW1lID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICAgICAgLy8gYXdhaXQgbG9nQnVuZGxlRXZlbnQoe1xuICAgICAgICAvLyAgIGxldmVsOiAnZXJyb3InLFxuICAgICAgICAvLyAgIGV2ZW50OiAnTkVYVF9SRVNQT05TRV9GQUlMRUQnLFxuICAgICAgICAvLyAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gZ2V0IHN0cmVhbWluZyByZXNwb25zZTogJHtlfWAsXG4gICAgICAgIC8vICAgY29udGV4dDoge1xuICAgICAgICAvLyAgICAgdHlwZTogJ25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIGVuZHBvaW50OiAnL3YxL25leHRfcmVzcG9uc2VzJyxcbiAgICAgICAgLy8gICAgIHJlc3BvbnNlVGltZSxcbiAgICAgICAgLy8gICAgIGVycm9yOiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSksXG4gICAgICAgIC8vICAgfSxcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgaGFuZGxlU3RyZWFtaW5nRXJyb3IoZSwgc2V0UmVxdWVzdEZhaWx1cmUsIHNldE1lc3NhZ2VzKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIC8vIExvZyBuZXh0X3Jlc3BvbnNlcyBjYWxsXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlVGltZSA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgICAgIHRyYWNrRXZlbnQoe1xuICAgICAgICAgIGV2ZW50TmFtZTogU3BpZmZ5TWV0cmljc0V2ZW50TmFtZS5DaGF0QXNzaXN0YW50UmVzcG9uc2UsXG4gICAgICAgICAgZXZlbnRQcm9wczoge1xuICAgICAgICAgICAgcmVzcG9uc2VUaW1lTXM6IHJlc3BvbnNlVGltZS50b1N0cmluZygpLFxuICAgICAgICAgICAgc3VjY2Vzc2Z1bF9yZXNwb25zZTogc3VjY2Vzc2Z1bFJlc3BvbnNlLFxuICAgICAgICAgICAgLi4uaW5wdXRQcm9wc1RvVHJhY2tpbmdQcm9wcyhwYXlsb2FkKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgc2V0UGVuZGluZ1Jlc3BvbnNlKGZhbHNlKTtcbiAgICAgICAgc2V0UmVzcG9uc2VTdHJlYW1pbmcoZmFsc2UpO1xuICAgICAgICAvLyBsb2dQZXJmTWV0cmljKFBlcmZNZXRyaWNzRXZlbnRzLkZpcnN0UmVzcG9uc2VDb21wbGV0ZWQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW1xuICAgICAgLy8gbG9nUGVyZk1ldHJpYyxcbiAgICAgIHNldFJlcXVlc3RGYWlsdXJlLFxuICAgICAgbWVzc2FnZUludGVyY2VwdG9yLFxuICAgICAgc2V0TWVzc2FnZXMsXG4gICAgICBzZXRQZW5kaW5nUmVzcG9uc2UsXG4gICAgXSxcbiAgKTtcblxuICBjb25zdCBnZXRTdWdnZXN0aW9ucyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChwYXlsb2FkOiBOZXh0TWVzc2FnZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IG5ld1N1Z2dlc3Rpb25zID0gYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0TmV4dFN1Z2dlc3Rpb25zKHBheWxvYWQpO1xuICAgICAgc2V0U3VnZ2VzdGlvbnMobmV3U3VnZ2VzdGlvbnMpO1xuICAgIH0sXG4gICAgW3NldFN1Z2dlc3Rpb25zXSxcbiAgKTtcblxuICBjb25zdCBoeWRyYXRlTWVzc2FnZXMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgeyBvcmdJZCwgY2hhdElkLCB1c2VySWQgfSA9IGNvbnRleHQ7XG4gICAgY29uc3QgeyBtZXNzYWdlczogZXhpc3RpbmdNZXNzYWdlcywgdXNlckV2ZW50cyB9ID0gYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQuZ2V0UmVzcG9uc2VzKFxuICAgICAgb3JnSWQsXG4gICAgICBjaGF0SWQsXG4gICAgICB1c2VySWQsXG4gICAgKTtcbiAgICBzZXRNZXNzYWdlcyhbLi4uZXhpc3RpbmdNZXNzYWdlc10pO1xuICB9LCBbY29udGV4dCwgc2V0TWVzc2FnZXNdKTtcblxuICByZXR1cm4ge1xuICAgIGNyZWF0ZVJlc3BvbnNlUGF5bG9hZCxcbiAgICBnZXRTdHJlYW1pbmdSZXNwb25zZXMsXG4gICAgZ2V0U3VnZ2VzdGlvbnMsXG4gICAgaHlkcmF0ZU1lc3NhZ2VzLFxuICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLE1BQU0sNkJBQ0osWUFDd0M7Q0FDeEMsTUFBTSxDQUFDLGFBQWEsUUFBUSxjQUFjLEVBQUU7QUFDNUMsS0FBSSxVQUFVLGFBQWEsa0JBQWtCLGtCQUMzQyxRQUFPO0VBQ0wsWUFBWSxVQUFVO0VBQ3RCLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztBQUVILEtBQUksVUFBVSxhQUFhLGtCQUFrQixXQUMzQyxRQUFPO0VBQ0wsWUFBWSxVQUFVO0VBQ3RCLGlCQUFpQjtFQUNqQixZQUFZLFVBQVUsV0FBVztFQUNsQztB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
|
|
@@ -2,10 +2,10 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
|
2
2
|
const require_logger = require('../../application/logging/logger.cjs');
|
|
3
3
|
const require_enviveConfig = require('../../atoms/envive/enviveConfig.cjs');
|
|
4
4
|
const require_enviveConfigContext = require('../enviveConfigContext/enviveConfigContext.cjs');
|
|
5
|
-
const require_searchServiceAdapter = require('../../atoms/search/searchServiceAdapter.cjs');
|
|
6
5
|
const require_sessionExceptions = require('../../types/exceptions/sessionExceptions.cjs');
|
|
7
6
|
const require_unsupportedProductExceptions = require('../../types/exceptions/unsupportedProductExceptions.cjs');
|
|
8
7
|
const require_useAppDetails = require('../../hooks/AppDetails/useAppDetails.cjs');
|
|
8
|
+
const require_searchServiceAdapter = require('../../atoms/search/searchServiceAdapter.cjs');
|
|
9
9
|
let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
|
|
10
10
|
let react = require("react");
|
|
11
11
|
react = require_rolldown_runtime.__toESM(react);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import logger_default from "../../application/logging/logger.js";
|
|
2
2
|
import { baseUrlAtom } from "../../atoms/envive/enviveConfig.js";
|
|
3
3
|
import { useEnviveConfig } from "../enviveConfigContext/enviveConfigContext.js";
|
|
4
|
-
import { clearSearchServiceFunction, setSearchServiceFunction } from "../../atoms/search/searchServiceAdapter.js";
|
|
5
4
|
import { SessionRestartRequired } from "../../types/exceptions/sessionExceptions.js";
|
|
6
5
|
import { UnsupportedProductException } from "../../types/exceptions/unsupportedProductExceptions.js";
|
|
7
6
|
import { useAppDetails } from "../../hooks/AppDetails/useAppDetails.js";
|
|
7
|
+
import { clearSearchServiceFunction, setSearchServiceFunction } from "../../atoms/search/searchServiceAdapter.js";
|
|
8
8
|
import { Configuration, ResponseCategory, ResponseError, SearchApi } from "@spiffy-ai/commerce-api-client";
|
|
9
9
|
import React, { createContext, useCallback, useContext, useEffect, useMemo } from "react";
|
|
10
10
|
import { useAtomValue } from "jotai";
|