@tap-payments/auth-jsconnect 2.11.0-development → 2.11.0

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 (105) hide show
  1. package/build/@types/form.d.ts +2 -2
  2. package/build/@types/terminal.d.ts +32 -44
  3. package/build/api/account.d.ts +2 -2
  4. package/build/api/account.js +7 -4
  5. package/build/api/auth.d.ts +8 -2
  6. package/build/api/auth.js +7 -3
  7. package/build/api/axios.d.ts +1 -1
  8. package/build/api/headers.d.ts +5 -0
  9. package/build/api/headers.js +3 -0
  10. package/build/api/index.d.ts +6 -6
  11. package/build/api/operator.d.ts +1 -1
  12. package/build/api/operator.js +5 -2
  13. package/build/api/terminal.d.ts +3 -6
  14. package/build/api/terminal.js +22 -12
  15. package/build/assets/currencies/AEDSymbol.js +1 -1
  16. package/build/assets/currencies/SARSymbol.js +1 -1
  17. package/build/assets/locales/ar.json +5 -0
  18. package/build/assets/locales/en.json +8 -2
  19. package/build/components/DeviceCard/DeviceCard.d.ts +3 -2
  20. package/build/components/DeviceCard/DeviceCard.js +9 -10
  21. package/build/components/Tooltip/Tooltip.js +1 -1
  22. package/build/components/TruncatedTooltipText/TruncatedTooltipText.d.ts +7 -0
  23. package/build/components/TruncatedTooltipText/TruncatedTooltipText.js +33 -0
  24. package/build/components/TruncatedTooltipText/index.d.ts +2 -0
  25. package/build/components/TruncatedTooltipText/index.js +2 -0
  26. package/build/constants/api.d.ts +2 -0
  27. package/build/constants/api.js +4 -0
  28. package/build/constants/app.d.ts +4 -2
  29. package/build/constants/app.js +137 -38
  30. package/build/constants/flows.d.ts +2 -1
  31. package/build/constants/flows.js +2 -1
  32. package/build/features/app/auth/authStore.js +64 -54
  33. package/build/features/app/bank/bankStore.js +24 -20
  34. package/build/features/app/board/boardStore.js +11 -7
  35. package/build/features/app/brand/brandStore.js +22 -18
  36. package/build/features/app/business/businessStore.js +30 -26
  37. package/build/features/app/connect/connectStore.d.ts +6 -5
  38. package/build/features/app/connect/connectStore.js +48 -31
  39. package/build/features/app/connectExpress/connectExpressStore.d.ts +6 -5
  40. package/build/features/app/connectExpress/connectExpressStore.js +42 -16
  41. package/build/features/app/entity/entityStore.js +21 -17
  42. package/build/features/app/individual/individualStore.js +34 -28
  43. package/build/features/app/password/passwordStore.js +44 -46
  44. package/build/features/app/signIn/signInStore.js +12 -16
  45. package/build/features/app/tax/taxStore.js +20 -16
  46. package/build/features/app/terminal/terminalStore.d.ts +7 -7
  47. package/build/features/app/terminal/terminalStore.js +89 -62
  48. package/build/features/auth/Auth.d.ts +1 -1
  49. package/build/features/auth/screens/AuthenticationList/AuthenticationList.js +10 -7
  50. package/build/features/auth/screens/AuthenticationList/EntityLicenseType.d.ts +4 -1
  51. package/build/features/auth/screens/AuthenticationList/EntityLicenseType.js +6 -4
  52. package/build/features/auth/screens/AuthenticationList/EntityList.js +9 -1
  53. package/build/features/brand/screens/BrandActivities/RefundPolicy.d.ts +1 -1
  54. package/build/features/business/screens/BusinessType/BusinessType.js +2 -3
  55. package/build/features/business/screens/BusinessType/LicenseList.js +5 -5
  56. package/build/features/business/screens/Customers/RefundPolicy.d.ts +1 -1
  57. package/build/features/connectExpress/screens/AuthenticationList/AuthenticationList.js +10 -10
  58. package/build/features/connectExpress/screens/AuthenticationList/EntityLicenseType.d.ts +4 -1
  59. package/build/features/connectExpress/screens/AuthenticationList/EntityLicenseType.js +6 -4
  60. package/build/features/connectExpress/screens/AuthenticationList/EntityList.js +9 -1
  61. package/build/features/connectExpress/screens/CollectBusinessInfo/LicenseList.js +6 -11
  62. package/build/features/connectExpress/screens/Mobile/Mobile.js +7 -6
  63. package/build/features/entity/screens/EntityName/EntityName.js +14 -14
  64. package/build/features/entity/screens/EntityName/validation.d.ts +47 -45
  65. package/build/features/entity/screens/EntityName/validation.js +99 -95
  66. package/build/features/featuresScreens.js +63 -3
  67. package/build/features/shared/OTPVerifySecurityError/OTPVerifySecurityError.js +9 -0
  68. package/build/features/shared/OTPVerifySecurityError/index.d.ts +2 -0
  69. package/build/features/shared/OTPVerifySecurityError/index.js +2 -0
  70. package/build/features/terminal/Terminal.js +2 -2
  71. package/build/features/terminal/screens/LinkNewTerminal/LinkNewTerminal.js +8 -9
  72. package/build/features/terminal/screens/LinkedSuccess/LinkedSuccess.js +5 -6
  73. package/build/features/terminal/screens/LinkedTerminalInfo/LinkedTerminalInfo.js +9 -9
  74. package/build/features/terminal/screens/NoTerminalDeviceLinked/NoTerminalDeviceLinked.js +59 -14
  75. package/build/features/terminal/screens/POSDeviceListPage/POSDeviceListPage.d.ts +3 -0
  76. package/build/features/terminal/screens/{TerminalListPage/TerminalListPage.js → POSDeviceListPage/POSDeviceListPage.js} +13 -10
  77. package/build/features/terminal/screens/POSDeviceListPage/index.d.ts +2 -0
  78. package/build/features/terminal/screens/POSDeviceListPage/index.js +2 -0
  79. package/build/features/terminal/screens/SuccessWithFlowButtons/SuccessWithFlowButtons.js +1 -1
  80. package/build/features/terminal/screens/TerminalDeviceList/DeviceList.d.ts +3 -3
  81. package/build/features/terminal/screens/TerminalDeviceList/DeviceList.js +2 -2
  82. package/build/features/terminal/screens/TerminalDeviceList/TerminalDeviceList.js +15 -15
  83. package/build/features/terminal/screens/UnlinkedSuccess/UnlinkedSuccess.js +5 -7
  84. package/build/features/terminal/screens/UnlinkedTerminalInfo/UnlinkedTerminalInfo.js +12 -11
  85. package/build/features/terminal/screens/Verify/Verify.js +6 -2
  86. package/build/features/terminal/screens/shared/POSDeviceList.d.ts +11 -0
  87. package/build/features/terminal/screens/shared/POSDeviceList.js +30 -0
  88. package/build/features/terminal/screens/shared/index.d.ts +2 -2
  89. package/build/features/terminal/screens/shared/index.js +2 -2
  90. package/build/features/terminal/screens/shared/styles.d.ts +1 -1
  91. package/build/features/terminal/screens/shared/styles.js +1 -1
  92. package/build/features/terminal/screens/shared/utils.d.ts +4 -4
  93. package/build/features/terminal/screens/shared/utils.js +9 -9
  94. package/build/utils/common.js +13 -6
  95. package/build/utils/error.d.ts +3 -0
  96. package/build/utils/error.js +9 -0
  97. package/build/utils/string.d.ts +1 -0
  98. package/build/utils/string.js +1 -0
  99. package/build/utils/validation.js +1 -1
  100. package/package.json +3 -3
  101. package/build/features/terminal/screens/TerminalListPage/index.d.ts +0 -2
  102. package/build/features/terminal/screens/TerminalListPage/index.js +0 -2
  103. package/build/features/terminal/screens/shared/TerminalList.d.ts +0 -11
  104. package/build/features/terminal/screens/shared/TerminalList.js +0 -25
  105. /package/build/features/{terminal/screens/TerminalListPage/TerminalListPage.d.ts → shared/OTPVerifySecurityError/OTPVerifySecurityError.d.ts} +0 -0
