@tap-payments/auth-jsconnect 2.8.11-test → 2.8.14-test

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.
@@ -334,6 +334,13 @@ export declare enum AuthForType {
334
334
  NATIONAL_ID = "national_id",
335
335
  NATIONAL_ID_MISSED = "national_id_missed"
336
336
  }
337
+ export declare enum AuthTypeNumber {
338
+ EMAIL_OTP = 5,
339
+ MOBILE_OTP = 2,
340
+ PASSWORD = 1,
341
+ MIGRATION = 10,
342
+ RESET_PASSWORD = 7
343
+ }
337
344
  export declare enum AddressFormateType {
338
345
  SELECT = "select",
339
346
  NUMBER = "number",
@@ -42,6 +42,14 @@ export var AuthForType;
42
42
  AuthForType["NATIONAL_ID"] = "national_id";
43
43
  AuthForType["NATIONAL_ID_MISSED"] = "national_id_missed";
44
44
  })(AuthForType || (AuthForType = {}));
45
+ export var AuthTypeNumber;
46
+ (function (AuthTypeNumber) {
47
+ AuthTypeNumber[AuthTypeNumber["EMAIL_OTP"] = 5] = "EMAIL_OTP";
48
+ AuthTypeNumber[AuthTypeNumber["MOBILE_OTP"] = 2] = "MOBILE_OTP";
49
+ AuthTypeNumber[AuthTypeNumber["PASSWORD"] = 1] = "PASSWORD";
50
+ AuthTypeNumber[AuthTypeNumber["MIGRATION"] = 10] = "MIGRATION";
51
+ AuthTypeNumber[AuthTypeNumber["RESET_PASSWORD"] = 7] = "RESET_PASSWORD";
52
+ })(AuthTypeNumber || (AuthTypeNumber = {}));
45
53
  export var AddressFormateType;
