@deuna/react-native-sdk 1.0.3 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/lib/module/DeunaSDK.js +87 -78
  2. package/lib/module/DeunaSDK.js.map +1 -1
  3. package/lib/module/components/DeunaWidget.js +27 -25
  4. package/lib/module/components/DeunaWidget.js.map +1 -1
  5. package/lib/module/components/ExternalUrlWebView.js +56 -0
  6. package/lib/module/components/ExternalUrlWebView.js.map +1 -0
  7. package/lib/module/controllers/BaseWebViewController.js +59 -23
  8. package/lib/module/controllers/BaseWebViewController.js.map +1 -1
  9. package/lib/module/controllers/ElementsWidgetController.js +2 -3
  10. package/lib/module/controllers/ElementsWidgetController.js.map +1 -1
  11. package/lib/module/controllers/{OpenInNewTabController.js → ExternalUrlController.js} +4 -4
  12. package/lib/module/controllers/ExternalUrlController.js.map +1 -0
  13. package/lib/module/controllers/PaymentWidgetController.js +2 -2
  14. package/lib/module/controllers/PaymentWidgetController.js.map +1 -1
  15. package/lib/module/helpers/Completer.js +2 -2
  16. package/lib/module/helpers/Completer.js.map +1 -1
  17. package/lib/module/helpers/CrossPlatformBrowser.js +51 -0
  18. package/lib/module/helpers/CrossPlatformBrowser.js.map +1 -0
  19. package/lib/module/helpers/ExternalUrlHelper.js +96 -0
  20. package/lib/module/helpers/ExternalUrlHelper.js.map +1 -0
  21. package/lib/module/helpers/ViewManager.js +32 -0
  22. package/lib/module/helpers/ViewManager.js.map +1 -0
  23. package/lib/module/helpers/{getController.js → buildDeunaWidgetController.js} +20 -10
  24. package/lib/module/helpers/buildDeunaWidgetController.js.map +1 -0
  25. package/lib/module/helpers/getSubmitStrategy.js +1 -1
  26. package/lib/module/helpers/getSubmitStrategy.js.map +1 -1
  27. package/lib/module/interfaces/constants.js +1 -0
  28. package/lib/module/interfaces/constants.js.map +1 -1
  29. package/lib/module/interfaces/types.js.map +1 -1
  30. package/lib/module/types/base.js.map +1 -1
  31. package/lib/module/types/envs.js +48 -0
  32. package/lib/module/types/envs.js.map +1 -0
  33. package/lib/module/types/fraudProviders.js +4 -0
  34. package/lib/module/types/fraudProviders.js.map +1 -0
  35. package/lib/module/types/helpers/buildElementsLink.js +15 -6
  36. package/lib/module/types/helpers/buildElementsLink.js.map +1 -1
  37. package/lib/module/types/helpers/buildPaymentLink.js +7 -3
  38. package/lib/module/types/helpers/buildPaymentLink.js.map +1 -1
  39. package/lib/module/types/helpers/buildVoucherLink.js +3 -1
  40. package/lib/module/types/helpers/buildVoucherLink.js.map +1 -1
  41. package/lib/module/types/helpers/constants.js +4 -0
  42. package/lib/module/types/helpers/constants.js.map +1 -0
  43. package/lib/module/types/helpers/urlConfig.js +1 -1
  44. package/lib/module/types/helpers/urlConfig.js.map +1 -1
  45. package/lib/module/types/utils/addSearchParamWhen.js +8 -0
  46. package/lib/module/types/utils/addSearchParamWhen.js.map +1 -0
  47. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts +9 -11
  48. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
  49. package/lib/typescript/deuna-sdk-react-native/src/components/DeunaWidget.d.ts.map +1 -1
  50. package/lib/typescript/deuna-sdk-react-native/src/components/ExternalUrlWebView.d.ts +7 -0
  51. package/lib/typescript/deuna-sdk-react-native/src/components/ExternalUrlWebView.d.ts.map +1 -0
  52. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +9 -7
  53. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -1
  54. package/lib/typescript/deuna-sdk-react-native/src/controllers/ElementsWidgetController.d.ts.map +1 -1
  55. package/lib/typescript/deuna-sdk-react-native/src/controllers/{OpenInNewTabController.d.ts → ExternalUrlController.d.ts} +2 -2
  56. package/lib/typescript/deuna-sdk-react-native/src/controllers/ExternalUrlController.d.ts.map +1 -0
  57. package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts +25 -0
  58. package/lib/typescript/deuna-sdk-react-native/src/helpers/CrossPlatformBrowser.d.ts.map +1 -0
  59. package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts +48 -0
  60. package/lib/typescript/deuna-sdk-react-native/src/helpers/ExternalUrlHelper.d.ts.map +1 -0
  61. package/lib/typescript/deuna-sdk-react-native/src/helpers/ViewManager.d.ts +19 -0
  62. package/lib/typescript/deuna-sdk-react-native/src/helpers/ViewManager.d.ts.map +1 -0
  63. package/lib/typescript/deuna-sdk-react-native/src/helpers/{getController.d.ts → buildDeunaWidgetController.d.ts} +4 -2
  64. package/lib/typescript/deuna-sdk-react-native/src/helpers/buildDeunaWidgetController.d.ts.map +1 -0
  65. package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts +1 -0
  66. package/lib/typescript/deuna-sdk-react-native/src/interfaces/constants.d.ts.map +1 -1
  67. package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts +4 -0
  68. package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts.map +1 -1
  69. package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts +2 -0
  70. package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts.map +1 -1
  71. package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts +45 -0
  72. package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts.map +1 -0
  73. package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts +68 -0
  74. package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts.map +1 -0
  75. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts +15 -0
  76. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts.map +1 -1
  77. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts.map +1 -1
  78. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildVoucherLink.d.ts.map +1 -1
  79. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/constants.d.ts +2 -0
  80. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/constants.d.ts.map +1 -0
  81. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts +1 -0
  82. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/urlConfig.d.ts.map +1 -1
  83. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts +8 -0
  84. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/callbacks.d.ts.map +1 -1
  85. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts +2 -0
  86. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts.map +1 -1
  87. package/lib/typescript/deuna-sdk-react-native/src/types/utils/addSearchParamWhen.d.ts +3 -0
  88. package/lib/typescript/deuna-sdk-react-native/src/types/utils/addSearchParamWhen.d.ts.map +1 -0
  89. package/package.json +3 -1
  90. package/src/DeunaSDK.ts +103 -90
  91. package/src/components/DeunaWidget.tsx +38 -35
  92. package/src/components/ExternalUrlWebView.tsx +65 -0
  93. package/src/controllers/BaseWebViewController.ts +70 -29
  94. package/src/controllers/ElementsWidgetController.ts +2 -3
  95. package/src/controllers/{OpenInNewTabController.ts → ExternalUrlController.ts} +3 -3
  96. package/src/controllers/PaymentWidgetController.ts +2 -2
  97. package/src/helpers/Completer.ts +2 -2
  98. package/src/helpers/CrossPlatformBrowser.ts +49 -0
  99. package/src/helpers/ExternalUrlHelper.ts +118 -0
  100. package/src/helpers/ViewManager.ts +45 -0
  101. package/src/helpers/{getController.ts → buildDeunaWidgetController.ts} +41 -12
  102. package/src/helpers/getSubmitStrategy.ts +1 -1
  103. package/src/interfaces/constants.ts +2 -0
  104. package/src/interfaces/types.ts +4 -0
  105. package/src/types/base.ts +2 -0
  106. package/src/types/envs.ts +50 -0
  107. package/src/types/fraudProviders.ts +98 -0
  108. package/src/types/helpers/buildElementsLink.ts +19 -11
  109. package/src/types/helpers/buildPaymentLink.ts +7 -2
  110. package/src/types/helpers/buildVoucherLink.ts +2 -0
  111. package/src/types/helpers/constants.ts +1 -0
  112. package/src/types/helpers/urlConfig.ts +3 -1
  113. package/src/types/interfaces/callbacks.ts +10 -1
  114. package/src/types/interfaces/initWidgetBase.ts +2 -0
  115. package/src/types/utils/addSearchParamWhen.ts +11 -0
  116. package/lib/module/components/NewTabWebView.js +0 -56
  117. package/lib/module/components/NewTabWebView.js.map +0 -1
  118. package/lib/module/controllers/OpenInNewTabController.js.map +0 -1
  119. package/lib/module/helpers/getController.js.map +0 -1
  120. package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts +0 -7
  121. package/lib/typescript/deuna-sdk-react-native/src/components/NewTabWebView.d.ts.map +0 -1
  122. package/lib/typescript/deuna-sdk-react-native/src/controllers/OpenInNewTabController.d.ts.map +0 -1
  123. package/lib/typescript/deuna-sdk-react-native/src/helpers/getController.d.ts.map +0 -1
  124. package/src/components/NewTabWebView.tsx +0 -64
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/types/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/types/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ export declare enum Env {
2
+ Production = "production",
3
+ Staging = "staging",
4
+ Develop = "develop",
5
+ Sandbox = "sandbox",
6
+ local = "local"
7
+ }
8
+ export declare const env: {
9
+ production: string;
10
+ staging: string;
11
+ develop: string;
12
+ sandbox: string;
13
+ };
14
+ export declare const checkout: {
15
+ production: string;
16
+ staging: string;
17
+ develop: string;
18
+ sandbox: string;
19
+ };
20
+ export declare const fingerprintjsEnv: {
21
+ production: string;
22
+ staging: string;
23
+ develop: string;
24
+ sandbox: string;
25
+ };
26
+ export declare const storageSite: {
27
+ production: string;
28
+ staging: string;
29
+ develop: string;
30
+ sandbox: string;
31
+ local: string;
32
+ };
33
+ export declare const siftCred: {
34
+ production: string;
35
+ staging: string;
36
+ develop: string;
37
+ sandbox: string;
38
+ };
39
+ export declare const proxyUrls: {
40
+ URL: string;
41
+ FPJS_BEHAVIOR_PATH: string;
42
+ FPJS_AGENT_DOWNLOAD_PATH: string;
43
+ FPJS_GET_RESULT_PATH: string;
44
+ };
45
+ //# sourceMappingURL=envs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envs.d.ts","sourceRoot":"","sources":["../../../../../src/types/envs.ts"],"names":[],"mappings":"AAAA,oBAAY,GAAG;IACb,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"}
@@ -0,0 +1,68 @@
1
+ import { Env } from "./envs";
2
+ export type Providers = "CLEARSALE" | "CLEARSALE-BRASIL" | "CYBERSOURCE" | "MERCADOPAGO" | "SIFT" | "SIGNIFYD" | "STRIPE" | "KOUNT" | "KONDUTO" | "OPENPAY" | "RISKIFIED";
3
+ export interface FraudProviderParams<T> {
4
+ sessionId: string;
5
+ env: Env;
6
+ params: T;
7
+ }
8
+ export type FraudProvider<T, Provider extends Providers> = (params: FraudProviderParams<T>) => Promise<{
9
+ [key in Provider]?: string | string[];
10
+ } | undefined>;
11
+ export interface RiskifiedParams {
12
+ storeDomain: string;
13
+ }
14
+ export interface CyberSourceParams {
15
+ orgId: string;
16
+ merchantId: string;
17
+ }
18
+ export interface SignifydParams {
19
+ account: string;
20
+ email: string;
21
+ }
22
+ export interface SiftParams {
23
+ accountId: string;
24
+ restApiKey: string;
25
+ }
26
+ export interface ClearSaleParams {
27
+ clientId: string;
28
+ }
29
+ export interface StripeParams {
30
+ apiKey: string;
31
+ }
32
+ export interface KountParams {
33
+ dataCollectorUrl: string;
34
+ merchantId: string;
35
+ clientId: string;
36
+ environment: string;
37
+ version: string;
38
+ isSinglePageApp: boolean;
39
+ }
40
+ export interface KoinParams {
41
+ id: string;
42
+ orgId: string;
43
+ }
44
+ export interface KondutoParams {
45
+ publicKey: string;
46
+ }
47
+ export interface OpenPayParams {
48
+ merchantId: string;
49
+ publicApiKey: string;
50
+ sandboxMode?: boolean;
51
+ }
52
+ export type FraudProvidersObject = {
53
+ [key in Providers]: FraudProvider<any, key>;
54
+ };
55
+ export type InitFraudProvidersProps = {
56
+ CLEARSALE: ClearSaleParams;
57
+ "CLEARSALE-BRASIL": ClearSaleParams;
58
+ OPENPAY: OpenPayParams;
59
+ CYBERSOURCE: CyberSourceParams;
60
+ MERCADOPAGO: {};
61
+ SIFT: SiftParams;
62
+ SIGNIFYD: SignifydParams;
63
+ STRIPE: StripeParams;
64
+ KOUNT: KountParams;
65
+ KONDUTO: KondutoParams;
66
+ RISKIFIED: RiskifiedParams;
67
+ };
68
+ //# sourceMappingURL=fraudProviders.d.ts.map
@@ -0,0 +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,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"}
@@ -1,4 +1,19 @@
1
1
  import { UrlConfig } from "./urlConfig";
