@envive-ai/react-hooks 0.3.18 → 0.3.19-alpha-marlo-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/application/commerce-api.cjs +14 -13
  2. package/dist/application/commerce-api.js +14 -13
  3. package/dist/application/logging/logger.cjs +16 -10
  4. package/dist/application/logging/logger.js +16 -10
  5. package/dist/application/models/guards/api/isApiFormResponse.cjs +9 -8
  6. package/dist/application/models/guards/api/isApiFormResponse.js +9 -8
  7. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +6 -5
  8. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +6 -5
  9. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +19 -18
  10. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +19 -18
  11. package/dist/application/models/guards/api/isApiOrgConfigResults.cjs +27 -26
  12. package/dist/application/models/guards/api/isApiOrgConfigResults.js +27 -26
  13. package/dist/application/models/guards/api/isApiOrganizationConfig.cjs +23 -22
  14. package/dist/application/models/guards/api/isApiOrganizationConfig.js +23 -22
  15. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +12 -11
  16. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +12 -11
  17. package/dist/application/models/guards/api/isApiResponse.cjs +7 -6
  18. package/dist/application/models/guards/api/isApiResponse.js +7 -6
  19. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.cjs +5 -4
  20. package/dist/application/models/guards/graphQL/isGraphQLColorsConfig.js +5 -4
  21. package/dist/application/models/validators/validateGraphQLFrontendConfig.cjs +15 -14
  22. package/dist/application/models/validators/validateGraphQLFrontendConfig.js +15 -14
  23. package/dist/application/utils/analyticsUtils.cjs +4 -3
  24. package/dist/application/utils/analyticsUtils.js +4 -3
  25. package/dist/application/utils/elementObserver.d.cts +2 -2
  26. package/dist/application/utils/elementObserver.d.ts +2 -2
  27. package/dist/application/utils/nextMessageRequestToApiRequest.cjs +3 -1
  28. package/dist/application/utils/nextMessageRequestToApiRequest.js +3 -1
  29. package/dist/atoms/app/index.d.ts +7 -7
  30. package/dist/atoms/app/variant.cjs +3 -2
  31. package/dist/atoms/app/variant.d.ts +6 -6
  32. package/dist/atoms/app/variant.js +3 -2
  33. package/dist/atoms/chat/chatState.d.cts +18 -18
  34. package/dist/atoms/chat/chatState.d.ts +18 -18
  35. package/dist/atoms/chat/form.d.ts +3 -3
  36. package/dist/atoms/chat/index.d.cts +2 -2
  37. package/dist/atoms/chat/index.d.ts +3 -3
  38. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  39. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  40. package/dist/atoms/chat/messageQueue.d.ts +7 -7
  41. package/dist/atoms/chat/performanceMetrics.cjs +3 -2
  42. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  43. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  44. package/dist/atoms/chat/performanceMetrics.js +3 -2
  45. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  46. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  47. package/dist/atoms/chat/replies.d.cts +2 -2
  48. package/dist/atoms/chat/replies.d.ts +3 -3
  49. package/dist/atoms/chat/suggestions.d.cts +2 -2
  50. package/dist/atoms/chat/suggestions.d.ts +3 -3
  51. package/dist/atoms/envive/enviveConfig.cjs +5 -4
  52. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  53. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  54. package/dist/atoms/envive/enviveConfig.js +5 -4
  55. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  56. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  57. package/dist/atoms/org/customerService.d.cts +6 -6
  58. package/dist/atoms/org/customerService.d.ts +6 -6
  59. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  60. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  61. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  62. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  63. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  64. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  65. package/dist/atoms/search/chatSearch.d.cts +17 -17
  66. package/dist/atoms/search/chatSearch.d.ts +17 -17
  67. package/dist/atoms/search/searchAPI.d.cts +13 -13
  68. package/dist/atoms/search/searchAPI.d.ts +13 -13
  69. package/dist/atoms/search/types.d.cts +1 -1
  70. package/dist/atoms/search/types.d.ts +1 -1
  71. package/dist/atoms/search/utils.d.ts +1 -1
  72. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  73. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +4 -4
  74. package/dist/contexts/amplitudeContext/amplitudeContext.js +3 -3
  75. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +26 -15
  76. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -4
  77. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -4
  78. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +29 -16
  79. package/dist/contexts/enviveConfigContext/index.cjs +2 -1
  80. package/dist/contexts/enviveConfigContext/index.d.cts +2 -1
  81. package/dist/contexts/enviveConfigContext/index.d.ts +2 -1
  82. package/dist/contexts/enviveConfigContext/index.js +2 -1
  83. package/dist/contexts/enviveConfigContext/useEnviveConfig.cjs +12 -0
  84. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.cts +7 -0
  85. package/dist/contexts/enviveConfigContext/useEnviveConfig.d.ts +7 -0
  86. package/dist/contexts/enviveConfigContext/useEnviveConfig.js +11 -0
  87. package/dist/contexts/enviveContext/WindowChatToggleBinder.cjs +7 -5
  88. package/dist/contexts/enviveContext/WindowChatToggleBinder.js +6 -4
  89. package/dist/contexts/enviveContext/enviveContext.cjs +77 -48
  90. package/dist/contexts/enviveContext/enviveContext.d.cts +8 -2
  91. package/dist/contexts/enviveContext/enviveContext.d.ts +8 -2
  92. package/dist/contexts/enviveContext/enviveContext.js +78 -49
  93. package/dist/contexts/enviveContext/index.d.cts +2 -2
  94. package/dist/contexts/enviveContext/index.d.ts +2 -2
  95. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +7 -6
  96. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +7 -6
  97. package/dist/contexts/graphqlContext/graphqlContext.cjs +8 -7
  98. package/dist/contexts/graphqlContext/graphqlContext.js +8 -7
  99. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +9 -8
  100. package/dist/contexts/hardcopyContext/hardcopyContext.js +9 -8
  101. package/dist/contexts/localStorageContext/localStorageContext.cjs +4 -3
  102. package/dist/contexts/localStorageContext/localStorageContext.js +4 -3
  103. package/dist/contexts/pageContext/pageContext.cjs +23 -4
  104. package/dist/contexts/pageContext/pageContext.d.cts +3 -1
  105. package/dist/contexts/pageContext/pageContext.d.ts +3 -1
  106. package/dist/contexts/pageContext/pageContext.js +24 -5
  107. package/dist/contexts/pageContext/types.d.ts +1 -1
  108. package/dist/contexts/salesAgentContext/chatAPI.cjs +3 -2
  109. package/dist/contexts/salesAgentContext/chatAPI.js +3 -2
  110. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +4 -3
  111. package/dist/contexts/salesAgentContext/salesAgentContext.js +4 -3
  112. package/dist/contexts/salesAgentContext/salesAgentService.cjs +3 -2
  113. package/dist/contexts/salesAgentContext/salesAgentService.js +3 -2
  114. package/dist/contexts/searchContext/searchContext.cjs +8 -6
  115. package/dist/contexts/searchContext/searchContext.js +7 -5
  116. package/dist/contexts/sessionStorageContext/sessionStorageContext.cjs +3 -2
  117. package/dist/contexts/sessionStorageContext/sessionStorageContext.js +3 -2
  118. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  119. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.ts +2 -2
  120. package/dist/contexts/types.d.cts +1 -1
  121. package/dist/contexts/types.d.ts +1 -1
  122. package/dist/contexts/typesV3.d.cts +1 -1
  123. package/dist/contexts/typesV3.d.ts +1 -1
  124. package/dist/contexts/uiConfigContext/index.cjs +0 -1
  125. package/dist/contexts/uiConfigContext/index.d.cts +2 -2
  126. package/dist/contexts/uiConfigContext/index.d.ts +2 -2
  127. package/dist/contexts/uiConfigContext/index.js +2 -2
  128. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +13 -30
  129. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +5 -9
  130. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +5 -9
  131. package/dist/contexts/uiConfigContext/uiConfigContext.js +14 -29
  132. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +7 -7
  133. package/dist/contexts/userIdentityContext/userIdentityContext.js +7 -7
  134. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +4 -3
  135. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +4 -3
  136. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.cjs +4 -3
  137. package/dist/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.js +4 -3
  138. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  139. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  140. package/dist/hooks/WidgetInteraction/types.d.ts +1 -1
  141. package/dist/hooks/WidgetInteraction/useWidgetInteraction.cjs +2 -2
  142. package/dist/hooks/WidgetInteraction/useWidgetInteraction.js +2 -2
  143. package/dist/hooks/WidgetInteraction/utils.cjs +2 -1
  144. package/dist/hooks/WidgetInteraction/utils.d.ts +1 -1
  145. package/dist/hooks/WidgetInteraction/utils.js +2 -1
  146. package/dist/hooks/utils.d.ts +1 -1
  147. package/dist/services/amplitudeService/amplitudeService.cjs +20 -7
  148. package/dist/services/amplitudeService/amplitudeService.d.cts +4 -1
  149. package/dist/services/amplitudeService/amplitudeService.d.ts +4 -1
  150. package/dist/services/amplitudeService/amplitudeService.js +20 -7
  151. package/dist/services/ga4ProjectionService/ga4ProjectionService.cjs +3 -2
  152. package/dist/services/ga4ProjectionService/ga4ProjectionService.js +3 -2
  153. package/dist/services/userIdentityService/userIdentityService.cjs +8 -7
  154. package/dist/services/userIdentityService/userIdentityService.js +8 -7
  155. package/package.json +2 -2
  156. package/src/application/commerce-api.ts +14 -12
  157. package/src/application/logging/logger.ts +33 -8
  158. package/src/application/models/guards/api/isApiFormResponse.ts +9 -7
  159. package/src/application/models/guards/api/isApiFormSubmittedResponseAttributes.ts +6 -4
  160. package/src/application/models/guards/api/isApiOrderResponseAttributes.ts +19 -17
  161. package/src/application/models/guards/api/isApiOrgConfigResults.ts +40 -48
  162. package/src/application/models/guards/api/isApiOrganizationConfig.ts +25 -38
  163. package/src/application/models/guards/api/isApiProductResponseAttributes.ts +12 -10
  164. package/src/application/models/guards/api/isApiResponse.ts +7 -5
  165. package/src/application/models/guards/graphQL/isGraphQLColorsConfig.ts +5 -3
  166. package/src/application/models/validators/validateGraphQLFrontendConfig.ts +15 -13
  167. package/src/application/utils/analyticsUtils.ts +4 -4
  168. package/src/application/utils/nextMessageRequestToApiRequest.ts +2 -0
  169. package/src/atoms/app/variant.ts +3 -1
  170. package/src/atoms/chat/performanceMetrics.ts +3 -1
  171. package/src/atoms/envive/enviveConfig.ts +5 -3
  172. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +5 -4
  173. package/src/contexts/amplitudeContext/amplitudeContext.tsx +1 -5
  174. package/src/contexts/enviveConfigContext/__tests__/enviveConfigContext.test.tsx +4 -3
  175. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +50 -35
  176. package/src/contexts/enviveConfigContext/index.ts +1 -0
  177. package/src/contexts/enviveConfigContext/useEnviveConfig.ts +9 -0
  178. package/src/contexts/enviveContext/WindowChatToggleBinder.tsx +6 -4
  179. package/src/contexts/enviveContext/enviveContext.tsx +109 -50
  180. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +11 -12
  181. package/src/contexts/graphqlContext/__tests__/graphqlContext.test.tsx +4 -4
  182. package/src/contexts/graphqlContext/graphqlContext.tsx +8 -6
  183. package/src/contexts/hardcopyContext/hardcopyContext.tsx +9 -7
  184. package/src/contexts/localStorageContext/__tests__/localStorageContext.test.tsx +6 -6
  185. package/src/contexts/localStorageContext/localStorageContext.tsx +4 -2
  186. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +5 -5
  187. package/src/contexts/pageContext/pageContext.tsx +22 -2
  188. package/src/contexts/salesAgentContext/chatAPI.ts +5 -5
  189. package/src/contexts/salesAgentContext/salesAgentContext.tsx +4 -2
  190. package/src/contexts/salesAgentContext/salesAgentService.ts +4 -2
  191. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +15 -12
  192. package/src/contexts/searchContext/searchContext.tsx +6 -4
  193. package/src/contexts/sessionStorageContext/sessionStorageContext.tsx +3 -1
  194. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +7 -32
  195. package/src/contexts/uiConfigContext/uiConfigContext.tsx +17 -29
  196. package/src/contexts/userIdentityContext/__tests__/userIdentityContext.test.tsx +5 -5
  197. package/src/contexts/userIdentityContext/userIdentityContext.tsx +7 -6
  198. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +7 -7
  199. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +4 -2
  200. package/src/hooks/CustomerSupportHandoff/useCustomerSupportHandoff.ts +4 -2
  201. package/src/hooks/Search/__tests__/useSearch.test.tsx +14 -8
  202. package/src/hooks/WidgetInteraction/useWidgetInteraction.ts +3 -2
  203. package/src/hooks/WidgetInteraction/utils.ts +3 -1
  204. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +59 -9
  205. package/src/services/amplitudeService/amplitudeService.ts +27 -6
  206. package/src/services/ga4ProjectionService/ga4ProjectionService.ts +3 -1
  207. package/src/services/userIdentityService/userIdentityService.ts +8 -8
