@deuna/react-native-sdk 1.0.7 → 2.0.0-rc.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/README.md +10 -0
- package/lib/module/DeunaSDK.js +5 -4
- package/lib/module/DeunaSDK.js.map +1 -1
- package/lib/module/adapters/DefaultInAppBrowser.js +14 -0
- package/lib/module/adapters/DefaultInAppBrowser.js.map +1 -0
- package/lib/module/adapters/InAppBrowserAdapter.js +2 -0
- package/lib/module/adapters/InAppBrowserAdapter.js.map +1 -0
- package/lib/module/adapters/index.js +5 -0
- package/lib/module/adapters/index.js.map +1 -0
- package/lib/module/helpers/ExternalUrlHelper.js +7 -7
- package/lib/module/helpers/ExternalUrlHelper.js.map +1 -1
- package/lib/module/helpers/buildDeunaWidgetController.js +1 -1
- package/lib/module/helpers/buildDeunaWidgetController.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/interfaces/constants.js +1 -1
- package/lib/module/interfaces/constants.js.map +1 -1
- package/lib/module/types/env.js +0 -7
- package/lib/module/types/env.js.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +8 -3
- package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/adapters/DefaultInAppBrowser.d.ts +10 -0
- package/lib/typescript/deuna-sdk-react-native/src/adapters/DefaultInAppBrowser.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/adapters/InAppBrowserAdapter.d.ts +15 -0
- package/lib/typescript/deuna-sdk-react-native/src/adapters/InAppBrowserAdapter.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/adapters/index.d.ts +3 -0
- package/lib/typescript/deuna-sdk-react-native/src/adapters/index.d.ts.map +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts +6 -4
- package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/index.d.ts +1 -0
- package/lib/typescript/deuna-sdk-react-native/src/index.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/env.d.ts +0 -6
- package/lib/typescript/deuna-sdk-react-native/src/types/env.d.ts.map +1 -1
- package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts +2 -3
- package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts.map +1 -1
- package/package.json +1 -3
- package/src/DeunaSDK.ts +15 -6
- package/src/adapters/DefaultInAppBrowser.ts +13 -0
- package/src/adapters/InAppBrowserAdapter.ts +14 -0
- package/src/adapters/index.ts +2 -0
- package/src/helpers/ExternalUrlHelper.ts +10 -10
- package/src/helpers/buildDeunaWidgetController.ts +1 -1
- package/src/index.tsx +1 -0
- package/src/interfaces/constants.ts +1 -1
- package/src/types/env.ts +1 -9
- package/src/types/fraudProviders.ts +1 -3
- package/lib/module/helpers/CrossPlatformBrowser.js +0 -51
- package/lib/module/helpers/CrossPlatformBrowser.js.map +0 -1
- package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts +0 -25
- package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts.map +0 -1
- package/src/helpers/CrossPlatformBrowser.ts +0 -49
package/README.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
React Native SDK
|
|
4
4
|
|
|
5
|
+
## 🚨 Important: Breaking Changes in v2.0.0
|
|
6
|
+
|
|
7
|
+
**If you're upgrading from v1.x to v2.x**, please review the [CHANGELOG.md](./CHANGELOG.md) carefully. This major version includes breaking changes related to external URL handling and the removal of `expo-web-browser` dependency.
|
|
8
|
+
|
|
9
|
+
**Key changes:**
|
|
10
|
+
- New adapter pattern for browser functionality
|
|
11
|
+
- MercadoPago wallet and similar payments may require additional configuration
|
|
12
|
+
- Better Metro and Webpack compatibility
|
|
13
|
+
|
|
14
|
+
👉 **[Read the full migration guide in CHANGELOG.md](./CHANGELOG.md)**
|
|
5
15
|
|
|
6
16
|
## Usage
|
|
7
17
|
|
package/lib/module/DeunaSDK.js
CHANGED
|
@@ -6,19 +6,20 @@ import { buildDeunaWidgetController } from "./helpers/buildDeunaWidgetController
|
|
|
6
6
|
import { ElementsWidgetController } from "./controllers/ElementsWidgetController.js";
|
|
7
7
|
import { DownloadType, Mode } from "./interfaces/types.js";
|
|
8
8
|
import { DeviceFingerprintController } from "./controllers/DeviceFingerprintController.js";
|
|
9
|
-
import { DEVICE_FINGERPRINT_URL,
|
|
9
|
+
import { DEVICE_FINGERPRINT_URL, DOMAINS_MUST_BE_USE_IN_APP_BROWSER } from "./interfaces/constants.js";
|
|
10
10
|
import { getSubmitStrategy } from "./helpers/getSubmitStrategy.js";
|
|
11
11
|
import { WebViewManager } from "./helpers/ViewManager.js";
|
|
12
12
|
import { ExternalUrlBrowser, ExternalUrlHelper } from "./helpers/ExternalUrlHelper.js";
|
|
13
|
+
import { DefaultInAppBrowserAdapter } from "./adapters/DefaultInAppBrowser.js";
|
|
13
14
|
export class DeunaSDK extends BaseDeuna {
|
|
14
15
|
constructor(config, onDestroyed) {
|
|
15
16
|
super();
|
|
16
17
|
this.config = config;
|
|
17
18
|
this.onDestroyed = onDestroyed;
|
|
19
|
+
this.externalUrlHelper = new ExternalUrlHelper(this.config.inAppBrowserAdapter ?? new DefaultInAppBrowserAdapter());
|
|
18
20
|
}
|
|
19
21
|
listeners = new Set();
|
|
20
22
|
deunaWidgetManager = new WebViewManager();
|
|
21
|
-
externalUrlHelper = new ExternalUrlHelper();
|
|
22
23
|
deviceFingerprintController = null;
|
|
23
24
|
submitStrategy = null;
|
|
24
25
|
|
|
@@ -223,9 +224,9 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
223
224
|
const host = new URL(url).host;
|
|
224
225
|
let browser = ExternalUrlBrowser.WEB_VIEW;
|
|
225
226
|
// Check if the URL is from a domain that must be opened in a cross platform browser (SafariView or Chrome Custom Tab)
|
|
226
|
-
for (const domain of
|
|
227
|
+
for (const domain of DOMAINS_MUST_BE_USE_IN_APP_BROWSER) {
|
|
227
228
|
if (host.includes(domain)) {
|
|
228
|
-
browser = ExternalUrlBrowser.
|
|
229
|
+
browser = ExternalUrlBrowser.IN_APP_BROWSER;
|
|
229
230
|
break;
|
|
230
231
|
}
|
|
231
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseDeuna","PaymentWidgetController","buildDeunaWidgetController","ElementsWidgetController","DownloadType","Mode","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","
|
|
1
|
+
{"version":3,"names":["BaseDeuna","PaymentWidgetController","buildDeunaWidgetController","ElementsWidgetController","DownloadType","Mode","DeviceFingerprintController","DEVICE_FINGERPRINT_URL","DOMAINS_MUST_BE_USE_IN_APP_BROWSER","getSubmitStrategy","WebViewManager","ExternalUrlBrowser","ExternalUrlHelper","DefaultInAppBrowserAdapter","DeunaSDK","constructor","config","onDestroyed","externalUrlHelper","inAppBrowserAdapter","listeners","Set","deunaWidgetManager","deviceFingerprintController","submitStrategy","getSessionId","params","publicApiKey","environment","url","notifyListeners","deviceFingerprint","generateDeviceFingerprint","dispose","initialize","setWidgetController","controller","mode","MODAL","delegate","buildDelegate","initPaymentWidget","props","widget","sdkInstance","initElements","initNextAction","initVoucherWidget","isValid","submit","getStateFn","getWidgetState","setCustomStyle","style","refetchOrder","close","isInitialized","onClosedCallback","closedAction","callbacks","onClosed","waitForClose","destroy","deunaSDK","error","console","addListener","listener","add","removeListener","delete","forEach","notifyDownloadFile","onDownloadFile","type","URL","data","onCloseExternalUrl","externalUrlWebViewController","closeWebView","onOpenExternalUrl","host","browser","WEB_VIEW","domain","includes","IN_APP_BROWSER","openUrl","onFileDownload","onCloseButtonPressed"],"sourceRoot":"../../src","sources":["DeunaSDK.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Linking } from 'react-native';
|
|
4
|
+
export class DefaultInAppBrowserAdapter {
|
|
5
|
+
/**
|
|
6
|
+
* Open a given URL with any installed app via React Native Linking.
|
|
7
|
+
* This will open the URL in the default browser of the device like Safari on iOS or Chrome on Android.
|
|
8
|
+
* @param url
|
|
9
|
+
*/
|
|
10
|
+
async openUrl(url) {
|
|
11
|
+
await Linking.openURL(url);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=DefaultInAppBrowser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Linking","DefaultInAppBrowserAdapter","openUrl","url","openURL"],"sourceRoot":"../../../src","sources":["adapters/DefaultInAppBrowser.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,cAAc;AAGtC,OAAO,MAAMC,0BAA0B,CAAgC;EACrE;AACF;AACA;AACA;AACA;EACE,MAAMC,OAAOA,CAACC,GAAW,EAAiB;IACxC,MAAMH,OAAO,CAACI,OAAO,CAACD,GAAG,CAAC;EAC5B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["adapters/InAppBrowserAdapter.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["adapters/index.ts"],"mappings":";;AAAA,cAAc,0BAAuB;AACrC,cAAc,0BAAuB","ignoreList":[]}
|
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
import { AppState, Platform } from 'react-native';
|
|
4
4
|
import { ExternalUrlController } from "../controllers/ExternalUrlController.js";
|
|
5
5
|
import { Completer } from "./Completer.js";
|
|
6
|
-
import { crossPlatformBrowser } from "./CrossPlatformBrowser.js";
|
|
7
6
|
export let ExternalUrlBrowser = /*#__PURE__*/function (ExternalUrlBrowser) {
|
|
8
7
|
ExternalUrlBrowser["WEB_VIEW"] = "web_view";
|
|
9
|
-
ExternalUrlBrowser["
|
|
8
|
+
ExternalUrlBrowser["IN_APP_BROWSER"] = "in_app_browser";
|
|
10
9
|
return ExternalUrlBrowser;
|
|
11
10
|
}({});
|
|
12
11
|
export class ExternalUrlHelper {
|
|
13
12
|
manager = null;
|
|
14
13
|
completer = null;
|
|
15
|
-
constructor() {
|
|
14
|
+
constructor(inAppBrowserAdapter) {
|
|
15
|
+
this.inAppBrowserAdapter = inAppBrowserAdapter;
|
|
16
16
|
this.startCloseChecker();
|
|
17
17
|
}
|
|
18
18
|
get externalUrlWebViewController() {
|
|
@@ -37,7 +37,7 @@ export class ExternalUrlHelper {
|
|
|
37
37
|
*/
|
|
38
38
|
startCloseChecker() {
|
|
39
39
|
AppState.addEventListener('change', state => {
|
|
40
|
-
if (state === 'active' && this.manager?.type === ExternalUrlBrowser.
|
|
40
|
+
if (state === 'active' && this.manager?.type === ExternalUrlBrowser.IN_APP_BROWSER) {
|
|
41
41
|
this.manager = null;
|
|
42
42
|
this.completeClose();
|
|
43
43
|
}
|
|
@@ -62,12 +62,12 @@ export class ExternalUrlHelper {
|
|
|
62
62
|
controller
|
|
63
63
|
};
|
|
64
64
|
},
|
|
65
|
-
[ExternalUrlBrowser.
|
|
65
|
+
[ExternalUrlBrowser.IN_APP_BROWSER]: async () => {
|
|
66
66
|
this.completer = new Completer();
|
|
67
67
|
this.manager = {
|
|
68
|
-
type: ExternalUrlBrowser.
|
|
68
|
+
type: ExternalUrlBrowser.IN_APP_BROWSER
|
|
69
69
|
};
|
|
70
|
-
await
|
|
70
|
+
await this.inAppBrowserAdapter.openUrl(url);
|
|
71
71
|
if (Platform.OS === 'ios') {
|
|
72
72
|
this.completer?.complete();
|
|
73
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppState","Platform","ExternalUrlController","Completer","
|
|
1
|
+
{"version":3,"names":["AppState","Platform","ExternalUrlController","Completer","ExternalUrlBrowser","ExternalUrlHelper","manager","completer","constructor","inAppBrowserAdapter","startCloseChecker","externalUrlWebViewController","type","WEB_VIEW","controller","waitForClose","wait","addEventListener","state","IN_APP_BROWSER","completeClose","openUrl","params","url","browser","delegate","mapper","OS","complete","closeWebView","dispose"],"sourceRoot":"../../../src","sources":["helpers/ExternalUrlHelper.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,QAAQ,QAAQ,cAAc;AAEjD,SAASC,qBAAqB,QAAQ,yCAAsC;AAC5E,SAASC,SAAS,QAAQ,gBAAa;AAGvC,WAAYC,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAyB9B,OAAO,MAAMC,iBAAiB,CAAC;EACrBC,OAAO,GAAkD,IAAI;EAC7DC,SAAS,GAA2B,IAAI;EAEhDC,WAAWA,CAAUC,mBAAwC,EAAE;IAAA,KAA1CA,mBAAwC,GAAxCA,mBAAwC;IAC3D,IAAI,CAACC,iBAAiB,CAAC,CAAC;EAC1B;EAEA,IAAIC,4BAA4BA,CAAA,EAAG;IACjC,IAAI,IAAI,CAACL,OAAO,EAAEM,IAAI,KAAKR,kBAAkB,CAACS,QAAQ,EAAE;MACtD,OAAQ,IAAI,CAACP,OAAO,CAAoBQ,UAAU;IACpD;IACA,OAAO,IAAI;EACb;;EAEA;AACF;AACA;EACE,MAAMC,YAAYA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACR,SAAS,EAAE;MAClB,MAAM,IAAI,CAACA,SAAS,CAACS,IAAI;MACzB,IAAI,CAACT,SAAS,GAAG,IAAI;IACvB;EACF;;EAEA;AACF;AACA;EACUG,iBAAiBA,CAAA,EAAG;IAC1BV,QAAQ,CAACiB,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAC7C,IACEA,KAAK,KAAK,QAAQ,IAClB,IAAI,CAACZ,OAAO,EAAEM,IAAI,KAAKR,kBAAkB,CAACe,cAAc,EACxD;QACA,IAAI,CAACb,OAAO,GAAG,IAAI;QACnB,IAAI,CAACc,aAAa,CAAC,CAAC;MACtB;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE,MAAMC,OAAOA,CAACC,MAAqB,EAAE;IACnC,MAAM;MAAEC,GAAG;MAAEC,OAAO;MAAEC;IAAS,CAAC,GAAGH,MAAM;IAEzC,MAAMI,MAAM,GAAG;MACb,CAACtB,kBAAkB,CAACS,QAAQ,GAAG,YAAY;QACzC,MAAMC,UAAU,GAAG,IAAIZ,qBAAqB,CAACqB,GAAG,CAAC;QACjDT,UAAU,CAACW,QAAQ,GAAGA,QAAQ;QAC9B,IAAI,CAACnB,OAAO,GAAG;UACbM,IAAI,EAAER,kBAAkB,CAACS,QAAQ;UACjCC;QACF,CAAmB;MACrB,CAAC;MACD,CAACV,kBAAkB,CAACe,cAAc,GAAG,YAAY;QAC/C,IAAI,CAACZ,SAAS,GAAG,IAAIJ,SAAS,CAAO,CAAC;QACtC,IAAI,CAACG,OAAO,GAAG;UACbM,IAAI,EAAER,kBAAkB,CAACe;QAC3B,CAAC;QAED,MAAM,IAAI,CAACV,mBAAmB,CAACY,OAAO,CAACE,GAAG,CAAC;QAC3C,IAAItB,QAAQ,CAAC0B,EAAE,KAAK,KAAK,EAAE;UACzB,IAAI,CAACpB,SAAS,EAAEqB,QAAQ,CAAC,CAAC;QAC5B;MACF;IACF,CAAC;IACD,MAAMF,MAAM,CAACF,OAAO,CAAC,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;EACUJ,aAAaA,CAAA,EAAG;IACtB,IAAI,CAACb,SAAS,EAAEqB,QAAQ,CAAC,CAAC;EAC5B;;EAEA;AACF;AACA;EACE,MAAMC,YAAYA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACvB,OAAO,EAAEM,IAAI,KAAKR,kBAAkB,CAACS,QAAQ,EAAE;MACrD,IAAI,CAACP,OAAO,CAAoBQ,UAAU,EAAEgB,OAAO,CAAC,CAAC;MACtD,IAAI,CAACxB,OAAO,GAAG,IAAI;IACrB;EACF;AACF","ignoreList":[]}
|
|
@@ -58,7 +58,7 @@ export const buildDeunaWidgetController = (config, props) => {
|
|
|
58
58
|
sdkInstance,
|
|
59
59
|
fraudCredentials: widgetParams.fraudCredentials
|
|
60
60
|
});
|
|
61
|
-
controller.url = linkBuilders[widget](
|
|
61
|
+
controller.url = linkBuilders[widget](widgetParams);
|
|
62
62
|
controller.hidePayButton = rest.hidePayButton ?? false;
|
|
63
63
|
DeunaLogs.info('👀 loading link', controller.url);
|
|
64
64
|
return controller;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PaymentWidgetController","ElementsWidgetController","linkBuilders","Mode","DeunaLogs","buildDeunaWidgetController","config","props","widget","mode","callbacks","sdkInstance","rest","baseParams","env","environment","publicApiKey","orderToken","userToken","language","sessionId","MODAL","domain","startsWith","widgetMappers","elements","userInfo","styleFile","behavior","widgetExperience","types","payment","paymentWidgetProps","paymentMethods","fraudCredentials","nextAction","voucher","widgetConfig","widgetParams","controller","url","hidePayButton","info"],"sourceRoot":"../../../src","sources":["helpers/buildDeunaWidgetController.ts"],"mappings":";;AACA,SAASA,uBAAuB,QAAQ,2CAAwC;AAChF,SAASC,wBAAwB,QAAQ,4CAAyC;AAQlF,SAASC,YAAY,QAAQ,2BAAkB;AAC/C,SAASC,IAAI,QAAQ,wBAAqB;AAC1C,SAASC,SAAS,QAAQ,iBAAc;AAuCxC,OAAO,MAAMC,0BAA0B,GAAGA,CACxCC,MAAwB,EACxBC,KAIC,KAC0B;EAC3B,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC,SAAS;IAAEC,WAAW;IAAE,GAAGC;EAAK,CAAC,GAAGL,KAAK;EAE/D,MAAMM,UAAsB,GAAG;IAC7BC,GAAG,EAAER,MAAM,CAACS,WAAY;IACxBC,YAAY,EAAEV,MAAM,CAACU,YAAY;IACjCC,UAAU,EAAEL,IAAI,CAACK,UAAU,IAAI,EAAE;IACjCC,SAAS,EAAEN,IAAI,CAACM,SAAS,IAAI,EAAE;IAC/BC,QAAQ,EAAEP,IAAI,CAACO,QAAQ,IAAI,IAAI;IAC/BC,SAAS,EAAER,IAAI,CAACQ,SAAS,IAAI,EAAE;IAC/BX,IAAI,EAAEA,IAAI,KAAKN,IAAI,CAACkB,KAAK,GAAG,OAAO,GAAG,QAAQ;IAC9C,IAAIT,IAAI,CAACU,MAAM,IAAI;MACjBA,MAAM,EACJ,CAACV,IAAI,CAACU,MAAM,CAACC,UAAU,CAAC,MAAM,CAAC,IAAI,CAACX,IAAI,CAACU,MAAM,CAACC,UAAU,CAAC,OAAO,CAAC,GAC/D,WAAWX,IAAI,CAACU,MAAM,EAAE,GACxBV,IAAI,CAACU;IACb,CAAC;EACH,CAAC;EAED,MAAME,aAAa,GAAG;IACpBC,QAAQ,EAAEA,CAAA,MAAO;MACf,GAAGZ,UAAU;MACba,QAAQ,EAAEd,IAAI,CAACc,QAAQ;MACvBC,SAAS,EAAEf,IAAI,CAACe,SAAS;MACzBC,QAAQ,EAAEhB,IAAI,CAACgB,QAAQ;MACvBC,gBAAgB,EAAEjB,IAAI,CAACiB,gBAAgB;MACvCC,KAAK,EAAGvB,KAAK,CAAmCuB;IAClD,CAAC,CAAC;IACFC,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,kBAAkB,GAAGzB,KAAqC;MAChE,OAAO;QACL,GAAGM,UAAU;QACbe,QAAQ,EAAEhB,IAAI,CAACgB,QAAQ;QACvBK,cAAc,EAAED,kBAAkB,CAACC,cAAc;QACjDN,SAAS,EAAEf,IAAI,CAACe,SAAS;QACzBO,gBAAgB,EAAEF,kBAAkB,CAACE;MACvC,CAAC;IACH,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAMtB,UAAU;IAC5BuB,OAAO,EAAEA,CAAA,KAAMvB;EACjB,CAAC;EAED,MAAMwB,YAAY,GAAG;IACnBpB,UAAU,EAAEL,IAAI,CAACK,UAAU;IAC3BW,QAAQ,EAAEhB,IAAI,CAACgB,QAAQ;IACvBV,SAAS,EAAEN,IAAI,CAACM;EAClB,CAAC;EAED,MAAMoB,YAAY,GAAGd,aAAa,CAAChB,MAAM,CAAC,CAAC,CAAC;EAE5C,MAAM+B,UAAU,GACd/B,MAAM,KAAK,UAAU,GACjB,IAAIP,wBAAwB,CAACS,SAAS,EAAE2B,YAAY,CAAC,GACrD,IAAIrC,uBAAuB,CAACU,SAAS,EAAE;IACrC,GAAG2B,YAAY;IACf1B,WAAW;IACXuB,gBAAgB,EAAEI,YAAY,CAACJ;EACjC,CAAC,CAAC;EAERK,UAAU,CAACC,GAAG,GAAGtC,YAAY,CAACM,MAAM,CAAC,
|
|
1
|
+
{"version":3,"names":["PaymentWidgetController","ElementsWidgetController","linkBuilders","Mode","DeunaLogs","buildDeunaWidgetController","config","props","widget","mode","callbacks","sdkInstance","rest","baseParams","env","environment","publicApiKey","orderToken","userToken","language","sessionId","MODAL","domain","startsWith","widgetMappers","elements","userInfo","styleFile","behavior","widgetExperience","types","payment","paymentWidgetProps","paymentMethods","fraudCredentials","nextAction","voucher","widgetConfig","widgetParams","controller","url","hidePayButton","info"],"sourceRoot":"../../../src","sources":["helpers/buildDeunaWidgetController.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,eAAY;AAC1B,cAAc,6BAA0B;AACxC,cAAc,kBAAS;AACvB,cAAc,uBAAc","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,eAAY;AAC1B,cAAc,6BAA0B;AACxC,cAAc,kBAAS;AACvB,cAAc,uBAAc;AAC5B,cAAc,qBAAY","ignoreList":[]}
|
|
@@ -7,5 +7,5 @@ export const constants = {
|
|
|
7
7
|
};
|
|
8
8
|
export const DEVICE_FINGERPRINT_URL = 'https://cdn.stg.deuna.io/mobile-sdks/get_fraud_id.html';
|
|
9
9
|
export const TWO_STEP_FLOW = 'twoStep';
|
|
10
|
-
export const
|
|
10
|
+
export const DOMAINS_MUST_BE_USE_IN_APP_BROWSER = ['mercadopago.com'];
|
|
11
11
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["constants","apmSaveId","metadata","voucherPdfDownloadUrl","DEVICE_FINGERPRINT_URL","TWO_STEP_FLOW","
|
|
1
|
+
{"version":3,"names":["constants","apmSaveId","metadata","voucherPdfDownloadUrl","DEVICE_FINGERPRINT_URL","TWO_STEP_FLOW","DOMAINS_MUST_BE_USE_IN_APP_BROWSER"],"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;AAED,OAAO,MAAMC,sBAAsB,GACjC,wDAAwD;AAE1D,OAAO,MAAMC,aAAa,GAAG,SAAS;AAEtC,OAAO,MAAMC,kCAAkC,GAAG,CAAC,iBAAiB,CAAC","ignoreList":[]}
|
package/lib/module/types/env.js
CHANGED
|
@@ -39,13 +39,6 @@ export const siftCred = {
|
|
|
39
39
|
[Env.Develop]: 'b267dfc8a5',
|
|
40
40
|
[Env.Sandbox]: 'b267dfc8a5'
|
|
41
41
|
};
|
|
42
|
-
const PROD_URL = 'https://cdn.deuna.io/cdl/v1.1/index.js';
|
|
43
|
-
export const cdlUrls = {
|
|
44
|
-
[Env.Sandbox]: PROD_URL,
|
|
45
|
-
[Env.Production]: PROD_URL,
|
|
46
|
-
[Env.Staging]: 'https://cdn.stg.deuna.io/cdl/index.js',
|
|
47
|
-
[Env.Develop]: 'https://cdn.dev.deuna.io/cdl/index.js'
|
|
48
|
-
};
|
|
49
42
|
export const proxyUrls = {
|
|
50
43
|
URL: 'mimos.vendodeuna.com',
|
|
51
44
|
FPJS_BEHAVIOR_PATH: 'thomas',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Env","env","Production","Staging","Develop","Sandbox","checkout","fingerprintjsEnv","storageSite","local","siftCred","
|
|
1
|
+
{"version":3,"names":["Env","env","Production","Staging","Develop","Sandbox","checkout","fingerprintjsEnv","storageSite","local","siftCred","proxyUrls","URL","FPJS_BEHAVIOR_PATH","FPJS_AGENT_DOWNLOAD_PATH","FPJS_GET_RESULT_PATH"],"sourceRoot":"../../../src","sources":["types/env.ts"],"mappings":";;AAAA,WAAYA,GAAG,0BAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAA,OAAHA,GAAG;AAAA;AAQb,OAAO,MAAMC,GAAG,GAAG;EACjB,CAACD,GAAG,CAACE,UAAU,GAAG,4BAA4B;EAC9C,CAACF,GAAG,CAACG,OAAO,GAAG,2BAA2B;EAC1C,CAACH,GAAG,CAACI,OAAO,GAAG,2BAA2B;EAC1C,CAACJ,GAAG,CAACK,OAAO,GAAG;AACjB,CAAC;AAED,OAAO,MAAMC,QAAQ,GAAG;EACtB,CAACN,GAAG,CAACE,UAAU,GAAG,gCAAgC;EAClD,CAACF,GAAG,CAACG,OAAO,GAAG,gCAAgC;EAC/C,CAACH,GAAG,CAACI,OAAO,GAAG,gCAAgC;EAC/C,CAACJ,GAAG,CAACK,OAAO,GAAG;AACjB,CAAC;AAED,OAAO,MAAME,gBAAgB,GAAG;EAC9B,CAACP,GAAG,CAACE,UAAU,GAAG,sBAAsB;EACxC,CAACF,GAAG,CAACG,OAAO,GAAG,sBAAsB;EACrC,CAACH,GAAG,CAACI,OAAO,GAAG,sBAAsB;EACrC,CAACJ,GAAG,CAACK,OAAO,GAAG;AACjB,CAAC;AAED,OAAO,MAAMG,WAAW,GAAG;EACzB,CAACR,GAAG,CAACE,UAAU,GAAG,oDAAoD;EACtE,CAACF,GAAG,CAACG,OAAO,GAAG,qDAAqD;EACpE,CAACH,GAAG,CAACI,OAAO,GAAG,qDAAqD;EACpE,CAACJ,GAAG,CAACK,OAAO,GAAG,qDAAqD;EACpE,CAACL,GAAG,CAACS,KAAK,GAAG;AACf,CAAC;AAED,OAAO,MAAMC,QAAQ,GAAG;EACtB,CAACV,GAAG,CAACE,UAAU,GAAG,YAAY;EAC9B,CAACF,GAAG,CAACG,OAAO,GAAG,YAAY;EAC3B,CAACH,GAAG,CAACI,OAAO,GAAG,YAAY;EAC3B,CAACJ,GAAG,CAACK,OAAO,GAAG;AACjB,CAAC;AAED,OAAO,MAAMM,SAAS,GAAG;EACvBC,GAAG,EAAE,sBAAsB;EAC3BC,kBAAkB,EAAE,QAAQ;EAC5BC,wBAAwB,EAAE,OAAO;EACjCC,oBAAoB,EAAE;AACxB,CAAC","ignoreList":[]}
|
|
@@ -5,10 +5,14 @@ import { DeviceFingerprintController } from './controllers/DeviceFingerprintCont
|
|
|
5
5
|
import { SubmitStrategy } from './helpers/SubmitStrategy';
|
|
6
6
|
import { WebViewManager } from './helpers/ViewManager';
|
|
7
7
|
import { ExternalUrlHelper } from './helpers/ExternalUrlHelper';
|
|
8
|
+
import { InAppBrowserAdapter } from './adapters/InAppBrowserAdapter';
|
|
9
|
+
type InitializeParamsWithInAppBrowserAdapter = InitializeParams & {
|
|
10
|
+
inAppBrowserAdapter?: InAppBrowserAdapter;
|
|
11
|
+
};
|
|
8
12
|
export declare class DeunaSDK extends BaseDeuna {
|
|
9
|
-
readonly config:
|
|
13
|
+
readonly config: InitializeParamsWithInAppBrowserAdapter;
|
|
10
14
|
readonly onDestroyed?: (() => void) | undefined;
|
|
11
|
-
constructor(config:
|
|
15
|
+
constructor(config: InitializeParamsWithInAppBrowserAdapter, onDestroyed?: (() => void) | undefined);
|
|
12
16
|
setCustomStyleFn?: SetCustomStyle | undefined;
|
|
13
17
|
refetchOrderFn?: RefetchOrder | undefined;
|
|
14
18
|
getStateFn?: GetStateFn | undefined;
|
|
@@ -26,7 +30,7 @@ export declare class DeunaSDK extends BaseDeuna {
|
|
|
26
30
|
* @returns The device fingerprint
|
|
27
31
|
*/
|
|
28
32
|
getSessionId: (params?: Record<string, any>) => Promise<string>;
|
|
29
|
-
static initialize(config:
|
|
33
|
+
static initialize(config: InitializeParamsWithInAppBrowserAdapter): DeunaSDK;
|
|
30
34
|
/**
|
|
31
35
|
* Sets the DEUNA widget controller
|
|
32
36
|
* @param params - The parameters for the widget controller
|
|
@@ -94,4 +98,5 @@ export declare class DeunaSDK extends BaseDeuna {
|
|
|
94
98
|
*/
|
|
95
99
|
buildDelegate: () => WebViewDelegate;
|
|
96
100
|
}
|
|
101
|
+
export {};
|
|
97
102
|
//# sourceMappingURL=DeunaSDK.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeunaSDK.d.ts","sourceRoot":"","sources":["../../../../src/DeunaSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAET,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,sBAAsB,EACtB,eAAe,EAChB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAgB,IAAI,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAKxF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAEL,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"DeunaSDK.d.ts","sourceRoot":"","sources":["../../../../src/DeunaSDK.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InAppBrowserAdapter } from './InAppBrowserAdapter';
|
|
2
|
+
export declare class DefaultInAppBrowserAdapter implements InAppBrowserAdapter {
|
|
3
|
+
/**
|
|
4
|
+
* Open a given URL with any installed app via React Native Linking.
|
|
5
|
+
* This will open the URL in the default browser of the device like Safari on iOS or Chrome on Android.
|
|
6
|
+
* @param url
|
|
7
|
+
*/
|
|
8
|
+
openUrl(url: string): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=DefaultInAppBrowser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultInAppBrowser.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/DefaultInAppBrowser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE;;;;OAIG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter to handle opening URLs in an in-app browser (Custom Tabs on Android, Safari View Controller on iOS).
|
|
3
|
+
*
|
|
4
|
+
* This allows you to customize the behavior of opening URLs in an in-app browser
|
|
5
|
+
* using any package you want like `expo-web-browser`, `react-native-inappbrowser-reborn`, etc.
|
|
6
|
+
*/
|
|
7
|
+
export interface InAppBrowserAdapter {
|
|
8
|
+
/**
|
|
9
|
+
* Open a given URL using the adapter implementation.
|
|
10
|
+
* Check the CHANGELOG.md related to v2.0.0 for more information.
|
|
11
|
+
* @param url
|
|
12
|
+
*/
|
|
13
|
+
openUrl(url: string): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=InAppBrowserAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InAppBrowserAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/InAppBrowserAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { WebViewDelegate } from '../controllers/BaseWebViewController';
|
|
2
2
|
import { ExternalUrlController } from '../controllers/ExternalUrlController';
|
|
3
|
+
import { InAppBrowserAdapter } from '../adapters/InAppBrowserAdapter';
|
|
3
4
|
export declare enum ExternalUrlBrowser {
|
|
4
5
|
WEB_VIEW = "web_view",
|
|
5
|
-
|
|
6
|
+
IN_APP_BROWSER = "in_app_browser"
|
|
6
7
|
}
|
|
7
8
|
interface OpenUrlParams {
|
|
8
9
|
url: string;
|
|
@@ -15,13 +16,14 @@ interface ExternalUrlManager<T extends ExternalUrlBrowser> {
|
|
|
15
16
|
export interface WebViewManager extends ExternalUrlManager<ExternalUrlBrowser.WEB_VIEW> {
|
|
16
17
|
controller: ExternalUrlController;
|
|
17
18
|
}
|
|
18
|
-
export interface
|
|
19
|
-
type: ExternalUrlBrowser.
|
|
19
|
+
export interface InAppBrowserManager extends ExternalUrlManager<ExternalUrlBrowser.IN_APP_BROWSER> {
|
|
20
|
+
type: ExternalUrlBrowser.IN_APP_BROWSER;
|
|
20
21
|
}
|
|
21
22
|
export declare class ExternalUrlHelper {
|
|
23
|
+
readonly inAppBrowserAdapter: InAppBrowserAdapter;
|
|
22
24
|
private manager;
|
|
23
25
|
private completer;
|
|
24
|
-
constructor();
|
|
26
|
+
constructor(inAppBrowserAdapter: InAppBrowserAdapter);
|
|
25
27
|
get externalUrlWebViewController(): ExternalUrlController | null;
|
|
26
28
|
/**
|
|
27
29
|
* Wait until the webview or cross platform browser is closed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalUrlHelper.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/ExternalUrlHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"ExternalUrlHelper.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/ExternalUrlHelper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,oBAAY,kBAAkB;IAC5B,QAAQ,aAAa;IACrB,cAAc,mBAAmB;CAClC;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,UAAU,kBAAkB,CAAC,CAAC,SAAS,kBAAkB;IACvD,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,cACf,SAAQ,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,CAAC;IACvD,UAAU,EAAE,qBAAqB,CAAC;CACnC;AAED,MAAM,WAAW,mBACf,SAAQ,kBAAkB,CAAC,kBAAkB,CAAC,cAAc,CAAC;IAC7D,IAAI,EAAE,kBAAkB,CAAC,cAAc,CAAC;CACzC;AAED,qBAAa,iBAAiB;IAIhB,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB;IAH7D,OAAO,CAAC,OAAO,CAAuD;IACtE,OAAO,CAAC,SAAS,CAAgC;gBAE5B,mBAAmB,EAAE,mBAAmB;IAI7D,IAAI,4BAA4B,iCAK/B;IAED;;OAEG;IACG,YAAY;IAOlB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,aAAa;IA2BnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACG,YAAY;CAMnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
@@ -5,5 +5,5 @@ export declare const constants: {
|
|
|
5
5
|
};
|
|
6
6
|
export declare const DEVICE_FINGERPRINT_URL = "https://cdn.stg.deuna.io/mobile-sdks/get_fraud_id.html";
|
|
7
7
|
export declare const TWO_STEP_FLOW = "twoStep";
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const DOMAINS_MUST_BE_USE_IN_APP_BROWSER: string[];
|
|
9
9
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;CAIrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,2DACuB,CAAC;AAE3D,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/interfaces/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;CAIrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,2DACuB,CAAC;AAE3D,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,eAAO,MAAM,kCAAkC,UAAsB,CAAC"}
|
|
@@ -36,12 +36,6 @@ export declare const siftCred: {
|
|
|
36
36
|
develop: string;
|
|
37
37
|
sandbox: string;
|
|
38
38
|
};
|
|
39
|
-
export declare const cdlUrls: {
|
|
40
|
-
sandbox: string;
|
|
41
|
-
production: string;
|
|
42
|
-
staging: string;
|
|
43
|
-
develop: string;
|
|
44
|
-
};
|
|
45
39
|
export declare const proxyUrls: {
|
|
46
40
|
URL: string;
|
|
47
41
|
FPJS_BEHAVIOR_PATH: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../../src/types/env.ts"],"names":[],"mappings":"AAAA,oBAAY,GAAG;IACX,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,GAAG;;;;;CAKf,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../../src/types/env.ts"],"names":[],"mappings":"AAAA,oBAAY,GAAG;IACX,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,GAAG;;;;;CAKf,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;CAK5B,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;CAMvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;CAKrB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Env } from "./envs";
|
|
2
|
-
export type Providers = "CLEARSALE" | "CLEARSALE-BRASIL" | "CYBERSOURCE" | "MERCADOPAGO" | "SIFT" | "SIGNIFYD" | "STRIPE" | "
|
|
2
|
+
export type Providers = "CLEARSALE" | "CLEARSALE-BRASIL" | "CYBERSOURCE" | "MERCADOPAGO" | "SIFT" | "SIGNIFYD" | "STRIPE" | "KOUNT" | "KONDUTO" | "OPENPAY" | "RISKIFIED";
|
|
3
3
|
export interface FraudProviderParams<T> {
|
|
4
4
|
sessionId: string;
|
|
5
5
|
env: Env;
|
|
@@ -38,8 +38,8 @@ export interface KountParams {
|
|
|
38
38
|
isSinglePageApp: boolean;
|
|
39
39
|
}
|
|
40
40
|
export interface KoinParams {
|
|
41
|
+
id: string;
|
|
41
42
|
orgId: string;
|
|
42
|
-
sessionId?: string;
|
|
43
43
|
}
|
|
44
44
|
export interface KondutoParams {
|
|
45
45
|
publicKey: string;
|
|
@@ -64,6 +64,5 @@ export type InitFraudProvidersProps = {
|
|
|
64
64
|
KOUNT: KountParams;
|
|
65
65
|
KONDUTO: KondutoParams;
|
|
66
66
|
RISKIFIED: RiskifiedParams;
|
|
67
|
-
KOIN: KoinParams;
|
|
68
67
|
};
|
|
69
68
|
//# sourceMappingURL=fraudProviders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fraudProviders.d.ts","sourceRoot":"","sources":["../../../../../src/types/fraudProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,MAAM,GACN,UAAU,GACV,QAAQ,GACR,
|
|
1
|
+
{"version":3,"file":"fraudProviders.d.ts","sourceRoot":"","sources":["../../../../../src/types/fraudProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,MAAM,GACN,UAAU,GACV,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACX;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,QAAQ,SAAS,SAAS,IAAI,CACzD,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC3B,OAAO,CACR;KACG,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;CACtC,GACD,SAAS,CACZ,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAAG;KAChC,GAAG,IAAI,SAAS,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,eAAe,CAAC;IAC3B,kBAAkB,EAAE,eAAe,CAAC;IACpC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,WAAW,EAAE,EAAE,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deuna/react-native-sdk",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-rc.2",
|
|
4
4
|
"description": "React Native SDK",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/module/index.js",
|
|
7
7
|
"types": "./lib/typescript/deuna-sdk-react-native/src/index.d.ts",
|
|
8
8
|
"peerDependencies": {
|
|
9
|
-
"expo-web-browser": "*",
|
|
10
9
|
"react": "*",
|
|
11
10
|
"react-native": "*",
|
|
12
11
|
"react-native-webview": "*"
|
|
@@ -83,7 +82,6 @@
|
|
|
83
82
|
"eslint": "^9.22.0",
|
|
84
83
|
"eslint-config-prettier": "^10.1.1",
|
|
85
84
|
"eslint-plugin-prettier": "^5.2.3",
|
|
86
|
-
"expo-web-browser": "14.1.6",
|
|
87
85
|
"jest": "^29.7.0",
|
|
88
86
|
"prettier": "^3.0.3",
|
|
89
87
|
"react": "18.3.1",
|
package/src/DeunaSDK.ts
CHANGED
|
@@ -29,7 +29,7 @@ import { DownloadType, Mode, OnDownloadFile } from './interfaces/types';
|
|
|
29
29
|
import { DeviceFingerprintController } from './controllers/DeviceFingerprintController';
|
|
30
30
|
import {
|
|
31
31
|
DEVICE_FINGERPRINT_URL,
|
|
32
|
-
|
|
32
|
+
DOMAINS_MUST_BE_USE_IN_APP_BROWSER,
|
|
33
33
|
} from './interfaces/constants';
|
|
34
34
|
import { SubmitStrategy } from './helpers/SubmitStrategy';
|
|
35
35
|
import { getSubmitStrategy } from './helpers/getSubmitStrategy';
|
|
@@ -38,13 +38,22 @@ import {
|
|
|
38
38
|
ExternalUrlBrowser,
|
|
39
39
|
ExternalUrlHelper,
|
|
40
40
|
} from './helpers/ExternalUrlHelper';
|
|
41
|
+
import { InAppBrowserAdapter } from './adapters/InAppBrowserAdapter';
|
|
42
|
+
import { DefaultInAppBrowserAdapter } from './adapters/DefaultInAppBrowser';
|
|
43
|
+
|
|
44
|
+
type InitializeParamsWithInAppBrowserAdapter = InitializeParams & {
|
|
45
|
+
inAppBrowserAdapter?: InAppBrowserAdapter;
|
|
46
|
+
};
|
|
41
47
|
|
|
42
48
|
export class DeunaSDK extends BaseDeuna {
|
|
43
49
|
constructor(
|
|
44
|
-
readonly config:
|
|
50
|
+
readonly config: InitializeParamsWithInAppBrowserAdapter,
|
|
45
51
|
readonly onDestroyed?: () => void
|
|
46
52
|
) {
|
|
47
53
|
super();
|
|
54
|
+
this.externalUrlHelper = new ExternalUrlHelper(
|
|
55
|
+
this.config.inAppBrowserAdapter ?? new DefaultInAppBrowserAdapter()
|
|
56
|
+
);
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
setCustomStyleFn?: SetCustomStyle | undefined;
|
|
@@ -57,7 +66,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
57
66
|
private listeners: Set<() => void> = new Set();
|
|
58
67
|
|
|
59
68
|
deunaWidgetManager = new WebViewManager<DeunaWebViewController>();
|
|
60
|
-
externalUrlHelper
|
|
69
|
+
externalUrlHelper: ExternalUrlHelper;
|
|
61
70
|
|
|
62
71
|
deviceFingerprintController: DeviceFingerprintController | null = null;
|
|
63
72
|
submitStrategy: SubmitStrategy | null = null;
|
|
@@ -85,7 +94,7 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
85
94
|
return deviceFingerprint ?? '';
|
|
86
95
|
};
|
|
87
96
|
|
|
88
|
-
static initialize(config:
|
|
97
|
+
static initialize(config: InitializeParamsWithInAppBrowserAdapter): DeunaSDK {
|
|
89
98
|
return new DeunaSDK(config);
|
|
90
99
|
}
|
|
91
100
|
|
|
@@ -302,9 +311,9 @@ export class DeunaSDK extends BaseDeuna {
|
|
|
302
311
|
const host = new URL(url).host;
|
|
303
312
|
let browser = ExternalUrlBrowser.WEB_VIEW;
|
|
304
313
|
// Check if the URL is from a domain that must be opened in a cross platform browser (SafariView or Chrome Custom Tab)
|
|
305
|
-
for (const domain of
|
|
314
|
+
for (const domain of DOMAINS_MUST_BE_USE_IN_APP_BROWSER) {
|
|
306
315
|
if (host.includes(domain)) {
|
|
307
|
-
browser = ExternalUrlBrowser.
|
|
316
|
+
browser = ExternalUrlBrowser.IN_APP_BROWSER;
|
|
308
317
|
break;
|
|
309
318
|
}
|
|
310
319
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Linking } from 'react-native';
|
|
2
|
+
import { InAppBrowserAdapter } from './InAppBrowserAdapter';
|
|
3
|
+
|
|
4
|
+
export class DefaultInAppBrowserAdapter implements InAppBrowserAdapter {
|
|
5
|
+
/**
|
|
6
|
+
* Open a given URL with any installed app via React Native Linking.
|
|
7
|
+
* This will open the URL in the default browser of the device like Safari on iOS or Chrome on Android.
|
|
8
|
+
* @param url
|
|
9
|
+
*/
|
|
10
|
+
async openUrl(url: string): Promise<void> {
|
|
11
|
+
await Linking.openURL(url);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter to handle opening URLs in an in-app browser (Custom Tabs on Android, Safari View Controller on iOS).
|
|
3
|
+
*
|
|
4
|
+
* This allows you to customize the behavior of opening URLs in an in-app browser
|
|
5
|
+
* using any package you want like `expo-web-browser`, `react-native-inappbrowser-reborn`, etc.
|
|
6
|
+
*/
|
|
7
|
+
export interface InAppBrowserAdapter {
|
|
8
|
+
/**
|
|
9
|
+
* Open a given URL using the adapter implementation.
|
|
10
|
+
* Check the CHANGELOG.md related to v2.0.0 for more information.
|
|
11
|
+
* @param url
|
|
12
|
+
*/
|
|
13
|
+
openUrl(url: string): Promise<void>;
|
|
14
|
+
}
|
|
@@ -2,11 +2,11 @@ import { AppState, Platform } from 'react-native';
|
|
|
2
2
|
import { WebViewDelegate } from '../controllers/BaseWebViewController';
|
|
3
3
|
import { ExternalUrlController } from '../controllers/ExternalUrlController';
|
|
4
4
|
import { Completer } from './Completer';
|
|
5
|
-
import {
|
|
5
|
+
import { InAppBrowserAdapter } from '../adapters/InAppBrowserAdapter';
|
|
6
6
|
|
|
7
7
|
export enum ExternalUrlBrowser {
|
|
8
8
|
WEB_VIEW = 'web_view',
|
|
9
|
-
|
|
9
|
+
IN_APP_BROWSER = 'in_app_browser',
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
interface OpenUrlParams {
|
|
@@ -24,16 +24,16 @@ export interface WebViewManager
|
|
|
24
24
|
controller: ExternalUrlController;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
export interface
|
|
28
|
-
extends ExternalUrlManager<ExternalUrlBrowser.
|
|
29
|
-
type: ExternalUrlBrowser.
|
|
27
|
+
export interface InAppBrowserManager
|
|
28
|
+
extends ExternalUrlManager<ExternalUrlBrowser.IN_APP_BROWSER> {
|
|
29
|
+
type: ExternalUrlBrowser.IN_APP_BROWSER;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export class ExternalUrlHelper {
|
|
33
33
|
private manager: ExternalUrlManager<ExternalUrlBrowser> | null = null;
|
|
34
34
|
private completer: Completer<void> | null = null;
|
|
35
35
|
|
|
36
|
-
constructor() {
|
|
36
|
+
constructor(readonly inAppBrowserAdapter: InAppBrowserAdapter) {
|
|
37
37
|
this.startCloseChecker();
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -61,7 +61,7 @@ export class ExternalUrlHelper {
|
|
|
61
61
|
AppState.addEventListener('change', (state) => {
|
|
62
62
|
if (
|
|
63
63
|
state === 'active' &&
|
|
64
|
-
this.manager?.type === ExternalUrlBrowser.
|
|
64
|
+
this.manager?.type === ExternalUrlBrowser.IN_APP_BROWSER
|
|
65
65
|
) {
|
|
66
66
|
this.manager = null;
|
|
67
67
|
this.completeClose();
|
|
@@ -84,13 +84,13 @@ export class ExternalUrlHelper {
|
|
|
84
84
|
controller,
|
|
85
85
|
} as WebViewManager;
|
|
86
86
|
},
|
|
87
|
-
[ExternalUrlBrowser.
|
|
87
|
+
[ExternalUrlBrowser.IN_APP_BROWSER]: async () => {
|
|
88
88
|
this.completer = new Completer<void>();
|
|
89
89
|
this.manager = {
|
|
90
|
-
type: ExternalUrlBrowser.
|
|
90
|
+
type: ExternalUrlBrowser.IN_APP_BROWSER,
|
|
91
91
|
};
|
|
92
92
|
|
|
93
|
-
await
|
|
93
|
+
await this.inAppBrowserAdapter.openUrl(url);
|
|
94
94
|
if (Platform.OS === 'ios') {
|
|
95
95
|
this.completer?.complete();
|
|
96
96
|
}
|
|
@@ -115,7 +115,7 @@ export const buildDeunaWidgetController = (
|
|
|
115
115
|
fraudCredentials: widgetParams.fraudCredentials,
|
|
116
116
|
});
|
|
117
117
|
|
|
118
|
-
controller.url = linkBuilders[widget](
|
|
118
|
+
controller.url = linkBuilders[widget](widgetParams);
|
|
119
119
|
controller.hidePayButton = rest.hidePayButton ?? false;
|
|
120
120
|
|
|
121
121
|
DeunaLogs.info('👀 loading link', controller.url);
|
package/src/index.tsx
CHANGED
package/src/types/env.ts
CHANGED
|
@@ -41,15 +41,7 @@ export enum Env {
|
|
|
41
41
|
[Env.Develop]: 'b267dfc8a5',
|
|
42
42
|
[Env.Sandbox]: 'b267dfc8a5'
|
|
43
43
|
};
|
|
44
|
-
|
|
45
|
-
const PROD_URL = 'https://cdn.deuna.io/cdl/v1.1/index.js'
|
|
46
|
-
export const cdlUrls = {
|
|
47
|
-
[Env.Sandbox]: PROD_URL,
|
|
48
|
-
[Env.Production]: PROD_URL,
|
|
49
|
-
[Env.Staging]: 'https://cdn.stg.deuna.io/cdl/index.js',
|
|
50
|
-
[Env.Develop]: 'https://cdn.dev.deuna.io/cdl/index.js',
|
|
51
|
-
};
|
|
52
|
-
|
|
44
|
+
|
|
53
45
|
export const proxyUrls = {
|
|
54
46
|
URL: 'mimos.vendodeuna.com',
|
|
55
47
|
FPJS_BEHAVIOR_PATH: 'thomas',
|
|
@@ -8,7 +8,6 @@ export type Providers =
|
|
|
8
8
|
| "SIFT"
|
|
9
9
|
| "SIGNIFYD"
|
|
10
10
|
| "STRIPE"
|
|
11
|
-
| "KOIN"
|
|
12
11
|
| "KOUNT"
|
|
13
12
|
| "KONDUTO"
|
|
14
13
|
| "OPENPAY"
|
|
@@ -66,8 +65,8 @@ export interface KountParams {
|
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
export interface KoinParams {
|
|
68
|
+
id: string;
|
|
69
69
|
orgId: string;
|
|
70
|
-
sessionId?: string;
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
export interface KondutoParams {
|
|
@@ -96,5 +95,4 @@ export type InitFraudProvidersProps = {
|
|
|
96
95
|
KOUNT: KountParams;
|
|
97
96
|
KONDUTO: KondutoParams;
|
|
98
97
|
RISKIFIED: RiskifiedParams;
|
|
99
|
-
KOIN: KoinParams;
|
|
100
98
|
};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import * as WebBrowser from 'expo-web-browser';
|
|
4
|
-
import { Platform } from 'react-native';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* This class is used to open a browser in a SafariView Controller (iOS) or
|
|
8
|
-
* a Chrome Custom Tab (Android) depending on the platform.
|
|
9
|
-
*
|
|
10
|
-
* It is used to open the external URLs in the DEUNA widget.
|
|
11
|
-
*/
|
|
12
|
-
class CrossPlatformBrowser {
|
|
13
|
-
initialized = false;
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the browser
|
|
16
|
-
*/
|
|
17
|
-
async initialize() {
|
|
18
|
-
if (this.initialized) return;
|
|
19
|
-
await WebBrowser.maybeCompleteAuthSession();
|
|
20
|
-
this.initialized = true;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Open an URL in a SafariView Controller (iOS) or a Chrome Custom Tab (Android) depending on the platform
|
|
25
|
-
* @param url - The URL to open
|
|
26
|
-
*/
|
|
27
|
-
async openBrowser(url) {
|
|
28
|
-
try {
|
|
29
|
-
await this.initialize();
|
|
30
|
-
await WebBrowser.openBrowserAsync(url);
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error('Error opening browser', error);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Close the browser
|
|
38
|
-
*/
|
|
39
|
-
async closeBrowser() {
|
|
40
|
-
if (Platform.OS !== 'ios') {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
try {
|
|
44
|
-
await WebBrowser.dismissBrowser();
|
|
45
|
-
} catch (error) {
|
|
46
|
-
console.error('Error closing browser', error);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
export const crossPlatformBrowser = new CrossPlatformBrowser();
|
|
51
|
-
//# sourceMappingURL=CrossPlatformBrowser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["WebBrowser","Platform","CrossPlatformBrowser","initialized","initialize","maybeCompleteAuthSession","openBrowser","url","openBrowserAsync","error","console","closeBrowser","OS","dismissBrowser","crossPlatformBrowser"],"sourceRoot":"../../../src","sources":["helpers/CrossPlatformBrowser.ts"],"mappings":";;AAAA,OAAO,KAAKA,UAAU,MAAM,kBAAkB;AAC9C,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,oBAAoB,CAAC;EACjBC,WAAW,GAAG,KAAK;EAC3B;AACF;AACA;EACE,MAAMC,UAAUA,CAAA,EAAG;IACjB,IAAI,IAAI,CAACD,WAAW,EAAE;IACtB,MAAMH,UAAU,CAACK,wBAAwB,CAAC,CAAC;IAC3C,IAAI,CAACF,WAAW,GAAG,IAAI;EACzB;;EAEA;AACF;AACA;AACA;EACE,MAAMG,WAAWA,CAACC,GAAW,EAAE;IAC7B,IAAI;MACF,MAAM,IAAI,CAACH,UAAU,CAAC,CAAC;MACvB,MAAMJ,UAAU,CAACQ,gBAAgB,CAACD,GAAG,CAAC;IACxC,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;IAC/C;EACF;;EAEA;AACF;AACA;EACE,MAAME,YAAYA,CAAA,EAAG;IACnB,IAAIV,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;MACzB;IACF;IACA,IAAI;MACF,MAAMZ,UAAU,CAACa,cAAc,CAAC,CAAC;IACnC,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;IAC/C;EACF;AACF;AAEA,OAAO,MAAMK,oBAAoB,GAAG,IAAIZ,oBAAoB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This class is used to open a browser in a SafariView Controller (iOS) or
|
|
3
|
-
* a Chrome Custom Tab (Android) depending on the platform.
|
|
4
|
-
*
|
|
5
|
-
* It is used to open the external URLs in the DEUNA widget.
|
|
6
|
-
*/
|
|
7
|
-
declare class CrossPlatformBrowser {
|
|
8
|
-
private initialized;
|
|
9
|
-
/**
|
|
10
|
-
* Initialize the browser
|
|
11
|
-
*/
|
|
12
|
-
initialize(): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Open an URL in a SafariView Controller (iOS) or a Chrome Custom Tab (Android) depending on the platform
|
|
15
|
-
* @param url - The URL to open
|
|
16
|
-
*/
|
|
17
|
-
openBrowser(url: string): Promise<void>;
|
|
18
|
-
/**
|
|
19
|
-
* Close the browser
|
|
20
|
-
*/
|
|
21
|
-
closeBrowser(): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export declare const crossPlatformBrowser: CrossPlatformBrowser;
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=CrossPlatformBrowser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CrossPlatformBrowser.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/CrossPlatformBrowser.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,cAAM,oBAAoB;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B;;OAEG;IACG,UAAU;IAMhB;;;OAGG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM;IAS7B;;OAEG;IACG,YAAY;CAUnB;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import * as WebBrowser from 'expo-web-browser';
|
|
2
|
-
import { Platform } from 'react-native';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* This class is used to open a browser in a SafariView Controller (iOS) or
|
|
6
|
-
* a Chrome Custom Tab (Android) depending on the platform.
|
|
7
|
-
*
|
|
8
|
-
* It is used to open the external URLs in the DEUNA widget.
|
|
9
|
-
*/
|
|
10
|
-
class CrossPlatformBrowser {
|
|
11
|
-
private initialized = false;
|
|
12
|
-
/**
|
|
13
|
-
* Initialize the browser
|
|
14
|
-
*/
|
|
15
|
-
async initialize() {
|
|
16
|
-
if (this.initialized) return;
|
|
17
|
-
await WebBrowser.maybeCompleteAuthSession();
|
|
18
|
-
this.initialized = true;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Open an URL in a SafariView Controller (iOS) or a Chrome Custom Tab (Android) depending on the platform
|
|
23
|
-
* @param url - The URL to open
|
|
24
|
-
*/
|
|
25
|
-
async openBrowser(url: string) {
|
|
26
|
-
try {
|
|
27
|
-
await this.initialize();
|
|
28
|
-
await WebBrowser.openBrowserAsync(url);
|
|
29
|
-
} catch (error) {
|
|
30
|
-
console.error('Error opening browser', error);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Close the browser
|
|
36
|
-
*/
|
|
37
|
-
async closeBrowser() {
|
|
38
|
-
if (Platform.OS !== 'ios') {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
await WebBrowser.dismissBrowser();
|
|
43
|
-
} catch (error) {
|
|
44
|
-
console.error('Error closing browser', error);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const crossPlatformBrowser = new CrossPlatformBrowser();
|