2
+ export interface SearchParams {
3
+ publicApiKey: string;
4
+ orderToken: string;
5
+ email: string;
6
+ firstName: string;
7
+ lastName: string;
8
+ int: string;
9
+ language: string;
10
+ cssFile?: string;
11
+ userToken?: string;
12
+ showSavedCardsFlow?: string;
13
+ showDefaultCardFlow?: string;
14
+ disableInstallments?: string;
15
+ platform?: string;
16
+ }
2
17
  /**
3
18
  * Builds a complete Elements widget URL with all necessary parameters
4
19
  * @param config - Configuration object for building the Elements URL
@@ -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,MAmBrD,CAAC"}
1
+ {"version":3,"file":"buildElementsLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildElementsLink.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AAkB5D,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAqED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,SAAS,KAAG,MAmBrD,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,MAuCpD,CAAC"}
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;AAUrB,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,MA2CpD,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,MAiCpD,CAAC"}
1
+ {"version":3,"file":"buildVoucherLink.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/buildVoucherLink.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AAS5D,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,MAkCpD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const PLATFORM_DEFAULT = "custom";
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,WAAW,CAAC"}
@@ -25,6 +25,7 @@ export interface UrlConfig {
25
25
  behavior?: BehaviorWidget;
26
26
  sessionId: string;
27
27
  types?: ElementWidgetType[];
28
+ platform?: string;
28
29
  }
29
30
  export interface ElementWidgetType {
30
31
  name: ElementWidgetTypeName;
@@ -1 +1 @@
1
- {"version":3,"file":"urlConfig.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/urlConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9E,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,SAAS,EACjB,cAAc,eAAe,SAS9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WAQ/C,CAAC;AAEF,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IAExB,EAAE,CAAC,EAAE,MAAM,CAAC;IAGZ,GAAG,CAAC,EAAE,WAAW,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;IAGnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAElC,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAEtC,gBAAgB,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAEtD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,KAAK,qBAAqB,GAAG,OAAO,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"urlConfig.d.ts","sourceRoot":"","sources":["../../../../../../src/types/helpers/urlConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAI9E,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,SAAS,EACjB,cAAc,eAAe,SAS9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WAQ/C,CAAC;AAEF,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IAExB,EAAE,CAAC,EAAE,MAAM,CAAC;IAGZ,GAAG,CAAC,EAAE,WAAW,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;IAGnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAElC,YAAY,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAEtC,gBAAgB,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAEtD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;IAElB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,KAAK,qBAAqB,GAAG,OAAO,GAAG,cAAc,CAAC"}
@@ -15,11 +15,16 @@ interface OnInstallmentSelectedPayload {
15
15
  cardBin: string;
16
16
  installmentPlanOptionId: string;
17
17
  }
18
+ interface Dimensions {
19
+ height: number;
20
+ width: number;
21
+ }
18
22
  interface BaseCallbacks {
19
23
  onSuccess?: (data: Json) => void;
20
24
  onError?: (data: OnError) => void;
21
25
  onClosed?: (action: ClosedAction) => void;
22
26
  onEventDispatch?: (event: string, payload: Json) => void;
27
+ onResize?: (dimensions: Dimensions) => void;
23
28
  }
24
29
  export interface PaymentWidgetCallbacks extends BaseCallbacks {
25
30
  onCardBinDetected?: (data: OnCardBinDetected) => void;
@@ -33,6 +38,9 @@ export interface ElementsWidgetCallbacks extends BaseCallbacks {
33
38
  export interface NextActionWidgetCallbacks extends BaseCallbacks {
34
39
  }
35
40
  export interface VoucherWidgetCallbacks extends BaseCallbacks {
41
+ onCardBinDetected?: (data: OnCardBinDetected) => void;
42
+ onInstallmentSelected?: (data: OnInstallmentSelectedPayload) => void;
43
+ onPaymentProcessing?: () => void;
36
44
  }
37
45
  export {};
38
46
  //# sourceMappingURL=callbacks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../../../../../../src/types/interfaces/callbacks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,cAAc,CAAC;AAEzD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACrE,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa;CAAG;AAEnE,MAAM,WAAW,sBAAuB,SAAQ,aAAa;CAAG"}
1
+ {"version":3,"file":"callbacks.d.ts","sourceRoot":"","sources":["../../../../../../src/types/interfaces/callbacks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,cAAc,CAAC;AAEzD,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,4BAA4B;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AACD,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACrE,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,4BAA4B,KAAK,IAAI,CAAC;CACtE;AAED,MAAM,WAAW,yBAA0B,SAAQ,aAAa;CAAG;AAEnE,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACrE,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC"}
@@ -21,6 +21,7 @@ interface WidgetExperience {
21
21
  userExperience: {
22
22
  showSavedCardsFlow: boolean;
23
23
  defaultCardFlow: boolean;
24
+ disableInstallments?: boolean;
24
25
  };
25
26
  flags: {
26
27
  allowSaveUserInfo: boolean;
@@ -67,6 +68,7 @@ export interface InitWidgetBase {
67
68
  userInfo?: Partial<UserInfo>;
68
69
  behavior?: BehaviorWidget;
69
70
  domain?: string;
71
+ platform?: string;
70
72
  hidePayButton?: boolean;
71
73
  callbacks?: PaymentWidgetCallbacks & ElementsWidgetCallbacks & NextActionWidgetCallbacks & VoucherWidgetCallbacks;
72
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initWidgetBase.d.ts","sourceRoot":"","sources":["../../../../../../src/types/interfaces/initWidgetBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,UAAU,QAAQ;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,cAAc,EAAE;QACd,kBAAkB,EAAE,OAAO,CAAC;QAC5B,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE;QACL,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,gBAAgB,EAAE,OAAO,CAAC;QAC1B,cAAc,EAAE,OAAO,CAAC;QAExB,MAAM,EAAE,GAAG,EAAE,CAAC;KACf,CAAC;CACH;AACD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE;QACf,UAAU,CAAC,EAAE,kBAAkB,CAAC;QAChC,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,YAAY,CAAC,EAAE,oBAAoB,CAAC;QACpC,QAAQ,CAAC,EAAE,8BAA8B,CAAC;KAC3C,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,sBAAsB,GAChC,uBAAuB,GACvB,yBAAyB,GACzB,sBAAsB,CAAC;CAC1B;AAGD,KAAK,kCAAkC,GAAG,SAAS,GAAG,YAAY,CAAC;AACnE,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,kCAAkC,CAAC;CAC1C"}
1
+ {"version":3,"file":"initWidgetBase.d.ts","sourceRoot":"","sources":["../../../../../../src/types/interfaces/initWidgetBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SearchParams } from "../helpers/buildElementsLink";
2
+ export declare const addSearchParamWhen: (condition: boolean | undefined, paramName: keyof SearchParams, searchParams: SearchParams) => void;
3
+ //# sourceMappingURL=addSearchParamWhen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addSearchParamWhen.d.ts","sourceRoot":"","sources":["../../../../../../src/types/utils/addSearchParamWhen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,eAAO,MAAM,kBAAkB,GAC7B,WAAW,OAAO,GAAG,SAAS,EAC9B,WAAW,MAAM,YAAY,EAC7B,cAAc,YAAY,SAK3B,CAAC"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@deuna/react-native-sdk",
3
- "version": "1.0.3",
3
+ "version": "1.0.6",
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": "*",
9
10
  "react": "*",
10
11
  "react-native": "*",
11
12
  "react-native-webview": "*"
@@ -82,6 +83,7 @@
82
83
  "eslint": "^9.22.0",
83
84
  "eslint-config-prettier": "^10.1.1",
84
85
  "eslint-plugin-prettier": "^5.2.3",
86
+ "expo-web-browser": "14.1.6",
85
87
  "jest": "^29.7.0",
86
88
  "prettier": "^3.0.3",
87
89
  "react": "18.3.1",
package/src/DeunaSDK.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  BaseDeuna,
3
+ ClosedAction,
3
4
  CustomStyles,
4
5
  GetStateFn,
5
6
  InitElementsWidgetParams,
@@ -18,21 +19,25 @@ import {
18
19
  VoucherWidgetCallbacks,
19
20
  } from './types';
20
21
  import {
21
- BaseWebViewController,
22
22
  DeunaWebViewController,
23
23
  WebViewDelegate,
24
24
  } from './controllers/BaseWebViewController';
25
25
  import { PaymentWidgetController } from './controllers/PaymentWidgetController';
26
- import { OpenInNewTabController } from './controllers/OpenInNewTabController';
27
- import { getWidgetController } from './helpers/getController';
28
- import { Completer } from './helpers/Completer';
26
+ import { buildDeunaWidgetController } from './helpers/buildDeunaWidgetController';
29
27
  import { ElementsWidgetController } from './controllers/ElementsWidgetController';
30
28
  import { DownloadType, Mode, OnDownloadFile } from './interfaces/types';
31
- import { Platform } from 'react-native';
32
29
  import { DeviceFingerprintController } from './controllers/DeviceFingerprintController';
33
- import { DEVICE_FINGERPRINT_URL } from './interfaces/constants';
30
+ import {
31
+ DEVICE_FINGERPRINT_URL,
32
+ DOMAINS_MUST_BE_USE_CROSS_PLATFORM_BROWSER,
33
+ } from './interfaces/constants';
34
34
  import { SubmitStrategy } from './helpers/SubmitStrategy';
35
35
  import { getSubmitStrategy } from './helpers/getSubmitStrategy';
36
+ import { WebViewManager } from './helpers/ViewManager';
37
+ import {
38
+ ExternalUrlBrowser,
39
+ ExternalUrlHelper,
40
+ } from './helpers/ExternalUrlHelper';
36
41
 
37
42
  export class DeunaSDK extends BaseDeuna {
38
43
  constructor(
@@ -42,8 +47,6 @@ export class DeunaSDK extends BaseDeuna {
42
47
  super();
43
48
  }
44
49
 
45
- mode: Mode | null = null;
46
-
47
50
  setCustomStyleFn?: SetCustomStyle | undefined;
48
51
  refetchOrderFn?: RefetchOrder | undefined;
49
52
  getStateFn?: GetStateFn | undefined;
@@ -52,23 +55,12 @@ export class DeunaSDK extends BaseDeuna {
52
55
  closeFn?: (() => void) | undefined;
53
56
 
54
57
  private listeners: Set<() => void> = new Set();
55
- webViewController: DeunaWebViewController | null = null;
56
- newTabWebViewController: BaseWebViewController | null = null;
57
- deviceFingerprintController: DeviceFingerprintController | null = null;
58
- submitStrategy: SubmitStrategy | null = null;
59
58
 
60
- modalDismissPromise: Completer<void> | null = null;
61
- newTabModalDismissPromise: Completer<void> | null = null;
59
+ deunaWidgetManager = new WebViewManager<DeunaWebViewController>();
60
+ externalUrlHelper = new ExternalUrlHelper();
62
61
 
63
- get safeWebViewController(): DeunaWebViewController {
64
- if (!this.webViewController) {
65
- const errorMessage =
66
- 'A variant of the init method must be called first. Please call initPaymentWidget, initVoucherWidget, or another init method before using this functionality.';
67
- console.error(errorMessage);
68
- throw new Error(errorMessage);
69
- }
70
- return this.webViewController;
71
- }
62
+ deviceFingerprintController: DeviceFingerprintController | null = null;
63
+ submitStrategy: SubmitStrategy | null = null;
72
64
 
73
65
  /**
74
66
  * Generates a device fingerprint, creates a invisible webview to get the device fingerprint
@@ -108,12 +100,11 @@ export class DeunaSDK extends BaseDeuna {
108
100
  mode?: Mode;
109
101
  }): void => {
110
102
  const { controller, mode } = params;
111
- this.mode = mode ?? Mode.MODAL;
112
- if (this.mode === Mode.MODAL && Platform.OS === 'ios') {
113
- this.modalDismissPromise = new Completer<void>();
114
- }
115
- this.webViewController = controller;
116
- this.webViewController.delegate = this.buildDelegate();
103
+ this.deunaWidgetManager.initialize({
104
+ controller,
105
+ mode: mode ?? Mode.MODAL,
106
+ delegate: this.buildDelegate(),
107
+ });
117
108
  this.notifyListeners();
118
109
  };
119
110
 
@@ -129,9 +120,10 @@ export class DeunaSDK extends BaseDeuna {
129
120
  }
130
121
  ) {
131
122
  this.setWidgetController({
132
- controller: getWidgetController(this.config, {
123
+ controller: buildDeunaWidgetController(this.config, {
133
124
  widget: 'payment',
134
125
  ...props,
126
+ sdkInstance: this,
135
127
  }),
136
128
  mode: props.mode,
137
129
  });
@@ -146,7 +138,7 @@ export class DeunaSDK extends BaseDeuna {
146
138
  props: InitElementsWidgetParams & { mode?: Mode; sessionId?: string }
147
139
  ) {
148
140
  this.setWidgetController({
149
- controller: getWidgetController(this.config, {
141
+ controller: buildDeunaWidgetController(this.config, {
150
142
  widget: 'elements',
151
143
  ...props,
152
144
  }),
@@ -161,7 +153,7 @@ export class DeunaSDK extends BaseDeuna {
161
153
  */
