@deuna/react-native-sdk 1.0.1 → 1.0.2
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/lib/module/DeunaSDK.js +19 -3
- package/lib/module/DeunaSDK.js.map +1 -1
- package/lib/module/components/DeunaWidget.js +3 -0
- package/lib/module/components/DeunaWidget.js.map +1 -1
- package/lib/module/components/DeviceFingerprintWebView.js +44 -0
- package/lib/module/components/DeviceFingerprintWebView.js.map +1 -0
- package/lib/module/controllers/BaseWebViewController.js +9 -9
- package/lib/module/controllers/BaseWebViewController.js.map +1 -1
- package/lib/module/controllers/DeviceFingerprintController.js +69 -0
- package/lib/module/controllers/DeviceFingerprintController.js.map +1 -0
- package/lib/module/controllers/OpenInNewTabController.js +3 -3
- package/lib/module/controllers/OpenInNewTabController.js.map +1 -1
- package/lib/module/interfaces/constants.js +1 -0
- package/lib/module/interfaces/constants.js.map +1 -1
- package/lib/module/types/helpers/buildElementsLink.js +13 -15
- package/lib/module/types/helpers/buildElementsLink.js.map +1 -1
- package/lib/module/types/helpers/buildNextActionLink.js +1 -2
- package/lib/module/types/helpers/buildNextActionLink.js.map +1 -1
- package/lib/module/types/helpers/buildPaymentLink.js +1 -2
- package/lib/module/types/helpers/buildPaymentLink.js.map +1 -1
- package/lib/module/types/helpers/buildVoucherLink.js +1 -2
- package/lib/module/types/helpers/buildVoucherLink.js.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +8 -1
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWidget.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/components/DeviceFingerprintWebView.d.ts +7 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/DeviceFingerprintWebView.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +2 -3
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/controllers/DeviceFingerprintController.d.ts +15 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/DeviceFingerprintController.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts +1 -2
- package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts +2 -2
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildNextActionLink.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildVoucherLink.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/DeunaSDK.ts +25 -3
- package/src/components/DeunaWidget.tsx +2 -0
- package/src/components/DeviceFingerprintWebView.tsx +58 -0
- package/src/controllers/BaseWebViewController.ts +11 -11
- package/src/controllers/DeviceFingerprintController.ts +86 -0
- package/src/controllers/OpenInNewTabController.ts +4 -5
- package/src/interfaces/constants.ts +3 -0
- package/src/types/helpers/buildElementsLink.ts +16 -19
- package/src/types/helpers/buildNextActionLink.ts +1 -2
- package/src/types/helpers/buildPaymentLink.ts +1 -2
- package/src/types/helpers/buildVoucherLink.ts +1 -2
package/lib/module/DeunaSDK.js
CHANGED
|
@@ -8,6 +8,8 @@ import { Completer } from "./helpers/Completer.js";
|
|
|
8
8
|
import { ElementsWidgetController } from "./controllers/ElementsWidgetController.js";
|
|
9
9
|
import { DownloadType, Mode } from "./interfaces/types.js";
|
|
10
10
|
import { Platform } from 'react-native';
|
|
11
|
+
import { DeviceFingerprintController } from "./controllers/DeviceFingerprintController.js";
|
|
12
|
+
import { DEVICE_FINGERPRINT_URL } from "./interfaces/constants.js";
|
|
11
13
|
export class DeunaSDK extends BaseDeuna {
|
|
12
14
|
constructor(config) {
|
|
13
15
|
super();
|
|
@@ -17,6 +19,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
17
19
|
listeners = new Set();
|
|
18
20
|
webViewController = null;
|
|
19
21
|
newTabWebViewController = null;
|
|
22
|
+
deviceFingerprintController = null;
|
|
20
23
|
modalDismissPromise = null;
|
|
21
24
|
newTabModalDismissPromise = null;
|
|
22
25
|
get safeWebViewController() {
|
|
@@ -27,9 +30,22 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
27
30
|
}
|
|
28
31
|
return this.webViewController;
|
|
29
32
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Generates a device fingerprint, creates a invisible webview to get the device fingerprint
|
|
36
|
+
* and returns the device fingerprint
|
|
37
|
+
* @returns The device fingerprint
|
|
38
|
+
*/
|
|
39
|
+
getSessionId = async params => {
|
|
40
|
+
this.deviceFingerprintController = new DeviceFingerprintController(this.config.publicApiKey, this.config.environment ?? 'production');
|
|
41
|
+
this.deviceFingerprintController.url = DEVICE_FINGERPRINT_URL;
|
|
42
|
+
this.notifyListeners();
|
|
43
|
+
const deviceFingerprint = await this.deviceFingerprintController.generateDeviceFingerprint(params ?? {});
|
|
44
|
+
this.deviceFingerprintController?.dispose();
|
|
45
|
+
this.deviceFingerprintController = null;
|
|
46
|
+
this.notifyListeners();
|
|
47
|
+
return deviceFingerprint ?? '';
|
|
48
|
+
};
|
|
33
49
|
static initialize(config) {
|
|
34
50
|
return new DeunaSDK(config);
|
|
35
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseDeuna","PaymentWidgetController","OpenInNewTabController","getWidgetController","Completer","ElementsWidgetController","DownloadType","Mode","Platform","DeunaSDK","constructor","config","mode","listeners","Set","webViewController","newTabWebViewController","modalDismissPromise","newTabModalDismissPromise","safeWebViewController","errorMessage","console","error","Error","getSessionId","
|
|
1
|
+
{"version":3,"names":["BaseDeuna","PaymentWidgetController","OpenInNewTabController","getWidgetController","Completer","ElementsWidgetController","DownloadType","Mode","Platform","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","DeunaSDK","constructor","config","mode","listeners","Set","webViewController","newTabWebViewController","deviceFingerprintController","modalDismissPromise","newTabModalDismissPromise","safeWebViewController","errorMessage","console","error","Error","getSessionId","params","publicApiKey","environment","url","notifyListeners","deviceFingerprint","generateDeviceFingerprint","dispose","initialize","setWidgetController","controller","MODAL","OS","delegate","buildDelegate","initPaymentWidget","props","widget","initElements","initNextAction","initVoucherWidget","isValid","submit","setCustomStyle","style","refetchOrder","getWidgetState","close","callbacks","onClosed","closedAction","onCloseNewTab","wait","onModalDismissed","complete","onNewTabDismissed","addListener","listener","add","removeListener","delete","forEach","notifyDownloadFile","onDownloadFile","type","URL","data","redirectUrl","onOpenInNewTab","onFileDownload","onNewTabWindowClose","onCloseButtonPressed","onCloseSubWebView"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
5
5
|
import { DeunaWebView } from "./DeunaWebView.js";
|
|
6
6
|
import { NewTabWebView } from "./NewTabWebView.js";
|
|
7
7
|
import { Mode } from "../interfaces/types.js";
|
|
8
|
+
import { DeviceFingerprintWebView } from "./DeviceFingerprintWebView.js";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
9
10
|
export const DeunaWidget = props => {
|
|
10
11
|
const {
|
|
@@ -73,6 +74,8 @@ export const DeunaWidget = props => {
|
|
|
73
74
|
onLoad: instanceRef.current.webViewController?.onLoad,
|
|
74
75
|
onError: instanceRef.current.webViewController?.onError,
|
|
75
76
|
onShouldStartLoadWithRequest: instanceRef.current.webViewController?.onShouldStartLoadWithRequest
|
|
77
|
+
}), /*#__PURE__*/_jsx(DeviceFingerprintWebView, {
|
|
78
|
+
instance: instanceRef.current
|
|
76
79
|
})]
|
|
77
80
|
});
|
|
78
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","NewTabWebView","Mode","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DeunaWidget","props","instance","instanceRef","mode","setMode","current","listener","addListener","removeListener","webViewController","dispose","isModal","MODAL","isEmbedded","EMBEDDED","onClose","controller","closedAction","close","children","presentationStyle","animationType","onRequestClose","onDismiss","onModalDismissed","visible","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,YAAY,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACpE,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAGnD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,aAAa,QAAQ,oBAAiB;AAE/C,SAASC,IAAI,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;
|
|
1
|
+
{"version":3,"names":["Modal","SafeAreaView","StyleSheet","View","useEffect","useRef","useState","DeunaWebView","NewTabWebView","Mode","DeviceFingerprintWebView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DeunaWidget","props","instance","instanceRef","mode","setMode","current","listener","addListener","removeListener","webViewController","dispose","isModal","MODAL","isEmbedded","EMBEDDED","onClose","controller","closedAction","close","children","presentationStyle","animationType","onRequestClose","onDismiss","onModalDismissed","visible","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWidget.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { DeunaWebView } from "./DeunaWebView.js";
|
|
5
|
+
import { View } from 'react-native';
|
|
6
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
export const DeviceFingerprintWebView = props => {
|
|
8
|
+
const {
|
|
9
|
+
instance
|
|
10
|
+
} = props;
|
|
11
|
+
const instanceRef = useRef(instance);
|
|
12
|
+
const [visible, setVisible] = useState(false);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
instanceRef.current = instance;
|
|
15
|
+
}, [instance]);
|
|
16
|
+
|
|
17
|
+
// Listen when the DeunaSDK instance configuration
|
|
18
|
+
// has changed
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const ref = instanceRef.current;
|
|
21
|
+
const listener = () => {
|
|
22
|
+
const isVisible = !!ref.deviceFingerprintController;
|
|
23
|
+
setVisible(isVisible);
|
|
24
|
+
};
|
|
25
|
+
instanceRef.current.addListener(listener);
|
|
26
|
+
return () => {
|
|
27
|
+
ref.removeListener(listener);
|
|
28
|
+
};
|
|
29
|
+
}, []);
|
|
30
|
+
const deviceFingerprintController = instanceRef.current.deviceFingerprintController;
|
|
31
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
32
|
+
children: visible && /*#__PURE__*/_jsx(View, {
|
|
33
|
+
children: /*#__PURE__*/_jsx(DeunaWebView, {
|
|
34
|
+
url: deviceFingerprintController?.url ?? '',
|
|
35
|
+
onWebView: deviceFingerprintController?.setWebView,
|
|
36
|
+
onMessage: deviceFingerprintController?.onMessage,
|
|
37
|
+
onLoad: deviceFingerprintController?.onLoad,
|
|
38
|
+
onError: deviceFingerprintController?.onError,
|
|
39
|
+
onShouldStartLoadWithRequest: deviceFingerprintController?.onShouldStartLoadWithRequest
|
|
40
|
+
})
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=DeviceFingerprintWebView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","DeunaWebView","View","jsx","_jsx","Fragment","_Fragment","DeviceFingerprintWebView","props","instance","instanceRef","visible","setVisible","current","ref","listener","isVisible","deviceFingerprintController","addListener","removeListener","children","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest"],"sourceRoot":"../../../src","sources":["components/DeviceFingerprintWebView.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAMpC,OAAO,MAAMC,wBAAwB,GACnCC,KAAoC,IACjC;EACH,MAAM;IAAEC;EAAS,CAAC,GAAGD,KAAK;EAC1B,MAAME,WAAW,GAAGX,MAAM,CAAWU,QAAQ,CAAC;EAC9C,MAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EAE7CF,SAAS,CAAC,MAAM;IACdY,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAChC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;;EAEd;EACA;EACAX,SAAS,CAAC,MAAM;IACd,MAAMgB,GAAG,GAAGJ,WAAW,CAACG,OAAO;IAC/B,MAAME,QAAQ,GAAGA,CAAA,KAAM;MACrB,MAAMC,SAAS,GAAG,CAAC,CAACF,GAAG,CAACG,2BAA2B;MACnDL,UAAU,CAACI,SAAS,CAAC;IACvB,CAAC;IAEDN,WAAW,CAACG,OAAO,CAACK,WAAW,CAACH,QAAQ,CAAC;IAEzC,OAAO,MAAM;MACXD,GAAG,CAACK,cAAc,CAACJ,QAAQ,CAAC;IAC9B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,2BAA2B,GAC/BP,WAAW,CAACG,OAAO,CAACI,2BAA2B;EAEjD,oBACEb,IAAA,CAAAE,SAAA;IAAAc,QAAA,EACGT,OAAO,iBACNP,IAAA,CAACF,IAAI;MAAAkB,QAAA,eACHhB,IAAA,CAACH,YAAY;QACXoB,GAAG,EAAEJ,2BAA2B,EAAEI,GAAG,IAAI,EAAG;QAC5CC,SAAS,EAAEL,2BAA2B,EAAEM,UAAW;QACnDC,SAAS,EAAEP,2BAA2B,EAAEO,SAAU;QAClDC,MAAM,EAAER,2BAA2B,EAAEQ,MAAO;QAC5CC,OAAO,EAAET,2BAA2B,EAAES,OAAQ;QAC9CC,4BAA4B,EAC1BV,2BAA2B,EAAEU;MAC9B,CACF;IAAC,CACE;EACP,CACD,CAAC;AAEP,CAAC","ignoreList":[]}
|
|
@@ -19,6 +19,11 @@ export class BaseWebViewController {
|
|
|
19
19
|
webView = null;
|
|
20
20
|
url = null;
|
|
21
21
|
delegate = null;
|
|
22
|
+
jsExecutor = new JsExecutor();
|
|
23
|
+
setWebView = webView => {
|
|
24
|
+
this.webView = webView;
|
|
25
|
+
this.jsExecutor.webView = webView;
|
|
26
|
+
};
|
|
22
27
|
|
|
23
28
|
/**
|
|
24
29
|
* Called when the web view url is loaded successfully
|
|
@@ -77,11 +82,6 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
77
82
|
hidePayButton = false;
|
|
78
83
|
redirectUrl = null;
|
|
79
84
|
closedAction = 'systemAction';
|
|
80
|
-
jsExecutor = new JsExecutor();
|
|
81
|
-
setWebView = webView => {
|
|
82
|
-
this.webView = webView;
|
|
83
|
-
this.jsExecutor.webView = webView;
|
|
84
|
-
};
|
|
85
85
|
onLoad = () => {
|
|
86
86
|
this.setXprops();
|
|
87
87
|
};
|
|
@@ -90,7 +90,6 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
90
90
|
this.delegate?.onFileDownload?.(url);
|
|
91
91
|
} else {
|
|
92
92
|
this.redirectUrl = url;
|
|
93
|
-
this.delegate?.onOpenInNewTab?.(url);
|
|
94
93
|
}
|
|
95
94
|
return false;
|
|
96
95
|
};
|
|
@@ -128,8 +127,10 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
128
127
|
mapper[eventData.type]?.();
|
|
129
128
|
};
|
|
130
129
|
setXprops = () => {
|
|
131
|
-
// this.detectDownloadsAndRedirects(true);
|
|
132
130
|
this.webView?.injectJavaScript(`
|
|
131
|
+
console.log = function(message) {
|
|
132
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message }));
|
|
133
|
+
};
|
|
133
134
|
window.xprops = {
|
|
134
135
|
hidePayButton: ${this.hidePayButton},
|
|
135
136
|
onEventDispatch: function (event) {
|
|
@@ -174,8 +175,7 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
174
175
|
* @returns The order data | returns null if the order is not found or an error occurs
|
|
175
176
|
*/
|
|
176
177
|
refetchOrder = async () => {
|
|
177
|
-
const result = await this.jsExecutor.execute(`
|
|
178
|
-
if(typeof window.deunaRefetchOrder !== 'function'){
|
|
178
|
+
const result = await this.jsExecutor.execute(` if(typeof window.deunaRefetchOrder !== 'function'){
|
|
179
179
|
sendResult({order: null});
|
|
180
180
|
return;
|
|
181
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeunaLogs","submitError","Platform","WebViewEventType","DOWNLOAD_FILE_REGEX","BaseWebViewController","initialized","redirectUrl","webView","url","delegate","isDownloadUrl","test","onShouldStartLoadWithRequest","request","isNewNavigation","isTopFrame","isClickNavigation","navigationType","shouldHandleInNewTab","urlMustBeLoadedInTheSameWebView","shouldOpenInNewTab","OS","onOpenInNewTab","dispose","stopLoading","DeunaWebViewController","hidePayButton","closedAction","
|
|
1
|
+
{"version":3,"names":["DeunaLogs","submitError","Platform","WebViewEventType","DOWNLOAD_FILE_REGEX","BaseWebViewController","initialized","redirectUrl","webView","url","delegate","jsExecutor","JsExecutor","setWebView","isDownloadUrl","test","onShouldStartLoadWithRequest","request","isNewNavigation","isTopFrame","isClickNavigation","navigationType","shouldHandleInNewTab","urlMustBeLoadedInTheSameWebView","shouldOpenInNewTab","OS","onOpenInNewTab","dispose","stopLoading","DeunaWebViewController","hidePayButton","closedAction","onLoad","setXprops","onFileDownload","onMessage","event","eventData","JSON","parse","nativeEvent","data","mapper","consoleLog","info","stringify","message","eventDispatch","onEventDispatch","requestId","requests","get","delete","openInNewTab","redirect","newTabWindowClose","onNewTabWindowClose","type","injectJavaScript","getWidgetState","result","execute","deunaWidgetState","refetchOrder","order","setCustomStyle","style","isValid","submit","status","code","takeScreenshot","imgData","Map","jsCode","Promise","resolve","set"],"sourceRoot":"../../../src","sources":["controllers/BaseWebViewController.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BaseWebViewController, WebViewEventType } from "./BaseWebViewController.js";
|
|
4
|
+
import { Completer } from "../helpers/Completer.js";
|
|
5
|
+
import { DeunaLogs } from "../DeunaLogs.js";
|
|
6
|
+
export class DeviceFingerprintController extends BaseWebViewController {
|
|
7
|
+
constructor(publicApiKey, environment) {
|
|
8
|
+
super();
|
|
9
|
+
this.publicApiKey = publicApiKey;
|
|
10
|
+
this.environment = environment;
|
|
11
|
+
}
|
|
12
|
+
completer = new Completer();
|
|
13
|
+
onMessage = event => {
|
|
14
|
+
const eventData = JSON.parse(event.nativeEvent.data);
|
|
15
|
+
const mapper = {
|
|
16
|
+
[WebViewEventType.consoleLog]: () => {
|
|
17
|
+
DeunaLogs.info(`CONSOLE LOG`, JSON.stringify(eventData.message, null, 2));
|
|
18
|
+
},
|
|
19
|
+
[WebViewEventType.jsExecutor]: () => {
|
|
20
|
+
const {
|
|
21
|
+
data,
|
|
22
|
+
requestId
|
|
23
|
+
} = eventData;
|
|
24
|
+
this.jsExecutor.requests.get(requestId)?.(data);
|
|
25
|
+
this.jsExecutor.requests.delete(requestId);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
mapper[eventData.type]?.();
|
|
29
|
+
};
|
|
30
|
+
onLoad = () => {
|
|
31
|
+
this.webView?.injectJavaScript(`
|
|
32
|
+
console.log = function(message) {
|
|
33
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message:message }));
|
|
34
|
+
};
|
|
35
|
+
`);
|
|
36
|
+
this.completer.complete(true);
|
|
37
|
+
};
|
|
38
|
+
onError = _ => {
|
|
39
|
+
this.completer.complete(false);
|
|
40
|
+
};
|
|
41
|
+
urlMustBeLoadedInTheSameWebView = _ => true;
|
|
42
|
+
generateDeviceFingerprint = async params => {
|
|
43
|
+
const isLoaded = await this.completer.wait;
|
|
44
|
+
if (!isLoaded) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const data = await this.jsExecutor.execute(`
|
|
48
|
+
if (typeof window.generateFraudId !== 'function') {
|
|
49
|
+
console.log('❌ window.generateFraudId is not a function');
|
|
50
|
+
sendResult({fraudId: null});
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
window.generateFraudId({
|
|
55
|
+
publicApiKey: "${this.publicApiKey}",
|
|
56
|
+
env: "${this.environment}",
|
|
57
|
+
params: ${JSON.stringify(params)}
|
|
58
|
+
})
|
|
59
|
+
.then((fraudId) => {
|
|
60
|
+
sendResult({ fraudId: fraudId });
|
|
61
|
+
})
|
|
62
|
+
.catch((error) => {
|
|
63
|
+
sendResult({ fraudId: null });
|
|
64
|
+
});
|
|
65
|
+
`);
|
|
66
|
+
return data?.fraudId ?? null;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=DeviceFingerprintController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BaseWebViewController","WebViewEventType","Completer","DeunaLogs","DeviceFingerprintController","constructor","publicApiKey","environment","completer","onMessage","event","eventData","JSON","parse","nativeEvent","data","mapper","consoleLog","info","stringify","message","jsExecutor","requestId","requests","get","delete","type","onLoad","webView","injectJavaScript","complete","onError","_","urlMustBeLoadedInTheSameWebView","generateDeviceFingerprint","params","isLoaded","wait","execute","fraudId"],"sourceRoot":"../../../src","sources":["controllers/DeviceFingerprintController.ts"],"mappings":";;AACA,SACEA,qBAAqB,EACrBC,gBAAgB,QACX,4BAAyB;AAChC,SAASC,SAAS,QAAQ,yBAAsB;AAEhD,SAASC,SAAS,QAAQ,iBAAc;AAExC,OAAO,MAAMC,2BAA2B,SAASJ,qBAAqB,CAAC;EACrEK,WAAWA,CACQC,YAAoB,EACpBC,WAAwB,EACzC;IACA,KAAK,CAAC,CAAC;IAAC,KAHSD,YAAoB,GAApBA,YAAoB;IAAA,KACpBC,WAAwB,GAAxBA,WAAwB;EAG3C;EAEQC,SAAS,GAAG,IAAIN,SAAS,CAAU,CAAC;EAE5CO,SAAS,GAAIC,KAA0B,IAAK;IAC1C,MAAMC,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,CAACI,WAAW,CAACC,IAAI,CAAC;IAEpD,MAAMC,MAAM,GAAG;MACb,CAACf,gBAAgB,CAACgB,UAAU,GAAG,MAAM;QACnCd,SAAS,CAACe,IAAI,CACZ,aAAa,EACbN,IAAI,CAACO,SAAS,CAACR,SAAS,CAACS,OAAO,EAAE,IAAI,EAAE,CAAC,CAC3C,CAAC;MACH,CAAC;MACD,CAACnB,gBAAgB,CAACoB,UAAU,GAAG,MAAM;QACnC,MAAM;UAAEN,IAAI;UAAEO;QAAU,CAAC,GAAGX,SAG3B;QACD,IAAI,CAACU,UAAU,CAACE,QAAQ,CAACC,GAAG,CAACF,SAAS,CAAC,GAAGP,IAAI,CAAC;QAC/C,IAAI,CAACM,UAAU,CAACE,QAAQ,CAACE,MAAM,CAACH,SAAS,CAAC;MAC5C;IACF,CAAC;IACDN,MAAM,CAACL,SAAS,CAACe,IAAI,CAAwB,GAAG,CAAC;EACnD,CAAC;EAEDC,MAAM,GAAGA,CAAA,KAAM;IACb,IAAI,CAACC,OAAO,EAAEC,gBAAgB,CAAC;AACnC;AACA,0EAA0E5B,gBAAgB,CAACgB,UAAU;AACrG;AACA,KAAK,CAAC;IACF,IAAI,CAACT,SAAS,CAACsB,QAAQ,CAAC,IAAI,CAAC;EAC/B,CAAC;EAEDC,OAAO,GAAIC,CAAM,IAAK;IACpB,IAAI,CAACxB,SAAS,CAACsB,QAAQ,CAAC,KAAK,CAAC;EAChC,CAAC;EAEDG,+BAA+B,GAAID,CAAS,IAAK,IAAI;EAErDE,yBAAyB,GAAG,MAC1BC,MAA2B,IACA;IAC3B,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAAC5B,SAAS,CAAC6B,IAAI;IAC1C,IAAI,CAACD,QAAQ,EAAE;MACb,OAAO,IAAI;IACb;IAEA,MAAMrB,IAAI,GAAG,MAAM,IAAI,CAACM,UAAU,CAACiB,OAAO,CAAC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI,CAAChC,YAAY;AAC5C,kBAAkB,IAAI,CAACC,WAAW;AAClC,oBAAoBK,IAAI,CAACO,SAAS,CAACgB,MAAM,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;IACJ,OAAOpB,IAAI,EAAEwB,OAAO,IAAI,IAAI;EAC9B,CAAC;AACH","ignoreList":[]}
|
|
@@ -8,9 +8,6 @@ export class OpenInNewTabController extends BaseWebViewController {
|
|
|
8
8
|
this.url = url;
|
|
9
9
|
this.url = url;
|
|
10
10
|
}
|
|
11
|
-
setWebView = webView => {
|
|
12
|
-
this.webView = webView;
|
|
13
|
-
};
|
|
14
11
|
onLoad = () => {
|
|
15
12
|
this.setXprops();
|
|
16
13
|
};
|
|
@@ -33,6 +30,9 @@ export class OpenInNewTabController extends BaseWebViewController {
|
|
|
33
30
|
setXprops = () => {
|
|
34
31
|
// Hide the print button on the Efecty page
|
|
35
32
|
this.webView?.injectJavaScript(`
|
|
33
|
+
console.log = function(message) {
|
|
34
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message }));
|
|
35
|
+
};
|
|
36
36
|
window.close = function() {
|
|
37
37
|
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.newTabWindowClose}', data: '' }));
|
|
38
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseWebViewController","WebViewEventType","DeunaLogs","OpenInNewTabController","constructor","url","
|
|
1
|
+
{"version":3,"names":["BaseWebViewController","WebViewEventType","DeunaLogs","OpenInNewTabController","constructor","url","onLoad","setXprops","onError","event","console","warn","urlMustBeLoadedInTheSameWebView","isDownloadUrl","delegate","onFileDownload","onMessage","eventData","JSON","parse","nativeEvent","data","type","info","message","webView","injectJavaScript","consoleLog","newTabWindowClose"],"sourceRoot":"../../../src","sources":["controllers/OpenInNewTabController.ts"],"mappings":";;AACA,SACEA,qBAAqB,EACrBC,gBAAgB,QACX,4BAAyB;AAChC,SAASC,SAAS,QAAQ,iBAAc;AAExC,OAAO,MAAMC,sBAAsB,SAASH,qBAAqB,CAAC;EAChEI,WAAWA,CAAUC,GAAW,EAAE;IAChC,KAAK,CAAC,CAAC;IAAC,KADWA,GAAW,GAAXA,GAAW;IAE9B,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAEAC,MAAM,GAAGA,CAAA,KAAM;IACb,IAAI,CAACC,SAAS,CAAC,CAAC;EAClB,CAAC;EAEDC,OAAO,GAAIC,KAAU,IAAK;IACxBC,OAAO,CAACC,IAAI,CAACF,KAAK,CAAC;EACrB,CAAC;EAEDG,+BAA+B,GAAIP,GAAW,IAAK;IACjD,IAAI,IAAI,CAACQ,aAAa,CAACR,GAAG,CAAC,EAAE;MAC3B,IAAI,CAACS,QAAQ,EAAEC,cAAc,GAAGV,GAAG,CAAC;MACpC,OAAO,KAAK;IACd;IACA,OAAO,IAAI;EACb,CAAC;EAEDW,SAAS,GAAIP,KAA0B,IAAK;IAC1C,MAAMQ,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACV,KAAK,CAACW,WAAW,CAACC,IAAI,CAAC;IACpD,IAAIJ,SAAS,CAACK,IAAI,KAAK,aAAa,EAAE;MACpCpB,SAAS,CAACqB,IAAI,CAAC,aAAa,EAAEN,SAAS,CAACO,OAAO,CAAC;IAClD;EACF,CAAC;EAEDjB,SAAS,GAAGA,CAAA,KAAM;IAChB;IACA,IAAI,CAACkB,OAAO,EAAEC,gBAAgB,CAAC;AACnC;AACA,wEAAwEzB,gBAAgB,CAAC0B,UAAU;AACnG;AACA;AACA,wEAAwE1B,gBAAgB,CAAC2B,iBAAiB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["constants","apmSaveId","metadata","voucherPdfDownloadUrl"],"sourceRoot":"../../../src","sources":["interfaces/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,SAAS,EAAE,WAAW;EACtBC,QAAQ,EAAE,UAAU;EACpBC,qBAAqB,EAAE;AACzB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["constants","apmSaveId","metadata","voucherPdfDownloadUrl","DEVICE_FINGERPRINT_URL"],"sourceRoot":"../../../src","sources":["interfaces/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,SAAS,EAAE,WAAW;EACtBC,QAAQ,EAAE,UAAU;EACpBC,qBAAqB,EAAE;AACzB,CAAC;AAGD,OAAO,MAAMC,sBAAsB,GAAG,wDAAwD","ignoreList":[]}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
import { hasKey } from "../utils/hasKey.js";
|
|
4
4
|
import { getIntegrationType } from "./urlConfig.js";
|
|
5
5
|
const ELEMENTS_URLS = {
|
|
6
|
-
production:
|
|
7
|
-
sandbox:
|
|
8
|
-
staging:
|
|
9
|
-
develop:
|
|
6
|
+
production: "https://elements.deuna.io",
|
|
7
|
+
sandbox: "https://elements.sandbox.deuna.io",
|
|
8
|
+
staging: "https://elements.stg.deuna.io",
|
|
9
|
+
develop: "https://elements.dev.deuna.io"
|
|
10
10
|
};
|
|
11
11
|
const WIDGET_PATHS = {
|
|
12
|
-
click_to_pay:
|
|
13
|
-
vault:
|
|
12
|
+
click_to_pay: "/click_to_pay",
|
|
13
|
+
vault: "/vault"
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* Builds the base URL for the Elements widget based on environment and domain configuration
|
|
@@ -37,9 +37,9 @@ const buildSearchParams = config => {
|
|
|
37
37
|
const searchParams = {
|
|
38
38
|
publicApiKey: config.publicApiKey,
|
|
39
39
|
orderToken: config.orderToken,
|
|
40
|
-
email: userInfo?.email ||
|
|
41
|
-
firstName: userInfo?.firstName ||
|
|
42
|
-
lastName: userInfo?.lastName ||
|
|
40
|
+
email: userInfo?.email || "",
|
|
41
|
+
firstName: userInfo?.firstName || "",
|
|
42
|
+
lastName: userInfo?.lastName || "",
|
|
43
43
|
int: getIntegrationType(mode),
|
|
44
44
|
language
|
|
45
45
|
};
|
|
@@ -63,7 +63,7 @@ const buildSearchParams = config => {
|
|
|
63
63
|
*/
|
|
64
64
|
const getWidgetPath = types => {
|
|
65
65
|
if (types && types.length > 0) {
|
|
66
|
-
const firstPath = types[0]
|
|
66
|
+
const firstPath = types[0]?.name;
|
|
67
67
|
return hasKey(WIDGET_PATHS, firstPath) ? WIDGET_PATHS[firstPath] : WIDGET_PATHS.vault;
|
|
68
68
|
}
|
|
69
69
|
return WIDGET_PATHS.vault;
|
|
@@ -81,12 +81,10 @@ export const buildElementsLink = config => {
|
|
|
81
81
|
id: config.id,
|
|
82
82
|
behavior: config.behavior || {}
|
|
83
83
|
};
|
|
84
|
-
searchParams.append(
|
|
84
|
+
searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
|
|
85
85
|
const widgetPath = getWidgetPath(config.types);
|
|
86
|
-
const normalizedPath = widgetPath.startsWith(
|
|
87
|
-
const url = new URL(normalizedPath
|
|
88
|
-
url.search = searchParams.toString();
|
|
89
|
-
console.log('url', url.toString());
|
|
86
|
+
const normalizedPath = widgetPath.startsWith("/") ? widgetPath : `/${widgetPath}`;
|
|
87
|
+
const url = new URL(`${baseUrl}${normalizedPath}?${searchParams.toString()}`);
|
|
90
88
|
return url.toString();
|
|
91
89
|
};
|
|
92
90
|
//# sourceMappingURL=buildElementsLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hasKey","getIntegrationType","ELEMENTS_URLS","production","sandbox","staging","develop","WIDGET_PATHS","click_to_pay","vault","buildBaseUrl","config","domain","env","buildSearchParams","userInfo","userToken","widgetExperience","styleFile","mode","language","searchParams","publicApiKey","orderToken","email","firstName","lastName","int","cssFile","userExperience","showSavedCardsFlow","String","defaultCardFlow","showDefaultCardFlow","URLSearchParams","getWidgetPath","types","length","firstPath","name","buildElementsLink","baseUrl","xpropsB64","id","behavior","append","btoa","JSON","stringify","widgetPath","normalizedPath","startsWith","url","URL","
|
|
1
|
+
{"version":3,"names":["hasKey","getIntegrationType","ELEMENTS_URLS","production","sandbox","staging","develop","WIDGET_PATHS","click_to_pay","vault","buildBaseUrl","config","domain","env","buildSearchParams","userInfo","userToken","widgetExperience","styleFile","mode","language","searchParams","publicApiKey","orderToken","email","firstName","lastName","int","cssFile","userExperience","showSavedCardsFlow","String","defaultCardFlow","showDefaultCardFlow","URLSearchParams","getWidgetPath","types","length","firstPath","name","buildElementsLink","baseUrl","xpropsB64","id","behavior","append","btoa","JSON","stringify","widgetPath","normalizedPath","startsWith","url","URL","toString"],"sourceRoot":"../../../../src","sources":["types/helpers/buildElementsLink.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,8 +31,7 @@ export const buildNextActionLink = config => {
|
|
|
31
31
|
if (config.domain) {
|
|
32
32
|
baseUrl = config.domain;
|
|
33
33
|
}
|
|
34
|
-
const url = new URL(
|
|
35
|
-
url.search = searchParams.toString();
|
|
34
|
+
const url = new URL(`${baseUrl}/next-action-purchase/${orderToken}?${searchParams.toString()}`);
|
|
36
35
|
return url.toString();
|
|
37
36
|
};
|
|
38
37
|
//# sourceMappingURL=buildNextActionLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["configToQueryParams","getIntegrationType","urls","production","sandbox","staging","develop","buildNextActionLink","config","env","orderToken","baseUrl","xpropsB64","id","searchParams","URLSearchParams","mode","int","language","append","btoa","JSON","stringify","domain","url","URL","
|
|
1
|
+
{"version":3,"names":["configToQueryParams","getIntegrationType","urls","production","sandbox","staging","develop","buildNextActionLink","config","env","orderToken","baseUrl","xpropsB64","id","searchParams","URLSearchParams","mode","int","language","append","btoa","JSON","stringify","domain","url","URL","toString"],"sourceRoot":"../../../../src","sources":["types/helpers/buildNextActionLink.ts"],"mappings":";;AACA,SACEA,mBAAmB,EACnBC,kBAAkB,QAEb,gBAAa;AAEpB,MAAMC,IAAiC,GAAG;EACxCC,UAAU,EAAE,sBAAsB;EAClCC,OAAO,EAAE,8BAA8B;EACvCC,OAAO,EAAE,2BAA2B;EACpCC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAIC,MAAiB,IAAa;EAChE,MAAM;IAAEC,GAAG;IAAEC;EAAW,CAAC,GAAGF,MAAM;EAElC,IAAIG,OAAO,GAAGT,IAAI,CAACC,UAAU;EAE7B,IAAIM,GAAG,EAAE;IACPE,OAAO,GAAGT,IAAI,CAACO,GAAG,CAAC;EACrB;EAEA,MAAMG,SAAS,GAAG;IAChBC,EAAE,EAAEL,MAAM,CAACK;EACb,CAAC;EAED,MAAMC,YAAY,GAAG,IAAIC,eAAe,CAAC;IACvCC,IAAI,EAAE,QAAQ;IACdC,GAAG,EAAEhB,kBAAkB,CAACO,MAAM,CAACQ,IAAI,CAAC;IACpCE,QAAQ,EAAEV,MAAM,CAACU;EACnB,CAAC,CAAC;;EAEF;EACAJ,YAAY,CAACK,MAAM,CAAC,WAAW,EAAEC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACV,SAAS,CAAC,CAAC,CAAC;EAEjEZ,mBAAmB,CAACQ,MAAM,EAAEM,YAAY,CAAC;EAEzC,IAAIN,MAAM,CAACe,MAAM,EAAE;IACjBZ,OAAO,GAAGH,MAAM,CAACe,MAAM;EACzB;EAEA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAC,GAAGd,OAAO,yBAAyBD,UAAU,IAAII,YAAY,CAACY,QAAQ,CAAC,CAAC,EAAE,CAAC;EAE/F,OAAOF,GAAG,CAACE,QAAQ,CAAC,CAAC;AACvB,CAAC","ignoreList":[]}
|
|
@@ -46,8 +46,7 @@ export const buildPaymentLink = config => {
|
|
|
46
46
|
|
|
47
47
|
//encode to base64
|
|
48
48
|
searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
|
|
49
|
-
const url = new URL(
|
|
50
|
-
url.search = searchParams.toString();
|
|
49
|
+
const url = new URL(`${baseUrl}/now/${orderToken}?${searchParams.toString()}`);
|
|
51
50
|
return url.toString();
|
|
52
51
|
};
|
|
53
52
|
//# sourceMappingURL=buildPaymentLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["configToQueryParams","getIntegrationType","urls","production","sandbox","staging","develop","buildPaymentLink","config","env","orderToken","baseUrl","searchParams","URLSearchParams","mode","int","language","xpropsB64","id","paymentMethods","publicApiKey","behavior","cdl","sessionId","domain","append","btoa","JSON","stringify","url","URL","
|
|
1
|
+
{"version":3,"names":["configToQueryParams","getIntegrationType","urls","production","sandbox","staging","develop","buildPaymentLink","config","env","orderToken","baseUrl","searchParams","URLSearchParams","mode","int","language","xpropsB64","id","paymentMethods","publicApiKey","behavior","cdl","sessionId","domain","append","btoa","JSON","stringify","url","URL","toString"],"sourceRoot":"../../../../src","sources":["types/helpers/buildPaymentLink.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAGA,SACEA,mBAAmB,EACnBC,kBAAkB,QAEb,gBAAa;AAEpB,MAAMC,IAAiC,GAAG;EACxCC,UAAU,EAAE,sBAAsB;EAClCC,OAAO,EAAE,8BAA8B;EACvCC,OAAO,EAAE,2BAA2B;EACpCC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,MAAiB,IAAa;EAC7D,MAAM;IAAEC,GAAG;IAAEC;EAAW,CAAC,GAAGF,MAAM;EAElC,IAAIG,OAAO,GAAGT,IAAI,CAACC,UAAU;EAE7B,IAAIM,GAAG,EAAE;IACPE,OAAO,GAAGT,IAAI,CAACO,GAAG,CAAC;EACrB;EAEA,MAAMG,YAAY,GAAG,IAAIC,eAAe,CAAC;IACvCC,IAAI,EAAE,QAAQ;IACdC,GAAG,EAAEd,kBAAkB,CAACO,MAAM,CAACM,IAAI,CAAC;IACpCE,QAAQ,EAAER,MAAM,CAACQ;EACnB,CAAC,CAAC;;EAEF;;EAEA,MAAMC,SAAS,GAAG;IAChBC,EAAE,EAAEV,MAAM,CAACU,EAAE;IACbC,cAAc,EAAEX,MAAM,CAACW,cAAc;IACrCC,YAAY,EAAEZ,MAAM,CAACY,YAAY;IACjCC,QAAQ,EAAEb,MAAM,CAACa,QAAQ;IACzBC,GAAG,EAAE;MACHC,SAAS,EAAEf,MAAM,CAACe;IACpB;EACF,CAAC;EAEDvB,mBAAmB,CAACQ,MAAM,EAAEI,YAAY,CAAC;EAEzC,IAAIJ,MAAM,CAACgB,MAAM,EAAE;IACjBb,OAAO,GAAGH,MAAM,CAACgB,MAAM;EACzB;;EAEA;EACAZ,YAAY,CAACa,MAAM,CAAC,WAAW,EAAEC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACX,SAAS,CAAC,CAAC,CAAC;EAEjE,MAAMY,GAAG,GAAG,IAAIC,GAAG,CAAC,GAAGnB,OAAO,QAAQD,UAAU,IAAIE,YAAY,CAACmB,QAAQ,CAAC,CAAC,EAAE,CAAC;EAE9E,OAAOF,GAAG,CAACE,QAAQ,CAAC,CAAC;AACvB,CAAC","ignoreList":[]}
|
|
@@ -40,8 +40,7 @@ export const buildVoucherLink = config => {
|
|
|
40
40
|
|
|
41
41
|
//encode to base64
|
|
42
42
|
searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
|
|
43
|
-
const url = new URL(
|
|
44
|
-
url.search = searchParams.toString();
|
|
43
|
+
const url = new URL(`${baseUrl}/voucher?${searchParams.toString()}`);
|
|
45
44
|
return url.toString();
|
|
46
45
|
};
|
|
47
46
|
//# sourceMappingURL=buildVoucherLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getIntegrationType","urls","production","sandbox","staging","develop","buildVoucherLink","config","env","orderToken","baseUrl","searchParams","URLSearchParams","mode","int","language","xpropsB64","id","cdl","sessionId","domain","append","btoa","JSON","stringify","url","URL","
|
|
1
|
+
{"version":3,"names":["getIntegrationType","urls","production","sandbox","staging","develop","buildVoucherLink","config","env","orderToken","baseUrl","searchParams","URLSearchParams","mode","int","language","xpropsB64","id","cdl","sessionId","domain","append","btoa","JSON","stringify","url","URL","toString"],"sourceRoot":"../../../../src","sources":["types/helpers/buildVoucherLink.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAGA,SAASA,kBAAkB,QAAmB,gBAAa;AAE3D,MAAMC,IAAiC,GAAG;EACxCC,UAAU,EAAE,sBAAsB;EAClCC,OAAO,EAAE,8BAA8B;EACvCC,OAAO,EAAE,2BAA2B;EACpCC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,MAAiB,IAAa;EAC7D,MAAM;IAAEC,GAAG;IAAEC;EAAW,CAAC,GAAGF,MAAM;EAElC,IAAIG,OAAO,GAAGT,IAAI,CAACC,UAAU;EAE7B,IAAIM,GAAG,EAAE;IACPE,OAAO,GAAGT,IAAI,CAACO,GAAG,CAAC;EACrB;EAEA,MAAMG,YAAY,GAAG,IAAIC,eAAe,CAAC;IACvCC,IAAI,EAAE,QAAQ;IACdC,GAAG,EAAEd,kBAAkB,CAACO,MAAM,CAACM,IAAI,CAAC;IACpCE,QAAQ,EAAER,MAAM,CAACQ,QAAQ;IACzBN;EACF,CAAC,CAAC;EAEF,MAAMO,SAAS,GAAG;IAChBC,EAAE,EAAEV,MAAM,CAACU,EAAE;IACbC,GAAG,EAAE;MACHC,SAAS,EAAEZ,MAAM,CAACY;IACpB;EACF,CAAC;EAED,IAAIZ,MAAM,CAACa,MAAM,EAAE;IACjBV,OAAO,GAAGH,MAAM,CAACa,MAAM;EACzB;;EAEA;EACAT,YAAY,CAACU,MAAM,CAAC,WAAW,EAAEC,IAAI,CAACC,IAAI,CAACC,SAAS,CAACR,SAAS,CAAC,CAAC,CAAC;EAEjE,MAAMS,GAAG,GAAG,IAAIC,GAAG,CAAC,GAAGhB,OAAO,YAAYC,YAAY,CAACgB,QAAQ,CAAC,CAAC,EAAE,CAAC;EAEpE,OAAOF,GAAG,CAACE,QAAQ,CAAC,CAAC;AACvB,CAAC","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import { BaseDeuna, CustomStyles, GetStateFn, InitElementsWidgetParams, Initiali
|
|
|
2
2
|
import { BaseWebViewController, DeunaWebViewController, WebViewDelegate } from './controllers/BaseWebViewController';
|
|
3
3
|
import { Completer } from './helpers/Completer';
|
|
4
4
|
import { Mode, OnDownloadFile } from './interfaces/types';
|
|
5
|
+
import { DeviceFingerprintController } from './controllers/DeviceFingerprintController';
|
|
5
6
|
export declare class DeunaSDK extends BaseDeuna {
|
|
6
7
|
private readonly config;
|
|
7
8
|
constructor(config: InitializeParams);
|
|
@@ -15,10 +16,16 @@ export declare class DeunaSDK extends BaseDeuna {
|
|
|
15
16
|
private listeners;
|
|
16
17
|
webViewController: DeunaWebViewController | null;
|
|
17
18
|
newTabWebViewController: BaseWebViewController | null;
|
|
19
|
+
deviceFingerprintController: DeviceFingerprintController | null;
|
|
18
20
|
modalDismissPromise: Completer<void> | null;
|
|
19
21
|
newTabModalDismissPromise: Completer<void> | null;
|
|
20
22
|
private get safeWebViewController();
|
|
21
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Generates a device fingerprint, creates a invisible webview to get the device fingerprint
|
|
25
|
+
* and returns the device fingerprint
|
|
26
|
+
* @returns The device fingerprint
|
|
27
|
+
*/
|
|
28
|
+
getSessionId: (params?: Record<string, any>) => Promise<string>;
|
|
22
29
|
static initialize(config: InitializeParams): DeunaSDK;
|
|
23
30
|
/**
|
|
24
31
|
* Sets the DEUNA widget controller
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeunaSDK.d.ts","sourceRoot":"","sources":["../../../../src/DeunaSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,wBAAwB,EACxB,gBAAgB,EAChB,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACvB,OAAO,EACP,IAAI,EACJ,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,KAAK,EACL,MAAM,EACN,YAAY,EACZ,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAgB,IAAI,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DeunaSDK.d.ts","sourceRoot":"","sources":["../../../../src/DeunaSDK.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeunaWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/DeunaWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"DeunaWidget.d.ts","sourceRoot":"","sources":["../../../../../src/components/DeunaWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAOvC,UAAU,gBAAgB;IACxB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAoFlD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DeunaSDK } from '../DeunaSDK';
|
|
2
|
+
interface DeviceFingerprintWebViewProps {
|
|
3
|
+
instance: DeunaSDK;
|
|
4
|
+
}
|
|
5
|
+
export declare const DeviceFingerprintWebView: (props: DeviceFingerprintWebViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=DeviceFingerprintWebView.d.ts.map
|
package/lib/typescript/deuna-sdk-react-native/src/components/DeviceFingerprintWebView.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceFingerprintWebView.d.ts","sourceRoot":"","sources":["../../../../../src/components/DeviceFingerprintWebView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,UAAU,6BAA6B;IACrC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,eAAO,MAAM,wBAAwB,GACnC,OAAO,6BAA6B,4CA+CrC,CAAC"}
|
|
@@ -23,7 +23,8 @@ export declare abstract class BaseWebViewController {
|
|
|
23
23
|
webView: WebView | null;
|
|
24
24
|
url: string | null;
|
|
25
25
|
delegate: WebViewDelegate | null;
|
|
26
|
-
|
|
26
|
+
jsExecutor: JsExecutor;
|
|
27
|
+
setWebView: (webView: WebView) => void;
|
|
27
28
|
abstract onMessage: (event: WebViewMessageEvent) => void;
|
|
28
29
|
/**
|
|
29
30
|
* Called when the web view url is loaded successfully
|
|
@@ -58,9 +59,7 @@ export declare abstract class DeunaWebViewController extends BaseWebViewControll
|
|
|
58
59
|
hidePayButton: boolean;
|
|
59
60
|
redirectUrl: string | null;
|
|
60
61
|
closedAction: ClosedAction;
|
|
61
|
-
jsExecutor: JsExecutor;
|
|
62
62
|
abstract onEventDispatch: (event: Record<string, any>) => void;
|
|
63
|
-
setWebView: (webView: WebView) => void;
|
|
64
63
|
onLoad: () => void;
|
|
65
64
|
urlMustBeLoadedInTheSameWebView: (url: string) => boolean;
|
|
66
65
|
onMessage: (event: WebViewMessageEvent) => void;
|
package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseWebViewController.d.ts","sourceRoot":"","sources":["../../../../../src/controllers/BaseWebViewController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,YAAY,EACb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,oBAAY,gBAAgB;IAC1B,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,iBAAiB,sBAAsB;CACxC;AAKD,8BAAsB,qBAAqB;IACzC,WAAW,UAAS;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAQ;
|
|
1
|
+
{"version":3,"file":"BaseWebViewController.d.ts","sourceRoot":"","sources":["../../../../../src/controllers/BaseWebViewController.ts"],"names":[],"mappings":"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"}
|
package/lib/typescript/deuna-sdk-react-native/src/controllers/DeviceFingerprintController.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WebViewMessageEvent } from 'react-native-webview';
|
|
2
|
+
import { BaseWebViewController } from './BaseWebViewController';
|
|
3
|
+
import { Environment } from '../types';
|
|
4
|
+
export declare class DeviceFingerprintController extends BaseWebViewController {
|
|
5
|
+
private readonly publicApiKey;
|
|
6
|
+
private readonly environment;
|
|
7
|
+
constructor(publicApiKey: string, environment: Environment);
|
|
8
|
+
private completer;
|
|
9
|
+
onMessage: (event: WebViewMessageEvent) => void;
|
|
10
|
+
onLoad: () => void;
|
|
11
|
+
onError: (_: any) => void;
|
|
12
|
+
urlMustBeLoadedInTheSameWebView: (_: string) => boolean;
|
|
13
|
+
generateDeviceFingerprint: (params: Record<string, any>) => Promise<string | null>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=DeviceFingerprintController.d.ts.map
|
package/lib/typescript/deuna-sdk-react-native/src/controllers/DeviceFingerprintController.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceFingerprintController.d.ts","sourceRoot":"","sources":["../../../../../src/controllers/DeviceFingerprintController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,qBAAqB,EAEtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,qBAAa,2BAA4B,SAAQ,qBAAqB;IAElE,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW;IAK3C,OAAO,CAAC,SAAS,CAA4B;IAE7C,SAAS,GAAI,OAAO,mBAAmB,UAoBrC;IAEF,MAAM,aAOJ;IAEF,OAAO,GAAI,GAAG,GAAG,UAEf;IAEF,+BAA+B,GAAI,GAAG,MAAM,aAAU;IAEtD,yBAAyB,GACvB,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BvB;CACH"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { WebViewMessageEvent } from 'react-native-webview';
|
|
2
2
|
import { BaseWebViewController } from './BaseWebViewController';
|
|
3
3
|
export declare class OpenInNewTabController extends BaseWebViewController {
|
|
4
4
|
readonly url: string;
|
|
5
5
|
constructor(url: string);
|
|
6
|
-
setWebView: (webView: WebView) => void;
|
|
7
6
|
onLoad: () => void;
|
|
8
7
|
onError: (event: any) => void;
|
|
9
8
|
urlMustBeLoadedInTheSameWebView: (url: string) => boolean;
|
package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenInNewTabController.d.ts","sourceRoot":"","sources":["../../../../../src/controllers/OpenInNewTabController.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"OpenInNewTabController.d.ts","sourceRoot":"","sources":["../../../../../src/controllers/OpenInNewTabController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,qBAAqB,EAEtB,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,sBAAuB,SAAQ,qBAAqB;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAX,GAAG,EAAE,MAAM;IAKhC,MAAM,aAEJ;IAEF,OAAO,GAAI,OAAO,GAAG,UAEnB;IAEF,+BAA+B,GAAI,KAAK,MAAM,aAM5C;IAEF,SAAS,GAAI,OAAO,mBAAmB,UAKrC;IAEF,SAAS,aAkBP;CACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;CAIrB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;CAIrB,CAAC;AAGF,eAAO,MAAM,sBAAsB,2DAA2D,CAAC"}
|
|
@@ -73,7 +73,7 @@ export declare abstract class BaseDeuna {
|
|
|
73
73
|
abstract close(): Promise<void>;
|
|
74
74
|
setCustomStyles(customStyles: CustomStyles): Promise<void>;
|
|
75
75
|
refetchOrder(): Promise<Order | null>;
|
|
76
|
-
getWidgetState(): Promise<State>;
|
|
76
|
+
getWidgetState(): Promise<State | undefined>;
|
|
77
77
|
isValid(): Promise<boolean>;
|
|
78
78
|
getSelectedPaymentMethod(): Promise<{
|
|
79
79
|
method_type: PaymentMethodTypes;
|
|
@@ -82,7 +82,7 @@ export declare abstract class BaseDeuna {
|
|
|
82
82
|
express?: boolean;
|
|
83
83
|
flowType?: PaymentMethodConfigurationFlow;
|
|
84
84
|
};
|
|
85
|
-
}>;
|
|
85
|
+
} | null>;
|
|
86
86
|
abstract initPaymentWidget(params: InitPaymentWidgetParams): Promise<void>;
|
|
87
87
|
abstract initElements(params: InitElementsWidgetParams): Promise<void>;
|
|
88
88
|
abstract initNextAction(params: InitNextActionWidgetParams): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildElementsLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildElementsLink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AA6F5D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"buildElementsLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildElementsLink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AA6F5D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,KAAG,MAmBrD,CAAC"}
|
package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildNextActionLink.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildNextActionLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildNextActionLink.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EACV,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,mBAAmB,GAAI,QAAQ,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"buildNextActionLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildNextActionLink.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EACV,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,mBAAmB,GAAI,QAAQ,SAAS,KAAG,MA+BvD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildPaymentLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildPaymentLink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,SAAS,EACV,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"buildPaymentLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildPaymentLink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,SAAS,EACV,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,MAuCpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildVoucherLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildVoucherLink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AAS5D,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"buildVoucherLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildVoucherLink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AAS5D,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,MAiCpD,CAAC"}
|
package/package.json
CHANGED
package/src/DeunaSDK.ts
CHANGED
|
@@ -29,6 +29,8 @@ import { Completer } from './helpers/Completer';
|
|
|
29
29
|
import { ElementsWidgetController } from './controllers/ElementsWidgetController';
|
|
30
30
|
import { DownloadType, Mode, OnDownloadFile } from './interfaces/types';
|
|
31
31
|
import { Platform } from 'react-native';
|
|
32
|
+
import { DeviceFingerprintController } from './controllers/DeviceFingerprintController';
|
|
33
|
+
import { DEVICE_FINGERPRINT_URL } from './interfaces/constants';
|
|
32
34
|
|
|
33
35
|
export class DeunaSDK extends BaseDeuna {
|
|
34
36
|
constructor(private readonly config: InitializeParams) {
|
|
@@ -47,6 +49,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
47
49
|
private listeners: Set<() => void> = new Set();
|
|
48
50
|
webViewController: DeunaWebViewController | null = null;
|
|
49
51
|
newTabWebViewController: BaseWebViewController | null = null;
|
|
52
|
+
deviceFingerprintController: DeviceFingerprintController | null = null;
|
|
50
53
|
|
|
51
54
|
modalDismissPromise: Completer<void> | null = null;
|
|
52
55
|
newTabModalDismissPromise: Completer<void> | null = null;
|
|
@@ -61,9 +64,28 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
61
64
|
return this.webViewController;
|
|
62
65
|
}
|
|
63
66
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Generates a device fingerprint, creates a invisible webview to get the device fingerprint
|
|
69
|
+
* and returns the device fingerprint
|
|
70
|
+
* @returns The device fingerprint
|
|
71
|
+
*/
|
|
72
|
+
getSessionId = async (params?: Record<string, any>): Promise<string> => {
|
|
73
|
+
this.deviceFingerprintController = new DeviceFingerprintController(
|
|
74
|
+
this.config.publicApiKey,
|
|
75
|
+
this.config.environment ?? 'production'
|
|
76
|
+
);
|
|
77
|
+
this.deviceFingerprintController.url = DEVICE_FINGERPRINT_URL;
|
|
78
|
+
this.notifyListeners();
|
|
79
|
+
|
|
80
|
+
const deviceFingerprint =
|
|
81
|
+
await this.deviceFingerprintController.generateDeviceFingerprint(
|
|
82
|
+
params ?? {}
|
|
83
|
+
);
|
|
84
|
+
this.deviceFingerprintController?.dispose();
|
|
85
|
+
this.deviceFingerprintController = null;
|
|
86
|
+
this.notifyListeners();
|
|
87
|
+
return deviceFingerprint ?? '';
|
|
88
|
+
};
|
|
67
89
|
|
|
68
90
|
static initialize(config: InitializeParams): DeunaSDK {
|
|
69
91
|
return new DeunaSDK(config);
|
|
@@ -6,6 +6,7 @@ import { DeunaWebView } from './DeunaWebView';
|
|
|
6
6
|
import { NewTabWebView } from './NewTabWebView';
|
|
7
7
|
import { DeunaWebViewController } from '../controllers/BaseWebViewController';
|
|
8
8
|
import { Mode } from '../interfaces/types';
|
|
9
|
+
import { DeviceFingerprintWebView } from './DeviceFingerprintWebView';
|
|
9
10
|
|
|
10
11
|
interface DeunaWidgetProps {
|
|
11
12
|
instance: DeunaSDK;
|
|
@@ -92,6 +93,7 @@ export const DeunaWidget = (props: DeunaWidgetProps) => {
|
|
|
92
93
|
}
|
|
93
94
|
/>
|
|
94
95
|
)}
|
|
96
|
+
<DeviceFingerprintWebView instance={instanceRef.current} />
|
|
95
97
|
</>
|
|
96
98
|
);
|
|
97
99
|
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { DeunaSDK } from '../DeunaSDK';
|
|
3
|
+
import { DeunaWebView } from './DeunaWebView';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
|
|
6
|
+
interface DeviceFingerprintWebViewProps {
|
|
7
|
+
instance: DeunaSDK;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const DeviceFingerprintWebView = (
|
|
11
|
+
props: DeviceFingerprintWebViewProps
|
|
12
|
+
) => {
|
|
13
|
+
const { instance } = props;
|
|
14
|
+
const instanceRef = useRef<DeunaSDK>(instance);
|
|
15
|
+
const [visible, setVisible] = useState(false);
|
|
16
|
+
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
instanceRef.current = instance;
|
|
19
|
+
}, [instance]);
|
|
20
|
+
|
|
21
|
+
// Listen when the DeunaSDK instance configuration
|
|
22
|
+
// has changed
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
const ref = instanceRef.current;
|
|
25
|
+
const listener = () => {
|
|
26
|
+
const isVisible = !!ref.deviceFingerprintController;
|
|
27
|
+
setVisible(isVisible);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
instanceRef.current.addListener(listener);
|
|
31
|
+
|
|
32
|
+
return () => {
|
|
33
|
+
ref.removeListener(listener);
|
|
34
|
+
};
|
|
35
|
+
}, []);
|
|
36
|
+
|
|
37
|
+
const deviceFingerprintController =
|
|
38
|
+
instanceRef.current.deviceFingerprintController;
|
|
39
|
+
|
|
40
|
+
return (
|
|
41
|
+
<>
|
|
42
|
+
{visible && (
|
|
43
|
+
<View>
|
|
44
|
+
<DeunaWebView
|
|
45
|
+
url={deviceFingerprintController?.url ?? ''}
|
|
46
|
+
onWebView={deviceFingerprintController?.setWebView}
|
|
47
|
+
onMessage={deviceFingerprintController?.onMessage}
|
|
48
|
+
onLoad={deviceFingerprintController?.onLoad}
|
|
49
|
+
onError={deviceFingerprintController?.onError}
|
|
50
|
+
onShouldStartLoadWithRequest={
|
|
51
|
+
deviceFingerprintController?.onShouldStartLoadWithRequest
|
|
52
|
+
}
|
|
53
|
+
/>
|
|
54
|
+
</View>
|
|
55
|
+
)}
|
|
56
|
+
</>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
@@ -39,8 +39,13 @@ export abstract class BaseWebViewController {
|
|
|
39
39
|
url: string | null = null;
|
|
40
40
|
|
|
41
41
|
delegate: WebViewDelegate | null = null;
|
|
42
|
+
jsExecutor = new JsExecutor();
|
|
43
|
+
|
|
44
|
+
setWebView = (webView: WebView) => {
|
|
45
|
+
this.webView = webView;
|
|
46
|
+
this.jsExecutor.webView = webView;
|
|
47
|
+
};
|
|
42
48
|
|
|
43
|
-
abstract setWebView: (webView: WebView) => void;
|
|
44
49
|
abstract onMessage: (event: WebViewMessageEvent) => void;
|
|
45
50
|
|
|
46
51
|
/**
|
|
@@ -112,15 +117,9 @@ export abstract class DeunaWebViewController extends BaseWebViewController {
|
|
|
112
117
|
hidePayButton = false;
|
|
113
118
|
redirectUrl: string | null = null;
|
|
114
119
|
closedAction: ClosedAction = 'systemAction';
|
|
115
|
-
jsExecutor = new JsExecutor();
|
|
116
120
|
|
|
117
121
|
abstract onEventDispatch: (event: Record<string, any>) => void;
|
|
118
122
|
|
|
119
|
-
setWebView = (webView: WebView) => {
|
|
120
|
-
this.webView = webView;
|
|
121
|
-
this.jsExecutor.webView = webView;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
123
|
onLoad = () => {
|
|
125
124
|
this.setXprops();
|
|
126
125
|
};
|
|
@@ -130,7 +129,6 @@ export abstract class DeunaWebViewController extends BaseWebViewController {
|
|
|
130
129
|
this.delegate?.onFileDownload?.(url);
|
|
131
130
|
} else {
|
|
132
131
|
this.redirectUrl = url;
|
|
133
|
-
this.delegate?.onOpenInNewTab?.(url);
|
|
134
132
|
}
|
|
135
133
|
return false;
|
|
136
134
|
};
|
|
@@ -175,9 +173,11 @@ export abstract class DeunaWebViewController extends BaseWebViewController {
|
|
|
175
173
|
};
|
|
176
174
|
|
|
177
175
|
setXprops = () => {
|
|
178
|
-
// this.detectDownloadsAndRedirects(true);
|
|
179
176
|
this.webView?.injectJavaScript(
|
|
180
177
|
`
|
|
178
|
+
console.log = function(message) {
|
|
179
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message }));
|
|
180
|
+
};
|
|
181
181
|
window.xprops = {
|
|
182
182
|
hidePayButton: ${this.hidePayButton},
|
|
183
183
|
onEventDispatch: function (event) {
|
|
@@ -223,8 +223,8 @@ export abstract class DeunaWebViewController extends BaseWebViewController {
|
|
|
223
223
|
* @returns The order data | returns null if the order is not found or an error occurs
|
|
224
224
|
*/
|
|
225
225
|
refetchOrder = async (): Promise<Json | null> => {
|
|
226
|
-
const result = await this.jsExecutor
|
|
227
|
-
if(typeof window.deunaRefetchOrder !== 'function'){
|
|
226
|
+
const result = await this.jsExecutor
|
|
227
|
+
.execute(` if(typeof window.deunaRefetchOrder !== 'function'){
|
|
228
228
|
sendResult({order: null});
|
|
229
229
|
return;
|
|
230
230
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { WebViewMessageEvent } from 'react-native-webview';
|
|
2
|
+
import {
|
|
3
|
+
BaseWebViewController,
|
|
4
|
+
WebViewEventType,
|
|
5
|
+
} from './BaseWebViewController';
|
|
6
|
+
import { Completer } from '../helpers/Completer';
|
|
7
|
+
import { Environment } from '../types';
|
|
8
|
+
import { DeunaLogs } from '../DeunaLogs';
|
|
9
|
+
|
|
10
|
+
export class DeviceFingerprintController extends BaseWebViewController {
|
|
11
|
+
constructor(
|
|
12
|
+
private readonly publicApiKey: string,
|
|
13
|
+
private readonly environment: Environment
|
|
14
|
+
) {
|
|
15
|
+
super();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
private completer = new Completer<boolean>();
|
|
19
|
+
|
|
20
|
+
onMessage = (event: WebViewMessageEvent) => {
|
|
21
|
+
const eventData = JSON.parse(event.nativeEvent.data);
|
|
22
|
+
|
|
23
|
+
const mapper = {
|
|
24
|
+
[WebViewEventType.consoleLog]: () => {
|
|
25
|
+
DeunaLogs.info(
|
|
26
|
+
`CONSOLE LOG`,
|
|
27
|
+
JSON.stringify(eventData.message, null, 2)
|
|
28
|
+
);
|
|
29
|
+
},
|
|
30
|
+
[WebViewEventType.jsExecutor]: () => {
|
|
31
|
+
const { data, requestId } = eventData as {
|
|
32
|
+
requestId: number;
|
|
33
|
+
data: Record<string, any> | null;
|
|
34
|
+
};
|
|
35
|
+
this.jsExecutor.requests.get(requestId)?.(data);
|
|
36
|
+
this.jsExecutor.requests.delete(requestId);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
mapper[eventData.type as keyof typeof mapper]?.();
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
onLoad = () => {
|
|
43
|
+
this.webView?.injectJavaScript(`
|
|
44
|
+
console.log = function(message) {
|
|
45
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message:message }));
|
|
46
|
+
};
|
|
47
|
+
`);
|
|
48
|
+
this.completer.complete(true);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
onError = (_: any) => {
|
|
52
|
+
this.completer.complete(false);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
urlMustBeLoadedInTheSameWebView = (_: string) => true;
|
|
56
|
+
|
|
57
|
+
generateDeviceFingerprint = async (
|
|
58
|
+
params: Record<string, any>
|
|
59
|
+
): Promise<string | null> => {
|
|
60
|
+
const isLoaded = await this.completer.wait;
|
|
61
|
+
if (!isLoaded) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const data = await this.jsExecutor.execute(`
|
|
66
|
+
if (typeof window.generateFraudId !== 'function') {
|
|
67
|
+
console.log('❌ window.generateFraudId is not a function');
|
|
68
|
+
sendResult({fraudId: null});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
window.generateFraudId({
|
|
73
|
+
publicApiKey: "${this.publicApiKey}",
|
|
74
|
+
env: "${this.environment}",
|
|
75
|
+
params: ${JSON.stringify(params)}
|
|
76
|
+
})
|
|
77
|
+
.then((fraudId) => {
|
|
78
|
+
sendResult({ fraudId: fraudId });
|
|
79
|
+
})
|
|
80
|
+
.catch((error) => {
|
|
81
|
+
sendResult({ fraudId: null });
|
|
82
|
+
});
|
|
83
|
+
`);
|
|
84
|
+
return data?.fraudId ?? null;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { WebViewMessageEvent } from 'react-native-webview';
|
|
2
2
|
import {
|
|
3
3
|
BaseWebViewController,
|
|
4
4
|
WebViewEventType,
|
|
@@ -11,10 +11,6 @@ export class OpenInNewTabController extends BaseWebViewController {
|
|
|
11
11
|
this.url = url;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
setWebView = (webView: WebView) => {
|
|
15
|
-
this.webView = webView;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
14
|
onLoad = () => {
|
|
19
15
|
this.setXprops();
|
|
20
16
|
};
|
|
@@ -41,6 +37,9 @@ export class OpenInNewTabController extends BaseWebViewController {
|
|
|
41
37
|
setXprops = () => {
|
|
42
38
|
// Hide the print button on the Efecty page
|
|
43
39
|
this.webView?.injectJavaScript(`
|
|
40
|
+
console.log = function(message) {
|
|
41
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message }));
|
|
42
|
+
};
|
|
44
43
|
window.close = function() {
|
|
45
44
|
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.newTabWindowClose}', data: '' }));
|
|
46
45
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Environment } from
|
|
2
|
-
import { hasKey } from
|
|
3
|
-
import { getIntegrationType, UrlConfig } from
|
|
1
|
+
import { Environment } from "../base";
|
|
2
|
+
import { hasKey } from "../utils/hasKey";
|
|
3
|
+
import { getIntegrationType, UrlConfig } from "./urlConfig";
|
|
4
4
|
|
|
5
5
|
const ELEMENTS_URLS: Record<Environment, string> = {
|
|
6
|
-
production:
|
|
7
|
-
sandbox:
|
|
8
|
-
staging:
|
|
9
|
-
develop:
|
|
6
|
+
production: "https://elements.deuna.io",
|
|
7
|
+
sandbox: "https://elements.sandbox.deuna.io",
|
|
8
|
+
staging: "https://elements.stg.deuna.io",
|
|
9
|
+
develop: "https://elements.dev.deuna.io",
|
|
10
10
|
} as const;
|
|
11
11
|
|
|
12
12
|
const WIDGET_PATHS = {
|
|
13
|
-
click_to_pay:
|
|
14
|
-
vault:
|
|
13
|
+
click_to_pay: "/click_to_pay",
|
|
14
|
+
vault: "/vault",
|
|
15
15
|
} as const;
|
|
16
16
|
|
|
17
17
|
type WidgetPath = keyof typeof WIDGET_PATHS;
|
|
@@ -50,9 +50,9 @@ const buildSearchParams = (config: UrlConfig): URLSearchParams => {
|
|
|
50
50
|
const searchParams: SearchParams = {
|
|
51
51
|
publicApiKey: config.publicApiKey,
|
|
52
52
|
orderToken: config.orderToken,
|
|
53
|
-
email: userInfo?.email ||
|
|
54
|
-
firstName: userInfo?.firstName ||
|
|
55
|
-
lastName: userInfo?.lastName ||
|
|
53
|
+
email: userInfo?.email || "",
|
|
54
|
+
firstName: userInfo?.firstName || "",
|
|
55
|
+
lastName: userInfo?.lastName || "",
|
|
56
56
|
int: getIntegrationType(mode),
|
|
57
57
|
language,
|
|
58
58
|
};
|
|
@@ -85,7 +85,7 @@ const buildSearchParams = (config: UrlConfig): URLSearchParams => {
|
|
|
85
85
|
*/
|
|
86
86
|
const getWidgetPath = (types?: Array<{ name: string }>): string => {
|
|
87
87
|
if (types && types.length > 0) {
|
|
88
|
-
const firstPath = types[0]
|
|
88
|
+
const firstPath = types[0]?.name as WidgetPath;
|
|
89
89
|
return hasKey(WIDGET_PATHS, firstPath)
|
|
90
90
|
? WIDGET_PATHS[firstPath]
|
|
91
91
|
: WIDGET_PATHS.vault;
|
|
@@ -107,17 +107,14 @@ export const buildElementsLink = (config: UrlConfig): string => {
|
|
|
107
107
|
behavior: config.behavior || {},
|
|
108
108
|
};
|
|
109
109
|
|
|
110
|
-
searchParams.append(
|
|
110
|
+
searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
|
|
111
111
|
|
|
112
112
|
const widgetPath = getWidgetPath(config.types);
|
|
113
|
-
const normalizedPath = widgetPath.startsWith(
|
|
113
|
+
const normalizedPath = widgetPath.startsWith("/")
|
|
114
114
|
? widgetPath
|
|
115
115
|
: `/${widgetPath}`;
|
|
116
116
|
|
|
117
|
-
const url = new URL(normalizedPath
|
|
118
|
-
url.search = searchParams.toString();
|
|
119
|
-
|
|
120
|
-
console.log('url', url.toString());
|
|
117
|
+
const url = new URL(`${baseUrl}${normalizedPath}?${searchParams.toString()}`);
|
|
121
118
|
|
|
122
119
|
return url.toString();
|
|
123
120
|
};
|
|
@@ -40,8 +40,7 @@ export const buildNextActionLink = (config: UrlConfig): string => {
|
|
|
40
40
|
baseUrl = config.domain;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
const url = new URL(
|
|
44
|
-
url.search = searchParams.toString();
|
|
43
|
+
const url = new URL(`${baseUrl}/next-action-purchase/${orderToken}?${searchParams.toString()}`);
|
|
45
44
|
|
|
46
45
|
return url.toString();
|
|
47
46
|
};
|
|
@@ -54,8 +54,7 @@ export const buildPaymentLink = (config: UrlConfig): string => {
|
|
|
54
54
|
//encode to base64
|
|
55
55
|
searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
|
|
56
56
|
|
|
57
|
-
const url = new URL(
|
|
58
|
-
url.search = searchParams.toString();
|
|
57
|
+
const url = new URL(`${baseUrl}/now/${orderToken}?${searchParams.toString()}`);
|
|
59
58
|
|
|
60
59
|
return url.toString();
|
|
61
60
|
};
|
|
@@ -44,8 +44,7 @@ export const buildVoucherLink = (config: UrlConfig): string => {
|
|
|
44
44
|
//encode to base64
|
|
45
45
|
searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
|
|
46
46
|
|
|
47
|
-
const url = new URL(
|
|
48
|
-
url.search = searchParams.toString();
|
|
47
|
+
const url = new URL(`${baseUrl}/voucher?${searchParams.toString()}`);
|
|
49
48
|
|
|
50
49
|
return url.toString();
|
|
51
50
|
};
|