@@ -3,17 +3,17 @@ const require_logger = require('../../application/logging/logger.cjs');
3
3
  const require_localStorageContext = require('../localStorageContext/localStorageContext.cjs');
4
4
  require('../localStorageContext/index.cjs');
5
5
  const require_enviveConfigContext = require('../enviveConfigContext/enviveConfigContext.cjs');
6
+ require('../enviveConfigContext/index.cjs');
6
7
  const require_featureFlagServiceContext = require('../featureFlagServiceContext/featureFlagServiceContext.cjs');
7
8
  const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
8
9
  require('../amplitudeContext/index.cjs');
9
- require('../enviveConfigContext/index.cjs');
10
- const require_enviveConfigService = require('../../services/enviveConfigService/enviveConfigService.cjs');
11
- const require_userIdentityService = require('../../services/userIdentityService/userIdentityService.cjs');
12
- require('../../services/userIdentityService/index.cjs');
13
10
  const require_graphqlContext = require('../graphqlContext/graphqlContext.cjs');
14
11
  const require_newOrgConfigContext = require('../newOrgConfigContext/newOrgConfigContext.cjs');
15
12
  const require_enviveCssContext = require('../enviveCssContext/enviveCssContext.cjs');
16
13
  require('../enviveCssContext/index.cjs');
14
+ const require_enviveConfigService = require('../../services/enviveConfigService/enviveConfigService.cjs');
15
+ const require_userIdentityService = require('../../services/userIdentityService/userIdentityService.cjs');
16
+ require('../../services/userIdentityService/index.cjs');
17
17
  require('../featureFlagServiceContext/index.cjs');
18
18
  require('../graphqlContext/index.cjs');
19
19
  require('../newOrgConfigContext/index.cjs');