@@ -59,7 +59,7 @@ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
59
59
  import API from '../../../api';
60
60
  import { BusinessType, FlowsTypes, DocumentPurpose, LicenseType } from '../../../@types';
61
61
  import { BUSINESS_STEP_NAMES, COLLECT_DOB_INFO_NAFATH, EXPECTED_SALES_LIST, IDENTIFICATION_TYPE, NAFATH_PACI_TIMEOUT_DURATION, NAFATH_VERIFICATION_FAILED, OTHER_CR_LICENSE, OTHER_ENTITY_LICENSE, OTHER_FL_LICENSE, defaultCountry } from '../../../constants';
62
- import { convertNumbers2English, hasKey, sleep, isKW, isSA, dateFormat, isOtherLicense, isOtherThanKWOrSA, hasNoneEditableValue, sendCustomEventToGTM, findCountryByIddPrefix, isNetworkError, isTimeoutError } from '../../../utils';
62
+ import { convertNumbers2English, hasKey, sleep, isKW, isSA, dateFormat, isOtherLicense, isOtherThanKWOrSA, hasNoneEditableValue, sendCustomEventToGTM, findCountryByIddPrefix, isNetworkError, isTimeoutError, isAuthenticationVerificationFailed } from '../../../utils';
63
63
  import { handleNextScreenStep, handlePublicKey, handleSetCountryByIso2 } from '../../../app/settings';
64
64
  export var verifyLeadToken = createAsyncThunk('businessVerifyLeadToken', function (token, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
65
65
  var payload, data, publicKey, countryIso2, boardData, brandData, isicActivityList, leadData, _a, steps, brand, board_id, business_id, entity, brandID, hasBusinessCompleted, hasBusinessCRInfoCompleted, hasBusinessCRActivitiesCompleted, hasBusinessCustomersCompleted, list, list;
@@ -198,9 +198,9 @@ export var resendOTP = createAsyncThunk('resendOTPBusiness', function (params, t
198
198
  }); });
