@envive-ai/react-hooks 0.3.19 → 0.3.21

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 (70) hide show
  1. package/dist/application/models/guards/api/isApiPDPEventAttributes.cjs +2 -2
  2. package/dist/application/models/guards/api/isApiPDPEventAttributes.js +2 -2
  3. package/dist/atoms/app/index.d.ts +1 -1
  4. package/dist/atoms/chat/chatState.d.cts +18 -18
  5. package/dist/atoms/chat/chatState.d.ts +1 -1
  6. package/dist/atoms/chat/form.d.cts +2 -2
  7. package/dist/atoms/chat/form.d.ts +2 -2
  8. package/dist/atoms/chat/index.d.cts +3 -3
  9. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  10. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  11. package/dist/atoms/chat/messageQueue.d.cts +6 -6
  12. package/dist/atoms/chat/messageQueue.d.ts +6 -6
  13. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  14. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  15. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  16. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  17. package/dist/atoms/chat/replies.d.cts +3 -3
  18. package/dist/atoms/chat/replies.d.ts +3 -3
  19. package/dist/atoms/chat/suggestions.d.cts +2 -2
  20. package/dist/atoms/chat/suggestions.d.ts +2 -2
  21. package/dist/atoms/envive/enviveConfig.d.cts +13 -13
  22. package/dist/atoms/envive/enviveConfig.d.ts +13 -13
  23. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  24. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  25. package/dist/atoms/org/customerService.d.cts +6 -6
  26. package/dist/atoms/org/customerService.d.ts +6 -6
  27. package/dist/atoms/org/graphqlConfig.d.cts +4 -4
  28. package/dist/atoms/org/graphqlConfig.d.ts +4 -4
  29. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  30. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  31. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  32. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  33. package/dist/atoms/search/chatSearch.d.cts +17 -17
  34. package/dist/atoms/search/chatSearch.d.ts +17 -17
  35. package/dist/atoms/search/searchAPI.d.cts +13 -13
  36. package/dist/atoms/search/searchAPI.d.ts +13 -13
  37. package/dist/atoms/search/types.d.ts +1 -1
  38. package/dist/atoms/widget/chatPreviewLoading.d.cts +2 -2
  39. package/dist/atoms/widget/chatPreviewLoading.d.ts +2 -2
  40. package/dist/contexts/enviveContext/enviveContext.cjs +41 -7
  41. package/dist/contexts/enviveContext/enviveContext.d.cts +8 -2
  42. package/dist/contexts/enviveContext/enviveContext.d.ts +8 -2
  43. package/dist/contexts/enviveContext/enviveContext.js +42 -8
  44. package/dist/contexts/enviveContext/index.d.cts +2 -2
  45. package/dist/contexts/enviveContext/index.d.ts +2 -2
  46. package/dist/contexts/enviveContext/types.d.ts +1 -1
  47. package/dist/contexts/pageContext/pageContext.cjs +78 -3
  48. package/dist/contexts/pageContext/pageContext.d.cts +3 -1
  49. package/dist/contexts/pageContext/pageContext.d.ts +3 -1
  50. package/dist/contexts/pageContext/pageContext.js +81 -6
  51. package/dist/contexts/types.d.cts +1 -1
  52. package/dist/contexts/types.d.ts +1 -1
  53. package/dist/contexts/typesV3.d.ts +1 -1
  54. package/dist/hooks/PageViewedEvent/index.cjs +4 -0
  55. package/dist/hooks/PageViewedEvent/index.d.cts +2 -0
  56. package/dist/hooks/PageViewedEvent/index.d.ts +2 -0
  57. package/dist/hooks/PageViewedEvent/index.js +3 -0
  58. package/dist/hooks/PageViewedEvent/usePageViewedEvent.cjs +84 -0
  59. package/dist/hooks/PageViewedEvent/usePageViewedEvent.d.cts +18 -0
  60. package/dist/hooks/PageViewedEvent/usePageViewedEvent.d.ts +18 -0
  61. package/dist/hooks/PageViewedEvent/usePageViewedEvent.js +82 -0
  62. package/dist/hooks/utils.d.cts +1 -1
  63. package/package.json +5 -1
  64. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +1 -1
  65. package/src/contexts/enviveContext/enviveContext.tsx +71 -7
  66. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +6 -0
  67. package/src/contexts/pageContext/pageContext.tsx +79 -2
  68. package/src/hooks/PageViewedEvent/__tests__/usePageViewedEvent.test.ts +297 -0
  69. package/src/hooks/PageViewedEvent/index.ts +1 -0
  70. package/src/hooks/PageViewedEvent/usePageViewedEvent.ts +103 -0
@@ -52,8 +52,21 @@ const SalesAgentWrapper = ({ children, enabledAgents, previewMode, showDebugBar,
52
52
  })
53
53
  });
54
54
  };
55
- 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 }) => {
56
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]);
57
70
  const userIdService = (0, react.useMemo)(() => inputUserIdentityService ?? new require_userIdentityService.UserIdentityService({ apiKey: config?.amplitudeApiKey || "" }), [config?.amplitudeApiKey, inputUserIdentityService]);