@@ -31,14 +31,12 @@ const require_widgetConfigContext = require('../widgetConfigContext/widgetConfig
31
31
  require('../widgetConfigContext/index.cjs');
32
32
  const require_pageContext = require('../pageContext/pageContext.cjs');
33
33
  require('../pageContext/index.cjs');
34
- const require_uiConfigContext = require('../uiConfigContext/uiConfigContext.cjs');
35
- require('../uiConfigContext/index.cjs');
36
34
  const require_WindowChatToggleBinder = require('./WindowChatToggleBinder.cjs');
37
35
  let react = require("react");
38
36
  let react_jsx_runtime = require("react/jsx-runtime");
39
37
 
40
38
  //#region src/contexts/enviveContext/enviveContext.tsx
41
- const EnviveContext = (0, react.createContext)(null);
39
+ const logger = new require_logger.default("enviveContext");
42
40
  const SearchAgentWrapper = ({ children, enabledAgents }) => {
43
41
  if (!enabledAgents.includes(require_contexts_enviveContext_types.EnviveAgent.SearchAgent)) return children;
44
42
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_searchContext.SearchProvider, { children });
@@ -54,8 +52,21 @@ const SalesAgentWrapper = ({ children, enabledAgents, previewMode, showDebugBar,
54
52
  })
55
53
  });
56
54
  };
57
- const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabledAgents, enviveConfigService: inputEnviveConfigService, featureFlagService: inputFeatureFlagService, amplitudeService: inputAmplitudeService, userIdentityService: inputUserIdentityService, mockV3ConfigToDeprecatedConfig = false, requestV3Config = false, mockSalesAgentData, hardcopyOverride, ...config }) => {
55
+ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabledAgents, enviveConfigService: inputEnviveConfigService, featureFlagService: inputFeatureFlagService, amplitudeService: inputAmplitudeService, userIdentityService: inputUserIdentityService, mockV3ConfigToDeprecatedConfig = false, requestV3Config = false, mockSalesAgentData, hardcopyOverride, extensionService, ...config }) => {
58
56
  const [userId, setUserId] = (0, react.useState)("");
57
+ const didReportSuccessRef = (0, react.useRef)(false);
58
+ const invokeExtensionCallback = (0, react.useCallback)((callback) => {
59
+ if (!callback) return;
60
+ Promise.resolve(callback()).catch((error) => {
61
+ logger.logDebug("Extension status callback failed", error);
62
+ });
63
+ }, []);
64
+ const invokeExtensionErrorCallback = (0, react.useCallback)((error) => {
65
+ if (!extensionService?.onInjectionError) return;
66
+ Promise.resolve(extensionService.onInjectionError(error)).catch((callbackError) => {
67
+ logger.logDebug("Extension error callback failed", callbackError);
68
+ });
69
+ }, [extensionService]);
59
70
  const userIdService = (0, react.useMemo)(() => inputUserIdentityService ?? new require_userIdentityService.UserIdentityService({ apiKey: config?.amplitudeApiKey || "" }), [config?.amplitudeApiKey, inputUserIdentityService]);
60
71
  (0, react.useEffect)(() => {
61
72
  const fetchUserId = async () => {
@@ -71,22 +82,42 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
71
82
  const source = "app";
72
83
  const [enviveServiceConfig, setEnviveServiceConfig] = (0, react.useState)(null);
73
84
  (0, react.useEffect)(() => {
74
- (inputEnviveConfigService ?? new require_enviveConfigService.EnviveConfigService({
85
+ invokeExtensionCallback(extensionService?.onInjectionLoading);
86
+ const enviveConfigService = inputEnviveConfigService ?? new require_enviveConfigService.EnviveConfigService({
75
87
  baseUrl: config?.baseUrl || "",
76
88
  apiKey: config?.orgLevelApiKey || "",
77
89
  userId,
78
90
  namespace,
79
91
  source
80
- })).getEnviveConfig().then((newConfig) => {
81
- setEnviveServiceConfig(newConfig);
82
- return newConfig;
83
92
  });
93
+ const fetchEnviveConfig = async () => {
94
+ try {
95
+ setEnviveServiceConfig(await enviveConfigService.getEnviveConfig());
96
+ } catch (error) {
97
+ const resolvedError = error instanceof Error ? error : /* @__PURE__ */ new Error("Failed to load envive config");
98
+ logger.logError("Failed to initialize EnviveProvider", resolvedError);
99
+ invokeExtensionErrorCallback(resolvedError);
100
+ }
101
+ };
102
+ fetchEnviveConfig();
84
103
  }, [
85
104
  config,
86
105
  userId,
87
106
  namespace,
88
107
  source,
89
- inputEnviveConfigService
108
+ inputEnviveConfigService,
109
+ extensionService,
110
+ invokeExtensionCallback,
111
+ invokeExtensionErrorCallback
112
+ ]);
113
+ (0, react.useEffect)(() => {
114
+ if (!enviveServiceConfig || didReportSuccessRef.current) return;
115
+ didReportSuccessRef.current = true;
116
+ invokeExtensionCallback(extensionService?.onInjectionSuccess);
117
+ }, [
118
+ enviveServiceConfig,
119
+ extensionService,
120
+ invokeExtensionCallback
90
121
  ]);
91
122
  const enviveConfig = (0, react.useMemo)(() => ({
92
123
  ...config,
@@ -94,45 +125,43 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
94
125
  orgShortName: enviveServiceConfig?.org?.org?.short_name || "",
95
126
  orgId: enviveServiceConfig?.org?.org?.id || ""
96
127
  }), [config, enviveServiceConfig]);
97
- require_logger.default.logDebug("enviveContext: enviveServiceConfig", enviveServiceConfig, config);
98
- require_logger.default.logDebug("enviveContext: enviveConfig", enviveConfig);
128
+ logger.logDebug("enviveContext: enviveServiceConfig", enviveServiceConfig, config);
129
+ logger.logDebug("enviveContext: enviveConfig", enviveConfig);
99
130
  const featureFlagService = (0, react.useMemo)(() => inputFeatureFlagService ?? new require_featureFlagServiceContext.FeatureFlagService(enviveConfig.featureGates), [enviveConfig.featureGates, inputFeatureFlagService]);
100
131
  if (enviveServiceConfig === null || enviveConfig === null) return null;
101
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EnviveContext.Provider, {
102
- value: null,
103
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_enviveConfigContext.EnviveConfigProvider, {
104
- ...enviveConfig,
105
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_graphqlContext.GraphQLProvider, {
106
- mockV3ConfigToDeprecatedConfig,
107
- requestV3Config,
108
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_newOrgConfigContext.NewOrgConfigProvider, {
109
- overrideConfig,
110
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_localStorageContext.LocalStorageProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_featureFlagServiceContext.FeatureFlagServiceProvider, {
111
- featureFlagService,
112
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_userIdentityContext.UserIdentityProvider, {
113
- userIdService,
114
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_amplitudeContext.AmplitudeProvider, {
115
- externalAmplitudeService: inputAmplitudeService,
116
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_pageContext.PageProvider, {
117
- previewMode,
118
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_uiConfigContext.UiConfigProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_widgetConfigContext.WidgetConfigProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_hardcopyContext.HardcopyProvider, {
119
- hardcopyOverride,
120
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_enviveCssContext.EnviveCssProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(SearchAgentWrapper, {
132
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_enviveConfigContext.EnviveConfigProvider, {
133
+ ...enviveConfig,
134
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_graphqlContext.GraphQLProvider, {
135
+ mockV3ConfigToDeprecatedConfig,
136
+ requestV3Config,
137
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_newOrgConfigContext.NewOrgConfigProvider, {
138
+ overrideConfig,
139
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_localStorageContext.LocalStorageProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_featureFlagServiceContext.FeatureFlagServiceProvider, {
140
+ featureFlagService,
141
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_userIdentityContext.UserIdentityProvider, {
142
+ userIdService,
143
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_amplitudeContext.AmplitudeProvider, {
144
+ externalAmplitudeService: inputAmplitudeService,
145
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_pageContext.PageProvider, {
146
+ previewMode,
147
+ onUrlResolverNotReady: extensionService?.onInjectionError,
148
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_widgetConfigContext.WidgetConfigProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_hardcopyContext.HardcopyProvider, {
149
+ hardcopyOverride,
150
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_enviveCssContext.EnviveCssProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(SearchAgentWrapper, {
151
+ enabledAgents,
152
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_WindowChatToggleBinder.WindowChatToggleBinder, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SalesAgentWrapper, {
121
153
  enabledAgents,
122
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_WindowChatToggleBinder.WindowChatToggleBinder, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SalesAgentWrapper, {
123
- enabledAgents,
124
- showDebugBar: config.enviveOn || false,
125
- previewMode,
126
- mockSalesAgentData,
127
- children
128
- })]
129
- }) })
130
- }) }) })
131
- })
154
+ showDebugBar: config.enviveOn || false,
155
+ previewMode,
156
+ mockSalesAgentData,
157
+ children
158
+ })]
159
+ }) })
160
+ }) })
132
161
  })
133
162
  })
