@solucx/react-native-solucx-widget 0.2.4 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +526 -182
- package/lib/SoluCXWidget.d.ts +50 -7
- package/lib/SoluCXWidget.d.ts.map +1 -1
- package/lib/SoluCXWidget.js +105 -100
- package/lib/SoluCXWidget.js.map +1 -1
- package/lib/SoluCXWidgetHost.d.ts +3 -0
- package/lib/SoluCXWidgetHost.d.ts.map +1 -0
- package/lib/SoluCXWidgetHost.js +34 -0
- package/lib/SoluCXWidgetHost.js.map +1 -0
- package/lib/SoluCXWidgetView.d.ts +12 -0
- package/lib/SoluCXWidgetView.d.ts.map +1 -0
- package/lib/SoluCXWidgetView.js +61 -0
- package/lib/SoluCXWidgetView.js.map +1 -0
- package/lib/components/CloseButton.d.ts +1 -1
- package/lib/components/CloseButton.d.ts.map +1 -1
- package/lib/components/CloseButton.js +4 -1
- package/lib/components/CloseButton.js.map +1 -1
- package/lib/components/InlineWidget.d.ts.map +1 -1
- package/lib/components/InlineWidget.js +2 -7
- package/lib/components/InlineWidget.js.map +1 -1
- package/lib/components/ModalWidget.d.ts +1 -1
- package/lib/components/ModalWidget.d.ts.map +1 -1
- package/lib/components/ModalWidget.js +3 -16
- package/lib/components/ModalWidget.js.map +1 -1
- package/lib/components/OverlayWidget.d.ts.map +1 -1
- package/lib/components/OverlayWidget.js +5 -15
- package/lib/components/OverlayWidget.js.map +1 -1
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.d.ts.map +1 -0
- package/lib/components/index.js +12 -0
- package/lib/components/index.js.map +1 -0
- package/lib/constants/Constants.d.ts +11 -0
- package/lib/constants/Constants.d.ts.map +1 -1
- package/lib/constants/Constants.js +16 -1
- package/lib/constants/Constants.js.map +1 -1
- package/lib/{interfaces → domain}/WidgetCallbacks.d.ts +2 -2
- package/lib/domain/WidgetCallbacks.d.ts.map +1 -0
- package/lib/domain/WidgetCallbacks.js.map +1 -0
- package/{src/interfaces/WidgetData.ts → lib/domain/WidgetData.d.ts} +5 -2
- package/lib/domain/WidgetData.d.ts.map +1 -0
- package/lib/{interfaces → domain}/WidgetData.js.map +1 -1
- package/lib/domain/WidgetDisplayResult.d.ts +6 -0
- package/lib/domain/WidgetDisplayResult.d.ts.map +1 -0
- package/lib/domain/WidgetDisplayResult.js +3 -0
- package/lib/domain/WidgetDisplayResult.js.map +1 -0
- package/lib/domain/WidgetOptions.d.ts +27 -0
- package/lib/domain/WidgetOptions.d.ts.map +1 -0
- package/lib/domain/WidgetOptions.js +30 -0
- package/lib/domain/WidgetOptions.js.map +1 -0
- package/lib/domain/WidgetResponse.d.ts +5 -0
- package/lib/domain/WidgetResponse.d.ts.map +1 -0
- package/lib/{interfaces/WidgetOptions.js → domain/WidgetResponse.js} +1 -1
- package/lib/domain/WidgetResponse.js.map +1 -0
- package/lib/domain/WidgetSamplerLog.d.ts +12 -0
- package/lib/domain/WidgetSamplerLog.d.ts.map +1 -0
- package/lib/domain/WidgetSamplerLog.js.map +1 -0
- package/lib/{interfaces → domain}/index.d.ts +1 -2
- package/lib/domain/index.d.ts.map +1 -0
- package/lib/{interfaces → domain}/index.js.map +1 -1
- package/lib/hooks/index.d.ts +2 -2
- package/lib/hooks/index.d.ts.map +1 -1
- package/lib/hooks/index.js +5 -5
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useClientVersionCollector.d.ts +3 -0
- package/lib/hooks/useClientVersionCollector.d.ts.map +1 -0
- package/lib/{services/ClientVersionCollector.js → hooks/useClientVersionCollector.js} +7 -2
- package/lib/hooks/useClientVersionCollector.js.map +1 -0
- package/lib/hooks/useHeightAnimation.d.ts +0 -1
- package/lib/hooks/useHeightAnimation.d.ts.map +1 -1
- package/lib/hooks/useHeightAnimation.js +4 -2
- package/lib/hooks/useHeightAnimation.js.map +1 -1
- package/lib/hooks/useWidget.d.ts +13 -0
- package/lib/hooks/useWidget.d.ts.map +1 -0
- package/lib/hooks/useWidget.js +44 -0
- package/lib/hooks/useWidget.js.map +1 -0
- package/lib/hooks/useWidgetBootstrap.d.ts +21 -0
- package/lib/hooks/useWidgetBootstrap.d.ts.map +1 -0
- package/lib/hooks/useWidgetBootstrap.js +87 -0
- package/lib/hooks/useWidgetBootstrap.js.map +1 -0
- package/lib/hooks/useWidgetServices.d.ts +19 -0
- package/lib/hooks/useWidgetServices.d.ts.map +1 -0
- package/lib/hooks/useWidgetServices.js +34 -0
- package/lib/hooks/useWidgetServices.js.map +1 -0
- package/lib/hooks/useWidgetUI.d.ts +9 -0
- package/lib/hooks/useWidgetUI.d.ts.map +1 -0
- package/lib/hooks/useWidgetUI.js +33 -0
- package/lib/hooks/useWidgetUI.js.map +1 -0
- package/lib/index.d.ts +10 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +13 -38
- package/lib/index.js.map +1 -1
- package/lib/services/UserIdentificationService.d.ts +3 -0
- package/lib/services/UserIdentificationService.d.ts.map +1 -0
- package/lib/services/UserIdentificationService.js +17 -0
- package/lib/services/UserIdentificationService.js.map +1 -0
- package/lib/services/WidgetBootstrapService.d.ts +12 -0
- package/lib/services/WidgetBootstrapService.d.ts.map +1 -0
- package/lib/services/{widgetBootstrapService.js → WidgetBootstrapService.js} +36 -15
- package/lib/services/WidgetBootstrapService.js.map +1 -0
- package/lib/services/WidgetEventService.d.ts +8 -0
- package/lib/services/WidgetEventService.d.ts.map +1 -0
- package/lib/services/WidgetEventService.js +14 -0
- package/lib/services/WidgetEventService.js.map +1 -0
- package/lib/services/WidgetStateManager.d.ts +20 -0
- package/lib/services/WidgetStateManager.d.ts.map +1 -0
- package/lib/services/WidgetStateManager.js +93 -0
- package/lib/services/WidgetStateManager.js.map +1 -0
- package/lib/services/WidgetValidationService.d.ts +17 -0
- package/lib/services/WidgetValidationService.d.ts.map +1 -0
- package/lib/services/WidgetValidationService.js +132 -0
- package/lib/services/WidgetValidationService.js.map +1 -0
- package/lib/services/events/EventHandlerFactory.d.ts +18 -0
- package/lib/services/events/EventHandlerFactory.d.ts.map +1 -0
- package/lib/services/events/EventHandlerFactory.js +67 -0
- package/lib/services/events/EventHandlerFactory.js.map +1 -0
- package/lib/services/events/EventHandlers.d.ts +10 -0
- package/lib/services/events/EventHandlers.d.ts.map +1 -0
- package/lib/services/events/EventHandlers.js +72 -0
- package/lib/services/events/EventHandlers.js.map +1 -0
- package/lib/services/events/index.d.ts +3 -0
- package/lib/services/events/index.d.ts.map +1 -0
- package/lib/services/events/index.js +21 -0
- package/lib/services/events/index.js.map +1 -0
- package/lib/services/height/HeightStrategies.d.ts +3 -0
- package/lib/services/height/HeightStrategies.d.ts.map +1 -0
- package/lib/services/height/HeightStrategies.js +14 -0
- package/lib/services/height/HeightStrategies.js.map +1 -0
- package/lib/services/storage/AsyncStorageService.d.ts +13 -0
- package/lib/services/storage/AsyncStorageService.d.ts.map +1 -0
- package/lib/services/storage/AsyncStorageService.js +73 -0
- package/lib/services/storage/AsyncStorageService.js.map +1 -0
- package/lib/services/storage/IStorageService.d.ts +30 -0
- package/lib/services/storage/IStorageService.d.ts.map +1 -0
- package/lib/services/storage/IStorageService.js +3 -0
- package/lib/services/storage/IStorageService.js.map +1 -0
- package/lib/services/storage/StorageIdBuilder.d.ts +11 -0
- package/lib/services/storage/StorageIdBuilder.d.ts.map +1 -0
- package/lib/services/storage/StorageIdBuilder.js +17 -0
- package/lib/services/storage/StorageIdBuilder.js.map +1 -0
- package/lib/services/storage/index.d.ts +3 -0
- package/lib/services/storage/index.d.ts.map +1 -0
- package/lib/services/storage/index.js +6 -0
- package/lib/services/storage/index.js.map +1 -0
- package/lib/styles/widgetStyles.d.ts +1 -1
- package/lib/styles/widgetStyles.d.ts.map +1 -1
- package/package.json +8 -2
- package/src/SoluCXWidget.ts +144 -0
- package/src/SoluCXWidgetHost.tsx +44 -0
- package/src/SoluCXWidgetView.tsx +97 -0
- package/src/__tests__/ClientVersionCollector.test.ts +5 -5
- package/src/__tests__/OverlayWidget.rendering.test.tsx +12 -14
- package/src/__tests__/SoluCXWidget.rendering.test.tsx +103 -60
- package/src/__tests__/SoluCXWidget.test.ts +448 -0
- package/src/__tests__/WidgetValidationService.test.ts +408 -0
- package/src/__tests__/e2e/widget-lifecycle.test.tsx +14 -23
- package/src/__tests__/index.test.tsx +39 -0
- package/src/__tests__/integration/webview-communication-simple.test.tsx +8 -6
- package/src/__tests__/integration/webview-communication.test.tsx +127 -130
- package/src/__tests__/normalizeWidgetOptions.test.ts +80 -0
- package/src/__tests__/useWidgetBootstrap.test.ts +634 -0
- package/src/__tests__/useWidgetState.test.ts +56 -13
- package/src/__tests__/widgetBootstrapService.test.ts +15 -17
- package/src/components/CloseButton.tsx +6 -2
- package/src/components/InlineWidget.tsx +4 -9
- package/src/components/ModalWidget.tsx +15 -45
- package/src/components/OverlayWidget.tsx +5 -15
- package/src/components/index.ts +4 -0
- package/src/constants/Constants.ts +15 -0
- package/src/{interfaces → domain}/WidgetCallbacks.ts +2 -2
- package/{lib/interfaces/WidgetData.d.ts → src/domain/WidgetData.ts} +3 -2
- package/src/domain/WidgetDisplayResult.ts +16 -0
- package/src/domain/WidgetOptions.ts +53 -0
- package/src/domain/WidgetResponse.ts +5 -0
- package/src/domain/WidgetSamplerLog.ts +11 -0
- package/src/{interfaces → domain}/index.ts +1 -2
- package/src/hooks/index.ts +2 -2
- package/src/{services/ClientVersionCollector.ts → hooks/useClientVersionCollector.ts} +6 -0
- package/src/hooks/useHeightAnimation.ts +6 -3
- package/src/hooks/useWidget.ts +46 -0
- package/src/hooks/useWidgetBootstrap.ts +117 -0
- package/src/hooks/useWidgetServices.ts +44 -0
- package/src/hooks/useWidgetUI.ts +38 -0
- package/src/index.ts +16 -11
- package/src/services/UserIdentificationService.ts +14 -0
- package/src/services/{widgetBootstrapService.ts → WidgetBootstrapService.ts} +43 -19
- package/src/services/WidgetEventService.ts +15 -0
- package/src/services/WidgetStateManager.ts +115 -0
- package/src/services/WidgetValidationService.ts +149 -0
- package/src/services/events/EventHandlerFactory.ts +70 -0
- package/src/services/events/EventHandlers.ts +67 -0
- package/src/services/events/index.ts +2 -0
- package/src/services/height/HeightStrategies.ts +15 -0
- package/src/services/storage/AsyncStorageService.ts +74 -0
- package/src/services/storage/IStorageService.ts +32 -0
- package/src/services/storage/StorageIdBuilder.ts +15 -0
- package/src/services/storage/index.ts +2 -0
- package/src/styles/widgetStyles.ts +1 -1
- package/README.intern.md +0 -490
- package/lib/constants/webViewConstants.d.ts +0 -12
- package/lib/constants/webViewConstants.d.ts.map +0 -1
- package/lib/constants/webViewConstants.js +0 -19
- package/lib/constants/webViewConstants.js.map +0 -1
- package/lib/hooks/useWidgetHeight.d.ts +0 -13
- package/lib/hooks/useWidgetHeight.d.ts.map +0 -1
- package/lib/hooks/useWidgetHeight.js +0 -21
- package/lib/hooks/useWidgetHeight.js.map +0 -1
- package/lib/hooks/useWidgetState.d.ts +0 -15
- package/lib/hooks/useWidgetState.d.ts.map +0 -1
- package/lib/hooks/useWidgetState.js +0 -79
- package/lib/hooks/useWidgetState.js.map +0 -1
- package/lib/interfaces/WidgetCallbacks.d.ts.map +0 -1
- package/lib/interfaces/WidgetCallbacks.js.map +0 -1
- package/lib/interfaces/WidgetData.d.ts.map +0 -1
- package/lib/interfaces/WidgetOptions.d.ts +0 -9
- package/lib/interfaces/WidgetOptions.d.ts.map +0 -1
- package/lib/interfaces/WidgetOptions.js.map +0 -1
- package/lib/interfaces/WidgetResponse.d.ts +0 -10
- package/lib/interfaces/WidgetResponse.d.ts.map +0 -1
- package/lib/interfaces/WidgetResponse.js +0 -12
- package/lib/interfaces/WidgetResponse.js.map +0 -1
- package/lib/interfaces/WidgetSamplerLog.d.ts +0 -7
- package/lib/interfaces/WidgetSamplerLog.d.ts.map +0 -1
- package/lib/interfaces/WidgetSamplerLog.js.map +0 -1
- package/lib/interfaces/index.d.ts.map +0 -1
- package/lib/services/ClientVersionCollector.d.ts +0 -2
- package/lib/services/ClientVersionCollector.d.ts.map +0 -1
- package/lib/services/ClientVersionCollector.js.map +0 -1
- package/lib/services/storage.d.ts +0 -8
- package/lib/services/storage.d.ts.map +0 -1
- package/lib/services/storage.js +0 -23
- package/lib/services/storage.js.map +0 -1
- package/lib/services/widgetBootstrapService.d.ts +0 -6
- package/lib/services/widgetBootstrapService.d.ts.map +0 -1
- package/lib/services/widgetBootstrapService.js.map +0 -1
- package/lib/services/widgetEventService.d.ts +0 -19
- package/lib/services/widgetEventService.d.ts.map +0 -1
- package/lib/services/widgetEventService.js +0 -79
- package/lib/services/widgetEventService.js.map +0 -1
- package/lib/services/widgetValidationService.d.ts +0 -18
- package/lib/services/widgetValidationService.d.ts.map +0 -1
- package/lib/services/widgetValidationService.js +0 -71
- package/lib/services/widgetValidationService.js.map +0 -1
- package/src/SoluCXWidget.tsx +0 -178
- package/src/constants/webViewConstants.ts +0 -15
- package/src/hooks/useWidgetHeight.ts +0 -38
- package/src/hooks/useWidgetState.ts +0 -101
- package/src/interfaces/WidgetOptions.ts +0 -8
- package/src/interfaces/WidgetResponse.ts +0 -15
- package/src/interfaces/WidgetSamplerLog.ts +0 -6
- package/src/services/storage.ts +0 -21
- package/src/services/widgetEventService.ts +0 -110
- package/src/services/widgetValidationService.ts +0 -102
- /package/lib/{interfaces → domain}/WidgetCallbacks.js +0 -0
- /package/lib/{interfaces → domain}/WidgetData.js +0 -0
- /package/lib/{interfaces → domain}/WidgetSamplerLog.js +0 -0
- /package/lib/{interfaces → domain}/index.js +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useWidgetBootstrap = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const WidgetOptions_1 = require("../domain/WidgetOptions");
|
|
6
|
+
const WidgetBootstrapService_1 = require("../services/WidgetBootstrapService");
|
|
7
|
+
const useWidgetBootstrap = ({ soluCXKey, data, userId, options, callbacks, open, hide, validationService, stateManager, }) => {
|
|
8
|
+
const [widgetUri, setWidgetUri] = (0, react_1.useState)(null);
|
|
9
|
+
const [widgetOptions, setWidgetOptions] = (0, react_1.useState)(null);
|
|
10
|
+
const bootstrap = async () => {
|
|
11
|
+
if (!data) {
|
|
12
|
+
callbacks?.onError?.("Widget data is required but was not provided");
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
setWidgetUri(null);
|
|
16
|
+
try {
|
|
17
|
+
const transactionResult = await validationService.shouldDisplayForTransactionAlreadyAnswered(data.transaction_id);
|
|
18
|
+
if (!transactionResult.canDisplay) {
|
|
19
|
+
callbacks?.onBlocked?.(transactionResult.blockReason);
|
|
20
|
+
hide();
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const rawOptions = options && Object.keys(options).length ? options : await (0, WidgetBootstrapService_1.requestWidgetOptions)(soluCXKey, data.journey);
|
|
24
|
+
const effectiveOptions = (0, WidgetOptions_1.normalizeWidgetOptions)(rawOptions);
|
|
25
|
+
setWidgetOptions(effectiveOptions);
|
|
26
|
+
// Validate BEFORE preflight to avoid unnecessary API calls at scale
|
|
27
|
+
const result = await validationService.shouldDisplayWidget(effectiveOptions, data.transaction_id);
|
|
28
|
+
if (!result.canDisplay) {
|
|
29
|
+
const blockReason = result?.blockReason;
|
|
30
|
+
callbacks?.onBlocked?.(blockReason);
|
|
31
|
+
try {
|
|
32
|
+
await stateManager.updateTimestamp("lastDisplayAttempt");
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
callbacks?.onError?.("Cannot save display attempt timestamp");
|
|
36
|
+
}
|
|
37
|
+
hide();
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Only call preflight after validation passes
|
|
41
|
+
const widgetUrlPayload = await (0, WidgetBootstrapService_1.requestWidgetUrl)(soluCXKey, data, userId);
|
|
42
|
+
if (!widgetUrlPayload.available) {
|
|
43
|
+
const reason = widgetUrlPayload.reason || "for the given parameters";
|
|
44
|
+
callbacks?.onBlocked?.(reason);
|
|
45
|
+
hide();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (!widgetUrlPayload.url) {
|
|
49
|
+
callbacks?.onError?.("Widget URL is missing in the response");
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
callbacks?.onPreOpen?.(userId);
|
|
53
|
+
await open();
|
|
54
|
+
try {
|
|
55
|
+
await stateManager.incrementAttempt();
|
|
56
|
+
const logs = await stateManager.getLogs();
|
|
57
|
+
if (!logs.lastFirstAccess) {
|
|
58
|
+
await stateManager.updateTimestamp("lastFirstAccess");
|
|
59
|
+
}
|
|
60
|
+
await stateManager.updateTimestamp("lastDisplay");
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
callbacks?.onError?.("Error saving display timestamps");
|
|
64
|
+
}
|
|
65
|
+
setWidgetUri(widgetUrlPayload.url);
|
|
66
|
+
callbacks?.onOpened?.(userId);
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
let errorMessage = "Unknown error";
|
|
70
|
+
if (error instanceof Error)
|
|
71
|
+
errorMessage = error.message;
|
|
72
|
+
else if (typeof error === "string")
|
|
73
|
+
errorMessage = error;
|
|
74
|
+
else if (error !== null && typeof error === "object")
|
|
75
|
+
errorMessage = JSON.stringify(error);
|
|
76
|
+
callbacks?.onError?.(errorMessage);
|
|
77
|
+
hide();
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
return {
|
|
81
|
+
widgetUri,
|
|
82
|
+
widgetOptions,
|
|
83
|
+
bootstrap,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
exports.useWidgetBootstrap = useWidgetBootstrap;
|
|
87
|
+
//# sourceMappingURL=useWidgetBootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetBootstrap.js","sourceRoot":"","sources":["../../src/hooks/useWidgetBootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WidgetCallbacks, WidgetData } from "../domain";
|
|
2
|
+
import { WidgetEventService } from "../services/WidgetEventService";
|
|
3
|
+
import { WidgetValidationService } from "../services/WidgetValidationService";
|
|
4
|
+
import type { WidgetStateManager } from "../services/WidgetStateManager";
|
|
5
|
+
interface UseWidgetServicesParams {
|
|
6
|
+
hide: () => void;
|
|
7
|
+
resize: (height: string) => void;
|
|
8
|
+
userId: string;
|
|
9
|
+
callbacks?: WidgetCallbacks;
|
|
10
|
+
data: WidgetData;
|
|
11
|
+
stateManager: WidgetStateManager;
|
|
12
|
+
}
|
|
13
|
+
export declare const useWidgetServices: ({ hide, resize, userId, callbacks, data, stateManager }: UseWidgetServicesParams) => {
|
|
14
|
+
eventService: WidgetEventService;
|
|
15
|
+
validationService: WidgetValidationService;
|
|
16
|
+
handleWebViewMessage: (message: string) => Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=useWidgetServices.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetServices.d.ts","sourceRoot":"","sources":["../../src/hooks/useWidgetServices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,UAAU,uBAAuB;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,GAAI,yDAAyD,uBAAuB;;;oCAarD,MAAM;CAelE,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useWidgetServices = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const WidgetEventService_1 = require("../services/WidgetEventService");
|
|
6
|
+
const WidgetValidationService_1 = require("../services/WidgetValidationService");
|
|
7
|
+
const useWidgetServices = ({ hide, resize, userId, callbacks, data, stateManager }) => {
|
|
8
|
+
const eventServiceRef = (0, react_1.useRef)(null);
|
|
9
|
+
if (!eventServiceRef.current) {
|
|
10
|
+
eventServiceRef.current = new WidgetEventService_1.WidgetEventService(hide, resize, userId, data?.transaction_id, callbacks, stateManager);
|
|
11
|
+
}
|
|
12
|
+
const validationServiceRef = (0, react_1.useRef)(null);
|
|
13
|
+
if (!validationServiceRef.current) {
|
|
14
|
+
validationServiceRef.current = new WidgetValidationService_1.WidgetValidationService(stateManager);
|
|
15
|
+
}
|
|
16
|
+
const isForm = (0, react_1.useMemo)(() => Boolean(data?.form_id), [data?.form_id]);
|
|
17
|
+
const handleWebViewMessage = (0, react_1.useCallback)(async (message) => {
|
|
18
|
+
if (message && message.length > 0) {
|
|
19
|
+
try {
|
|
20
|
+
await eventServiceRef.current.handleMessage(message, isForm);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.error("[useWidgetServices] Error handling widget message:", error);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}, []);
|
|
27
|
+
return {
|
|
28
|
+
eventService: eventServiceRef.current,
|
|
29
|
+
validationService: validationServiceRef.current,
|
|
30
|
+
handleWebViewMessage,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
exports.useWidgetServices = useWidgetServices;
|
|
34
|
+
//# sourceMappingURL=useWidgetServices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetServices.js","sourceRoot":"","sources":["../../src/hooks/useWidgetServices.ts"],"names":[],"mappings":";;;AAAA,iCAAqD;AAErD,uEAAoE;AACpE,iFAA8E;AAYvE,MAAM,iBAAiB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAA2B,EAAE,EAAE;IAClH,MAAM,eAAe,GAAG,IAAA,cAAM,EAAC,IAAiC,CAAC,CAAC;IAClE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC3B,eAAe,CAAC,OAAO,GAAG,IAAI,uCAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC1H,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAA,cAAM,EAAC,IAAsC,CAAC,CAAC;IAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAChC,oBAAoB,CAAC,OAAO,GAAG,IAAI,iDAAuB,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEtE,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAe,EAAE,EAAE;QAC/D,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACD,MAAM,eAAe,CAAC,OAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,YAAY,EAAE,eAAe,CAAC,OAAO;QACrC,iBAAiB,EAAE,oBAAoB,CAAC,OAAO;QAC/C,oBAAoB;KACvB,CAAC;AACN,CAAC,CAAC;AA5BW,QAAA,iBAAiB,qBA4B5B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { WidgetOptions } from "../domain";
|
|
2
|
+
export declare const useWidgetUI: (options?: WidgetOptions) => {
|
|
3
|
+
isWidgetVisible: boolean;
|
|
4
|
+
widgetHeight: number;
|
|
5
|
+
resize: (receivedHeight: number) => void;
|
|
6
|
+
show: () => void;
|
|
7
|
+
hide: () => void;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=useWidgetUI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetUI.d.ts","sourceRoot":"","sources":["../../src/hooks/useWidgetUI.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG/C,eAAO,MAAM,WAAW,GAAI,UAAU,aAAa;;;6BAM1B,MAAM;;;CA2B9B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useWidgetUI = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const HeightStrategies_1 = require("../services/height/HeightStrategies");
|
|
6
|
+
const useWidgetUI = (options) => {
|
|
7
|
+
const [isWidgetVisible, setIsWidgetVisible] = (0, react_1.useState)(false);
|
|
8
|
+
const initialHeight = (0, HeightStrategies_1.calculateHeight)(options);
|
|
9
|
+
const [widgetHeight, setWidgetHeight] = (0, react_1.useState)(initialHeight);
|
|
10
|
+
const resize = (0, react_1.useCallback)((receivedHeight) => {
|
|
11
|
+
if (receivedHeight > 0) {
|
|
12
|
+
const newHeight = (0, HeightStrategies_1.calculateHeight)(options, receivedHeight);
|
|
13
|
+
setWidgetHeight(newHeight);
|
|
14
|
+
}
|
|
15
|
+
}, [options]);
|
|
16
|
+
const show = (0, react_1.useCallback)(() => {
|
|
17
|
+
setIsWidgetVisible(true);
|
|
18
|
+
}, []);
|
|
19
|
+
const hide = (0, react_1.useCallback)(() => {
|
|
20
|
+
setIsWidgetVisible(false);
|
|
21
|
+
}, []);
|
|
22
|
+
return {
|
|
23
|
+
// State
|
|
24
|
+
isWidgetVisible,
|
|
25
|
+
widgetHeight,
|
|
26
|
+
// Actions
|
|
27
|
+
resize,
|
|
28
|
+
show,
|
|
29
|
+
hide,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
exports.useWidgetUI = useWidgetUI;
|
|
33
|
+
//# sourceMappingURL=useWidgetUI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWidgetUI.js","sourceRoot":"","sources":["../../src/hooks/useWidgetUI.ts"],"names":[],"mappings":";;;AAAA,iCAAuD;AAEvD,0EAAsE;AAE/D,MAAM,WAAW,GAAG,CAAC,OAAuB,EAAE,EAAE;IACnD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,IAAA,kCAAe,EAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAS,aAAa,CAAC,CAAC;IAExE,MAAM,MAAM,GAAG,IAAA,mBAAW,EACtB,CAAC,cAAsB,EAAE,EAAE;QACvB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,IAAA,kCAAe,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC3D,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC,EACD,CAAC,OAAO,CAAC,CACZ,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC1B,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC1B,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,QAAQ;QACR,eAAe;QACf,YAAY;QAEZ,UAAU;QACV,MAAM;QACN,IAAI;QACJ,IAAI;KACP,CAAC;AACN,CAAC,CAAC;AAjCW,QAAA,WAAW,eAiCtB"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export * from './interfaces';
|
|
1
|
+
import { SoluCXWidgetView } from './SoluCXWidgetView';
|
|
2
|
+
import { SoluCXWidget as SoluCXWidgetController } from './SoluCXWidget';
|
|
3
|
+
type SoluCXWidgetPublicApi = typeof SoluCXWidgetView & Pick<typeof SoluCXWidgetController, 'create' | 'dismiss'>;
|
|
4
|
+
export declare const SoluCXWidget: SoluCXWidgetPublicApi;
|
|
5
|
+
export { SoluCXWidgetView };
|
|
6
|
+
export { SoluCXWidgetHost } from './SoluCXWidgetHost';
|
|
7
|
+
export { SoluCXWidgetController };
|
|
8
|
+
export type { WidgetConfig } from './SoluCXWidget';
|
|
9
|
+
export { WidgetStateManager } from './services/WidgetStateManager';
|
|
10
|
+
export type { TimestampField } from './services/WidgetStateManager';
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExE,KAAK,qBAAqB,GAAG,OAAO,gBAAgB,GAAG,IAAI,CAAC,OAAO,sBAAsB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;AAEjH,eAAO,MAAM,YAAY,EAGnB,qBAAqB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,41 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
|
|
19
|
-
Object.defineProperty(exports, "
|
|
20
|
-
|
|
21
|
-
Object.defineProperty(exports, "
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
Object.defineProperty(exports, "
|
|
28
|
-
var
|
|
29
|
-
Object.defineProperty(exports, "
|
|
30
|
-
var ModalWidget_1 = require("./components/ModalWidget");
|
|
31
|
-
Object.defineProperty(exports, "ModalWidget", { enumerable: true, get: function () { return ModalWidget_1.ModalWidget; } });
|
|
32
|
-
var widgetStyles_1 = require("./styles/widgetStyles");
|
|
33
|
-
Object.defineProperty(exports, "getWidgetStyles", { enumerable: true, get: function () { return widgetStyles_1.getWidgetStyles; } });
|
|
34
|
-
Object.defineProperty(exports, "styles", { enumerable: true, get: function () { return widgetStyles_1.styles; } });
|
|
35
|
-
var Constants_1 = require("./constants/Constants");
|
|
36
|
-
Object.defineProperty(exports, "SDK_NAME", { enumerable: true, get: function () { return Constants_1.SDK_NAME; } });
|
|
37
|
-
Object.defineProperty(exports, "SDK_VERSION", { enumerable: true, get: function () { return Constants_1.SDK_VERSION; } });
|
|
38
|
-
var ClientVersionCollector_1 = require("./services/ClientVersionCollector");
|
|
39
|
-
Object.defineProperty(exports, "getClientVersion", { enumerable: true, get: function () { return ClientVersionCollector_1.getClientVersion; } });
|
|
40
|
-
__exportStar(require("./interfaces"), exports);
|
|
3
|
+
exports.WidgetStateManager = exports.SoluCXWidgetController = exports.SoluCXWidgetHost = exports.SoluCXWidgetView = exports.SoluCXWidget = void 0;
|
|
4
|
+
const SoluCXWidgetView_1 = require("./SoluCXWidgetView");
|
|
5
|
+
Object.defineProperty(exports, "SoluCXWidgetView", { enumerable: true, get: function () { return SoluCXWidgetView_1.SoluCXWidgetView; } });
|
|
6
|
+
const SoluCXWidget_1 = require("./SoluCXWidget");
|
|
7
|
+
Object.defineProperty(exports, "SoluCXWidgetController", { enumerable: true, get: function () { return SoluCXWidget_1.SoluCXWidget; } });
|
|
8
|
+
exports.SoluCXWidget = Object.assign(SoluCXWidgetView_1.SoluCXWidgetView, {
|
|
9
|
+
create: SoluCXWidget_1.SoluCXWidget.create,
|
|
10
|
+
dismiss: SoluCXWidget_1.SoluCXWidget.dismiss,
|
|
11
|
+
});
|
|
12
|
+
var SoluCXWidgetHost_1 = require("./SoluCXWidgetHost");
|
|
13
|
+
Object.defineProperty(exports, "SoluCXWidgetHost", { enumerable: true, get: function () { return SoluCXWidgetHost_1.SoluCXWidgetHost; } });
|
|
14
|
+
var WidgetStateManager_1 = require("./services/WidgetStateManager");
|
|
15
|
+
Object.defineProperty(exports, "WidgetStateManager", { enumerable: true, get: function () { return WidgetStateManager_1.WidgetStateManager; } });
|
|
41
16
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAU7C,iGAVA,mCAAgB,OAUA;AATzB,iDAAwE;AAW/D,uGAXgB,2BAAsB,OAWhB;AAPlB,QAAA,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,mCAAgB,EAAE;IAC3D,MAAM,EAAE,2BAAsB,CAAC,MAAM;IACrC,OAAO,EAAE,2BAAsB,CAAC,OAAO;CACvC,CAA0B,CAAC;AAG5B,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAGzB,oEAAmE;AAA1D,wHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserIdentificationService.d.ts","sourceRoot":"","sources":["../../src/services/UserIdentificationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CASlD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserId = getUserId;
|
|
4
|
+
const DEFAULT_USER_ID = "default_user";
|
|
5
|
+
function getUserId(data) {
|
|
6
|
+
if (data.user_id)
|
|
7
|
+
return String(data.user_id);
|
|
8
|
+
if (data.email)
|
|
9
|
+
return String(data.email);
|
|
10
|
+
if (data.cpf)
|
|
11
|
+
return String(data.cpf);
|
|
12
|
+
const journey = data.journey || data.form_id;
|
|
13
|
+
if (journey)
|
|
14
|
+
return `${DEFAULT_USER_ID}_${journey}`;
|
|
15
|
+
return DEFAULT_USER_ID;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=UserIdentificationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserIdentificationService.js","sourceRoot":"","sources":["../../src/services/UserIdentificationService.ts"],"names":[],"mappings":";;AAIA,8BASC;AAXD,MAAM,eAAe,GAAG,cAAc,CAAC;AAEvC,SAAgB,SAAS,CAAC,IAAgB;IACtC,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;IAC7C,IAAI,OAAO;QAAE,OAAO,GAAG,eAAe,IAAI,OAAO,EAAE,CAAC;IAEpD,OAAO,eAAe,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SoluCXKey, WidgetData, WidgetOptions } from "../domain";
|
|
2
|
+
import { URLSearchParams } from "react-native-url-polyfill";
|
|
3
|
+
type UrlRequestPayload = {
|
|
4
|
+
available: boolean;
|
|
5
|
+
url?: string;
|
|
6
|
+
reason?: string;
|
|
7
|
+
};
|
|
8
|
+
declare const buildRequestParams: (requestParams: WidgetData) => URLSearchParams;
|
|
9
|
+
export declare function requestWidgetUrl(instanceKey: SoluCXKey, requestParams: WidgetData, userId: string): Promise<UrlRequestPayload>;
|
|
10
|
+
export declare function requestWidgetOptions(instanceKey: SoluCXKey, journey?: string): Promise<WidgetOptions>;
|
|
11
|
+
export { buildRequestParams };
|
|
12
|
+
//# sourceMappingURL=WidgetBootstrapService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetBootstrapService.d.ts","sourceRoot":"","sources":["../../src/services/WidgetBootstrapService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAKtE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,KAAK,iBAAiB,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,QAAA,MAAM,kBAAkB,GAAI,eAAe,UAAU,KAAG,eASvD,CAAC;AA0BF,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBpI;AAED,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA0B3G;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildRequestParams = void 0;
|
|
4
4
|
exports.requestWidgetUrl = requestWidgetUrl;
|
|
5
|
-
|
|
6
|
-
const ClientVersionCollector_1 = require("../services/ClientVersionCollector");
|
|
7
|
-
const useDeviceInfoCollector_1 = require("../hooks/useDeviceInfoCollector");
|
|
5
|
+
exports.requestWidgetOptions = requestWidgetOptions;
|
|
8
6
|
const Constants_1 = require("../constants/Constants");
|
|
7
|
+
const useClientVersionCollector_1 = require("../hooks/useClientVersionCollector");
|
|
8
|
+
const useDeviceInfoCollector_1 = require("../hooks/useDeviceInfoCollector");
|
|
9
|
+
const Constants_2 = require("../constants/Constants");
|
|
9
10
|
const react_native_url_polyfill_1 = require("react-native-url-polyfill");
|
|
11
|
+
const DEFAULT_WIDGET_OPTIONS = {
|
|
12
|
+
height: 600,
|
|
13
|
+
};
|
|
10
14
|
const buildRequestParams = (requestParams) => {
|
|
11
15
|
const params = new react_native_url_polyfill_1.URLSearchParams();
|
|
12
16
|
Object.entries(requestParams).forEach(([key, value]) => {
|
|
@@ -14,26 +18,24 @@ const buildRequestParams = (requestParams) => {
|
|
|
14
18
|
return;
|
|
15
19
|
params.append(key, typeof value === "number" ? value.toString() : String(value));
|
|
16
20
|
});
|
|
17
|
-
params.set("transactionId", "");
|
|
18
|
-
params.set("attemptId", "");
|
|
19
21
|
return params;
|
|
20
22
|
};
|
|
21
23
|
exports.buildRequestParams = buildRequestParams;
|
|
22
24
|
const buildRequestHeaders = (instanceKey, userId) => {
|
|
23
25
|
const deviceInfo = (0, useDeviceInfoCollector_1.getDeviceInfo)();
|
|
24
|
-
const appVersion = (0,
|
|
26
|
+
const appVersion = (0, useClientVersionCollector_1.getClientVersion)();
|
|
25
27
|
const isMobile = deviceInfo.deviceType === "phone" ? "?1" : "?0";
|
|
26
|
-
const userAgent = `${
|
|
28
|
+
const userAgent = `${Constants_2.SDK_NAME}/${Constants_2.SDK_VERSION} (${deviceInfo.platform}; OS ${deviceInfo.osVersion}; ${deviceInfo.model}) App/${appVersion}`;
|
|
27
29
|
return {
|
|
28
30
|
accept: "application/json, text/plain, */*",
|
|
29
31
|
"x-solucx-api-key": instanceKey,
|
|
30
32
|
"x-solucx-device-id": userId,
|
|
31
33
|
"x-client-id": userId,
|
|
32
|
-
"x-sdk-name":
|
|
33
|
-
"x-sdk-version":
|
|
34
|
+
"x-sdk-name": Constants_2.SDK_NAME,
|
|
35
|
+
"x-sdk-version": Constants_2.SDK_VERSION,
|
|
34
36
|
"x-solucx-app-version": appVersion,
|
|
35
37
|
"x-solucx-client-platform": deviceInfo.platform,
|
|
36
|
-
"Sec-CH-UA": `"${
|
|
38
|
+
"Sec-CH-UA": `"${Constants_2.SDK_NAME}";v="${Constants_2.SDK_VERSION}", "app";v="${appVersion}"`,
|
|
37
39
|
"Sec-CH-UA-Platform": `"${deviceInfo.platform}"`,
|
|
38
40
|
"Sec-CH-UA-Mobile": isMobile,
|
|
39
41
|
"Sec-CH-UA-Platform-Version": `"${deviceInfo.osVersion}"`,
|
|
@@ -46,7 +48,7 @@ async function requestWidgetUrl(instanceKey, requestParams, userId) {
|
|
|
46
48
|
throw new Error("Fetch is not available");
|
|
47
49
|
}
|
|
48
50
|
const params = buildRequestParams(requestParams);
|
|
49
|
-
const url = `${
|
|
51
|
+
const url = `${Constants_1.WIDGET_API_BASE_URL}/widget/available?${params.toString()}`;
|
|
50
52
|
const headers = buildRequestHeaders(instanceKey, userId);
|
|
51
53
|
const response = await fetch(url, { method: "GET", headers });
|
|
52
54
|
if (!response.ok) {
|
|
@@ -56,9 +58,28 @@ async function requestWidgetUrl(instanceKey, requestParams, userId) {
|
|
|
56
58
|
throw new Error(`status=${response?.status} message=${errorPayload?.message}`);
|
|
57
59
|
}
|
|
58
60
|
const payload = await response?.json();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
return payload;
|
|
62
|
+
}
|
|
63
|
+
async function requestWidgetOptions(instanceKey, journey) {
|
|
64
|
+
if (typeof fetch !== "function") {
|
|
65
|
+
console.warn("[WidgetBootstrap] Fetch is not available, using default options");
|
|
66
|
+
return DEFAULT_WIDGET_OPTIONS;
|
|
67
|
+
}
|
|
68
|
+
const params = new react_native_url_polyfill_1.URLSearchParams();
|
|
69
|
+
if (journey) {
|
|
70
|
+
params.append("journey", journey);
|
|
71
|
+
}
|
|
72
|
+
const url = `${Constants_1.WIDGET_API_BASE_URL}/widget/parameters${params.toString() ? `?${params.toString()}` : ""}`;
|
|
73
|
+
const headers = {
|
|
74
|
+
"x-solucx-api-key": instanceKey,
|
|
75
|
+
accept: "application/json",
|
|
76
|
+
};
|
|
77
|
+
const response = await fetch(url, { method: "GET", headers });
|
|
78
|
+
if (!response.ok) {
|
|
79
|
+
console.warn(`[WidgetBootstrap] Failed to fetch widget options: ${response.status} ${response.statusText}`);
|
|
80
|
+
return DEFAULT_WIDGET_OPTIONS;
|
|
61
81
|
}
|
|
62
|
-
|
|
82
|
+
const options = await response.json();
|
|
83
|
+
return options || DEFAULT_WIDGET_OPTIONS;
|
|
63
84
|
}
|
|
64
|
-
//# sourceMappingURL=
|
|
85
|
+
//# sourceMappingURL=WidgetBootstrapService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetBootstrapService.js","sourceRoot":"","sources":["../../src/services/WidgetBootstrapService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { WidgetResponse, WidgetCallbacks } from "../domain";
|
|
2
|
+
import type { WidgetStateManager } from "./WidgetStateManager";
|
|
3
|
+
export declare class WidgetEventService {
|
|
4
|
+
private handlerFactory;
|
|
5
|
+
constructor(hide: () => void, resize: (height: string) => void, userId: string, transactionId?: string, callbacks?: WidgetCallbacks, stateManager?: WidgetStateManager);
|
|
6
|
+
handleMessage(message: string, isForm: boolean): Promise<WidgetResponse>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=WidgetEventService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetEventService.d.ts","sourceRoot":"","sources":["../../src/services/WidgetEventService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,cAAc,CAAsB;gBAEhC,IAAI,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,kBAAkB;IAIhK,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;CAGjF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WidgetEventService = void 0;
|
|
4
|
+
const EventHandlerFactory_1 = require("./events/EventHandlerFactory");
|
|
5
|
+
class WidgetEventService {
|
|
6
|
+
constructor(hide, resize, userId, transactionId, callbacks, stateManager) {
|
|
7
|
+
this.handlerFactory = new EventHandlerFactory_1.EventHandlerFactory(hide, resize, userId, transactionId, callbacks, stateManager);
|
|
8
|
+
}
|
|
9
|
+
async handleMessage(message, isForm) {
|
|
10
|
+
return await this.handlerFactory.processMessage(message, isForm);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.WidgetEventService = WidgetEventService;
|
|
14
|
+
//# sourceMappingURL=WidgetEventService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetEventService.js","sourceRoot":"","sources":["../../src/services/WidgetEventService.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AAEnE,MAAa,kBAAkB;IAG3B,YAAY,IAAgB,EAAE,MAAgC,EAAE,MAAc,EAAE,aAAsB,EAAE,SAA2B,EAAE,YAAiC;QAClK,IAAI,CAAC,cAAc,GAAG,IAAI,yCAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,MAAe;QAChD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;CACJ;AAVD,gDAUC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { IStorageService } from './storage/IStorageService';
|
|
2
|
+
import type { WidgetSamplerLog } from '../domain';
|
|
3
|
+
export type TimestampField = keyof Pick<WidgetSamplerLog, 'lastDisplayAttempt' | 'lastFirstAccess' | 'lastDisplay' | 'lastDismiss' | 'lastSubmit' | 'lastPartialSubmit'>;
|
|
4
|
+
export declare class WidgetStateManager {
|
|
5
|
+
private storageService;
|
|
6
|
+
private storageKey;
|
|
7
|
+
constructor(storageService: IStorageService<WidgetSamplerLog>, storageKey: string);
|
|
8
|
+
getLogs(): Promise<WidgetSamplerLog>;
|
|
9
|
+
incrementAttempt(): Promise<WidgetSamplerLog>;
|
|
10
|
+
saveLogs(logs: WidgetSamplerLog): Promise<void>;
|
|
11
|
+
resetAttempts(): Promise<WidgetSamplerLog>;
|
|
12
|
+
hasAnsweredTransaction(transactionId?: string): Promise<boolean>;
|
|
13
|
+
markTransactionAnswered(transactionId?: string): Promise<WidgetSamplerLog>;
|
|
14
|
+
updateTimestamp(field: TimestampField): Promise<void>;
|
|
15
|
+
overrideTimestamp(field: TimestampField, date: Date | number): Promise<void>;
|
|
16
|
+
clearLogs(): Promise<void>;
|
|
17
|
+
hasLogs(): Promise<boolean>;
|
|
18
|
+
private getDefaultLogs;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=WidgetStateManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetStateManager.d.ts","sourceRoot":"","sources":["../../src/services/WidgetStateManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,mBAAmB,CAAC,CAAC;AAEzK,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,UAAU,CAAS;gBAEf,cAAc,EAAE,eAAe,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,MAAM;IAK3E,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;IASpC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAY7C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAY1C,sBAAsB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAShE,uBAAuB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqB1E,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5E,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,OAAO,CAAC,cAAc;CAMzB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WidgetStateManager = void 0;
|
|
4
|
+
class WidgetStateManager {
|
|
5
|
+
constructor(storageService, storageKey) {
|
|
6
|
+
this.storageService = storageService;
|
|
7
|
+
this.storageKey = storageKey;
|
|
8
|
+
}
|
|
9
|
+
async getLogs() {
|
|
10
|
+
try {
|
|
11
|
+
return await this.storageService.read(this.storageKey);
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
console.error('[WidgetStateManager] Error reading logs:', error);
|
|
15
|
+
return this.getDefaultLogs();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
async incrementAttempt() {
|
|
19
|
+
const logs = await this.getLogs();
|
|
20
|
+
const updatedLogs = {
|
|
21
|
+
...logs,
|
|
22
|
+
attempts: (logs.attempts || 0) + 1,
|
|
23
|
+
};
|
|
24
|
+
await this.storageService.write(this.storageKey, updatedLogs);
|
|
25
|
+
return updatedLogs;
|
|
26
|
+
}
|
|
27
|
+
async saveLogs(logs) {
|
|
28
|
+
await this.storageService.write(this.storageKey, logs);
|
|
29
|
+
}
|
|
30
|
+
async resetAttempts() {
|
|
31
|
+
const logs = await this.getLogs();
|
|
32
|
+
const updatedLogs = {
|
|
33
|
+
...logs,
|
|
34
|
+
attempts: 0,
|
|
35
|
+
};
|
|
36
|
+
await this.storageService.write(this.storageKey, updatedLogs);
|
|
37
|
+
return updatedLogs;
|
|
38
|
+
}
|
|
39
|
+
async hasAnsweredTransaction(transactionId) {
|
|
40
|
+
if (!transactionId) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const logs = await this.getLogs();
|
|
44
|
+
return (logs.answeredTransactionIds || []).includes(transactionId);
|
|
45
|
+
}
|
|
46
|
+
async markTransactionAnswered(transactionId) {
|
|
47
|
+
const logs = await this.getLogs();
|
|
48
|
+
if (!transactionId) {
|
|
49
|
+
return logs;
|
|
50
|
+
}
|
|
51
|
+
const answeredTransactionIds = logs.answeredTransactionIds || [];
|
|
52
|
+
if (answeredTransactionIds.includes(transactionId)) {
|
|
53
|
+
return logs;
|
|
54
|
+
}
|
|
55
|
+
const updatedLogs = {
|
|
56
|
+
...logs,
|
|
57
|
+
answeredTransactionIds: [...answeredTransactionIds, transactionId],
|
|
58
|
+
};
|
|
59
|
+
await this.storageService.write(this.storageKey, updatedLogs);
|
|
60
|
+
return updatedLogs;
|
|
61
|
+
}
|
|
62
|
+
async updateTimestamp(field) {
|
|
63
|
+
const logs = await this.getLogs();
|
|
64
|
+
const updatedLogs = {
|
|
65
|
+
...logs,
|
|
66
|
+
[field]: Date.now(),
|
|
67
|
+
};
|
|
68
|
+
await this.storageService.write(this.storageKey, updatedLogs);
|
|
69
|
+
}
|
|
70
|
+
async overrideTimestamp(field, date) {
|
|
71
|
+
const logs = await this.getLogs();
|
|
72
|
+
const timestamp = date instanceof Date ? date.getTime() : date;
|
|
73
|
+
const updatedLogs = {
|
|
74
|
+
...logs,
|
|
75
|
+
[field]: timestamp,
|
|
76
|
+
};
|
|
77
|
+
await this.storageService.write(this.storageKey, updatedLogs);
|
|
78
|
+
}
|
|
79
|
+
async clearLogs() {
|
|
80
|
+
await this.storageService.delete(this.storageKey);
|
|
81
|
+
}
|
|
82
|
+
async hasLogs() {
|
|
83
|
+
return await this.storageService.exists(this.storageKey);
|
|
84
|
+
}
|
|
85
|
+
getDefaultLogs() {
|
|
86
|
+
return {
|
|
87
|
+
attempts: 0,
|
|
88
|
+
answeredTransactionIds: [],
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.WidgetStateManager = WidgetStateManager;
|
|
93
|
+
//# sourceMappingURL=WidgetStateManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetStateManager.js","sourceRoot":"","sources":["../../src/services/WidgetStateManager.ts"],"names":[],"mappings":"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"}
|