@tap-payments/auth-jsconnect 2.8.98-development → 2.8.99-development

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 (69) hide show
  1. package/build/@types/app.d.ts +2 -1
  2. package/build/@types/app.js +1 -0
  3. package/build/api/auth.d.ts +4 -0
  4. package/build/api/index.d.ts +5 -2
  5. package/build/api/lead.d.ts +2 -0
  6. package/build/api/lead.js +16 -0
  7. package/build/api/user.d.ts +7 -0
  8. package/build/api/user.js +9 -1
  9. package/build/app/rootReducer.d.ts +1 -0
  10. package/build/app/rootReducer.js +3 -1
  11. package/build/app/store.d.ts +2 -0
  12. package/build/assets/locales/ar.json +24 -13
  13. package/build/assets/locales/en.json +21 -10
  14. package/build/constants/app.d.ts +10 -0
  15. package/build/constants/app.js +54 -0
  16. package/build/constants/flows.d.ts +22 -0
  17. package/build/constants/flows.js +23 -0
  18. package/build/constants/index.d.ts +1 -0
  19. package/build/constants/index.js +1 -0
  20. package/build/features/app/individual/individualStore.d.ts +1 -1
  21. package/build/features/app/individual/individualStore.js +38 -29
  22. package/build/features/app/kyc/kycStore.d.ts +67 -0
  23. package/build/features/app/kyc/kycStore.js +410 -0
  24. package/build/features/featuresScreens.d.ts +1 -0
  25. package/build/features/featuresScreens.js +38 -0
  26. package/build/features/kyc/KYC.d.ts +11 -0
  27. package/build/features/kyc/KYC.js +95 -0
  28. package/build/features/kyc/index.d.ts +1 -0
  29. package/build/features/kyc/index.js +1 -0
  30. package/build/features/kyc/screens/Loading/Loading.d.ts +4 -0
  31. package/build/features/kyc/screens/Loading/Loading.js +10 -0
  32. package/build/features/kyc/screens/Loading/index.d.ts +2 -0
  33. package/build/features/kyc/screens/Loading/index.js +2 -0
  34. package/build/features/kyc/screens/OperatorError/OperatorError.d.ts +5 -0
  35. package/build/features/kyc/screens/OperatorError/OperatorError.js +9 -0
  36. package/build/features/kyc/screens/OperatorError/index.d.ts +2 -0
  37. package/build/features/kyc/screens/OperatorError/index.js +2 -0
  38. package/build/features/kyc/screens/Success/Success.d.ts +5 -0
  39. package/build/features/kyc/screens/Success/Success.js +19 -0
  40. package/build/features/kyc/screens/Success/index.d.ts +2 -0
  41. package/build/features/kyc/screens/Success/index.js +2 -0
  42. package/build/features/kyc/screens/Terms/Header.d.ts +6 -0
  43. package/build/features/kyc/screens/Terms/Header.js +36 -0
  44. package/build/features/kyc/screens/Terms/Terms.d.ts +4 -0
  45. package/build/features/kyc/screens/Terms/Terms.js +72 -0
  46. package/build/features/kyc/screens/Terms/index.d.ts +2 -0
  47. package/build/features/kyc/screens/Terms/index.js +2 -0
  48. package/build/features/kyc/screens/Users/Users.d.ts +3 -0
  49. package/build/features/kyc/screens/Users/Users.js +73 -0
  50. package/build/features/kyc/screens/Users/index.d.ts +2 -0
  51. package/build/features/kyc/screens/Users/index.js +2 -0
  52. package/build/features/kyc/screens/VerifyNafath/VerifyNafath.d.ts +5 -0
  53. package/build/features/kyc/screens/VerifyNafath/VerifyNafath.js +45 -0
  54. package/build/features/kyc/screens/VerifyNafath/index.d.ts +3 -0
  55. package/build/features/kyc/screens/VerifyNafath/index.js +2 -0
  56. package/build/features/kyc/screens/VerifyPaci/VerifyPACI.d.ts +5 -0
  57. package/build/features/kyc/screens/VerifyPaci/VerifyPACI.js +44 -0
  58. package/build/features/kyc/screens/VerifyPaci/index.d.ts +3 -0
  59. package/build/features/kyc/screens/VerifyPaci/index.js +2 -0
  60. package/build/features/shared/SuccessScreen/SuccessScreen.js +1 -1
  61. package/build/hooks/useAppDispatch.d.ts +1 -0
  62. package/build/hooks/useSanitizedTranslation.d.ts +2 -1
  63. package/build/hooks/useSanitizedTranslation.js +2 -2
  64. package/build/index.d.ts +3 -2
  65. package/build/index.js +4 -2
  66. package/build/theme/shadows.js +1 -1
  67. package/build/utils/string.d.ts +1 -0
  68. package/build/utils/string.js +4 -0
  69. package/package.json +1 -1