46
54
  (function (AddressFormateType) {
47
55
  AddressFormateType["SELECT"] = "select";
@@ -253,12 +253,12 @@ export var AUTH_SCREENS_NAVIGATION = [
253
253
  {
254
254
  name: 'AUTH_OTP_STEP',
255
255
  next: 'AUTH_PREPARING_DATA_STEP',
256
- prev: ['AUTH_MOBILE_STEP', 'AUTH_NID_STEP', 'AUTH_EMAIL_STEP'],
256
+ prev: ['AUTH_MOBILE_STEP', 'AUTH_NID_STEP', 'AUTH_EMAIL_STEP', 'AUTH_PASSWORD_STEP'],
257
257
  order: 2
258
258
  },
259
259
  {
260
260
  name: 'AUTH_PASSWORD_STEP',
261
- next: 'AUTH_PREPARING_DATA_STEP',
261
+ next: ['AUTH_PREPARING_DATA_STEP', 'AUTH_OTP_STEP'],
262
262
  prev: 'AUTH_EMAIL_STEP',
263
263
  order: 2
264
264
  },
@@ -56,10 +56,10 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
56
56
  };
57
57
  var _a;
58
58
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
59
- import { AuthForType, FlowsTypes } from '../../../@types';
59
+ import { AuthForType, AuthTypeNumber, FlowsTypes } from '../../../@types';
60
60
  import { ADD_NEW_ENTITY, AUTH_STEP_NAMES, IDENTIFICATION_TYPE, defaultCountry } from '../../../constants';
61
61
  import API from '../../../api';
62
- import { handleCurrentActiveScreen, handleNextScreenStep, handleOpen, handleSetCountryByIso2 } from '../../../app/settings';
62
+ import { handleCurrentActiveScreen, handleNextScreenStep, handleOpen, handlePrevScreenStep, handleSetCountryByIso2 } from '../../../app/settings';
63
63
  import { findCountryByIddPrefix, openConnect, sleep } from '../../../utils';
64
64
  export var updateBusinessCountry = createAsyncThunk('auth/updateBusinessCountry', function (countryCode, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
65
65
  var auth, payload, data;
@@ -232,9 +232,9 @@ export var createEmailAuth = createAsyncThunk('auth/createEmailAuth', function (
232
232
  case 1:
233
233
  data = _d.sent();
234
234
  screen = 'AUTH_PASSWORD_STEP';
235
- if ((data === null || data === void 0 ? void 0 : data.auth_type) === 7)
235
+ if ((data === null || data === void 0 ? void 0 : data.auth_type) === AuthTypeNumber.RESET_PASSWORD)
236
236
  screen = 'AUTH_RESET_PASSWORD_MESSAGE_STEP';
237
- if ((data === null || data === void 0 ? void 0 : data.auth_type) === 5)
237
+ if ((data === null || data === void 0 ? void 0 : data.auth_type) === AuthTypeNumber.EMAIL_OTP)
238
238
  screen = 'AUTH_OTP_STEP';
239
239
  thunkApi.dispatch(handleNextScreenStep(screen));
240
240
  (_c = (_b = settings.data.appConfig).onStepCompleted) === null || _c === void 0 ? void 0 : _c.call(_b, settings.data.activeScreen.name, requestBody.user_credentail);
@@ -271,6 +271,10 @@ export var verifyEmailPassword = createAsyncThunk('auth/verifyEmailPassword', fu
271
271
  data = (_h.sent()).data;
272
272
  if ((_e = data.errors) === null || _e === void 0 ? void 0 : _e.length)
273
273
  throw new Error(data.errors[0].description);
274
+ if ((data === null || data === void 0 ? void 0 : data.auth_type) === AuthTypeNumber.MOBILE_OTP) {
275
+ sleep(100).then(function () { return thunkApi.dispatch(handleNextScreenStep('AUTH_OTP_STEP')); });
276
+ return [2, data];
277
+ }
274
278
  if (scope === 'merchant') {
275
279
  openConnect(settings.data.appConfig.publicKey, settings.data.businessCountry.iso2);
276
280
  return [2, data];
@@ -303,6 +307,8 @@ export var resendEmailAuthOTP = createAsyncThunk('auth/resendEmailAuthOTP', func
303
307
  return [4, API.authService.createAuth(requestBody)];
304
308
  case 1:
305
309
  data = _b.sent();
310
+ if ((data === null || data === void 0 ? void 0 : data.auth_type) === AuthTypeNumber.PASSWORD)
311
+ thunkApi.dispatch(handlePrevScreenStep('AUTH_PASSWORD_STEP'));
306
312
  return [2, { response: data, formData: params }];
307
313
  }
308
314
  });
@@ -327,6 +333,7 @@ export var verifyEmailOtp = createAsyncThunk('auth/verifyEmailOtp', function (pa
327
333
  device_token: device_token,
328
334
  service_name: service_name,
329
335
  sign_in: sign_in,
336
+ is_lead: false,
330
337
  step_name: AUTH_STEP_NAMES.VERIFY_AUTH_MOBILE,
331
338
  encryption_contract: ['data']
332
339
  };
@@ -534,28 +541,30 @@ export var verifyPACI = createAsyncThunk('auth/verifyPACI', function (params, th
534
541
  });
535
542
  }); });
536
543
  export var checkAccountAvailability = createAsyncThunk('auth/checkAccountAvailability', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
537
- var _a, settings, auth, authConfigData, authDataHasValue, isDataHasIndividualOnly, data, authId, accountData, _b, step_name, brands, entities, brandList, entityList, isExistingUser;
538
- var _c;
539
- return __generator(this, function (_d) {
540
- switch (_d.label) {
544
+ var _a, settings, auth, authConfigData, authDataHasValue, isDataHasIndividualOnly, data, _b, authId, auth_type, accountData, _c, step_name, brands, entities, brandList, entityList, isExistingUser;
545
+ var _d;
546
+ return __generator(this, function (_e) {
547
+ switch (_e.label) {
541
548
  case 0:
542
549
  _a = thunkApi.getState(), settings = _a.settings, auth = _a.auth;
543
550
  authConfigData = settings.data.appConfig.data;
544
551
  authDataHasValue = authConfigData === null || authConfigData === void 0 ? void 0 : authConfigData.length;
545
552
  isDataHasIndividualOnly = (authConfigData === null || authConfigData === void 0 ? void 0 : authConfigData.length) === 1 && authConfigData.includes('individual');
546
- data = (_c = auth.data.responseData) === null || _c === void 0 ? void 0 : _c.authResponse;
547
- authId = data === null || data === void 0 ? void 0 : data.id;
553
+ data = (_d = auth.data.responseData) === null || _d === void 0 ? void 0 : _d.authResponse;
554
+ _b = data || {}, authId = _b.id, auth_type = _b.auth_type;
555
+ if (auth_type === AuthTypeNumber.MIGRATION) {
556
+ }
548
557
  return [4, API.accountService.checkAccountAvailability(data === null || data === void 0 ? void 0 : data.individual_id)];
549
558
  case 1:
550
- accountData = _d.sent();
551
- _b = accountData || {}, step_name = _b.step_name, brands = _b.brands, entities = _b.entities;
559
+ accountData = _e.sent();
560
+ _c = accountData || {}, step_name = _c.step_name, brands = _c.brands, entities = _c.entities;
552
561
  brandList = brands || [];
553
562
  entityList = entities || [];
554
563
  isExistingUser = step_name === 'select_account';
555
564
  if (!(isExistingUser && isDataHasIndividualOnly && authId)) return [3, 3];
556
565
  return [4, thunkApi.dispatch(confirmInfo({ authId: authId }))];
557
566
  case 2:
558
- _d.sent();
567
+ _e.sent();
559
568
  return [2, { brandList: brandList, entityList: entityList }];
560
569
  case 3:
561
570
  if (isExistingUser && authDataHasValue && brandList.length && entityList.length) {
@@ -21,7 +21,7 @@ import Button from '../../../shared/Button';
21
21
  import { ScreenContainer } from '../../../shared/Containers';
22
22
  import { useAppDispatch, useAppSelector, useLanguage } from '../../../../hooks';
23
23
  import { handlePrevScreenStep } from '../../../../app/settings';
24
- import { AuthForType } from '../../../../@types';
24
+ import { AuthForType, AuthTypeNumber } from '../../../../@types';
25
25
  import { yupResolver } from '@hookform/resolvers/yup';
26
26
  import Form from '../../../../components/Form';
27
27
  import { maskPhone, maskID, deepCopy, maskEmail } from '../../../../utils';
@@ -47,9 +47,8 @@ var FormStyled = styled(Form)(function () { return ({
47
47
  flexDirection: 'column'
48
48
  }); });
49
49
  var OTP = function () {
50
- var _a;
51
50
  var dispatch = useAppDispatch();
52
- var _b = useAppSelector(authSelector), data = _b.data, loading = _b.loading, error = _b.error;
51
+ var _a = useAppSelector(authSelector), data = _a.data, loading = _a.loading, error = _a.error;
53
52
  var t = useTranslation().t;
54
53
  var isAr = useLanguage().isAr;
55
54
  var methods = useForm({
@@ -59,16 +58,20 @@ var OTP = function () {
59
58
  });
60
59
  var isNidAuth = data.otpData.authFor === AuthForType.NATIONAL_ID;
61
60
  var isEmailAuth = data.otpData.authFor === AuthForType.EMAIL;
62
- var phone = data.mobileData.mobile ? ((_a = data.mobileData.countryCode) === null || _a === void 0 ? void 0 : _a.idd_prefix) + data.mobileData.mobile : '';
63
- var idNumber = data.nidData.nid;
64
- var email = data.emailData.email;
65
61
  var getNumber = function () {
66
62
  var _a, _b;
67
63
  if (isNidAuth)
68
- return maskID(idNumber);
69
- if (isEmailAuth)
70
- return ((_b = (_a = data.responseData) === null || _a === void 0 ? void 0 : _a.authData) === null || _b === void 0 ? void 0 : _b.email) || maskEmail(email);
71
- maskPhone(phone);
64
+ return maskID(data.nidData.nid);
65
+ if (isEmailAuth) {
66
+ var _c = ((_a = data.responseData) === null || _a === void 0 ? void 0 : _a.authResponse) || {}, auth_type = _c.auth_type, email = _c.email, mobile = _c.mobile;
67
+ if (auth_type === AuthTypeNumber.MOBILE_OTP && mobile)
68
+ return mobile;
69
+ if (auth_type === AuthTypeNumber.EMAIL_OTP && email)
70
+ return email;
71
+ return maskEmail(data.emailData.email);
72
+ }
73
+ var phone = data.mobileData.mobile ? ((_b = data.mobileData.countryCode) === null || _b === void 0 ? void 0 : _b.idd_prefix) + data.mobileData.mobile : '';
74
+ return maskPhone(phone);
72
75
  };
73
76
  var getTitle = function () {
74
77
  if (isNidAuth)
@@ -88,6 +88,6 @@ var RefundPolicy = function (_a) {
88
88
  return;
89
89
  refundControl.field.onChange(checked);
90
90
  };
91
- return (_jsx(Collapse, __assign({ in: !isChecked }, { children: _jsxs(ScreenContainer, { children: [_jsxs(ContainerStyled, __assign({ readOnly: readOnly }, { children: [_jsx(CheckboxStyled, { disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: refundChecked, onChange: handleRefundCheckedChange }), _jsxs(TextStyled, { children: [t('agree_on_refund_policy'), _jsx(LinkStyled, __assign({ href: isAr ? TAP_WEBSITE + countryCode + EXTERNAL_LINKS.REFUND_AR : TAP_WEBSITE + countryCode + EXTERNAL_LINKS.REFUND_EN, target: '_blank', underline: 'always' }, { children: t('refund_policy_compliance') }))] })] })), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] }) })));
91
+ return (_jsxs(ScreenContainer, { children: [_jsxs(ContainerStyled, __assign({ readOnly: readOnly || isChecked }, { children: [_jsx(CheckboxStyled, { disabled: isChecked, disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: refundChecked, onChange: handleRefundCheckedChange }), _jsxs(TextStyled, { children: [t('agree_on_refund_policy'), _jsx(LinkStyled, __assign({ href: isAr ? TAP_WEBSITE + countryCode + EXTERNAL_LINKS.REFUND_AR : TAP_WEBSITE + countryCode + EXTERNAL_LINKS.REFUND_EN, target: '_blank', underline: 'always' }, { children: t('refund_policy_compliance') }))] })] })), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] }));
92
92
  };
93
93
  export default RefundPolicy;
@@ -88,6 +88,6 @@ var TAC = function (_a) {
88
88
  return;
89
89
  tacControl.field.onChange(checked);
90
90
  };
91
- return (_jsx(Collapse, __assign({ in: !isChecked }, { children: _jsxs(ScreenContainer, __assign({ sx: { mt: 2.75 } }, { children: [_jsxs(TACContainerStyled, __assign({ readOnly: readOnly }, { children: [_jsx(CheckboxStyled, { disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: tacChecked, onChange: handleTACCheckedChange }), _jsxs(TextStyled, { children: [t('read_agree_terms_and_conditions_message'), _jsx(LinkStyled, __assign({ href: isAr ? TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TOS_AR : TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TOS_EN, target: '_blank', underline: 'always' }, { children: t('terms_and_conditions_link_title') }))] })] })), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] })) })));
91
+ return (_jsxs(ScreenContainer, __assign({ sx: { mt: 2.75 } }, { children: [_jsxs(TACContainerStyled, __assign({ readOnly: readOnly || isChecked }, { children: [_jsx(CheckboxStyled, { disabled: isChecked, disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: tacChecked, onChange: handleTACCheckedChange }), _jsxs(TextStyled, { children: [t('read_agree_terms_and_conditions_message'), _jsx(LinkStyled, __assign({ href: isAr ? TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TOS_AR : TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TOS_EN, target: '_blank', underline: 'always' }, { children: t('terms_and_conditions_link_title') }))] })] })), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] })));
92
92
  };
93
93
  export default React.memo(TAC);
@@ -51,6 +51,6 @@ var TransactionPolicy = function (_a) {
51
51
  return;
52
52
  transactionControl.field.onChange(checked);
53
53
  };
54
- return (_jsx(Collapse, __assign({ in: !isChecked }, { children: _jsxs(ScreenContainer, { children: [_jsxs(ContainerStyled, __assign({ readOnly: readOnly }, { children: [_jsx(CheckboxStyled, { disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: transactionChecked, onChange: handleTransactionCheckedChange }), _jsxs(TextStyled, { children: [t('agree_on_chargeback_policy'), _jsx(LinkStyled, __assign({ href: isAr ? TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TRANSACTION_AR : TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TRANSACTION_EN, target: '_blank', underline: 'always' }, { children: t('chargeback_policy') }))] })] })), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] }) })));
54
+ return (_jsxs(ScreenContainer, { children: [_jsxs(ContainerStyled, __assign({ readOnly: readOnly || isChecked }, { children: [_jsx(CheckboxStyled, { disabled: isChecked, disableRipple: true, disableFocusRipple: true, focusRipple: false, checked: transactionChecked, onChange: handleTransactionCheckedChange }), _jsxs(TextStyled, { children: [t('agree_on_chargeback_policy'), _jsx(LinkStyled, __assign({ href: isAr ? TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TRANSACTION_AR : TAP_WEBSITE + countryCode + EXTERNAL_LINKS.TRANSACTION_EN, target: '_blank', underline: 'always' }, { children: t('chargeback_policy') }))] })] })), _jsx(CollapseStyled, __assign({ in: !!warningMessage }, { children: _jsx(Warning, __assign({ warningType: 'alert' }, { children: warningMessage && t(warningMessage) })) }))] }));
55
55
  };
56
56
  export default TransactionPolicy;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tap-payments/auth-jsconnect",
3
- "version": "2.8.11-test",
3
+ "version": "2.8.14-test",
4
4
  "description": "connect library, auth",
5
5
  "private": false,
6
6
  "main": "build/index.js",