@envive-ai/react-hooks 0.3.18 → 0.3.19-alpha-marlo-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/application/commerce-api.cjs +14 -13
- package/dist/application/commerce-api.js +14 -13
- package/dist/application/logging/logger.cjs +16 -10
- package/dist/application/logging/logger.js +16 -10
- package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
- package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
- package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
- package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
- package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
- package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
- package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
- package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
- package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
- package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
- package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
- package/dist/application/models/guards/api/isApiResponse.js +7 -6
- package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
- package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
- package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
- package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
- package/dist/application/utils/analyticsUtils.cjs +4 -3
- package/dist/application/utils/analyticsUtils.js +4 -3
- package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
- package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
- package/dist/atoms/app/index.d.cts +1 -1
- package/dist/atoms/app/index.d.ts +7 -7
- package/dist/atoms/app/variant.cjs +3 -2
- package/dist/atoms/app/variant.d.cts +6 -6
- package/dist/atoms/app/variant.js +3 -2
- package/dist/atoms/chat/chatState.d.cts +18 -18
- package/dist/atoms/chat/chatState.d.ts +18 -18
- package/dist/atoms/chat/form.d.cts +3 -3
- package/dist/atoms/chat/form.d.ts +2 -2
- package/dist/atoms/chat/index.d.cts +3 -3
- package/dist/atoms/chat/index.d.ts +3 -3
- package/dist/atoms/chat/lastMessage.d.cts +2 -2
- package/dist/atoms/chat/lastMessage.d.ts +2 -2
- package/dist/atoms/chat/messageQueue.d.cts +7 -7
- package/dist/atoms/chat/messageQueue.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.cjs +3 -2
- package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
- package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
- package/dist/atoms/chat/performanceMetrics.js +3 -2
- package/dist/atoms/chat/renderedWidgetRefs.d.cts +3 -3
- package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
- package/dist/atoms/chat/replies.d.cts +3 -3
- package/dist/atoms/chat/replies.d.ts +3 -3
- package/dist/atoms/chat/suggestions.d.cts +3 -3
- package/dist/atoms/chat/suggestions.d.ts +2 -2
- package/dist/atoms/envive/enviveConfig.cjs +5 -4
- package/dist/atoms/envive/enviveConfig.d.cts +13 -13
- package/dist/atoms/envive/enviveConfig.d.ts +13 -13
- package/dist/atoms/envive/enviveConfig.js +5 -4
- 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/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.d.cts +17 -17
- package/dist/atoms/search/searchAPI.d.cts +13 -13
- package/dist/atoms/search/types.d.cts +1 -1
- package/dist/atoms/search/utils.d.cts +1 -1
- package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
- package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -3
- package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -2
- package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
- package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
- package/dist/contexts/enviveConfigContext/index.cjs +2 -1
- package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
- package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
- package/dist/contexts/enviveConfigContext/index.js +2 -1
- package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
- package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
- package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
- package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
- package/dist/contexts/enviveContext/enviveContext.cjs +74 -45
- package/dist/contexts/enviveContext/enviveContext.d.cts +8 -2
- package/dist/contexts/enviveContext/enviveContext.d.ts +8 -2
- package/dist/contexts/enviveContext/enviveContext.js +75 -46
- package/dist/contexts/enviveContext/index.d.cts +2 -2
- package/dist/contexts/enviveContext/index.d.ts +2 -2
- package/dist/contexts/enviveContext/types.d.cts +1 -1
- package/dist/contexts/enviveContext/types.d.ts +1 -1
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
- package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
- package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
- package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
- package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
- package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
- package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
- package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
- package/dist/contexts/pageContext/pageContext.cjs +23 -4
- package/dist/contexts/pageContext/pageContext.d.cts +3 -1
- package/dist/contexts/pageContext/pageContext.d.ts +3 -1
- package/dist/contexts/pageContext/pageContext.js +24 -5
- package/dist/contexts/pageContext/types.d.ts +1 -1
- package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
- package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
- package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
- package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
- package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
- package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
- package/dist/contexts/searchContext/searchContext.cjs +8 -6
- package/dist/contexts/searchContext/searchContext.js +7 -5
- package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
- package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
- package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
- package/dist/contexts/types.d.cts +1 -1
- package/dist/contexts/types.d.ts +1 -1
- package/dist/contexts/typesV3.d.cts +1 -1
- package/dist/contexts/uiConfigContext/index.cjs +0 -1
- package/dist/contexts/uiConfigContext/index.d.cts +2 -2
- package/dist/contexts/uiConfigContext/index.d.ts +2 -2
- package/dist/contexts/uiConfigContext/index.js +2 -2
- package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
- package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
- package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
- package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
- package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
- package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
- package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
- package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
- package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
- package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
- package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
- package/dist/hooks/ShopifyUrlOperations/useShopifyUrlOperations.d.cts +2 -2
- package/dist/hooks/ShopifyUrlOperations/useShopifyUrlOperations.d.ts +2 -2
- package/dist/hooks/SystemSettingsContext/useSystemSettingsContext.d.ts +2 -2
- package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
- package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
- package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
- package/dist/hooks/WidgetInteraction/utils.js +2 -1
- package/dist/hooks/utils.d.cts +1 -1
- package/dist/hooks/utils.d.ts +1 -1
- package/dist/services/amplitudeService/amplitudeService.cjs +15 -7
- package/dist/services/amplitudeService/amplitudeService.d.cts +2 -1
- package/dist/services/amplitudeService/amplitudeService.d.ts +2 -1
- package/dist/services/amplitudeService/amplitudeService.js +15 -7
- package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
- package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
- package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
- package/dist/services/userIdentityService/userIdentityService.js +8 -7
- package/package.json +2 -2
- package/src/application/commerce-api.ts +14 -12
- package/src/application/logging/logger.ts +33 -8
- package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
- package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
- package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
- package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
- package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
- package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
- package/src/application/models/guards/api/isApiResponse.ts +7 -5
- package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
- package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
- package/src/application/utils/analyticsUtils.ts +4 -4
- package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
- package/src/atoms/app/variant.ts +3 -1
- package/src/atoms/chat/performanceMetrics.ts +3 -1
- package/src/atoms/envive/enviveConfig.ts +5 -3
- package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -1
- package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
- package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
- package/src/contexts/enviveConfigContext/index.ts +1 -0
- package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
- package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
- package/src/contexts/enviveContext/enviveContext.tsx +109 -50
- package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
- package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
- package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
- package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
- package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
- package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
- package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
- package/src/contexts/pageContext/pageContext.tsx +22 -2
- package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
- package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
- package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
- package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
- package/src/contexts/searchContext/searchContext.tsx +6 -4
- package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
- package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
- package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
- package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
- package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
- package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
- package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
- package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
- package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
- package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
- package/src/hooks/WidgetInteraction/utils.ts +3 -1
- package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +3 -3
- package/src/services/amplitudeService/amplitudeService.ts +19 -6
- package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
- package/src/services/userIdentityService/userIdentityService.ts +8 -8
|
@@ -14,6 +14,11 @@ interface AgentWrapperProps {
|
|
|
14
14
|
children: ReactNode;
|
|
15
15
|
enabledAgents: EnviveAgent[];
|
|
16
16
|
}
|
|
17
|
+
interface ExtensionStatusCallbacks {
|
|
18
|
+
onInjectionLoading?: () => Promise<unknown> | void;
|
|
19
|
+
onInjectionSuccess?: () => Promise<unknown> | void;
|
|
20
|
+
onInjectionError?: (error: Error) => Promise<unknown> | void;
|
|
21
|
+
}
|
|
17
22
|
interface EnviveProviderProps extends AgentWrapperProps {
|
|
18
23
|
amplitudeApiKey?: string;
|
|
19
24
|
dataResidency?: string;
|
|
@@ -42,8 +47,9 @@ interface EnviveProviderProps extends AgentWrapperProps {
|
|
|
42
47
|
overrideConfig?: GraphQlConfigValues;
|
|
43
48
|
mockSalesAgentData?: any;
|
|
44
49
|
hardcopyOverride?: Partial<Record<WidgetTypeV3, HardcopyResponse>>;
|
|
50
|
+
extensionService?: ExtensionStatusCallbacks;
|
|
45
51
|
}
|
|
46
52
|
declare const EnviveProvider: React.FC<EnviveProviderProps>;
|
|
47
53
|
//#endregion
|
|
48
|
-
export { EnviveProvider };
|
|
49
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
export { EnviveProvider, ExtensionStatusCallbacks };
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9lbnZpdmVDb250ZXh0L2Vudml2ZUNvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcbmltcG9ydCB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSGFyZGNvcHlSZXNwb25zZSB9IGZyb20gJy4uL2hhcmRjb3B5Q29udGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmludGVyZmFjZSBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICBlbmFibGVkQWdlbnRzOiBFbnZpdmVBZ2VudFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICAgIG9uSW5qZWN0aW9uTG9hZGluZz86ICgpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkO1xuICAgIG9uSW5qZWN0aW9uU3VjY2Vzcz86ICgpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkO1xuICAgIG9uSW5qZWN0aW9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbn1cbmludGVyZmFjZSBFbnZpdmVQcm92aWRlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICAgIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgICBkYXRhUmVzaWRlbmN5Pzogc3RyaW5nO1xuICAgIGVudj86IHN0cmluZztcbiAgICBiYXNlVXJsPzogc3RyaW5nO1xuICAgIHJlYWN0QXBwTmFtZT86IHN0cmluZztcbiAgICBjZG5Vcmw/OiBzdHJpbmc7XG4gICAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgICBvcmdMZXZlbEFwaUtleT86IHN0cmluZztcbiAgICBvcmdTaG9ydE5hbWU/OiBzdHJpbmc7XG4gICAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgZW52aXZlT24/OiBib29sZWFuO1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICBmZWF0dXJlR2F0ZXM/OiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAgIGZlYXR1cmVGbGFnU2VydmljZT86IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgICBhbXBsaXR1ZGVTZXJ2aWNlPzogQW1wbGl0dWRlU2VydmljZTtcbiAgICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xuICAgIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gICAgdXNlcklkZW50aXR5U2VydmljZT86IFVzZXJJZGVudGl0eVNlcnZpY2U7XG4gICAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICAgIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG4gICAgaGFyZGNvcHlPdmVycmlkZT86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+O1xuICAgIGV4dGVuc2lvblNlcnZpY2U/OiBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3M7XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz47XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVVBLElBQUksb0JBQW9CO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDNUIsSUFBVywyQkFBWTtDQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN2QixJQUFJLHNCQUFzQjtDQUFDO09BQUs7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUNoQyxJQUFBLGlCQUFBO0NBQUE7T0FBQTtPQUFBLE1BQUE7Q0FBQSJ9
|
|
@@ -2,10 +2,10 @@ import logger_default from "../../application/logging/logger.js";
|
|
|
2
2
|
import { LocalStorageProvider } from "../localStorageContext/localStorageContext.js";
|
|
3
3
|
import "../localStorageContext/index.js";
|
|
4
4
|
import { EnviveConfigProvider } from "../enviveConfigContext/enviveConfigContext.js";
|
|
5
|
+
import "../enviveConfigContext/index.js";
|
|
5
6
|
import { FeatureFlagService, FeatureFlagServiceProvider } from "../featureFlagServiceContext/featureFlagServiceContext.js";
|
|
6
7
|
import { AmplitudeProvider } from "../amplitudeContext/amplitudeContext.js";
|
|
7
8
|
import "../amplitudeContext/index.js";
|
|
8
|
-
import "../enviveConfigContext/index.js";
|
|
9
9
|
import { EnviveConfigService } from "../../services/enviveConfigService/enviveConfigService.js";
|
|
10
10
|
import { UserIdentityService } from "../../services/userIdentityService/userIdentityService.js";
|
|
11
11
|
import "../../services/userIdentityService/index.js";
|
|
@@ -30,14 +30,12 @@ import { WidgetConfigProvider } from "../widgetConfigContext/widgetConfigContext
|
|
|
30
30
|
import "../widgetConfigContext/index.js";
|
|
31
31
|
import { PageProvider } from "../pageContext/pageContext.js";
|
|
32
32
|
import "../pageContext/index.js";
|
|
33
|
-
import { UiConfigProvider } from "../uiConfigContext/uiConfigContext.js";
|
|
34
|
-
import "../uiConfigContext/index.js";
|
|
35
33
|
import { WindowChatToggleBinder } from "./WindowChatToggleBinder.js";
|
|
36
|
-
import {
|
|
34
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
37
35
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
38
36
|
|
|
39
37
|
//#region src/contexts/enviveContext/enviveContext.tsx
|
|
40
|
-
const
|
|
38
|
+
const logger = new logger_default("enviveContext");
|
|
41
39
|
const SearchAgentWrapper = ({ children, enabledAgents }) => {
|
|
42
40
|
if (!enabledAgents.includes(EnviveAgent.SearchAgent)) return children;
|
|
43
41
|
return /* @__PURE__ */ jsx(SearchProvider, { children });
|
|
@@ -53,8 +51,21 @@ const SalesAgentWrapper = ({ children, enabledAgents, previewMode, showDebugBar,
|
|
|
53
51
|
})
|
|
54
52
|
});
|
|
55
53
|
};
|
|
56
|
-
const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabledAgents, enviveConfigService: inputEnviveConfigService, featureFlagService: inputFeatureFlagService, amplitudeService: inputAmplitudeService, userIdentityService: inputUserIdentityService, mockV3ConfigToDeprecatedConfig = false, requestV3Config = false, mockSalesAgentData, hardcopyOverride, ...config }) => {
|
|
54
|
+
const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabledAgents, enviveConfigService: inputEnviveConfigService, featureFlagService: inputFeatureFlagService, amplitudeService: inputAmplitudeService, userIdentityService: inputUserIdentityService, mockV3ConfigToDeprecatedConfig = false, requestV3Config = false, mockSalesAgentData, hardcopyOverride, extensionService, ...config }) => {
|
|
57
55
|
const [userId, setUserId] = useState("");
|
|
56
|
+
const didReportSuccessRef = useRef(false);
|
|
57
|
+
const invokeExtensionCallback = useCallback((callback) => {
|
|
58
|
+
if (!callback) return;
|
|
59
|
+
Promise.resolve(callback()).catch((error) => {
|
|
60
|
+
logger.logDebug("Extension status callback failed", error);
|
|
61
|
+
});
|
|
62
|
+
}, []);
|
|
63
|
+
const invokeExtensionErrorCallback = useCallback((error) => {
|
|
64
|
+
if (!extensionService?.onInjectionError) return;
|
|
65
|
+
Promise.resolve(extensionService.onInjectionError(error)).catch((callbackError) => {
|
|
66
|
+
logger.logDebug("Extension error callback failed", callbackError);
|
|
67
|
+
});
|
|
68
|
+
}, [extensionService]);
|
|
58
69
|
const userIdService = useMemo(() => inputUserIdentityService ?? new UserIdentityService({ apiKey: config?.amplitudeApiKey || "" }), [config?.amplitudeApiKey, inputUserIdentityService]);
|
|
59
70
|
useEffect(() => {
|
|
60
71
|
const fetchUserId = async () => {
|
|
@@ -70,22 +81,42 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
|
|
|
70
81
|
const source = "app";
|
|
71
82
|
const [enviveServiceConfig, setEnviveServiceConfig] = useState(null);
|
|
72
83
|
useEffect(() => {
|
|
73
|
-
(
|
|
84
|
+
invokeExtensionCallback(extensionService?.onInjectionLoading);
|
|
85
|
+
const enviveConfigService = inputEnviveConfigService ?? new EnviveConfigService({
|
|
74
86
|
baseUrl: config?.baseUrl || "",
|
|
75
87
|
apiKey: config?.orgLevelApiKey || "",
|
|
76
88
|
userId,
|
|
77
89
|
namespace,
|
|
78
90
|
source
|
|
79
|
-
})).getEnviveConfig().then((newConfig) => {
|
|
80
|
-
setEnviveServiceConfig(newConfig);
|
|
81
|
-
return newConfig;
|
|
82
91
|
});
|
|
92
|
+
const fetchEnviveConfig = async () => {
|
|
93
|
+
try {
|
|
94
|
+
setEnviveServiceConfig(await enviveConfigService.getEnviveConfig());
|
|
95
|
+
} catch (error) {
|
|
96
|
+
const resolvedError = error instanceof Error ? error : /* @__PURE__ */ new Error("Failed to load envive config");
|
|
97
|
+
logger.logError("Failed to initialize EnviveProvider", resolvedError);
|
|
98
|
+
invokeExtensionErrorCallback(resolvedError);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
fetchEnviveConfig();
|
|
83
102
|
}, [
|
|
84
103
|
config,
|
|
85
104
|
userId,
|
|
86
105
|
namespace,
|
|
87
106
|
source,
|
|
88
|
-
inputEnviveConfigService
|
|
107
|
+
inputEnviveConfigService,
|
|
108
|
+
extensionService,
|
|
109
|
+
invokeExtensionCallback,
|
|
110
|
+
invokeExtensionErrorCallback
|
|
111
|
+
]);
|
|
112
|
+
useEffect(() => {
|
|
113
|
+
if (!enviveServiceConfig || didReportSuccessRef.current) return;
|
|
114
|
+
didReportSuccessRef.current = true;
|
|
115
|
+
invokeExtensionCallback(extensionService?.onInjectionSuccess);
|
|
116
|
+
}, [
|
|
117
|
+
enviveServiceConfig,
|
|
118
|
+
extensionService,
|
|
119
|
+
invokeExtensionCallback
|
|
89
120
|
]);
|
|
90
121
|
const enviveConfig = useMemo(() => ({
|
|
91
122
|
...config,
|
|
@@ -93,45 +124,43 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
|
|
|
93
124
|
orgShortName: enviveServiceConfig?.org?.org?.short_name || "",
|
|
94
125
|
orgId: enviveServiceConfig?.org?.org?.id || ""
|
|
95
126
|
}), [config, enviveServiceConfig]);
|
|
96
|
-
|
|
97
|
-
|
|
127
|
+
logger.logDebug("enviveContext: enviveServiceConfig", enviveServiceConfig, config);
|
|
128
|
+
logger.logDebug("enviveContext: enviveConfig", enviveConfig);
|
|
98
129
|
const featureFlagService = useMemo(() => inputFeatureFlagService ?? new FeatureFlagService(enviveConfig.featureGates), [enviveConfig.featureGates, inputFeatureFlagService]);
|
|
99
130
|
if (enviveServiceConfig === null || enviveConfig === null) return null;
|
|
100
|
-
return /* @__PURE__ */ jsx(
|
|
101
|
-
|
|
102
|
-
children: /* @__PURE__ */ jsx(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
children: /* @__PURE__ */ jsx(
|
|
108
|
-
|
|
109
|
-
children: /* @__PURE__ */ jsx(
|
|
110
|
-
|
|
111
|
-
children: /* @__PURE__ */ jsx(
|
|
112
|
-
|
|
113
|
-
children: /* @__PURE__ */ jsx(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
131
|
+
return /* @__PURE__ */ jsx(EnviveConfigProvider, {
|
|
132
|
+
...enviveConfig,
|
|
133
|
+
children: /* @__PURE__ */ jsx(GraphQLProvider, {
|
|
134
|
+
mockV3ConfigToDeprecatedConfig,
|
|
135
|
+
requestV3Config,
|
|
136
|
+
children: /* @__PURE__ */ jsx(NewOrgConfigProvider, {
|
|
137
|
+
overrideConfig,
|
|
138
|
+
children: /* @__PURE__ */ jsx(LocalStorageProvider, { children: /* @__PURE__ */ jsx(FeatureFlagServiceProvider, {
|
|
139
|
+
featureFlagService,
|
|
140
|
+
children: /* @__PURE__ */ jsx(UserIdentityProvider, {
|
|
141
|
+
userIdService,
|
|
142
|
+
children: /* @__PURE__ */ jsx(AmplitudeProvider, {
|
|
143
|
+
externalAmplitudeService: inputAmplitudeService,
|
|
144
|
+
children: /* @__PURE__ */ jsx(PageProvider, {
|
|
145
|
+
previewMode,
|
|
146
|
+
onUrlResolverNotReady: extensionService?.onInjectionError,
|
|
147
|
+
children: /* @__PURE__ */ jsx(WidgetConfigProvider, { children: /* @__PURE__ */ jsx(HardcopyProvider, {
|
|
148
|
+
hardcopyOverride,
|
|
149
|
+
children: /* @__PURE__ */ jsx(EnviveCssProvider, { children: /* @__PURE__ */ jsxs(SearchAgentWrapper, {
|
|
150
|
+
enabledAgents,
|
|
151
|
+
children: [/* @__PURE__ */ jsx(WindowChatToggleBinder, {}), /* @__PURE__ */ jsx(SalesAgentWrapper, {
|
|
120
152
|
enabledAgents,
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}) })
|
|
129
|
-
}) }) })
|
|
130
|
-
})
|
|
153
|
+
showDebugBar: config.enviveOn || false,
|
|
154
|
+
previewMode,
|
|
155
|
+
mockSalesAgentData,
|
|
156
|
+
children
|
|
157
|
+
})]
|
|
158
|
+
}) })
|
|
159
|
+
}) })
|
|
131
160
|
})
|
|
132
161
|
})
|
|
133
|
-
})
|
|
134
|
-
})
|
|
162
|
+
})
|
|
163
|
+
}) })
|
|
135
164
|
})
|
|
136
165
|
})
|
|
137
166
|
});
|
|
@@ -139,4 +168,4 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
|
|
|
139
168
|
|
|
140
169
|
//#endregion
|
|
141
170
|
export { EnviveProvider };
|
|
142
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgVWlDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3VpQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIH0gZnJvbSAnLi9XaW5kb3dDaGF0VG9nZ2xlQmluZGVyJztcblxuY29uc3QgRW52aXZlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8bnVsbD4obnVsbCk7XG5cbmludGVyZmFjZSBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGVuYWJsZWRBZ2VudHM6IEVudml2ZUFnZW50W107XG59XG5cbmludGVyZmFjZSBFbnZpdmVQcm92aWRlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBhbXBsaXR1ZGVBcGlLZXk/OiBzdHJpbmc7XG4gIGRhdGFSZXNpZGVuY3k/OiBzdHJpbmc7XG4gIGVudj86IHN0cmluZztcbiAgYmFzZVVybD86IHN0cmluZztcbiAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICBjZG5Vcmw/OiBzdHJpbmc7XG4gIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gIG9yZ0xldmVsQXBpS2V5Pzogc3RyaW5nO1xuICBvcmdTaG9ydE5hbWU/OiBzdHJpbmc7XG4gIGlkZW50aWZ5aW5nUHJlZml4OiBzdHJpbmc7XG4gIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICB2YXJpYW50SW5mb092ZXJyaWRlPzogYW55O1xuICBzaG93PzogYm9vbGVhbjtcbiAgZW52aXZlT24/OiBib29sZWFuO1xuICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGZlYXR1cmVHYXRlcz86IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107IC8vIE5ldyBwcm9wIGZvciBmZWF0dXJlIGdhdGVzXG4gIGZlYXR1cmVGbGFnU2VydmljZT86IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgZW52aXZlQ29uZmlnU2VydmljZT86IEVudml2ZUNvbmZpZ1NlcnZpY2U7XG4gIGFtcGxpdHVkZVNlcnZpY2U/OiBBbXBsaXR1ZGVTZXJ2aWNlO1xuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xuICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICB1c2VySWRlbnRpdHlTZXJ2aWNlPzogVXNlcklkZW50aXR5U2VydmljZTtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBvdmVycmlkZUNvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gIG1vY2tTYWxlc0FnZW50RGF0YT86IGFueTtcbiAgaGFyZGNvcHlPdmVycmlkZT86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+O1xufVxuXG5jb25zdCBTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiA9ICh7IGNoaWxkcmVuLCBlbmFibGVkQWdlbnRzIH0pID0+IHtcbiAgaWYgKCFlbmFibGVkQWdlbnRzLmluY2x1ZGVzKEVudml2ZUFnZW50LlNlYXJjaEFnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gPFNlYXJjaFByb3ZpZGVyPntjaGlsZHJlbn08L1NlYXJjaFByb3ZpZGVyPjtcbn07XG5cbmludGVyZmFjZSBTYWxlc0FnZW50V3JhcHBlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIHNob3dEZWJ1Z0JhcjogYm9vbGVhbjtcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xufVxuXG5jb25zdCBTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgZW5hYmxlZEFnZW50cyxcbiAgcHJldmlld01vZGUsXG4gIHNob3dEZWJ1Z0JhcixcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxufSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2FsZXNBZ2VudCkpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8U3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXIgc2hvd0RlYnVnQmFyPXtzaG93RGVidWdCYXJ9PlxuICAgICAgPFNhbGVzQWdlbnRQcm92aWRlclxuICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgIG1vY2tEYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvU2FsZXNBZ2VudFByb3ZpZGVyPlxuICAgIDwvU3lzdGVtU2V0dGluZ3NDb250ZXh0UHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIHByZXZpZXdNb2RlID0gZmFsc2UsXG4gIG92ZXJyaWRlQ29uZmlnLFxuICBlbmFibGVkQWdlbnRzLFxuICBlbnZpdmVDb25maWdTZXJ2aWNlOiBpbnB1dEVudml2ZUNvbmZpZ1NlcnZpY2UsXG4gIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRGZWF0dXJlRmxhZ1NlcnZpY2UsXG4gIGFtcGxpdHVkZVNlcnZpY2U6IGlucHV0QW1wbGl0dWRlU2VydmljZSxcbiAgdXNlcklkZW50aXR5U2VydmljZTogaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlLFxuICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWcgPSBmYWxzZSxcbiAgcmVxdWVzdFYzQ29uZmlnID0gZmFsc2UsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbiAgaGFyZGNvcHlPdmVycmlkZSxcbiAgLi4uY29uZmlnXG59KSA9PiB7XG4gIGNvbnN0IFt1c2VySWQsIHNldFVzZXJJZF0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKTtcblxuICBjb25zdCB1c2VySWRTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlID8/XG4gICAgICBuZXcgVXNlcklkZW50aXR5U2VydmljZSh7IGFwaUtleTogY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXkgfHwgJycgfSksXG4gICAgW2NvbmZpZz8uYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2VdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmV0Y2hVc2VySWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGF3YWl0IHVzZXJJZFNlcnZpY2UuZ2V0VXNlcklkT3JEZWZhdWx0KCk7XG4gICAgICBzZXRVc2VySWQoaWQpO1xuICAgIH07XG5cbiAgICBmZXRjaFVzZXJJZCgpO1xuICB9LCBbY29uZmlnLmFtcGxpdHVkZUFwaUtleSwgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlLCB1c2VySWRTZXJ2aWNlXSk7XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gJ3NwaWZmeS1yZWFjdC1jb21wb25lbnRzJzsgLy8gVE9ETzogU2hvdWxkIHRoaXMgYmUgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgbmFtZXNwYWNlP1xuICBjb25zdCBzb3VyY2UgPSAnYXBwJzsgLy8gVE9ETzogTWFrZSB0aGlzIGRlcGVuZGVudCB1cG9uIHRoZSBcInNwaWZmeV9vblwiIHF1ZXJ5IHBhcmFtXG4gIGNvbnN0IFtlbnZpdmVTZXJ2aWNlQ29uZmlnLCBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnXSA9IHVzZVN0YXRlPEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsPihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFJlYWxseSBub3QgaGFwcHkgd2l0aCB0aGlzIGFwcHJvYWNoLCBidXQgSSdtIHNlZWluZyA0MjkgZXJyb3JzIGluIHRoZSB0ZXN0c1xuICAgIC8vIGJlY2F1c2Ugb2YgdGhlIHJhdGUgbGltaXRpbmcgb24gdGhlIEFQSS5cbiAgICBjb25zdCBlbnZpdmVDb25maWdTZXJ2aWNlID1cbiAgICAgIGlucHV0RW52aXZlQ29uZmlnU2VydmljZSA/P1xuICAgICAgbmV3IEVudml2ZUNvbmZpZ1NlcnZpY2Uoe1xuICAgICAgICBiYXNlVXJsOiBjb25maWc/LmJhc2VVcmwgfHwgJycsXG4gICAgICAgIGFwaUtleTogY29uZmlnPy5vcmdMZXZlbEFwaUtleSB8fCAnJyxcbiAgICAgICAgdXNlcklkLFxuICAgICAgICBuYW1lc3BhY2U6IG5hbWVzcGFjZSB8fCAnJyxcbiAgICAgICAgc291cmNlOiBzb3VyY2UgfHwgJycsXG4gICAgICB9KTtcbiAgICBlbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpLnRoZW4obmV3Q29uZmlnID0+IHtcbiAgICAgIHNldEVudml2ZVNlcnZpY2VDb25maWcobmV3Q29uZmlnKTtcbiAgICAgIHJldHVybiBuZXdDb25maWc7XG4gICAgfSk7XG4gIH0sIFtjb25maWcsIHVzZXJJZCwgbmFtZXNwYWNlLCBzb3VyY2UsIGlucHV0RW52aXZlQ29uZmlnU2VydmljZV0pO1xuXG4gIGNvbnN0IGVudml2ZUNvbmZpZyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZlYXR1cmVHYXRlczogZW52aXZlU2VydmljZUNvbmZpZz8uZ2F0ZXMgfHwgW10sXG4gICAgICBvcmdTaG9ydE5hbWU6IGVudml2ZVNlcnZpY2VDb25maWc/Lm9yZz8ub3JnPy5zaG9ydF9uYW1lIHx8ICcnLFxuICAgICAgb3JnSWQ6IGVudml2ZVNlcnZpY2VDb25maWc/Lm9yZz8ub3JnPy5pZCB8fCAnJyxcbiAgICB9KSxcbiAgICBbY29uZmlnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnXSxcbiAgKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb250ZXh0OiBlbnZpdmVTZXJ2aWNlQ29uZmlnJywgZW52aXZlU2VydmljZUNvbmZpZywgY29uZmlnKTtcbiAgTG9nZ2VyLmxvZ0RlYnVnKCdlbnZpdmVDb250ZXh0OiBlbnZpdmVDb25maWcnLCBlbnZpdmVDb25maWcpO1xuXG4gIGNvbnN0IGZlYXR1cmVGbGFnU2VydmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gaW5wdXRGZWF0dXJlRmxhZ1NlcnZpY2UgPz8gbmV3IEZlYXR1cmVGbGFnU2VydmljZShlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzKSxcbiAgICBbZW52aXZlQ29uZmlnLmZlYXR1cmVHYXRlcywgaW5wdXRGZWF0dXJlRmxhZ1NlcnZpY2VdLFxuICApO1xuXG4gIGlmIChlbnZpdmVTZXJ2aWNlQ29uZmlnID09PSBudWxsIHx8IGVudml2ZUNvbmZpZyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8RW52aXZlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bnVsbH0+XG4gICAgICA8RW52aXZlQ29uZmlnUHJvdmlkZXIgey4uLmVudml2ZUNvbmZpZ30+XG4gICAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc9e21vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZ31cbiAgICAgICAgICByZXF1ZXN0VjNDb25maWc9e3JlcXVlc3RWM0NvbmZpZ31cbiAgICAgICAgPlxuICAgICAgICAgIDxOZXdPcmdDb25maWdQcm92aWRlciBvdmVycmlkZUNvbmZpZz17b3ZlcnJpZGVDb25maWd9PlxuICAgICAgICAgICAgPExvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICAgIDxVc2VySWRlbnRpdHlQcm92aWRlciB1c2VySWRTZXJ2aWNlPXt1c2VySWRTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxBbXBsaXR1ZGVQcm92aWRlciBleHRlcm5hbEFtcGxpdHVkZVNlcnZpY2U9e2lucHV0QW1wbGl0dWRlU2VydmljZX0+XG4gICAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXIgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfT5cbiAgICAgICAgICAgICAgICAgICAgICA8VWlDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxXaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPEhhcmRjb3B5UHJvdmlkZXIgaGFyZGNvcHlPdmVycmlkZT17aGFyZGNvcHlPdmVycmlkZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEVudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEFnZW50V3JhcHBlciBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFdpbmRvd0NoYXRUb2dnbGVCaW5kZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNhbGVzQWdlbnRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZEFnZW50cz17ZW5hYmxlZEFnZW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93RGVidWdCYXI9e2NvbmZpZy5lbnZpdmVPbiB8fCBmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja1NhbGVzQWdlbnREYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2FsZXNBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NlYXJjaEFnZW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Vudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hhcmRjb3B5UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1dpZGdldENvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvVWlDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9QYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8L0FtcGxpdHVkZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0xvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgICAgIDwvR3JhcGhRTFByb3ZpZGVyPlxuICAgICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgICA8L0Vudml2ZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQkEsTUFBTSxnQkFBZ0IsY0FBb0IsS0FBSztBQXFDL0MsTUFBTUEsc0JBQW1ELEVBQUUsVUFBVSxvQkFBb0I7QUFDdkYsS0FBSSxDQUFDLGNBQWMsU0FBUyxZQUFZLFlBQVksQ0FDbEQsUUFBTztBQUVULFFBQU8sb0JBQUMsa0JBQWdCLFdBQTBCOztBQVNwRCxNQUFNQyxxQkFBdUQsRUFDM0QsVUFDQSxlQUNBLGFBQ0EsY0FDQSx5QkFDSTtBQUNKLEtBQUksQ0FBQyxjQUFjLFNBQVMsWUFBWSxXQUFXLENBQ2pELFFBQU87QUFFVCxRQUNFLG9C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
|
|
171
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICBvbkluamVjdGlvbkxvYWRpbmc/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgb25JbmplY3Rpb25TdWNjZXNzPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG4gIG9uSW5qZWN0aW9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbn1cblxuaW50ZXJmYWNlIEVudml2ZVByb3ZpZGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gIHNob3c/OiBib29sZWFuO1xuICBlbnZpdmVPbj86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTsgLy8gTmV3IHByb3AgZm9yIGZlYXR1cmUgZ2F0ZXNcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlPzogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgYW1wbGl0dWRlU2VydmljZT86IEFtcGxpdHVkZVNlcnZpY2U7XG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZz86IGJvb2xlYW47XG4gIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gIHVzZXJJZGVudGl0eVNlcnZpY2U/OiBVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG4gIGV4dGVuc2lvblNlcnZpY2U/OiBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3M7XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgb3ZlcnJpZGVDb25maWcsXG4gIGVuYWJsZWRBZ2VudHMsXG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSxcbiAgYW1wbGl0dWRlU2VydmljZTogaW5wdXRBbXBsaXR1ZGVTZXJ2aWNlLFxuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsXG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZyA9IGZhbHNlLFxuICByZXF1ZXN0VjNDb25maWcgPSBmYWxzZSxcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxuICBoYXJkY29weU92ZXJyaWRlLFxuICBleHRlbnNpb25TZXJ2aWNlLFxuICAuLi5jb25maWdcbn0pID0+IHtcbiAgY29uc3QgW3VzZXJJZCwgc2V0VXNlcklkXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBkaWRSZXBvcnRTdWNjZXNzUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBjb25zdCBpbnZva2VFeHRlbnNpb25DYWxsYmFjayA9IHVzZUNhbGxiYWNrKChjYWxsYmFjaz86ICgpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkKSA9PiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIFByb21pc2UucmVzb2x2ZShjYWxsYmFjaygpKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ0V4dGVuc2lvbiBzdGF0dXMgY2FsbGJhY2sgZmFpbGVkJywgZXJyb3IpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICghZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIFByb21pc2UucmVzb2x2ZShleHRlbnNpb25TZXJ2aWNlLm9uSW5qZWN0aW9uRXJyb3IoZXJyb3IpKS5jYXRjaChjYWxsYmFja0Vycm9yID0+IHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdFeHRlbnNpb24gZXJyb3IgY2FsbGJhY2sgZmFpbGVkJywgY2FsbGJhY2tFcnJvcik7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtleHRlbnNpb25TZXJ2aWNlXSxcbiAgKTtcblxuICBjb25zdCB1c2VySWRTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlID8/XG4gICAgICBuZXcgVXNlcklkZW50aXR5U2VydmljZSh7IGFwaUtleTogY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXkgfHwgJycgfSksXG4gICAgW2NvbmZpZz8uYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2VdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmV0Y2hVc2VySWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGF3YWl0IHVzZXJJZFNlcnZpY2UuZ2V0VXNlcklkT3JEZWZhdWx0KCk7XG4gICAgICBzZXRVc2VySWQoaWQpO1xuICAgIH07XG5cbiAgICBmZXRjaFVzZXJJZCgpO1xuICB9LCBbY29uZmlnLmFtcGxpdHVkZUFwaUtleSwgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlLCB1c2VySWRTZXJ2aWNlXSk7XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gJ3NwaWZmeS1yZWFjdC1jb21wb25lbnRzJzsgLy8gVE9ETzogU2hvdWxkIHRoaXMgYmUgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgbmFtZXNwYWNlP1xuICBjb25zdCBzb3VyY2UgPSAnYXBwJzsgLy8gVE9ETzogTWFrZSB0aGlzIGRlcGVuZGVudCB1cG9uIHRoZSBcInNwaWZmeV9vblwiIHF1ZXJ5IHBhcmFtXG4gIGNvbnN0IFtlbnZpdmVTZXJ2aWNlQ29uZmlnLCBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnXSA9IHVzZVN0YXRlPEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsPihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrKGV4dGVuc2lvblNlcnZpY2U/Lm9uSW5qZWN0aW9uTG9hZGluZyk7XG5cbiAgICAvLyBSZWFsbHkgbm90IGhhcHB5IHdpdGggdGhpcyBhcHByb2FjaCwgYnV0IEknbSBzZWVpbmcgNDI5IGVycm9ycyBpbiB0aGUgdGVzdHNcbiAgICAvLyBiZWNhdXNlIG9mIHRoZSByYXRlIGxpbWl0aW5nIG9uIHRoZSBBUEkuXG4gICAgY29uc3QgZW52aXZlQ29uZmlnU2VydmljZSA9XG4gICAgICBpbnB1dEVudml2ZUNvbmZpZ1NlcnZpY2UgPz9cbiAgICAgIG5ldyBFbnZpdmVDb25maWdTZXJ2aWNlKHtcbiAgICAgICAgYmFzZVVybDogY29uZmlnPy5iYXNlVXJsIHx8ICcnLFxuICAgICAgICBhcGlLZXk6IGNvbmZpZz8ub3JnTGV2ZWxBcGlLZXkgfHwgJycsXG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UgfHwgJycsXG4gICAgICAgIHNvdXJjZTogc291cmNlIHx8ICcnLFxuICAgICAgfSk7XG4gICAgY29uc3QgZmV0Y2hFbnZpdmVDb25maWcgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBuZXdDb25maWcgPSBhd2FpdCBlbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpO1xuICAgICAgICBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnKG5ld0NvbmZpZyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCByZXNvbHZlZEVycm9yID1cbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudml2ZSBjb25maWcnKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBFbnZpdmVQcm92aWRlcicsIHJlc29sdmVkRXJyb3IpO1xuICAgICAgICBpbnZva2VFeHRlbnNpb25FcnJvckNhbGxiYWNrKHJlc29sdmVkRXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBmZXRjaEVudml2ZUNvbmZpZygpO1xuICB9LCBbXG4gICAgY29uZmlnLFxuICAgIHVzZXJJZCxcbiAgICBuYW1lc3BhY2UsXG4gICAgc291cmNlLFxuICAgIGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgICBleHRlbnNpb25TZXJ2aWNlLFxuICAgIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrLFxuICAgIGludm9rZUV4dGVuc2lvbkVycm9yQ2FsbGJhY2ssXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbnZpdmVTZXJ2aWNlQ29uZmlnIHx8IGRpZFJlcG9ydFN1Y2Nlc3NSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFJlcG9ydFN1Y2Nlc3NSZWYuY3VycmVudCA9IHRydWU7XG4gICAgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2soZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25TdWNjZXNzKTtcbiAgfSwgW2Vudml2ZVNlcnZpY2VDb25maWcsIGV4dGVuc2lvblNlcnZpY2UsIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrXSk7XG5cbiAgY29uc3QgZW52aXZlQ29uZmlnID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmVhdHVyZUdhdGVzOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlcyB8fCBbXSxcbiAgICAgIG9yZ1Nob3J0TmFtZTogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LnNob3J0X25hbWUgfHwgJycsXG4gICAgICBvcmdJZDogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LmlkIHx8ICcnLFxuICAgIH0pLFxuICAgIFtjb25maWcsIGVudml2ZVNlcnZpY2VDb25maWddLFxuICApO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZVNlcnZpY2VDb25maWcnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnLCBjb25maWcpO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZUNvbmZpZycsIGVudml2ZUNvbmZpZyk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSA/PyBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKGVudml2ZUNvbmZpZy5mZWF0dXJlR2F0ZXMpLFxuICAgIFtlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzLCBpbnB1dEZlYXR1cmVGbGFnU2VydmljZV0sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwgfHwgZW52aXZlQ29uZmlnID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxFbnZpdmVDb25maWdQcm92aWRlciB7Li4uZW52aXZlQ29uZmlnfT5cbiAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPXttb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWd9XG4gICAgICAgIHJlcXVlc3RWM0NvbmZpZz17cmVxdWVzdFYzQ29uZmlnfVxuICAgICAgPlxuICAgICAgICA8TmV3T3JnQ29uZmlnUHJvdmlkZXIgb3ZlcnJpZGVDb25maWc9e292ZXJyaWRlQ29uZmlnfT5cbiAgICAgICAgICA8TG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17dXNlcklkU2VydmljZX0+XG4gICAgICAgICAgICAgICAgPEFtcGxpdHVkZVByb3ZpZGVyIGV4dGVybmFsQW1wbGl0dWRlU2VydmljZT17aW5wdXRBbXBsaXR1ZGVTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICBvblVybFJlc29sdmVyTm90UmVhZHk9e2V4dGVuc2lvblNlcnZpY2U/Lm9uSW5qZWN0aW9uRXJyb3J9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxXaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SGFyZGNvcHlQcm92aWRlciBoYXJkY29weU92ZXJyaWRlPXtoYXJkY29weU92ZXJyaWRlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEFnZW50V3JhcHBlciBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Q2hhdFRvZ2dsZUJpbmRlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTYWxlc0FnZW50V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZEFnZW50cz17ZW5hYmxlZEFnZW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0Jhcj17Y29uZmlnLmVudml2ZU9uIHx8IGZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja1NhbGVzQWdlbnREYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2FsZXNBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VhcmNoQWdlbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9FbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0hhcmRjb3B5UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvV2lkZ2V0Q29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8L1BhZ2VQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0FtcGxpdHVkZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1VzZXJJZGVudGl0eVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICAgICAgICA8L0xvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICA8L05ld09yZ0NvbmZpZ1Byb3ZpZGVyPlxuICAgICAgPC9HcmFwaFFMUHJvdmlkZXI+XG4gICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsTUFBTSxTQUFTLElBQUlBLGVBQU8sZ0JBQWdCO0FBNEMxQyxNQUFNQyxzQkFBbUQsRUFBRSxVQUFVLG9CQUFvQjtBQUN2RixLQUFJLENBQUMsY0FBYyxTQUFTLFlBQVksWUFBWSxDQUNsRCxRQUFPO0FBRVQsUUFBTyxvQkFBQyxrQkFBZ0IsV0FBMEI7O0FBU3BELE1BQU1DLHFCQUF1RCxFQUMzRCxVQUNBLGVBQ0EsYUFDQSxjQUNBLHlCQUNJO0FBQ0osS0FBSSxDQUFDLGNBQWMsU0FBUyxZQUFZLFdBQVcsQ0FDakQsUUFBTztBQUVULFFBQ0Usb0JBQUM7RUFBNEM7WUFDM0Msb0JBQUM7R0FDYztHQUNiLFVBQVU7R0FFVDtJQUNrQjtHQUNTOztBQUlwQyxNQUFhQyxrQkFBaUQsRUFDNUQsVUFDQSxjQUFjLE9BQ2QsZ0JBQ0EsZUFDQSxxQkFBcUIsMEJBQ3JCLG9CQUFvQix5QkFDcEIsa0JBQWtCLHVCQUNsQixxQkFBcUIs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
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { EnviveAgent } from "./types.cjs";
|
|
2
|
-
import { EnviveProvider } from "./enviveContext.cjs";
|
|
3
|
-
export { EnviveAgent, EnviveProvider };
|
|
2
|
+
import { EnviveProvider, ExtensionStatusCallbacks } from "./enviveContext.cjs";
|
|
3
|
+
export { EnviveAgent, EnviveProvider, ExtensionStatusCallbacks };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { EnviveAgent } from "./types.js";
|
|
2
|
-
import { EnviveProvider } from "./enviveContext.js";
|
|
3
|
-
export { EnviveAgent, EnviveProvider };
|
|
2
|
+
import { EnviveProvider, ExtensionStatusCallbacks } from "./enviveContext.js";
|
|
3
|
+
export { EnviveAgent, EnviveProvider, ExtensionStatusCallbacks };
|
|
@@ -5,4 +5,4 @@ declare enum EnviveAgent {
|
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
7
|
export { EnviveAgent };
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvdHlwZXMuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVjbGFyZSBlbnVtIEVudml2ZUFnZW50IHtcbiAgICBTYWxlc0FnZW50ID0gXCJzYWxlc1wiLFxuICAgIFNlYXJjaEFnZW50ID0gXCJzZWFyY2hcIlxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBVyxjQUFjLENBQUMsR0FBRyJ9
|
|
@@ -5,4 +5,4 @@ declare enum EnviveAgent {
|
|
|
5
5
|
}
|
|
6
6
|
//#endregion
|
|
7
7
|
export { EnviveAgent };
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZW52aXZlQ29udGV4dC90eXBlcy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGVudW0gRW52aXZlQWdlbnQge1xuICAgIFNhbGVzQWdlbnQgPSBcInNhbGVzXCIsXG4gICAgU2VhcmNoQWdlbnQgPSBcInNlYXJjaFwiXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLGNBQWMsQ0FBQyxFQUFFIn0=
|
|
@@ -7,6 +7,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
7
7
|
|
|
8
8
|
//#region src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx
|
|
9
9
|
const FEATURE_FLAGS_STORAGE_KEY = "spiffy-feature-flags";
|
|
10
|
+
const logger = new require_logger.default("featureFlagServiceContext");
|
|
10
11
|
var FeatureFlagService = class FeatureFlagService {
|
|
11
12
|
constructor(featureGates) {
|
|
12
13
|
this.isFeatureGateEnabled = (featureGate) => {
|
|
@@ -14,7 +15,7 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
14
15
|
const featureFlagOverride = FeatureFlagService.getFeatureFlagOverride(featureGate);
|
|
15
16
|
if (featureFlagOverride !== void 0) return featureFlagOverride;
|
|
16
17
|
if (gateValue == null || gateValue.value == null) {
|
|
17
|
-
|
|
18
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} value is undefined - returning false`);
|
|
18
19
|
return false;
|
|
19
20
|
}
|
|
20
21
|
return gateValue.value;
|
|
@@ -68,24 +69,24 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
68
69
|
if (!featureFlags) return;
|
|
69
70
|
return JSON.parse(featureFlags)[featureGate];
|
|
70
71
|
} catch (err) {
|
|
71
|
-
|
|
72
|
+
logger.logError("getStoredFeatureGateOverrides: error parsing feature flags", err);
|
|
72
73
|
return;
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
static getFeatureFlagOverride(featureGate) {
|
|
76
77
|
const queryOverride = FeatureFlagService.getQueryParamFeatureGateOverrides(featureGate);
|
|
77
78
|
if (queryOverride != null) {
|
|
78
|
-
|
|
79
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by URL param. New value: ${queryOverride}`);
|
|
79
80
|
return queryOverride;
|
|
80
81
|
}
|
|
81
82
|
const windowOverride = FeatureFlagService.getWindowFeatureGateOverrides(featureGate);
|
|
82
83
|
if (windowOverride != null) {
|
|
83
|
-
|
|
84
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by window param. New value: ${windowOverride}`);
|
|
84
85
|
return windowOverride;
|
|
85
86
|
}
|
|
86
87
|
const storedOverride = FeatureFlagService.getStoredFeatureGateOverrides(featureGate);
|
|
87
88
|
if (storedOverride != null) {
|
|
88
|
-
|
|
89
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by stored value. New value: ${storedOverride}`);
|
|
89
90
|
return storedOverride;
|
|
90
91
|
}
|
|
91
92
|
}
|
|
@@ -116,4 +117,4 @@ const useFeatureFlagService = () => {
|
|
|
116
117
|
exports.FeatureFlagService = FeatureFlagService;
|
|
117
118
|
exports.FeatureFlagServiceProvider = FeatureFlagServiceProvider;
|
|
118
119
|
exports.useFeatureFlagService = useFeatureFlagService;
|
|
119
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5janMiLCJuYW1lcyI6WyJGZWF0dXJlR2F0ZXMiLCJmZWF0dXJlR2F0ZXMiLCJGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcjogUmVhY3QuRkM8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcz4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcblxuY29uc3QgRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSA9ICdzcGlmZnktZmVhdHVyZS1mbGFncyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEZsYWdWYWx1ZSB7XG4gIHJlc29sdmVkOiBib29sZWFuO1xuICBpbml0aWFsOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBxdWVyeV9wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBzdG9yZWRfb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8vIFRoaXMgaXMgdGhlIGNsYXNzIHRoYXQgd2FzIHByZXZpb3VzbHkgaW1wbGljaXRseSB1c2VkIG9yIGRlZmluZWQgZWxzZXdoZXJlXG5leHBvcnQgY2xhc3MgRmVhdHVyZUZsYWdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG5cbiAgY29uc3RydWN0b3IoZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdKSB7XG4gICAgdGhpcy5mZWF0dXJlR2F0ZXMgPSBmZWF0dXJlR2F0ZXM7XG4gIH1cblxuICBzdGF0aWMgZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24/LmhyZWYgPz8gJyc7XG4gICAgaWYgKHVybC5pbmNsdWRlcygnPycpKSB7XG4gICAgICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVybE9iai5zZWFyY2gpO1xuICAgICAgY29uc3QgcGFyYW1zT2JqID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcy5lbnRyaWVzKCkpO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNPYmpbZmVhdHVyZUdhdGVdO1xuXG4gICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gd2luZG93IGFzIFdpbmRvdyAmIHtcbiAgICAgIF9lbnZpdmU/OiB7IGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB9O1xuICAgICAgX3NwaWZmeT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgfTtcbiAgICBjb25zdCBmZWF0dXJlT3ZlcnJpZGVzID1cbiAgICAgIHdpbmRvd092ZXJyaWRlPy5fZW52aXZlPy5mZWF0dXJlT3ZlcnJpZGVzID8/IHdpbmRvd092ZXJyaWRlPy5fc3BpZmZ5Py5mZWF0dXJlT3ZlcnJpZGVzO1xuICAgIGNvbnN0IHZhbHVlID0gZmVhdHVyZU92ZXJyaWRlcz8uW1N0cmluZyhmZWF0dXJlR2F0ZSldO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3MgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoIWZlYXR1cmVGbGFncykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzT2JqID0gSlNPTi5wYXJzZShmZWF0dXJlRmxhZ3MpIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnc09ialtmZWF0dXJlR2F0ZV07XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBMb2dnZXIubG9nRXJyb3IoXG4gICAgICAgICdbc3BpZmZ5LWFpXSBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlczogZXJyb3IgcGFyc2luZyBmZWF0dXJlIGZsYWdzJyxcbiAgICAgICAgZXJyLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHF1ZXJ5T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAocXVlcnlPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBbc3BpZmZ5LWFpXSBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IFVSTCBwYXJhbS4gTmV3IHZhbHVlOiAke3F1ZXJ5T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gcXVlcnlPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCB3aW5kb3dPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHdpbmRvd092ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgd2luZG93IHBhcmFtLiBOZXcgdmFsdWU6ICR7d2luZG93T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gd2luZG93T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChzdG9yZWRPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBMb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBbc3BpZmZ5LWFpXSBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHN0b3JlZCB2YWx1ZS4gTmV3IHZhbHVlOiAke3N0b3JlZE92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0b3JlZE92ZXJyaWRlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpc0ZlYXR1cmVHYXRlRW5hYmxlZCA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoZmVhdHVyZUZsYWdPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdPdmVycmlkZTtcbiAgICB9XG5cbiAgICBpZiAoZ2F0ZVZhbHVlID09IG51bGwgfHwgZ2F0ZVZhbHVlLnZhbHVlID09IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IHZhbHVlIGlzIHVuZGVmaW5lZCAtIHJldHVybmluZyBmYWxzZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZ2F0ZVZhbHVlLnZhbHVlO1xuICB9O1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0YW5kYXJkIG92ZXJyaWRlcyB3b3JrIGFzIGV4cGVjdGVkXG4gIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoRmVhdHVyZUdhdGVzLklzQ2xpZW50U2Vzc2lvbkVuYWJsZWQpO1xuXG4gIGdldEZlYXR1cmVGbGFncyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgXSksXG4gICAgKTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBGdWxsRmxhZ1ZhbHVlID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc29sdmVkOiB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIGluaXRpYWw6IGdhdGVWYWx1ZT8udmFsdWUsXG4gICAgICBxdWVyeV9wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICBzdG9yZWRfb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgfTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlcyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPiA9PiB7XG4gICAgY29uc3QgZmVhdHVyZUdhdGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICB0aGlzLmdldEZ1bGxGbGFnVmFsdWUoZmVhdHVyZUdhdGUpLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVHYXRlcy5sZW5ndGggPiAwXG4gICAgICA/IGZlYXR1cmVHYXRlcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4+KChhY2MsIGVudHJ5KSA9PiB7XG4gICAgICAgICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGVudHJ5IGFzIFtGZWF0dXJlR2F0ZXMsIEZ1bGxGbGFnVmFsdWVdO1xuICAgICAgICAgIGlmIChuYW1lICYmIHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmFjYywgW2BmZWF0dXJlX2dhdGUuJHtuYW1lfWBdOiB2YWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgIDoge307XG4gIH07XG5cbiAgc3RhdGljIHBlcnNpc3RGZWF0dXJlR2F0ZU92ZXJyaWRlcygpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKVxuICAgICAgLm1hcChcbiAgICAgICAgZmVhdHVyZUdhdGUgPT5cbiAgICAgICAgICBbZmVhdHVyZUdhdGUsIEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKV0gYXMgY29uc3QsXG4gICAgICApXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAucmVkdWNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PigoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlISB9KSwge30pO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShvdmVycmlkZXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVGbGFnQ29udGV4dFR5cGUge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZSB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8RmVhdHVyZUZsYWdDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuaW50ZXJmYWNlIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyUHJvcHMge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiA9ICh7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRTZXJ2aWNlLFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dFNlcnZpY2UsXG4gICAgfSksXG4gICAgW2lucHV0U2VydmljZV0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0KTtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlRmVhdHVyZUZsYWdTZXJ2aWNlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLQSxNQUFNLDRCQUE0QjtBQVdsQyxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBcUYxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCwyQkFBTyxTQUNMLGdEQUFnRCxZQUFZLHVDQUM3RDtBQUNELFdBQU87O0FBRVQsVUFBTyxVQUFVOztzQ0FLakIsS0FBSyxxQkFBcUJBLGtDQUFhLHVCQUF1QjsrQkFFZjtBQUMvQyxVQUFPLE9BQU8sWUFDWixPQUFPLE9BQU9BLGtDQUFhLENBQUMsS0FBSyxnQkFBOEIsQ0FDN0QsYUFDQSxLQUFLLHFCQUFxQixZQUFZLENBQ3ZDLENBQUMsQ0FDSDs7MkJBR2lCLGdCQUE2QztHQUMvRCxNQUFNLFlBQVksS0FBSyxhQUFhLE1BQUssU0FBUSxLQUFLLFNBQVMsWUFBWTtBQUMzRSxVQUFPO0lBQ0wsVUFBVSxLQUFLLHFCQUFxQixZQUFZO0lBQ2hELFNBQVMsV0FBVztJQUNwQixzQkFBc0IsbUJBQW1CLGtDQUFrQyxZQUFZO0lBQ3ZGLHVCQUF1QixtQkFBbUIsOEJBQThCLFlBQVk7SUFDcEYsaUJBQWlCLG1CQUFtQiw4QkFBOEIsWUFBWTtJQUMvRTs7aUNBR3NEO0dBQ3ZELE1BQU1DLGlCQUFlLE9BQU8sT0FBT0Qsa0NBQWEsQ0FBQyxLQUFLLGdCQUE4QixDQUNsRixhQUNBLEtBQUssaUJBQWlCLFlBQVksQ0FDbkMsQ0FBQztBQUVGLFVBQU9DLGVBQWEsU0FBUyxJQUN6QkEsZUFBYSxRQUF1QyxLQUFLLFVBQVU7SUFDakUsTUFBTSxDQUFDLE1BQU0sU0FBUztBQUN0QixRQUFJLFFBQVEsU0FBUyxLQUNuQixRQUFPO0tBQUUsR0FBRztNQUFNLGdCQUFnQixTQUFTO0tBQU87QUFFcEQsV0FBTztNQUNOLEVBQUUsQ0FBQyxHQUNOLEVBQUU7O0FBM0lOLE9BQUssZUFBZTs7Q0FHdEIsT0FBTyxrQ0FBa0MsYUFBZ0Q7RUFDdkYsTUFBTSxNQUFNLE9BQU8sVUFBVSxRQUFRO0FBQ3JDLE1BQUksSUFBSSxTQUFTLElBQUksRUFBRTtHQUNyQixNQUFNLFNBQVMsSUFBSSxJQUFJLElBQUk7R0FDM0IsTUFBTSxTQUFTLElBQUksZ0JBQWdCLE9BQU8sT0FBTztHQUVqRCxNQUFNLFFBRFksT0FBTyxZQUFZLE9BQU8sU0FBUyxDQUFDLENBQzlCO0FBRXhCLE9BQUksU0FBUyxLQUNYLFFBQU8sVUFBVTs7O0NBT3ZCLE9BQU8sOEJBQThCLGFBQWdEO0FBQ25GLE1BQUksT0FBTyxXQUFXLFlBQ3BCO0VBRUYsTUFBTSxpQkFBaUI7RUFNdkIsTUFBTSxTQURKLGdCQUFnQixTQUFTLG9CQUFvQixnQkFBZ0IsU0FBUyxvQkFDdkMsT0FBTyxZQUFZO0FBQ3BELE1BQUksU0FBUyxLQUNYLFFBQU87O0NBS1gsT0FBTyw4QkFBOEIsYUFBZ0Q7QUFDbkYsTUFBSSxPQUFPLFdBQVcsZUFBZSxPQUFPLE9BQU8saUJBQWlCLFlBQ2xFO0FBRUYsTUFBSTtHQUNGLE1BQU0sZUFBZSxPQUFPLGFBQWEsUUFBUSwwQkFBMEI7QUFDM0UsT0FBSSxDQUFDLGFBQ0g7QUFHRixVQUR3QixLQUFLLE1BQU0sYUFBYSxDQUN6QjtXQUNoQixLQUFLO0FBQ1osMEJBQU8sU0FDTCwwRUFDQSxJQUNEO0FBQ0Q7OztDQUlKLE9BQU8sdUJBQXVCLGFBQWdEO0VBQzVFLE1BQU0sZ0JBQWdCLG1CQUFtQixrQ0FBa0MsWUFBWTtBQUN2RixNQUFJLGlCQUFpQixNQUFNO0FBQ3pCLDBCQUFPLFNBQ0wsZ0RBQWdELFlBQVksdUNBQXVDLGdCQUNwRztBQUNELFVBQU87O0VBR1QsTUFBTSxpQkFBaUIsbUJBQW1CLDhCQUE4QixZQUFZO0FBQ3BGLE1BQUksa0JBQWtCLE1BQU07QUFDMUIsMEJBQU8sU0FDTCxnREFBZ0QsWUFBWSwwQ0FBMEMsaUJBQ3ZHO0FBQ0QsVUFBTzs7RUFHVCxNQUFNLGlCQUFpQixtQkFBbUIsOEJBQThCLFlBQVk7QUFDcEYsTUFBSSxrQkFBa0IsTUFBTTtBQUMxQiwwQkFBTyxTQUNMLGdEQUFnRCxZQUFZLDBDQUEwQyxpQkFDdkc7QUFDRCxVQUFPOzs7Q0FnRVgsT0FBTyw4QkFBb0M7QUFDekMsTUFBSSxPQUFPLFdBQVcsZUFBZSxPQUFPLE9BQU8saUJBQWlCLFlBQ2xFO0VBRUYsTUFBTSxZQUFZLE9BQU8sT0FBT0Qsa0NBQWEsQ0FDMUMsS0FDQyxnQkFDRSxDQUFDLGFBQWEsbUJBQW1CLHVCQUF1QixZQUFZLENBQUMsQ0FDeEUsQ0FDQSxRQUFRLEdBQUcsV0FBVyxVQUFVLE9BQVUsQ0FDMUMsUUFBaUMsS0FBSyxDQUFDLEtBQUssWUFBWTtHQUFFLEdBQUc7SUFBTSxNQUFNO0dBQVEsR0FBRyxFQUFFLENBQUM7QUFDMUYsU0FBTyxhQUFhLFFBQVEsMkJBQTJCLEtBQUssVUFBVSxVQUFVLENBQUM7OztBQVFyRixNQUFNLHFEQUE4RSxPQUFVO0FBTzlGLE1BQWFFLDhCQUF5RSxFQUNwRixvQkFBb0IsY0FDcEIsZUFDSTtDQUNKLE1BQU0seUNBQ0csRUFDTCxvQkFBb0IsY0FDckIsR0FDRCxDQUFDLGFBQWEsQ0FDZjtBQUVELFFBQ0UsMkNBQUMsMEJBQTBCO0VBQVMsT0FBTztFQUN4QztHQUNrQzs7QUFJekMsTUFBYSw4QkFBOEI7Q0FDekMsTUFBTSxnQ0FBcUIsMEJBQTBCO0FBQ3JELEtBQUksWUFBWSxPQUNkLE9BQU0sSUFBSSxNQUFNLHlFQUF5RTtBQUUzRixRQUFPIn0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJGZWF0dXJlR2F0ZXMiLCJmZWF0dXJlR2F0ZXMiLCJGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcjogUmVhY3QuRkM8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcz4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlcyB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvZmVhdHVyZUdhdGVzJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcblxuY29uc3QgRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSA9ICdzcGlmZnktZmVhdHVyZS1mbGFncyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnKTtcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsRmxhZ1ZhbHVlIHtcbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLy8gVGhpcyBpcyB0aGUgY2xhc3MgdGhhdCB3YXMgcHJldmlvdXNseSBpbXBsaWNpdGx5IHVzZWQgb3IgZGVmaW5lZCBlbHNld2hlcmVcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcblxuICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pIHtcbiAgICB0aGlzLmZlYXR1cmVHYXRlcyA9IGZlYXR1cmVHYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbiAgICBpZiAodXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsT2JqLnNlYXJjaCk7XG4gICAgICBjb25zdCBwYXJhbXNPYmogPSBPYmplY3QuZnJvbUVudHJpZXMocGFyYW1zLmVudHJpZXMoKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc09ialtmZWF0dXJlR2F0ZV07XG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSB3aW5kb3cgYXMgV2luZG93ICYge1xuICAgICAgX2Vudml2ZT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgICBfc3BpZmZ5PzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICB9O1xuICAgIGNvbnN0IGZlYXR1cmVPdmVycmlkZXMgPVxuICAgICAgd2luZG93T3ZlcnJpZGU/Ll9lbnZpdmU/LmZlYXR1cmVPdmVycmlkZXMgPz8gd2luZG93T3ZlcnJpZGU/Ll9zcGlmZnk/LmZlYXR1cmVPdmVycmlkZXM7XG4gICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlT3ZlcnJpZGVzPy5bU3RyaW5nKGZlYXR1cmVHYXRlKV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZKTtcbiAgICAgIGlmICghZmVhdHVyZUZsYWdzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3NPYmogPSBKU09OLnBhcnNlKGZlYXR1cmVGbGFncykgYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdzT2JqW2ZlYXR1cmVHYXRlXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5sb2dFcnJvcignZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXM6IGVycm9yIHBhcnNpbmcgZmVhdHVyZSBmbGFncycsIGVycik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBnZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBxdWVyeU92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHF1ZXJ5T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBVUkwgcGFyYW0uIE5ldyB2YWx1ZTogJHtxdWVyeU92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHF1ZXJ5T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmICh3aW5kb3dPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHdpbmRvdyBwYXJhbS4gTmV3IHZhbHVlOiAke3dpbmRvd092ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHdpbmRvd092ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZE92ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoc3RvcmVkT3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgbG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSBzdG9yZWQgdmFsdWUuIE5ldyB2YWx1ZTogJHtzdG9yZWRPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdG9yZWRPdmVycmlkZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaXNGZWF0dXJlR2F0ZUVuYWJsZWQgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcblxuICAgIGNvbnN0IGZlYXR1cmVGbGFnT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKGZlYXR1cmVGbGFnT3ZlcnJpZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZlYXR1cmVGbGFnT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgaWYgKGdhdGVWYWx1ZSA9PSBudWxsIHx8IGdhdGVWYWx1ZS52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSB2YWx1ZSBpcyB1bmRlZmluZWQgLSByZXR1cm5pbmcgZmFsc2VgLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGdhdGVWYWx1ZS52YWx1ZTtcbiAgfTtcblxuICAvLyBFbnN1cmUgdGhhdCBzdGFuZGFyZCBvdmVycmlkZXMgd29yayBhcyBleHBlY3RlZFxuICBpc0NsaWVudFNlc3Npb25FbmFibGVkID0gKCk6IGJvb2xlYW4gPT5cbiAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKEZlYXR1cmVHYXRlcy5Jc0NsaWVudFNlc3Npb25FbmFibGVkKTtcblxuICBnZXRGZWF0dXJlRmxhZ3MgPSAoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPT4ge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgICB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIF0pLFxuICAgICk7XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZSA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogRnVsbEZsYWdWYWx1ZSA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuICAgIHJldHVybiB7XG4gICAgICByZXNvbHZlZDogdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBpbml0aWFsOiBnYXRlVmFsdWU/LnZhbHVlLFxuICAgICAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgd2luZG93X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgICAgc3RvcmVkX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpLFxuICAgIH07XG4gIH07XG5cbiAgZ2V0RnVsbEZsYWdWYWx1ZXMgPSAoKTogUmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4gPT4ge1xuICAgIGNvbnN0IGZlYXR1cmVHYXRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgIGZlYXR1cmVHYXRlLFxuICAgICAgdGhpcy5nZXRGdWxsRmxhZ1ZhbHVlKGZlYXR1cmVHYXRlKSxcbiAgICBdKTtcblxuICAgIHJldHVybiBmZWF0dXJlR2F0ZXMubGVuZ3RoID4gMFxuICAgICAgPyBmZWF0dXJlR2F0ZXMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+PigoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSBlbnRyeSBhcyBbRmVhdHVyZUdhdGVzLCBGdWxsRmxhZ1ZhbHVlXTtcbiAgICAgICAgICBpZiAobmFtZSAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtgZmVhdHVyZV9nYXRlLiR7bmFtZX1gXTogdmFsdWUgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICA6IHt9O1xuICB9O1xuXG4gIHN0YXRpYyBwZXJzaXN0RmVhdHVyZUdhdGVPdmVycmlkZXMoKTogdm9pZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvdmVycmlkZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcylcbiAgICAgIC5tYXAoXG4gICAgICAgIGZlYXR1cmVHYXRlID0+XG4gICAgICAgICAgW2ZlYXR1cmVHYXRlLCBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZSldIGFzIGNvbnN0LFxuICAgICAgKVxuICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXldOiB2YWx1ZSEgfSksIHt9KTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oRkVBVFVSRV9GTEFHU19TVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkob3ZlcnJpZGVzKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBGZWF0dXJlRmxhZ0NvbnRleHRUeXBlIHtcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBGZWF0dXJlRmxhZ1NlcnZpY2UgfCB1bmRlZmluZWQ7XG59XG5cbmNvbnN0IEZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PEZlYXR1cmVGbGFnQ29udGV4dFR5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmludGVyZmFjZSBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzIHtcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBGZWF0dXJlRmxhZ1NlcnZpY2U7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcjogUmVhY3QuRkM8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IGlucHV0U2VydmljZSxcbiAgY2hpbGRyZW4sXG59KSA9PiB7XG4gIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHtcbiAgICAgIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRTZXJ2aWNlLFxuICAgIH0pLFxuICAgIFtpbnB1dFNlcnZpY2VdLFxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZUZlYXR1cmVGbGFnU2VydmljZSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCk7XG4gIGlmIChjb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZUZlYXR1cmVGbGFnU2VydmljZSBtdXN0IGJlIHVzZWQgd2l0aGluIGEgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBS0EsTUFBTSw0QkFBNEI7QUFFbEMsTUFBTSxTQUFTLElBQUlBLHVCQUFPLDRCQUE0QjtBQVd0RCxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBa0YxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCxXQUFPLFNBQ0wsb0NBQW9DLFlBQVksdUNBQ2pEO0FBQ0QsV0FBTzs7QUFFVCxVQUFPLFVBQVU7O3NDQUtqQixLQUFL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
|
|
@@ -5,6 +5,7 @@ import { jsx } from "react/jsx-runtime";
|
|
|
5
5
|
|
|
6
6
|
//#region src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx
|
|
7
7
|
const FEATURE_FLAGS_STORAGE_KEY = "spiffy-feature-flags";
|
|
8
|
+
const logger = new logger_default("featureFlagServiceContext");
|
|
8
9
|
var FeatureFlagService = class FeatureFlagService {
|
|
9
10
|
constructor(featureGates) {
|
|
10
11
|
this.isFeatureGateEnabled = (featureGate) => {
|
|
@@ -12,7 +13,7 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
12
13
|
const featureFlagOverride = FeatureFlagService.getFeatureFlagOverride(featureGate);
|
|
13
14
|
if (featureFlagOverride !== void 0) return featureFlagOverride;
|
|
14
15
|
if (gateValue == null || gateValue.value == null) {
|
|
15
|
-
|
|
16
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} value is undefined - returning false`);
|
|
16
17
|
return false;
|
|
17
18
|
}
|
|
18
19
|
return gateValue.value;
|
|
@@ -66,24 +67,24 @@ var FeatureFlagService = class FeatureFlagService {
|
|
|
66
67
|
if (!featureFlags) return;
|
|
67
68
|
return JSON.parse(featureFlags)[featureGate];
|
|
68
69
|
} catch (err) {
|
|
69
|
-
|
|
70
|
+
logger.logError("getStoredFeatureGateOverrides: error parsing feature flags", err);
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
static getFeatureFlagOverride(featureGate) {
|
|
74
75
|
const queryOverride = FeatureFlagService.getQueryParamFeatureGateOverrides(featureGate);
|
|
75
76
|
if (queryOverride != null) {
|
|
76
|
-
|
|
77
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by URL param. New value: ${queryOverride}`);
|
|
77
78
|
return queryOverride;
|
|
78
79
|
}
|
|
79
80
|
const windowOverride = FeatureFlagService.getWindowFeatureGateOverrides(featureGate);
|
|
80
81
|
if (windowOverride != null) {
|
|
81
|
-
|
|
82
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by window param. New value: ${windowOverride}`);
|
|
82
83
|
return windowOverride;
|
|
83
84
|
}
|
|
84
85
|
const storedOverride = FeatureFlagService.getStoredFeatureGateOverrides(featureGate);
|
|
85
86
|
if (storedOverride != null) {
|
|
86
|
-
|
|
87
|
+
logger.logDebug(`isFeatureGateEnabled featureGate:${featureGate} overridden by stored value. New value: ${storedOverride}`);
|
|
87
88
|
return storedOverride;
|
|
88
89
|
}
|
|
89
90
|
}
|
|
@@ -112,4 +113,4 @@ const useFeatureFlagService = () => {
|
|
|
112
113
|
|
|
113
114
|
//#endregion
|
|
114
115
|
export { FeatureFlagService, FeatureFlagServiceProvider, useFeatureFlagService };
|
|
115
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5qcyIsIm5hbWVzIjpbImZlYXR1cmVHYXRlcyIsIkZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuXG5jb25zdCBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZID0gJ3NwaWZmeS1mZWF0dXJlLWZsYWdzJztcblxuZXhwb3J0IGludGVyZmFjZSBGdWxsRmxhZ1ZhbHVlIHtcbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIGluaXRpYWw6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHN0b3JlZF9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLy8gVGhpcyBpcyB0aGUgY2xhc3MgdGhhdCB3YXMgcHJldmlvdXNseSBpbXBsaWNpdGx5IHVzZWQgb3IgZGVmaW5lZCBlbHNld2hlcmVcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1NlcnZpY2Uge1xuICBwcml2YXRlIGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcblxuICBjb25zdHJ1Y3RvcihmZWF0dXJlR2F0ZXM6IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW10pIHtcbiAgICB0aGlzLmZlYXR1cmVHYXRlcyA9IGZlYXR1cmVHYXRlcztcbiAgfVxuXG4gIHN0YXRpYyBnZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbj8uaHJlZiA/PyAnJztcbiAgICBpZiAodXJsLmluY2x1ZGVzKCc/JykpIHtcbiAgICAgIGNvbnN0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsT2JqLnNlYXJjaCk7XG4gICAgICBjb25zdCBwYXJhbXNPYmogPSBPYmplY3QuZnJvbUVudHJpZXMocGFyYW1zLmVudHJpZXMoKSk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc09ialtmZWF0dXJlR2F0ZV07XG5cbiAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gJ3RydWUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgZ2V0V2luZG93RmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3Qgd2luZG93T3ZlcnJpZGUgPSB3aW5kb3cgYXMgV2luZG93ICYge1xuICAgICAgX2Vudml2ZT86IHsgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IH07XG4gICAgICBfc3BpZmZ5PzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICB9O1xuICAgIGNvbnN0IGZlYXR1cmVPdmVycmlkZXMgPVxuICAgICAgd2luZG93T3ZlcnJpZGU/Ll9lbnZpdmU/LmZlYXR1cmVPdmVycmlkZXMgPz8gd2luZG93T3ZlcnJpZGU/Ll9zcGlmZnk/LmZlYXR1cmVPdmVycmlkZXM7XG4gICAgY29uc3QgdmFsdWUgPSBmZWF0dXJlT3ZlcnJpZGVzPy5bU3RyaW5nKGZlYXR1cmVHYXRlKV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubG9jYWxTdG9yYWdlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFncyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZKTtcbiAgICAgIGlmICghZmVhdHVyZUZsYWdzKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBmZWF0dXJlRmxhZ3NPYmogPSBKU09OLnBhcnNlKGZlYXR1cmVGbGFncykgYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdzT2JqW2ZlYXR1cmVHYXRlXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIExvZ2dlci5sb2dFcnJvcihcbiAgICAgICAgJ1tzcGlmZnktYWldIGdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzOiBlcnJvciBwYXJzaW5nIGZlYXR1cmUgZmxhZ3MnLFxuICAgICAgICBlcnIsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZ2V0RmVhdHVyZUZsYWdPdmVycmlkZShmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcXVlcnlPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRRdWVyeVBhcmFtRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChxdWVyeU92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgVVJMIHBhcmFtLiBOZXcgdmFsdWU6ICR7cXVlcnlPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBxdWVyeU92ZXJyaWRlO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAod2luZG93T3ZlcnJpZGUgIT0gbnVsbCkge1xuICAgICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgW3NwaWZmeS1haV0gaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gb3ZlcnJpZGRlbiBieSB3aW5kb3cgcGFyYW0uIE5ldyB2YWx1ZTogJHt3aW5kb3dPdmVycmlkZX1gLFxuICAgICAgKTtcbiAgICAgIHJldHVybiB3aW5kb3dPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWRPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHN0b3JlZE92ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIExvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYFtzcGlmZnktYWldIGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgc3RvcmVkIHZhbHVlLiBOZXcgdmFsdWU6ICR7c3RvcmVkT3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gc3RvcmVkT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlzRmVhdHVyZUdhdGVFbmFibGVkID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG5cbiAgICBjb25zdCBmZWF0dXJlRmxhZ092ZXJyaWRlID0gRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChmZWF0dXJlRmxhZ092ZXJyaWRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmZWF0dXJlRmxhZ092ZXJyaWRlO1xuICAgIH1cblxuICAgIGlmIChnYXRlVmFsdWUgPT0gbnVsbCB8fCBnYXRlVmFsdWUudmFsdWUgPT0gbnVsbCkge1xuICAgICAgTG9nZ2VyLmxvZ0RlYnVnKFxuICAgICAgICBgW3NwaWZmeS1haV0gaXNGZWF0dXJlR2F0ZUVuYWJsZWQgZmVhdHVyZUdhdGU6JHtmZWF0dXJlR2F0ZX0gdmFsdWUgaXMgdW5kZWZpbmVkIC0gcmV0dXJuaW5nIGZhbHNlYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBnYXRlVmFsdWUudmFsdWU7XG4gIH07XG5cbiAgLy8gRW5zdXJlIHRoYXQgc3RhbmRhcmQgb3ZlcnJpZGVzIHdvcmsgYXMgZXhwZWN0ZWRcbiAgaXNDbGllbnRTZXNzaW9uRW5hYmxlZCA9ICgpOiBib29sZWFuID0+XG4gICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChGZWF0dXJlR2F0ZXMuSXNDbGllbnRTZXNzaW9uRW5hYmxlZCk7XG5cbiAgZ2V0RmVhdHVyZUZsYWdzID0gKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgICAgdGhpcy5pc0ZlYXR1cmVHYXRlRW5hYmxlZChmZWF0dXJlR2F0ZSksXG4gICAgICBdKSxcbiAgICApO1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWUgPSAoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IEZ1bGxGbGFnVmFsdWUgPT4ge1xuICAgIGNvbnN0IGdhdGVWYWx1ZSA9IHRoaXMuZmVhdHVyZUdhdGVzLmZpbmQoZ2F0ZSA9PiBnYXRlLm5hbWUgPT09IGZlYXR1cmVHYXRlKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzb2x2ZWQ6IHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgaW5pdGlhbDogZ2F0ZVZhbHVlPy52YWx1ZSxcbiAgICAgIHF1ZXJ5X3BhcmFtX292ZXJyaWRlOiBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHdpbmRvd19wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFdpbmRvd0ZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICAgIHN0b3JlZF9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKSxcbiAgICB9O1xuICB9O1xuXG4gIGdldEZ1bGxGbGFnVmFsdWVzID0gKCk6IFJlY29yZDxzdHJpbmcsIEZ1bGxGbGFnVmFsdWU+ID0+IHtcbiAgICBjb25zdCBmZWF0dXJlR2F0ZXMgPSBPYmplY3QudmFsdWVzKEZlYXR1cmVHYXRlcykubWFwKChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKSA9PiBbXG4gICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgIHRoaXMuZ2V0RnVsbEZsYWdWYWx1ZShmZWF0dXJlR2F0ZSksXG4gICAgXSk7XG5cbiAgICByZXR1cm4gZmVhdHVyZUdhdGVzLmxlbmd0aCA+IDBcbiAgICAgID8gZmVhdHVyZUdhdGVzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPj4oKGFjYywgZW50cnkpID0+IHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gZW50cnkgYXMgW0ZlYXR1cmVHYXRlcywgRnVsbEZsYWdWYWx1ZV07XG4gICAgICAgICAgaWYgKG5hbWUgJiYgdmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYGZlYXR1cmVfZ2F0ZS4ke25hbWV9YF06IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9KVxuICAgICAgOiB7fTtcbiAgfTtcblxuICBzdGF0aWMgcGVyc2lzdEZlYXR1cmVHYXRlT3ZlcnJpZGVzKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCB0eXBlb2Ygd2luZG93LmxvY2FsU3RvcmFnZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpXG4gICAgICAubWFwKFxuICAgICAgICBmZWF0dXJlR2F0ZSA9PlxuICAgICAgICAgIFtmZWF0dXJlR2F0ZSwgRmVhdHVyZUZsYWdTZXJ2aWNlLmdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGUpXSBhcyBjb25zdCxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgIC5yZWR1Y2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+KChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUhIH0pLCB7fSk7XG4gICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KG92ZXJyaWRlcykpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUZsYWdDb250ZXh0VHlwZSB7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogRmVhdHVyZUZsYWdTZXJ2aWNlIHwgdW5kZWZpbmVkO1xufVxuXG5jb25zdCBGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxGZWF0dXJlRmxhZ0NvbnRleHRUeXBlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5pbnRlcmZhY2UgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXJQcm9wcyB7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXI6IFJlYWN0LkZDPEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyUHJvcHM+ID0gKHtcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dFNlcnZpY2UsXG4gIGNoaWxkcmVuLFxufSkgPT4ge1xuICBjb25zdCBjb250ZXh0VmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBmZWF0dXJlRmxhZ1NlcnZpY2U6IGlucHV0U2VydmljZSxcbiAgICB9KSxcbiAgICBbaW5wdXRTZXJ2aWNlXSxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0VmFsdWV9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQpO1xuICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VGZWF0dXJlRmxhZ1NlcnZpY2UgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyJyk7XG4gIH1cbiAgcmV0dXJuIGNvbnRleHQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFLQSxNQUFNLDRCQUE0QjtBQVdsQyxJQUFhLHFCQUFiLE1BQWEsbUJBQW1CO0NBRzlCLFlBQVksY0FBc0M7K0JBcUYxQixnQkFBdUM7R0FDN0QsTUFBTSxZQUFZLEtBQUssYUFBYSxNQUFLLFNBQVEsS0FBSyxTQUFTLFlBQVk7R0FFM0UsTUFBTSxzQkFBc0IsbUJBQW1CLHVCQUF1QixZQUFZO0FBQ2xGLE9BQUksd0JBQXdCLE9BQzFCLFFBQU87QUFHVCxPQUFJLGFBQWEsUUFBUSxVQUFVLFNBQVMsTUFBTTtBQUNoRCxtQkFBTyxTQUNMLGdEQUFnRCxZQUFZLHVDQUM3RDtBQUNELFdBQU87O0FBRVQsVUFBTyxVQUFVOztzQ0FLakIsS0FBSyxxQkFBcUIsYUFBYSx1QkFBdUI7K0JBRWY7QUFDL0Ms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
|
|
116
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsImZlYXR1cmVHYXRlcyIsIkZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0L2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRmVhdHVyZUdhdGVzIH0gZnJvbSAnc3JjL2FwcGxpY2F0aW9uL21vZGVscy9mZWF0dXJlR2F0ZXMnO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuXG5jb25zdCBGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZID0gJ3NwaWZmeS1mZWF0dXJlLWZsYWdzJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxGbGFnVmFsdWUge1xuICByZXNvbHZlZDogYm9vbGVhbjtcbiAgaW5pdGlhbDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgcXVlcnlfcGFyYW1fb3ZlcnJpZGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHdpbmRvd19wYXJhbV9vdmVycmlkZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgc3RvcmVkX292ZXJyaWRlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vLyBUaGlzIGlzIHRoZSBjbGFzcyB0aGF0IHdhcyBwcmV2aW91c2x5IGltcGxpY2l0bHkgdXNlZCBvciBkZWZpbmVkIGVsc2V3aGVyZVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFnU2VydmljZSB7XG4gIHByaXZhdGUgZmVhdHVyZUdhdGVzOiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuXG4gIGNvbnN0cnVjdG9yKGZlYXR1cmVHYXRlczogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXSkge1xuICAgIHRoaXMuZmVhdHVyZUdhdGVzID0gZmVhdHVyZUdhdGVzO1xuICB9XG5cbiAgc3RhdGljIGdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uPy5ocmVmID8/ICcnO1xuICAgIGlmICh1cmwuaW5jbHVkZXMoJz8nKSkge1xuICAgICAgY29uc3QgdXJsT2JqID0gbmV3IFVSTCh1cmwpO1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxPYmouc2VhcmNoKTtcbiAgICAgIGNvbnN0IHBhcmFtc09iaiA9IE9iamVjdC5mcm9tRW50cmllcyhwYXJhbXMuZW50cmllcygpKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1zT2JqW2ZlYXR1cmVHYXRlXTtcblxuICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCB3aW5kb3dPdmVycmlkZSA9IHdpbmRvdyBhcyBXaW5kb3cgJiB7XG4gICAgICBfZW52aXZlPzogeyBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gfTtcbiAgICAgIF9zcGlmZnk/OiB7IGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB9O1xuICAgIH07XG4gICAgY29uc3QgZmVhdHVyZU92ZXJyaWRlcyA9XG4gICAgICB3aW5kb3dPdmVycmlkZT8uX2Vudml2ZT8uZmVhdHVyZU92ZXJyaWRlcyA/PyB3aW5kb3dPdmVycmlkZT8uX3NwaWZmeT8uZmVhdHVyZU92ZXJyaWRlcztcbiAgICBjb25zdCB2YWx1ZSA9IGZlYXR1cmVPdmVycmlkZXM/LltTdHJpbmcoZmVhdHVyZUdhdGUpXTtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgc3RhdGljIGdldFN0b3JlZEZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZmVhdHVyZUZsYWdzID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKEZFQVRVUkVfRkxBR1NfU1RPUkFHRV9LRVkpO1xuICAgICAgaWYgKCFmZWF0dXJlRmxhZ3MpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZlYXR1cmVGbGFnc09iaiA9IEpTT04ucGFyc2UoZmVhdHVyZUZsYWdzKSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICAgIHJldHVybiBmZWF0dXJlRmxhZ3NPYmpbZmVhdHVyZUdhdGVdO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdnZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlczogZXJyb3IgcGFyc2luZyBmZWF0dXJlIGZsYWdzJywgZXJyKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldEZlYXR1cmVGbGFnT3ZlcnJpZGUoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHF1ZXJ5T3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0UXVlcnlQYXJhbUZlYXR1cmVHYXRlT3ZlcnJpZGVzKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAocXVlcnlPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IFVSTCBwYXJhbS4gTmV3IHZhbHVlOiAke3F1ZXJ5T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gcXVlcnlPdmVycmlkZTtcbiAgICB9XG5cbiAgICBjb25zdCB3aW5kb3dPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSk7XG4gICAgaWYgKHdpbmRvd092ZXJyaWRlICE9IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IG92ZXJyaWRkZW4gYnkgd2luZG93IHBhcmFtLiBOZXcgdmFsdWU6ICR7d2luZG93T3ZlcnJpZGV9YCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gd2luZG93T3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkT3ZlcnJpZGUgPSBGZWF0dXJlRmxhZ1NlcnZpY2UuZ2V0U3RvcmVkRmVhdHVyZUdhdGVPdmVycmlkZXMoZmVhdHVyZUdhdGUpO1xuICAgIGlmIChzdG9yZWRPdmVycmlkZSAhPSBudWxsKSB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoXG4gICAgICAgIGBpc0ZlYXR1cmVHYXRlRW5hYmxlZCBmZWF0dXJlR2F0ZToke2ZlYXR1cmVHYXRlfSBvdmVycmlkZGVuIGJ5IHN0b3JlZCB2YWx1ZS4gTmV3IHZhbHVlOiAke3N0b3JlZE92ZXJyaWRlfWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0b3JlZE92ZXJyaWRlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpc0ZlYXR1cmVHYXRlRW5hYmxlZCA9IChmZWF0dXJlR2F0ZTogRmVhdHVyZUdhdGVzKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZ2F0ZVZhbHVlID0gdGhpcy5mZWF0dXJlR2F0ZXMuZmluZChnYXRlID0+IGdhdGUubmFtZSA9PT0gZmVhdHVyZUdhdGUpO1xuXG4gICAgY29uc3QgZmVhdHVyZUZsYWdPdmVycmlkZSA9IEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKTtcbiAgICBpZiAoZmVhdHVyZUZsYWdPdmVycmlkZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmVhdHVyZUZsYWdPdmVycmlkZTtcbiAgICB9XG5cbiAgICBpZiAoZ2F0ZVZhbHVlID09IG51bGwgfHwgZ2F0ZVZhbHVlLnZhbHVlID09IG51bGwpIHtcbiAgICAgIGxvZ2dlci5sb2dEZWJ1ZyhcbiAgICAgICAgYGlzRmVhdHVyZUdhdGVFbmFibGVkIGZlYXR1cmVHYXRlOiR7ZmVhdHVyZUdhdGV9IHZhbHVlIGlzIHVuZGVmaW5lZCAtIHJldHVybmluZyBmYWxzZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZ2F0ZVZhbHVlLnZhbHVlO1xuICB9O1xuXG4gIC8vIEVuc3VyZSB0aGF0IHN0YW5kYXJkIG92ZXJyaWRlcyB3b3JrIGFzIGV4cGVjdGVkXG4gIGlzQ2xpZW50U2Vzc2lvbkVuYWJsZWQgPSAoKTogYm9vbGVhbiA9PlxuICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoRmVhdHVyZUdhdGVzLklzQ2xpZW50U2Vzc2lvbkVuYWJsZWQpO1xuXG4gIGdldEZlYXR1cmVGbGFncyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKS5tYXAoKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpID0+IFtcbiAgICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICAgIHRoaXMuaXNGZWF0dXJlR2F0ZUVuYWJsZWQoZmVhdHVyZUdhdGUpLFxuICAgICAgXSksXG4gICAgKTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlID0gKGZlYXR1cmVHYXRlOiBGZWF0dXJlR2F0ZXMpOiBGdWxsRmxhZ1ZhbHVlID0+IHtcbiAgICBjb25zdCBnYXRlVmFsdWUgPSB0aGlzLmZlYXR1cmVHYXRlcy5maW5kKGdhdGUgPT4gZ2F0ZS5uYW1lID09PSBmZWF0dXJlR2F0ZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlc29sdmVkOiB0aGlzLmlzRmVhdHVyZUdhdGVFbmFibGVkKGZlYXR1cmVHYXRlKSxcbiAgICAgIGluaXRpYWw6IGdhdGVWYWx1ZT8udmFsdWUsXG4gICAgICBxdWVyeV9wYXJhbV9vdmVycmlkZTogRmVhdHVyZUZsYWdTZXJ2aWNlLmdldFF1ZXJ5UGFyYW1GZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICB3aW5kb3dfcGFyYW1fb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRXaW5kb3dGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgICBzdG9yZWRfb3ZlcnJpZGU6IEZlYXR1cmVGbGFnU2VydmljZS5nZXRTdG9yZWRGZWF0dXJlR2F0ZU92ZXJyaWRlcyhmZWF0dXJlR2F0ZSksXG4gICAgfTtcbiAgfTtcblxuICBnZXRGdWxsRmxhZ1ZhbHVlcyA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBGdWxsRmxhZ1ZhbHVlPiA9PiB7XG4gICAgY29uc3QgZmVhdHVyZUdhdGVzID0gT2JqZWN0LnZhbHVlcyhGZWF0dXJlR2F0ZXMpLm1hcCgoZmVhdHVyZUdhdGU6IEZlYXR1cmVHYXRlcykgPT4gW1xuICAgICAgZmVhdHVyZUdhdGUsXG4gICAgICB0aGlzLmdldEZ1bGxGbGFnVmFsdWUoZmVhdHVyZUdhdGUpLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVHYXRlcy5sZW5ndGggPiAwXG4gICAgICA/IGZlYXR1cmVHYXRlcy5yZWR1Y2U8UmVjb3JkPHN0cmluZywgRnVsbEZsYWdWYWx1ZT4+KChhY2MsIGVudHJ5KSA9PiB7XG4gICAgICAgICAgY29uc3QgW25hbWUsIHZhbHVlXSA9IGVudHJ5IGFzIFtGZWF0dXJlR2F0ZXMsIEZ1bGxGbGFnVmFsdWVdO1xuICAgICAgICAgIGlmIChuYW1lICYmIHZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmFjYywgW2BmZWF0dXJlX2dhdGUuJHtuYW1lfWBdOiB2YWx1ZSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSlcbiAgICAgIDoge307XG4gIH07XG5cbiAgc3RhdGljIHBlcnNpc3RGZWF0dXJlR2F0ZU92ZXJyaWRlcygpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5sb2NhbFN0b3JhZ2UgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IE9iamVjdC52YWx1ZXMoRmVhdHVyZUdhdGVzKVxuICAgICAgLm1hcChcbiAgICAgICAgZmVhdHVyZUdhdGUgPT5cbiAgICAgICAgICBbZmVhdHVyZUdhdGUsIEZlYXR1cmVGbGFnU2VydmljZS5nZXRGZWF0dXJlRmxhZ092ZXJyaWRlKGZlYXR1cmVHYXRlKV0gYXMgY29uc3QsXG4gICAgICApXG4gICAgICAuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAucmVkdWNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PigoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlISB9KSwge30pO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShGRUFUVVJFX0ZMQUdTX1NUT1JBR0VfS0VZLCBKU09OLnN0cmluZ2lmeShvdmVycmlkZXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVGbGFnQ29udGV4dFR5cGUge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZSB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgRmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8RmVhdHVyZUZsYWdDb250ZXh0VHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuaW50ZXJmYWNlIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyUHJvcHMge1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbn1cblxuZXhwb3J0IGNvbnN0IEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyOiBSZWFjdC5GQzxGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlclByb3BzPiA9ICh7XG4gIGZlYXR1cmVGbGFnU2VydmljZTogaW5wdXRTZXJ2aWNlLFxuICBjaGlsZHJlbixcbn0pID0+IHtcbiAgY29uc3QgY29udGV4dFZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dFNlcnZpY2UsXG4gICAgfSksXG4gICAgW2lucHV0U2VydmljZV0sXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlRmVhdHVyZUZsYWdTZXJ2aWNlID0gKCkgPT4ge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChGZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0KTtcbiAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcigndXNlRmVhdHVyZUZsYWdTZXJ2aWNlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsTUFBTSw0QkFBNEI7QUFFbEMsTUFBTSxTQUFTLElBQUlBLGVBQU8sNEJBQTRCO0FBV3RELElBQWEscUJBQWIsTUFBYSxtQkFBbUI7Q0FHOUIsWUFBWSxjQUFzQzsrQkFrRjFCLGdCQUF1QztHQUM3RCxNQUFNLFlBQVksS0FBSyxhQUFhLE1BQUssU0FBUSxLQUFLLFNBQVMsWUFBWTtHQUUzRSxNQUFNLHNCQUFzQixtQkFBbUIsdUJBQXVCLFlBQVk7QUFDbEYsT0FBSSx3QkFBd0IsT0FDMUIsUUFBTztBQUdULE9BQUksYUFBYSxRQUFRLFVBQVUsU0FBUyxNQUFNO0FBQ2hELFdBQU8sU0FDTCxvQ0FBb0MsWUFBWSx1Q0FDakQ7QUFDRCxXQUFPOztBQUVULFVBQU8sVUFBVTs7c0NBS2pCLEtBQUsscUJBQXFCLGFBQWEsdUJBQXVC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
|