@deuna/react-native-sdk 1.0.4 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/lib/module/DeunaSDK.js +2 -1
  2. package/lib/module/DeunaSDK.js.map +1 -1
  3. package/lib/module/controllers/BaseWebViewController.js +44 -2
  4. package/lib/module/controllers/BaseWebViewController.js.map +1 -1
  5. package/lib/module/helpers/buildDeunaWidgetController.js +19 -9
  6. package/lib/module/helpers/buildDeunaWidgetController.js.map +1 -1
  7. package/lib/module/interfaces/types.js.map +1 -1
  8. package/lib/module/types/base.js.map +1 -1
  9. package/lib/module/types/env.js +7 -0
  10. package/lib/module/types/env.js.map +1 -1
  11. package/lib/module/types/envs.js +48 -0
  12. package/lib/module/types/envs.js.map +1 -0
  13. package/lib/module/types/fraudProviders.js +4 -0
  14. package/lib/module/types/fraudProviders.js.map +1 -0
  15. package/lib/module/types/helpers/buildElementsLink.js +12 -5
  16. package/lib/module/types/helpers/buildElementsLink.js.map +1 -1
  17. package/lib/module/types/helpers/buildPaymentLink.js +4 -2
  18. package/lib/module/types/helpers/buildPaymentLink.js.map +1 -1
  19. package/lib/module/types/utils/addSearchParamWhen.js +8 -0
  20. package/lib/module/types/utils/addSearchParamWhen.js.map +1 -0
  21. package/lib/typescript/deuna-sdk-react-native/src/DeunaSDK.d.ts.map +1 -1
  22. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts +5 -1
  23. package/lib/typescript/deuna-sdk-react-native/src/controllers/BaseWebViewController.d.ts.map +1 -1
  24. package/lib/typescript/deuna-sdk-react-native/src/helpers/buildDeunaWidgetController.d.ts +2 -0
  25. package/lib/typescript/deuna-sdk-react-native/src/helpers/buildDeunaWidgetController.d.ts.map +1 -1
  26. package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts +4 -0
  27. package/lib/typescript/deuna-sdk-react-native/src/interfaces/types.d.ts.map +1 -1
  28. package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts +2 -0
  29. package/lib/typescript/deuna-sdk-react-native/src/types/base.d.ts.map +1 -1
  30. package/lib/typescript/deuna-sdk-react-native/src/types/env.d.ts +6 -0
  31. package/lib/typescript/deuna-sdk-react-native/src/types/env.d.ts.map +1 -1
  32. package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts +45 -0
  33. package/lib/typescript/deuna-sdk-react-native/src/types/envs.d.ts.map +1 -0
  34. package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts +69 -0
  35. package/lib/typescript/deuna-sdk-react-native/src/types/fraudProviders.d.ts.map +1 -0
  36. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts +15 -0
  37. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildElementsLink.d.ts.map +1 -1
  38. package/lib/typescript/deuna-sdk-react-native/src/types/helpers/buildPaymentLink.d.ts.map +1 -1
  39. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts +1 -0
  40. package/lib/typescript/deuna-sdk-react-native/src/types/interfaces/initWidgetBase.d.ts.map +1 -1
  41. package/lib/typescript/deuna-sdk-react-native/src/types/utils/addSearchParamWhen.d.ts +3 -0
  42. package/lib/typescript/deuna-sdk-react-native/src/types/utils/addSearchParamWhen.d.ts.map +1 -0
  43. package/package.json +1 -1
  44. package/src/DeunaSDK.ts +1 -0
  45. package/src/controllers/BaseWebViewController.ts +49 -2
  46. package/src/helpers/buildDeunaWidgetController.ts +46 -12
  47. package/src/interfaces/types.ts +4 -0
  48. package/src/types/base.ts +2 -0
  49. package/src/types/env.ts +9 -1
  50. package/src/types/envs.ts +50 -0
  51. package/src/types/fraudProviders.ts +100 -0
  52. package/src/types/helpers/buildElementsLink.ts +15 -10
  53. package/src/types/helpers/buildPaymentLink.ts +5 -2
  54. package/src/types/interfaces/initWidgetBase.ts +1 -0
  55. package/src/types/utils/addSearchParamWhen.ts +11 -0