134
- }) })
135
- })
163
+ })
164
+ }) })
136
165
  })
137
166
  })
138
167
  });
@@ -140,4 +169,4 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
140
169
 
141
170
  //#endregion
142
171
  exports.EnviveProvider = EnviveProvider;
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5janMiLCJuYW1lcyI6WyJTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiIsIkVudml2ZUFnZW50IiwiU2VhcmNoUHJvdmlkZXIiLCJTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4iLCJTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciIsIlNhbGVzQWdlbnRQcm92aWRlciIsIkVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiIsIlVzZXJJZGVudGl0eVNlcnZpY2UiLCJFbnZpdmVDb25maWdTZXJ2aWNlIiwiRmVhdHVyZUZsYWdTZXJ2aWNlIiwiRW52aXZlQ29uZmlnUHJvdmlkZXIiLCJHcmFwaFFMUHJvdmlkZXIiLCJOZXdPcmdDb25maWdQcm92aWRlciIsIkxvY2FsU3RvcmFnZVByb3ZpZGVyIiwiRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIiLCJVc2VySWRlbnRpdHlQcm92aWRlciIsIkFtcGxpdHVkZVByb3ZpZGVyIiwiUGFnZVByb3ZpZGVyIiwiVWlDb25maWdQcm92aWRlciIsIldpZGdldENvbmZpZ1Byb3ZpZGVyIiwiSGFyZGNvcHlQcm92aWRlciIsIkVudml2ZUNzc1Byb3ZpZGVyIiwiV2luZG93Q2hhdFRvZ2dsZUJpbmRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9lbnZpdmVDb250ZXh0L2Vudml2ZUNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWN0Tm9kZSwgY3JlYXRlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEVudml2ZUNvbmZpZ1NlcnZpY2UsIEVudml2ZVNlcnZpY2VDb25maWcgfSBmcm9tICdzcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgTG9nZ2VyIGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9sb2dnaW5nL2xvZ2dlcic7XG5pbXBvcnQgeyBVc2VySWRlbnRpdHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3VzZXJJZGVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgQW1wbGl0dWRlUHJvdmlkZXIgfSBmcm9tICcuLi9hbXBsaXR1ZGVDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNvbmZpZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVDc3NQcm92aWRlciB9IGZyb20gJy4uL2Vudml2ZUNzc0NvbnRleHQnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlLCBGZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uL2ZlYXR1cmVGbGFnU2VydmljZUNvbnRleHQnO1xuaW1wb3J0IHsgR3JhcGhRTFByb3ZpZGVyLCBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnLi4vZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlUHJvdmlkZXIgfSBmcm9tICcuLi9sb2NhbFN0b3JhZ2VDb250ZXh0JztcbmltcG9ydCB7IE5ld09yZ0NvbmZpZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vbmV3T3JnQ29uZmlnQ29udGV4dCc7XG5pbXBvcnQgeyBVc2VySWRlbnRpdHlQcm92aWRlciB9IGZyb20gJy4uL3VzZXJJZGVudGl0eUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQWdlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFByb3ZpZGVyIH0gZnJvbSAnLi4vc2VhcmNoQ29udGV4dCc7XG5pbXBvcnQgeyBTYWxlc0FnZW50UHJvdmlkZXIgfSBmcm9tICcuLi9zYWxlc0FnZW50Q29udGV4dC9zYWxlc0FnZW50Q29udGV4dCc7XG5pbXBvcnQgeyBTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciB9IGZyb20gJy4uL3N5c3RlbVNldHRpbmdzQ29udGV4dCc7XG5pbXBvcnQgeyBIYXJkY29weVByb3ZpZGVyLCBIYXJkY29weVJlc3BvbnNlIH0gZnJvbSAnLi4vaGFyZGNvcHlDb250ZXh0JztcbmltcG9ydCB7IFdpZGdldFR5cGVWMyB9IGZyb20gJy4uL3R5cGVzVjMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi93aWRnZXRDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFBhZ2VQcm92aWRlciB9IGZyb20gJy4uL3BhZ2VDb250ZXh0JztcbmltcG9ydCB7IFVpQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi91aUNvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IEVudml2ZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PG51bGw+KG51bGwpO1xuXG5pbnRlcmZhY2UgQWdlbnRXcmFwcGVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBlbmFibGVkQWdlbnRzOiBFbnZpdmVBZ2VudFtdO1xufVxuXG5pbnRlcmZhY2UgRW52aXZlUHJvdmlkZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgYW1wbGl0dWRlQXBpS2V5Pzogc3RyaW5nO1xuICBkYXRhUmVzaWRlbmN5Pzogc3RyaW5nO1xuICBlbnY/OiBzdHJpbmc7XG4gIGJhc2VVcmw/OiBzdHJpbmc7XG4gIHJlYWN0QXBwTmFtZT86IHN0cmluZztcbiAgY2RuVXJsPzogc3RyaW5nO1xuICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xuICBvcmdMZXZlbEFwaUtleT86IHN0cmluZztcbiAgb3JnU2hvcnROYW1lPzogc3RyaW5nO1xuICBpZGVudGlmeWluZ1ByZWZpeDogc3RyaW5nO1xuICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gIHZhcmlhbnRVcmxPdmVycmlkZT86IHN0cmluZztcbiAgdmFyaWFudEluZm9PdmVycmlkZT86IGFueTtcbiAgc2hvdz86IGJvb2xlYW47XG4gIGVudml2ZU9uPzogYm9vbGVhbjtcbiAgcHVibGljS2V5Pzogc3RyaW5nO1xuICBmZWF0dXJlR2F0ZXM/OiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdOyAvLyBOZXcgcHJvcCBmb3IgZmVhdHVyZSBnYXRlc1xuICBmZWF0dXJlRmxhZ1NlcnZpY2U/OiBGZWF0dXJlRmxhZ1NlcnZpY2U7XG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U/OiBFbnZpdmVDb25maWdTZXJ2aWNlO1xuICBhbXBsaXR1ZGVTZXJ2aWNlPzogQW1wbGl0dWRlU2VydmljZTtcbiAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPzogYm9vbGVhbjtcbiAgcmVxdWVzdFYzQ29uZmlnPzogYm9vbGVhbjtcbiAgdXNlcklkZW50aXR5U2VydmljZT86IFVzZXJJZGVudGl0eVNlcnZpY2U7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgb3ZlcnJpZGVDb25maWc/OiBHcmFwaFFsQ29uZmlnVmFsdWVzO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG4gIGhhcmRjb3B5T3ZlcnJpZGU/OiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+Pjtcbn1cblxuY29uc3QgU2VhcmNoQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxBZ2VudFdyYXBwZXJQcm9wcz4gPSAoeyBjaGlsZHJlbiwgZW5hYmxlZEFnZW50cyB9KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TZWFyY2hBZ2VudCkpIHtcbiAgICByZXR1cm4gY2hpbGRyZW47XG4gIH1cbiAgcmV0dXJuIDxTZWFyY2hQcm92aWRlcj57Y2hpbGRyZW59PC9TZWFyY2hQcm92aWRlcj47XG59O1xuXG5pbnRlcmZhY2UgU2FsZXNBZ2VudFdyYXBwZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICBzaG93RGVidWdCYXI6IGJvb2xlYW47XG4gIG1vY2tTYWxlc0FnZW50RGF0YT86IGFueTtcbn1cblxuY29uc3QgU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIGVuYWJsZWRBZ2VudHMsXG4gIHByZXZpZXdNb2RlLFxuICBzaG93RGVidWdCYXIsXG4gIG1vY2tTYWxlc0FnZW50RGF0YSxcbn0pID0+IHtcbiAgaWYgKCFlbmFibGVkQWdlbnRzLmluY2x1ZGVzKEVudml2ZUFnZW50LlNhbGVzQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiAoXG4gICAgPFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIHNob3dEZWJ1Z0Jhcj17c2hvd0RlYnVnQmFyfT5cbiAgICAgIDxTYWxlc0FnZW50UHJvdmlkZXJcbiAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICBtb2NrRGF0YT17bW9ja1NhbGVzQWdlbnREYXRhfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1NhbGVzQWdlbnRQcm92aWRlcj5cbiAgICA8L1N5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBwcmV2aWV3TW9kZSA9IGZhbHNlLFxuICBvdmVycmlkZUNvbmZpZyxcbiAgZW5hYmxlZEFnZW50cyxcbiAgZW52aXZlQ29uZmlnU2VydmljZTogaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlLFxuICBmZWF0dXJlRmxhZ1NlcnZpY2U6IGlucHV0RmVhdHVyZUZsYWdTZXJ2aWNlLFxuICBhbXBsaXR1ZGVTZXJ2aWNlOiBpbnB1dEFtcGxpdHVkZVNlcnZpY2UsXG4gIHVzZXJJZGVudGl0eVNlcnZpY2U6IGlucHV0VXNlcklkZW50aXR5U2VydmljZSxcbiAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnID0gZmFsc2UsXG4gIHJlcXVlc3RWM0NvbmZpZyA9IGZhbHNlLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG4gIGhhcmRjb3B5T3ZlcnJpZGUsXG4gIC4uLmNvbmZpZ1xufSkgPT4ge1xuICBjb25zdCBbdXNlcklkLCBzZXRVc2VySWRdID0gdXNlU3RhdGU8c3RyaW5nPignJyk7XG5cbiAgY29uc3QgdXNlcklkU2VydmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIGlucHV0VXNlcklkZW50aXR5U2VydmljZSA/P1xuICAgICAgbmV3IFVzZXJJZGVudGl0eVNlcnZpY2UoeyBhcGlLZXk6IGNvbmZpZz8uYW1wbGl0dWRlQXBpS2V5IHx8ICcnIH0pLFxuICAgIFtjb25maWc/LmFtcGxpdHVkZUFwaUtleSwgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlXSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGZldGNoVXNlcklkID0gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgaWQgPSBhd2FpdCB1c2VySWRTZXJ2aWNlLmdldFVzZXJJZE9yRGVmYXVsdCgpO1xuICAgICAgc2V0VXNlcklkKGlkKTtcbiAgICB9O1xuXG4gICAgZmV0Y2hVc2VySWQoKTtcbiAgfSwgW2NvbmZpZy5hbXBsaXR1ZGVBcGlLZXksIGlucHV0VXNlcklkZW50aXR5U2VydmljZSwgdXNlcklkU2VydmljZV0pO1xuXG4gIGNvbnN0IG5hbWVzcGFjZSA9ICdzcGlmZnktcmVhY3QtY29tcG9uZW50cyc7IC8vIFRPRE86IFNob3VsZCB0aGlzIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBjdXJyZW50IG5hbWVzcGFjZT9cbiAgY29uc3Qgc291cmNlID0gJ2FwcCc7IC8vIFRPRE86IE1ha2UgdGhpcyBkZXBlbmRlbnQgdXBvbiB0aGUgXCJzcGlmZnlfb25cIiBxdWVyeSBwYXJhbVxuICBjb25zdCBbZW52aXZlU2VydmljZUNvbmZpZywgc2V0RW52aXZlU2VydmljZUNvbmZpZ10gPSB1c2VTdGF0ZTxFbnZpdmVTZXJ2aWNlQ29uZmlnIHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBSZWFsbHkgbm90IGhhcHB5IHdpdGggdGhpcyBhcHByb2FjaCwgYnV0IEknbSBzZWVpbmcgNDI5IGVycm9ycyBpbiB0aGUgdGVzdHNcbiAgICAvLyBiZWNhdXNlIG9mIHRoZSByYXRlIGxpbWl0aW5nIG9uIHRoZSBBUEkuXG4gICAgY29uc3QgZW52aXZlQ29uZmlnU2VydmljZSA9XG4gICAgICBpbnB1dEVudml2ZUNvbmZpZ1NlcnZpY2UgPz9cbiAgICAgIG5ldyBFbnZpdmVDb25maWdTZXJ2aWNlKHtcbiAgICAgICAgYmFzZVVybDogY29uZmlnPy5iYXNlVXJsIHx8ICcnLFxuICAgICAgICBhcGlLZXk6IGNvbmZpZz8ub3JnTGV2ZWxBcGlLZXkgfHwgJycsXG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UgfHwgJycsXG4gICAgICAgIHNvdXJjZTogc291cmNlIHx8ICcnLFxuICAgICAgfSk7XG4gICAgZW52aXZlQ29uZmlnU2VydmljZS5nZXRFbnZpdmVDb25maWcoKS50aGVuKG5ld0NvbmZpZyA9PiB7XG4gICAgICBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnKG5ld0NvbmZpZyk7XG4gICAgICByZXR1cm4gbmV3Q29uZmlnO1xuICAgIH0pO1xuICB9LCBbY29uZmlnLCB1c2VySWQsIG5hbWVzcGFjZSwgc291cmNlLCBpbnB1dEVudml2ZUNvbmZpZ1NlcnZpY2VdKTtcblxuICBjb25zdCBlbnZpdmVDb25maWcgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBmZWF0dXJlR2F0ZXM6IGVudml2ZVNlcnZpY2VDb25maWc/LmdhdGVzIHx8IFtdLFxuICAgICAgb3JnU2hvcnROYW1lOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5vcmc/Lm9yZz8uc2hvcnRfbmFtZSB8fCAnJyxcbiAgICAgIG9yZ0lkOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5vcmc/Lm9yZz8uaWQgfHwgJycsXG4gICAgfSksXG4gICAgW2NvbmZpZywgZW52aXZlU2VydmljZUNvbmZpZ10sXG4gICk7XG4gIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29udGV4dDogZW52aXZlU2VydmljZUNvbmZpZycsIGVudml2ZVNlcnZpY2VDb25maWcsIGNvbmZpZyk7XG4gIExvZ2dlci5sb2dEZWJ1ZygnZW52aXZlQ29udGV4dDogZW52aXZlQ29uZmlnJywgZW52aXZlQ29uZmlnKTtcblxuICBjb25zdCBmZWF0dXJlRmxhZ1NlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+IGlucHV0RmVhdHVyZUZsYWdTZXJ2aWNlID8/IG5ldyBGZWF0dXJlRmxhZ1NlcnZpY2UoZW52aXZlQ29uZmlnLmZlYXR1cmVHYXRlcyksXG4gICAgW2Vudml2ZUNvbmZpZy5mZWF0dXJlR2F0ZXMsIGlucHV0RmVhdHVyZUZsYWdTZXJ2aWNlXSxcbiAgKTtcblxuICBpZiAoZW52aXZlU2VydmljZUNvbmZpZyA9PT0gbnVsbCB8fCBlbnZpdmVDb25maWcgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPEVudml2ZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e251bGx9PlxuICAgICAgPEVudml2ZUNvbmZpZ1Byb3ZpZGVyIHsuLi5lbnZpdmVDb25maWd9PlxuICAgICAgICA8R3JhcGhRTFByb3ZpZGVyXG4gICAgICAgICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPXttb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWd9XG4gICAgICAgICAgcmVxdWVzdFYzQ29uZmlnPXtyZXF1ZXN0VjNDb25maWd9XG4gICAgICAgID5cbiAgICAgICAgICA8TmV3T3JnQ29uZmlnUHJvdmlkZXIgb3ZlcnJpZGVDb25maWc9e292ZXJyaWRlQ29uZmlnfT5cbiAgICAgICAgICAgIDxMb2NhbFN0b3JhZ2VQcm92aWRlcj5cbiAgICAgICAgICAgICAgPEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIGZlYXR1cmVGbGFnU2VydmljZT17ZmVhdHVyZUZsYWdTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17dXNlcklkU2VydmljZX0+XG4gICAgICAgICAgICAgICAgICA8QW1wbGl0dWRlUHJvdmlkZXIgZXh0ZXJuYWxBbXBsaXR1ZGVTZXJ2aWNlPXtpbnB1dEFtcGxpdHVkZVNlcnZpY2V9PlxuICAgICAgICAgICAgICAgICAgICA8UGFnZVByb3ZpZGVyIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFVpQ29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8V2lkZ2V0Q29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5T3ZlcnJpZGU9e2hhcmRjb3B5T3ZlcnJpZGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxFbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2hBZ2VudFdyYXBwZXIgZW5hYmxlZEFnZW50cz17ZW5hYmxlZEFnZW50c30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTYWxlc0FnZW50V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlYnVnQmFyPXtjb25maWcuZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2tTYWxlc0FnZW50RGF0YT17bW9ja1NhbGVzQWdlbnREYXRhfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NhbGVzQWdlbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9FbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IYXJkY29weVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L1VpQ29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvUGFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgPC9BbXBsaXR1ZGVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L1VzZXJJZGVudGl0eVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9Mb2NhbFN0b3JhZ2VQcm92aWRlcj5cbiAgICAgICAgICA8L05ld09yZ0NvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICA8L0dyYXBoUUxQcm92aWRlcj5cbiAgICAgIDwvRW52aXZlQ29uZmlnUHJvdmlkZXI+XG4gICAgPC9FbnZpdmVDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQSxNQUFNLHlDQUFvQyxLQUFLO0FBcUMvQyxNQUFNQSxzQkFBbUQsRUFBRSxVQUFVLG9CQUFvQjtBQUN2RixLQUFJLENBQUMsY0FBYyxTQUFTQyxpREFBWSxZQUFZLENBQ2xELFFBQU87QUFFVCxRQUFPLDJDQUFDQyx3Q0FBZ0IsV0FBMEI7O0FBU3BELE1BQU1DLHFCQUF1RCxFQUMzRCxVQUNBLGVBQ0EsYUFDQSxjQUNBLHlCQUNJO0FBQ0osS0FBSSxDQUFDLGNBQWMsU0FBU0YsaURBQVksV0FBVyxDQUNqRCxRQUFPO0FBRVQsUUFDRSwyQ0FBQ0c7RUFBNEM7WUFDM0MsMkNBQUNDO0dBQ2M7R0FDYixVQUFVO0dBRVQ7SUFDa0I7R0FDUzs7QUFJcEMsTUFBYUMsa0JBQWlELEVBQzVELFVBQ0EsY0FBYyxPQUNkLGdCQUNBLGVBQ0EscUJBQXFCLDBCQUNyQixvQkFBb0IseUJBQ3BCLGtCQUFrQix1QkFDbEIscUJBQXFCLDBCQUNyQixpQ0FBaUMsT0FDakMsa0JBQWtCLE9BQ2xCLG9CQUNBLGtCQUNBLEdBQUcsYUFDQztDQUNKLE1BQU0sQ0FBQyxRQUFRLGlDQUE4QixHQUFHO0NBRWhELE1BQU0seUNBRUYsNEJBQ0EsSUFBSUMsZ0RBQW9CLEVBQUUsUUFBUSxRQUFRLG1CQUFtQixJQUFJLENBQUMsRUFDcEUsQ0FBQyxRQUFRLGlCQUFpQix5QkFBeUIsQ0FDcEQ7QUFFRCw0QkFBZ0I7RUFDZCxNQUFNLGNBQWMsWUFBWTtBQUU5QixhQURXLE1BQU0sY0FBYyxvQkFBb0IsQ0FDdEM7O0FBR2YsZUFBYTtJQUNaO0VBQUMsT0FBTztFQUFpQjtFQUEwQjtFQUFjLENBQUM7Q0FFckUsTUFBTSxZQUFZO0NBQ2xCLE1BQU0sU0FBUztDQUNmLE1BQU0sQ0FBQyxxQkFBcUIsOENBQStELEtBQUs7QUFFaEcsNEJBQWdCO0FBWWQsR0FSRSw0QkFDQSxJQUFJQyxnREFBb0I7R0FDdEIsU0FBUyxRQUFRLFdBQVc7R0FDNUIsUUFBUSxRQUFRLGtCQUFrQjtHQUNsQztHQUNXO0dBQ0g7R0FDVCxDQUFDLEVBQ2dCLGlCQUFpQixDQUFDLE1BQUssY0FBYTtBQUN0RCwwQkFBdUIsVUFBVTtBQUNqQyxVQUFPO0lBQ1A7SUFDRDtFQUFDO0VBQVE7RUFBUTtFQUFXO0VBQVE7RUFBeUIsQ0FBQztDQUVqRSxNQUFNLHlDQUNHO0VBQ0wsR0FBRztFQUNILGNBQWMscUJBQXFCLFNBQVMsRUFBRTtFQUM5QyxjQUFjLHFCQUFxQixLQUFLLEtBQUssY0FBYztFQUMzRCxPQUFPLHFCQUFxQixLQUFLLEtBQUssTUFBTTtFQUM3QyxHQUNELENBQUMsUUFBUSxvQkFBb0IsQ0FDOUI7QUFDRCx3QkFBTyxTQUFTLHNDQUFzQyxxQkFBcUIsT0FBTztBQUNsRix3QkFBTyxTQUFTLCtCQUErQixhQUFhO0NBRTVELE1BQU0sOENBQ0UsMkJBQTJCLElBQUlDLHFEQUFtQixhQUFhLGFBQWEsRUFDbEYsQ0FBQyxhQUFhLGNBQWMsd0JBQXdCLENBQ3JEO0FBRUQsS0FBSSx3QkFBd0IsUUFBUSxpQkFBaUIsS0FDbkQsUUFBTztBQUdULFFBQ0UsMkNBQUMsY0FBYztFQUFTLE9BQU87WUFDN0IsMkNBQUNDO0dBQXFCLEdBQUk7YUFDeEIsMkNBQUNDO0lBQ2lDO0lBQ2Y7Y0FFakIsMkNBQUNDO0tBQXFDO2VBQ3BDLDJDQUFDQyw4REFDQywyQ0FBQ0M7TUFBK0M7Z0JBQzlDLDJDQUFDQztPQUFvQztpQkFDbkMsMkNBQUNDO1FBQWtCLDBCQUEwQjtrQkFDM0MsMkNBQUNDO1NBQTBCO21CQUN6QiwyQ0FBQ0Msc0RBQ0MsMkNBQUNDLDhEQUNDLDJDQUFDQztVQUFtQztvQkFDbEMsMkNBQUNDLHdEQUNDLDRDQUFDO1dBQWtDO3NCQUNqQywyQ0FBQ0MsMERBQXlCLEVBQzFCLDJDQUFDO1lBQ2dCO1lBQ2YsY0FBYyxPQUFPLFlBQVk7WUFDcEI7WUFDTztZQUVuQjthQUNpQjtZQUNELEdBQ0g7V0FDSCxHQUNFLEdBQ047VUFDTjtTQUNHO1FBQ0M7T0FDSSxHQUNSO01BQ0Y7S0FDUDtJQUNHO0dBQ0EifQ==
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiIsIkVudml2ZUFnZW50IiwiU2VhcmNoUHJvdmlkZXIiLCJTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4iLCJTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciIsIlNhbGVzQWdlbnRQcm92aWRlciIsIkVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiIsIlVzZXJJZGVudGl0eVNlcnZpY2UiLCJFbnZpdmVDb25maWdTZXJ2aWNlIiwiRmVhdHVyZUZsYWdTZXJ2aWNlIiwiRW52aXZlQ29uZmlnUHJvdmlkZXIiLCJHcmFwaFFMUHJvdmlkZXIiLCJOZXdPcmdDb25maWdQcm92aWRlciIsIkxvY2FsU3RvcmFnZVByb3ZpZGVyIiwiRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIiLCJVc2VySWRlbnRpdHlQcm92aWRlciIsIkFtcGxpdHVkZVByb3ZpZGVyIiwiUGFnZVByb3ZpZGVyIiwiV2lkZ2V0Q29uZmlnUHJvdmlkZXIiLCJIYXJkY29weVByb3ZpZGVyIiwiRW52aXZlQ3NzUHJvdmlkZXIiLCJXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICBvbkluamVjdGlvbkxvYWRpbmc/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+XG4gICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZW52aXZlQ29udGV4dC9lbnZpdmVDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEVudml2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgeyBVc2VySWRlbnRpdHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3VzZXJJZGVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnLi4vZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQWdlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbnRlcmZhY2UgQWdlbnRXcmFwcGVyUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cbmludGVyZmFjZSBFbnZpdmVQcm92aWRlclByb3BzIGV4dGVuZHMgQWdlbnRXcmFwcGVyUHJvcHMge1xuICAgIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgICBkYXRhUmVzaWRlbmN5Pzogc3RyaW5nO1xuICAgIGVudj86IHN0cmluZztcbiAgICBiYXNlVXJsPzogc3RyaW5nO1xuICAgIHJlYWN0QXBwTmFtZT86IHN0cmluZztcbiAgICBjZG5Vcmw/OiBzdHJpbmc7XG4gICAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgICBvcmdMZXZlbEFwaUtleT86IHN0cmluZztcbiAgICBvcmdTaG9ydE5hbWU/OiBzdHJpbmc7XG4gICAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgICBmZWF0dXJlT3ZlcnJpZGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47XG4gICAgdmFyaWFudFVybE92ZXJyaWRlPzogc3RyaW5nO1xuICAgIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gICAgc2hvdz86IGJvb2xlYW47XG4gICAgZW52aXZlT24/OiBib29sZWFuO1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICBmZWF0dXJlR2F0ZXM/OiBPcmdDb25maWdGZWF0dXJlR2F0ZVtdO1xuICAgIGZlYXR1cmVGbGFnU2VydmljZT86IEZlYXR1cmVGbGFnU2VydmljZTtcbiAgICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgICBhbXBsaXR1ZGVTZXJ2aWNlPzogQW1wbGl0dWRlU2VydmljZTtcbiAgICBtb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWc/OiBib29sZWFuO1xuICAgIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gICAgdXNlcklkZW50aXR5U2VydmljZT86IFVzZXJJZGVudGl0eVNlcnZpY2U7XG4gICAgcHJldmlld01vZGU/OiBib29sZWFuO1xuICAgIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG4gICAgaGFyZGNvcHlPdmVycmlkZT86IFBhcnRpYWw8UmVjb3JkPFdpZGdldFR5cGVWMywgSGFyZGNvcHlSZXNwb25zZT4+O1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+O1xuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFVQSxJQUFJLG9CQUFvQjtDQUFDO09BQUc7T0FBQTtDQUFBO0FBQzVCLElBQUksc0JBQW1CO0NBQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7Q0FBQTtBQUN2QixJQUFXLGlCQUFpQjtDQUFDO09BQUc7T0FBQSxNQUFBO0NBQUEifQ==
54
+ export { EnviveProvider, ExtensionStatusCallbacks };
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5kLmN0cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZW52aXZlQ29udGV4dC9lbnZpdmVDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgT3JnQ29uZmlnRmVhdHVyZUdhdGUgfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzL2FwaS9vcmdDb25maWdSZXN1bHRzJztcbmltcG9ydCB7IEVudml2ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvZW52aXZlQ29uZmlnU2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FtcGxpdHVkZVNlcnZpY2UvYW1wbGl0dWRlU2VydmljZSc7XG5pbXBvcnQgeyBVc2VySWRlbnRpdHlTZXJ2aWNlIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3VzZXJJZGVudGl0eVNlcnZpY2UnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdTZXJ2aWNlIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFsQ29uZmlnVmFsdWVzIH0gZnJvbSAnLi4vZ3JhcGhxbENvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQWdlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbnRlcmZhY2UgQWdlbnRXcmFwcGVyUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uU3RhdHVzQ2FsbGJhY2tzIHtcbiAgICBvbkluamVjdGlvbkxvYWRpbmc/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgICBvbkluamVjdGlvblN1Y2Nlc3M/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgICBvbkluamVjdGlvbkVycm9yPzogKGVycm9yOiBFcnJvcikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG59XG5pbnRlcmZhY2UgRW52aXZlUHJvdmlkZXJQcm9wcyBleHRlbmRzIEFnZW50V3JhcHBlclByb3BzIHtcbiAgICBhbXBsaXR1ZGVBcGlLZXk/OiBzdHJpbmc7XG4gICAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgICBlbnY/OiBzdHJpbmc7XG4gICAgYmFzZVVybD86IHN0cmluZztcbiAgICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gICAgY2RuVXJsPzogc3RyaW5nO1xuICAgIGNvbnRleHRTb3VyY2U/OiBzdHJpbmc7XG4gICAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gICAgb3JnU2hvcnROYW1lPzogc3RyaW5nO1xuICAgIGlkZW50aWZ5aW5nUHJlZml4OiBzdHJpbmc7XG4gICAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICAgIHZhcmlhbnRVcmxPdmVycmlkZT86IHN0cmluZztcbiAgICB2YXJpYW50SW5mb092ZXJyaWRlPzogYW55O1xuICAgIHNob3c/OiBib29sZWFuO1xuICAgIGVudml2ZU9uPzogYm9vbGVhbjtcbiAgICBwdWJsaWNLZXk/OiBzdHJpbmc7XG4gICAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTtcbiAgICBmZWF0dXJlRmxhZ1NlcnZpY2U/OiBGZWF0dXJlRmxhZ1NlcnZpY2U7XG4gICAgZW52aXZlQ29uZmlnU2VydmljZT86IEVudml2ZUNvbmZpZ1NlcnZpY2U7XG4gICAgYW1wbGl0dWRlU2VydmljZT86IEFtcGxpdHVkZVNlcnZpY2U7XG4gICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPzogYm9vbGVhbjtcbiAgICByZXF1ZXN0VjNDb25maWc/OiBib29sZWFuO1xuICAgIHVzZXJJZGVudGl0eVNlcnZpY2U/OiBVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICAgIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgICBvdmVycmlkZUNvbmZpZz86IEdyYXBoUWxDb25maWdWYWx1ZXM7XG4gICAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xuICAgIGhhcmRjb3B5T3ZlcnJpZGU/OiBQYXJ0aWFsPFJlY29yZDxXaWRnZXRUeXBlVjMsIEhhcmRjb3B5UmVzcG9uc2U+PjtcbiAgICBleHRlbnNpb25TZXJ2aWNlPzogRXh0ZW5zaW9uU3RhdHVzQ2FsbGJhY2tzO1xufVxuZXhwb3J0IGRlY2xhcmUgY29uc3QgRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+O1xuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFVQSxJQUFJLG9CQUFvQjtDQUFDO09BQUc7T0FBQTtDQUFBO0FBQzVCLElBQVcsMkJBQVk7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDdkIsSUFBSSxzQkFBc0I7Q0FBQztPQUFLO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO0NBQUE7QUFDaEMsSUFBQSxpQkFBQTtDQUFBO09BQUE7T0FBQSxNQUFBO0NBQUEifQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5kLnRzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0cy9lbnZpdmVDb250ZXh0L2Vudml2ZUNvbnRleHQuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UgfSBmcm9tICcuLi9mZWF0dXJlRmxhZ1NlcnZpY2VDb250ZXh0JztcbmltcG9ydCB7IEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgSGFyZGNvcHlSZXNwb25zZSB9IGZyb20gJy4uL2hhcmRjb3B5Q29udGV4dCc7XG5pbXBvcnQgeyBXaWRnZXRUeXBlVjMgfSBmcm9tICcuLi90eXBlc1YzJztcbmludGVyZmFjZSBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICBlbmFibGVkQWdlbnRzOiBFbnZpdmVBZ2VudFtdO1xufVxuaW50ZXJmYWNlIEVudml2ZVByb3ZpZGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gICAgYW1wbGl0dWRlQXBpS2V5Pzogc3RyaW5nO1xuICAgIGRhdGFSZXNpZGVuY3k/OiBzdHJpbmc7XG4gICAgZW52Pzogc3RyaW5nO1xuICAgIGJhc2VVcmw/OiBzdHJpbmc7XG4gICAgcmVhY3RBcHBOYW1lPzogc3RyaW5nO1xuICAgIGNkblVybD86IHN0cmluZztcbiAgICBjb250ZXh0U291cmNlPzogc3RyaW5nO1xuICAgIG9yZ0xldmVsQXBpS2V5Pzogc3RyaW5nO1xuICAgIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgICBpZGVudGlmeWluZ1ByZWZpeDogc3RyaW5nO1xuICAgIGZlYXR1cmVPdmVycmlkZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gICAgdmFyaWFudEluZm9PdmVycmlkZT86IGFueTtcbiAgICBzaG93PzogYm9vbGVhbjtcbiAgICBlbnZpdmVPbj86IGJvb2xlYW47XG4gICAgcHVibGljS2V5Pzogc3RyaW5nO1xuICAgIGZlYXR1cmVHYXRlcz86IE9yZ0NvbmZpZ0ZlYXR1cmVHYXRlW107XG4gICAgZmVhdHVyZUZsYWdTZXJ2aWNlPzogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICAgIGVudml2ZUNvbmZpZ1NlcnZpY2U/OiBFbnZpdmVDb25maWdTZXJ2aWNlO1xuICAgIGFtcGxpdHVkZVNlcnZpY2U/OiBBbXBsaXR1ZGVTZXJ2aWNlO1xuICAgIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZz86IGJvb2xlYW47XG4gICAgcmVxdWVzdFYzQ29uZmlnPzogYm9vbGVhbjtcbiAgICB1c2VySWRlbnRpdHlTZXJ2aWNlPzogVXNlcklkZW50aXR5U2VydmljZTtcbiAgICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gICAgb3ZlcnJpZGVDb25maWc/OiBHcmFwaFFsQ29uZmlnVmFsdWVzO1xuICAgIG1vY2tTYWxlc0FnZW50RGF0YT86IGFueTtcbiAgICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz47XG5leHBvcnQge307XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVVBLElBQUksb0JBQW9CO0NBQUM7T0FBRztPQUFBO0NBQUE7QUFDNUIsSUFBSSxzQkFBbUI7Q0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtPQUFBO09BQUE7T0FBQTtDQUFBO0FBQ3ZCLElBQVcsaUJBQWlCO0NBQUM7T0FBRztPQUFBLE1BQUE7Q0FBQSJ9
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,17 +2,17 @@ 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
- import { EnviveConfigService } from "../../services/enviveConfigService/enviveConfigService.js";
10
- import { UserIdentityService } from "../../services/userIdentityService/userIdentityService.js";
11
- import "../../services/userIdentityService/index.js";
12
9
  import { GraphQLProvider } from "../graphqlContext/graphqlContext.js";