58
71
  (0, react.useEffect)(() => {
59
72
  const fetchUserId = async () => {
@@ -69,22 +82,42 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
69
82
  const source = "app";
70
83
  const [enviveServiceConfig, setEnviveServiceConfig] = (0, react.useState)(null);
71
84
  (0, react.useEffect)(() => {
72
- (inputEnviveConfigService ?? new require_enviveConfigService.EnviveConfigService({
85
+ invokeExtensionCallback(extensionService?.onInjectionLoading);
86
+ const enviveConfigService = inputEnviveConfigService ?? new require_enviveConfigService.EnviveConfigService({
73
87
  baseUrl: config?.baseUrl || "",
74
88
  apiKey: config?.orgLevelApiKey || "",
75
89
  userId,
76
90
  namespace,
77
91
  source
78
- })).getEnviveConfig().then((newConfig) => {
79
- setEnviveServiceConfig(newConfig);
80
- return newConfig;
81
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();
82
103
  }, [
83
104
  config,
84
105
  userId,
85
106
  namespace,
86
107
  source,
87
- 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
88
121
  ]);
89
122
  const enviveConfig = (0, react.useMemo)(() => ({
90
123
  ...config,
@@ -111,6 +144,7 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
111
144
  externalAmplitudeService: inputAmplitudeService,
112
145
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_pageContext.PageProvider, {
113
146
  previewMode,
147
+ onUrlResolverNotReady: extensionService?.onInjectionError,
114
148
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_widgetConfigContext.WidgetConfigProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_hardcopyContext.HardcopyProvider, {
115
149
  hardcopyOverride,
116
150
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_enviveCssContext.EnviveCssProvider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(SearchAgentWrapper, {
@@ -135,4 +169,4 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
135
169
 
136
170
  //#endregion
137
171
  exports.EnviveProvider = EnviveProvider;
138
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5janMiLCJuYW1lcyI6WyJMb2dnZXIiLCJTZWFyY2hBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPEFnZW50V3JhcHBlclByb3BzPiIsIkVudml2ZUFnZW50IiwiU2VhcmNoUHJvdmlkZXIiLCJTYWxlc0FnZW50V3JhcHBlcjogUmVhY3QuRkM8U2FsZXNBZ2VudFdyYXBwZXJQcm9wcz4iLCJTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciIsIlNhbGVzQWdlbnRQcm92aWRlciIsIkVudml2ZVByb3ZpZGVyOiBSZWFjdC5GQzxFbnZpdmVQcm92aWRlclByb3BzPiIsIlVzZXJJZGVudGl0eVNlcnZpY2UiLCJFbnZpdmVDb25maWdTZXJ2aWNlIiwiRmVhdHVyZUZsYWdTZXJ2aWNlIiwiRW52aXZlQ29uZmlnUHJvdmlkZXIiLCJHcmFwaFFMUHJvdmlkZXIiLCJOZXdPcmdDb25maWdQcm92aWRlciIsIkxvY2FsU3RvcmFnZVByb3ZpZGVyIiwiRmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIiLCJVc2VySWRlbnRpdHlQcm92aWRlciIsIkFtcGxpdHVkZVByb3ZpZGVyIiwiUGFnZVByb3ZpZGVyIiwiV2lkZ2V0Q29uZmlnUHJvdmlkZXIiLCJIYXJkY29weVByb3ZpZGVyIiwiRW52aXZlQ3NzUHJvdmlkZXIiLCJXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuaW50ZXJmYWNlIEVudml2ZVByb3ZpZGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gIHNob3c/OiBib29sZWFuO1xuICBlbnZpdmVPbj86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTsgLy8gTmV3IHByb3AgZm9yIGZlYXR1cmUgZ2F0ZXNcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlPzogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgYW1wbGl0dWRlU2VydmljZT86IEFtcGxpdHVkZVNlcnZpY2U7XG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZz86IGJvb2xlYW47XG4gIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gIHVzZXJJZGVudGl0eVNlcnZpY2U/OiBVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgb3ZlcnJpZGVDb25maWcsXG4gIGVuYWJsZWRBZ2VudHMsXG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSxcbiAgYW1wbGl0dWRlU2VydmljZTogaW5wdXRBbXBsaXR1ZGVTZXJ2aWNlLFxuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsXG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZyA9IGZhbHNlLFxuICByZXF1ZXN0VjNDb25maWcgPSBmYWxzZSxcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxuICBoYXJkY29weU92ZXJyaWRlLFxuICAuLi5jb25maWdcbn0pID0+IHtcbiAgY29uc3QgW3VzZXJJZCwgc2V0VXNlcklkXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuXG4gIGNvbnN0IHVzZXJJZFNlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UgPz9cbiAgICAgIG5ldyBVc2VySWRlbnRpdHlTZXJ2aWNlKHsgYXBpS2V5OiBjb25maWc/LmFtcGxpdHVkZUFwaUtleSB8fCAnJyB9KSxcbiAgICBbY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXksIGlucHV0VXNlcklkZW50aXR5U2VydmljZV0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmZXRjaFVzZXJJZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gYXdhaXQgdXNlcklkU2VydmljZS5nZXRVc2VySWRPckRlZmF1bHQoKTtcbiAgICAgIHNldFVzZXJJZChpZCk7XG4gICAgfTtcblxuICAgIGZldGNoVXNlcklkKCk7XG4gIH0sIFtjb25maWcuYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsIHVzZXJJZFNlcnZpY2VdKTtcblxuICBjb25zdCBuYW1lc3BhY2UgPSAnc3BpZmZ5LXJlYWN0LWNvbXBvbmVudHMnOyAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudCBuYW1lc3BhY2U/XG4gIGNvbnN0IHNvdXJjZSA9ICdhcHAnOyAvLyBUT0RPOiBNYWtlIHRoaXMgZGVwZW5kZW50IHVwb24gdGhlIFwic3BpZmZ5X29uXCIgcXVlcnkgcGFyYW1cbiAgY29uc3QgW2Vudml2ZVNlcnZpY2VDb25maWcsIHNldEVudml2ZVNlcnZpY2VDb25maWddID0gdXNlU3RhdGU8RW52aXZlU2VydmljZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gUmVhbGx5IG5vdCBoYXBweSB3aXRoIHRoaXMgYXBwcm9hY2gsIGJ1dCBJJ20gc2VlaW5nIDQyOSBlcnJvcnMgaW4gdGhlIHRlc3RzXG4gICAgLy8gYmVjYXVzZSBvZiB0aGUgcmF0ZSBsaW1pdGluZyBvbiB0aGUgQVBJLlxuICAgIGNvbnN0IGVudml2ZUNvbmZpZ1NlcnZpY2UgPVxuICAgICAgaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlID8/XG4gICAgICBuZXcgRW52aXZlQ29uZmlnU2VydmljZSh7XG4gICAgICAgIGJhc2VVcmw6IGNvbmZpZz8uYmFzZVVybCB8fCAnJyxcbiAgICAgICAgYXBpS2V5OiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5IHx8ICcnLFxuICAgICAgICB1c2VySWQsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlIHx8ICcnLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSB8fCAnJyxcbiAgICAgIH0pO1xuICAgIGVudml2ZUNvbmZpZ1NlcnZpY2UuZ2V0RW52aXZlQ29uZmlnKCkudGhlbihuZXdDb25maWcgPT4ge1xuICAgICAgc2V0RW52aXZlU2VydmljZUNvbmZpZyhuZXdDb25maWcpO1xuICAgICAgcmV0dXJuIG5ld0NvbmZpZztcbiAgICB9KTtcbiAgfSwgW2NvbmZpZywgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSwgaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlXSk7XG5cbiAgY29uc3QgZW52aXZlQ29uZmlnID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmVhdHVyZUdhdGVzOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlcyB8fCBbXSxcbiAgICAgIG9yZ1Nob3J0TmFtZTogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LnNob3J0X25hbWUgfHwgJycsXG4gICAgICBvcmdJZDogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LmlkIHx8ICcnLFxuICAgIH0pLFxuICAgIFtjb25maWcsIGVudml2ZVNlcnZpY2VDb25maWddLFxuICApO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZVNlcnZpY2VDb25maWcnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnLCBjb25maWcpO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZUNvbmZpZycsIGVudml2ZUNvbmZpZyk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSA/PyBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKGVudml2ZUNvbmZpZy5mZWF0dXJlR2F0ZXMpLFxuICAgIFtlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzLCBpbnB1dEZlYXR1cmVGbGFnU2VydmljZV0sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwgfHwgZW52aXZlQ29uZmlnID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxFbnZpdmVDb25maWdQcm92aWRlciB7Li4uZW52aXZlQ29uZmlnfT5cbiAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPXttb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWd9XG4gICAgICAgIHJlcXVlc3RWM0NvbmZpZz17cmVxdWVzdFYzQ29uZmlnfVxuICAgICAgPlxuICAgICAgICA8TmV3T3JnQ29uZmlnUHJvdmlkZXIgb3ZlcnJpZGVDb25maWc9e292ZXJyaWRlQ29uZmlnfT5cbiAgICAgICAgICA8TG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17dXNlcklkU2VydmljZX0+XG4gICAgICAgICAgICAgICAgPEFtcGxpdHVkZVByb3ZpZGVyIGV4dGVybmFsQW1wbGl0dWRlU2VydmljZT17aW5wdXRBbXBsaXR1ZGVTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXIgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfT5cbiAgICAgICAgICAgICAgICAgICAgPFdpZGdldENvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5T3ZlcnJpZGU9e2hhcmRjb3B5T3ZlcnJpZGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEVudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoQWdlbnRXcmFwcGVyIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNhbGVzQWdlbnRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlYnVnQmFyPXtjb25maWcuZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrU2FsZXNBZ2VudERhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TYWxlc0FnZW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Vudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvSGFyZGNvcHlQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDwvUGFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQW1wbGl0dWRlUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgICAgICAgIDwvTG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgICA8L0dyYXBoUUxQcm92aWRlcj5cbiAgICA8L0Vudml2ZUNvbmZpZ1Byb3ZpZGVyPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLGdCQUFnQjtBQXFDMUMsTUFBTUMsc0JBQW1ELEVBQUUsVUFBVSxvQkFBb0I7QUFDdkYsS0FBSSxDQUFDLGNBQWMsU0FBU0MsaURBQVksWUFBWSxDQUNsRCxRQUFPO0FBRVQsUUFBTywyQ0FBQ0Msd0NBQWdCLFdBQTBCOztBQVNwRCxNQUFNQyxxQkFBdUQsRUFD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
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
@@ -31,7 +31,7 @@ import "../widgetConfigContext/index.js";
31
31
  import { PageProvider } from "../pageContext/pageContext.js";
32
32
  import "../pageContext/index.js";
33
33
  import { WindowChatToggleBinder } from "./WindowChatToggleBinder.js";
34
- import { useEffect, useMemo, useState } from "react";
34
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
35
35
  import { jsx, jsxs } from "react/jsx-runtime";
36
36
 
37
37
  //#region src/contexts/enviveContext/enviveContext.tsx
@@ -51,8 +51,21 @@ const SalesAgentWrapper = ({ children, enabledAgents, previewMode, showDebugBar,
51
51
  })
52
52
  });
53
53
  };
54
- 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 }) => {
55
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]);
56
69
  const userIdService = useMemo(() => inputUserIdentityService ?? new UserIdentityService({ apiKey: config?.amplitudeApiKey || "" }), [config?.amplitudeApiKey, inputUserIdentityService]);
57
70
  useEffect(() => {
58
71
  const fetchUserId = async () => {
@@ -68,22 +81,42 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
68
81
  const source = "app";
69
82
  const [enviveServiceConfig, setEnviveServiceConfig] = useState(null);
70
83
  useEffect(() => {
71
- (inputEnviveConfigService ?? new EnviveConfigService({
84
+ invokeExtensionCallback(extensionService?.onInjectionLoading);
85
+ const enviveConfigService = inputEnviveConfigService ?? new EnviveConfigService({
72
86
  baseUrl: config?.baseUrl || "",
73
87
  apiKey: config?.orgLevelApiKey || "",
74
88
  userId,
75
89
  namespace,
76
90
  source
77
- })).getEnviveConfig().then((newConfig) => {
78
- setEnviveServiceConfig(newConfig);
79
- return newConfig;
80
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();
81
102
  }, [
82
103
  config,
83
104
  userId,
84
105
  namespace,
85
106
  source,
86
- 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
87
120
  ]);
88
121
  const enviveConfig = useMemo(() => ({
89
122
  ...config,
@@ -110,6 +143,7 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
110
143
  externalAmplitudeService: inputAmplitudeService,
111
144
  children: /* @__PURE__ */ jsx(PageProvider, {
112
145
  previewMode,
146
+ onUrlResolverNotReady: extensionService?.onInjectionError,
113
147
  children: /* @__PURE__ */ jsx(WidgetConfigProvider, { children: /* @__PURE__ */ jsx(HardcopyProvider, {
114
148
  hardcopyOverride,
115
149
  children: /* @__PURE__ */ jsx(EnviveCssProvider, { children: /* @__PURE__ */ jsxs(SearchAgentWrapper, {
@@ -134,4 +168,4 @@ const EnviveProvider = ({ children, previewMode = false, overrideConfig, enabled
134
168
 
135
169
  //#endregion
136
170
  export { EnviveProvider };
137
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuaW50ZXJmYWNlIEVudml2ZVByb3ZpZGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gIHNob3c/OiBib29sZWFuO1xuICBlbnZpdmVPbj86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTsgLy8gTmV3IHByb3AgZm9yIGZlYXR1cmUgZ2F0ZXNcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlPzogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgYW1wbGl0dWRlU2VydmljZT86IEFtcGxpdHVkZVNlcnZpY2U7XG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZz86IGJvb2xlYW47XG4gIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gIHVzZXJJZGVudGl0eVNlcnZpY2U/OiBVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgb3ZlcnJpZGVDb25maWcsXG4gIGVuYWJsZWRBZ2VudHMsXG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSxcbiAgYW1wbGl0dWRlU2VydmljZTogaW5wdXRBbXBsaXR1ZGVTZXJ2aWNlLFxuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsXG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZyA9IGZhbHNlLFxuICByZXF1ZXN0VjNDb25maWcgPSBmYWxzZSxcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxuICBoYXJkY29weU92ZXJyaWRlLFxuICAuLi5jb25maWdcbn0pID0+IHtcbiAgY29uc3QgW3VzZXJJZCwgc2V0VXNlcklkXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuXG4gIGNvbnN0IHVzZXJJZFNlcnZpY2UgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UgPz9cbiAgICAgIG5ldyBVc2VySWRlbnRpdHlTZXJ2aWNlKHsgYXBpS2V5OiBjb25maWc/LmFtcGxpdHVkZUFwaUtleSB8fCAnJyB9KSxcbiAgICBbY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXksIGlucHV0VXNlcklkZW50aXR5U2VydmljZV0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmZXRjaFVzZXJJZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gYXdhaXQgdXNlcklkU2VydmljZS5nZXRVc2VySWRPckRlZmF1bHQoKTtcbiAgICAgIHNldFVzZXJJZChpZCk7XG4gICAgfTtcblxuICAgIGZldGNoVXNlcklkKCk7XG4gIH0sIFtjb25maWcuYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsIHVzZXJJZFNlcnZpY2VdKTtcblxuICBjb25zdCBuYW1lc3BhY2UgPSAnc3BpZmZ5LXJlYWN0LWNvbXBvbmVudHMnOyAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudCBuYW1lc3BhY2U/XG4gIGNvbnN0IHNvdXJjZSA9ICdhcHAnOyAvLyBUT0RPOiBNYWtlIHRoaXMgZGVwZW5kZW50IHVwb24gdGhlIFwic3BpZmZ5X29uXCIgcXVlcnkgcGFyYW1cbiAgY29uc3QgW2Vudml2ZVNlcnZpY2VDb25maWcsIHNldEVudml2ZVNlcnZpY2VDb25maWddID0gdXNlU3RhdGU8RW52aXZlU2VydmljZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gUmVhbGx5IG5vdCBoYXBweSB3aXRoIHRoaXMgYXBwcm9hY2gsIGJ1dCBJJ20gc2VlaW5nIDQyOSBlcnJvcnMgaW4gdGhlIHRlc3RzXG4gICAgLy8gYmVjYXVzZSBvZiB0aGUgcmF0ZSBsaW1pdGluZyBvbiB0aGUgQVBJLlxuICAgIGNvbnN0IGVudml2ZUNvbmZpZ1NlcnZpY2UgPVxuICAgICAgaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlID8/XG4gICAgICBuZXcgRW52aXZlQ29uZmlnU2VydmljZSh7XG4gICAgICAgIGJhc2VVcmw6IGNvbmZpZz8uYmFzZVVybCB8fCAnJyxcbiAgICAgICAgYXBpS2V5OiBjb25maWc/Lm9yZ0xldmVsQXBpS2V5IHx8ICcnLFxuICAgICAgICB1c2VySWQsXG4gICAgICAgIG5hbWVzcGFjZTogbmFtZXNwYWNlIHx8ICcnLFxuICAgICAgICBzb3VyY2U6IHNvdXJjZSB8fCAnJyxcbiAgICAgIH0pO1xuICAgIGVudml2ZUNvbmZpZ1NlcnZpY2UuZ2V0RW52aXZlQ29uZmlnKCkudGhlbihuZXdDb25maWcgPT4ge1xuICAgICAgc2V0RW52aXZlU2VydmljZUNvbmZpZyhuZXdDb25maWcpO1xuICAgICAgcmV0dXJuIG5ld0NvbmZpZztcbiAgICB9KTtcbiAgfSwgW2NvbmZpZywgdXNlcklkLCBuYW1lc3BhY2UsIHNvdXJjZSwgaW5wdXRFbnZpdmVDb25maWdTZXJ2aWNlXSk7XG5cbiAgY29uc3QgZW52aXZlQ29uZmlnID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmVhdHVyZUdhdGVzOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlcyB8fCBbXSxcbiAgICAgIG9yZ1Nob3J0TmFtZTogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LnNob3J0X25hbWUgfHwgJycsXG4gICAgICBvcmdJZDogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LmlkIHx8ICcnLFxuICAgIH0pLFxuICAgIFtjb25maWcsIGVudml2ZVNlcnZpY2VDb25maWddLFxuICApO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZVNlcnZpY2VDb25maWcnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnLCBjb25maWcpO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZUNvbmZpZycsIGVudml2ZUNvbmZpZyk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSA/PyBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKGVudml2ZUNvbmZpZy5mZWF0dXJlR2F0ZXMpLFxuICAgIFtlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzLCBpbnB1dEZlYXR1cmVGbGFnU2VydmljZV0sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwgfHwgZW52aXZlQ29uZmlnID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxFbnZpdmVDb25maWdQcm92aWRlciB7Li4uZW52aXZlQ29uZmlnfT5cbiAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPXttb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWd9XG4gICAgICAgIHJlcXVlc3RWM0NvbmZpZz17cmVxdWVzdFYzQ29uZmlnfVxuICAgICAgPlxuICAgICAgICA8TmV3T3JnQ29uZmlnUHJvdmlkZXIgb3ZlcnJpZGVDb25maWc9e292ZXJyaWRlQ29uZmlnfT5cbiAgICAgICAgICA8TG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17dXNlcklkU2VydmljZX0+XG4gICAgICAgICAgICAgICAgPEFtcGxpdHVkZVByb3ZpZGVyIGV4dGVybmFsQW1wbGl0dWRlU2VydmljZT17aW5wdXRBbXBsaXR1ZGVTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXIgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfT5cbiAgICAgICAgICAgICAgICAgICAgPFdpZGdldENvbmZpZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxIYXJkY29weVByb3ZpZGVyIGhhcmRjb3B5T3ZlcnJpZGU9e2hhcmRjb3B5T3ZlcnJpZGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPEVudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoQWdlbnRXcmFwcGVyIGVuYWJsZWRBZ2VudHM9e2VuYWJsZWRBZ2VudHN9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxXaW5kb3dDaGF0VG9nZ2xlQmluZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNhbGVzQWdlbnRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0RlYnVnQmFyPXtjb25maWcuZW52aXZlT24gfHwgZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3TW9kZT17cHJldmlld01vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrU2FsZXNBZ2VudERhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TYWxlc0FnZW50V3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TZWFyY2hBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0Vudml2ZUNzc1Byb3ZpZGVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvSGFyZGNvcHlQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9XaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgIDwvUGFnZVByb3ZpZGVyPlxuICAgICAgICAgICAgICAgIDwvQW1wbGl0dWRlUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvVXNlcklkZW50aXR5UHJvdmlkZXI+XG4gICAgICAgICAgICA8L0ZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyPlxuICAgICAgICAgIDwvTG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgIDwvTmV3T3JnQ29uZmlnUHJvdmlkZXI+XG4gICAgICA8L0dyYXBoUUxQcm92aWRlcj5cbiAgICA8L0Vudml2ZUNvbmZpZ1Byb3ZpZGVyPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQSxNQUFNLFNBQVMsSUFBSUEsZUFBTyxnQkFBZ0I7QUFxQzFDLE1BQU1DLHNCQUFtRCxFQUFFLFVBQVUsb0JBQW9CO0FBQ3ZGLEtBQUksQ0FBQyxjQUFjLFNBQVMsWUFBWSxZQUFZLENBQ2xELFFBQU87QUFFVCxRQUFPLG9CQUFDLGtCQUFnQixXQUEwQjs7QUFTcEQsTUFBTUMscUJBQXVELEVBQzNELFVBQ0EsZUFDQSxhQUNBLGNBQ0EseUJBQ0k7QUFDSixLQUFJLENBQUMsY0FBYyxTQUFTLFlBQVksV0FBVyxDQUNqRCxRQUFPO0FBRVQsUUFDRSxvQkFBQztFQUE0QztZQUMzQyxvQkFBQztHQUNjO0dBQ2IsVUFBVTtHQUVUO0lBQ2tCO0dBQ1M7O0FBSXBDLE1BQWFDLGtCQUFpRCxFQUM1RCxVQUNBLGNBQWMsT0FDZCxnQkFDQSxlQUNBLHFCQUFxQiwwQkFDckIsb0JBQW9CLHlCQUNwQixrQkFBa0IsdUJBQ2xCLHFCQUFxQiwwQkFDckIsaUNBQWlDLE9BQ2pDLGtCQUFrQixPQUNsQixvQkFDQSxrQkFDQSxHQUFHLGFBQ0M7Q0FDSixNQUFNLENBQUMsUUFBUSxhQUFhLFNBQWlCLEdBQUc7Q0FFaEQsTUFBTSxnQkFBZ0IsY0FFbEIsNEJBQ0EsSUFBSSxvQkFBb0IsRUFBRSxRQUFRLFFBQVEsbUJBQW1CLElBQUksQ0FBQyxFQUNwRSxDQUFDLFFBQVEsaUJBQWlCLHlCQUF5QixDQUNwRDtBQUVELGlCQUFnQjtFQUNkLE1BQU0sY0FBYyxZQUFZO0FBRTlCLGFBRFcsTUFBTSxjQUFjLG9CQUFvQixDQUN0Qzs7QUFHZixlQUFhO0lBQ1o7RUFBQyxPQUFPO0VBQWlCO0VBQTBCO0VBQWMsQ0FBQztDQUVyRSxNQUFNLFlBQVk7Q0FDbEIsTUFBTSxTQUFTO0NBQ2YsTUFBTSxDQUFDLHFCQUFxQiwwQkFBMEIsU0FBcUMsS0FBSztBQUVoRyxpQkFBZ0I7QUFZZCxHQVJFLDRCQUNBLElBQUksb0JBQW9CO0dBQ3RCLFNBQVMsUUFBUSxXQUFXO0dBQzVCLFFBQVEsUUFBUSxrQkFBa0I7R0FDbEM7R0FDVztHQUNIO0dBQ1QsQ0FBQyxFQUNnQixpQkFBaUIsQ0FBQyxNQUFLLGNBQWE7QUFDdEQsMEJBQXVCLFVBQVU7QUFDakMsVUFBTztJQUNQO0lBQ0Q7RUFBQztFQUFRO0VBQVE7RUFBVztFQUFRO0VBQXlCLENBQUM7Q0FFakUsTUFBTSxlQUFlLGVBQ1o7RUFDTCxHQUFHO0VBQ0gsY0FBYyxxQkFBcUIsU0FBUyxFQUFFO0VBQzlDLGNBQWMscUJBQXFCLEtBQUssS0FBSyxjQUFjO0VBQzNELE9BQU8scUJBQXFCLEtBQUssS0FBSyxNQUFNO0VBQzdDLEdBQ0QsQ0FBQyxRQUFRLG9CQUFvQixDQUM5QjtBQUNELFFBQU8sU0FBUyxzQ0FBc0MscUJBQXFCLE9BQU87QUFDbEYsUUFBTyxTQUFTLCtCQUErQixhQUFhO0NBRTVELE1BQU0scUJBQXFCLGNBQ25CLDJCQUEyQixJQUFJLG1CQUFtQixhQUFhLGFBQWEsRUFDbEYsQ0FBQyxhQUFhLGNBQWMsd0JBQXdCLENBQ3JEO0FBRUQsS0FBSSx3QkFBd0IsUUFBUSxpQkFBaUIsS0FDbkQsUUFBTztBQUdULFFBQ0Usb0JBQUM7RUFBcUIsR0FBSTtZQUN4QixvQkFBQztHQUNpQztHQUNmO2FBRWpCLG9CQUFDO0lBQXFDO2NBQ3BDLG9CQUFDLGtDQUNDLG9CQUFDO0tBQStDO2VBQzlDLG9CQUFDO01BQW9DO2dCQUNuQyxvQkFBQztPQUFrQiwwQkFBMEI7aUJBQzNDLG9CQUFDO1FBQTBCO2tCQUN6QixvQkFBQyxrQ0FDQyxvQkFBQztTQUFtQzttQkFDbEMsb0JBQUMsK0JBQ0MscUJBQUM7VUFBa0M7cUJBQ2pDLG9CQUFDLDJCQUF5QixFQUMxQixvQkFBQztXQUNnQjtXQUNmLGNBQWMsT0FBTyxZQUFZO1dBQ3BCO1dBQ087V0FFbkI7WUFDaUI7V0FDRCxHQUNIO1VBQ0gsR0FDRTtTQUNWO1FBQ0c7T0FDQztNQUNJLEdBQ1I7S0FDRjtJQUNQO0dBQ0cifQ==
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXZlQ29udGV4dC5qcyIsIm5hbWVzIjpbIkxvZ2dlciIsIlNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+IiwiU2FsZXNBZ2VudFdyYXBwZXI6IFJlYWN0LkZDPFNhbGVzQWdlbnRXcmFwcGVyUHJvcHM+IiwiRW52aXZlUHJvdmlkZXI6IFJlYWN0LkZDPEVudml2ZVByb3ZpZGVyUHJvcHM+Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL2Vudml2ZUNvbnRleHQvZW52aXZlQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBPcmdDb25maWdGZWF0dXJlR2F0ZSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMvYXBpL29yZ0NvbmZpZ1Jlc3VsdHMnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnU2VydmljZSwgRW52aXZlU2VydmljZUNvbmZpZyB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9lbnZpdmVDb25maWdTZXJ2aWNlJztcbmltcG9ydCB7IEFtcGxpdHVkZVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvYW1wbGl0dWRlU2VydmljZS9hbXBsaXR1ZGVTZXJ2aWNlJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdzcmMvc2VydmljZXMvdXNlcklkZW50aXR5U2VydmljZSc7XG5pbXBvcnQgeyBBbXBsaXR1ZGVQcm92aWRlciB9IGZyb20gJy4uL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgRW52aXZlQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9lbnZpdmVDb25maWdDb250ZXh0JztcbmltcG9ydCB7IEVudml2ZUNzc1Byb3ZpZGVyIH0gZnJvbSAnLi4vZW52aXZlQ3NzQ29udGV4dCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ1NlcnZpY2UsIEZlYXR1cmVGbGFnU2VydmljZVByb3ZpZGVyIH0gZnJvbSAnLi4vZmVhdHVyZUZsYWdTZXJ2aWNlQ29udGV4dCc7XG5pbXBvcnQgeyBHcmFwaFFMUHJvdmlkZXIsIEdyYXBoUWxDb25maWdWYWx1ZXMgfSBmcm9tICcuLi9ncmFwaHFsQ29udGV4dCc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm92aWRlciB9IGZyb20gJy4uL2xvY2FsU3RvcmFnZUNvbnRleHQnO1xuaW1wb3J0IHsgTmV3T3JnQ29uZmlnUHJvdmlkZXIgfSBmcm9tICcuLi9uZXdPcmdDb25maWdDb250ZXh0JztcbmltcG9ydCB7IFVzZXJJZGVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi4vdXNlcklkZW50aXR5Q29udGV4dCc7XG5pbXBvcnQgeyBFbnZpdmVBZ2VudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuLi9zZWFyY2hDb250ZXh0JztcbmltcG9ydCB7IFNhbGVzQWdlbnRQcm92aWRlciB9IGZyb20gJy4uL3NhbGVzQWdlbnRDb250ZXh0L3NhbGVzQWdlbnRDb250ZXh0JztcbmltcG9ydCB7IFN5c3RlbVNldHRpbmdzQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnLi4vc3lzdGVtU2V0dGluZ3NDb250ZXh0JztcbmltcG9ydCB7IEhhcmRjb3B5UHJvdmlkZXIsIEhhcmRjb3B5UmVzcG9uc2UgfSBmcm9tICcuLi9oYXJkY29weUNvbnRleHQnO1xuaW1wb3J0IHsgV2lkZ2V0VHlwZVYzIH0gZnJvbSAnLi4vdHlwZXNWMyc7XG5pbXBvcnQgeyBXaWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3dpZGdldENvbmZpZ0NvbnRleHQnO1xuaW1wb3J0IHsgUGFnZVByb3ZpZGVyIH0gZnJvbSAnLi4vcGFnZUNvbnRleHQnO1xuaW1wb3J0IHsgV2luZG93Q2hhdFRvZ2dsZUJpbmRlciB9IGZyb20gJy4vV2luZG93Q2hhdFRvZ2dsZUJpbmRlcic7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ2Vudml2ZUNvbnRleHQnKTtcblxuaW50ZXJmYWNlIEFnZW50V3JhcHBlclByb3BzIHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgZW5hYmxlZEFnZW50czogRW52aXZlQWdlbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3Mge1xuICBvbkluamVjdGlvbkxvYWRpbmc/OiAoKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbiAgb25JbmplY3Rpb25TdWNjZXNzPzogKCkgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG4gIG9uSW5qZWN0aW9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcbn1cblxuaW50ZXJmYWNlIEVudml2ZVByb3ZpZGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIGFtcGxpdHVkZUFwaUtleT86IHN0cmluZztcbiAgZGF0YVJlc2lkZW5jeT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nO1xuICBiYXNlVXJsPzogc3RyaW5nO1xuICByZWFjdEFwcE5hbWU/OiBzdHJpbmc7XG4gIGNkblVybD86IHN0cmluZztcbiAgY29udGV4dFNvdXJjZT86IHN0cmluZztcbiAgb3JnTGV2ZWxBcGlLZXk/OiBzdHJpbmc7XG4gIG9yZ1Nob3J0TmFtZT86IHN0cmluZztcbiAgaWRlbnRpZnlpbmdQcmVmaXg6IHN0cmluZztcbiAgZmVhdHVyZU92ZXJyaWRlcz86IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuICB2YXJpYW50VXJsT3ZlcnJpZGU/OiBzdHJpbmc7XG4gIHZhcmlhbnRJbmZvT3ZlcnJpZGU/OiBhbnk7XG4gIHNob3c/OiBib29sZWFuO1xuICBlbnZpdmVPbj86IGJvb2xlYW47XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgZmVhdHVyZUdhdGVzPzogT3JnQ29uZmlnRmVhdHVyZUdhdGVbXTsgLy8gTmV3IHByb3AgZm9yIGZlYXR1cmUgZ2F0ZXNcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlPzogRmVhdHVyZUZsYWdTZXJ2aWNlO1xuICBlbnZpdmVDb25maWdTZXJ2aWNlPzogRW52aXZlQ29uZmlnU2VydmljZTtcbiAgYW1wbGl0dWRlU2VydmljZT86IEFtcGxpdHVkZVNlcnZpY2U7XG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZz86IGJvb2xlYW47XG4gIHJlcXVlc3RWM0NvbmZpZz86IGJvb2xlYW47XG4gIHVzZXJJZGVudGl0eVNlcnZpY2U/OiBVc2VySWRlbnRpdHlTZXJ2aWNlO1xuICBwcmV2aWV3TW9kZT86IGJvb2xlYW47XG4gIG92ZXJyaWRlQ29uZmlnPzogR3JhcGhRbENvbmZpZ1ZhbHVlcztcbiAgbW9ja1NhbGVzQWdlbnREYXRhPzogYW55O1xuICBoYXJkY29weU92ZXJyaWRlPzogUGFydGlhbDxSZWNvcmQ8V2lkZ2V0VHlwZVYzLCBIYXJkY29weVJlc3BvbnNlPj47XG4gIGV4dGVuc2lvblNlcnZpY2U/OiBFeHRlbnNpb25TdGF0dXNDYWxsYmFja3M7XG59XG5cbmNvbnN0IFNlYXJjaEFnZW50V3JhcHBlcjogUmVhY3QuRkM8QWdlbnRXcmFwcGVyUHJvcHM+ID0gKHsgY2hpbGRyZW4sIGVuYWJsZWRBZ2VudHMgfSkgPT4ge1xuICBpZiAoIWVuYWJsZWRBZ2VudHMuaW5jbHVkZXMoRW52aXZlQWdlbnQuU2VhcmNoQWdlbnQpKSB7XG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG4gIHJldHVybiA8U2VhcmNoUHJvdmlkZXI+e2NoaWxkcmVufTwvU2VhcmNoUHJvdmlkZXI+O1xufTtcblxuaW50ZXJmYWNlIFNhbGVzQWdlbnRXcmFwcGVyUHJvcHMgZXh0ZW5kcyBBZ2VudFdyYXBwZXJQcm9wcyB7XG4gIHByZXZpZXdNb2RlPzogYm9vbGVhbjtcbiAgc2hvd0RlYnVnQmFyOiBib29sZWFuO1xuICBtb2NrU2FsZXNBZ2VudERhdGE/OiBhbnk7XG59XG5cbmNvbnN0IFNhbGVzQWdlbnRXcmFwcGVyOiBSZWFjdC5GQzxTYWxlc0FnZW50V3JhcHBlclByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBlbmFibGVkQWdlbnRzLFxuICBwcmV2aWV3TW9kZSxcbiAgc2hvd0RlYnVnQmFyLFxuICBtb2NrU2FsZXNBZ2VudERhdGEsXG59KSA9PiB7XG4gIGlmICghZW5hYmxlZEFnZW50cy5pbmNsdWRlcyhFbnZpdmVBZ2VudC5TYWxlc0FnZW50KSkge1xuICAgIHJldHVybiBjaGlsZHJlbjtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxTeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlciBzaG93RGVidWdCYXI9e3Nob3dEZWJ1Z0Jhcn0+XG4gICAgICA8U2FsZXNBZ2VudFByb3ZpZGVyXG4gICAgICAgIHByZXZpZXdNb2RlPXtwcmV2aWV3TW9kZX1cbiAgICAgICAgbW9ja0RhdGE9e21vY2tTYWxlc0FnZW50RGF0YX1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TYWxlc0FnZW50UHJvdmlkZXI+XG4gICAgPC9TeXN0ZW1TZXR0aW5nc0NvbnRleHRQcm92aWRlcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBFbnZpdmVQcm92aWRlcjogUmVhY3QuRkM8RW52aXZlUHJvdmlkZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgcHJldmlld01vZGUgPSBmYWxzZSxcbiAgb3ZlcnJpZGVDb25maWcsXG4gIGVuYWJsZWRBZ2VudHMsXG4gIGVudml2ZUNvbmZpZ1NlcnZpY2U6IGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgZmVhdHVyZUZsYWdTZXJ2aWNlOiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSxcbiAgYW1wbGl0dWRlU2VydmljZTogaW5wdXRBbXBsaXR1ZGVTZXJ2aWNlLFxuICB1c2VySWRlbnRpdHlTZXJ2aWNlOiBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2UsXG4gIG1vY2tWM0NvbmZpZ1RvRGVwcmVjYXRlZENvbmZpZyA9IGZhbHNlLFxuICByZXF1ZXN0VjNDb25maWcgPSBmYWxzZSxcbiAgbW9ja1NhbGVzQWdlbnREYXRhLFxuICBoYXJkY29weU92ZXJyaWRlLFxuICBleHRlbnNpb25TZXJ2aWNlLFxuICAuLi5jb25maWdcbn0pID0+IHtcbiAgY29uc3QgW3VzZXJJZCwgc2V0VXNlcklkXSA9IHVzZVN0YXRlPHN0cmluZz4oJycpO1xuICBjb25zdCBkaWRSZXBvcnRTdWNjZXNzUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBjb25zdCBpbnZva2VFeHRlbnNpb25DYWxsYmFjayA9IHVzZUNhbGxiYWNrKChjYWxsYmFjaz86ICgpID0+IFByb21pc2U8dW5rbm93bj4gfCB2b2lkKSA9PiB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIFByb21pc2UucmVzb2x2ZShjYWxsYmFjaygpKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBsb2dnZXIubG9nRGVidWcoJ0V4dGVuc2lvbiBzdGF0dXMgY2FsbGJhY2sgZmFpbGVkJywgZXJyb3IpO1xuICAgIH0pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaW52b2tlRXh0ZW5zaW9uRXJyb3JDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgIChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICghZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25FcnJvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIFByb21pc2UucmVzb2x2ZShleHRlbnNpb25TZXJ2aWNlLm9uSW5qZWN0aW9uRXJyb3IoZXJyb3IpKS5jYXRjaChjYWxsYmFja0Vycm9yID0+IHtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdFeHRlbnNpb24gZXJyb3IgY2FsbGJhY2sgZmFpbGVkJywgY2FsbGJhY2tFcnJvcik7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtleHRlbnNpb25TZXJ2aWNlXSxcbiAgKTtcblxuICBjb25zdCB1c2VySWRTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlID8/XG4gICAgICBuZXcgVXNlcklkZW50aXR5U2VydmljZSh7IGFwaUtleTogY29uZmlnPy5hbXBsaXR1ZGVBcGlLZXkgfHwgJycgfSksXG4gICAgW2NvbmZpZz8uYW1wbGl0dWRlQXBpS2V5LCBpbnB1dFVzZXJJZGVudGl0eVNlcnZpY2VdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmV0Y2hVc2VySWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IGF3YWl0IHVzZXJJZFNlcnZpY2UuZ2V0VXNlcklkT3JEZWZhdWx0KCk7XG4gICAgICBzZXRVc2VySWQoaWQpO1xuICAgIH07XG5cbiAgICBmZXRjaFVzZXJJZCgpO1xuICB9LCBbY29uZmlnLmFtcGxpdHVkZUFwaUtleSwgaW5wdXRVc2VySWRlbnRpdHlTZXJ2aWNlLCB1c2VySWRTZXJ2aWNlXSk7XG5cbiAgY29uc3QgbmFtZXNwYWNlID0gJ3NwaWZmeS1yZWFjdC1jb21wb25lbnRzJzsgLy8gVE9ETzogU2hvdWxkIHRoaXMgYmUgZGlmZmVyZW50IGZyb20gdGhlIGN1cnJlbnQgbmFtZXNwYWNlP1xuICBjb25zdCBzb3VyY2UgPSAnYXBwJzsgLy8gVE9ETzogTWFrZSB0aGlzIGRlcGVuZGVudCB1cG9uIHRoZSBcInNwaWZmeV9vblwiIHF1ZXJ5IHBhcmFtXG4gIGNvbnN0IFtlbnZpdmVTZXJ2aWNlQ29uZmlnLCBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnXSA9IHVzZVN0YXRlPEVudml2ZVNlcnZpY2VDb25maWcgfCBudWxsPihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrKGV4dGVuc2lvblNlcnZpY2U/Lm9uSW5qZWN0aW9uTG9hZGluZyk7XG5cbiAgICAvLyBSZWFsbHkgbm90IGhhcHB5IHdpdGggdGhpcyBhcHByb2FjaCwgYnV0IEknbSBzZWVpbmcgNDI5IGVycm9ycyBpbiB0aGUgdGVzdHNcbiAgICAvLyBiZWNhdXNlIG9mIHRoZSByYXRlIGxpbWl0aW5nIG9uIHRoZSBBUEkuXG4gICAgY29uc3QgZW52aXZlQ29uZmlnU2VydmljZSA9XG4gICAgICBpbnB1dEVudml2ZUNvbmZpZ1NlcnZpY2UgPz9cbiAgICAgIG5ldyBFbnZpdmVDb25maWdTZXJ2aWNlKHtcbiAgICAgICAgYmFzZVVybDogY29uZmlnPy5iYXNlVXJsIHx8ICcnLFxuICAgICAgICBhcGlLZXk6IGNvbmZpZz8ub3JnTGV2ZWxBcGlLZXkgfHwgJycsXG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgbmFtZXNwYWNlOiBuYW1lc3BhY2UgfHwgJycsXG4gICAgICAgIHNvdXJjZTogc291cmNlIHx8ICcnLFxuICAgICAgfSk7XG4gICAgY29uc3QgZmV0Y2hFbnZpdmVDb25maWcgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBuZXdDb25maWcgPSBhd2FpdCBlbnZpdmVDb25maWdTZXJ2aWNlLmdldEVudml2ZUNvbmZpZygpO1xuICAgICAgICBzZXRFbnZpdmVTZXJ2aWNlQ29uZmlnKG5ld0NvbmZpZyk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCByZXNvbHZlZEVycm9yID1cbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudml2ZSBjb25maWcnKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdGYWlsZWQgdG8gaW5pdGlhbGl6ZSBFbnZpdmVQcm92aWRlcicsIHJlc29sdmVkRXJyb3IpO1xuICAgICAgICBpbnZva2VFeHRlbnNpb25FcnJvckNhbGxiYWNrKHJlc29sdmVkRXJyb3IpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBmZXRjaEVudml2ZUNvbmZpZygpO1xuICB9LCBbXG4gICAgY29uZmlnLFxuICAgIHVzZXJJZCxcbiAgICBuYW1lc3BhY2UsXG4gICAgc291cmNlLFxuICAgIGlucHV0RW52aXZlQ29uZmlnU2VydmljZSxcbiAgICBleHRlbnNpb25TZXJ2aWNlLFxuICAgIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrLFxuICAgIGludm9rZUV4dGVuc2lvbkVycm9yQ2FsbGJhY2ssXG4gIF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlbnZpdmVTZXJ2aWNlQ29uZmlnIHx8IGRpZFJlcG9ydFN1Y2Nlc3NSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRpZFJlcG9ydFN1Y2Nlc3NSZWYuY3VycmVudCA9IHRydWU7XG4gICAgaW52b2tlRXh0ZW5zaW9uQ2FsbGJhY2soZXh0ZW5zaW9uU2VydmljZT8ub25JbmplY3Rpb25TdWNjZXNzKTtcbiAgfSwgW2Vudml2ZVNlcnZpY2VDb25maWcsIGV4dGVuc2lvblNlcnZpY2UsIGludm9rZUV4dGVuc2lvbkNhbGxiYWNrXSk7XG5cbiAgY29uc3QgZW52aXZlQ29uZmlnID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgLi4uY29uZmlnLFxuICAgICAgZmVhdHVyZUdhdGVzOiBlbnZpdmVTZXJ2aWNlQ29uZmlnPy5nYXRlcyB8fCBbXSxcbiAgICAgIG9yZ1Nob3J0TmFtZTogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LnNob3J0X25hbWUgfHwgJycsXG4gICAgICBvcmdJZDogZW52aXZlU2VydmljZUNvbmZpZz8ub3JnPy5vcmc/LmlkIHx8ICcnLFxuICAgIH0pLFxuICAgIFtjb25maWcsIGVudml2ZVNlcnZpY2VDb25maWddLFxuICApO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZVNlcnZpY2VDb25maWcnLCBlbnZpdmVTZXJ2aWNlQ29uZmlnLCBjb25maWcpO1xuICBsb2dnZXIubG9nRGVidWcoJ2Vudml2ZUNvbnRleHQ6IGVudml2ZUNvbmZpZycsIGVudml2ZUNvbmZpZyk7XG5cbiAgY29uc3QgZmVhdHVyZUZsYWdTZXJ2aWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBpbnB1dEZlYXR1cmVGbGFnU2VydmljZSA/PyBuZXcgRmVhdHVyZUZsYWdTZXJ2aWNlKGVudml2ZUNvbmZpZy5mZWF0dXJlR2F0ZXMpLFxuICAgIFtlbnZpdmVDb25maWcuZmVhdHVyZUdhdGVzLCBpbnB1dEZlYXR1cmVGbGFnU2VydmljZV0sXG4gICk7XG5cbiAgaWYgKGVudml2ZVNlcnZpY2VDb25maWcgPT09IG51bGwgfHwgZW52aXZlQ29uZmlnID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxFbnZpdmVDb25maWdQcm92aWRlciB7Li4uZW52aXZlQ29uZmlnfT5cbiAgICAgIDxHcmFwaFFMUHJvdmlkZXJcbiAgICAgICAgbW9ja1YzQ29uZmlnVG9EZXByZWNhdGVkQ29uZmlnPXttb2NrVjNDb25maWdUb0RlcHJlY2F0ZWRDb25maWd9XG4gICAgICAgIHJlcXVlc3RWM0NvbmZpZz17cmVxdWVzdFYzQ29uZmlnfVxuICAgICAgPlxuICAgICAgICA8TmV3T3JnQ29uZmlnUHJvdmlkZXIgb3ZlcnJpZGVDb25maWc9e292ZXJyaWRlQ29uZmlnfT5cbiAgICAgICAgICA8TG9jYWxTdG9yYWdlUHJvdmlkZXI+XG4gICAgICAgICAgICA8RmVhdHVyZUZsYWdTZXJ2aWNlUHJvdmlkZXIgZmVhdHVyZUZsYWdTZXJ2aWNlPXtmZWF0dXJlRmxhZ1NlcnZpY2V9PlxuICAgICAgICAgICAgICA8VXNlcklkZW50aXR5UHJvdmlkZXIgdXNlcklkU2VydmljZT17dXNlcklkU2VydmljZX0+XG4gICAgICAgICAgICAgICAgPEFtcGxpdHVkZVByb3ZpZGVyIGV4dGVybmFsQW1wbGl0dWRlU2VydmljZT17aW5wdXRBbXBsaXR1ZGVTZXJ2aWNlfT5cbiAgICAgICAgICAgICAgICAgIDxQYWdlUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICBvblVybFJlc29sdmVyTm90UmVhZHk9e2V4dGVuc2lvblNlcnZpY2U/Lm9uSW5qZWN0aW9uRXJyb3J9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxXaWRnZXRDb25maWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SGFyZGNvcHlQcm92aWRlciBoYXJkY29weU92ZXJyaWRlPXtoYXJkY29weU92ZXJyaWRlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxFbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFNlYXJjaEFnZW50V3JhcHBlciBlbmFibGVkQWdlbnRzPXtlbmFibGVkQWdlbnRzfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Q2hhdFRvZ2dsZUJpbmRlciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTYWxlc0FnZW50V3JhcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZEFnZW50cz17ZW5hYmxlZEFnZW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dEZWJ1Z0Jhcj17Y29uZmlnLmVudml2ZU9uIHx8IGZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld01vZGU9e3ByZXZpZXdNb2RlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9ja1NhbGVzQWdlbnREYXRhPXttb2NrU2FsZXNBZ2VudERhdGF9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2FsZXNBZ2VudFdyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvU2VhcmNoQWdlbnRXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9FbnZpdmVDc3NQcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0hhcmRjb3B5UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvV2lkZ2V0Q29uZmlnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICA8L1BhZ2VQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0FtcGxpdHVkZVByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L1VzZXJJZGVudGl0eVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9GZWF0dXJlRmxhZ1NlcnZpY2VQcm92aWRlcj5cbiAgICAgICAgICA8L0xvY2FsU3RvcmFnZVByb3ZpZGVyPlxuICAgICAgICA8L05ld09yZ0NvbmZpZ1Byb3ZpZGVyPlxuICAgICAgPC9HcmFwaFFMUHJvdmlkZXI+XG4gICAgPC9FbnZpdmVDb25maWdQcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsTUFBTSxTQUFTLElBQUlBLGVBQU8sZ0JBQWdCO0FBNEMxQyxNQUFNQyxzQkFBbUQsRUFBRSxVQUFVLG9CQUFvQjtBQUN2RixLQUFJLENBQUMsY0FBYyxTQUFTLFlBQVksWUFBWSxDQUNsRCxRQUFPO0FBRVQsUUFBTyxvQkFBQyxrQkFBZ0IsV0FBMEI7O0FBU3BELE1BQU1DLHFCQUF1RCxFQUMzRCxVQUNBLGVBQ0EsYUFDQSxjQUNBLHlCQUNJO0FBQ0osS0FBSSxDQUFDLGNBQWMsU0FBUyxZQUFZLFdBQVcsQ0FDakQsUUFBTztBQUVULFFBQ0Usb0JBQUM7RUFBNEM7WUFDM0Msb0JBQUM7R0FDYztHQUNiLFVBQVU7R0FFVDtJQUNrQjtHQUNTOztBQUlwQyxNQUFhQyxrQkFBaUQsRUFDNUQsVUFDQSxjQUFjLE9BQ2QsZ0JBQ0EsZUFDQSxxQkFBcUIsMEJBQ3JCLG9CQUFvQix5QkFDcEIsa0JBQWtCLHVCQUNsQixxQkFBcUIs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
@@ -1,3 +1,3 @@
1
1
  import { EnviveAgent } from "./types.cjs";
2
- import { EnviveProvider } from "./enviveContext.cjs";
3
- export { EnviveAgent, EnviveProvider };
2
+ import { EnviveProvider, ExtensionStatusCallbacks } from "./enviveContext.cjs";
3
+ export { EnviveAgent, EnviveProvider, ExtensionStatusCallbacks };
@@ -1,3 +1,3 @@
1
1
  import { EnviveAgent } from "./types.js";
2
- import { EnviveProvider } from "./enviveContext.js";
3
- export { EnviveAgent, EnviveProvider };
2
+ import { EnviveProvider, ExtensionStatusCallbacks } from "./enviveContext.js";
3
+ export { EnviveAgent, EnviveProvider, ExtensionStatusCallbacks };
@@ -5,4 +5,4 @@ declare enum EnviveAgent {
5
5
  }
6
6
  //#endregion
7
7
  export { EnviveAgent };
8
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZW52aXZlQ29udGV4dC90eXBlcy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGVudW0gRW52aXZlQWdlbnQge1xuICAgIFNhbGVzQWdlbnQgPSBcInNhbGVzXCIsXG4gICAgU2VhcmNoQWdlbnQgPSBcInNlYXJjaFwiXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLGNBQWMsQ0FBQyxJQUFJIn0=
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGV4dHMvZW52aXZlQ29udGV4dC90eXBlcy5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGVudW0gRW52aXZlQWdlbnQge1xuICAgIFNhbGVzQWdlbnQgPSBcInNhbGVzXCIsXG4gICAgU2VhcmNoQWdlbnQgPSBcInNlYXJjaFwiXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFXLGNBQWMsQ0FBQyxHQUFHIn0=
@@ -2,8 +2,11 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_logger = require('../../application/logging/logger.cjs');
3
3
  const require_variantInfo = require('../../application/models/variantInfo/variantInfo.cjs');
4
4
  require('../../application/models/index.cjs');
5
+ const require_eventNames = require('../../services/amplitudeService/eventNames.cjs');
5
6
  const require_variant = require('../../atoms/app/variant.cjs');
6
7
  const require_application_commerce_api = require('../../application/commerce-api.cjs');
8
+ const require_amplitudeContext = require('../amplitudeContext/amplitudeContext.cjs');
9
+ require('../amplitudeContext/index.cjs');
7
10
  const require_mapping = require('./mapping.cjs');
8
11
  let __spiffy_ai_commerce_api_client = require("@spiffy-ai/commerce-api-client");
9
12
  let react = require("react");
@@ -13,13 +16,14 @@ let jotai = require("jotai");
13
16
  //#region src/contexts/pageContext/pageContext.tsx
14
17
  const logger = new require_logger.default("pageContext");
15
18
  const PageContext = (0, react.createContext)(void 0);
16
- const PageProvider = ({ children, previewMode = false }) => {
19
+ const PageProvider = ({ children, previewMode = false, onUrlResolverNotReady }) => {
17
20
  const [pageUrl, setPageUrl] = (0, react.useState)(void 0);
18
21
  const [urlResolverResponse, setUrlResolverResponse] = (0, jotai.useAtom)(require_variant.urlResolverAtom);
19
22
  const [isLoading, setIsLoading] = (0, react.useState)(false);
20
23
  const [variantInfo, setVariantInfo] = (0, jotai.useAtom)(require_variant.pageVariantInfoAtom);
21
24
  const [userEvent, setUserEvent] = (0, jotai.useAtom)(require_variant.pageUserEventAtom);
22
25
  const [isSupported, setIsSupported] = (0, react.useState)(false);
26
+ const lastNotReadyUrlRef = (0, react.useRef)(null);
23
27
  (0, react.useEffect)(() => {
24
28
  setPageUrl(window.location.href);
25
29
  }, []);
@@ -51,11 +55,19 @@ const PageProvider = ({ children, previewMode = false }) => {
51
55
  if (response.ready) {
52
56
  const newVariantInfo = require_mapping.mapUrlResolverResponseToVariantInfo(url, response);
53
57
  const newUserEvent = require_mapping.mapApiUserEventToUserEvent(response.user_event ?? void 0);
58
+ logger.logDebug("setting variant info and user event", {
59
+ newVariantInfo,
60
+ newUserEvent
61
+ });
54
62
  setVariantInfo(newVariantInfo);
55
63
  setUserEvent(newUserEvent);
56
64
  } else {
57
65
  setUserEvent(void 0);
58
66
  setVariantInfo(void 0);
67
+ logger.logDebug("set variant info and user event to undefined", {
68
+ variantInfo,
69
+ userEvent
70
+ });
59
71
  }
60
72
  }, [setVariantInfo, setUserEvent]);
61
73
  (0, react.useEffect)(() => {
@@ -75,6 +87,14 @@ const PageProvider = ({ children, previewMode = false }) => {
75
87
  setVariantFromUrlResolver(cleansedUrl, response);
76
88
  setIsLoading(false);
77
89
  setIsSupported(response.ready);
90
+ if (response.ready) lastNotReadyUrlRef.current = null;
91
+ else if (onUrlResolverNotReady && lastNotReadyUrlRef.current !== cleansedUrl) {
92
+ lastNotReadyUrlRef.current = cleansedUrl;
93
+ const err = /* @__PURE__ */ new Error(`URL resolver returned ready=false for ${cleansedUrl}`);
94
+ Promise.resolve(onUrlResolverNotReady(err)).catch((callbackError) => {
95
+ logger.logDebug("onUrlResolverNotReady callback failed", callbackError);
96
+ });
97
+ }
78
98
  } catch (e) {
79
99
  setIsLoading(false);
80
100
  logger.logError("Failed to resolve page URL", e, { pageUrl });
@@ -88,7 +108,62 @@ const PageProvider = ({ children, previewMode = false }) => {
88
108
  setVariantFromUrlResolver,
89
109
  userEvent,
90
110
  variantInfo,
91
- previewMode
111
+ previewMode,
112
+ onUrlResolverNotReady
113
+ ]);
114
+ const { trackEvent } = require_amplitudeContext.useAmplitude();
115
+ const resolvedVariantInfo = (0, jotai.useAtomValue)(require_variant.variantInfoAtom);
116
+ const hasParsedVariantInfo = (0, jotai.useAtomValue)(require_variant.hasParsedVariantInfoAtom);
117
+ const pageViewedFired = (0, react.useRef)(false);
118
+ (0, react.useEffect)(() => {
119
+ if (pageViewedFired.current || isLoading || !hasParsedVariantInfo || !variantInfo) return;
120
+ let pageType;
121
+ let pageId;
122
+ switch (variantInfo.variantType) {
123
+ case require_variantInfo.VariantTypeEnum.Pdp:
124
+ pageType = "pdp";
125
+ pageId = variantInfo.productId;
126
+ break;
127
+ case require_variantInfo.VariantTypeEnum.Plp:
128
+ pageType = "plp";
129
+ pageId = variantInfo.plpId;
130
+ break;
131
+ case require_variantInfo.VariantTypeEnum.Home:
132
+ pageType = "homepage";
133
+ pageId = variantInfo.url;
134
+ break;
135
+ case require_variantInfo.VariantTypeEnum.Other:
136
+ pageType = "other";
137
+ pageId = variantInfo.url;
138
+ break;
139
+ case require_variantInfo.VariantTypeEnum.PageVisit:
140
+ pageType = "other";
141
+ pageId = variantInfo.url;
142
+ break;
143
+ case require_variantInfo.VariantTypeEnum.FullPageSalesAgent:
144
+ pageType = "full_page_sales_agent";
145
+ pageId = variantInfo.url;
146
+ break;
147
+ default: return;
148
+ }
149
+ pageViewedFired.current = true;
150
+ trackEvent({
151
+ eventName: require_eventNames.EnviveMetricsEventName.PageViewed,
152
+ eventProps: {
153
+ "context.page_type": pageType,
154
+ "context.page_id": pageId,
155
+ "context.supported": isSupported,
156
+ "context.ready": isSupported,
157
+ "context.page_variant_id": resolvedVariantInfo.variantId
158
+ }
159
+ });
160
+ }, [
161
+ isLoading,
162
+ isSupported,
163
+ hasParsedVariantInfo,
164
+ variantInfo,
165
+ resolvedVariantInfo,
166
+ trackEvent
92
167
  ]);
93
168
  const setPageUrlStable = (0, react.useCallback)((url) => {
94
169
  setPageUrl(url);
@@ -122,4 +197,4 @@ const usePage = () => {
122
197
  //#endregion
123
198
  exports.PageProvider = PageProvider;
124
199
  exports.usePage = usePage;
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHByZXZpZXdNb2RlOiBib29sZWFuO1xufT4iLCJ1cmxSZXNvbHZlckF0b20iLCJwYWdlVmFyaWFudEluZm9BdG9tIiwicGFnZVVzZXJFdmVudEF0b20iLCJVc2VyRXZlbnRDYXRlZ29yeSIsIlBhZ2VWaXNpdENhdGVnb3J5IiwiVmFyaWFudFR5cGVFbnVtIiwibWFwVXJsUmVzb2x2ZXJSZXNwb25zZVRvVmFyaWFudEluZm8iLCJtYXBBcGlVc2VyRXZlbnRUb1VzZXJFdmVudCIsIkNvbW1lcmNlQXBpQ2xpZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZWFjdE5vZGUsXG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBVcmxSZXNvbHZlclJlc3BvbnNlLFxuICBwYWdlVXNlckV2ZW50QXRvbSxcbiAgcGFnZVZhcmlhbnRJbmZvQXRvbSxcbiAgdXJsUmVzb2x2ZXJBdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgdXNlQXRvbSB9IGZyb20gJ2pvdGFpJztcbmltcG9ydCBDb21tZXJjZUFwaUNsaWVudCBmcm9tICdzcmMvYXBwbGljYXRpb24vY29tbWVyY2UtYXBpJztcbmltcG9ydCBMb2dnZXIgZnJvbSAnc3JjL2FwcGxpY2F0aW9uL2xvZ2dpbmcvbG9nZ2VyJztcbmltcG9ydCB7IFBhZ2VWaXNpdENhdGVnb3J5LCBVc2VyRXZlbnRDYXRlZ29yeSB9IGZyb20gJ0BzcGlmZnktYWkvY29tbWVyY2UtYXBpLWNsaWVudCc7XG5pbXBvcnQgeyBWYXJpYW50VHlwZUVudW0gfSBmcm9tICdzcmMvYXBwbGljYXRpb24vbW9kZWxzJztcbmltcG9ydCB7IG1hcEFwaVVzZXJFdmVudFRvVXNlckV2ZW50LCBtYXBVcmxSZXNvbHZlclJlc3BvbnNlVG9WYXJpYW50SW5mbyB9IGZyb20gJy4vbWFwcGluZyc7XG5pbXBvcnQgeyBQYWdlRGV0YWlscyB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdwYWdlQ29udGV4dCcpO1xuXG5jb25zdCBQYWdlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8XG4gIHwgKFBhZ2VEZXRhaWxzICYge1xuICAgICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgICAgaXNTdXBwb3J0ZWQ6IGJvb2xlYW47XG4gICAgICBzZXRQYWdlVXJsOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgfSlcbiAgfCB1bmRlZmluZWRcbj4odW5kZWZpbmVkKTtcblxuZXhwb3J0IGNvbnN0IFBhZ2VQcm92aWRlcjogUmVhY3QuRkM8e1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBwcmV2aWV3TW9kZTogYm9vbGVhbjtcbn0+ID0gKHsgY2hpbGRyZW4sIHByZXZpZXdNb2RlID0gZmFsc2UgfSkgPT4ge1xuICBjb25zdCBbcGFnZVVybCwgc2V0UGFnZVVybF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFt1cmxSZXNvbHZlclJlc3BvbnNlLCBzZXRVcmxSZXNvbHZlclJlc3BvbnNlXSA9IHVzZUF0b20odXJsUmVzb2x2ZXJBdG9tKTtcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ZhcmlhbnRJbmZvLCBzZXRWYXJpYW50SW5mb10gPSB1c2VBdG9tKHBhZ2VWYXJpYW50SW5mb0F0b20pO1xuICBjb25zdCBbdXNlckV2ZW50LCBzZXRVc2VyRXZlbnRdID0gdXNlQXRvbShwYWdlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IFtpc1N1cHBvcnRlZCwgc2V0SXNTdXBwb3J0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFBhZ2VVcmwod2luZG93LmxvY2F0aW9uLmhyZWYpO1xuICB9LCBbXSk7XG5cbiAgLy8gQXV0by1pbml0aWFsaXplIGF0b21zIGZvciBwcmV2aWV3IG1vZGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAocHJldmlld01vZGUgJiYgIXVzZXJFdmVudCAmJiAhdmFyaWFudEluZm8pIHtcbiAgICAgIGNvbnN0IHVybCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLmhyZWYgOiAnJztcbiAgICAgIHNldFVzZXJFdmVudCh7XG4gICAgICAgIGV2ZW50X2lkOiAncHJldmlldy11c2VyLWV2ZW50JyxcbiAgICAgICAgY3JlYXRlZF9hdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBjYXRlZ29yeTogVXNlckV2ZW50Q2F0ZWdvcnkuUGFnZVZpc2l0LFxuICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgcGFnZV92aXNpdF9jYXRlZ29yeTogUGFnZVZpc2l0Q2F0ZWdvcnkuT3RoZXIsXG4gICAgICAgICAgdXJsLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBhbnkpO1xuXG4gICAgICBzZXRWYXJpYW50SW5mbyh7XG4gICAgICAgIHZhcmlhbnRUeXBlOiBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0LFxuICAgICAgICB1cmwsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtwcmV2aWV3TW9kZSwgdXNlckV2ZW50LCB2YXJpYW50SW5mbywgc2V0VXNlckV2ZW50LCBzZXRWYXJpYW50SW5mb10pO1xuXG4gIGNvbnN0IHNldFZhcmlhbnRGcm9tVXJsUmVzb2x2ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAodXJsOiBzdHJpbmcsIHJlc3BvbnNlOiBVcmxSZXNvbHZlclJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2UucmVhZHkpIHtcbiAgICAgICAgY29uc3QgbmV3VmFyaWFudEluZm8gPSBtYXBVcmxSZXNvbHZlclJlc3BvbnNlVG9WYXJpYW50SW5mbyh1cmwsIHJlc3BvbnNlKTtcbiAgICAgICAgY29uc3QgbmV3VXNlckV2ZW50ID0gbWFwQXBpVXNlckV2ZW50VG9Vc2VyRXZlbnQocmVzcG9uc2UudXNlcl9ldmVudCA/PyB1bmRlZmluZWQpO1xuICAgICAgICBzZXRWYXJpYW50SW5mbyhuZXdWYXJpYW50SW5mbyk7XG4gICAgICAgIHNldFVzZXJFdmVudChuZXdVc2VyRXZlbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VXNlckV2ZW50KHVuZGVmaW5lZCk7XG4gICAgICAgIHNldFZhcmlhbnRJbmZvKHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbc2V0VmFyaWFudEluZm8sIHNldFVzZXJFdmVudF0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCByZXNvbHZlUGFnZVVybCA9IGFzeW5jICgpID0+IHtcbiAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICghcGFnZVVybCkge1xuICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgaW4gcHJldmlldyBtb2RlIG9yIGF0b21zIGFyZSBhbHJlYWR5IHNldCAoZS5nLiwgYnkgc3Rvcnlib29rKSwgc2tpcCBBUEkgY2FsbFxuICAgICAgICBpZiAocHJldmlld01vZGUgfHwgdXNlckV2ZW50IHx8IHZhcmlhbnRJbmZvKSB7XG4gICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGVhbnNlZFVybCA9IHBhZ2VVcmwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgICB1cmxSZXNvbHZlclJlc3BvbnNlW2NsZWFuc2VkVXJsXSA/P1xuICAgICAgICAgICgoYXdhaXQgQ29tbWVyY2VBcGlDbGllbnQucmVzb2x2ZVVybChjbGVhbnNlZFVybCkpIGFzIFVybFJlc29sdmVyUmVzcG9uc2UpO1xuICAgICAgICBzZXRWYXJpYW50RnJvbVVybFJlc29sdmVyKGNsZWFuc2VkVXJsLCByZXNwb25zZSk7XG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIHNldElzU3VwcG9ydGVkKHJlc3BvbnNlLnJlYWR5KTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0Vycm9yKCdGYWlsZWQgdG8gcmVzb2x2ZSBwYWdlIFVSTCcsIGUsIHsgcGFnZVVybCB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJlc29sdmVQYWdlVXJsKCk7XG4gIH0sIFtcbiAgICBwYWdlVXJsLFxuICAgIHVybFJlc29sdmVyUmVzcG9uc2UsXG4gICAgc2V0VXJsUmVzb2x2ZXJSZXNwb25zZSxcbiAgICBzZXRWYXJpYW50RnJvbVVybFJlc29sdmVyLFxuICAgIHVzZXJFdmVudCxcbiAgICB2YXJpYW50SW5mbyxcbiAgICBwcmV2aWV3TW9kZSxcbiAgXSk7XG5cbiAgY29uc3Qgc2V0UGFnZVVybFN0YWJsZSA9IHVzZUNhbGxiYWNrKCh1cmw6IHN0cmluZykgPT4ge1xuICAgIHNldFBhZ2VVcmwodXJsKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgcGFnZVVybCxcbiAgICAgIHZhcmlhbnRJbmZvLFxuICAgICAgdXNlckV2ZW50LFxuICAgICAgaXNMb2FkaW5nLFxuICAgICAgaXNTdXBwb3J0ZWQsXG4gICAgICBzZXRQYWdlVXJsOiBzZXRQYWdlVXJsU3RhYmxlLFxuICAgIH0pLFxuICAgIFtwYWdlVXJsLCB1c2VyRXZlbnQsIHZhcmlhbnRJbmZvLCBpc0xvYWRpbmcsIGlzU3VwcG9ydGVkLCBzZXRQYWdlVXJsU3RhYmxlXSxcbiAgKTtcblxuICByZXR1cm4gPFBhZ2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+e2NoaWxkcmVufTwvUGFnZUNvbnRleHQuUHJvdmlkZXI+O1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVBhZ2UgPSAoKSA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KFBhZ2VDb250ZXh0KTtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd1c2VQYWdlIG11c3QgYmUgdXNlZCB3aXRoaW4gYSBQYWdlUHJvdmlkZXInKTtcbiAgfVxuICByZXR1cm4gY29udGV4dDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUF1QkEsTUFBTSxTQUFTLElBQUlBLHVCQUFPLGNBQWM7QUFFeEMsTUFBTSx1Q0FPSixPQUFVO0FBRVosTUFBYUMsZ0JBR1AsRUFBRSxVQUFVLGNBQWMsWUFBWTtDQUMxQyxNQUFNLENBQUMsU0FBUyxrQ0FBMkMsT0FBVTtDQUNyRSxNQUFNLENBQUMscUJBQXFCLDZDQUFrQ0MsZ0NBQWdCO0NBQzlFLE1BQU0sQ0FBQyxXQUFXLG9DQUF5QixNQUFNO0NBQ2pELE1BQU0sQ0FBQyxhQUFhLHFDQUEwQkMsb0NBQW9CO0NBQ2xFLE1BQU0sQ0FBQyxXQUFXLG1DQUF3QkMsa0NBQWtCO0NBQzVELE1BQU0sQ0FBQyxhQUFhLHNDQUEyQixNQUFNO0FBQ3JELDRCQUFnQjtBQUNkLGFBQVcsT0FBTyxTQUFTLEtBQUs7SUFDL0IsRUFBRSxDQUFDO0FBR04sNEJBQWdCO0FBQ2QsTUFBSSxlQUFlLENBQUMsYUFBYSxDQUFDLGFBQWE7R0FDN0MsTUFBTSxNQUFNLE9BQU8sV0FBVyxjQUFjLE9BQU8sU0FBUyxPQUFPO0FBQ25FLGdCQUFhO0lBQ1gsVUFBVTtJQUNWLDZCQUFZLElBQUksTUFBTSxFQUFDLGFBQWE7SUFDcEMsVUFBVUMsa0RBQWtCO0lBQzVCLFlBQVk7S0FDVixxQkFBcUJDLGtEQUFrQjtLQUN2QztLQUNEO0lBQ0YsQ0FBUTtBQUVULGtCQUFlO0lBQ2IsYUFBYUMsb0NBQWdCO0lBQzdCO0lBQ0QsQ0FBQzs7SUFFSDtFQUFDO0VBQWE7RUFBVztFQUFhO0VBQWM7RUFBZSxDQUFDO0NBRXZFLE1BQU0sb0RBQ0gsS0FBYSxhQUFrQztBQUM5QyxNQUFJLFNBQVMsT0FBTztHQUNsQixNQUFNLGlCQUFpQkMsb0RBQW9DLEtBQUssU0FBUztHQUN6RSxNQUFNLGVBQWVDLDJDQUEyQixTQUFTLGNBQWMsT0FBVTtBQUNqRixrQkFBZSxlQUFlO0FBQzlCLGdCQUFhLGFBQWE7U0FDckI7QUFDTCxnQkFBYSxPQUFVO0FBQ3ZCLGtCQUFlLE9BQVU7O0lBRzdCLENBQUMsZ0JBQWdCLGFBQWEsQ0FDL0I7QUFFRCw0QkFBZ0I7RUFDZCxNQUFNLGlCQUFpQixZQUFZO0FBQ2pDLGdCQUFhLEtBQUs7QUFDbEIsT0FBSTtBQUNGLFFBQUksQ0FBQyxTQUFTO0FBQ1osa0JBQWEsTUFBTTtBQUNuQjs7QUFJRixRQUFJLGVBQWUsYUFBYSxhQUFhO0FBQzNDLGtCQUFhLE1BQU07QUFDbkI7O0lBR0YsTUFBTSxjQUFjLFFBQVEsYUFBYSxDQUFDLE1BQU07SUFDaEQsTUFBTSxXQUNKLG9CQUFvQixnQkFDbEIsTUFBTUMseUNBQWtCLFdBQVcsWUFBWTtBQUNuRCw4QkFBMEIsYUFBYSxTQUFTO0FBQ2hELGlCQUFhLE1BQU07QUFDbkIsbUJBQWUsU0FBUyxNQUFNO1lBQ3ZCLEdBQUc7QUFDVixpQkFBYSxNQUFNO0FBQ25CLFdBQU8sU0FBUyw4QkFBOEIsR0FBRyxFQUFFLFNBQVMsQ0FBQzs7O0FBR2pFLGtCQUFnQjtJQUNmO0VBQ0Q7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDRCxDQUFDO0NBRUYsTUFBTSwyQ0FBZ0MsUUFBZ0I7QUFDcEQsYUFBVyxJQUFJO0lBQ2QsRUFBRSxDQUFDO0NBRU4sTUFBTSxrQ0FDRztFQUNMO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxZQUFZO0VBQ2IsR0FDRDtFQUFDO0VBQVM7RUFBVztFQUFhO0VBQVc7RUFBYTtFQUFpQixDQUM1RTtBQUVELFFBQU8sMkNBQUMsWUFBWTtFQUFnQjtFQUFRO0dBQWdDOztBQUc5RSxNQUFhLGdCQUFnQjtDQUMzQixNQUFNLGdDQUFxQixZQUFZO0FBQ3ZDLEtBQUksQ0FBQyxRQUNILE9BQU0sSUFBSSxNQUFNLDZDQUE2QztBQUUvRCxRQUFPIn0=
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuY2pzIiwibmFtZXMiOlsiTG9nZ2VyIiwiUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHByZXZpZXdNb2RlOiBib29sZWFuO1xuICAvKiogV2hlbiBVUkwgcmVzb2x2ZXIgcmV0dXJucyBgcmVhZHk6IGZhbHNlYCwgaW52b2tlZCBmb3IgZXh0ZW5zaW9uL2luamVjdGlvbiBmYWlsdXJlIHJlcG9ydGluZy4gKi9cbiAgb25VcmxSZXNvbHZlck5vdFJlYWR5PzogKGVycm9yOiBFcnJvcikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG59PiIsInVybFJlc29sdmVyQXRvbSIsInBhZ2VWYXJpYW50SW5mb0F0b20iLCJwYWdlVXNlckV2ZW50QXRvbSIsIlVzZXJFdmVudENhdGVnb3J5IiwiUGFnZVZpc2l0Q2F0ZWdvcnkiLCJWYXJpYW50VHlwZUVudW0iLCJtYXBVcmxSZXNvbHZlclJlc3BvbnNlVG9WYXJpYW50SW5mbyIsIm1hcEFwaVVzZXJFdmVudFRvVXNlckV2ZW50IiwiQ29tbWVyY2VBcGlDbGllbnQiLCJ1c2VBbXBsaXR1ZGUiLCJ2YXJpYW50SW5mb0F0b20iLCJoYXNQYXJzZWRWYXJpYW50SW5mb0F0b20iLCJwYWdlVHlwZTogc3RyaW5nIiwicGFnZUlkOiBzdHJpbmciLCJFbnZpdmVNZXRyaWNzRXZlbnROYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSZWFjdE5vZGUsXG4gIGNyZWF0ZUNvbnRleHQsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIFVybFJlc29sdmVyUmVzcG9uc2UsXG4gIGhhc1BhcnNlZFZhcmlhbnRJbmZvQXRvbSxcbiAgcGFnZVVzZXJFdmVudEF0b20sXG4gIHBhZ2VWYXJpYW50SW5mb0F0b20sXG4gIHVybFJlc29sdmVyQXRvbSxcbiAgdmFyaWFudEluZm9BdG9tLFxufSBmcm9tICdzcmMvYXRvbXMvYXBwL3ZhcmlhbnQnO1xuaW1wb3J0IHsgdXNlQXRvbSwgdXNlQXRvbVZhbHVlIH0gZnJvbSAnam90YWknO1xuaW1wb3J0IENvbW1lcmNlQXBpQ2xpZW50IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9jb21tZXJjZS1hcGknO1xuaW1wb3J0IExvZ2dlciBmcm9tICdzcmMvYXBwbGljYXRpb24vbG9nZ2luZy9sb2dnZXInO1xuaW1wb3J0IHsgUGFnZVZpc2l0Q2F0ZWdvcnksIFVzZXJFdmVudENhdGVnb3J5IH0gZnJvbSAnQHNwaWZmeS1haS9jb21tZXJjZS1hcGktY2xpZW50JztcbmltcG9ydCB7IFZhcmlhbnRUeXBlRW51bSB9IGZyb20gJ3NyYy9hcHBsaWNhdGlvbi9tb2RlbHMnO1xuaW1wb3J0IHsgRW52aXZlTWV0cmljc0V2ZW50TmFtZSwgdXNlQW1wbGl0dWRlIH0gZnJvbSAnc3JjL2NvbnRleHRzL2FtcGxpdHVkZUNvbnRleHQnO1xuaW1wb3J0IHsgbWFwQXBpVXNlckV2ZW50VG9Vc2VyRXZlbnQsIG1hcFVybFJlc29sdmVyUmVzcG9uc2VUb1ZhcmlhbnRJbmZvIH0gZnJvbSAnLi9tYXBwaW5nJztcbmltcG9ydCB7IFBhZ2VEZXRhaWxzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ3BhZ2VDb250ZXh0Jyk7XG5cbmNvbnN0IFBhZ2VDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxcbiAgfCAoUGFnZURldGFpbHMgJiB7XG4gICAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgICBpc1N1cHBvcnRlZDogYm9vbGVhbjtcbiAgICAgIHNldFBhZ2VVcmw6ICh1cmw6IHN0cmluZykgPT4gdm9pZDtcbiAgICB9KVxuICB8IHVuZGVmaW5lZFxuPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgUGFnZVByb3ZpZGVyOiBSZWFjdC5GQzx7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIHByZXZpZXdNb2RlOiBib29sZWFuO1xuICAvKiogV2hlbiBVUkwgcmVzb2x2ZXIgcmV0dXJucyBgcmVhZHk6IGZhbHNlYCwgaW52b2tlZCBmb3IgZXh0ZW5zaW9uL2luamVjdGlvbiBmYWlsdXJlIHJlcG9ydGluZy4gKi9cbiAgb25VcmxSZXNvbHZlck5vdFJlYWR5PzogKGVycm9yOiBFcnJvcikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG59PiA9ICh7IGNoaWxkcmVuLCBwcmV2aWV3TW9kZSA9IGZhbHNlLCBvblVybFJlc29sdmVyTm90UmVhZHkgfSkgPT4ge1xuICBjb25zdCBbcGFnZVVybCwgc2V0UGFnZVVybF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IFt1cmxSZXNvbHZlclJlc3BvbnNlLCBzZXRVcmxSZXNvbHZlclJlc3BvbnNlXSA9IHVzZUF0b20odXJsUmVzb2x2ZXJBdG9tKTtcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3ZhcmlhbnRJbmZvLCBzZXRWYXJpYW50SW5mb10gPSB1c2VBdG9tKHBhZ2VWYXJpYW50SW5mb0F0b20pO1xuICBjb25zdCBbdXNlckV2ZW50LCBzZXRVc2VyRXZlbnRdID0gdXNlQXRvbShwYWdlVXNlckV2ZW50QXRvbSk7XG4gIGNvbnN0IFtpc1N1cHBvcnRlZCwgc2V0SXNTdXBwb3J0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBsYXN0Tm90UmVhZHlVcmxSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRQYWdlVXJsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcbiAgfSwgW10pO1xuXG4gIC8vIEF1dG8taW5pdGlhbGl6ZSBhdG9tcyBmb3IgcHJldmlldyBtb2RlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByZXZpZXdNb2RlICYmICF1c2VyRXZlbnQgJiYgIXZhcmlhbnRJbmZvKSB7XG4gICAgICBjb25zdCB1cmwgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogJyc7XG4gICAgICBzZXRVc2VyRXZlbnQoe1xuICAgICAgICBldmVudF9pZDogJ3ByZXZpZXctdXNlci1ldmVudCcsXG4gICAgICAgIGNyZWF0ZWRfYXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgY2F0ZWdvcnk6IFVzZXJFdmVudENhdGVnb3J5LlBhZ2VWaXNpdCxcbiAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgIHBhZ2VfdmlzaXRfY2F0ZWdvcnk6IFBhZ2VWaXNpdENhdGVnb3J5Lk90aGVyLFxuICAgICAgICAgIHVybCxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgYW55KTtcblxuICAgICAgc2V0VmFyaWFudEluZm8oe1xuICAgICAgICB2YXJpYW50VHlwZTogVmFyaWFudFR5cGVFbnVtLlBhZ2VWaXNpdCxcbiAgICAgICAgdXJsLFxuICAgICAgfSk7XG4gICAgfVxuICB9LCBbcHJldmlld01vZGUsIHVzZXJFdmVudCwgdmFyaWFudEluZm8sIHNldFVzZXJFdmVudCwgc2V0VmFyaWFudEluZm9dKTtcblxuICBjb25zdCBzZXRWYXJpYW50RnJvbVVybFJlc29sdmVyID0gdXNlQ2FsbGJhY2soXG4gICAgKHVybDogc3RyaW5nLCByZXNwb25zZTogVXJsUmVzb2x2ZXJSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlLnJlYWR5KSB7XG4gICAgICAgIGNvbnN0IG5ld1ZhcmlhbnRJbmZvID0gbWFwVXJsUmVzb2x2ZXJSZXNwb25zZVRvVmFyaWFudEluZm8odXJsLCByZXNwb25zZSk7XG4gICAgICAgIGNvbnN0IG5ld1VzZXJFdmVudCA9IG1hcEFwaVVzZXJFdmVudFRvVXNlckV2ZW50KHJlc3BvbnNlLnVzZXJfZXZlbnQgPz8gdW5kZWZpbmVkKTtcbiAgICAgICAgbG9nZ2VyLmxvZ0RlYnVnKCdzZXR0aW5nIHZhcmlhbnQgaW5mbyBhbmQgdXNlciBldmVudCcsIHsgbmV3VmFyaWFudEluZm8sIG5ld1VzZXJFdmVudCB9KTtcbiAgICAgICAgc2V0VmFyaWFudEluZm8obmV3VmFyaWFudEluZm8pO1xuICAgICAgICBzZXRVc2VyRXZlbnQobmV3VXNlckV2ZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFVzZXJFdmVudCh1bmRlZmluZWQpO1xuICAgICAgICBzZXRWYXJpYW50SW5mbyh1bmRlZmluZWQpO1xuICAgICAgICBsb2dnZXIubG9nRGVidWcoJ3NldCB2YXJpYW50IGluZm8gYW5kIHVzZXIgZXZlbnQgdG8gdW5kZWZpbmVkJywgeyB2YXJpYW50SW5mbywgdXNlckV2ZW50IH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3NldFZhcmlhbnRJbmZvLCBzZXRVc2VyRXZlbnRdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVzb2x2ZVBhZ2VVcmwgPSBhc3luYyAoKSA9PiB7XG4gICAgICBzZXRJc0xvYWRpbmcodHJ1ZSk7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoIXBhZ2VVcmwpIHtcbiAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGluIHByZXZpZXcgbW9kZSBvciBhdG9tcyBhcmUgYWxyZWFkeSBzZXQgKGUuZy4sIGJ5IHN0b3J5Ym9vayksIHNraXAgQVBJIGNhbGxcbiAgICAgICAgaWYgKHByZXZpZXdNb2RlIHx8IHVzZXJFdmVudCB8fCB2YXJpYW50SW5mbykge1xuICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xlYW5zZWRVcmwgPSBwYWdlVXJsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9XG4gICAgICAgICAgdXJsUmVzb2x2ZXJSZXNwb25zZVtjbGVhbnNlZFVybF0gPz9cbiAgICAgICAgICAoKGF3YWl0IENvbW1lcmNlQXBpQ2xpZW50LnJlc29sdmVVcmwoY2xlYW5zZWRVcmwpKSBhcyBVcmxSZXNvbHZlclJlc3BvbnNlKTtcbiAgICAgICAgc2V0VmFyaWFudEZyb21VcmxSZXNvbHZlcihjbGVhbnNlZFVybCwgcmVzcG9uc2UpO1xuICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICBzZXRJc1N1cHBvcnRlZChyZXNwb25zZS5yZWFkeSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnJlYWR5KSB7XG4gICAgICAgICAgbGFzdE5vdFJlYWR5VXJsUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKG9uVXJsUmVzb2x2ZXJOb3RSZWFkeSAmJiBsYXN0Tm90UmVhZHlVcmxSZWYuY3VycmVudCAhPT0gY2xlYW5zZWRVcmwpIHtcbiAgICAgICAgICBsYXN0Tm90UmVhZHlVcmxSZWYuY3VycmVudCA9IGNsZWFuc2VkVXJsO1xuICAgICAgICAgIGNvbnN0IGVyciA9IG5ldyBFcnJvcihgVVJMIHJlc29sdmVyIHJldHVybmVkIHJlYWR5PWZhbHNlIGZvciAke2NsZWFuc2VkVXJsfWApO1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZShvblVybFJlc29sdmVyTm90UmVhZHkoZXJyKSkuY2F0Y2goY2FsbGJhY2tFcnJvciA9PiB7XG4gICAgICAgICAgICBsb2dnZXIubG9nRGVidWcoJ29uVXJsUmVzb2x2ZXJOb3RSZWFkeSBjYWxsYmFjayBmYWlsZWQnLCBjYWxsYmFja0Vycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpO1xuICAgICAgICBsb2dnZXIubG9nRXJyb3IoJ0ZhaWxlZCB0byByZXNvbHZlIHBhZ2UgVVJMJywgZSwgeyBwYWdlVXJsIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgcmVzb2x2ZVBhZ2VVcmwoKTtcbiAgfSwgW1xuICAgIHBhZ2VVcmwsXG4gICAgdXJsUmVzb2x2ZXJSZXNwb25zZSxcbiAgICBzZXRVcmxSZXNvbHZlclJlc3BvbnNlLFxuICAgIHNldFZhcmlhbnRGcm9tVXJsUmVzb2x2ZXIsXG4gICAgdXNlckV2ZW50LFxuICAgIHZhcmlhbnRJbmZvLFxuICAgIHByZXZpZXdNb2RlLFxuICAgIG9uVXJsUmVzb2x2ZXJOb3RSZWFkeSxcbiAgXSk7XG5cbiAgY29uc3QgeyB0cmFja0V2ZW50IH0gPSB1c2VBbXBsaXR1ZGUoKTtcbiAgY29uc3QgcmVzb2x2ZWRWYXJpYW50SW5mbyA9IHVzZUF0b21WYWx1ZSh2YXJpYW50SW5mb0F0b20pO1xuICBjb25zdCBoYXNQYXJzZWRWYXJpYW50SW5mbyA9IHVzZUF0b21WYWx1ZShoYXNQYXJzZWRWYXJpYW50SW5mb0F0b20pO1xuICBjb25zdCBwYWdlVmlld2VkRmlyZWQgPSB1c2VSZWYoZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHBhZ2VWaWV3ZWRGaXJlZC5jdXJyZW50IHx8IGlzTG9hZGluZyB8fCAhaGFzUGFyc2VkVmFyaWFudEluZm8gfHwgIXZhcmlhbnRJbmZvKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHBhZ2VUeXBlOiBzdHJpbmc7XG4gICAgbGV0IHBhZ2VJZDogc3RyaW5nO1xuXG4gICAgc3dpdGNoICh2YXJpYW50SW5mby52YXJpYW50VHlwZSkge1xuICAgICAgY2FzZSBWYXJpYW50VHlwZUVudW0uUGRwOlxuICAgICAgICBwYWdlVHlwZSA9ICdwZHAnO1xuICAgICAgICBwYWdlSWQgPSB2YXJpYW50SW5mby5wcm9kdWN0SWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBWYXJpYW50VHlwZUVudW0uUGxwOlxuICAgICAgICBwYWdlVHlwZSA9ICdwbHAnO1xuICAgICAgICBwYWdlSWQgPSB2YXJpYW50SW5mby5wbHBJZDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhcmlhbnRUeXBlRW51bS5Ib21lOlxuICAgICAgICBwYWdlVHlwZSA9ICdob21lcGFnZSc7XG4gICAgICAgIHBhZ2VJZCA9IHZhcmlhbnRJbmZvLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhcmlhbnRUeXBlRW51bS5PdGhlcjpcbiAgICAgICAgcGFnZVR5cGUgPSAnb3RoZXInO1xuICAgICAgICBwYWdlSWQgPSB2YXJpYW50SW5mby51cmw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBWYXJpYW50VHlwZUVudW0uUGFnZVZpc2l0OlxuICAgICAgICBwYWdlVHlwZSA9ICdvdGhlcic7XG4gICAgICAgIHBhZ2VJZCA9IHZhcmlhbnRJbmZvLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFZhcmlhbnRUeXBlRW51bS5GdWxsUGFnZVNhbGVzQWdlbnQ6XG4gICAgICAgIHBhZ2VUeXBlID0gJ2Z1bGxfcGFnZV9zYWxlc19hZ2VudCc7XG4gICAgICAgIHBhZ2VJZCA9IHZhcmlhbnRJbmZvLnVybDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcGFnZVZpZXdlZEZpcmVkLmN1cnJlbnQgPSB0cnVlO1xuXG4gICAgdHJhY2tFdmVudCh7XG4gICAgICBldmVudE5hbWU6IEVudml2ZU1ldHJpY3NFdmVudE5hbWUuUGFnZVZpZXdlZCxcbiAgICAgIGV2ZW50UHJvcHM6IHtcbiAgICAgICAgJ2NvbnRleHQucGFnZV90eXBlJzogcGFnZVR5cGUsXG4gICAgICAgICdjb250ZXh0LnBhZ2VfaWQnOiBwYWdlSWQsXG4gICAgICAgICdjb250ZXh0LnN1cHBvcnRlZCc6IGlzU3VwcG9ydGVkLFxuICAgICAgICAnY29udGV4dC5yZWFkeSc6IGlzU3VwcG9ydGVkLFxuICAgICAgICAnY29udGV4dC5wYWdlX3ZhcmlhbnRfaWQnOiByZXNvbHZlZFZhcmlhbnRJbmZvLnZhcmlhbnRJZCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sIFtpc0xvYWRpbmcsIGlzU3VwcG9ydGVkLCBoYXNQYXJzZWRWYXJpYW50SW5mbywgdmFyaWFudEluZm8sIHJlc29sdmVkVmFyaWFudEluZm8sIHRyYWNrRXZlbnRdKTtcblxuICBjb25zdCBzZXRQYWdlVXJsU3RhYmxlID0gdXNlQ2FsbGJhY2soKHVybDogc3RyaW5nKSA9PiB7XG4gICAgc2V0UGFnZVVybCh1cmwpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgdmFsdWUgPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICBwYWdlVXJsLFxuICAgICAgdmFyaWFudEluZm8sXG4gICAgICB1c2VyRXZlbnQsXG4gICAgICBpc0xvYWRpbmcsXG4gICAgICBpc1N1cHBvcnRlZCxcbiAgICAgIHNldFBhZ2VVcmw6IHNldFBhZ2VVcmxTdGFibGUsXG4gICAgfSksXG4gICAgW3BhZ2VVcmwsIHVzZXJFdmVudCwgdmFyaWFudEluZm8sIGlzTG9hZGluZywgaXNTdXBwb3J0ZWQsIHNldFBhZ2VVcmxTdGFibGVdLFxuICApO1xuXG4gIHJldHVybiA8UGFnZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3ZhbHVlfT57Y2hpbGRyZW59PC9QYWdlQ29udGV4dC5Qcm92aWRlcj47XG59O1xuXG5leHBvcnQgY29uc3QgdXNlUGFnZSA9ICgpID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoUGFnZUNvbnRleHQpO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3VzZVBhZ2UgbXVzdCBiZSB1c2VkIHdpdGhpbiBhIFBhZ2VQcm92aWRlcicpO1xuICB9XG4gIHJldHVybiBjb250ZXh0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQTJCQSxNQUFNLFNBQVMsSUFBSUEsdUJB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
@@ -5,6 +5,8 @@ import { ReactNode } from "react";
5
5
  declare const PageProvider: React.FC<{
6
6
  children: ReactNode;
7
7
  previewMode: boolean;
8
+ /** When URL resolver returns `ready: false`, invoked for extension/injection failure reporting. */
9
+ onUrlResolverNotReady?: (error: Error) => Promise<unknown> | void;
8
10
  }>;
9
11
  declare const usePage: () => PageDetails & {
10
12
  isLoading: boolean;
@@ -13,4 +15,4 @@ declare const usePage: () => PageDetails & {
13
15
  };
14
16
  //#endregion
15
17
  export { PageProvider, usePage };
16
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUGFnZURldGFpbHMgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBhZ2VQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgcHJldmlld01vZGU6IGJvb2xlYW47XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVBhZ2U6ICgpID0+IFBhZ2VEZXRhaWxzICYge1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICBpc1N1cHBvcnRlZDogYm9vbGVhbjtcbiAgICBzZXRQYWdlVXJsOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxlQUFlO0NBQUM7T0FBVztPQUFNLE1BQUE7Q0FBQTtBQUM1QyxJQUFXLFVBQVUsQ0FBQyxXQUFDLFlBQUEifQ==
18
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZUNvbnRleHQuZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRleHRzL3BhZ2VDb250ZXh0L3BhZ2VDb250ZXh0LmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUGFnZURldGFpbHMgfSBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFBhZ2VQcm92aWRlcjogUmVhY3QuRkM8e1xuICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgcHJldmlld01vZGU6IGJvb2xlYW47XG4gICAgLyoqIFdoZW4gVVJMIHJlc29sdmVyIHJldHVybnMgYHJlYWR5OiBmYWxzZWAsIGludm9rZWQgZm9yIGV4dGVuc2lvbi9pbmplY3Rpb24gZmFpbHVyZSByZXBvcnRpbmcuICovXG4gICAgb25VcmxSZXNvbHZlck5vdFJlYWR5PzogKGVycm9yOiBFcnJvcikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG59PjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IHVzZVBhZ2U6ICgpID0+IFBhZ2VEZXRhaWxzICYge1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICBpc1N1cHBvcnRlZDogYm9vbGVhbjtcbiAgICBzZXRQYWdlVXJsOiAodXJsOiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBRUEsSUFBVyxlQUFlO0NBQUM7T0FBVztPQUFNO09BQUE7T0FBQSxNQUFBO0NBQUE7QUFDNUMsSUFBVyxVQUFVLENBQUMsV0FBQyxZQUFBIn0=