@@ -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,69 @@
1
+ import { Env } from "./envs";
2
+ export type Providers = "CLEARSALE" | "CLEARSALE-BRASIL" | "CYBERSOURCE" | "MERCADOPAGO" | "SIFT" | "SIGNIFYD" | "STRIPE" | "KOIN" | "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
+ orgId: string;
42
+ sessionId?: 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
+ KOIN: KoinParams;
68
+ };
69
+ //# 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,MAAM,GACN,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,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;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;IAC3B,IAAI,EAAE,UAAU,CAAC;CAClB,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;AAgG5D;;;;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;AAUrB,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,KAAG,MAwCpD,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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"initWidgetBase.d.ts","sourceRoot":"","sources":["../../../../../../src/types/interfaces/initWidgetBase.ts"],"names":[],"mappings":"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"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@deuna/react-native-sdk",
3
- "version": "1.0.4",
3
+ "version": "1.0.7",
4
4
  "description": "React Native SDK",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
package/src/DeunaSDK.ts CHANGED
@@ -123,6 +123,7 @@ export class DeunaSDK extends BaseDeuna {
123
123
  controller: buildDeunaWidgetController(this.config, {
124
124
  widget: 'payment',
125
125
  ...props,
126
+ sdkInstance: this,
126
127
  }),
127
128
  mode: props.mode,
128
129
  });
