@deuna/react-native-sdk 1.0.0 → 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 +37 -14
- package/lib/module/DeunaSDK.js.map +1 -1
- package/lib/module/components/DeunaWebView.js +2 -1
- package/lib/module/components/DeunaWebView.js.map +1 -1
- package/lib/module/components/DeunaWidget.js +7 -2
- 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/components/NewTabWebView.js +2 -1
- package/lib/module/components/NewTabWebView.js.map +1 -1
- package/lib/module/controllers/BaseWebViewController.js +59 -17
- 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 +24 -8
- 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 +63 -48
- package/lib/module/types/helpers/buildElementsLink.js.map +1 -1
- package/lib/module/types/helpers/buildNextActionLink.js +7 -3
- package/lib/module/types/helpers/buildNextActionLink.js.map +1 -1
- package/lib/module/types/helpers/buildPaymentLink.js +1 -3
- package/lib/module/types/helpers/buildPaymentLink.js.map +1 -1
- package/lib/module/types/helpers/buildVoucherLink.js +1 -3
- package/lib/module/types/helpers/buildVoucherLink.js.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +9 -1
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWebView.d.ts +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWebView.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/components/NewTabWebView.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +26 -4
- 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 +2 -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/helpers/buildElementsLink.d.ts +5 -0
- 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 +42 -14
- package/src/components/DeunaWebView.tsx +2 -0
- package/src/components/DeunaWidget.tsx +9 -0
- package/src/components/DeviceFingerprintWebView.tsx +58 -0
- package/src/components/NewTabWebView.tsx +3 -0
- package/src/controllers/BaseWebViewController.ts +76 -19
- package/src/controllers/DeviceFingerprintController.ts +86 -0
- package/src/controllers/OpenInNewTabController.ts +30 -13
- package/src/interfaces/constants.ts +3 -0
- package/src/types/helpers/buildElementsLink.ts +89 -56
- package/src/types/helpers/buildNextActionLink.ts +8 -4
- package/src/types/helpers/buildPaymentLink.ts +1 -4
- package/src/types/helpers/buildVoucherLink.ts +1 -4
package/lib/module/DeunaSDK.js
CHANGED
|
@@ -6,8 +6,10 @@ import { OpenInNewTabController } from "./controllers/OpenInNewTabController.js"
|
|
|
6
6
|
import { getWidgetController } from "./helpers/getController.js";
|
|
7
7
|
import { Completer } from "./helpers/Completer.js";
|
|
8
8
|
import { ElementsWidgetController } from "./controllers/ElementsWidgetController.js";
|
|
9
|
-
import { Mode } from "./interfaces/types.js";
|
|
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
|
}
|
|
@@ -167,6 +183,14 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
167
183
|
notifyListeners = () => {
|
|
168
184
|
this.listeners.forEach(listener => listener());
|
|
169
185
|
};
|
|
186
|
+
notifyDownloadFile = url => {
|
|
187
|
+
if (this.safeWebViewController instanceof PaymentWidgetController) {
|
|
188
|
+
this.safeWebViewController.callbacks.onDownloadFile?.({
|
|
189
|
+
type: DownloadType.URL,
|
|
190
|
+
data: url
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
};
|
|
170
194
|
onCloseNewTab = () => {
|
|
171
195
|
if (this.webViewController) {
|
|
172
196
|
this.webViewController.redirectUrl = null;
|
|
@@ -189,18 +213,17 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
189
213
|
if (Platform.OS === 'ios') {
|
|
190
214
|
this.newTabModalDismissPromise = new Completer();
|
|
191
215
|
}
|
|
216
|
+
this.newTabWebViewController.delegate = {
|
|
217
|
+
onFileDownload: this.notifyDownloadFile,
|
|
218
|
+
onNewTabWindowClose: this.onCloseNewTab
|
|
219
|
+
};
|
|
192
220
|
this.notifyListeners();
|
|
193
221
|
},
|
|
194
|
-
onCloseButtonPressed:
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
onCloseSubWebView: () => {
|
|
200
|
-
// Close the new tab web view when the DEUNA widget
|
|
201
|
-
// emits an error event or when the purchase is successful
|
|
202
|
-
this.onCloseNewTab();
|
|
203
|
-
}
|
|
222
|
+
onCloseButtonPressed: this.close,
|
|
223
|
+
// Close the payment widget when the user presses the close button
|
|
224
|
+
onCloseSubWebView: this.onCloseNewTab,
|
|
225
|
+
// Close the new tab web view when the DEUNA widget emits an error event or when the purchase is successful
|
|
226
|
+
onFileDownload: this.notifyDownloadFile // Notify the user when a request to download a file is made
|
|
204
227
|
};
|
|
205
228
|
};
|
|
206
229
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseDeuna","PaymentWidgetController","OpenInNewTabController","getWidgetController","Completer","ElementsWidgetController","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":[]}
|
|
@@ -25,7 +25,8 @@ export const DeunaWebView = props => {
|
|
|
25
25
|
javaScriptEnabled: true,
|
|
26
26
|
onError: props.onError,
|
|
27
27
|
setSupportMultipleWindows: false,
|
|
28
|
-
javaScriptCanOpenWindowsAutomatically: false
|
|
28
|
+
javaScriptCanOpenWindowsAutomatically: false,
|
|
29
|
+
onShouldStartLoadWithRequest: props.onShouldStartLoadWithRequest
|
|
29
30
|
})
|
|
30
31
|
});
|
|
31
32
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","View","WebView","WebViewLoader","jsx","_jsx","DeunaWebView","props","style","styles","container","children","ref","webView","onWebView","source","uri","url","onMessage","onLoad","startInLoadingState","renderLoading","javaScriptEnabled","onError","setSupportMultipleWindows","javaScriptCanOpenWindowsAutomatically","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWebView.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["StyleSheet","View","WebView","WebViewLoader","jsx","_jsx","DeunaWebView","props","style","styles","container","children","ref","webView","onWebView","source","uri","url","onMessage","onLoad","startInLoadingState","renderLoading","javaScriptEnabled","onError","setSupportMultipleWindows","javaScriptCanOpenWindowsAutomatically","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/DeunaWebView.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,OAAO,MAAM,sBAAsB;AAC1C,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWhD,OAAO,MAAMC,YAAY,GAAIC,KAAwB,IAAK;EACxD,oBACEF,IAAA,CAACJ,IAAI;IAACO,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BN,IAAA,CAACH,OAAO;MACNU,GAAG,EAAGC,OAAO,IAAK;QAChB,IAAIA,OAAO,IAAIN,KAAK,CAACO,SAAS,EAAE;UAC9BP,KAAK,CAACO,SAAS,CAACD,OAAO,CAAC;QAC1B;MACF,CAAE;MACFE,MAAM,EAAE;QAAEC,GAAG,EAAET,KAAK,CAACU;MAAI,CAAE;MAC3BC,SAAS,EAAEX,KAAK,CAACW,SAAU;MAC3BC,MAAM,EAAEA,CAAA,KAAM;QACZZ,KAAK,CAACY,MAAM,GAAG,CAAC;MAClB,CAAE;MACFC,mBAAmB;MACnBC,aAAa,EAAEA,CAAA,kBAAMhB,IAAA,CAACF,aAAa,IAAE,CAAE;MACvCmB,iBAAiB,EAAE,IAAK;MACxBC,OAAO,EAAEhB,KAAK,CAACgB,OAAQ;MACvBC,yBAAyB,EAAE,KAAM;MACjCC,qCAAqC,EAAE,KAAM;MAC7CC,4BAA4B,EAAEnB,KAAK,CAACmB;IAA6B,CAClE;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMjB,MAAM,GAAGT,UAAU,CAAC2B,MAAM,CAAC;EAAEjB,SAAS,EAAE;IAAEkB,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","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 {
|
|
@@ -57,7 +58,8 @@ export const DeunaWidget = props => {
|
|
|
57
58
|
onWebView: instanceRef.current.webViewController?.setWebView,
|
|
58
59
|
onMessage: instanceRef.current.webViewController?.onMessage,
|
|
59
60
|
onLoad: instanceRef.current.webViewController?.onLoad,
|
|
60
|
-
onError: instanceRef.current.webViewController?.onError
|
|
61
|
+
onError: instanceRef.current.webViewController?.onError,
|
|
62
|
+
onShouldStartLoadWithRequest: instanceRef.current.webViewController?.onShouldStartLoadWithRequest
|
|
61
63
|
}), /*#__PURE__*/_jsx(NewTabWebView, {
|
|
62
64
|
instance: instanceRef.current
|
|
63
65
|
})]
|
|
@@ -70,7 +72,10 @@ export const DeunaWidget = props => {
|
|
|
70
72
|
onWebView: instanceRef.current.webViewController?.setWebView,
|
|
71
73
|
onMessage: instanceRef.current.webViewController?.onMessage,
|
|
72
74
|
onLoad: instanceRef.current.webViewController?.onLoad,
|
|
73
|
-
onError: instanceRef.current.webViewController?.onError
|
|
75
|
+
onError: instanceRef.current.webViewController?.onError,
|
|
76
|
+
onShouldStartLoadWithRequest: instanceRef.current.webViewController?.onShouldStartLoadWithRequest
|
|
77
|
+
}), /*#__PURE__*/_jsx(DeviceFingerprintWebView, {
|
|
78
|
+
instance: instanceRef.current
|
|
74
79
|
})]
|
|
75
80
|
});
|
|
76
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","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":[]}
|
|
@@ -42,7 +42,8 @@ export const NewTabWebView = props => {
|
|
|
42
42
|
onWebView: newTabController?.setWebView,
|
|
43
43
|
onMessage: newTabController?.onMessage,
|
|
44
44
|
onLoad: newTabController?.onLoad,
|
|
45
|
-
onError: newTabController?.onError
|
|
45
|
+
onError: newTabController?.onError,
|
|
46
|
+
onShouldStartLoadWithRequest: newTabController?.onShouldStartLoadWithRequest
|
|
46
47
|
})
|
|
47
48
|
})
|
|
48
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","Modal","SafeAreaView","StyleSheet","DeunaWebView","jsx","_jsx","NewTabWebView","props","instance","instanceRef","visible","setVisible","current","ref","listener","isVisible","newTabWebViewController","addListener","removeListener","dispose","newTabController","presentationStyle","animationType","onRequestClose","onCloseNewTab","onDismiss","onNewTabDismissed","children","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","create","flex"],"sourceRoot":"../../../src","sources":["components/NewTabWebView.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,SAASC,KAAK,EAAEC,YAAY,EAAEC,UAAU,QAAQ,cAAc;AAC9D,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM9C,OAAO,MAAMC,aAAa,GAAIC,KAAyB,IAAK;EAC1D,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,uBAAuB;MAC/CL,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;MAC5BD,GAAG,CAACG,uBAAuB,EAAEG,OAAO,CAAC,CAAC;IACxC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAGX,WAAW,CAACG,OAAO,CAACI,uBAAuB;EAEpE,oBACEX,IAAA,CAACL,KAAK;IACJqB,iBAAiB,EAAC,WAAW;IAC7BX,OAAO,EAAEA,OAAQ;IACjBY,aAAa,EAAC,OAAO;IACrBC,cAAc,EAAEd,WAAW,CAACG,OAAO,CAACY,aAAc;IAClDC,SAAS,EAAEhB,WAAW,CAACG,OAAO,CAACc,iBAAkB;IAAAC,QAAA,EAEhDjB,OAAO,iBACNL,IAAA,CAACJ,YAAY;MAAC2B,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAH,QAAA,eACpCtB,IAAA,CAACF,YAAY;QACX4B,GAAG,EAAEX,gBAAgB,EAAEW,GAAG,IAAI,EAAG;QACjCC,SAAS,EAAEZ,gBAAgB,EAAEa,UAAW;QACxCC,SAAS,EAAEd,gBAAgB,EAAEc,SAAU;QACvCC,MAAM,EAAEf,gBAAgB,EAAEe,MAAO;QACjCC,OAAO,EAAEhB,gBAAgB,EAAEgB;
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","Modal","SafeAreaView","StyleSheet","DeunaWebView","jsx","_jsx","NewTabWebView","props","instance","instanceRef","visible","setVisible","current","ref","listener","isVisible","newTabWebViewController","addListener","removeListener","dispose","newTabController","presentationStyle","animationType","onRequestClose","onCloseNewTab","onDismiss","onNewTabDismissed","children","style","styles","container","url","onWebView","setWebView","onMessage","onLoad","onError","onShouldStartLoadWithRequest","create","flex"],"sourceRoot":"../../../src","sources":["components/NewTabWebView.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEnD,SAASC,KAAK,EAAEC,YAAY,EAAEC,UAAU,QAAQ,cAAc;AAC9D,SAASC,YAAY,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAM9C,OAAO,MAAMC,aAAa,GAAIC,KAAyB,IAAK;EAC1D,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,uBAAuB;MAC/CL,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;MAC5BD,GAAG,CAACG,uBAAuB,EAAEG,OAAO,CAAC,CAAC;IACxC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAGX,WAAW,CAACG,OAAO,CAACI,uBAAuB;EAEpE,oBACEX,IAAA,CAACL,KAAK;IACJqB,iBAAiB,EAAC,WAAW;IAC7BX,OAAO,EAAEA,OAAQ;IACjBY,aAAa,EAAC,OAAO;IACrBC,cAAc,EAAEd,WAAW,CAACG,OAAO,CAACY,aAAc;IAClDC,SAAS,EAAEhB,WAAW,CAACG,OAAO,CAACc,iBAAkB;IAAAC,QAAA,EAEhDjB,OAAO,iBACNL,IAAA,CAACJ,YAAY;MAAC2B,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAH,QAAA,eACpCtB,IAAA,CAACF,YAAY;QACX4B,GAAG,EAAEX,gBAAgB,EAAEW,GAAG,IAAI,EAAG;QACjCC,SAAS,EAAEZ,gBAAgB,EAAEa,UAAW;QACxCC,SAAS,EAAEd,gBAAgB,EAAEc,SAAU;QACvCC,MAAM,EAAEf,gBAAgB,EAAEe,MAAO;QACjCC,OAAO,EAAEhB,gBAAgB,EAAEgB,OAAQ;QACnCC,4BAA4B,EAC1BjB,gBAAgB,EAAEiB;MACnB,CACF;IAAC,CACU;EACf,CACI,CAAC;AAEZ,CAAC;AAED,MAAMR,MAAM,GAAG3B,UAAU,CAACoC,MAAM,CAAC;EAAER,SAAS,EAAE;IAAES,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,18 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
import { DeunaLogs } from "../DeunaLogs.js";
|
|
4
4
|
import { submitError } from "../interfaces/index.js";
|
|
5
|
+
import { Platform } from 'react-native';
|
|
5
6
|
export let WebViewEventType = /*#__PURE__*/function (WebViewEventType) {
|
|
6
7
|
WebViewEventType["consoleLog"] = "consoleLog";
|
|
7
8
|
WebViewEventType["eventDispatch"] = "eventDispatch";
|
|
8
9
|
WebViewEventType["jsExecutor"] = "jsExecutor";
|
|
9
10
|
WebViewEventType["openInNewTab"] = "openInNewTab";
|
|
10
11
|
WebViewEventType["redirect"] = "redirect";
|
|
12
|
+
WebViewEventType["newTabWindowClose"] = "newTabWindowClose";
|
|
11
13
|
return WebViewEventType;
|
|
12
14
|
}({});
|
|
15
|
+
const DOWNLOAD_FILE_REGEX = /\.(pdf|doc|docx|xls|xlsx|zip|rar|txt|mp3|mp4|jpg|jpeg|png|gif)$/i;
|
|
13
16
|
export class BaseWebViewController {
|
|
17
|
+
initialized = false;
|
|
18
|
+
redirectUrl = null;
|
|
14
19
|
webView = null;
|
|
15
20
|
url = null;
|
|
16
21
|
delegate = null;
|
|
22
|
+
jsExecutor = new JsExecutor();
|
|
23
|
+
setWebView = webView => {
|
|
24
|
+
this.webView = webView;
|
|
25
|
+
this.jsExecutor.webView = webView;
|
|
26
|
+
};
|
|
17
27
|
|
|
18
28
|
/**
|
|
19
29
|
* Called when the web view url is loaded successfully
|
|
@@ -23,6 +33,43 @@ export class BaseWebViewController {
|
|
|
23
33
|
* Called when the web view fails to load a URL
|
|
24
34
|
*/
|
|
25
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Called when the web view should load a URL in the same web view
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Checks if the URL is a download URL
|
|
42
|
+
* @param url - The URL to check
|
|
43
|
+
* @returns True if the URL is a download URL, false otherwise
|
|
44
|
+
*/
|
|
45
|
+
isDownloadUrl = url => {
|
|
46
|
+
return DOWNLOAD_FILE_REGEX.test(url);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Determines if a URL should be loaded in the current WebView or opened in a new tab
|
|
51
|
+
* @param request The navigation request details
|
|
52
|
+
* @returns boolean indicating if the URL should be loaded in current WebView
|
|
53
|
+
*/
|
|
54
|
+
onShouldStartLoadWithRequest = request => {
|
|
55
|
+
// Prevent loading if it's the redirect URL
|
|
56
|
+
if (this.redirectUrl === request.url) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
const isNewNavigation = request.isTopFrame && request.url !== this.url;
|
|
60
|
+
const isClickNavigation = request.navigationType === 'click';
|
|
61
|
+
const shouldHandleInNewTab = !this.urlMustBeLoadedInTheSameWebView(request.url);
|
|
62
|
+
|
|
63
|
+
// For iOS, check both click navigation and new navigation
|
|
64
|
+
// For Android, only check new navigation
|
|
65
|
+
const shouldOpenInNewTab = Platform.OS === 'ios' ? (isClickNavigation || isNewNavigation) && shouldHandleInNewTab : isNewNavigation && shouldHandleInNewTab;
|
|
66
|
+
if (shouldOpenInNewTab) {
|
|
67
|
+
this.delegate?.onOpenInNewTab?.(request.url);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
return true;
|
|
71
|
+
};
|
|
72
|
+
|
|
26
73
|
/**
|
|
27
74
|
* Release the web view resources
|
|
28
75
|
*/
|
|
@@ -35,14 +82,17 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
35
82
|
hidePayButton = false;
|
|
36
83
|
redirectUrl = null;
|
|
37
84
|
closedAction = 'systemAction';
|
|
38
|
-
jsExecutor = new JsExecutor();
|
|
39
|
-
setWebView = webView => {
|
|
40
|
-
this.webView = webView;
|
|
41
|
-
this.jsExecutor.webView = webView;
|
|
42
|
-
};
|
|
43
85
|
onLoad = () => {
|
|
44
86
|
this.setXprops();
|
|
45
87
|
};
|
|
88
|
+
urlMustBeLoadedInTheSameWebView = url => {
|
|
89
|
+
if (this.isDownloadUrl(url)) {
|
|
90
|
+
this.delegate?.onFileDownload?.(url);
|
|
91
|
+
} else {
|
|
92
|
+
this.redirectUrl = url;
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
};
|
|
46
96
|
onMessage = event => {
|
|
47
97
|
const eventData = JSON.parse(event.nativeEvent.data);
|
|
48
98
|
const mapper = {
|
|
@@ -69,25 +119,18 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
69
119
|
}
|
|
70
120
|
this.redirectUrl = eventData.url;
|
|
71
121
|
this.delegate?.onOpenInNewTab?.(eventData.url);
|
|
122
|
+
},
|
|
123
|
+
[WebViewEventType.newTabWindowClose]: () => {
|
|
124
|
+
this.delegate?.onNewTabWindowClose?.();
|
|
72
125
|
}
|
|
73
126
|
};
|
|
74
127
|
mapper[eventData.type]?.();
|
|
75
128
|
};
|
|
76
129
|
setXprops = () => {
|
|
77
130
|
this.webView?.injectJavaScript(`
|
|
78
|
-
document.addEventListener('click', function(event) {
|
|
79
|
-
if (event.target.tagName === 'A' && event.target.href) {
|
|
80
|
-
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.redirect}', url: event.target.href }));
|
|
81
|
-
event.preventDefault(); // Prevent default navigation
|
|
82
|
-
event.stopPropagation();
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
131
|
console.log = function(message) {
|
|
86
132
|
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message }));
|
|
87
133
|
};
|
|
88
|
-
window.open = function(url, target, features) {
|
|
89
|
-
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.openInNewTab}', url }));
|
|
90
|
-
};
|
|
91
134
|
window.xprops = {
|
|
92
135
|
hidePayButton: ${this.hidePayButton},
|
|
93
136
|
onEventDispatch: function (event) {
|
|
@@ -132,8 +175,7 @@ export class DeunaWebViewController extends BaseWebViewController {
|
|
|
132
175
|
* @returns The order data | returns null if the order is not found or an error occurs
|
|
133
176
|
*/
|
|
134
177
|
refetchOrder = async () => {
|
|
135
|
-
const result = await this.jsExecutor.execute(`
|
|
136
|
-
if(typeof window.deunaRefetchOrder !== 'function'){
|
|
178
|
+
const result = await this.jsExecutor.execute(` if(typeof window.deunaRefetchOrder !== 'function'){
|
|
137
179
|
sendResult({order: null});
|
|
138
180
|
return;
|
|
139
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeunaLogs","submitError","WebViewEventType","BaseWebViewController","webView","url","delegate","
|
|
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":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { BaseWebViewController } from "./BaseWebViewController.js";
|
|
3
|
+
import { BaseWebViewController, WebViewEventType } from "./BaseWebViewController.js";
|
|
4
4
|
import { DeunaLogs } from "../DeunaLogs.js";
|
|
5
5
|
export class OpenInNewTabController extends BaseWebViewController {
|
|
6
6
|
constructor(url) {
|
|
@@ -8,15 +8,19 @@ 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
|
};
|
|
17
14
|
onError = event => {
|
|
18
15
|
console.warn(event);
|
|
19
16
|
};
|
|
17
|
+
urlMustBeLoadedInTheSameWebView = url => {
|
|
18
|
+
if (this.isDownloadUrl(url)) {
|
|
19
|
+
this.delegate?.onFileDownload?.(url);
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
};
|
|
20
24
|
onMessage = event => {
|
|
21
25
|
const eventData = JSON.parse(event.nativeEvent.data);
|
|
22
26
|
if (eventData.type === 'console_log') {
|
|
@@ -24,11 +28,23 @@ export class OpenInNewTabController extends BaseWebViewController {
|
|
|
24
28
|
}
|
|
25
29
|
};
|
|
26
30
|
setXprops = () => {
|
|
31
|
+
// Hide the print button on the Efecty page
|
|
27
32
|
this.webView?.injectJavaScript(`
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
console.log = function(message) {
|
|
34
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.consoleLog}', message }));
|
|
35
|
+
};
|
|
36
|
+
window.close = function() {
|
|
37
|
+
window.ReactNativeWebView.postMessage(JSON.stringify({ type: '${WebViewEventType.newTabWindowClose}', data: '' }));
|
|
38
|
+
};
|
|
39
|
+
(function() {
|
|
40
|
+
setTimeout(function() {
|
|
41
|
+
var button = document.getElementById("cash_efecty_button_print");
|
|
42
|
+
if (button) {
|
|
43
|
+
button.style.display = "none";
|
|
44
|
+
}
|
|
45
|
+
}, 500); // time out 500 ms
|
|
46
|
+
})();
|
|
47
|
+
`);
|
|
32
48
|
};
|
|
33
49
|
}
|
|
34
50
|
//# sourceMappingURL=OpenInNewTabController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseWebViewController","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":[]}
|