@@ -673,23 +673,27 @@ export var updateIndividualPersonalInfo = createAsyncThunk('individual/updateInd
673
673
  export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', function (_a, thunkApi) {
674
674
  var formData = _a.formData, originalFormData = _a.originalFormData, isDirty = _a.isDirty;
675
675
  return __awaiter(void 0, void 0, void 0, function () {
676
- var _b, settings, individual, _c, recipient, user, userList, business, id, _d, objects, ids, isKWOrSAValue, occupation, sourceIncome, monthlyIncome, isPEP, isInfluencer, shareCount, shareValue, civilID, signatureFileId, isAuthorized, isOccupationNonEditable, isSourceIncomeNonEditable, isPEPNonEditable, isInfluencerNonEditable, isMonthlyIncomeNonEditable, isAuthorizedNonEditable, isSharesAvailable, pepInfo, influencerInfo, occupationInfo, sourceIncomeInfo, monthlyIncomeInfo, isAuthorizedInfo, userPayload, shareHolderPayload, boardMemberPayload, buyerMemberPayload, _e, isUser, isShareholder, isBoardMember, isBuyer, isCustomer, isUserORBuyerType, payload, businessCountry, hasCivilIdDocument, hasSignatureDocument, isSendSignatureFile, civilIdDocument, signatureDocument, documentBody, documentBody, documentsList, documentBody, data, individualData, requestBody, user_2, userListRes;
677
- var _f, _g;
678
- return __generator(this, function (_h) {
679
- switch (_h.label) {
676
+ var _b, settings, individual, _c, verify, individualPersonalData, _d, recipient, user, userList, business, individualResData, userRes, userResInfo, id, _e, objects, ids, isKWOrSAValue, occupation, sourceIncome, monthlyIncome, isPEP, isInfluencer, shareCount, shareValue, civilID, signatureFileId, isAuthorized, isOccupationNonEditable, isSourceIncomeNonEditable, isPEPNonEditable, isInfluencerNonEditable, isMonthlyIncomeNonEditable, isAuthorizedNonEditable, isSharesAvailable, pepInfo, influencerInfo, occupationInfo, sourceIncomeInfo, monthlyIncomeInfo, isAuthorizedInfo, userPayload, shareHolderPayload, boardMemberPayload, buyerMemberPayload, _f, isUser, isShareholder, isBoardMember, isBuyer, isCustomer, isUserORBuyerType, payload, businessCountry, hasCivilIdDocument, hasSignatureDocument, isSendSignatureFile, civilIdDocument, signatureDocument, documentBody, documentBody, documentsList, documentBody, data, individualData, requestBody, user_2, userListRes;
677
+ var _g, _h;
678
+ return __generator(this, function (_j) {
679
+ switch (_j.label) {
680
680
  case 0:
681
681
  _b = thunkApi.getState(), settings = _b.settings, individual = _b.individual;
682
- _c = individual.data.verify.responseBody || {}, recipient = _c.recipient, user = _c.user, userList = _c.userList, business = _c.business;
683
- id = (((user === null || user === void 0 ? void 0 : user.is_authorized) ? user : recipient) || {}).id;
684
- _d = user || {}, objects = _d.objects, ids = _d.ids;
682
+ _c = individual.data, verify = _c.verify, individualPersonalData = _c.individualPersonalData;
683
+ _d = verify.responseBody || {}, recipient = _d.recipient, user = _d.user, userList = _d.userList, business = _d.business;
684
+ individualResData = individualPersonalData.responseBody || {};
685
+ userRes = (sortUserList(mapUserList(individualResData === null || individualResData === void 0 ? void 0 : individualResData.individuals)) || [])[0];
686
+ userResInfo = userRes || user;
687
+ id = (((userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.is_authorized) ? userResInfo : recipient) || {}).id;
688
+ _e = userResInfo || {}, objects = _e.objects, ids = _e.ids;
685
689
  isKWOrSAValue = isKWOrSA(settings.data.businessCountry.iso2);
686
690
  occupation = formData.occupation, sourceIncome = formData.sourceIncome, monthlyIncome = formData.monthlyIncome, isPEP = formData.isPEP, isInfluencer = formData.isInfluencer, shareCount = formData.shareCount, shareValue = formData.shareValue, civilID = formData.civilID, signatureFileId = formData.signatureFileId, isAuthorized = formData.isAuthorized;
687
- isOccupationNonEditable = hasNoneEditableValue(user === null || user === void 0 ? void 0 : user.data_status, 'occupation');
688
- isSourceIncomeNonEditable = hasNoneEditableValue(user === null || user === void 0 ? void 0 : user.data_status, 'source_of_income');
689
- isPEPNonEditable = hasNoneEditableValue(user === null || user === void 0 ? void 0 : user.data_status, 'is_relative_PEP');
690
- isInfluencerNonEditable = hasNoneEditableValue(user === null || user === void 0 ? void 0 : user.data_status, 'is_influencer');
691
- isMonthlyIncomeNonEditable = hasNoneEditableValue(user === null || user === void 0 ? void 0 : user.data_status, 'monthly_income');
692
- isAuthorizedNonEditable = hasNoneEditableValue(user === null || user === void 0 ? void 0 : user.data_status, 'is_authorized');
691
+ isOccupationNonEditable = hasNoneEditableValue(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.data_status, 'occupation');
692
+ isSourceIncomeNonEditable = hasNoneEditableValue(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.data_status, 'source_of_income');
693
+ isPEPNonEditable = hasNoneEditableValue(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.data_status, 'is_relative_PEP');
694
+ isInfluencerNonEditable = hasNoneEditableValue(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.data_status, 'is_influencer');
695
+ isMonthlyIncomeNonEditable = hasNoneEditableValue(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.data_status, 'monthly_income');
696
+ isAuthorizedNonEditable = hasNoneEditableValue(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.data_status, 'is_authorized');
693
697
  isSharesAvailable = shareCount || shareValue;
694
698
  pepInfo = isPEPNonEditable || isPEP === null ? undefined : isPEP;
695
699
  influencerInfo = isInfluencerNonEditable || isInfluencer === null ? undefined : isInfluencer;
@@ -721,7 +725,7 @@ export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', funct
721
725
  source_income: sourceIncomeInfo,
722
726
  monthly_income: monthlyIncomeInfo
723
727
  };
724
- _e = getIndividualType(objects), isUser = _e.isUser, isShareholder = _e.isShareholder, isBoardMember = _e.isBoardMember, isBuyer = _e.isBuyer, isCustomer = _e.isCustomer;
728
+ _f = getIndividualType(objects), isUser = _f.isUser, isShareholder = _f.isShareholder, isBoardMember = _f.isBoardMember, isBuyer = _f.isBuyer, isCustomer = _f.isCustomer;
725
729
  isUserORBuyerType = isUser || isBuyer;
726
730
  payload = userPayload;
727
731
  if (objects === null || objects === void 0 ? void 0 : objects.length) {
@@ -731,8 +735,8 @@ export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', funct
731
735
  hasCivilIdDocument = (civilID || []).length > 0;
732
736
  hasSignatureDocument = (signatureFileId || []).length > 0;
733
737
  isSendSignatureFile = isAuthorized && isUserORBuyerType;
734
- civilIdDocument = getRecentDocumentBasedOnPurpose(user === null || user === void 0 ? void 0 : user.documents, DocumentPurpose.IDENTITY_DOCUMENT);
735
- signatureDocument = getRecentDocumentBasedOnPurpose(user === null || user === void 0 ? void 0 : user.documents, DocumentPurpose.CUSTOMER_SIGNATURE);
738
+ civilIdDocument = getRecentDocumentBasedOnPurpose(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.documents, DocumentPurpose.IDENTITY_DOCUMENT);
739
+ signatureDocument = getRecentDocumentBasedOnPurpose(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.documents, DocumentPurpose.CUSTOMER_SIGNATURE);
736
740
  if (!((civilIdDocument === null || civilIdDocument === void 0 ? void 0 : civilIdDocument.id) && hasCivilIdDocument)) return [3, 2];
737
741
  documentBody = {
738
742
  id: civilIdDocument.id,
@@ -740,8 +744,8 @@ export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', funct
740
744
  };
741
745
  return [4, API.documentService.addFilesToExistingDocument(documentBody)];
742
746
  case 1:
743
- _h.sent();
744
- _h.label = 2;
747
+ _j.sent();
748
+ _j.label = 2;
745
749
  case 2:
746
750
  if (!((signatureDocument === null || signatureDocument === void 0 ? void 0 : signatureDocument.id) && hasSignatureDocument && isSendSignatureFile)) return [3, 4];
747
751
  documentBody = {
@@ -750,8 +754,8 @@ export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', funct
750
754
  };
751
755
  return [4, API.documentService.addFilesToExistingDocument(documentBody)];
752
756
  case 3:
753
- _h.sent();
754
- _h.label = 4;
757
+ _j.sent();
758
+ _j.label = 4;
755
759
  case 4:
756
760
  documentsList = [];
757
761
  if (hasCivilIdDocument && !(civilIdDocument === null || civilIdDocument === void 0 ? void 0 : civilIdDocument.id))
@@ -766,28 +770,33 @@ export var updateIndividualInfo = createAsyncThunk('updateIndividualInfo', funct
766
770
  };
767
771
  return [4, API.documentService.updateDocumentInfo(documentBody)];
768
772
  case 5:
769
- _h.sent();
770
- _h.label = 6;
773
+ _j.sent();
774
+ _j.label = 6;
771
775
  case 6:
772
- data = undefined, individualData = user || {};
776
+ data = undefined, individualData = userResInfo || {};
773
777
  requestBody = __assign(__assign({ ids: (ids === null || ids === void 0 ? void 0 : ids.length) ? ids : [id] }, payload), { encryption_contract: [], step_name: INDIVIDUAl_STEP_NAMES.INDIVIDUAl_INFO });
774
778
  if (!isDirty) return [3, 8];
775
779
  return [4, API.individualService.updateMultipleIndividual(requestBody)];
776
780
  case 7:
777
- data = _h.sent();
781
+ data = _j.sent();
778
782
  user_2 = (sortUserList(mapUserList(data === null || data === void 0 ? void 0 : data.individuals)) || [])[0];
779
783
  individualData = user_2;
780
- _h.label = 8;
784
+ _j.label = 8;
781
785
  case 8:
782
786
  userListRes = userList || [];
783
- if (!((user === null || user === void 0 ? void 0 : user.id) === (individualData === null || individualData === void 0 ? void 0 : individualData.id) && !(user === null || user === void 0 ? void 0 : user.is_authorized) && isAuthorized && (business === null || business === void 0 ? void 0 : business.id))) return [3, 10];
787
+ userListRes = userListRes.map(function (u) {
788
+ if (u.id === individualData.id) {
789
+ return individualData;
790
+ }
791
+ });
792
+ if (!((userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.id) === (individualData === null || individualData === void 0 ? void 0 : individualData.id) && !(userResInfo === null || userResInfo === void 0 ? void 0 : userResInfo.is_authorized) && isAuthorized && (business === null || business === void 0 ? void 0 : business.id))) return [3, 10];
784
793
  return [4, thunkApi.dispatch(getIndividualList(business === null || business === void 0 ? void 0 : business.id)).unwrap()];
785
794
  case 9:
786
- userListRes = _h.sent();
787
- _h.label = 10;
795
+ userListRes = _j.sent();
796
+ _j.label = 10;
788
797
  case 10:
789
798
  thunkApi.dispatch(handleNextScreenStep());
790
- (_g = (_f = settings.data.appConfig).onStepCompleted) === null || _g === void 0 ? void 0 : _g.call(_f, settings.data.activeScreen.name, requestBody);
799
+ (_h = (_g = settings.data.appConfig).onStepCompleted) === null || _h === void 0 ? void 0 : _h.call(_g, settings.data.activeScreen.name, requestBody);
791
800
  return [2, { data: data, formData: originalFormData, individualData: individualData, userList: userListRes, isKWOrSACountry: isKWOrSAValue }];
792
801
  }
793
802
  });
@@ -0,0 +1,67 @@
1
+ import { RootState } from '../../../app/store';
2
+ import { ActionState, FlowsTypes, NIDFormValues, OTPFormValues, SharedState, User } from '../../../@types';
3
+ interface VerifyLeadTokenProps {
4
+ token: string;
5
+ }
6
+ export declare const verifyTokenApi: import("@reduxjs/toolkit").AsyncThunk<{
7
+ data: any;
8
+ userList: any;
9
+ token: string;
10
+ nextScreen: import("../../../constants").KYC_FLOWS;
11
+ }, VerifyLeadTokenProps, {}>;
12
+ export declare const createPaciAuth: import("@reduxjs/toolkit").AsyncThunk<{
13
+ data: any;
14
+ nextScreen: import("../../../constants").KYC_FLOWS;
15
+ }, User, {}>;
16
+ export declare const createNafathAuth: import("@reduxjs/toolkit").AsyncThunk<{
17
+ data: any;
18
+ nextScreen: import("../../../constants").KYC_FLOWS;
19
+ }, User, {}>;
20
+ interface verifyNafathParams {
21
+ onSuccess: () => void;
22
+ onFailure?: () => void;
23
+ }
24
+ export declare const verifyNafath: import("@reduxjs/toolkit").AsyncThunk<{
25
+ data: any;
26
+ createAuthData: any;
27
+ nextScreen?: undefined;
28
+ } | {
29
+ data: any;
30
+ nextScreen: import("../../../constants").KYC_FLOWS;
31
+ createAuthData: any;
32
+ }, verifyNafathParams, {}>;
33
+ interface verifyPACIParams {
34
+ onSuccess: () => void;
35
+ }
36
+ export declare const verifyPaci: import("@reduxjs/toolkit").AsyncThunk<{
37
+ data: any;
38
+ nextScreen: import("../../../constants").KYC_FLOWS;
39
+ createAuthData: any;
40
+ }, verifyPACIParams, {}>;
41
+ export declare const updateKYCSuccess: import("@reduxjs/toolkit").AsyncThunk<{
42
+ data: any;
43
+ } | undefined, void, {}>;
44
+ interface ResponseData {
45
+ responseData?: Record<string, any>;
46
+ }
47
+ declare type VerifyData = {
48
+ token: string;
49
+ };
50
+ export interface KYCData {
51
+ flowName: FlowsTypes;
52
+ verify: VerifyData;
53
+ otpData: OTPFormValues;
54
+ idInfo: NIDFormValues;
55
+ }
56
+ export interface KYCDataState extends SharedState<KYCData & ResponseData> {
57
+ customLoading?: boolean;
58
+ }
59
+ export declare const kycSlice: import("@reduxjs/toolkit").Slice<KYCDataState, {
60
+ clearError: (state: KYCDataState) => void;
61
+ setError(state: KYCDataState, action: ActionState<string>): void;
62
+ stopLoader: (state: KYCDataState) => void;
63
+ }, "kyc/store">;
64
+ export declare const clearError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setError: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>, stopLoader: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
65
+ declare const _default: import("redux").Reducer<KYCDataState, import("redux").AnyAction>;
66
+ export default _default;
67
+ export declare const kycSelector: (state: RootState) => KYCDataState;
@@ -0,0 +1,410 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ var _a;
49
+ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
50
+ import { handlePublicKey, handleSetCountryByIso2 } from '../../../app/settings';
51
+ import { FlowsTypes } from '../../../@types';
52
+ import { CONNECT_FLOWS, IDENTIFICATION_TYPE, KYC_STEP_NAMES } from '../../../constants';
53
+ import API from '../../../api';
54
+ import { sendCustomEventToGTM, sleep } from '../../../utils';
55
+ export var verifyTokenApi = createAsyncThunk('kyc/verifyTokenApi', function (_a, thunkApi) {
56
+ var token = _a.token;
57
+ return __awaiter(void 0, void 0, void 0, function () {
58
+ var payload, data, _b, config, country_code, segment_id, boardId, recipient, publicKey, nextScreen, userList, userPayload, users;
59
+ return __generator(this, function (_c) {
60
+ switch (_c.label) {
61
+ case 0:
62
+ payload = {
63
+ service_name: 'tap_email',
64
+ verify_token: token,
65
+ notification: {
66
+ sms: false
67
+ }
68
+ };
69
+ return [4, API.leadService.verifyToken(payload)];
70
+ case 1:
71
+ data = _c.sent();
72
+ _b = data || {}, config = _b.config, country_code = _b.country_code, segment_id = _b.segment_id, boardId = _b.id, recipient = _b.recipient;
73
+ publicKey = config === null || config === void 0 ? void 0 : config.public_key;
74
+ nextScreen = CONNECT_FLOWS.kyc.terms;
75
+ userList = [];
76
+ if (country_code)
77
+ thunkApi.dispatch(handleSetCountryByIso2(country_code));
78
+ if (publicKey)
79
+ thunkApi.dispatch(handlePublicKey(publicKey));
80
+ userPayload = {
81
+ page: 1,
82
+ limit: 25,
83
+ is_authorized: recipient.is_authorized,
84
+ segment_ids: [segment_id]
85
+ };
86
+ return [4, API.userService.getUserListUsingSegmentId(userPayload)];
87
+ case 2:
88
+ users = (_c.sent()).users;
89
+ userList = users || [];
90
+ return [2, {
91
+ data: __assign(__assign({}, data), { boardId: boardId }),
92
+ userList: userList,
93
+ token: token,
94
+ nextScreen: nextScreen
95
+ }];
96
+ }
97
+ });
98
+ });
99
+ });
100
+ export var createPaciAuth = createAsyncThunk('kyc/createPaciAuth', function (user, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
101
+ var _a, settings, kyc, verifyTokenData, _b, id, identification, requestBody, data, nextScreen;
102
+ var _c, _d;
103
+ return __generator(this, function (_e) {
104
+ switch (_e.label) {
105
+ case 0:
106
+ _a = thunkApi.getState(), settings = _a.settings, kyc = _a.kyc;
107
+ verifyTokenData = (kyc.data.responseData || {}).verifyTokenData;
108
+ _b = user || {}, id = _b.id, identification = _b.identification;
109
+ requestBody = {
110
+ country: settings.data.businessCountry.iso2,
111
+ lang: settings.data.language,
112
+ user_credentail: {
113
+ identification_id: identification === null || identification === void 0 ? void 0 : identification.id,
114
+ country_code: 'KW'
115
+ },
116
+ is_lead: false,
117
+ scope: 'auth',
118
+ board_id: verifyTokenData === null || verifyTokenData === void 0 ? void 0 : verifyTokenData.boardId,
119
+ user_id: id,
120
+ step_name: KYC_STEP_NAMES.KYC_CREATE_PACI,
121
+ encryption_contract: ['user_credentail.identification_id']
122
+ };
123
+ return [4, API.authService.createAuth(requestBody)];
124
+ case 1:
125
+ data = _e.sent();
126
+ (_d = (_c = settings.data.appConfig).onStepCompleted) === null || _d === void 0 ? void 0 : _d.call(_c, settings.data.activeScreen.name, requestBody.user_credentail);
127
+ nextScreen = CONNECT_FLOWS.kyc.verifyPACI;
128
+ return [2, { data: data, nextScreen: nextScreen }];
129
+ }
130
+ });
131
+ }); });
132
+ export var createNafathAuth = createAsyncThunk('kyc/createNafathAuth', function (user, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
133
+ var _a, settings, kyc, verifyTokenData, _b, id, identification, requestBody, data, nextScreen;
134
+ var _c, _d;
135
+ return __generator(this, function (_e) {
136
+ switch (_e.label) {
137
+ case 0:
138
+ _a = thunkApi.getState(), settings = _a.settings, kyc = _a.kyc;
139
+ verifyTokenData = (kyc.data.responseData || {}).verifyTokenData;
140
+ _b = user || {}, id = _b.id, identification = _b.identification;
141
+ requestBody = {
142
+ country: settings.data.businessCountry.iso2,
143
+ lang: settings.data.language,
144
+ user_credentail: {
145
+ identification_id: identification === null || identification === void 0 ? void 0 : identification.id,
146
+ identification_id_type: IDENTIFICATION_TYPE.NAFATH,
147
+ country_code: settings.data.businessCountry.iso2
148
+ },
149
+ is_lead: false,
150
+ scope: 'auth',
151
+ board_id: verifyTokenData === null || verifyTokenData === void 0 ? void 0 : verifyTokenData.boardId,
152
+ user_id: id,
153
+ step_name: KYC_STEP_NAMES.KYC_CREATE_NAFATH,
154
+ encryption_contract: ['user_credentail.country_code', 'user_credentail.identification_id', 'user_credentail.identification_id_type']
155
+ };
156
+ return [4, API.authService.createAuthKitNID(requestBody)];
157
+ case 1:
158
+ data = _e.sent();
159
+ (_d = (_c = settings.data.appConfig).onStepCompleted) === null || _d === void 0 ? void 0 : _d.call(_c, settings.data.activeScreen.name, requestBody);
160
+ nextScreen = CONNECT_FLOWS.kyc.verifyNafath;
161
+ return [2, { data: data, nextScreen: nextScreen }];
162
+ }
163
+ });
164
+ }); });
165
+ export var verifyNafath = createAsyncThunk('kyc/verifyNafath', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
166
+ var kyc, createAuthData, expiry, interval, maxCalls, count, data, isSuccess, isFailed, nextScreen;
167
+ var _a, _b, _c, _d;
168
+ return __generator(this, function (_e) {
169
+ switch (_e.label) {
170
+ case 0:
171
+ kyc = thunkApi.getState().kyc;
172
+ createAuthData = (kyc.data.responseData || {}).createAuthData;
173
+ expiry = (createAuthData === null || createAuthData === void 0 ? void 0 : createAuthData.expiry) || 120;
174
+ interval = 3;
175
+ maxCalls = Math.floor(expiry / interval);
176
+ count = 1;
177
+ _e.label = 1;
178
+ case 1:
179
+ if (!(count <= maxCalls)) return [3, 7];
180
+ if (thunkApi.signal.aborted) {
181
+ return [3, 7];
182
+ }
183
+ return [4, API.authService.getVerifyAuth(createAuthData === null || createAuthData === void 0 ? void 0 : createAuthData.auth_token)];
184
+ case 2:
185
+ data = _e.sent();
186
+ isSuccess = ((_a = data === null || data === void 0 ? void 0 : data.status) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'success';
187
+ isFailed = ((_b = data === null || data === void 0 ? void 0 : data.status) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'failed';
188
+ if (isFailed) {
189
+ (_c = params.onFailure) === null || _c === void 0 ? void 0 : _c.call(params);
190
+ return [2, { data: data, createAuthData: createAuthData }];
191
+ }
192
+ if (!isSuccess) return [3, 4];
193
+ (_d = params.onSuccess) === null || _d === void 0 ? void 0 : _d.call(params);
194
+ return [4, thunkApi.dispatch(updateKYCSuccess())];
195
+ case 3:
196
+ _e.sent();
197
+ nextScreen = CONNECT_FLOWS.kyc.success;
198
+ return [2, { data: data, nextScreen: nextScreen, createAuthData: createAuthData }];
199
+ case 4: return [4, sleep(interval * 1000)];
200
+ case 5:
201
+ _e.sent();
202
+ _e.label = 6;
203
+ case 6:
204
+ count++;
205
+ return [3, 1];
206
+ case 7: throw new Error('nafath_verification_failed');
207
+ }
208
+ });
209
+ }); });
210
+ export var verifyPaci = createAsyncThunk('kyc/verifyPaci', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
211
+ var kyc, createAuthData, expiry, interval, maxCalls, count, data, isSuccess, nextScreen;
212
+ var _a, _b;
213
+ return __generator(this, function (_c) {
214
+ switch (_c.label) {
215
+ case 0:
216
+ kyc = thunkApi.getState().kyc;
217
+ createAuthData = (kyc.data.responseData || {}).createAuthData;
218
+ expiry = (createAuthData === null || createAuthData === void 0 ? void 0 : createAuthData.expiry) || 120;
219
+ interval = 3;
220
+ maxCalls = Math.floor(expiry / interval);
221
+ count = 1;
222
+ _c.label = 1;
223
+ case 1:
224
+ if (!(count <= maxCalls)) return [3, 7];
225
+ if (thunkApi.signal.aborted) {
226
+ return [3, 7];
227
+ }
228
+ return [4, API.authService.getVerifyAuth(createAuthData === null || createAuthData === void 0 ? void 0 : createAuthData.auth_token)];
229
+ case 2:
230
+ data = _c.sent();
231
+ isSuccess = ((_a = data.status) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'success';
232
+ if (!isSuccess) return [3, 4];
233
+ (_b = params.onSuccess) === null || _b === void 0 ? void 0 : _b.call(params);
234
+ return [4, thunkApi.dispatch(updateKYCSuccess())];
235
+ case 3:
236
+ _c.sent();
237
+ nextScreen = CONNECT_FLOWS.kyc.success;
238
+ return [2, { data: data, nextScreen: nextScreen, createAuthData: createAuthData }];
239
+ case 4: return [4, sleep(interval * 1000)];
240
+ case 5:
241
+ _c.sent();
242
+ _c.label = 6;
243
+ case 6:
244
+ count++;
245
+ return [3, 1];
246
+ case 7: throw new Error('paci_verification_failed');
247
+ }
248
+ });
249
+ }); });
250
+ export var updateKYCSuccess = createAsyncThunk('kyc/updateKYCSuccess', function (params, thunkApi) { return __awaiter(void 0, void 0, void 0, function () {
251
+ var _a, settings, kyc, _b, boardId, infoId, payload, data;
252
+ var _c, _d, _e, _f, _g;
253
+ return __generator(this, function (_h) {
254
+ switch (_h.label) {
255
+ case 0:
256
+ _a = thunkApi.getState(), settings = _a.settings, kyc = _a.kyc;
257
+ _b = ((_c = kyc.data.responseData) === null || _c === void 0 ? void 0 : _c.verifyTokenData) || {}, boardId = _b.boardId, infoId = _b.board_info_id;
258
+ if (!boardId)
259
+ return [2];
260
+ payload = {
261
+ lang: settings.data.language,
262
+ step_name: KYC_STEP_NAMES.KYC_COMPLETED,
263
+ id: boardId
264
+ };
265
+ return [4, API.boardService.updateBoardInfo(__assign({ id: boardId, infoId: infoId }, payload))];
266
+ case 1:
267
+ data = _h.sent();
268
+ sendCustomEventToGTM({
269
+ event: 'Send Event',
270
+ event_category: 'Board Flows - KYC',
271
+ event_action: 'KYC Update Success Page',
272
+ event_label: settings.data.businessCountry.iso2
273
+ });
274
+ (_e = (_d = settings.data.appConfig).onStepCompleted) === null || _e === void 0 ? void 0 : _e.call(_d, settings.data.activeScreen.name, {});
275
+ (_g = (_f = settings.data.appConfig).onFlowCompleted) === null || _g === void 0 ? void 0 : _g.call(_f, { data: data });
276
+ return [2, { data: data }];
277
+ }
278
+ });
279
+ }); });
280
+ var initialState = {
281
+ error: null,
282
+ loading: false,
283
+ customLoading: false,
284
+ data: {
285
+ flowName: FlowsTypes.CONNECT,
286
+ verify: {
287
+ token: ''
288
+ },
289
+ otpData: {
290
+ otp: ''
291
+ },
292
+ idInfo: {
293
+ nid: '',
294
+ dob: ''
295
+ }
296
+ }
297
+ };
298
+ export var kycSlice = createSlice({
299
+ name: 'kyc/store',
300
+ initialState: initialState,
301
+ reducers: {
302
+ clearError: function (state) {
303
+ state.error = null;
304
+ },
305
+ setError: function (state, action) {
306
+ state.error = action.payload;
307
+ },
308
+ stopLoader: function (state) {
309
+ state.loading = false;
310
+ }
311
+ },
312
+ extraReducers: function (builder) {
313
+ builder
314
+ .addCase(verifyTokenApi.pending, function (state) {
315
+ state.error = null;
316
+ state.customLoading = true;
317
+ })
318
+ .addCase(verifyTokenApi.fulfilled, function (state, action) {
319
+ state.error = null;
320
+ state.customLoading = false;
321
+ var _a = action.payload || {}, data = _a.data, token = _a.token, userList = _a.userList;
322
+ state.data.responseData = {
323
+ verifyTokenData: data,
324
+ userList: userList
325
+ };
326
+ state.data.verify.token = token;
327
+ })
328
+ .addCase(verifyTokenApi.rejected, function (state, action) {
329
+ state.error = action.error.message;
330
+ state.customLoading = false;
331
+ })
332
+ .addCase(createNafathAuth.pending, function (state) {
333
+ state.loading = true;
334
+ state.error = null;
335
+ })
336
+ .addCase(createNafathAuth.fulfilled, function (state, action) {
337
+ state.loading = false;
338
+ state.error = null;
339
+ var data = action.payload.data;
340
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { createAuthData: data });
341
+ })
342
+ .addCase(createNafathAuth.rejected, function (state, action) {
343
+ state.loading = false;
344
+ state.error = action.error.message;
345
+ })
346
+ .addCase(verifyNafath.pending, function (state) {
347
+ state.loading = true;
348
+ state.error = null;
349
+ })
350
+ .addCase(verifyNafath.fulfilled, function (state, action) {
351
+ state.loading = false;
352
+ var data = action.payload.data;
353
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { verifyAuthData: data });
354
+ })
355
+ .addCase(verifyNafath.rejected, function (state, action) {
356
+ state.loading = false;
357
+ var error = action.error.message;
358
+ if (error !== 'Aborted') {
359
+ state.error = error;
360
+ }
361
+ })
362
+ .addCase(createPaciAuth.pending, function (state) {
363
+ state.loading = true;
364
+ state.error = null;
365
+ })
366
+ .addCase(createPaciAuth.fulfilled, function (state, action) {
367
+ state.loading = false;
368
+ state.error = null;
369
+ var data = action.payload.data;
370
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { createAuthData: data });
371
+ })
372
+ .addCase(createPaciAuth.rejected, function (state, action) {
373
+ state.loading = false;
374
+ state.error = action.error.message;
375
+ })
376
+ .addCase(verifyPaci.pending, function (state) {
377
+ state.loading = true;
378
+ state.error = null;
379
+ })
380
+ .addCase(verifyPaci.fulfilled, function (state, action) {
381
+ state.loading = false;
382
+ var data = action.payload.data;
383
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { verifyAuthData: data });
384
+ })
385
+ .addCase(verifyPaci.rejected, function (state, action) {
386
+ state.loading = false;
387
+ var error = action.error.message;
388
+ if (error !== 'Aborted') {
389
+ state.error = error;
390
+ }
391
+ })
392
+ .addCase(updateKYCSuccess.fulfilled, function (state, action) {
393
+ state.loading = false;
394
+ state.error = null;
395
+ var data = (action.payload || {}).data;
396
+ state.data.responseData = __assign(__assign({}, state.data.responseData), { boardSuccess: data });
397
+ })
398
+ .addCase(updateKYCSuccess.pending, function (state) {
399
+ state.loading = true;
400
+ state.error = null;
401
+ })
402
+ .addCase(updateKYCSuccess.rejected, function (state, action) {
403
+ state.loading = false;
404
+ state.error = action.error.message;
405
+ });
406
+ }
407
+ });
408
+ export var clearError = (_a = kycSlice.actions, _a.clearError), setError = _a.setError, stopLoader = _a.stopLoader;
409
+ export default kycSlice.reducer;
410
+ export var kycSelector = function (state) { return state.kyc; };
@@ -11,3 +11,4 @@ export declare const signInFeatureScreens: Array<FeatureScreenStep>;
11
11
  export declare const entityFeatureScreens: Array<FeatureScreenStep>;
12
12
  export declare const brandFeatureScreens: Array<FeatureScreenStep>;
13
13
  export declare const boardFeatureScreens: Array<FeatureScreenStep>;
14
+ export declare const kycFeatureScreens: Array<FeatureScreenStep>;