@@ -11,6 +11,8 @@ import {
11
11
  import { submitError, WidgetConfig } from '../interfaces';
12
12
  import { Platform } from 'react-native';
13
13
  import { ShouldStartLoadRequest } from 'react-native-webview/lib/WebViewTypes';
14
+ import { InitFraudProvidersProps } from '../types/fraudProviders';
15
+ import { DeunaSDK } from '../DeunaSDK';
14
16
 
15
17
  export interface WebViewDelegate {
16
18
  onOpenExternalUrl?: (url: string) => void;
@@ -32,7 +34,6 @@ const DOWNLOAD_FILE_REGEX =
32
34
  /\.(pdf|doc|docx|xls|xlsx|zip|rar|txt|mp3|mp4|jpg|jpeg|png|gif)$/i;
33
35
 
34
36
  export abstract class BaseWebViewController {
35
- initialized = false;
36
37
  webView: WebView | null = null;
37
38
  url: string | null = null;
38
39
 
@@ -112,13 +113,51 @@ export abstract class DeunaWebViewController extends BaseWebViewController {
112
113
  redirectUrl: string | null = null;
113
114
  closedAction: ClosedAction = 'systemAction';
114
115
 
116
+ isWebViewInitialized = false;
117
+
118
+ fraudId = '';
119
+
115
120
  constructor(readonly widgetConfig: WidgetConfig) {
116
121
  super();
122
+ this.init();
123
+ }
124
+
125
+ private init() {
126
+ const { fraudCredentials, sdkInstance } = this.widgetConfig;
127
+ if (!sdkInstance || !fraudCredentials) {
128
+ return;
129
+ }
130
+
131
+ if (fraudCredentials) {
132
+ this.generateFraudId({ sdkInstance, fraudCredentials });
133
+ }
134
+ }
135
+
136
+ private async generateFraudId({
137
+ sdkInstance,
138
+ fraudCredentials,
139
+ }: {
140
+ sdkInstance: DeunaSDK;
141
+ fraudCredentials: Partial<InitFraudProvidersProps>;
142
+ }) {
143
+ try {
144
+ this.fraudId = await sdkInstance.getSessionId(fraudCredentials);
145
+ if (this.isWebViewInitialized) {
146
+ this.jsExecutor.execute(this.getFraudIdFnString());
147
+ }
148
+ } catch (e) {
149
+ console.log('❌ fraudId', e);
150
+ }
151
+ }
152
+
153
+ private getFraudIdFnString() {
154
+ return `window.getFraudId = function(){ return '${this.fraudId}';}`;
117
155
  }
118
156
 
119
157
  abstract onEventDispatch: (event: Record<string, any>) => void;
120
158
 
121
159
  onLoad = () => {
160
+ this.isWebViewInitialized = true;
122
161
  this.setXprops();
123
162
  };
124
163
 
@@ -199,7 +238,15 @@ export abstract class DeunaWebViewController extends BaseWebViewController {
199
238
  onSubmit: function (fn) {
200
239
  window.submit = fn;
201
240
  },
202
- }
241
+ getFraudId: function(){
242
+ if(typeof window.getFraudId === 'function'){
243
+ return window.getFraudId();
244
+ }
245
+ return "";
246
+ }
247
+ };
248
+
249
+ ${this.fraudId.length > 0 ? this.getFraudIdFnString() : ''}
203
250
  `
204
251
  );
205
252
  };
@@ -11,6 +11,9 @@ import {
11
11
  import { linkBuilders } from '../types/helpers';
12
12
  import { Mode } from '../interfaces/types';
13
13
  import { DeunaLogs } from '../DeunaLogs';
14
+ import { InitFraudProvidersProps } from '../types/fraudProviders';
15
+ import { Environment } from '../types';
16
+ import { DeunaSDK } from '../DeunaSDK';
14
17
 
15
18
  type PaymentWidgetControllerProps = InitPaymentWidgetParams & {
16
19
  widget: 'payment';
@@ -34,13 +37,29 @@ type ControllerProps =
34
37
  | VoucherWidgetControllerProps
35
38
  | ElementsWidgetControllerProps;
36
39
 
40
+ interface BaseParams {
41
+ env: Environment;
42
+ publicApiKey: string;
43
+ orderToken: string;
44
+ userToken: string;
45
+ language: string;
46
+ sessionId: string;
47
+ mode: string;
48
+ domain?: string;
49
+ fraudCredentials?: Partial<InitFraudProvidersProps>;
50
+ }
51
+
37
52
  export const buildDeunaWidgetController = (
38
53
  config: InitializeParams,
39
- props: ControllerProps & { mode?: Mode; sessionId?: string }
54
+ props: ControllerProps & {
55
+ mode?: Mode;
56
+ sessionId?: string;
57
+ sdkInstance?: DeunaSDK;
58
+ }
40
59
  ): DeunaWebViewController => {
41
- const { widget, mode, callbacks, ...rest } = props;
60
+ const { widget, mode, callbacks, sdkInstance, ...rest } = props;
42
61
 
43
- const baseParams = {
62
+ const baseParams: BaseParams = {
44
63
  env: config.environment!,
45
64
  publicApiKey: config.publicApiKey,
46
65
  orderToken: rest.orderToken ?? '',
@@ -48,7 +67,12 @@ export const buildDeunaWidgetController = (
48
67
  language: rest.language ?? 'es',
49
68
  sessionId: rest.sessionId ?? '',
50
69
  mode: mode === Mode.MODAL ? 'modal' : 'target',
51
- ...(rest.domain && { domain: rest.domain }),
70
+ ...(rest.domain && {
71
+ domain:
72
+ !rest.domain.startsWith('http') && !rest.domain.startsWith('https')
73
+ ? `https://${rest.domain}`
74
+ : rest.domain,
75
+ }),
52
76
  };
53
77
 
54
78
  const widgetMappers = {
@@ -60,12 +84,16 @@ export const buildDeunaWidgetController = (
60
84
  widgetExperience: rest.widgetExperience,
61
85
  types: (props as ElementsWidgetControllerProps).types,
62
86
  }),
63
- payment: () => ({
64
- ...baseParams,
65
- behavior: rest.behavior,
66
- paymentMethods: (props as PaymentWidgetControllerProps).paymentMethods,
67
- styleFile: rest.styleFile,
68
- }),
87
+ payment: () => {
88
+ const paymentWidgetProps = props as PaymentWidgetControllerProps;
89
+ return {
90
+ ...baseParams,
91
+ behavior: rest.behavior,
92
+ paymentMethods: paymentWidgetProps.paymentMethods,
93
+ styleFile: rest.styleFile,
94
+ fraudCredentials: paymentWidgetProps.fraudCredentials,
95
+ };
96
+ },
69
97
  nextAction: () => baseParams,
