@os1-platform/dispatch-mobile 3.1.2 → 3.1.4
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.
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js +41 -21
- package/lib/commonjs/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/constants.js +2 -1
- package/lib/commonjs/components/executiontasks/validateOTP/constants.js.map +1 -1
- package/lib/commonjs/components/executiontasks/validateOTP/utils.js +12 -3
- package/lib/commonjs/components/executiontasks/validateOTP/utils.js.map +1 -1
- package/lib/commonjs/manager/dispatchCodes/ReasonCodeContainer.js +1 -1
- package/lib/commonjs/manager/dispatchCodes/ReasonCodeContainer.js.map +1 -1
- package/lib/commonjs/utils/Logger.js +18 -0
- package/lib/commonjs/utils/Logger.js.map +1 -1
- package/lib/commonjs/utils/SdkUtils.js +4 -1
- package/lib/commonjs/utils/SdkUtils.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js +42 -22
- package/lib/module/components/executiontasks/validateOTP/ValidateOTPET.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/constants.js +1 -0
- package/lib/module/components/executiontasks/validateOTP/constants.js.map +1 -1
- package/lib/module/components/executiontasks/validateOTP/utils.js +13 -4
- package/lib/module/components/executiontasks/validateOTP/utils.js.map +1 -1
- package/lib/module/manager/dispatchCodes/ReasonCodeContainer.js +1 -1
- package/lib/module/manager/dispatchCodes/ReasonCodeContainer.js.map +1 -1
- package/lib/module/utils/Logger.js +18 -0
- package/lib/module/utils/Logger.js.map +1 -1
- package/lib/module/utils/SdkUtils.js +4 -1
- package/lib/module/utils/SdkUtils.js.map +1 -1
- package/lib/typescript/components/executiontasks/validateOTP/constants.d.ts +1 -0
- package/lib/typescript/utils/Logger.d.ts +1 -0
- package/package.json +2 -1
- package/src/components/executiontasks/validateOTP/ValidateOTPET.tsx +40 -19
- package/src/components/executiontasks/validateOTP/constants.ts +2 -0
- package/src/components/executiontasks/validateOTP/utils.ts +26 -4
- package/src/manager/dispatchCodes/ReasonCodeContainer.ts +1 -1
- package/src/utils/Logger.ts +18 -0
- package/src/utils/SdkUtils.ts +3 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as jsonLogic from 'json-logic-js';
|
|
3
3
|
import Logger, { LOG_TYPE } from '../../../utils/Logger';
|
|
4
4
|
import { createApiData, getAxiosApiResponse } from '../../../utils/ApiUtils';
|
|
5
|
-
import { DEFAULT_RETRY_CONFIG } from './constants';
|
|
5
|
+
import { DEFAULT_RETRY_CONFIG, TAG_VERIFY_OTP } from './constants';
|
|
6
6
|
import Storage from '../../../utils/storage';
|
|
7
7
|
import { SHARED_PREFERENCE_RESEND_COUNT, SHARED_PREFERENCE_RETRY_COUNT } from '../../../manager/syncmanager/constants';
|
|
8
8
|
import { ENDPOINTS } from '../../../constants/apiConstants';
|
|
@@ -27,7 +27,9 @@ export const generateOTP = async (payload, props) => {
|
|
|
27
27
|
var _props$otpGeneration;
|
|
28
28
|
const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;
|
|
29
29
|
const apiData = createApiData(payload, props, isCustomConfig ? props === null || props === void 0 || (_props$otpGeneration = props.otpGeneration) === null || _props$otpGeneration === void 0 ? void 0 : _props$otpGeneration.uri : `{baseURI}${ENDPOINTS.GENERATE_OTP_ENDPOINT}`, 'POST', null, isCustomConfig ? props.otpGeneration : undefined);
|
|
30
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:apiData : ${JSON.stringify(apiData)}`);
|
|
30
31
|
const apiResponse = await getAxiosApiResponse(apiData);
|
|
32
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:apiResponse : ${JSON.stringify(apiResponse)}`);
|
|
31
33
|
if (isCustomConfig && apiData.responseJsonLogic) {
|
|
32
34
|
return jsonLogic.apply(apiData.responseJsonLogic, apiResponse.data);
|
|
33
35
|
}
|
|
@@ -35,7 +37,8 @@ export const generateOTP = async (payload, props) => {
|
|
|
35
37
|
} catch (error) {
|
|
36
38
|
var _error$response;
|
|
37
39
|
Logger.getInstance().logEvent('~ generateOTP', error.message, LOG_TYPE.SDK_ERROR);
|
|
38
|
-
|
|
40
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:catch : ${error.message}`);
|
|
41
|
+
console.error('error: ', error.message);
|
|
39
42
|
return (error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) ?? false;
|
|
40
43
|
}
|
|
41
44
|
};
|
|
@@ -44,7 +47,9 @@ export const verifyOTP = async (payload, props) => {
|
|
|
44
47
|
var _props$validationApi;
|
|
45
48
|
const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;
|
|
46
49
|
const apiData = createApiData(payload, props, isCustomConfig ? props === null || props === void 0 || (_props$validationApi = props.validationApi) === null || _props$validationApi === void 0 ? void 0 : _props$validationApi.uri : `{baseURI}${ENDPOINTS.VERIFY_OTP_ENDPOINT}`, 'POST', null, isCustomConfig ? props.validationApi : undefined);
|
|
50
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:apiData : ${JSON.stringify(apiData)}`);
|
|
47
51
|
const apiResponse = await getAxiosApiResponse(apiData);
|
|
52
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:apiResponse : ${JSON.stringify(apiResponse)}`);
|
|
48
53
|
if (isCustomConfig && apiData.responseJsonLogic) {
|
|
49
54
|
return jsonLogic.apply(apiData.responseJsonLogic, apiResponse.data);
|
|
50
55
|
}
|
|
@@ -52,7 +57,8 @@ export const verifyOTP = async (payload, props) => {
|
|
|
52
57
|
} catch (error) {
|
|
53
58
|
var _error$response2;
|
|
54
59
|
Logger.getInstance().logEvent('~ verifyOTP', error.message, LOG_TYPE.SDK_ERROR);
|
|
55
|
-
console.error('error: ',
|
|
60
|
+
console.error('error: ', error.message);
|
|
61
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:catch : ${error.message}`);
|
|
56
62
|
return (error === null || error === void 0 || (_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) ?? false;
|
|
57
63
|
}
|
|
58
64
|
};
|
|
@@ -61,7 +67,9 @@ export const resendOTP = async (payload, props) => {
|
|
|
61
67
|
var _props$resendApi;
|
|
62
68
|
const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;
|
|
63
69
|
const apiData = createApiData(payload, props, isCustomConfig ? props === null || props === void 0 || (_props$resendApi = props.resendApi) === null || _props$resendApi === void 0 ? void 0 : _props$resendApi.uri : `{baseURI}${ENDPOINTS.RESEND_OTP_ENDPOINT}`, 'POST', null, isCustomConfig ? props.resendApi : undefined);
|
|
70
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:apiData : ${JSON.stringify(apiData)}`);
|
|
64
71
|
const apiResponse = await getAxiosApiResponse(apiData);
|
|
72
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:apiResponse : ${JSON.stringify(apiResponse)}`);
|
|
65
73
|
if (isCustomConfig && apiData.responseJsonLogic) {
|
|
66
74
|
return jsonLogic.apply(apiData.responseJsonLogic, apiResponse.data);
|
|
67
75
|
}
|
|
@@ -69,7 +77,8 @@ export const resendOTP = async (payload, props) => {
|
|
|
69
77
|
} catch (error) {
|
|
70
78
|
var _error$response3;
|
|
71
79
|
Logger.getInstance().logEvent('~ resendOTP', error.message, LOG_TYPE.SDK_ERROR);
|
|
72
|
-
|
|
80
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:catch : ${error.message}`);
|
|
81
|
+
console.error('error: ', error.message);
|
|
73
82
|
return (error === null || error === void 0 || (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data) ?? false;
|
|
74
83
|
}
|
|
75
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsonLogic","Logger","LOG_TYPE","createApiData","getAxiosApiResponse","DEFAULT_RETRY_CONFIG","Storage","SHARED_PREFERENCE_RESEND_COUNT","SHARED_PREFERENCE_RETRY_COUNT","ENDPOINTS","getUuidByString","OTP_CONFIG","countType","VALIDATE_OTP_SCREENS","CONTACT_LIST","OTP_VIEW","VERIFICATION_COMPLETE","generateOTP","payload","props","_props$otpGeneration","isCustomConfig","otpConfig","CUSTOM","apiData","otpGeneration","uri","GENERATE_OTP_ENDPOINT","undefined","apiResponse","responseJsonLogic","apply","data","error","_error$response","getInstance","logEvent","message","SDK_ERROR","console","JSON","stringify","response","verifyOTP","_props$validationApi","validationApi","VERIFY_OTP_ENDPOINT","_error$response2","resendOTP","_props$resendApi","resendApi","RESEND_OTP_ENDPOINT","_error$response3","parseResendConfig","inputResendConfig","resendConfig","buttonTitle","enableDelay","maxResends","maskContactId","contactId","idString","String","includes","username","domain","split","visibleUsername","slice","repeat","length","lastFourDigits","truncateOrderId","shipmentId","displayShipmentId","startingTen","lastTen","isNotNullOrEmpty","value","trim","Array","isArray","generateContactList","orderId","_response$phone","_response$additionalP","_response$additionalE","contactList","phone","number","push","id","mode","type","index","additionalPhone","forEach","idx","email","additionalEmail","getUniqueRefId","moId","progressGroupId","attemptCount","_refId$toString","refId","_hashedRefId","toString","updateRetryCount","retryCount","storage","setSharedItem","updateResendCount","getCount","count","RESEND","getSharedItem","RETRY","parsedCount","parse","warn","resetCount"],"sources":["utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as jsonLogic from 'json-logic-js';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { createApiData, getAxiosApiResponse } from '../../../utils/ApiUtils';\nimport { DEFAULT_RETRY_CONFIG } from './constants';\nimport type {\n ResendOTPConfigType,\n EmailAndPhoneResponse,\n ContactType,\n ValidateOTPInput,\n ResendOTPPayloadType,\n ResponseType,\n ErrorResponseType,\n GenerateOtpPayloadType,\n} from './ValidateOTPSchema';\nimport Storage from '../../../utils/storage';\nimport {\n SHARED_PREFERENCE_RESEND_COUNT,\n SHARED_PREFERENCE_RETRY_COUNT,\n} from '../../../manager/syncmanager/constants';\nimport { ENDPOINTS } from '../../../constants/apiConstants';\nimport getUuidByString from 'uuid-by-string';\n\nexport enum OTP_CONFIG {\n OS1 = 'OTP_CONFIG',\n CUSTOM = 'Custom',\n}\n\ntype PropType = ValidateOTPInput & { domain: string };\n\nexport enum countType {\n RETRY,\n RESEND,\n}\n\nexport const VALIDATE_OTP_SCREENS = {\n CONTACT_LIST: 'CONTACT_LIST',\n OTP_VIEW: 'OTP_VIEW',\n VERIFICATION_COMPLETE: 'VERIFICATION_COMPLETE',\n};\n\nexport const generateOTP = async (\n payload: GenerateOtpPayloadType,\n props: PropType\n): Promise<any | ResponseType | ErrorResponseType> => {\n try {\n const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;\n const apiData = createApiData(\n payload,\n props,\n isCustomConfig\n ? props?.otpGeneration?.uri\n : `{baseURI}${ENDPOINTS.GENERATE_OTP_ENDPOINT}`,\n 'POST',\n null,\n isCustomConfig ? props.otpGeneration : undefined\n );\n\n const apiResponse = await getAxiosApiResponse(apiData);\n\n if (isCustomConfig && apiData.responseJsonLogic) {\n return jsonLogic.apply(\n <jsonLogic.RulesLogic>apiData.responseJsonLogic,\n apiResponse.data\n );\n }\n\n return apiResponse.data;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ generateOTP',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n console.error('error: ', JSON.stringify(error));\n return error?.response?.data ?? false;\n }\n};\n\nexport const verifyOTP = async (\n payload: any,\n props: PropType\n): Promise<any | ResponseType | ErrorResponseType> => {\n try {\n const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;\n const apiData = createApiData(\n payload,\n props,\n isCustomConfig\n ? props?.validationApi?.uri\n : `{baseURI}${ENDPOINTS.VERIFY_OTP_ENDPOINT}`,\n 'POST',\n null,\n isCustomConfig ? props.validationApi : undefined\n );\n\n const apiResponse = await getAxiosApiResponse(apiData);\n\n if (isCustomConfig && apiData.responseJsonLogic) {\n return jsonLogic.apply(\n <jsonLogic.RulesLogic>apiData.responseJsonLogic,\n apiResponse.data\n );\n }\n\n return apiResponse.data;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ verifyOTP',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n console.error('error: ', JSON.stringify(error));\n return error?.response?.data ?? false;\n }\n};\n\nexport const resendOTP = async (\n payload: ResendOTPPayloadType,\n props: PropType\n): Promise<any | ResponseType | ErrorResponseType> => {\n try {\n const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;\n const apiData = createApiData(\n payload,\n props,\n isCustomConfig\n ? props?.resendApi?.uri\n : `{baseURI}${ENDPOINTS.RESEND_OTP_ENDPOINT}`,\n 'POST',\n null,\n isCustomConfig ? props.resendApi : undefined\n );\n\n const apiResponse = await getAxiosApiResponse(apiData);\n\n if (isCustomConfig && apiData.responseJsonLogic) {\n return jsonLogic.apply(\n <jsonLogic.RulesLogic>apiData.responseJsonLogic,\n apiResponse.data\n );\n }\n\n return apiResponse.data;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ resendOTP',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n console.error('error: ', JSON.stringify(error));\n return error?.response?.data ?? false;\n }\n};\n\nexport const parseResendConfig = (\n inputResendConfig: ResendOTPConfigType | undefined\n): ResendOTPConfigType => {\n const resendConfig: ResendOTPConfigType = DEFAULT_RETRY_CONFIG;\n if (inputResendConfig) {\n if (inputResendConfig.buttonTitle) {\n resendConfig.buttonTitle = inputResendConfig.buttonTitle;\n }\n if (inputResendConfig.enableDelay) {\n resendConfig.enableDelay = inputResendConfig.enableDelay;\n }\n if (inputResendConfig.maxResends) {\n resendConfig.maxResends = inputResendConfig.maxResends;\n }\n }\n return resendConfig;\n};\n\nexport function maskContactId(contactId: string) {\n const idString = String(contactId);\n\n // Check if it's an email based on the presence of '@'\n if (idString.includes('@')) {\n // Split email into username and domain parts\n const [username, domain] = idString.split('@');\n\n // Show first 3 characters and replace the rest with asterisks\n const visibleUsername =\n username.slice(0, 3) + '*'.repeat(username.length - 3);\n\n return `${visibleUsername}@${domain}`;\n } else {\n // For non-email contact ID, show first 5 characters as asterisks and last 4 digits\n const lastFourDigits = idString.slice(-4);\n return `***** *${lastFourDigits}`;\n }\n}\n\nexport const truncateOrderId = (shipmentId: string) => {\n let displayShipmentId = '';\n if (shipmentId?.length >= 16) {\n const startingTen = shipmentId.slice(0, 5);\n const lastTen = shipmentId.slice(-5);\n displayShipmentId = `${startingTen}...${lastTen}`;\n } else {\n displayShipmentId = shipmentId;\n }\n return displayShipmentId;\n};\n\nexport const isNotNullOrEmpty = (value: any): boolean => {\n if (value === null || value === undefined) {\n return false;\n }\n if (typeof value === 'string' && value.trim() === '') {\n return false;\n }\n if (Array.isArray(value) && value.length === 0) {\n return false;\n }\n return true;\n};\n\nexport function generateContactList(\n response: EmailAndPhoneResponse,\n orderId?: string\n): ContactType[] {\n // Initialize an array to store the transformed contact list\n const contactList: ContactType[] = [];\n\n // Handle the primary phone number\n if (response.phone?.number) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'PHONE',\n type: 'PRIMARY',\n index: 0,\n value: response.phone.number, // Actual phone number\n orderId,\n });\n }\n\n // Handle additional phone numbers\n if (response.additionalPhone?.length) {\n response.additionalPhone.forEach((phone, idx) => {\n if (phone?.number) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'PHONE',\n type: 'SECONDARY',\n index: idx,\n value: phone.number, // Actual phone number\n orderId,\n });\n }\n });\n }\n\n // Handle the primary email\n if (response.email) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'EMAIL',\n type: 'PRIMARY',\n index: 0,\n value: response.email, // Actual email address\n orderId,\n });\n }\n\n // Handle additional emails\n if (response.additionalEmail?.length) {\n response.additionalEmail.forEach((email, idx) => {\n if (email?.id) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'EMAIL',\n type: 'SECONDARY',\n index: idx,\n value: email.id, // Actual email address\n orderId,\n });\n }\n });\n }\n\n return contactList;\n}\n\nexport const getUniqueRefId = (\n moId: string,\n progressGroupId?: string | null,\n attemptCount?: number | null\n) => {\n const refId = `${moId}${progressGroupId ? '::' + progressGroupId : ''}${\n attemptCount ? '::' + attemptCount : ''\n }`;\n const _hashedRefId = getUuidByString(refId?.toString()?.trim());\n return _hashedRefId;\n};\n\nexport const updateRetryCount = async (retryCount: number) => {\n let storage = Storage.getInstance();\n\n await storage.setSharedItem(\n SHARED_PREFERENCE_RETRY_COUNT,\n JSON.stringify(retryCount)\n );\n};\n\nexport const updateResendCount = async (retryCount: number) => {\n let storage = Storage.getInstance();\n\n await storage.setSharedItem(\n SHARED_PREFERENCE_RESEND_COUNT,\n JSON.stringify(retryCount)\n );\n};\n\nexport const getCount = async (type: countType): Promise<number> => {\n const storage = Storage.getInstance();\n let count: any = 0;\n\n if (type === countType.RESEND) {\n count = await storage.getSharedItem(SHARED_PREFERENCE_RESEND_COUNT);\n } else if (type === countType.RETRY) {\n count = await storage.getSharedItem(SHARED_PREFERENCE_RETRY_COUNT);\n }\n\n // Parse and validate the count\n if (count) {\n try {\n const parsedCount = JSON.parse(count);\n if (typeof parsedCount === 'number') {\n return parsedCount;\n }\n } catch (error) {\n console.warn('Invalid count value:', count);\n }\n }\n\n // Default to 0 if count is invalid\n return 0;\n};\n\nexport const resetCount = async () => {\n let storage = Storage.getInstance();\n\n await storage.setSharedItem(\n SHARED_PREFERENCE_RESEND_COUNT,\n JSON.stringify(0)\n );\n\n await storage.setSharedItem(SHARED_PREFERENCE_RETRY_COUNT, JSON.stringify(0));\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["jsonLogic","Logger","LOG_TYPE","createApiData","getAxiosApiResponse","DEFAULT_RETRY_CONFIG","TAG_VERIFY_OTP","Storage","SHARED_PREFERENCE_RESEND_COUNT","SHARED_PREFERENCE_RETRY_COUNT","ENDPOINTS","getUuidByString","OTP_CONFIG","countType","VALIDATE_OTP_SCREENS","CONTACT_LIST","OTP_VIEW","VERIFICATION_COMPLETE","generateOTP","payload","props","_props$otpGeneration","isCustomConfig","otpConfig","CUSTOM","apiData","otpGeneration","uri","GENERATE_OTP_ENDPOINT","undefined","getInstance","log","JSON","stringify","apiResponse","responseJsonLogic","apply","data","error","_error$response","logEvent","message","SDK_ERROR","console","response","verifyOTP","_props$validationApi","validationApi","VERIFY_OTP_ENDPOINT","_error$response2","resendOTP","_props$resendApi","resendApi","RESEND_OTP_ENDPOINT","_error$response3","parseResendConfig","inputResendConfig","resendConfig","buttonTitle","enableDelay","maxResends","maskContactId","contactId","idString","String","includes","username","domain","split","visibleUsername","slice","repeat","length","lastFourDigits","truncateOrderId","shipmentId","displayShipmentId","startingTen","lastTen","isNotNullOrEmpty","value","trim","Array","isArray","generateContactList","orderId","_response$phone","_response$additionalP","_response$additionalE","contactList","phone","number","push","id","mode","type","index","additionalPhone","forEach","idx","email","additionalEmail","getUniqueRefId","moId","progressGroupId","attemptCount","_refId$toString","refId","_hashedRefId","toString","updateRetryCount","retryCount","storage","setSharedItem","updateResendCount","getCount","count","RESEND","getSharedItem","RETRY","parsedCount","parse","warn","resetCount"],"sources":["utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as jsonLogic from 'json-logic-js';\nimport Logger, { LOG_TYPE } from '../../../utils/Logger';\nimport { createApiData, getAxiosApiResponse } from '../../../utils/ApiUtils';\nimport { DEFAULT_RETRY_CONFIG, TAG_VERIFY_OTP } from './constants';\nimport type {\n ResendOTPConfigType,\n EmailAndPhoneResponse,\n ContactType,\n ValidateOTPInput,\n ResendOTPPayloadType,\n ResponseType,\n ErrorResponseType,\n GenerateOtpPayloadType,\n} from './ValidateOTPSchema';\nimport Storage from '../../../utils/storage';\nimport {\n SHARED_PREFERENCE_RESEND_COUNT,\n SHARED_PREFERENCE_RETRY_COUNT,\n} from '../../../manager/syncmanager/constants';\nimport { ENDPOINTS } from '../../../constants/apiConstants';\nimport getUuidByString from 'uuid-by-string';\n\nexport enum OTP_CONFIG {\n OS1 = 'OTP_CONFIG',\n CUSTOM = 'Custom',\n}\n\ntype PropType = ValidateOTPInput & { domain: string };\n\nexport enum countType {\n RETRY,\n RESEND,\n}\n\nexport const VALIDATE_OTP_SCREENS = {\n CONTACT_LIST: 'CONTACT_LIST',\n OTP_VIEW: 'OTP_VIEW',\n VERIFICATION_COMPLETE: 'VERIFICATION_COMPLETE',\n};\n\nexport const generateOTP = async (\n payload: GenerateOtpPayloadType,\n props: PropType\n): Promise<any | ResponseType | ErrorResponseType> => {\n try {\n const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;\n const apiData = createApiData(\n payload,\n props,\n isCustomConfig\n ? props?.otpGeneration?.uri\n : `{baseURI}${ENDPOINTS.GENERATE_OTP_ENDPOINT}`,\n 'POST',\n null,\n isCustomConfig ? props.otpGeneration : undefined\n );\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:apiData : ${JSON.stringify(apiData)}`);\n\n\n const apiResponse = await getAxiosApiResponse(apiData);\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:apiResponse : ${JSON.stringify(apiResponse)}`);\n\n\n if (isCustomConfig && apiData.responseJsonLogic) {\n return jsonLogic.apply(\n <jsonLogic.RulesLogic>apiData.responseJsonLogic,\n apiResponse.data\n );\n }\n\n return apiResponse.data;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ generateOTP',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:catch : ${error.message}`);\n\n console.error('error: ', error.message);\n return error?.response?.data ?? false;\n }\n};\n\nexport const verifyOTP = async (\n payload: any,\n props: PropType\n): Promise<any | ResponseType | ErrorResponseType> => {\n try {\n const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;\n const apiData = createApiData(\n payload,\n props,\n isCustomConfig\n ? props?.validationApi?.uri\n : `{baseURI}${ENDPOINTS.VERIFY_OTP_ENDPOINT}`,\n 'POST',\n null,\n isCustomConfig ? props.validationApi : undefined\n );\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:apiData : ${JSON.stringify(apiData)}`);\n\n const apiResponse = await getAxiosApiResponse(apiData);\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:apiResponse : ${JSON.stringify(apiResponse)}`);\n\n if (isCustomConfig && apiData.responseJsonLogic) {\n return jsonLogic.apply(\n <jsonLogic.RulesLogic>apiData.responseJsonLogic,\n apiResponse.data\n );\n }\n\n return apiResponse.data;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ verifyOTP',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n console.error('error: ', error.message);\n Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:catch : ${error.message}`);\n return error?.response?.data ?? false;\n }\n};\n\nexport const resendOTP = async (\n payload: ResendOTPPayloadType,\n props: PropType\n): Promise<any | ResponseType | ErrorResponseType> => {\n try {\n const isCustomConfig = props.otpConfig === OTP_CONFIG.CUSTOM;\n const apiData = createApiData(\n payload,\n props,\n isCustomConfig\n ? props?.resendApi?.uri\n : `{baseURI}${ENDPOINTS.RESEND_OTP_ENDPOINT}`,\n 'POST',\n null,\n isCustomConfig ? props.resendApi : undefined\n );\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:apiData : ${JSON.stringify(apiData)}`);\n\n const apiResponse = await getAxiosApiResponse(apiData);\n\n Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:apiResponse : ${JSON.stringify(apiResponse)}`);\n\n\n if (isCustomConfig && apiData.responseJsonLogic) {\n return jsonLogic.apply(\n <jsonLogic.RulesLogic>apiData.responseJsonLogic,\n apiResponse.data\n );\n }\n\n \n\n return apiResponse.data;\n } catch (error: any) {\n Logger.getInstance().logEvent(\n '~ resendOTP',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:catch : ${error.message}`);\n console.error('error: ', error.message);\n return error?.response?.data ?? false;\n }\n};\n\nexport const parseResendConfig = (\n inputResendConfig: ResendOTPConfigType | undefined\n): ResendOTPConfigType => {\n const resendConfig: ResendOTPConfigType = DEFAULT_RETRY_CONFIG;\n if (inputResendConfig) {\n if (inputResendConfig.buttonTitle) {\n resendConfig.buttonTitle = inputResendConfig.buttonTitle;\n }\n if (inputResendConfig.enableDelay) {\n resendConfig.enableDelay = inputResendConfig.enableDelay;\n }\n if (inputResendConfig.maxResends) {\n resendConfig.maxResends = inputResendConfig.maxResends;\n }\n }\n return resendConfig;\n};\n\nexport function maskContactId(contactId: string) {\n const idString = String(contactId);\n\n // Check if it's an email based on the presence of '@'\n if (idString.includes('@')) {\n // Split email into username and domain parts\n const [username, domain] = idString.split('@');\n\n // Show first 3 characters and replace the rest with asterisks\n const visibleUsername =\n username.slice(0, 3) + '*'.repeat(username.length - 3);\n\n return `${visibleUsername}@${domain}`;\n } else {\n // For non-email contact ID, show first 5 characters as asterisks and last 4 digits\n const lastFourDigits = idString.slice(-4);\n return `***** *${lastFourDigits}`;\n }\n}\n\nexport const truncateOrderId = (shipmentId: string) => {\n let displayShipmentId = '';\n if (shipmentId?.length >= 16) {\n const startingTen = shipmentId.slice(0, 5);\n const lastTen = shipmentId.slice(-5);\n displayShipmentId = `${startingTen}...${lastTen}`;\n } else {\n displayShipmentId = shipmentId;\n }\n return displayShipmentId;\n};\n\nexport const isNotNullOrEmpty = (value: any): boolean => {\n if (value === null || value === undefined) {\n return false;\n }\n if (typeof value === 'string' && value.trim() === '') {\n return false;\n }\n if (Array.isArray(value) && value.length === 0) {\n return false;\n }\n return true;\n};\n\nexport function generateContactList(\n response: EmailAndPhoneResponse,\n orderId?: string\n): ContactType[] {\n // Initialize an array to store the transformed contact list\n const contactList: ContactType[] = [];\n\n // Handle the primary phone number\n if (response.phone?.number) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'PHONE',\n type: 'PRIMARY',\n index: 0,\n value: response.phone.number, // Actual phone number\n orderId,\n });\n }\n\n // Handle additional phone numbers\n if (response.additionalPhone?.length) {\n response.additionalPhone.forEach((phone, idx) => {\n if (phone?.number) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'PHONE',\n type: 'SECONDARY',\n index: idx,\n value: phone.number, // Actual phone number\n orderId,\n });\n }\n });\n }\n\n // Handle the primary email\n if (response.email) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'EMAIL',\n type: 'PRIMARY',\n index: 0,\n value: response.email, // Actual email address\n orderId,\n });\n }\n\n // Handle additional emails\n if (response.additionalEmail?.length) {\n response.additionalEmail.forEach((email, idx) => {\n if (email?.id) {\n contactList.push({\n id: response.id, // Unique identifier\n mode: 'EMAIL',\n type: 'SECONDARY',\n index: idx,\n value: email.id, // Actual email address\n orderId,\n });\n }\n });\n }\n\n return contactList;\n}\n\nexport const getUniqueRefId = (\n moId: string,\n progressGroupId?: string | null,\n attemptCount?: number | null\n) => {\n const refId = `${moId}${progressGroupId ? '::' + progressGroupId : ''}${\n attemptCount ? '::' + attemptCount : ''\n }`;\n const _hashedRefId = getUuidByString(refId?.toString()?.trim());\n return _hashedRefId;\n};\n\nexport const updateRetryCount = async (retryCount: number) => {\n let storage = Storage.getInstance();\n\n await storage.setSharedItem(\n SHARED_PREFERENCE_RETRY_COUNT,\n JSON.stringify(retryCount)\n );\n};\n\nexport const updateResendCount = async (retryCount: number) => {\n let storage = Storage.getInstance();\n\n await storage.setSharedItem(\n SHARED_PREFERENCE_RESEND_COUNT,\n JSON.stringify(retryCount)\n );\n};\n\nexport const getCount = async (type: countType): Promise<number> => {\n const storage = Storage.getInstance();\n let count: any = 0;\n\n if (type === countType.RESEND) {\n count = await storage.getSharedItem(SHARED_PREFERENCE_RESEND_COUNT);\n } else if (type === countType.RETRY) {\n count = await storage.getSharedItem(SHARED_PREFERENCE_RETRY_COUNT);\n }\n\n // Parse and validate the count\n if (count) {\n try {\n const parsedCount = JSON.parse(count);\n if (typeof parsedCount === 'number') {\n return parsedCount;\n }\n } catch (error) {\n console.warn('Invalid count value:', count);\n }\n }\n\n // Default to 0 if count is invalid\n return 0;\n};\n\nexport const resetCount = async () => {\n let storage = Storage.getInstance();\n\n await storage.setSharedItem(\n SHARED_PREFERENCE_RESEND_COUNT,\n JSON.stringify(0)\n );\n\n await storage.setSharedItem(SHARED_PREFERENCE_RETRY_COUNT, JSON.stringify(0));\n};\n"],"mappings":"AAAA;AACA,OAAO,KAAKA,SAAS,MAAM,eAAe;AAC1C,OAAOC,MAAM,IAAIC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,aAAa,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC5E,SAASC,oBAAoB,EAAEC,cAAc,QAAQ,aAAa;AAWlE,OAAOC,OAAO,MAAM,wBAAwB;AAC5C,SACEC,8BAA8B,EAC9BC,6BAA6B,QACxB,wCAAwC;AAC/C,SAASC,SAAS,QAAQ,iCAAiC;AAC3D,OAAOC,eAAe,MAAM,gBAAgB;AAE5C,WAAYC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAOtB,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAKrB,OAAO,MAAMC,oBAAoB,GAAG;EAClCC,YAAY,EAAE,cAAc;EAC5BC,QAAQ,EAAE,UAAU;EACpBC,qBAAqB,EAAE;AACzB,CAAC;AAED,OAAO,MAAMC,WAAW,GAAG,MAAAA,CACzBC,OAA+B,EAC/BC,KAAe,KACqC;EACpD,IAAI;IAAA,IAAAC,oBAAA;IACF,MAAMC,cAAc,GAAGF,KAAK,CAACG,SAAS,KAAKX,UAAU,CAACY,MAAM;IAC5D,MAAMC,OAAO,GAAGtB,aAAa,CAC3BgB,OAAO,EACPC,KAAK,EACLE,cAAc,GACVF,KAAK,aAALA,KAAK,gBAAAC,oBAAA,GAALD,KAAK,CAAEM,aAAa,cAAAL,oBAAA,uBAApBA,oBAAA,CAAsBM,GAAG,GACzB,YAAYjB,SAAS,CAACkB,qBAAqB,EAAE,EACjD,MAAM,EACN,IAAI,EACJN,cAAc,GAAGF,KAAK,CAACM,aAAa,GAAGG,SACzC,CAAC;IAED5B,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,yBAAyB0B,IAAI,CAACC,SAAS,CAACR,OAAO,CAAC,EAAE,CAAC;IAG5F,MAAMS,WAAW,GAAG,MAAM9B,mBAAmB,CAACqB,OAAO,CAAC;IAEtDxB,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,6BAA6B0B,IAAI,CAACC,SAAS,CAACC,WAAW,CAAC,EAAE,CAAC;IAGpG,IAAIZ,cAAc,IAAIG,OAAO,CAACU,iBAAiB,EAAE;MAC/C,OAAOnC,SAAS,CAACoC,KAAK,CACEX,OAAO,CAACU,iBAAiB,EAC/CD,WAAW,CAACG,IACd,CAAC;IACH;IAEA,OAAOH,WAAW,CAACG,IAAI;EACzB,CAAC,CAAC,OAAOC,KAAU,EAAE;IAAA,IAAAC,eAAA;IACnBtC,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACU,QAAQ,CAC3B,eAAe,EACfF,KAAK,CAACG,OAAO,EACbvC,QAAQ,CAACwC,SACX,CAAC;IAEDzC,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,uBAAuBgC,KAAK,CAACG,OAAO,EAAE,CAAC;IAEhFE,OAAO,CAACL,KAAK,CAAC,SAAS,EAAEA,KAAK,CAACG,OAAO,CAAC;IACvC,OAAO,CAAAH,KAAK,aAALA,KAAK,gBAAAC,eAAA,GAALD,KAAK,CAAEM,QAAQ,cAAAL,eAAA,uBAAfA,eAAA,CAAiBF,IAAI,KAAI,KAAK;EACvC;AACF,CAAC;AAED,OAAO,MAAMQ,SAAS,GAAG,MAAAA,CACvB1B,OAAY,EACZC,KAAe,KACqC;EACpD,IAAI;IAAA,IAAA0B,oBAAA;IACF,MAAMxB,cAAc,GAAGF,KAAK,CAACG,SAAS,KAAKX,UAAU,CAACY,MAAM;IAC5D,MAAMC,OAAO,GAAGtB,aAAa,CAC3BgB,OAAO,EACPC,KAAK,EACLE,cAAc,GACVF,KAAK,aAALA,KAAK,gBAAA0B,oBAAA,GAAL1B,KAAK,CAAE2B,aAAa,cAAAD,oBAAA,uBAApBA,oBAAA,CAAsBnB,GAAG,GACzB,YAAYjB,SAAS,CAACsC,mBAAmB,EAAE,EAC/C,MAAM,EACN,IAAI,EACJ1B,cAAc,GAAGF,KAAK,CAAC2B,aAAa,GAAGlB,SACzC,CAAC;IAED5B,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,uBAAuB0B,IAAI,CAACC,SAAS,CAACR,OAAO,CAAC,EAAE,CAAC;IAE1F,MAAMS,WAAW,GAAG,MAAM9B,mBAAmB,CAACqB,OAAO,CAAC;IAEtDxB,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,2BAA2B0B,IAAI,CAACC,SAAS,CAACC,WAAW,CAAC,EAAE,CAAC;IAElG,IAAIZ,cAAc,IAAIG,OAAO,CAACU,iBAAiB,EAAE;MAC/C,OAAOnC,SAAS,CAACoC,KAAK,CACEX,OAAO,CAACU,iBAAiB,EAC/CD,WAAW,CAACG,IACd,CAAC;IACH;IAEA,OAAOH,WAAW,CAACG,IAAI;EACzB,CAAC,CAAC,OAAOC,KAAU,EAAE;IAAA,IAAAW,gBAAA;IACnBhD,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACU,QAAQ,CAC3B,aAAa,EACbF,KAAK,CAACG,OAAO,EACbvC,QAAQ,CAACwC,SACX,CAAC;IACDC,OAAO,CAACL,KAAK,CAAC,SAAS,EAAEA,KAAK,CAACG,OAAO,CAAC;IACvCxC,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,qBAAqBgC,KAAK,CAACG,OAAO,EAAE,CAAC;IAC9E,OAAO,CAAAH,KAAK,aAALA,KAAK,gBAAAW,gBAAA,GAALX,KAAK,CAAEM,QAAQ,cAAAK,gBAAA,uBAAfA,gBAAA,CAAiBZ,IAAI,KAAI,KAAK;EACvC;AACF,CAAC;AAED,OAAO,MAAMa,SAAS,GAAG,MAAAA,CACvB/B,OAA6B,EAC7BC,KAAe,KACqC;EACpD,IAAI;IAAA,IAAA+B,gBAAA;IACF,MAAM7B,cAAc,GAAGF,KAAK,CAACG,SAAS,KAAKX,UAAU,CAACY,MAAM;IAC5D,MAAMC,OAAO,GAAGtB,aAAa,CAC3BgB,OAAO,EACPC,KAAK,EACLE,cAAc,GACVF,KAAK,aAALA,KAAK,gBAAA+B,gBAAA,GAAL/B,KAAK,CAAEgC,SAAS,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAkBxB,GAAG,GACrB,YAAYjB,SAAS,CAAC2C,mBAAmB,EAAE,EAC/C,MAAM,EACN,IAAI,EACJ/B,cAAc,GAAGF,KAAK,CAACgC,SAAS,GAAGvB,SACrC,CAAC;IAED5B,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,uBAAuB0B,IAAI,CAACC,SAAS,CAACR,OAAO,CAAC,EAAE,CAAC;IAE1F,MAAMS,WAAW,GAAG,MAAM9B,mBAAmB,CAACqB,OAAO,CAAC;IAEtDxB,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,2BAA2B0B,IAAI,CAACC,SAAS,CAACC,WAAW,CAAC,EAAE,CAAC;IAGlG,IAAIZ,cAAc,IAAIG,OAAO,CAACU,iBAAiB,EAAE;MAC/C,OAAOnC,SAAS,CAACoC,KAAK,CACEX,OAAO,CAACU,iBAAiB,EAC/CD,WAAW,CAACG,IACd,CAAC;IACH;IAIA,OAAOH,WAAW,CAACG,IAAI;EACzB,CAAC,CAAC,OAAOC,KAAU,EAAE;IAAA,IAAAgB,gBAAA;IACnBrD,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACU,QAAQ,CAC3B,aAAa,EACbF,KAAK,CAACG,OAAO,EACbvC,QAAQ,CAACwC,SACX,CAAC;IACDzC,MAAM,CAAC6B,WAAW,CAAC,CAAC,CAACC,GAAG,CAACzB,cAAc,EAAE,qBAAqBgC,KAAK,CAACG,OAAO,EAAE,CAAC;IAC9EE,OAAO,CAACL,KAAK,CAAC,SAAS,EAAEA,KAAK,CAACG,OAAO,CAAC;IACvC,OAAO,CAAAH,KAAK,aAALA,KAAK,gBAAAgB,gBAAA,GAALhB,KAAK,CAAEM,QAAQ,cAAAU,gBAAA,uBAAfA,gBAAA,CAAiBjB,IAAI,KAAI,KAAK;EACvC;AACF,CAAC;AAED,OAAO,MAAMkB,iBAAiB,GAC5BC,iBAAkD,IAC1B;EACxB,MAAMC,YAAiC,GAAGpD,oBAAoB;EAC9D,IAAImD,iBAAiB,EAAE;IACrB,IAAIA,iBAAiB,CAACE,WAAW,EAAE;MACjCD,YAAY,CAACC,WAAW,GAAGF,iBAAiB,CAACE,WAAW;IAC1D;IACA,IAAIF,iBAAiB,CAACG,WAAW,EAAE;MACjCF,YAAY,CAACE,WAAW,GAAGH,iBAAiB,CAACG,WAAW;IAC1D;IACA,IAAIH,iBAAiB,CAACI,UAAU,EAAE;MAChCH,YAAY,CAACG,UAAU,GAAGJ,iBAAiB,CAACI,UAAU;IACxD;EACF;EACA,OAAOH,YAAY;AACrB,CAAC;AAED,OAAO,SAASI,aAAaA,CAACC,SAAiB,EAAE;EAC/C,MAAMC,QAAQ,GAAGC,MAAM,CAACF,SAAS,CAAC;;EAElC;EACA,IAAIC,QAAQ,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC1B;IACA,MAAM,CAACC,QAAQ,EAAEC,MAAM,CAAC,GAAGJ,QAAQ,CAACK,KAAK,CAAC,GAAG,CAAC;;IAE9C;IACA,MAAMC,eAAe,GACnBH,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAACC,MAAM,CAACL,QAAQ,CAACM,MAAM,GAAG,CAAC,CAAC;IAExD,OAAO,GAAGH,eAAe,IAAIF,MAAM,EAAE;EACvC,CAAC,MAAM;IACL;IACA,MAAMM,cAAc,GAAGV,QAAQ,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,UAAUG,cAAc,EAAE;EACnC;AACF;AAEA,OAAO,MAAMC,eAAe,GAAIC,UAAkB,IAAK;EACrD,IAAIC,iBAAiB,GAAG,EAAE;EAC1B,IAAI,CAAAD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEH,MAAM,KAAI,EAAE,EAAE;IAC5B,MAAMK,WAAW,GAAGF,UAAU,CAACL,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAMQ,OAAO,GAAGH,UAAU,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC;IACpCM,iBAAiB,GAAG,GAAGC,WAAW,MAAMC,OAAO,EAAE;EACnD,CAAC,MAAM;IACLF,iBAAiB,GAAGD,UAAU;EAChC;EACA,OAAOC,iBAAiB;AAC1B,CAAC;AAED,OAAO,MAAMG,gBAAgB,GAAIC,KAAU,IAAc;EACvD,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKnD,SAAS,EAAE;IACzC,OAAO,KAAK;EACd;EACA,IAAI,OAAOmD,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;IACpD,OAAO,KAAK;EACd;EACA,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IAAIA,KAAK,CAACR,MAAM,KAAK,CAAC,EAAE;IAC9C,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,SAASY,mBAAmBA,CACjCxC,QAA+B,EAC/ByC,OAAgB,EACD;EAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,qBAAA;EACf;EACA,MAAMC,WAA0B,GAAG,EAAE;;EAErC;EACA,KAAAH,eAAA,GAAI1C,QAAQ,CAAC8C,KAAK,cAAAJ,eAAA,eAAdA,eAAA,CAAgBK,MAAM,EAAE;IAC1BF,WAAW,CAACG,IAAI,CAAC;MACfC,EAAE,EAAEjD,QAAQ,CAACiD,EAAE;MAAE;MACjBC,IAAI,EAAE,OAAO;MACbC,IAAI,EAAE,SAAS;MACfC,KAAK,EAAE,CAAC;MACRhB,KAAK,EAAEpC,QAAQ,CAAC8C,KAAK,CAACC,MAAM;MAAE;MAC9BN;IACF,CAAC,CAAC;EACJ;;EAEA;EACA,KAAAE,qBAAA,GAAI3C,QAAQ,CAACqD,eAAe,cAAAV,qBAAA,eAAxBA,qBAAA,CAA0Bf,MAAM,EAAE;IACpC5B,QAAQ,CAACqD,eAAe,CAACC,OAAO,CAAC,CAACR,KAAK,EAAES,GAAG,KAAK;MAC/C,IAAIT,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEC,MAAM,EAAE;QACjBF,WAAW,CAACG,IAAI,CAAC;UACfC,EAAE,EAAEjD,QAAQ,CAACiD,EAAE;UAAE;UACjBC,IAAI,EAAE,OAAO;UACbC,IAAI,EAAE,WAAW;UACjBC,KAAK,EAAEG,GAAG;UACVnB,KAAK,EAAEU,KAAK,CAACC,MAAM;UAAE;UACrBN;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;;EAEA;EACA,IAAIzC,QAAQ,CAACwD,KAAK,EAAE;IAClBX,WAAW,CAACG,IAAI,CAAC;MACfC,EAAE,EAAEjD,QAAQ,CAACiD,EAAE;MAAE;MACjBC,IAAI,EAAE,OAAO;MACbC,IAAI,EAAE,SAAS;MACfC,KAAK,EAAE,CAAC;MACRhB,KAAK,EAAEpC,QAAQ,CAACwD,KAAK;MAAE;MACvBf;IACF,CAAC,CAAC;EACJ;;EAEA;EACA,KAAAG,qBAAA,GAAI5C,QAAQ,CAACyD,eAAe,cAAAb,qBAAA,eAAxBA,qBAAA,CAA0BhB,MAAM,EAAE;IACpC5B,QAAQ,CAACyD,eAAe,CAACH,OAAO,CAAC,CAACE,KAAK,EAAED,GAAG,KAAK;MAC/C,IAAIC,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEP,EAAE,EAAE;QACbJ,WAAW,CAACG,IAAI,CAAC;UACfC,EAAE,EAAEjD,QAAQ,CAACiD,EAAE;UAAE;UACjBC,IAAI,EAAE,OAAO;UACbC,IAAI,EAAE,WAAW;UACjBC,KAAK,EAAEG,GAAG;UACVnB,KAAK,EAAEoB,KAAK,CAACP,EAAE;UAAE;UACjBR;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,OAAOI,WAAW;AACpB;AAEA,OAAO,MAAMa,cAAc,GAAGA,CAC5BC,IAAY,EACZC,eAA+B,EAC/BC,YAA4B,KACzB;EAAA,IAAAC,eAAA;EACH,MAAMC,KAAK,GAAG,GAAGJ,IAAI,GAAGC,eAAe,GAAG,IAAI,GAAGA,eAAe,GAAG,EAAE,GACnEC,YAAY,GAAG,IAAI,GAAGA,YAAY,GAAG,EAAE,EACvC;EACF,MAAMG,YAAY,GAAGjG,eAAe,CAACgG,KAAK,aAALA,KAAK,gBAAAD,eAAA,GAALC,KAAK,CAAEE,QAAQ,CAAC,CAAC,cAAAH,eAAA,uBAAjBA,eAAA,CAAmBzB,IAAI,CAAC,CAAC,CAAC;EAC/D,OAAO2B,YAAY;AACrB,CAAC;AAED,OAAO,MAAME,gBAAgB,GAAG,MAAOC,UAAkB,IAAK;EAC5D,IAAIC,OAAO,GAAGzG,OAAO,CAACuB,WAAW,CAAC,CAAC;EAEnC,MAAMkF,OAAO,CAACC,aAAa,CACzBxG,6BAA6B,EAC7BuB,IAAI,CAACC,SAAS,CAAC8E,UAAU,CAC3B,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAG,MAAOH,UAAkB,IAAK;EAC7D,IAAIC,OAAO,GAAGzG,OAAO,CAACuB,WAAW,CAAC,CAAC;EAEnC,MAAMkF,OAAO,CAACC,aAAa,CACzBzG,8BAA8B,EAC9BwB,IAAI,CAACC,SAAS,CAAC8E,UAAU,CAC3B,CAAC;AACH,CAAC;AAED,OAAO,MAAMI,QAAQ,GAAG,MAAOpB,IAAe,IAAsB;EAClE,MAAMiB,OAAO,GAAGzG,OAAO,CAACuB,WAAW,CAAC,CAAC;EACrC,IAAIsF,KAAU,GAAG,CAAC;EAElB,IAAIrB,IAAI,KAAKlF,SAAS,CAACwG,MAAM,EAAE;IAC7BD,KAAK,GAAG,MAAMJ,OAAO,CAACM,aAAa,CAAC9G,8BAA8B,CAAC;EACrE,CAAC,MAAM,IAAIuF,IAAI,KAAKlF,SAAS,CAAC0G,KAAK,EAAE;IACnCH,KAAK,GAAG,MAAMJ,OAAO,CAACM,aAAa,CAAC7G,6BAA6B,CAAC;EACpE;;EAEA;EACA,IAAI2G,KAAK,EAAE;IACT,IAAI;MACF,MAAMI,WAAW,GAAGxF,IAAI,CAACyF,KAAK,CAACL,KAAK,CAAC;MACrC,IAAI,OAAOI,WAAW,KAAK,QAAQ,EAAE;QACnC,OAAOA,WAAW;MACpB;IACF,CAAC,CAAC,OAAOlF,KAAK,EAAE;MACdK,OAAO,CAAC+E,IAAI,CAAC,sBAAsB,EAAEN,KAAK,CAAC;IAC7C;EACF;;EAEA;EACA,OAAO,CAAC;AACV,CAAC;AAED,OAAO,MAAMO,UAAU,GAAG,MAAAA,CAAA,KAAY;EACpC,IAAIX,OAAO,GAAGzG,OAAO,CAACuB,WAAW,CAAC,CAAC;EAEnC,MAAMkF,OAAO,CAACC,aAAa,CACzBzG,8BAA8B,EAC9BwB,IAAI,CAACC,SAAS,CAAC,CAAC,CAClB,CAAC;EAED,MAAM+E,OAAO,CAACC,aAAa,CAACxG,6BAA6B,EAAEuB,IAAI,CAACC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC","ignoreList":[]}
|
|
@@ -65,7 +65,7 @@ export default class ReasonCodeContainer {
|
|
|
65
65
|
throw new BaseError(ErrorCodes.REASON_CODE_API_ERROR, 'Unexpected error');
|
|
66
66
|
}
|
|
67
67
|
} catch (error) {
|
|
68
|
-
Logger.getInstance().logEvent('fetchReasonCode',
|
|
68
|
+
Logger.getInstance().logEvent('fetchReasonCode', error.message, LOG_TYPE.SDK_ERROR);
|
|
69
69
|
throw new BaseError(ErrorCodes.REASON_CODE_API_ERROR, error.message);
|
|
70
70
|
}
|
|
71
71
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DispatchSdkCache","Logger","LOG_TYPE","BaseError","ErrorCodes","ReasonCodeRepo","GraphQLClient","ReasonCodeContainer","constructor","_defineProperty","getInstance","instance","getReasonCodes","applicableCodes","entityCode","length","codes","finalApplicableCodes","getReasonsByCode","error","getReasonCodeFromText","reasonText","reasons","r","description","reasonCode","getReasonByCode","code","queryResult","fetchReasonCode","currentDate","Date","toLocaleDateString","lastFetchedTime","cache","getKeyFromCache","KEYS","REASON_FETCH_TIME","reasonFetchDate","parseInt","graphlQLResponse","fetchReasonCodes","data","reasonList","saveReasonCode","setKeyInCache","now","toString","logEvent","JSON","stringify","SDK_ERROR","REASON_CODE_API_ERROR","message","SDK_INFO","_ReasonCodeContainer"],"sources":["ReasonCodeContainer.ts"],"sourcesContent":["import DispatchSdkCache from '../sdk/DispatchSdkCache';\nimport Logger, { LOG_TYPE } from '../../utils/Logger';\nimport { BaseError } from '../../errors/BaseError';\nimport ErrorCodes from '../../errors/ErrorCodes';\nimport ReasonCodeRepo from './ReasonCodeRepo';\nimport type { ApplicableReasons } from '../../models/execTasks/ETBaseModels';\nimport type { ReasonsRow } from '../syncmanager/DBConfig';\nimport GraphQLClient from '../../network/GraphQLClient';\n\nexport default class ReasonCodeContainer {\n private static instance: ReasonCodeContainer;\n private cache: DispatchSdkCache = DispatchSdkCache.getInstance();\n private constructor() {}\n\n public static getInstance(): ReasonCodeContainer {\n if (!ReasonCodeContainer.instance) {\n ReasonCodeContainer.instance = new ReasonCodeContainer();\n }\n return ReasonCodeContainer.instance;\n }\n public async getReasonCodes(\n applicableCodes: ApplicableReasons,\n entityCode: string\n ): Promise<ReasonsRow[]> {\n if (\n !applicableCodes ||\n applicableCodes[entityCode] == null ||\n applicableCodes[entityCode].length < 1\n )\n return [];\n try {\n const codes: string[] = applicableCodes[entityCode];\n let finalApplicableCodes =\n await ReasonCodeRepo.getInstance().getReasonsByCode(codes);\n if (finalApplicableCodes && finalApplicableCodes.length > 0) {\n return finalApplicableCodes;\n } else return [];\n } catch (error: any) {\n return [];\n }\n }\n public static getReasonCodeFromText(\n reasonText: string,\n reasons: ReasonsRow[]\n ): string {\n for (const r of reasons) {\n if (r.description === reasonText) {\n return r.reasonCode;\n }\n }\n return '';\n }\n public async getReasonByCode(code: string): Promise<ReasonsRow | null> {\n try {\n if (!code) return null;\n else {\n const queryResult = await ReasonCodeRepo.getInstance().getReasonByCode(\n code\n );\n if (queryResult && queryResult.length > 0) {\n return queryResult[0];\n } else return null;\n }\n } catch (error: any) {\n return null;\n }\n }\n\n public async fetchReasonCode() {\n const currentDate = new Date().toLocaleDateString();\n const lastFetchedTime = await this.cache.getKeyFromCache(\n DispatchSdkCache.KEYS.REASON_FETCH_TIME\n );\n const reasonFetchDate = new Date(\n lastFetchedTime ? parseInt(lastFetchedTime) : 0\n ).toLocaleDateString();\n if (currentDate !== reasonFetchDate) {\n try {\n let graphlQLResponse =\n await GraphQLClient.getInstance().fetchReasonCodes();\n if (\n graphlQLResponse &&\n graphlQLResponse.data &&\n graphlQLResponse.data.reasonList &&\n graphlQLResponse.data.reasonList.data\n ) {\n await ReasonCodeRepo.getInstance().saveReasonCode(\n graphlQLResponse.data.reasonList.data\n );\n await this.cache.setKeyInCache(\n DispatchSdkCache.KEYS.REASON_FETCH_TIME,\n Date.now().toString()\n );\n } else {\n Logger.getInstance().logEvent(\n 'fetchReasonCode',\n JSON.stringify(graphlQLResponse),\n LOG_TYPE.SDK_ERROR\n );\n throw new BaseError(\n ErrorCodes.REASON_CODE_API_ERROR,\n 'Unexpected error'\n );\n }\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'fetchReasonCode',\n
|
|
1
|
+
{"version":3,"names":["DispatchSdkCache","Logger","LOG_TYPE","BaseError","ErrorCodes","ReasonCodeRepo","GraphQLClient","ReasonCodeContainer","constructor","_defineProperty","getInstance","instance","getReasonCodes","applicableCodes","entityCode","length","codes","finalApplicableCodes","getReasonsByCode","error","getReasonCodeFromText","reasonText","reasons","r","description","reasonCode","getReasonByCode","code","queryResult","fetchReasonCode","currentDate","Date","toLocaleDateString","lastFetchedTime","cache","getKeyFromCache","KEYS","REASON_FETCH_TIME","reasonFetchDate","parseInt","graphlQLResponse","fetchReasonCodes","data","reasonList","saveReasonCode","setKeyInCache","now","toString","logEvent","JSON","stringify","SDK_ERROR","REASON_CODE_API_ERROR","message","SDK_INFO","_ReasonCodeContainer"],"sources":["ReasonCodeContainer.ts"],"sourcesContent":["import DispatchSdkCache from '../sdk/DispatchSdkCache';\nimport Logger, { LOG_TYPE } from '../../utils/Logger';\nimport { BaseError } from '../../errors/BaseError';\nimport ErrorCodes from '../../errors/ErrorCodes';\nimport ReasonCodeRepo from './ReasonCodeRepo';\nimport type { ApplicableReasons } from '../../models/execTasks/ETBaseModels';\nimport type { ReasonsRow } from '../syncmanager/DBConfig';\nimport GraphQLClient from '../../network/GraphQLClient';\n\nexport default class ReasonCodeContainer {\n private static instance: ReasonCodeContainer;\n private cache: DispatchSdkCache = DispatchSdkCache.getInstance();\n private constructor() {}\n\n public static getInstance(): ReasonCodeContainer {\n if (!ReasonCodeContainer.instance) {\n ReasonCodeContainer.instance = new ReasonCodeContainer();\n }\n return ReasonCodeContainer.instance;\n }\n public async getReasonCodes(\n applicableCodes: ApplicableReasons,\n entityCode: string\n ): Promise<ReasonsRow[]> {\n if (\n !applicableCodes ||\n applicableCodes[entityCode] == null ||\n applicableCodes[entityCode].length < 1\n )\n return [];\n try {\n const codes: string[] = applicableCodes[entityCode];\n let finalApplicableCodes =\n await ReasonCodeRepo.getInstance().getReasonsByCode(codes);\n if (finalApplicableCodes && finalApplicableCodes.length > 0) {\n return finalApplicableCodes;\n } else return [];\n } catch (error: any) {\n return [];\n }\n }\n public static getReasonCodeFromText(\n reasonText: string,\n reasons: ReasonsRow[]\n ): string {\n for (const r of reasons) {\n if (r.description === reasonText) {\n return r.reasonCode;\n }\n }\n return '';\n }\n public async getReasonByCode(code: string): Promise<ReasonsRow | null> {\n try {\n if (!code) return null;\n else {\n const queryResult = await ReasonCodeRepo.getInstance().getReasonByCode(\n code\n );\n if (queryResult && queryResult.length > 0) {\n return queryResult[0];\n } else return null;\n }\n } catch (error: any) {\n return null;\n }\n }\n\n public async fetchReasonCode() {\n const currentDate = new Date().toLocaleDateString();\n const lastFetchedTime = await this.cache.getKeyFromCache(\n DispatchSdkCache.KEYS.REASON_FETCH_TIME\n );\n const reasonFetchDate = new Date(\n lastFetchedTime ? parseInt(lastFetchedTime) : 0\n ).toLocaleDateString();\n if (currentDate !== reasonFetchDate) {\n try {\n let graphlQLResponse =\n await GraphQLClient.getInstance().fetchReasonCodes();\n if (\n graphlQLResponse &&\n graphlQLResponse.data &&\n graphlQLResponse.data.reasonList &&\n graphlQLResponse.data.reasonList.data\n ) {\n await ReasonCodeRepo.getInstance().saveReasonCode(\n graphlQLResponse.data.reasonList.data\n );\n await this.cache.setKeyInCache(\n DispatchSdkCache.KEYS.REASON_FETCH_TIME,\n Date.now().toString()\n );\n } else {\n Logger.getInstance().logEvent(\n 'fetchReasonCode',\n JSON.stringify(graphlQLResponse),\n LOG_TYPE.SDK_ERROR\n );\n throw new BaseError(\n ErrorCodes.REASON_CODE_API_ERROR,\n 'Unexpected error'\n );\n }\n } catch (error: any) {\n Logger.getInstance().logEvent(\n 'fetchReasonCode',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n throw new BaseError(ErrorCodes.REASON_CODE_API_ERROR, error.message);\n }\n } else {\n Logger.getInstance().logEvent(\n 'fetchReasonCode',\n 'NO Fetch REQUIRED',\n LOG_TYPE.SDK_INFO\n );\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,10 @@ var _Logger;
|
|
|
2
2
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
3
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4
4
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
|
+
import { CoralogixRum } from '@coralogix/react-native-sdk';
|
|
5
6
|
import crashlytics from '@react-native-firebase/crashlytics';
|
|
7
|
+
import { CoralogixLogSeverity } from '@coralogix/react-native-sdk/src/types-external';
|
|
8
|
+
import SdkUtils from './SdkUtils';
|
|
6
9
|
export let LOG_TYPE = /*#__PURE__*/function (LOG_TYPE) {
|
|
7
10
|
LOG_TYPE["SDK_ERROR"] = "sdk_error";
|
|
8
11
|
LOG_TYPE["SDK_WARNING"] = "sdk_warning";
|
|
@@ -33,6 +36,21 @@ class Logger {
|
|
|
33
36
|
crashlytics().recordError(new Error(message), TAG);
|
|
34
37
|
}
|
|
35
38
|
}
|
|
39
|
+
async log(Tag, msg) {
|
|
40
|
+
try {
|
|
41
|
+
var _result$enableLogging, _result$enableLogging2;
|
|
42
|
+
let result = await SdkUtils.getRemoteConfig(0);
|
|
43
|
+
if (result !== null && result !== void 0 && (_result$enableLogging = result.enableLogging) !== null && _result$enableLogging !== void 0 && _result$enableLogging._value && (result === null || result === void 0 || (_result$enableLogging2 = result.enableLogging) === null || _result$enableLogging2 === void 0 ? void 0 : _result$enableLogging2._value) === "true") {
|
|
44
|
+
console.log("====================================");
|
|
45
|
+
console.log("Logging to Coralogix: ", Tag, msg);
|
|
46
|
+
console.log("====================================");
|
|
47
|
+
CoralogixRum.log(CoralogixLogSeverity.Info, Tag, msg);
|
|
48
|
+
}
|
|
49
|
+
} catch (error) {
|
|
50
|
+
this.logEvent("DispatchSDK:RemoteConfigError:", error.message, LOG_TYPE.SDK_ERROR);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
36
54
|
static getInstance() {
|
|
37
55
|
if (!Logger.instance) {
|
|
38
56
|
Logger.instance = new Logger();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["crashlytics","LOG_TYPE","Logger","constructor","_defineProperty","setLogging","enabled","sdkConfig","enableLogs","setUserId","userID","then","catch","setAttributes","userId","userName","tenantId","tenantID","logEvent","TAG","message","logType","console","log","SDK_WARNING","SDK_ERROR","APP_ERROR","APP_WARNING","recordError","Error","getInstance","instance","_Logger"],"sources":["Logger.ts"],"sourcesContent":["import type { DispatchSDKConfig } from '../models/sdk';\nimport crashlytics from '@react-native-firebase/crashlytics';\n\nexport const enum LOG_TYPE {\n SDK_ERROR = 'sdk_error',\n SDK_WARNING = 'sdk_warning',\n SDK_INFO = 'sdk_info',\n SDK_DEBUG = 'sdk_debug',\n APP_ERROR = 'app_error',\n APP_WARNING = 'app_warning',\n APP_DEBUG = 'app_debug',\n APP_INFO = 'app_info',\n}\n\nclass Logger {\n private static instance: Logger;\n private enableLogs: boolean = false;\n\n setLogging(enabled: boolean, sdkConfig: DispatchSDKConfig) {\n this.enableLogs = enabled;\n crashlytics().setUserId(sdkConfig.userID).then().catch();\n crashlytics()\n .setAttributes({\n userId: sdkConfig.userID,\n userName: sdkConfig.userName,\n tenantId: sdkConfig.tenantID,\n })\n .then()\n .catch();\n }\n\n logEvent(TAG: string, message: string, logType: LOG_TYPE) {\n if (this.enableLogs) console.log(TAG, message);\n if (\n logType === LOG_TYPE.SDK_WARNING ||\n logType === LOG_TYPE.SDK_ERROR ||\n logType === LOG_TYPE.APP_ERROR ||\n logType === LOG_TYPE.APP_WARNING\n ) {\n crashlytics().recordError(new Error(message), TAG);\n }\n }\n\n\n public static getInstance(): Logger {\n if (!Logger.instance) {\n Logger.instance = new Logger();\n }\n return Logger.instance;\n }\n}\n\nexport default Logger;\n"],"mappings":";;;;
|
|
1
|
+
{"version":3,"names":["CoralogixRum","crashlytics","CoralogixLogSeverity","SdkUtils","LOG_TYPE","Logger","constructor","_defineProperty","setLogging","enabled","sdkConfig","enableLogs","setUserId","userID","then","catch","setAttributes","userId","userName","tenantId","tenantID","logEvent","TAG","message","logType","console","log","SDK_WARNING","SDK_ERROR","APP_ERROR","APP_WARNING","recordError","Error","Tag","msg","_result$enableLogging","_result$enableLogging2","result","getRemoteConfig","enableLogging","_value","Info","error","getInstance","instance","_Logger"],"sources":["Logger.ts"],"sourcesContent":["import { CoralogixRum } from '@coralogix/react-native-sdk';\nimport type { DispatchSDKConfig } from '../models/sdk';\nimport crashlytics from '@react-native-firebase/crashlytics';\nimport { CoralogixLogSeverity } from '@coralogix/react-native-sdk/src/types-external';\nimport SdkUtils from './SdkUtils';\n\nexport const enum LOG_TYPE {\n SDK_ERROR = 'sdk_error',\n SDK_WARNING = 'sdk_warning',\n SDK_INFO = 'sdk_info',\n SDK_DEBUG = 'sdk_debug',\n APP_ERROR = 'app_error',\n APP_WARNING = 'app_warning',\n APP_DEBUG = 'app_debug',\n APP_INFO = 'app_info',\n}\n\nclass Logger {\n private static instance: Logger;\n private enableLogs: boolean = false;\n\n setLogging(enabled: boolean, sdkConfig: DispatchSDKConfig) {\n this.enableLogs = enabled;\n crashlytics().setUserId(sdkConfig.userID).then().catch();\n crashlytics()\n .setAttributes({\n userId: sdkConfig.userID,\n userName: sdkConfig.userName,\n tenantId: sdkConfig.tenantID,\n })\n .then()\n .catch();\n }\n\n logEvent(TAG: string, message: string, logType: LOG_TYPE) {\n if (this.enableLogs) console.log(TAG, message);\n if (\n logType === LOG_TYPE.SDK_WARNING ||\n logType === LOG_TYPE.SDK_ERROR ||\n logType === LOG_TYPE.APP_ERROR ||\n logType === LOG_TYPE.APP_WARNING\n ) {\n crashlytics().recordError(new Error(message), TAG);\n }\n\n }\n\n async log(Tag: string, msg: string) {\n try {\n let result = await SdkUtils.getRemoteConfig(0);\n if (result?.enableLogging?._value && result?.enableLogging?._value === \"true\") {\n console.log(\"====================================\");\n console.log(\"Logging to Coralogix: \",Tag,msg);\n console.log(\"====================================\");\n CoralogixRum.log(CoralogixLogSeverity.Info, Tag, msg);\n }\n } catch (error:any) {\n this.logEvent(\"DispatchSDK:RemoteConfigError:\", error.message, LOG_TYPE.SDK_ERROR);\n return;\n }\n }\n\n public static getInstance(): Logger {\n if (!Logger.instance) {\n Logger.instance = new Logger();\n }\n return Logger.instance;\n }\n}\n\nexport default Logger;\n"],"mappings":";;;;AAAA,SAASA,YAAY,QAAQ,6BAA6B;AAE1D,OAAOC,WAAW,MAAM,oCAAoC;AAC5D,SAASC,oBAAoB,QAAQ,gDAAgD;AACrF,OAAOC,QAAQ,MAAM,YAAY;AAEjC,WAAkBC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAW1B,MAAMC,MAAM,CAAC;EAAAC,YAAA;IAAAC,eAAA,qBAEmB,KAAK;EAAA;EAEnCC,UAAUA,CAACC,OAAgB,EAAEC,SAA4B,EAAE;IACzD,IAAI,CAACC,UAAU,GAAGF,OAAO;IACzBR,WAAW,CAAC,CAAC,CAACW,SAAS,CAACF,SAAS,CAACG,MAAM,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACxDd,WAAW,CAAC,CAAC,CACVe,aAAa,CAAC;MACbC,MAAM,EAAEP,SAAS,CAACG,MAAM;MACxBK,QAAQ,EAAER,SAAS,CAACQ,QAAQ;MAC5BC,QAAQ,EAAET,SAAS,CAACU;IACtB,CAAC,CAAC,CACDN,IAAI,CAAC,CAAC,CACNC,KAAK,CAAC,CAAC;EACZ;EAEAM,QAAQA,CAACC,GAAW,EAAEC,OAAe,EAAEC,OAAiB,EAAE;IACxD,IAAI,IAAI,CAACb,UAAU,EAAEc,OAAO,CAACC,GAAG,CAACJ,GAAG,EAAEC,OAAO,CAAC;IAC9C,IACEC,OAAO,KAAKpB,QAAQ,CAACuB,WAAW,IAChCH,OAAO,KAAKpB,QAAQ,CAACwB,SAAS,IAC9BJ,OAAO,KAAKpB,QAAQ,CAACyB,SAAS,IAC9BL,OAAO,KAAKpB,QAAQ,CAAC0B,WAAW,EAChC;MACA7B,WAAW,CAAC,CAAC,CAAC8B,WAAW,CAAC,IAAIC,KAAK,CAACT,OAAO,CAAC,EAAED,GAAG,CAAC;IACpD;EAEF;EAEA,MAAMI,GAAGA,CAACO,GAAW,EAAEC,GAAW,EAAE;IAClC,IAAI;MAAA,IAAAC,qBAAA,EAAAC,sBAAA;MACF,IAAIC,MAAM,GAAG,MAAMlC,QAAQ,CAACmC,eAAe,CAAC,CAAC,CAAC;MAC9C,IAAID,MAAM,aAANA,MAAM,gBAAAF,qBAAA,GAANE,MAAM,CAAEE,aAAa,cAAAJ,qBAAA,eAArBA,qBAAA,CAAuBK,MAAM,IAAI,CAAAH,MAAM,aAANA,MAAM,gBAAAD,sBAAA,GAANC,MAAM,CAAEE,aAAa,cAAAH,sBAAA,uBAArBA,sBAAA,CAAuBI,MAAM,MAAK,MAAM,EAAE;QAC7Ef,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;QACnDD,OAAO,CAACC,GAAG,CAAC,wBAAwB,EAACO,GAAG,EAACC,GAAG,CAAC;QAC7CT,OAAO,CAACC,GAAG,CAAC,sCAAsC,CAAC;QACnD1B,YAAY,CAAC0B,GAAG,CAACxB,oBAAoB,CAACuC,IAAI,EAAER,GAAG,EAAEC,GAAG,CAAC;MACvD;IACF,CAAC,CAAC,OAAOQ,KAAS,EAAE;MAClB,IAAI,CAACrB,QAAQ,CAAC,gCAAgC,EAAEqB,KAAK,CAACnB,OAAO,EAAEnB,QAAQ,CAACwB,SAAS,CAAC;MAClF;IACF;EACF;EAEA,OAAce,WAAWA,CAAA,EAAW;IAClC,IAAI,CAACtC,MAAM,CAACuC,QAAQ,EAAE;MACpBvC,MAAM,CAACuC,QAAQ,GAAG,IAAIvC,MAAM,CAAC,CAAC;IAChC;IACA,OAAOA,MAAM,CAACuC,QAAQ;EACxB;AACF;AAACC,OAAA,GAnDKxC,MAAM;AAAAE,eAAA,CAANF,MAAM;AAqDZ,eAAeA,MAAM","ignoreList":[]}
|
|
@@ -26,7 +26,10 @@ export default class SdkUtils {
|
|
|
26
26
|
isMandatoryUpdate: 'false',
|
|
27
27
|
isMandatoryUpdateiOS: 'false',
|
|
28
28
|
toggleInAppUpdateiOS: 'false',
|
|
29
|
-
toggleInAppUpdate: 'false'
|
|
29
|
+
toggleInAppUpdate: 'false',
|
|
30
|
+
enableLogging: 'true',
|
|
31
|
+
enableLoggingTenantIds: '',
|
|
32
|
+
enableLoggingUserIds: ''
|
|
30
33
|
}).then(() => remoteConfig().fetchAndActivate()).then(fetchedRemotely => {
|
|
31
34
|
let config = remoteConfig().getAll();
|
|
32
35
|
if (fetchedRemotely) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["remoteConfig","Logger","LOG_TYPE","FileSystem","NativeModules","Platform","Location","NetworkUtil","BaseError","ErrorCodes","PermissionModule","DispatchSdkUtils","DispatchUtilsInterface","SdkUtils","getRemoteConfig","expiration","Promise","resolve","reject","fetch","setDefaults","cxRumDevApiKey","cxRumProdApiKey","isMandatoryUpdate","isMandatoryUpdateiOS","toggleInAppUpdateiOS","toggleInAppUpdate","then","fetchAndActivate","fetchedRemotely","config","getAll","getInstance","logEvent","SDK_INFO","catch","err","error","deleteApk","version","deleteAsync","cacheDirectory","openAPKFile","uri","openAndInstallApk","openAppSettings","openSettings","message","SDK_ERROR","checkMandatory","OS","foregroundLocation","requestForegroundPermissions","LOCATION_OR_GPS_NOT_ENABLED","dateTimeCheck","isAutomaticDateTimeEnabled","SYSTEM_TIME_CHECK_FAILED","requestWakeLockPermissions","enableNetworkProviderAsync","locationServicesCheck","hasServicesEnabledAsync","bgLocation","requestBackgroundPermissions","internet","isAvailableAsync","INTERNET_NOT_ENABLED"],"sources":["SdkUtils.ts"],"sourcesContent":["import remoteConfig from '@react-native-firebase/remote-config';\nimport Logger, { LOG_TYPE } from './Logger';\nimport type { DownloadProgressData } from 'expo-file-system';\nimport * as FileSystem from 'expo-file-system';\nimport { NativeModules, Platform } from 'react-native';\nimport * as Location from 'expo-location';\nimport NetworkUtil from './NetworkUtil';\nimport { BaseError } from '../errors/BaseError';\nimport ErrorCodes from '../errors/ErrorCodes';\nimport PermissionModule from '../native/PermissionModule';\n\nconst { DispatchSdkUtils } = NativeModules;\n\ninterface DispatchUtilsInterface {\n openAndInstallApk(apkUri: String): Promise<boolean>;\n openSettings(): Promise<boolean>;\n showAndroidDialog(\n title: string,\n message: string,\n positiveText: string,\n negativeText: string | null,\n cancelable: boolean\n ): Promise<boolean>;\n isAutomaticDateTimeEnabled(): Promise<boolean>;\n}\n\nexport { DispatchSdkUtils as DispatchUtilsInterface };\n\nexport default class SdkUtils {\n /**\n * number of seconds to cache the firebase config\n * @param expiration\n */\n static async getRemoteConfig(expiration: number): Promise<any> {\n return new Promise(async (resolve, reject) => {\n try {\n await remoteConfig().fetch(expiration);\n remoteConfig()\n .setDefaults({\n cxRumDevApiKey: 'NA',\n cxRumProdApiKey: 'NA',\n isMandatoryUpdate: 'false',\n isMandatoryUpdateiOS: 'false',\n toggleInAppUpdateiOS: 'false',\n toggleInAppUpdate: 'false',\n })\n .then(() => remoteConfig().fetchAndActivate())\n .then((fetchedRemotely) => {\n let config = remoteConfig().getAll();\n if (fetchedRemotely) {\n Logger.getInstance().logEvent(\n 'Remote Config',\n 'Configs were retrieved from the backend and activated.',\n LOG_TYPE.SDK_INFO\n );\n resolve(config);\n } else {\n Logger.getInstance().logEvent(\n 'Remote Config',\n 'No configs were fetched from the backend, and the local configs were already activated',\n LOG_TYPE.SDK_INFO\n );\n resolve(config);\n }\n })\n .catch((err) => {\n reject(err);\n });\n } catch (error: any) {\n reject(error);\n }\n });\n }\n\n /**\n * Opens & Install an APK file\n * @param uri - source of apk file\n */\n public static async deleteApk(version: string) {\n await FileSystem.deleteAsync(FileSystem.cacheDirectory + `${version}.apk`);\n }\n\n public static async openAPKFile(uri: string) {\n return await (DispatchSdkUtils as DispatchUtilsInterface).openAndInstallApk(\n uri\n );\n }\n\n public static openAppSettings() {\n (DispatchSdkUtils as DispatchUtilsInterface)\n .openSettings()\n .then()\n .catch((error) => {\n Logger.getInstance().logEvent(\n 'Intent error',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n });\n }\n\n public static async checkMandatory() {\n if (Platform.OS === 'ios') {\n const foregroundLocation = await PermissionModule.requestForegroundPermissions();\n if (!(foregroundLocation)) {\n throw new BaseError(\n ErrorCodes.LOCATION_OR_GPS_NOT_ENABLED,\n 'Location or GPS not enabled'\n );\n }\n return;\n }\n const dateTimeCheck = await (\n DispatchSdkUtils as DispatchUtilsInterface\n ).isAutomaticDateTimeEnabled();\n if (!dateTimeCheck) {\n throw new BaseError(\n ErrorCodes.SYSTEM_TIME_CHECK_FAILED,\n 'Automatic date/time not enabled!'\n );\n }\n if (Platform.OS === 'android') {\n await PermissionModule.requestWakeLockPermissions();\n await Location.enableNetworkProviderAsync();\n let locationServicesCheck = await Location.hasServicesEnabledAsync();\n const foregroundLocation = await PermissionModule.requestForegroundPermissions();\n // await Location.requestForegroundPermissionsAsync(); //permission code using expo module\n const bgLocation = await PermissionModule.requestBackgroundPermissions();\n // await Location.requestBackgroundPermissionsAsync(); //permission code using expo module\n if (!(locationServicesCheck && foregroundLocation && bgLocation)) {\n throw new BaseError(\n ErrorCodes.LOCATION_OR_GPS_NOT_ENABLED,\n 'Location or GPS not enabled'\n );\n }\n }\n let internet = await NetworkUtil.isAvailableAsync();\n if (!internet)\n throw new BaseError(\n ErrorCodes.INTERNET_NOT_ENABLED,\n 'Internet is disabled! Please enable internet and try again '\n );\n }\n}\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,sCAAsC;AAC/D,OAAOC,MAAM,IAAIC,QAAQ,QAAQ,UAAU;AAE3C,OAAO,KAAKC,UAAU,MAAM,kBAAkB;AAC9C,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAOC,WAAW,MAAM,eAAe;AACvC,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,gBAAgB,MAAM,4BAA4B;AAEzD,MAAM;EAAEC;AAAiB,CAAC,GAAGP,aAAa;AAe1C,SAASO,gBAAgB,IAAIC,sBAAsB;AAEnD,eAAe,MAAMC,QAAQ,CAAC;EAC5B;AACF;AACA;AACA;EACE,aAAaC,eAAeA,CAACC,UAAkB,EAAgB;IAC7D,OAAO,IAAIC,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;MAC5C,IAAI;QACF,MAAMlB,YAAY,CAAC,CAAC,CAACmB,KAAK,CAACJ,UAAU,CAAC;QACtCf,YAAY,CAAC,CAAC,CACXoB,WAAW,CAAC;UACXC,cAAc,EAAE,IAAI;UACpBC,eAAe,EAAE,IAAI;UACrBC,iBAAiB,EAAE,OAAO;UAC1BC,oBAAoB,EAAE,OAAO;UAC7BC,oBAAoB,EAAE,OAAO;UAC7BC,iBAAiB,EAAE;
|
|
1
|
+
{"version":3,"names":["remoteConfig","Logger","LOG_TYPE","FileSystem","NativeModules","Platform","Location","NetworkUtil","BaseError","ErrorCodes","PermissionModule","DispatchSdkUtils","DispatchUtilsInterface","SdkUtils","getRemoteConfig","expiration","Promise","resolve","reject","fetch","setDefaults","cxRumDevApiKey","cxRumProdApiKey","isMandatoryUpdate","isMandatoryUpdateiOS","toggleInAppUpdateiOS","toggleInAppUpdate","enableLogging","enableLoggingTenantIds","enableLoggingUserIds","then","fetchAndActivate","fetchedRemotely","config","getAll","getInstance","logEvent","SDK_INFO","catch","err","error","deleteApk","version","deleteAsync","cacheDirectory","openAPKFile","uri","openAndInstallApk","openAppSettings","openSettings","message","SDK_ERROR","checkMandatory","OS","foregroundLocation","requestForegroundPermissions","LOCATION_OR_GPS_NOT_ENABLED","dateTimeCheck","isAutomaticDateTimeEnabled","SYSTEM_TIME_CHECK_FAILED","requestWakeLockPermissions","enableNetworkProviderAsync","locationServicesCheck","hasServicesEnabledAsync","bgLocation","requestBackgroundPermissions","internet","isAvailableAsync","INTERNET_NOT_ENABLED"],"sources":["SdkUtils.ts"],"sourcesContent":["import remoteConfig from '@react-native-firebase/remote-config';\nimport Logger, { LOG_TYPE } from './Logger';\nimport type { DownloadProgressData } from 'expo-file-system';\nimport * as FileSystem from 'expo-file-system';\nimport { NativeModules, Platform } from 'react-native';\nimport * as Location from 'expo-location';\nimport NetworkUtil from './NetworkUtil';\nimport { BaseError } from '../errors/BaseError';\nimport ErrorCodes from '../errors/ErrorCodes';\nimport PermissionModule from '../native/PermissionModule';\n\nconst { DispatchSdkUtils } = NativeModules;\n\ninterface DispatchUtilsInterface {\n openAndInstallApk(apkUri: String): Promise<boolean>;\n openSettings(): Promise<boolean>;\n showAndroidDialog(\n title: string,\n message: string,\n positiveText: string,\n negativeText: string | null,\n cancelable: boolean\n ): Promise<boolean>;\n isAutomaticDateTimeEnabled(): Promise<boolean>;\n}\n\nexport { DispatchSdkUtils as DispatchUtilsInterface };\n\nexport default class SdkUtils {\n /**\n * number of seconds to cache the firebase config\n * @param expiration\n */\n static async getRemoteConfig(expiration: number): Promise<any> {\n return new Promise(async (resolve, reject) => {\n try {\n await remoteConfig().fetch(expiration);\n remoteConfig()\n .setDefaults({\n cxRumDevApiKey: 'NA',\n cxRumProdApiKey: 'NA',\n isMandatoryUpdate: 'false',\n isMandatoryUpdateiOS: 'false',\n toggleInAppUpdateiOS: 'false',\n toggleInAppUpdate: 'false',\n enableLogging: 'true',\n enableLoggingTenantIds: '',\n enableLoggingUserIds: '',\n })\n .then(() => remoteConfig().fetchAndActivate())\n .then((fetchedRemotely) => {\n let config = remoteConfig().getAll();\n if (fetchedRemotely) {\n Logger.getInstance().logEvent(\n 'Remote Config',\n 'Configs were retrieved from the backend and activated.',\n LOG_TYPE.SDK_INFO\n );\n resolve(config);\n } else {\n Logger.getInstance().logEvent(\n 'Remote Config',\n 'No configs were fetched from the backend, and the local configs were already activated',\n LOG_TYPE.SDK_INFO\n );\n resolve(config);\n }\n })\n .catch((err) => {\n reject(err);\n });\n } catch (error: any) {\n reject(error);\n }\n });\n }\n\n /**\n * Opens & Install an APK file\n * @param uri - source of apk file\n */\n public static async deleteApk(version: string) {\n await FileSystem.deleteAsync(FileSystem.cacheDirectory + `${version}.apk`);\n }\n\n public static async openAPKFile(uri: string) {\n return await (DispatchSdkUtils as DispatchUtilsInterface).openAndInstallApk(\n uri\n );\n }\n\n public static openAppSettings() {\n (DispatchSdkUtils as DispatchUtilsInterface)\n .openSettings()\n .then()\n .catch((error) => {\n Logger.getInstance().logEvent(\n 'Intent error',\n error.message,\n LOG_TYPE.SDK_ERROR\n );\n });\n }\n\n public static async checkMandatory() {\n if (Platform.OS === 'ios') {\n const foregroundLocation = await PermissionModule.requestForegroundPermissions();\n if (!(foregroundLocation)) {\n throw new BaseError(\n ErrorCodes.LOCATION_OR_GPS_NOT_ENABLED,\n 'Location or GPS not enabled'\n );\n }\n return;\n }\n const dateTimeCheck = await (\n DispatchSdkUtils as DispatchUtilsInterface\n ).isAutomaticDateTimeEnabled();\n if (!dateTimeCheck) {\n throw new BaseError(\n ErrorCodes.SYSTEM_TIME_CHECK_FAILED,\n 'Automatic date/time not enabled!'\n );\n }\n if (Platform.OS === 'android') {\n await PermissionModule.requestWakeLockPermissions();\n await Location.enableNetworkProviderAsync();\n let locationServicesCheck = await Location.hasServicesEnabledAsync();\n const foregroundLocation = await PermissionModule.requestForegroundPermissions();\n // await Location.requestForegroundPermissionsAsync(); //permission code using expo module\n const bgLocation = await PermissionModule.requestBackgroundPermissions();\n // await Location.requestBackgroundPermissionsAsync(); //permission code using expo module\n if (!(locationServicesCheck && foregroundLocation && bgLocation)) {\n throw new BaseError(\n ErrorCodes.LOCATION_OR_GPS_NOT_ENABLED,\n 'Location or GPS not enabled'\n );\n }\n }\n let internet = await NetworkUtil.isAvailableAsync();\n if (!internet)\n throw new BaseError(\n ErrorCodes.INTERNET_NOT_ENABLED,\n 'Internet is disabled! Please enable internet and try again '\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ declare class Logger {
|
|
|
14
14
|
private enableLogs;
|
|
15
15
|
setLogging(enabled: boolean, sdkConfig: DispatchSDKConfig): void;
|
|
16
16
|
logEvent(TAG: string, message: string, logType: LOG_TYPE): void;
|
|
17
|
+
log(Tag: string, msg: string): Promise<void>;
|
|
17
18
|
static getInstance(): Logger;
|
|
18
19
|
}
|
|
19
20
|
export default Logger;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@os1-platform/dispatch-mobile",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.4",
|
|
4
4
|
"description": "Dispatch SDK React Native Package",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -167,6 +167,7 @@
|
|
|
167
167
|
"react-native-vector-icons": "^9.0.0"
|
|
168
168
|
},
|
|
169
169
|
"dependencies": {
|
|
170
|
+
"@coralogix/react-native-sdk": "^1.0.15",
|
|
170
171
|
"@os1-platform/platform-coreos-execution-engine-sdk": "1.1.1",
|
|
171
172
|
"@rjsf/core": "^2.0.0",
|
|
172
173
|
"apollo-link-timeout": "^4.0.0",
|
|
@@ -61,6 +61,7 @@ import {
|
|
|
61
61
|
INVALID_OTP_LENGTH,
|
|
62
62
|
INVALID_OTP_ONE_ATTEMPT_LEFT,
|
|
63
63
|
OTP_SENT_SUCCESSFULLY,
|
|
64
|
+
TAG_VERIFY_OTP,
|
|
64
65
|
UNABLE_TO_SEND_OTP,
|
|
65
66
|
} from './constants';
|
|
66
67
|
|
|
@@ -89,6 +90,7 @@ import {
|
|
|
89
90
|
SeverityLevelValue,
|
|
90
91
|
} from '../../../analytics/sentry/SentrySdkConstants';
|
|
91
92
|
import { fireEventWithScreenName } from '../../../analytics/sentry/SentryAnalyticsUtils';
|
|
93
|
+
import Logger, { LOG_TYPE } from '../../../utils/Logger';
|
|
92
94
|
|
|
93
95
|
const ValidateOTPET: FC<ValidateOTPInput> = (props) => {
|
|
94
96
|
const { contacts, navigation } = props;
|
|
@@ -284,28 +286,47 @@ const ValidateOTPET: FC<ValidateOTPInput> = (props) => {
|
|
|
284
286
|
},
|
|
285
287
|
};
|
|
286
288
|
|
|
289
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:payloadForGenerateOTP : ${JSON.stringify(payload)}`);
|
|
290
|
+
|
|
287
291
|
const response = await generateOTP(payload, { ...props, domain });
|
|
288
292
|
|
|
289
|
-
|
|
290
|
-
if (!response.status && response?.code === '101080001017') {
|
|
291
|
-
setCurrentScreen(VALIDATE_OTP_SCREENS.OTP_VIEW);
|
|
292
|
-
setLoading(false);
|
|
293
|
-
setSnackBar({
|
|
294
|
-
show: true,
|
|
295
|
-
message: response?.data?.result?.message || UNABLE_TO_SEND_OTP,
|
|
296
|
-
type: SnackBarType.OTP_FAILED,
|
|
297
|
-
});
|
|
298
|
-
} else {
|
|
299
|
-
setLoading(false);
|
|
300
|
-
setSnackBar({
|
|
301
|
-
show: true,
|
|
302
|
-
message: response?.data?.result?.message || ERROR_GENERATING_OTP,
|
|
303
|
-
type: SnackBarType.OTP_FAILED,
|
|
304
|
-
});
|
|
305
|
-
}
|
|
293
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:responseForGenerateOTP : ${JSON.stringify(response)}`);
|
|
306
294
|
|
|
295
|
+
if (response?.status != undefined) {
|
|
296
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:response.status != undefined : ${JSON.stringify(response)}`);
|
|
297
|
+
if (!response?.status) {
|
|
298
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:response.status == false : ${JSON.stringify(response)}`);
|
|
299
|
+
if (response?.code === '101080001017') {
|
|
300
|
+
setCurrentScreen(VALIDATE_OTP_SCREENS.OTP_VIEW);
|
|
301
|
+
setLoading(false);
|
|
302
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:${UNABLE_TO_SEND_OTP}`);
|
|
303
|
+
setSnackBar({
|
|
304
|
+
show: true,
|
|
305
|
+
message: response?.data?.result?.message || UNABLE_TO_SEND_OTP,
|
|
306
|
+
type: SnackBarType.OTP_FAILED,
|
|
307
|
+
});
|
|
308
|
+
} else {
|
|
309
|
+
setLoading(false);
|
|
310
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:${ERROR_GENERATING_OTP}`);
|
|
311
|
+
setSnackBar({
|
|
312
|
+
show: true,
|
|
313
|
+
message: response?.data?.result?.message || ERROR_GENERATING_OTP,
|
|
314
|
+
type: SnackBarType.OTP_FAILED,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
}else{
|
|
320
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:response.status == undefined : ${JSON.stringify(response)}`);
|
|
321
|
+
setLoading(false);
|
|
322
|
+
setSnackBar({
|
|
323
|
+
show: true,
|
|
324
|
+
message: response?.data?.result?.message || ERROR_GENERATING_OTP,
|
|
325
|
+
type: SnackBarType.OTP_FAILED,
|
|
326
|
+
});
|
|
307
327
|
return;
|
|
308
328
|
}
|
|
329
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `handleContactListProceed:response.status == true : ${JSON.stringify(response)}`);
|
|
309
330
|
|
|
310
331
|
const resendCountValue =
|
|
311
332
|
Number(
|
|
@@ -322,9 +343,9 @@ const ValidateOTPET: FC<ValidateOTPInput> = (props) => {
|
|
|
322
343
|
message: OTP_SENT_SUCCESSFULLY,
|
|
323
344
|
type: SnackBarType.OTP_SUCCESS,
|
|
324
345
|
});
|
|
325
|
-
} catch (error) {
|
|
346
|
+
} catch (error: any) {
|
|
347
|
+
Logger.getInstance().log(TAG_VERIFY_OTP,`handleContactListProceed:catch : ${error.message}`)
|
|
326
348
|
setLoading(false);
|
|
327
|
-
console.error('Error in handleContactListProceed:', error);
|
|
328
349
|
setSnackBar({
|
|
329
350
|
show: true,
|
|
330
351
|
message: ERROR_GENERATING_OTP,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as jsonLogic from 'json-logic-js';
|
|
3
3
|
import Logger, { LOG_TYPE } from '../../../utils/Logger';
|
|
4
4
|
import { createApiData, getAxiosApiResponse } from '../../../utils/ApiUtils';
|
|
5
|
-
import { DEFAULT_RETRY_CONFIG } from './constants';
|
|
5
|
+
import { DEFAULT_RETRY_CONFIG, TAG_VERIFY_OTP } from './constants';
|
|
6
6
|
import type {
|
|
7
7
|
ResendOTPConfigType,
|
|
8
8
|
EmailAndPhoneResponse,
|
|
@@ -56,8 +56,14 @@ export const generateOTP = async (
|
|
|
56
56
|
isCustomConfig ? props.otpGeneration : undefined
|
|
57
57
|
);
|
|
58
58
|
|
|
59
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:apiData : ${JSON.stringify(apiData)}`);
|
|
60
|
+
|
|
61
|
+
|
|
59
62
|
const apiResponse = await getAxiosApiResponse(apiData);
|
|
60
63
|
|
|
64
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:apiResponse : ${JSON.stringify(apiResponse)}`);
|
|
65
|
+
|
|
66
|
+
|
|
61
67
|
if (isCustomConfig && apiData.responseJsonLogic) {
|
|
62
68
|
return jsonLogic.apply(
|
|
63
69
|
<jsonLogic.RulesLogic>apiData.responseJsonLogic,
|
|
@@ -72,7 +78,10 @@ export const generateOTP = async (
|
|
|
72
78
|
error.message,
|
|
73
79
|
LOG_TYPE.SDK_ERROR
|
|
74
80
|
);
|
|
75
|
-
|
|
81
|
+
|
|
82
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `generateOTP:catch : ${error.message}`);
|
|
83
|
+
|
|
84
|
+
console.error('error: ', error.message);
|
|
76
85
|
return error?.response?.data ?? false;
|
|
77
86
|
}
|
|
78
87
|
};
|
|
@@ -94,8 +103,12 @@ export const verifyOTP = async (
|
|
|
94
103
|
isCustomConfig ? props.validationApi : undefined
|
|
95
104
|
);
|
|
96
105
|
|
|
106
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:apiData : ${JSON.stringify(apiData)}`);
|
|
107
|
+
|
|
97
108
|
const apiResponse = await getAxiosApiResponse(apiData);
|
|
98
109
|
|
|
110
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:apiResponse : ${JSON.stringify(apiResponse)}`);
|
|
111
|
+
|
|
99
112
|
if (isCustomConfig && apiData.responseJsonLogic) {
|
|
100
113
|
return jsonLogic.apply(
|
|
101
114
|
<jsonLogic.RulesLogic>apiData.responseJsonLogic,
|
|
@@ -110,7 +123,8 @@ export const verifyOTP = async (
|
|
|
110
123
|
error.message,
|
|
111
124
|
LOG_TYPE.SDK_ERROR
|
|
112
125
|
);
|
|
113
|
-
console.error('error: ',
|
|
126
|
+
console.error('error: ', error.message);
|
|
127
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `verifyOTP:catch : ${error.message}`);
|
|
114
128
|
return error?.response?.data ?? false;
|
|
115
129
|
}
|
|
116
130
|
};
|
|
@@ -132,8 +146,13 @@ export const resendOTP = async (
|
|
|
132
146
|
isCustomConfig ? props.resendApi : undefined
|
|
133
147
|
);
|
|
134
148
|
|
|
149
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:apiData : ${JSON.stringify(apiData)}`);
|
|
150
|
+
|
|
135
151
|
const apiResponse = await getAxiosApiResponse(apiData);
|
|
136
152
|
|
|
153
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:apiResponse : ${JSON.stringify(apiResponse)}`);
|
|
154
|
+
|
|
155
|
+
|
|
137
156
|
if (isCustomConfig && apiData.responseJsonLogic) {
|
|
138
157
|
return jsonLogic.apply(
|
|
139
158
|
<jsonLogic.RulesLogic>apiData.responseJsonLogic,
|
|
@@ -141,6 +160,8 @@ export const resendOTP = async (
|
|
|
141
160
|
);
|
|
142
161
|
}
|
|
143
162
|
|
|
163
|
+
|
|
164
|
+
|
|
144
165
|
return apiResponse.data;
|
|
145
166
|
} catch (error: any) {
|
|
146
167
|
Logger.getInstance().logEvent(
|
|
@@ -148,7 +169,8 @@ export const resendOTP = async (
|
|
|
148
169
|
error.message,
|
|
149
170
|
LOG_TYPE.SDK_ERROR
|
|
150
171
|
);
|
|
151
|
-
|
|
172
|
+
Logger.getInstance().log(TAG_VERIFY_OTP, `resendOTP:catch : ${error.message}`);
|
|
173
|
+
console.error('error: ', error.message);
|
|
152
174
|
return error?.response?.data ?? false;
|
|
153
175
|
}
|
|
154
176
|
};
|
|
@@ -105,7 +105,7 @@ export default class ReasonCodeContainer {
|
|
|
105
105
|
} catch (error: any) {
|
|
106
106
|
Logger.getInstance().logEvent(
|
|
107
107
|
'fetchReasonCode',
|
|
108
|
-
|
|
108
|
+
error.message,
|
|
109
109
|
LOG_TYPE.SDK_ERROR
|
|
110
110
|
);
|
|
111
111
|
throw new BaseError(ErrorCodes.REASON_CODE_API_ERROR, error.message);
|
package/src/utils/Logger.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { CoralogixRum } from '@coralogix/react-native-sdk';
|
|
1
2
|
import type { DispatchSDKConfig } from '../models/sdk';
|
|
2
3
|
import crashlytics from '@react-native-firebase/crashlytics';
|
|
4
|
+
import { CoralogixLogSeverity } from '@coralogix/react-native-sdk/src/types-external';
|
|
5
|
+
import SdkUtils from './SdkUtils';
|
|
3
6
|
|
|
4
7
|
export const enum LOG_TYPE {
|
|
5
8
|
SDK_ERROR = 'sdk_error',
|
|
@@ -39,8 +42,23 @@ class Logger {
|
|
|
39
42
|
) {
|
|
40
43
|
crashlytics().recordError(new Error(message), TAG);
|
|
41
44
|
}
|
|
45
|
+
|
|
42
46
|
}
|
|
43
47
|
|
|
48
|
+
async log(Tag: string, msg: string) {
|
|
49
|
+
try {
|
|
50
|
+
let result = await SdkUtils.getRemoteConfig(0);
|
|
51
|
+
if (result?.enableLogging?._value && result?.enableLogging?._value === "true") {
|
|
52
|
+
console.log("====================================");
|
|
53
|
+
console.log("Logging to Coralogix: ",Tag,msg);
|
|
54
|
+
console.log("====================================");
|
|
55
|
+
CoralogixRum.log(CoralogixLogSeverity.Info, Tag, msg);
|
|
56
|
+
}
|
|
57
|
+
} catch (error:any) {
|
|
58
|
+
this.logEvent("DispatchSDK:RemoteConfigError:", error.message, LOG_TYPE.SDK_ERROR);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
44
62
|
|
|
45
63
|
public static getInstance(): Logger {
|
|
46
64
|
if (!Logger.instance) {
|
package/src/utils/SdkUtils.ts
CHANGED
|
@@ -43,6 +43,9 @@ export default class SdkUtils {
|
|
|
43
43
|
isMandatoryUpdateiOS: 'false',
|
|
44
44
|
toggleInAppUpdateiOS: 'false',
|
|
45
45
|
toggleInAppUpdate: 'false',
|
|
46
|
+
enableLogging: 'true',
|
|
47
|
+
enableLoggingTenantIds: '',
|
|
48
|
+
enableLoggingUserIds: '',
|
|
46
49
|
})
|
|
47
50
|
.then(() => remoteConfig().fetchAndActivate())
|
|
48
51
|
.then((fetchedRemotely) => {
|