13
10
  import { NewOrgConfigProvider } from "../newOrgConfigContext/newOrgConfigContext.js";
14
11
  import { EnviveCssProvider } from "../enviveCssContext/enviveCssContext.js";
15
12
  import "../enviveCssContext/index.js";
13
+ import { EnviveConfigService } from "../../services/enviveConfigService/enviveConfigService.js";
14
+ import { UserIdentityService } from "../../services/userIdentityService/userIdentityService.js";
15
+ import "../../services/userIdentityService/index.js";
16
16
  import "../featureFlagServiceContext/index.js";
17
17
  import "../graphqlContext/index.js";
18
18
  import "../newOrgConfigContext/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 { createContext, useEffect, useMemo, useState } from "react";
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 EnviveContext = createContext(null);
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
- (inputEnviveConfigService ?? new EnviveConfigService({
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
- logger_default.logDebug("enviveContext: enviveServiceConfig", enviveServiceConfig, config);
97
- logger_default.logDebug("enviveContext: enviveConfig", enviveConfig);
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(EnviveContext.Provider, {
101
- value: null,
102
- children: /* @__PURE__ */ jsx(EnviveConfigProvider, {
103
- ...enviveConfig,
104
- children: /* @__PURE__ */ jsx(GraphQLProvider, {
105
- mockV3ConfigToDeprecatedConfig,
106
- requestV3Config,
107
- children: /* @__PURE__ */ jsx(NewOrgConfigProvider, {
108
- overrideConfig,
109
- children: /* @__PURE__ */ jsx(LocalStorageProvider, { children: /* @__PURE__ */ jsx(FeatureFlagServiceProvider, {
110
- featureFlagService,
111
- children: /* @__PURE__ */ jsx(UserIdentityProvider, {
112
- userIdService,
113
- children: /* @__PURE__ */ jsx(AmplitudeProvider, {
114
- externalAmplitudeService: inputAmplitudeService,
115
- children: /* @__PURE__ */ jsx(PageProvider, {
116
- previewMode,
117
- children: /* @__PURE__ */ jsx(UiConfigProvider, { children: /* @__PURE__ */ jsx(WidgetConfigProvider, { children: /* @__PURE__ */ jsx(HardcopyProvider, {
118
- hardcopyOverride,
119
- children: /* @__PURE__ */ jsx(EnviveCssProvider, { children: /* @__PURE__ */ jsxs(SearchAgentWrapper, {
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
- children: [/* @__PURE__ */ jsx(WindowChatToggleBinder, {}), /* @__PURE__ */ jsx(SalesAgentWrapper, {
122
- enabledAgents,
123
- showDebugBar: config.enviveOn || false,
124
- previewMode,
125
- mockSalesAgentData,
126
- children
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 };