70
98
  voucher: () => baseParams,
71
99
  };
@@ -76,12 +104,18 @@ export const buildDeunaWidgetController = (
76
104
  userToken: rest.userToken,
77
105
  };
78
106
 
107
+ const widgetParams = widgetMappers[widget]();
108
+
79
109
  const controller =
80
110
  widget === 'elements'
81
111
  ? new ElementsWidgetController(callbacks, widgetConfig)
82
- : new PaymentWidgetController(callbacks, widgetConfig);
112
+ : new PaymentWidgetController(callbacks, {
113
+ ...widgetConfig,
114
+ sdkInstance,
115
+ fraudCredentials: widgetParams.fraudCredentials,
116
+ });
83
117
 
84
- controller.url = linkBuilders[widget](widgetMappers[widget]());
118
+ controller.url = linkBuilders[widget](baseParams);
85
119
  controller.hidePayButton = rest.hidePayButton ?? false;
86
120
 
87
121
  DeunaLogs.info('👀 loading link', controller.url);
@@ -1,9 +1,13 @@
1
+ import { DeunaSDK } from '../DeunaSDK';
1
2
  import { BehaviorWidget } from '../types';
3
+ import { InitFraudProvidersProps } from '../types/fraudProviders';
2
4
 
3
5
  export interface WidgetConfig {
4
6
  behavior?: BehaviorWidget;
5
7
  orderToken?: string;
6
8
  userToken?: string;
9
+ sdkInstance?: DeunaSDK;
10
+ fraudCredentials?: Partial<InitFraudProvidersProps>;
7
11
  }
8
12
 
9
13
  export enum Mode {
package/src/types/base.ts CHANGED
@@ -17,6 +17,7 @@ import {
17
17
  } from './interfaces/merchant';
18
18
  import { Order } from './interfaces/order';
19
19
  import { User } from './interfaces/user';
20
+ import { InitFraudProvidersProps } from './fraudProviders';
20
21
 
21
22
  export type Environment = 'production' | 'sandbox' | 'develop' | 'staging';
22
23
 
@@ -65,6 +66,7 @@ export type InitPaymentWidgetParams = Omit<InitWidgetBase, 'callbacks'> & {
65
66
  flowType?: PaymentMethodConfigurationFlow;
66
67
  };
67
68
  }[];
69
+ fraudCredentials?: Partial<InitFraudProvidersProps>;
68
70
  sessionId?: string;
69
71
  };
70
72
 
package/src/types/env.ts CHANGED
@@ -41,7 +41,15 @@ export enum Env {
41
41
  [Env.Develop]: 'b267dfc8a5',
42
42
  [Env.Sandbox]: 'b267dfc8a5'
43
43
  };