162
154
  async initNextAction(props: InitNextActionWidgetParams & { mode: Mode }) {
163
155
  this.setWidgetController({
164
- controller: getWidgetController(this.config, {
156
+ controller: buildDeunaWidgetController(this.config, {
165
157
  widget: 'nextAction',
166
158
  ...props,
167
159
  }),
@@ -181,7 +173,7 @@ export class DeunaSDK extends BaseDeuna {
181
173
  }
182
174
  ) {
183
175
  this.setWidgetController({
184
- controller: getWidgetController(this.config, {
176
+ controller: buildDeunaWidgetController(this.config, {
185
177
  widget: 'voucher',
186
178
  ...props,
187
179
  }),
@@ -190,7 +182,7 @@ export class DeunaSDK extends BaseDeuna {
190
182
  }
191
183
 
192
184
  isValid = async (): Promise<boolean> => {
193
- return this.safeWebViewController.isValid();
185
+ return this.deunaWidgetManager.controller.isValid();
194
186
  };
195
187
 
196
188
  submit = async (): Promise<SubmitResult> => {
@@ -198,7 +190,7 @@ export class DeunaSDK extends BaseDeuna {
198
190
  const submitStrategy = await getSubmitStrategy(this);
199
191
 
200
192
  if (!submitStrategy) {
201
- return this.safeWebViewController.submit();
193
+ return this.deunaWidgetManager.controller.submit();
202
194
  }
203
195
 
204
196
  this.submitStrategy = submitStrategy;
@@ -207,57 +199,63 @@ export class DeunaSDK extends BaseDeuna {
207
199
  };
208
200
 
209
201
  setCustomStyle = async (style: Partial<CustomStyles>): Promise<void> => {
210
- return this.safeWebViewController.setCustomStyle(style);
202
+ return this.deunaWidgetManager.controller.setCustomStyle(style);
211
203
  };
212
204
 
213
205
  refetchOrder = async (): Promise<Json | null> => {
214
- return this.safeWebViewController.refetchOrder();
206
+ return this.deunaWidgetManager.controller.refetchOrder();
215
207
  };
216
208
 
217
209
  getWidgetState = async (): Promise<State> => {
218
- return this.safeWebViewController.getWidgetState();
210
+ return this.deunaWidgetManager.controller.getWidgetState();
219
211
  };
220
212
 
221
213
  /**
222
214
  * Closes the DEUNA widget and releases the resources
223
215
  */
224
216
  close = async (): Promise<void> => {
225
- if (this.webViewController instanceof PaymentWidgetController) {
226
- this.webViewController.callbacks.onClosed?.(
227
- this.webViewController.closedAction
228
- );
229
- } else if (this.webViewController instanceof ElementsWidgetController) {
230
- this.webViewController.callbacks.onClosed?.(
231
- this.webViewController.closedAction
232
- );
217
+ if (!this.deunaWidgetManager.isInitialized) {
218
+ return;
233
219
  }
234
- this.onCloseNewTab();
235
- await this.newTabModalDismissPromise?.wait;
236
- this.newTabWebViewController?.dispose();
237
220
 
238
- this.webViewController?.dispose();
239
- // reset all prop
240
- this.newTabWebViewController = null;
241
- this.webViewController = null;
242
- this.mode = null;
243
-
244
- await this.submitStrategy?.deunaSDK.close();
245
- this.submitStrategy = null;
246
-
247
- this.notifyListeners();
248
-
249
- // if the widget was shown in modal mode, wait for the modal to be dismissed
250
- await this.modalDismissPromise?.wait;
251
- this.modalDismissPromise = null;
252
- this.onDestroyed?.();
253
- };
254
-
255
- onModalDismissed = () => {
256
- this.modalDismissPromise?.complete();
257
- };
258
-
259
- onNewTabDismissed = () => {
260
- this.newTabModalDismissPromise?.complete();
221
+ try {
222
+ let onClosedCallback: ((action: ClosedAction) => void) | undefined;
223
+ const closedAction = this.deunaWidgetManager.controller.closedAction;
224
+
225
+ if (
226
+ this.deunaWidgetManager.controller instanceof PaymentWidgetController
227
+ ) {
228
+ onClosedCallback =
229
+ this.deunaWidgetManager.controller.callbacks.onClosed;
230
+ } else if (
231
+ this.deunaWidgetManager.controller instanceof ElementsWidgetController
232
+ ) {
233
+ onClosedCallback =
234
+ this.deunaWidgetManager.controller.callbacks.onClosed;
235
+ }
236
+
237
+ // If the external url was opened in a Safari View Controller or a Custom Chrome Tab
238
+ // we need to wait until the browser is dismissed
239
+ await this.externalUrlHelper.waitForClose();
240
+
241
+ // Destroy the main webview and dismiss the modal
242
+ this.deunaWidgetManager.destroy();
243
+
244
+ // Close the submit strategy if it exists
245
+ await this.submitStrategy?.deunaSDK.close();
246
+ this.submitStrategy = null;
247
+
248
+ // Notify listeners that the widget has been closed
249
+ this.notifyListeners();
250
+
251
+ // Notify the user that the widget has been closed
252
+ this.onDestroyed?.();
253
+
254
+ // Notify the widget that the user has closed the widget
255
+ onClosedCallback?.(closedAction);
256
+ } catch (error) {
257
+ console.error('Error closing the widget', error);
258
+ }
261
259
  };
262
260
 
263
261
  addListener = (listener: () => void) => {
@@ -273,21 +271,22 @@ export class DeunaSDK extends BaseDeuna {
273
271
  };
274
272
 
275
273
  private notifyDownloadFile = (url: string) => {
276
- if (this.safeWebViewController instanceof PaymentWidgetController) {
277
- this.safeWebViewController.callbacks.onDownloadFile?.({
274
+ if (this.deunaWidgetManager.controller instanceof PaymentWidgetController) {
275
+ this.deunaWidgetManager.controller.callbacks.onDownloadFile?.({
278
276
  type: DownloadType.URL,
279
277
  data: url,
280
278
  });
281
279
  }
282
280
  };
283
281
 
284
- onCloseNewTab = () => {
285
- if (this.webViewController) {
286
- this.webViewController.redirectUrl = null;
282
+ /**
283
+ * Closes the external URL Webview
284
+ */
285
+ onCloseExternalUrl = async () => {
286
+ if (this.externalUrlHelper.externalUrlWebViewController) {
287
+ await this.externalUrlHelper.closeWebView();
288
+ this.notifyListeners();
287
289
  }
288
- this.newTabWebViewController?.dispose();
289
- this.newTabWebViewController = null;
290
- this.notifyListeners();
291
290
  };
292
291
 
293
292
  /**
@@ -298,19 +297,33 @@ export class DeunaSDK extends BaseDeuna {
298
297
  */
299
298
  buildDelegate = (): WebViewDelegate => {
300
299
  return {
301
- onOpenInNewTab: (url) => {
302
- this.newTabWebViewController = new OpenInNewTabController(url);
303
- if (Platform.OS === 'ios') {
304
- this.newTabModalDismissPromise = new Completer<void>();
300
+ onOpenExternalUrl: (url) => {
301
+ try {
302
+ const host = new URL(url).host;
303
+ let browser = ExternalUrlBrowser.WEB_VIEW;
304
+ // 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 DOMAINS_MUST_BE_USE_CROSS_PLATFORM_BROWSER) {
306
+ if (host.includes(domain)) {
307
+ browser = ExternalUrlBrowser.CROSS_PLATFORM_BROWSER;
308
+ break;
309
+ }
310
+ }
311
+
312
+ this.externalUrlHelper.openUrl({
313
+ url,
314
+ browser,
315
+ delegate: {
316
+ onCloseExternalUrl: this.onCloseExternalUrl,
317
+ onFileDownload: this.notifyDownloadFile,
318
+ },
319
+ });
320
+ this.notifyListeners();
321
+ } catch (error) {
322
+ console.error('Error opening external URL', error);
305
323
  }
306
- this.newTabWebViewController.delegate = {
307
- onFileDownload: this.notifyDownloadFile,
308
- onNewTabWindowClose: this.onCloseNewTab,
309
- };
310
- this.notifyListeners();
311
324
  },
325
+ onCloseExternalUrl: this.onCloseExternalUrl,
312
326
  onCloseButtonPressed: this.close, // Close the payment widget when the user presses the close button
313
- onCloseSubWebView: this.onCloseNewTab, // Close the new tab web view when the DEUNA widget emits an error event or when the purchase is successful
314
327
  onFileDownload: this.notifyDownloadFile, // Notify the user when a request to download a file is made
315
328
  };
316
329
  };