199
199
  export var verifyLeadOTP = createAsyncThunk('verifyLeadOTP', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
200
200
  var _a, business, settings, isNID, responseBody, stepName, payload, data, publicKey, brandData, isicActivityList, leadData, brand, country_code, steps, board_id, business_id, entity, brandID, countryIso2, hasBusinessCompleted, hasBusinessCRInfoCompleted, hasBusinessCRActivitiesCompleted, hasBusinessCustomersCompleted, isIdentityAuthStep, boardResponse, list, list;
201
- var _b, _c, _d, _e, _f, _g, _h, _j;
202
- return __generator(this, function (_k) {
203
- switch (_k.label) {
201
+ var _b, _c, _d, _e, _f, _g, _h;
202
+ return __generator(this, function (_j) {
203
+ switch (_j.label) {
204
204
  case 0:
205
205
  _a = thunkApi.getState(), business = _a.business, settings = _a.settings;
206
206
  isNID = business.data.otpData.isNID;
@@ -213,26 +213,28 @@ export var verifyLeadOTP = createAsyncThunk('verifyLeadOTP', function (params, t
213
213
  step_name: stepName,
214
214
  encryption_contract: ['data']
215
215
  };
216
- return [4, API.leadService.verifyLeadOTP(payload)];
216
+ return [4, API.leadService.verifyTokenOTP(payload).catch(function (err) {
217
+ if (isAuthenticationVerificationFailed(err === null || err === void 0 ? void 0 : err.message))
218
+ thunkApi.dispatch(handleNextScreenStep('BUSINESS_OTP_VERIFY_SECURITY_ERROR_STEP'));
219
+ throw new Error(err === null || err === void 0 ? void 0 : err.message);
220
+ })];
217
221
  case 1:
218
- data = (_k.sent()).data;
219
- if ((_f = data.errors) === null || _f === void 0 ? void 0 : _f.length)
220
- throw new Error(data.errors[0].description);
221
- publicKey = (_g = data === null || data === void 0 ? void 0 : data.config) === null || _g === void 0 ? void 0 : _g.public_key;
222
+ data = _j.sent();
223
+ publicKey = (_f = data === null || data === void 0 ? void 0 : data.config) === null || _f === void 0 ? void 0 : _f.public_key;
222
224
  if (publicKey) {
223
225
  thunkApi.dispatch(handlePublicKey(publicKey));
224
226
  }
225
227
  isicActivityList = undefined;
226
228
  return [4, API.leadService.retrieveLead(data === null || data === void 0 ? void 0 : data.id)];
227
229
  case 2:
228
- leadData = (_k.sent()).data;
230
+ leadData = (_j.sent()).data;
229
231
  thunkApi.dispatch(updateStepName(stepName));
230
232
  brand = leadData.brand, country_code = leadData.country_code, steps = leadData.steps, board_id = leadData.board_id, business_id = leadData.business_id, entity = leadData.entity;
231
233
  brandID = brand === null || brand === void 0 ? void 0 : brand.id;
232
234
  countryIso2 = country_code;
233
235
  if (countryIso2)
234
236
  thunkApi.dispatch(handleSetCountryByIso2(countryIso2));
235
- (_j = (_h = settings.data.appConfig).onStepCompleted) === null || _j === void 0 ? void 0 : _j.call(_h, settings.data.activeScreen.name, { otp: params.otp });
237
+ (_h = (_g = settings.data.appConfig).onStepCompleted) === null || _h === void 0 ? void 0 : _h.call(_g, settings.data.activeScreen.name, { otp: params.otp });
236
238
  hasBusinessCompleted = hasKey(steps, BUSINESS_STEP_NAMES.BUSINESS_SUCCESS);
237
239
  hasBusinessCRInfoCompleted = hasKey(steps, BUSINESS_STEP_NAMES.BUSINESS_CR_INFO) && hasKey(steps, BUSINESS_STEP_NAMES.BUSINESS_INFO_CONFIRM);
238
240
  hasBusinessCRActivitiesCompleted = hasKey(steps, BUSINESS_STEP_NAMES.BUSINESS_CR_ACTIVITIES);
@@ -241,14 +243,14 @@ export var verifyLeadOTP = createAsyncThunk('verifyLeadOTP', function (params, t
241
243
  if (!(!isIdentityAuthStep && !hasBusinessCRInfoCompleted)) return [3, 4];
242
244
  return [4, thunkApi.dispatch(retrieveAllEntityList({ businessId: business_id, entityId: entity === null || entity === void 0 ? void 0 : entity.id }))];
243
245
  case 3:
244
- _k.sent();
245
- _k.label = 4;
246
+ _j.sent();
247
+ _j.label = 4;
246
248
  case 4:
247
249
  if (!(isSA(countryIso2) && !isIdentityAuthStep && !hasBusinessCRInfoCompleted)) return [3, 6];
248
250
  return [4, thunkApi.dispatch(retrieveEntityList({ leadId: data === null || data === void 0 ? void 0 : data.id }))];
249
251
  case 5:
250
- _k.sent();
251
- _k.label = 6;
252
+ _j.sent();
253
+ _j.label = 6;
252
254
  case 6:
253
255
  if (!isNID) return [3, 7];
254
256
  thunkApi.dispatch(handleNextScreenStep());
@@ -262,12 +264,12 @@ export var verifyLeadOTP = createAsyncThunk('verifyLeadOTP', function (params, t
262
264
  if (!board_id) return [3, 11];
263
265
  return [4, API.boardService.retrieveBoardInfoStatus(board_id)];
264
266
  case 9:
265
- boardResponse = _k.sent();
267
+ boardResponse = _j.sent();
266
268
  leadData = __assign(__assign({}, leadData), { flows: (boardResponse === null || boardResponse === void 0 ? void 0 : boardResponse.info) || [] });
267
269
  return [4, thunkApi.dispatch(retrieveBoardDetails(board_id))];
268
270
  case 10:
269
- _k.sent();
270
- _k.label = 11;
271
+ _j.sent();
272
+ _j.label = 11;
271
273
  case 11:
272
274
  sleep(50).then(function () { return thunkApi.dispatch(handleNextScreenStep('BUSINESS_SUCCESS_FOUR_FLOWS_BUTTONS_STEP')); });
273
275
  return [3, 23];
@@ -287,30 +289,30 @@ export var verifyLeadOTP = createAsyncThunk('verifyLeadOTP', function (params, t
287
289
  if (!hasBusinessCRActivitiesCompleted) return [3, 19];
288
290
  return [4, API.dataService.getActivitiesIsIc()];
289
291
  case 16:
290
- list = (_k.sent()).list;
292
+ list = (_j.sent()).list;
291
293
  isicActivityList = list || [];
292
294
  return [4, thunkApi.dispatch(retrieveDataList())];
293
295
  case 17:
294
- _k.sent();
296
+ _j.sent();
295
297
  return [4, API.brandService.retrieveBrand(brandID)];
296
298
  case 18:
297
- brandData = _k.sent();
299
+ brandData = _j.sent();
298
300
  sleep(50).then(function () { return thunkApi.dispatch(handleNextScreenStep('BUSINESS_CUSTOMERS_STEP')); });
299
301
  return [3, 23];
300
302
  case 19:
301
303
  if (!hasBusinessCRInfoCompleted) return [3, 22];
302
304
  return [4, API.dataService.getActivitiesIsIc()];
303
305
  case 20:
304
- list = (_k.sent()).list;
306
+ list = (_j.sent()).list;
305
307
  isicActivityList = list || [];
306
308
  return [4, API.brandService.retrieveBrand(brandID)];
307
309
  case 21:
308
- brandData = _k.sent();
310
+ brandData = _j.sent();
309
311
  sleep(50).then(function () { return thunkApi.dispatch(handleNextScreenStep('BUSINESS_ACTIVITIES_STEP')); });
310
312
  return [3, 23];
311
313
  case 22:
312
314
  sleep(50).then(function () { return thunkApi.dispatch(handleNextScreenStep('BUSINESS_BUSINESS_TYPE_STEP')); });
313
- _k.label = 23;
315
+ _j.label = 23;
314
316
  case 23: return [2, { data: data, verifyNextStepName: data.step_name, isicActivityList: isicActivityList, formData: __assign(__assign({}, params), { isNID: isNID }), brand: brandData === null || brandData === void 0 ? void 0 : brandData.brand, leadData: leadData }];
315
317
  }
316
318
  });
@@ -1135,9 +1137,11 @@ export var businessSlice = createSlice({
1135
1137
  var licenseList = [OTHER_CR_LICENSE, OTHER_FL_LICENSE];
1136
1138
  state.data.businessTypeData.responseBody = __assign(__assign(__assign({}, state.data.businessTypeData.responseBody), { entity_id: entity === null || entity === void 0 ? void 0 : entity.id, activityList: isicActivityList }), (!((_e = (_d = (_c = state.data.businessTypeData) === null || _c === void 0 ? void 0 : _c.responseBody) === null || _d === void 0 ? void 0 : _d.licenseList) === null || _e === void 0 ? void 0 : _e.length) && { licenseList: licenseList }));
1137
1139
  })
1138
- .addCase(verifyLeadOTP.rejected, function (state, action) {
1140
+ .addCase(verifyLeadOTP.rejected, function (state, _a) {
1141
+ var message = _a.error.message;
1139
1142
  state.loading = false;
1140
- state.error = action.error.message;
1143
+ if (!isAuthenticationVerificationFailed(message))
1144
+ state.error = message;
1141
1145
  })
1142
1146
  .addCase(createCivilIdAuth.pending, function (state) {
1143
1147
  state.loading = true;
@@ -82,14 +82,15 @@ export declare const updateLeadMobile: import("@reduxjs/toolkit").AsyncThunk<{
82
82
  export declare const skipUpdateLeadMobile: import("@reduxjs/toolkit").AsyncThunk<{
83
83
  leadResponse: any;
84
84
  }, void, {}>;
85
+ interface EmailCheckProps {
86
+ email: string;
87
+ cancelToken: CancelToken;
88
+ onSuccess?: () => void;
89
+ }
85
90
  export declare const checkEmailAvailability: import("@reduxjs/toolkit").AsyncThunk<{
86
91
  response: any;
87
92
  formData: string;
88
- } | undefined, {
89
- email: string;
90
- cancelToken: CancelToken;
91
- onSuccess?: (() => void) | undefined;
92
- }, {}>;
93
+ } | undefined, EmailCheckProps, {}>;
93
94
  export declare const checkBrandNameAvailability: import("@reduxjs/toolkit").AsyncThunk<{
94
95
  response: any;
95
96
  formData: {
@@ -71,7 +71,7 @@ import { handleCurrentActiveScreen, handleNextScreenStep, handleSetCountryByIso2
71
71
  import { COLLECT_DOB_INFO_NAFATH, CONNECT_STEP_NAMES, defaultCountry, IDENTIFICATION_TYPE, NAFATH_PACI_TIMEOUT_DURATION, NAFATH_VERIFICATION_FAILED, OTHER_BRAND } from '../../../constants';
72
72
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
73
73
  import { AuthForType, FlowsTypes } from '../../../@types';
74
- import { capitalizeTheFirstLetterOfEachWord, concatenateObjectValues, findCountryByIddPrefix, fixBrandList, isTwitter, getIndividualName, isWebsite, sleep, sendCustomEventToGTM, isOtherThanKWOrSA, isKW, findCountryByIso2, getMetaData, isNetworkError, isTimeoutError } from '../../../utils';
74
+ import { capitalizeTheFirstLetterOfEachWord, concatenateObjectValues, findCountryByIddPrefix, fixBrandList, isTwitter, getIndividualName, isWebsite, sleep, sendCustomEventToGTM, isOtherThanKWOrSA, isKW, findCountryByIso2, getMetaData, isNetworkError, isTimeoutError, isInternalServerError, isAuthenticationVerificationFailed } from '../../../utils';
75
75
  export var updateBusinessCountry = createAsyncThunk('connect/updateBusinessCountry', function (countryCode, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
76
76
  var connect, payload, data;
77
77
  return __generator(this, function (_a) {
@@ -209,9 +209,9 @@ export var createNafathAuth = createAsyncThunk('connect/createNafathAuth', funct
209
209
  }); });
210
210
  export var verifyAuth = createAsyncThunk('connect/verifyAuth', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
211
211
  var _a, connect, settings, startWithNID, _b, mobileData, nidData, responseBody, stepName, payload, data, lead_id, leadResponse, channels, brand, err_1, brands, err_2, countryCode, phone;
212
- var _c, _d, _e, _f;
213
- return __generator(this, function (_g) {
214
- switch (_g.label) {
212
+ var _c, _d, _e;
213
+ return __generator(this, function (_f) {
214
+ switch (_f.label) {
215
215
  case 0:
216
216
  _a = thunkApi.getState(), connect = _a.connect, settings = _a.settings;
217
217
  startWithNID = connect.data.otpData.authFor === AuthForType.NATIONAL_ID;
@@ -229,11 +229,13 @@ export var verifyAuth = createAsyncThunk('connect/verifyAuth', function (params,
229
229
  step_name: stepName,
230
230
  encryption_contract: ['data']
231
231
  };
232
- return [4, API.authService.verifyAuth(payload)];
232
+ return [4, API.authService.verifyAuth(payload).catch(function (err) {
233
+ if (isAuthenticationVerificationFailed(err === null || err === void 0 ? void 0 : err.message))
234
+ thunkApi.dispatch(handleNextScreenStep('CONNECT_OTP_VERIFY_SECURITY_ERROR_STEP'));
235
+ throw new Error(err === null || err === void 0 ? void 0 : err.message);
236
+ })];
233
237
  case 1:
234
- data = (_g.sent()).data;
235
- if ((_c = data.errors) === null || _c === void 0 ? void 0 : _c.length)
236
- throw new Error(data.errors[0].description);
238
+ data = _f.sent();
237
239
  sendCustomEventToGTM({
238
240
  event: 'Send Event',
239
241
  event_category: 'User Registration Flow',
@@ -244,41 +246,41 @@ export var verifyAuth = createAsyncThunk('connect/verifyAuth', function (params,
244
246
  throw new Error('Lead id is missing');
245
247
  return [4, API.leadService.retrieveLead(lead_id)];
246
248
  case 2:
247
- leadResponse = (_g.sent()).data;
248
- if ((_d = leadResponse.errors) === null || _d === void 0 ? void 0 : _d.length)
249
+ leadResponse = (_f.sent()).data;
250
+ if ((_c = leadResponse.errors) === null || _c === void 0 ? void 0 : _c.length)
249
251
  throw new Error(leadResponse.errors[0].description);
250
252
  return [4, API.dataService.getChannelsOfServices({ page: 0 })];
251
253
  case 3:
252
- channels = (_g.sent()).list;
254
+ channels = (_f.sent()).list;
253
255
  leadResponse.channel_list = channels;
254
- _g.label = 4;
256
+ _f.label = 4;
255
257
  case 4:
256
- _g.trys.push([4, 6, , 7]);
258
+ _f.trys.push([4, 6, , 7]);
257
259
  return [4, API.brandService.retrieveBrand(leadResponse.brand.id)];
258
260
  case 5:
259
- brand = (_g.sent()).brand;
261
+ brand = (_f.sent()).brand;
260
262
  leadResponse.brand = __assign(__assign({}, leadResponse.brand), brand);
261
263
  return [3, 7];
262
264
  case 6:
263
- err_1 = _g.sent();
265
+ err_1 = _f.sent();
264
266
  return [3, 7];
265
267
  case 7:
266
- _g.trys.push([7, 9, , 10]);
268
+ _f.trys.push([7, 9, , 10]);
267
269
  return [4, API.brandService.getBrandList({ individual_id: leadResponse.individual_id })];
268
270
  case 8:
269
- brands = (_g.sent()).brands;
271
+ brands = (_f.sent()).brands;
270
272
  leadResponse.brand_list = fixBrandList(brands, channels);
271
273
  return [3, 10];
272
274
  case 9:
273
- err_2 = _g.sent();
275
+ err_2 = _f.sent();
274
276
  return [3, 10];
275
277
  case 10:
276
278
  countryCode = settings.data.businessCountry;
277
279
  phone = (leadResponse.contact || {}).phone;
278
280
  if (phone === null || phone === void 0 ? void 0 : phone.country_code)
279
281
  countryCode = findCountryByIddPrefix(settings.data.countries, phone.country_code);
280
- (_f = (_e = settings.data.appConfig).onStepCompleted) === null || _f === void 0 ? void 0 : _f.call(_e, settings.data.activeScreen.name, { otp: params.otp });
281
- thunkApi.dispatch(handleNextScreenStep());
282
+ (_e = (_d = settings.data.appConfig).onStepCompleted) === null || _e === void 0 ? void 0 : _e.call(_d, settings.data.activeScreen.name, { otp: params.otp });
283
+ thunkApi.dispatch(handleNextScreenStep('CONNECT_INDIVIDUAL_STEP'));
282
284
  return [2, { authResponse: data, leadResponse: leadResponse, countryCode: countryCode }];
283
285
  }
284
286
  });
@@ -763,23 +765,36 @@ export var skipUpdateLeadMobile = createAsyncThunk('connect/skipUpdateLeadMobile
763
765
  export var checkEmailAvailability = createAsyncThunk('checkEmailAvailability', function (_a, thunkApi) {
764
766
  var email = _a.email, cancelToken = _a.cancelToken, onSuccess = _a.onSuccess;
765
767
  return __awaiter(void 0, void 0, void 0, function () {
766
- var connect, requestBody, data;
767
- var _b, _c;
768
- return __generator(this, function (_d) {
769
- switch (_d.label) {
768
+ var responseBody, requestBody, data, retryData;
769
+ var _b, _c, _d, _e;
770
+ return __generator(this, function (_f) {
771
+ switch (_f.label) {
770
772
  case 0:
771
- connect = thunkApi.getState().connect;
773
+ responseBody = thunkApi.getState().connect.data.otpData.responseBody;
772
774
  requestBody = {
773
775
  email: email,
774
- country: (_c = (_b = connect.data.otpData.responseBody) === null || _b === void 0 ? void 0 : _b.leadData) === null || _c === void 0 ? void 0 : _c.country_code,
776
+ country: (_b = responseBody === null || responseBody === void 0 ? void 0 : responseBody.leadData) === null || _b === void 0 ? void 0 : _b.country_code,
775
777
  encryption_contract: ['email']
776
778
  };
777
779
  return [4, API.availabilityServices.checkEmail(requestBody, { cancelToken: cancelToken })];
778
780
  case 1:
779
- data = (_d.sent()).data;
780
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
781
- if (!data.errors)
781
+ data = (_f.sent()).data;
782
+ if (!data.errors) {
783
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
782
784
  return [2, { response: data, formData: email }];
785
+ }
786
+ if (!isInternalServerError((_d = (_c = data.errors) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.error)) {
787
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
788
+ return [2];
789
+ }
790
+ return [4, API.availabilityServices.checkEmail(requestBody, { cancelToken: cancelToken })];
791
+ case 2:
792
+ retryData = (_f.sent()).data;
793
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
794
+ if (!retryData.errors)
795
+ return [2, { response: retryData, formData: email }];
796
+ if (isInternalServerError((_e = retryData.errors) === null || _e === void 0 ? void 0 : _e[0].error))
797
+ return [2, { response: { is_available: true }, formData: email }];
783
798
  return [2];
784
799
  }
785
800
  });
@@ -1122,9 +1137,11 @@ export var connectSlice = createSlice({
1122
1137
  state.loading = true;
1123
1138
  state.error = null;
1124
1139
  })
1125
- .addCase(verifyAuth.rejected, function (state, action) {
1140
+ .addCase(verifyAuth.rejected, function (state, _a) {
1141
+ var message = _a.error.message;
1126
1142
  state.loading = false;
1127
- state.error = action.error.message;
1143
+ if (!isAuthenticationVerificationFailed(message))
1144
+ state.error = message;
1128
1145
  })
1129
1146
  .addCase(updateLeadDOB.fulfilled, function (state, action) {
1130
1147
  state.loading = false;
@@ -82,14 +82,15 @@ export declare const verifyNafathIdentityAsync: import("@reduxjs/toolkit").Async
82
82
  isNextScreenIsDob: boolean;
83
83
  }, verifyPACIAsyncParams, {}>;
84
84
  export declare const verifyPaciLeadIdentityAsync: import("@reduxjs/toolkit").AsyncThunk<any, verifyPACIAsyncParams, {}>;
85
+ interface EmailCheckProps {
86
+ email: string;
87
+ cancelToken: CancelToken;
88
+ onSuccess?: () => void;
89
+ }
85
90
  export declare const checkEmailAvailabilityAsync: import("@reduxjs/toolkit").AsyncThunk<{
86
91
  response: any;
87
92
  formData: string;
88
- } | undefined, {
89
- email: string;
90
- cancelToken: CancelToken;
91
- onSuccess?: (() => void) | undefined;
92
- }, {}>;
93
+ } | undefined, EmailCheckProps, {}>;
93
94
  export declare const checkBrandNameAvailabilityAsync: import("@reduxjs/toolkit").AsyncThunk<{
94
95
  response: any;
95
96
  formData: {
@@ -61,7 +61,7 @@ import { FlowsTypes, AuthForType, BusinessType, LicenseType, AuthForScreen } fro
61
61
  import API from '../../../api';
62
62
  import { ADD_NEW_ENTITY, COLLECT_DOB_INFO_NAFATH, CONNECT_EXPRESS_STEP_NAMES, IDENTIFICATION_TYPE, NAFATH_PACI_TIMEOUT_DURATION, NAFATH_VERIFICATION_FAILED, OTHER_CR_LICENSE, OTHER_FL_LICENSE, SCOPE_AUTH, SCOPE_MERCHANT } from '../../../constants';
63
63
  import { defaultCountry } from '../../../constants';
64
- import { getIndividualName, capitalizeTheFirstLetterOfEachWord, sleep, findCountryByIddPrefix, concatenateObjectValues, isSA, isKW, isOtherThanKWOrSA, sendCustomEventToGTM, sendCustomDimension, getMetaData, isNetworkError, isTimeoutError } from '../../../utils';
64
+ import { getIndividualName, capitalizeTheFirstLetterOfEachWord, sleep, findCountryByIddPrefix, concatenateObjectValues, isSA, isKW, isOtherThanKWOrSA, sendCustomEventToGTM, sendCustomDimension, getMetaData, isNetworkError, isTimeoutError, isInternalServerError, isAuthenticationVerificationFailed } from '../../../utils';
65
65
  export var updateBusinessCountryAsync = createAsyncThunk('connectExpress/updateBusinessCountryAsync', function (countryCode, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
66
66
  var connectExpress, payload, data;
67
67
  return __generator(this, function (_a) {
@@ -499,7 +499,11 @@ export var verifyMobileOtpAsync = createAsyncThunk('connectExpress/verifyMobileO
499
499
  step_name: CONNECT_EXPRESS_STEP_NAMES.VERIFY_AUTH_MOBILE,
500
500
  encryption_contract: ['data']
501
501
  };
502
- return [4, API.authService.verifyExpressAuth(payload)];
502
+ return [4, API.authService.verifyExpressAuth(payload).catch(function (err) {
503
+ if (isAuthenticationVerificationFailed(err === null || err === void 0 ? void 0 : err.message))
504
+ thunkApi.dispatch(handleNextScreenStep('CONNECT_EXPRESS_OTP_VERIFY_SECURITY_ERROR_STEP'));
505
+ throw new Error(err === null || err === void 0 ? void 0 : err.message);
506
+ })];
503
507
  case 1:
504
508
  data = _h.sent();
505
509
  sendCustomEventToGTM({
@@ -838,23 +842,36 @@ export var verifyPaciLeadIdentityAsync = createAsyncThunk('connectExpress/verify
838
842
  export var checkEmailAvailabilityAsync = createAsyncThunk('connectExpress/CheckEmailAvailabilityAsync', function (_a, thunkApi) {
839
843
  var email = _a.email, cancelToken = _a.cancelToken, onSuccess = _a.onSuccess;
840
844
  return __awaiter(void 0, void 0, void 0, function () {
841
- var connectExpress, requestBody, data;
842
- var _b, _c;
843
- return __generator(this, function (_d) {
844
- switch (_d.label) {
845
+ var responseData, requestBody, data, retryData;
846
+ var _b, _c, _d, _e, _f;
847
+ return __generator(this, function (_g) {
848
+ switch (_g.label) {
845
849
  case 0:
846
- connectExpress = thunkApi.getState().connectExpress;
850
+ responseData = thunkApi.getState().connectExpress.data.responseData;
847
851
  requestBody = {
848
852
  email: email,
849
- country: (_c = (_b = connectExpress.data.responseData) === null || _b === void 0 ? void 0 : _b.leadData) === null || _c === void 0 ? void 0 : _c.country_code,
853
+ country: (_b = responseData === null || responseData === void 0 ? void 0 : responseData.leadData) === null || _b === void 0 ? void 0 : _b.country_code,
850
854
  encryption_contract: ['email']
851
855
  };
852
856
  return [4, API.availabilityServices.checkEmail(requestBody, { cancelToken: cancelToken })];
853
857
  case 1:
854
- data = (_d.sent()).data;
855
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
856
- if (!data.errors)
858
+ data = (_g.sent()).data;
859
+ if (!data.errors) {
860
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
857
861
  return [2, { response: data, formData: email }];
862
+ }
863
+ if (!isInternalServerError((_d = (_c = data.errors) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.error)) {
864
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
865
+ return [2];
866
+ }
867
+ return [4, API.availabilityServices.checkEmail(requestBody, { cancelToken: cancelToken })];
868
+ case 2:
869
+ retryData = (_g.sent()).data;
870
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
871
+ if (!retryData.errors)
872
+ return [2, { response: retryData, formData: email }];
873
+ if (isInternalServerError((_f = (_e = retryData.errors) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.error))
874
+ return [2, { response: { is_available: true }, formData: email }];
858
875
  return [2];
859
876
  }
860
877
  });
@@ -1294,7 +1311,11 @@ export var verifyAuthMobileOtpAsync = createAsyncThunk('connectExpress/verifyAut
1294
1311
  step_name: CONNECT_EXPRESS_STEP_NAMES.VERIFY_AUTH_MOBILE_OTP,
1295
1312
  encryption_contract: ['data']
1296
1313
  };
1297
- return [4, API.authService.verifyExpressLeadIdentity(payload)];
1314
+ return [4, API.authService.verifyExpressLeadIdentity(payload).catch(function (err) {
1315
+ if (isAuthenticationVerificationFailed(err === null || err === void 0 ? void 0 : err.message))
1316
+ thunkApi.dispatch(handleNextScreenStep('CONNECT_EXPRESS_OTP_VERIFY_SECURITY_ERROR_STEP'));
1317
+ throw new Error(err === null || err === void 0 ? void 0 : err.message);
1318
+ })];
1298
1319
  case 1:
1299
1320
  data = _e.sent();
1300
1321
  (_d = (_c = settings.data.appConfig).onStepCompleted) === null || _d === void 0 ? void 0 : _d.call(_c, settings.data.activeScreen.name, params);
@@ -1699,9 +1720,11 @@ export var connectSlice = createSlice({
1699
1720
  state.loading = false;
1700
1721
  state.data.responseData = __assign(__assign({}, state.data.responseData), { authData: __assign(__assign({}, (_a = state.data.responseData) === null || _a === void 0 ? void 0 : _a.authData), action.payload) });
1701
1722
  })
1702
- .addCase(verifyMobileOtpAsync.rejected, function (state, action) {
1723
+ .addCase(verifyMobileOtpAsync.rejected, function (state, _a) {
1724
+ var message = _a.error.message;
1703
1725
  state.loading = false;
1704
- state.error = action.error.message;
1726
+ if (!isAuthenticationVerificationFailed(message))
1727
+ state.error = message;
1705
1728
  })
1706
1729
  .addCase(verifyNafathAsync.pending, function (state) {
1707
1730
  state.loading = true;
@@ -1929,6 +1952,7 @@ export var connectSlice = createSlice({
1929
1952
  state.loading = false;
1930
1953
  state.error = null;
1931
1954
  state.data.individualData.mobile = action.payload.formData.mobile;
1955
+ state.data.individualData.countryCode = action.payload.formData.countryCode;
1932
1956
  state.data.responseData = __assign(__assign({}, state.data.responseData), { individualData: action.payload.leadResponse, verifyAuthMobile: action.payload.leadResponse });
1933
1957
  state.data.verifyAuthOtpData.authFor = AuthForScreen.MOBILE_OWNERSHIP;
1934
1958
  })
@@ -1964,9 +1988,11 @@ export var connectSlice = createSlice({
1964
1988
  state.loading = true;
1965
1989
  state.error = null;
1966
1990
  })
1967
- .addCase(verifyAuthMobileOtpAsync.rejected, function (state, action) {
1991
+ .addCase(verifyAuthMobileOtpAsync.rejected, function (state, _a) {
1992
+ var message = _a.error.message;
1968
1993
  state.loading = false;
1969
- state.error = action.error.message;
1994
+ if (!isAuthenticationVerificationFailed(message))
1995
+ state.error = message;
1970
1996
  })
1971
1997
  .addCase(resendLeadMobileAuthOTP.pending, function (state) {
1972
1998
  state.loading = true;
@@ -63,7 +63,7 @@ import { BusinessType, DocumentPurpose, FlowsTypes, LicenseType } from '../../..
63
63
  import { handleNextScreenStep, handlePrevScreenStep, handlePublicKey, handleSetCountryByIso2, onCloseComplete } from '../../../app/settings';
64
64
  import { ENTITY_STEP_NAMES } from '../../../constants';
65
65
  import moment from 'moment';
66
- import { convertNumbers2English, getRecentDocumentBasedOnPurpose, hasVerifiedValue, hasNoneEditableValue, sleep, formatNumberAsCurrency, removeAllCharsFromNumber, retrieveIndividualData, sendCustomEventToGTM } from '../../../utils';
66
+ import { convertNumbers2English, getRecentDocumentBasedOnPurpose, hasVerifiedValue, hasNoneEditableValue, sleep, formatNumberAsCurrency, removeAllCharsFromNumber, retrieveIndividualData, sendCustomEventToGTM, isAuthenticationVerificationFailed } from '../../../utils';
67
67
  export var verifyLeadToken = createAsyncThunk('entityVerifyLeadToken', function (_a, thunkApi) {
68
68
  var token = _a.token, isInternally = _a.isInternally;
69
69
  return __awaiter(void 0, void 0, void 0, function () {
@@ -145,9 +145,9 @@ export var resendOTP = createAsyncThunk('entityResendOTP', function (params, thu
145
145
  }); });
146
146
  export var verifyEntityLeadOTP = createAsyncThunk('verifyEntityLeadOTP', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
147
147
  var _a, entity, settings, responseBody, payload, data, _b, entity_id, config, boardId, country_code, entityData, publicKey, countryIso2, data_2, entityTypes;
148
- var _c, _d, _e, _f, _g, _h;
149
- return __generator(this, function (_j) {
150
- switch (_j.label) {
148
+ var _c, _d, _e, _f, _g;
149
+ return __generator(this, function (_h) {
150
+ switch (_h.label) {
151
151
  case 0:
152
152
  _a = thunkApi.getState(), entity = _a.entity, settings = _a.settings;
153
153
  responseBody = entity.data.verify.responseBody;
@@ -158,11 +158,13 @@ export var verifyEntityLeadOTP = createAsyncThunk('verifyEntityLeadOTP', functio
158
158
  step_name: ENTITY_STEP_NAMES.PHONE_AUTH,
159
159
  encryption_contract: ['data']
160
160
  };
161
- return [4, API.leadService.verifyLeadOTP(payload)];
161
+ return [4, API.leadService.verifyTokenOTP(payload).catch(function (err) {
162
+ if (isAuthenticationVerificationFailed(err === null || err === void 0 ? void 0 : err.message))
163
+ thunkApi.dispatch(handleNextScreenStep('ENTITY_OTP_VERIFY_SECURITY_ERROR_STEP'));
164
+ throw new Error(err === null || err === void 0 ? void 0 : err.message);
165
+ })];
162
166
  case 1:
163
- data = (_j.sent()).data;
164
- if ((_d = data === null || data === void 0 ? void 0 : data.errors) === null || _d === void 0 ? void 0 : _d.length)
165
- throw new Error(data.errors[0].description);
167
+ data = _h.sent();
166
168
  _b = data || {}, entity_id = _b.entity_id, config = _b.config, boardId = _b.id, country_code = _b.country_code;
167
169
  entityData = undefined;
168
170
  publicKey = config === null || config === void 0 ? void 0 : config.public_key;
@@ -174,22 +176,22 @@ export var verifyEntityLeadOTP = createAsyncThunk('verifyEntityLeadOTP', functio
174
176
  if (!!entity_id) return [3, 3];
175
177
  return [4, API.boardService.retrieveBoardDetails(boardId)];
176
178
  case 2:
177
- data_2 = _j.sent();
178
- if (!((_e = data_2 === null || data_2 === void 0 ? void 0 : data_2.entity) === null || _e === void 0 ? void 0 : _e.id))
179
+ data_2 = _h.sent();
180
+ if (!((_d = data_2 === null || data_2 === void 0 ? void 0 : data_2.entity) === null || _d === void 0 ? void 0 : _d.id))
179
181
  throw new Error('entity_id_missing');
180
182
  entityData = data_2;
181
183
  return [3, 5];
182
184
  case 3: return [4, API.entityService.retrieveEntity(entity_id)];
183
185
  case 4:
184
- entityData = _j.sent();
185
- _j.label = 5;
186
+ entityData = _h.sent();
187
+ _h.label = 5;
186
188
  case 5:
187
- if (!countryIso2 && ((_f = entityData === null || entityData === void 0 ? void 0 : entityData.entity) === null || _f === void 0 ? void 0 : _f.country))
189
+ if (!countryIso2 && ((_e = entityData === null || entityData === void 0 ? void 0 : entityData.entity) === null || _e === void 0 ? void 0 : _e.country))
188
190
  thunkApi.dispatch(handleSetCountryByIso2(entityData.entity.country));
189
- (_h = (_g = settings.data.appConfig).onStepCompleted) === null || _h === void 0 ? void 0 : _h.call(_g, settings.data.activeScreen.name, { otp: params.otp });
191
+ (_g = (_f = settings.data.appConfig).onStepCompleted) === null || _g === void 0 ? void 0 : _g.call(_f, settings.data.activeScreen.name, { otp: params.otp });
190
192
  return [4, API.entityService.retrieveEntityType()];
191
193
  case 6:
192
- entityTypes = _j.sent();
194
+ entityTypes = _h.sent();
193
195
  sleep(100).then(function () { return thunkApi.dispatch(handleNextScreenStep('ENTITY_NAME_STEP')); });
194
196
  return [2, {
195
197
  data: data,
@@ -649,9 +651,11 @@ export var entitySlice = createSlice({
649
651
  state.data.entityCapitalData.capitalShareValue = formatNumberAsCurrency(shares === null || shares === void 0 ? void 0 : shares.value);
650
652
  state.data.entityNameData = __assign(__assign({}, state.data.entityNameData), { responseBody: __assign(__assign({}, state.data.entityNameData.responseBody), { entity_id: entity === null || entity === void 0 ? void 0 : entity.id }) });
651
653
  })
652
- .addCase(verifyEntityLeadOTP.rejected, function (state, action) {
654
+ .addCase(verifyEntityLeadOTP.rejected, function (state, _a) {
655
+ var message = _a.error.message;
653
656
  state.loading = false;
654
- state.error = action.error.message;
657
+ if (!isAuthenticationVerificationFailed(message))
658
+ state.error = message;
655
659
  })
656
660
  .addCase(updateEntityName.pending, function (state) {
657
661
  state.loading = true;