44
-
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
+
45
53
  export const proxyUrls = {
46
54
  URL: 'mimos.vendodeuna.com',
47
55
  FPJS_BEHAVIOR_PATH: 'thomas',
@@ -0,0 +1,50 @@
1
+ export enum Env {
2
+ Production = 'production',
3
+ Staging = 'staging',
4
+ Develop = 'develop',
5
+ Sandbox = 'sandbox',
6
+ local = 'local'
7
+ }
8
+
9
+ export const env = {
10
+ [Env.Production]: 'https://apigw.getduna.com/',
11
+ [Env.Staging]: 'https://api.stg.deuna.io/',
12
+ [Env.Develop]: 'https://api.dev.deuna.io/',
13
+ [Env.Sandbox]: 'https://api.sandbox.deuna.io/'
14
+ };
15
+
16
+ export const checkout = {
17
+ [Env.Production]: 'https://checkout-ux.deuna.com/',
18
+ [Env.Staging]: 'https://checkout.stg.deuna.io/',
19
+ [Env.Develop]: 'https://checkout.dev.deuna.io/',
20
+ [Env.Sandbox]: 'https://checkout.sandbox.deuna.io/'
21
+ };
22
+
23
+ export const fingerprintjsEnv = {
24
+ [Env.Production]: 'PczoxhUz1RUyPv5Ih7nM',
25
+ [Env.Staging]: 'sB9jPdnpvLP3FkjjUPi3',
26
+ [Env.Develop]: 'sB9jPdnpvLP3FkjjUPi3',
27
+ [Env.Sandbox]: 'sB9jPdnpvLP3FkjjUPi3'
28
+ };
29
+
30
+ export const storageSite = {
31
+ [Env.Production]: 'https://cdn.getduna.com/cdl/storageSite/index.html',
32
+ [Env.Staging]: 'https://cdn.stg.deuna.io/cdl/storageSite/index.html',
33
+ [Env.Develop]: 'https://cdn.dev.deuna.io/cdl/storageSite/index.html',
34
+ [Env.Sandbox]: 'https://cdn.stg.deuna.io/cdl/storageSite/index.html',
35
+ [Env.local]: 'http://localhost:3005/'
36
+ };
37
+
38
+ export const siftCred = {
39
+ [Env.Production]: 'ab8ca5421b',
40
+ [Env.Staging]: 'b267dfc8a5',
41
+ [Env.Develop]: 'b267dfc8a5',
42
+ [Env.Sandbox]: 'b267dfc8a5'
43
+ };
44
+
45
+ export const proxyUrls = {
46
+ URL: 'mimos.vendodeuna.com',
47
+ FPJS_BEHAVIOR_PATH: 'thomas',
48
+ FPJS_AGENT_DOWNLOAD_PATH: 'tommy',
49
+ FPJS_GET_RESULT_PATH: 'pabloinvita'
50
+ };
@@ -0,0 +1,100 @@
1
+ import { Env } from "./envs";
2
+
3
+ export type Providers =
4
+ | "CLEARSALE"
5
+ | "CLEARSALE-BRASIL"
6
+ | "CYBERSOURCE"
7
+ | "MERCADOPAGO"
8
+ | "SIFT"
9
+ | "SIGNIFYD"
10
+ | "STRIPE"
11
+ | "KOIN"
12
+ | "KOUNT"
13
+ | "KONDUTO"
14
+ | "OPENPAY"
15
+ | "RISKIFIED";
16
+
17
+ export interface FraudProviderParams<T> {
18
+ sessionId: string;
19
+ env: Env;
20
+ params: T;
21
+ }
22
+
23
+ export type FraudProvider<T, Provider extends Providers> = (
24
+ params: FraudProviderParams<T>
25
+ ) => Promise<
26
+ | {
27
+ [key in Provider]?: string | string[];
28
+ }
29
+ | undefined
30
+ >;
31
+
32
+ export interface RiskifiedParams {
33
+ storeDomain: string;
34
+ }
35
+
36
+ export interface CyberSourceParams {
37
+ orgId: string;
38
+ merchantId: string;
39
+ }
40
+
41
+ export interface SignifydParams {
42
+ account: string;
43
+ email: string;
44
+ }
45
+
46
+ export interface SiftParams {
47
+ accountId: string;
48
+ restApiKey: string;
49
+ }
50
+
51
+ export interface ClearSaleParams {
52
+ clientId: string;
53
+ }
54
+
55
+ export interface StripeParams {
56
+ apiKey: string;
57
+ }
58
+
59
+ export interface KountParams {
60
+ dataCollectorUrl: string;
61
+ merchantId: string; // m = six digit Merchant ID number issued by Kount
62
+ clientId: string;
63
+ environment: string;
64
+ version: string;
65
+ isSinglePageApp: boolean;
66
+ }
67
+
68
+ export interface KoinParams {
69
+ orgId: string;
70
+ sessionId?: string;
71
+ }
72
+
73
+ export interface KondutoParams {
74
+ publicKey: string;
75
+ }
76
+
77
+ export interface OpenPayParams {
78
+ merchantId: string;
79
+ publicApiKey: string;
80
+ sandboxMode?: boolean;
81
+ }
82
+
83
+ export type FraudProvidersObject = {
84
+ [key in Providers]: FraudProvider<any, key>;
85
+ };
86
+
87
+ export type InitFraudProvidersProps = {
88
+ CLEARSALE: ClearSaleParams;
89
+ "CLEARSALE-BRASIL": ClearSaleParams;
90
+ OPENPAY: OpenPayParams;
91
+ CYBERSOURCE: CyberSourceParams;
92
+ MERCADOPAGO: {};
93
+ SIFT: SiftParams;
94
+ SIGNIFYD: SignifydParams;
95
+ STRIPE: StripeParams;
96
+ KOUNT: KountParams;
97
+ KONDUTO: KondutoParams;
98
+ RISKIFIED: RiskifiedParams;
99
+ KOIN: KoinParams;
100
+ };
@@ -2,6 +2,7 @@ import { Environment } from "../base";
2
2
  import { hasKey } from "../utils/hasKey";
3
3
  import { getIntegrationType, UrlConfig } from "./urlConfig";
4
4
  import { PLATFORM_DEFAULT } from "./constants";
5
+ import { addSearchParamWhen } from "../utils/addSearchParamWhen";
5
6
 
6
7
  const ELEMENTS_URLS: Record<Environment, string> = {
7
8
  production: "https://elements.deuna.com",
@@ -17,7 +18,7 @@ const WIDGET_PATHS = {
17
18
 
18
19
  type WidgetPath = keyof typeof WIDGET_PATHS;
19
20
 
20
- interface SearchParams {
21
+ export interface SearchParams {
21
22
  publicApiKey: string;
22
23
  orderToken: string;
23
24
  email: string;
@@ -29,6 +30,7 @@ interface SearchParams {
29
30
  userToken?: string;
30
31
  showSavedCardsFlow?: string;
31
32
  showDefaultCardFlow?: string;
33
+ disableInstallments?: string;
32
34
  platform?: string;
33
35
  }
34
36
 
@@ -68,16 +70,19 @@ const buildSearchParams = (config: UrlConfig): URLSearchParams => {
68
70
  searchParams.userToken = userToken;
69
71
  }
70
72
 
71
- if (widgetExperience?.userExperience?.showSavedCardsFlow) {
72
- searchParams.showSavedCardsFlow = String(
73
- widgetExperience.userExperience.showSavedCardsFlow
74
- );
75
- }
73
+ const ux = widgetExperience?.userExperience;
74
+
75
+ if (ux) {
76
+ const userExpParams: Record<keyof typeof ux, keyof SearchParams> = {
77
+ showSavedCardsFlow: "showSavedCardsFlow",
78
+ defaultCardFlow: "showDefaultCardFlow",
79
+ disableInstallments: "disableInstallments",
80
+ };
76
81
 
77
- if (widgetExperience?.userExperience?.defaultCardFlow) {
78
- searchParams.showDefaultCardFlow = String(
79
- widgetExperience.userExperience.defaultCardFlow
80
- );
82
+ Object.entries(userExpParams).forEach(([sourceKey, targetKey]) => {
83
+ const value = ux[sourceKey as keyof typeof ux];
84
+ addSearchParamWhen(value, targetKey, searchParams);
85
+ });
81
86
  }
82
87
 
83
88
  return new URLSearchParams(searchParams as unknown as Record<string, string>);
@@ -20,7 +20,7 @@ const urls: Record<Environment, string> = {
20
20
  };
21
21
 
22
22
  export const buildPaymentLink = (config: UrlConfig): string => {
23
- const { env, orderToken } = config;
23
+ const { env, orderToken, widgetExperience } = config;
24
24
 
25
25
  let baseUrl = urls.production;
26
26
 
@@ -45,6 +45,7 @@ export const buildPaymentLink = (config: UrlConfig): string => {
45
45
  cdl: {
46
46
  sessionId: config.sessionId,
47
47
  },
48
+ widgetExperience,
48
49
  };
49
50
 
50
51
  configToQueryParams(config, searchParams);
@@ -56,7 +57,9 @@ export const buildPaymentLink = (config: UrlConfig): string => {
56
57
  //encode to base64
57
58
  searchParams.append("xpropsB64", btoa(JSON.stringify(xpropsB64)));
58
59
 
59
- const url = new URL(`${baseUrl}/now/${orderToken}?${searchParams.toString()}`);
60
+ const url = new URL(
61
+ `${baseUrl}/now/${orderToken}?${searchParams.toString()}`
62
+ );
60
63
 
61
64
  return url.toString();
62
65
  };