@os1-platform/dispatch-mobile 3.1.5 → 3.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/android/.gradle/8.3/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.3/dependencies-accessors/dependencies-accessors.lock +0 -0
  3. package/android/.gradle/8.3/dependencies-accessors/gc.properties +0 -0
  4. package/android/.gradle/8.3/executionHistory/executionHistory.lock +0 -0
  5. package/android/.gradle/8.3/fileChanges/last-build.bin +0 -0
  6. package/android/.gradle/8.3/fileHashes/fileHashes.lock +0 -0
  7. package/android/.gradle/8.3/gc.properties +0 -0
  8. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  9. package/android/.gradle/buildOutputCleanup/cache.properties +2 -2
  10. package/android/build.gradle +4 -2
  11. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js +38 -45
  12. package/lib/commonjs/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  13. package/lib/commonjs/manager/dispatch/DispatchStateContainer.js +121 -108
  14. package/lib/commonjs/manager/dispatch/DispatchStateContainer.js.map +1 -1
  15. package/lib/commonjs/manager/sdk/DispatchSDKManager.js +1 -0
  16. package/lib/commonjs/manager/sdk/DispatchSDKManager.js.map +1 -1
  17. package/lib/commonjs/manager/syncmanager/AppSyncManager.js +3 -5
  18. package/lib/commonjs/manager/syncmanager/AppSyncManager.js.map +1 -1
  19. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js +62 -57
  20. package/lib/commonjs/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  21. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js +0 -1
  22. package/lib/commonjs/manager/syncmanager/document/DocumentManager.js.map +1 -1
  23. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js +6 -56
  24. package/lib/commonjs/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  25. package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js +1 -1
  26. package/lib/commonjs/manager/syncmanager/events/ETEventsManager.js.map +1 -1
  27. package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js +5 -6
  28. package/lib/commonjs/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
  29. package/lib/commonjs/manager/syncmanager/events/SyncHttpClient.js +2 -1
  30. package/lib/commonjs/manager/syncmanager/events/SyncHttpClient.js.map +1 -1
  31. package/lib/commonjs/network/client.js +8 -1
  32. package/lib/commonjs/network/client.js.map +1 -1
  33. package/lib/commonjs/ui/screens/CollectPaymentScreen.js +12 -18
  34. package/lib/commonjs/ui/screens/CollectPaymentScreen.js.map +1 -1
  35. package/lib/commonjs/ui/screens/CompleteObjectiveScreen.js +3 -2
  36. package/lib/commonjs/ui/screens/CompleteObjectiveScreen.js.map +1 -1
  37. package/lib/commonjs/ui/screens/DeliverScreen.js +13 -8
  38. package/lib/commonjs/ui/screens/DeliverScreen.js.map +1 -1
  39. package/lib/commonjs/ui/screens/DropCashScreen.js +14 -12
  40. package/lib/commonjs/ui/screens/DropCashScreen.js.map +1 -1
  41. package/lib/commonjs/ui/screens/ImageCaptureScreen.js +2 -2
  42. package/lib/commonjs/ui/screens/ImageCaptureScreen.js.map +1 -1
  43. package/lib/commonjs/ui/screens/PickupScreen.js +3 -8
  44. package/lib/commonjs/ui/screens/PickupScreen.js.map +1 -1
  45. package/lib/commonjs/ui/screens/StartWorkFlowScreen.js +2 -2
  46. package/lib/commonjs/ui/screens/StartWorkFlowScreen.js.map +1 -1
  47. package/lib/commonjs/utils/Constants.js +1 -2
  48. package/lib/commonjs/utils/Constants.js.map +1 -1
  49. package/lib/commonjs/utils/Logger.js +20 -8
  50. package/lib/commonjs/utils/Logger.js.map +1 -1
  51. package/lib/commonjs/utils/SdkUtils.js +1 -0
  52. package/lib/commonjs/utils/SdkUtils.js.map +1 -1
  53. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js +38 -45
  54. package/lib/module/components/executiontasks/imageCapture/ImageCapture.js.map +1 -1
  55. package/lib/module/manager/dispatch/DispatchStateContainer.js +121 -108
  56. package/lib/module/manager/dispatch/DispatchStateContainer.js.map +1 -1
  57. package/lib/module/manager/sdk/DispatchSDKManager.js +1 -0
  58. package/lib/module/manager/sdk/DispatchSDKManager.js.map +1 -1
  59. package/lib/module/manager/syncmanager/AppSyncManager.js +3 -5
  60. package/lib/module/manager/syncmanager/AppSyncManager.js.map +1 -1
  61. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js +62 -57
  62. package/lib/module/manager/syncmanager/document/DocumentHttpClient.js.map +1 -1
  63. package/lib/module/manager/syncmanager/document/DocumentManager.js +0 -1
  64. package/lib/module/manager/syncmanager/document/DocumentManager.js.map +1 -1
  65. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js +6 -56
  66. package/lib/module/manager/syncmanager/document/DocumentSyncManager.js.map +1 -1
  67. package/lib/module/manager/syncmanager/events/ETEventsManager.js +1 -1
  68. package/lib/module/manager/syncmanager/events/ETEventsManager.js.map +1 -1
  69. package/lib/module/manager/syncmanager/events/EventsSyncManager.js +5 -6
  70. package/lib/module/manager/syncmanager/events/EventsSyncManager.js.map +1 -1
  71. package/lib/module/manager/syncmanager/events/SyncHttpClient.js +2 -1
  72. package/lib/module/manager/syncmanager/events/SyncHttpClient.js.map +1 -1
  73. package/lib/module/network/client.js +8 -1
  74. package/lib/module/network/client.js.map +1 -1
  75. package/lib/module/ui/screens/CollectPaymentScreen.js +12 -18
  76. package/lib/module/ui/screens/CollectPaymentScreen.js.map +1 -1
  77. package/lib/module/ui/screens/CompleteObjectiveScreen.js +3 -2
  78. package/lib/module/ui/screens/CompleteObjectiveScreen.js.map +1 -1
  79. package/lib/module/ui/screens/DeliverScreen.js +13 -8
  80. package/lib/module/ui/screens/DeliverScreen.js.map +1 -1
  81. package/lib/module/ui/screens/DropCashScreen.js +13 -12
  82. package/lib/module/ui/screens/DropCashScreen.js.map +1 -1
  83. package/lib/module/ui/screens/ImageCaptureScreen.js +2 -2
  84. package/lib/module/ui/screens/ImageCaptureScreen.js.map +1 -1
  85. package/lib/module/ui/screens/PickupScreen.js +3 -8
  86. package/lib/module/ui/screens/PickupScreen.js.map +1 -1
  87. package/lib/module/ui/screens/StartWorkFlowScreen.js +2 -2
  88. package/lib/module/ui/screens/StartWorkFlowScreen.js.map +1 -1
  89. package/lib/module/utils/Constants.js +1 -2
  90. package/lib/module/utils/Constants.js.map +1 -1
  91. package/lib/module/utils/Logger.js +20 -8
  92. package/lib/module/utils/Logger.js.map +1 -1
  93. package/lib/module/utils/SdkUtils.js +1 -0
  94. package/lib/module/utils/SdkUtils.js.map +1 -1
  95. package/lib/typescript/network/client.d.ts +2 -1
  96. package/lib/typescript/utils/Constants.d.ts +1 -1
  97. package/lib/typescript/utils/Logger.d.ts +3 -1
  98. package/package.json +2 -2
  99. package/src/components/executiontasks/imageCapture/ImageCapture.tsx +43 -54
  100. package/src/manager/dispatch/DispatchStateContainer.tsx +158 -164
  101. package/src/manager/sdk/DispatchSDKManager.ts +2 -1
  102. package/src/manager/syncmanager/AppSyncManager.ts +3 -17
  103. package/src/manager/syncmanager/document/DocumentHttpClient.ts +90 -86
  104. package/src/manager/syncmanager/document/DocumentManager.ts +0 -1
  105. package/src/manager/syncmanager/document/DocumentSyncManager.ts +6 -76
  106. package/src/manager/syncmanager/events/ETEventsManager.ts +1 -1
  107. package/src/manager/syncmanager/events/EventsSyncManager.ts +8 -29
  108. package/src/manager/syncmanager/events/SyncHttpClient.ts +2 -5
  109. package/src/network/client.ts +12 -2
  110. package/src/ui/screens/CollectPaymentScreen.tsx +14 -33
  111. package/src/ui/screens/CompleteObjectiveScreen.tsx +3 -6
  112. package/src/ui/screens/DeliverScreen.tsx +16 -11
  113. package/src/ui/screens/DropCashScreen.tsx +10 -10
  114. package/src/ui/screens/ImageCaptureScreen.tsx +2 -2
  115. package/src/ui/screens/PickupScreen.tsx +5 -12
  116. package/src/ui/screens/StartWorkFlowScreen.tsx +1 -1
  117. package/src/utils/Constants.ts +1 -2
  118. package/src/utils/Logger.ts +26 -18
  119. package/src/utils/SdkUtils.ts +1 -0
@@ -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","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":[]}
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","enableHyperlocalLogging","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 enableHyperlocalLogging: 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":[]}
@@ -1,8 +1,9 @@
1
- import { AxiosInstance, AxiosResponse } from 'axios';
1
+ import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  export default abstract class HttpClient {
3
3
  protected readonly instance: AxiosInstance;
4
4
  protected constructor(baseURL: string);
5
5
  private _initializeResponseInterceptor;
6
+ protected _handleRequest: (request: AxiosRequestConfig) => AxiosRequestConfig<any>;
6
7
  protected _handleResponse: (response: AxiosResponse) => AxiosResponse<any, any>;
7
8
  protected _handleError: (error: any) => Promise<never>;
8
9
  }
@@ -1,2 +1,2 @@
1
1
  export declare const PROGRESS_GROUP: string;
2
- export declare const EXPIRY_TIME: number;
2
+ export declare const EXPIRY_TIME = 21600;
@@ -12,9 +12,11 @@ export declare const enum LOG_TYPE {
12
12
  declare class Logger {
13
13
  private static instance;
14
14
  private enableLogs;
15
- setLogging(enabled: boolean, sdkConfig: DispatchSDKConfig): void;
15
+ private enableLogsLocal;
16
+ setLogging(enabled: boolean, sdkConfig: DispatchSDKConfig): Promise<void>;
16
17
  logEvent(TAG: string, message: string, logType: LOG_TYPE): void;
17
18
  log(Tag: string, msg: string): Promise<void>;
19
+ logCora(Tag: string, msg: string): Promise<void>;
18
20
  static getInstance(): Logger;
19
21
  }
20
22
  export default Logger;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os1-platform/dispatch-mobile",
3
- "version": "3.1.5",
3
+ "version": "3.1.7",
4
4
  "description": "Dispatch SDK React Native Package",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -168,7 +168,7 @@
168
168
  },
169
169
  "dependencies": {
170
170
  "@coralogix/react-native-sdk": "^1.0.15",
171
- "@os1-platform/platform-coreos-execution-engine-sdk": "1.1.1",
171
+ "@os1-platform/platform-coreos-execution-engine-sdk": "1.1.2",
172
172
  "@rjsf/core": "^2.0.0",
173
173
  "apollo-link-timeout": "^4.0.0",
174
174
  "decompress": "^4.2.1",
@@ -249,7 +249,6 @@ const ImageCapture = (props: any) => {
249
249
  try {
250
250
  setDisableProceed(true);
251
251
  let imagesArray = imagesDummy.filter(item => item != null && item.path != null && item.path.length != 0);
252
- console.log('imagesArray:', JSON.stringify(imagesArray));
253
252
 
254
253
  if (imagesArray.length > 0) {
255
254
  props.onSubmitET(await getCaptureOutput(imagesArray, props));
@@ -259,6 +258,7 @@ const ImageCapture = (props: any) => {
259
258
  } catch (error: any) {
260
259
  setDisableProceed(false);
261
260
  showToast(error.message);
261
+ Logger.getInstance().logCora("Error", `ImageCapture handleSubmit: ${error}`);
262
262
  } finally {
263
263
  setDisableProceed(false);
264
264
  }
@@ -285,66 +285,55 @@ const ImageCapture = (props: any) => {
285
285
  // }, [images, props, showCapture]);
286
286
 
287
287
  const captureImage = useCallback(async (index) => {
288
-
289
- // // if (!showCapture) {
290
- // // showToast(`Max Image Limit reached`);
291
- // // return;
292
- // // }
293
- // console.log("captureImage", CaptureUtils);
294
- let imageDataResponse = await CaptureUtils.captureImage(
295
- props.resolution.breadth,
296
- props.resolution.length,
297
- props.fileSizeLimit
298
- );
299
-
300
- if (imageDataResponse != null) {
301
- setButtonProceed(true);
302
-
303
- let imgArray = [];
304
- imgArray = imagesDummy;
305
- const dateTime = await callbackHandler.getDateTime();
306
- console.log('captureImage:dateTime: ', dateTime);
307
- let lastLocation = await LocationManager.getInstance().getLastLocation();
308
- console.log("captureImage:lastLocation:",JSON.stringify(lastLocation));
309
-
310
- imgArray[index] = {
311
- id: CaptureUtils.getImagesFileName(),
312
- // @ts-ignore
313
- path: imageDataResponse.uri,
314
- url: '',
315
- timestamp: Date.now(),
316
- dateTime: dateTime,
317
- lat: lastLocation.latitude,
318
- lng: lastLocation.longitude,
319
- accuracy: lastLocation.accuracy,
320
- };
321
- setImagesDummy([...imgArray])
322
- console.log("images211:", JSON.stringify(imgArray));
323
-
288
+ try {
289
+ let imageDataResponse = await CaptureUtils.captureImage(
290
+ props.resolution.breadth,
291
+ props.resolution.length,
292
+ props.fileSizeLimit
293
+ );
294
+
295
+ if (imageDataResponse != null) {
296
+ setButtonProceed(true);
297
+
298
+ let imgArray = [];
299
+ imgArray = imagesDummy;
300
+ const dateTime = await callbackHandler.getDateTime();
301
+ let lastLocation = await LocationManager.getInstance().getLastLocation();
302
+ imgArray[index] = {
303
+ id: CaptureUtils.getImagesFileName(),
304
+ // @ts-ignore
305
+ path: imageDataResponse.uri,
306
+ url: '',
307
+ timestamp: Date.now(),
308
+ dateTime: dateTime,
309
+ lat: lastLocation.latitude,
310
+ lng: lastLocation.longitude,
311
+ accuracy: lastLocation.accuracy,
312
+ };
313
+ setImagesDummy([...imgArray])
314
+ }
315
+ } catch (error: any) {
316
+ Logger.getInstance().logCora("Error", `ImageCapture captureImage: ${error}`);
324
317
  }
325
318
  }, [props.resolution.breadth, props.resolution.length, props.fileSizeLimit]);
326
319
 
327
320
 
328
321
  const deleteImage = async (index: any) => {
329
- let imageDummyArray = [];
330
- imageDummyArray = imagesDummy
331
- imageDummyArray[index].path = ""
332
- setImagesDummy([...imageDummyArray])
333
-
334
- let initialProceedValue = false;
335
- for (let i = 0; i < imageDummyArray.length; i++) {
336
- if (imageDummyArray[i]?.path) {
337
- initialProceedValue = true;
338
- }
339
- }
340
- setButtonProceed(initialProceedValue);
341
-
342
322
  try {
343
- // setImagesDummy(filteredImages);
344
- // setButtonProceed(false);
323
+ let imageDummyArray = [];
324
+ imageDummyArray = imagesDummy
325
+ imageDummyArray[index].path = ""
326
+ setImagesDummy([...imageDummyArray])
327
+
328
+ let initialProceedValue = false;
329
+ for (let i = 0; i < imageDummyArray.length; i++) {
330
+ if (imageDummyArray[i]?.path) {
331
+ initialProceedValue = true;
332
+ }
333
+ }
334
+ setButtonProceed(initialProceedValue);
345
335
  } catch (err: any) {
346
- Logger.getInstance().logEvent('deleteImageError', err.message, LOG_TYPE.SDK_ERROR);
347
- console.error("Error updating state after deletion:", err);
336
+ Logger.getInstance().logCora("Error", `ImageCapture deleteImage: ${err}`);
348
337
  }
349
338
  };
350
339
 
@@ -147,6 +147,7 @@ export default class DispatchStateContainer {
147
147
  maxTaskReattempt,
148
148
  eventSyncBatchSize: BULK_DATA_LIMIT,
149
149
  });
150
+ Logger.getInstance().logCora("Info", `DispatchExecutor started with ID: ${dispatchID}`);
150
151
  }
151
152
 
152
153
  // NEW CODE
@@ -166,14 +167,9 @@ export default class DispatchStateContainer {
166
167
  statusFilter: IDispatchExecutor.ExecutionStatus[]
167
168
  ): Promise<IDispatch.IExecutionTaskQueryResponse[]> {
168
169
  if (!mergedObjectiveId) {
169
- Logger.getInstance().logEvent(
170
- 'queryNextET',
171
- 'CONSTRAINTS FAILED',
172
- LOG_TYPE.SDK_ERROR
173
- );
170
+ Logger.getInstance().logCora("Error", `Merged Objective ID is null`);
174
171
  throw new BaseError(ErrorCodes.MERGING_ERROR, 'CONSTRAINTS FAILED');
175
172
  }
176
-
177
173
  return await dispatchExecutor.getNextTask(
178
174
  mergedObjectiveId[0],
179
175
  statusFilter
@@ -185,36 +181,40 @@ export default class DispatchStateContainer {
185
181
  prefixedMergedObjectiveId: Array<string>,
186
182
  prefixKey: string
187
183
  ) {
188
- etOutput.mergedObjectiveIds = prefixedMergedObjectiveId;
189
- let storage = Storage.getInstance();
190
- const output = await storage.getSharedItem(SHARED_PREFERENCE_SCAN_OUTPUT);
191
-
192
- if (output) {
193
- const scanETOutput: SHARED_PREF_SCAN_OUTPUT_INTERFACE =
194
- JSON.parse(output);
195
- let _scanETOutput: ScannerOutput = {};
196
- if (scanETOutput[prefixKey]) {
197
- _scanETOutput = scanETOutput[prefixKey];
184
+ try {
185
+ etOutput.mergedObjectiveIds = prefixedMergedObjectiveId;
186
+ let storage = Storage.getInstance();
187
+ const output = await storage.getSharedItem(SHARED_PREFERENCE_SCAN_OUTPUT);
188
+
189
+ if (output) {
190
+ const scanETOutput: SHARED_PREF_SCAN_OUTPUT_INTERFACE =
191
+ JSON.parse(output);
192
+ let _scanETOutput: ScannerOutput = {};
193
+ if (scanETOutput[prefixKey]) {
194
+ _scanETOutput = scanETOutput[prefixKey];
195
+ }
196
+ prefixedMergedObjectiveId.forEach((mergedId: string) => {
197
+ _scanETOutput[mergedId] = etOutput;
198
+ });
199
+
200
+ // SAVE IN SHARED PREFERENCE
201
+ await storage.setSharedItem(
202
+ SHARED_PREFERENCE_SCAN_OUTPUT,
203
+ JSON.stringify({ ...scanETOutput, [prefixKey]: _scanETOutput })
204
+ );
205
+ } else {
206
+ const scanETOutput: SHARED_PREF_SCAN_OUTPUT_INTERFACE = {};
207
+ prefixedMergedObjectiveId.forEach((mergedId: string) => {
208
+ scanETOutput[mergedId] = etOutput;
209
+ });
210
+ // SAVE IN SHARED PREFERENCE
211
+ await storage.setSharedItem(
212
+ SHARED_PREFERENCE_SCAN_OUTPUT,
213
+ JSON.stringify({ [prefixKey]: scanETOutput })
214
+ );
198
215
  }
199
- prefixedMergedObjectiveId.forEach((mergedId: string) => {
200
- _scanETOutput[mergedId] = etOutput;
201
- });
202
-
203
- // SAVE IN SHARED PREFERENCE
204
- await storage.setSharedItem(
205
- SHARED_PREFERENCE_SCAN_OUTPUT,
206
- JSON.stringify({ ...scanETOutput, [prefixKey]: _scanETOutput })
207
- );
208
- } else {
209
- const scanETOutput: SHARED_PREF_SCAN_OUTPUT_INTERFACE = {};
210
- prefixedMergedObjectiveId.forEach((mergedId: string) => {
211
- scanETOutput[mergedId] = etOutput;
212
- });
213
- // SAVE IN SHARED PREFERENCE
214
- await storage.setSharedItem(
215
- SHARED_PREFERENCE_SCAN_OUTPUT,
216
- JSON.stringify({ [prefixKey]: scanETOutput })
217
- );
216
+ } catch (error: any) {
217
+ Logger.getInstance().logCora("Error", `updateScanETOutputSharedPreference: ${error}`);
218
218
  }
219
219
  }
220
220
 
@@ -223,28 +223,34 @@ export default class DispatchStateContainer {
223
223
  prefixedMergedObjectiveId: Array<string>,
224
224
  prefixKey: string
225
225
  ) {
226
- let storage = Storage.getInstance();
227
- const mergedIdOutput = await storage.getSharedItem(
228
- SCAN_MERGED_OBJ_ID_OUTPUT
229
- );
226
+ try {
230
227
 
231
- if (mergedIdOutput) {
232
- const mergedIds = JSON.parse(mergedIdOutput);
233
- const _mergedIds = mergedIds[prefixKey];
234
- if (_mergedIds) {
235
- if (eventType) {
236
- _mergedIds.success.push(...prefixedMergedObjectiveId);
237
- _mergedIds.pending = [];
238
- } else {
239
- _mergedIds.failure.push(...prefixedMergedObjectiveId);
240
- _mergedIds.pending = [];
241
- }
242
228
 
243
- await storage.setSharedItem(
244
- SCAN_MERGED_OBJ_ID_OUTPUT,
245
- JSON.stringify({ ...mergedIds, [prefixKey]: _mergedIds })
246
- );
229
+ let storage = Storage.getInstance();
230
+ const mergedIdOutput = await storage.getSharedItem(
231
+ SCAN_MERGED_OBJ_ID_OUTPUT
232
+ );
233
+
234
+ if (mergedIdOutput) {
235
+ const mergedIds = JSON.parse(mergedIdOutput);
236
+ const _mergedIds = mergedIds[prefixKey];
237
+ if (_mergedIds) {
238
+ if (eventType) {
239
+ _mergedIds.success.push(...prefixedMergedObjectiveId);
240
+ _mergedIds.pending = [];
241
+ } else {
242
+ _mergedIds.failure.push(...prefixedMergedObjectiveId);
243
+ _mergedIds.pending = [];
244
+ }
245
+
246
+ await storage.setSharedItem(
247
+ SCAN_MERGED_OBJ_ID_OUTPUT,
248
+ JSON.stringify({ ...mergedIds, [prefixKey]: _mergedIds })
249
+ );
250
+ }
247
251
  }
252
+ } catch (error: any) {
253
+ Logger.getInstance().logCora("Error", `updatePendingSharedPreference: ${error}`);
248
254
  }
249
255
  }
250
256
 
@@ -254,113 +260,117 @@ export default class DispatchStateContainer {
254
260
  states: any,
255
261
  isMergedObjectiveBasedOutput?: boolean
256
262
  ) {
257
- const mergedObjectiveIds =
258
- states[RouteParams.NEXT_STATES].mergedObjectiveIds;
259
- const taskName = states[RouteParams.NEXT_STATES].taskName;
260
- const taskID = states[RouteParams.NEXT_STATES].taskId;
261
- const input = states[RouteParams.NEXT_STATES].input;
262
- let lockTaskResponse: boolean = true;
263
-
264
- if (isMergedObjectiveBasedOutput) {
265
- // NEW CODE
266
- const output = etOutput;
267
- let promises: any = [];
268
-
269
- const prefixKey = this.findPrefixKey(
270
- mergedObjectiveIds,
271
- etOutput,
272
- states
273
- );
263
+ try {
264
+ const mergedObjectiveIds =
265
+ states[RouteParams.NEXT_STATES].mergedObjectiveIds;
266
+ const taskName = states[RouteParams.NEXT_STATES].taskName;
267
+ const taskID = states[RouteParams.NEXT_STATES].taskId;
268
+ const input = states[RouteParams.NEXT_STATES].input;
269
+ let lockTaskResponse: boolean = true;
270
+
271
+ if (isMergedObjectiveBasedOutput) {
272
+ // NEW CODE
273
+ const output = etOutput;
274
+ let promises: any = [];
275
+
276
+ const prefixKey = this.findPrefixKey(
277
+ mergedObjectiveIds,
278
+ etOutput,
279
+ states
280
+ );
274
281
 
275
- let defaultConfig: { index: number; success: boolean; output: any } = {
276
- index: -1,
277
- success: false,
278
- output: {},
279
- };
280
- let mergedIds: SCANNED_RECORD = {
281
- success: [],
282
- failure: [],
283
- pending: [prefixKey],
284
- };
285
- const filterIds = await getScanMergedObjectID();
286
- if (filterIds) {
287
- mergedIds = filterIds[prefixKey];
288
- }
282
+ let defaultConfig: { index: number; success: boolean; output: any } = {
283
+ index: -1,
284
+ success: false,
285
+ output: {},
286
+ };
287
+ let mergedIds: SCANNED_RECORD = {
288
+ success: [],
289
+ failure: [],
290
+ pending: [prefixKey],
291
+ };
292
+ const filterIds = await getScanMergedObjectID();
293
+ if (filterIds) {
294
+ mergedIds = filterIds[prefixKey];
295
+ }
289
296
 
290
- Object.keys(etOutput).forEach((mergedObjectiveId) => {
291
- const _output = output[mergedObjectiveId].output;
292
- // PREFIX_KEY
293
- if (mergedObjectiveId === 'default') {
294
- const defaultOutput = output.default.output;
295
- // DELIVER AT DIFF LOCATION
296
- if (defaultOutput.eventCode === REASON_NOT_USED) {
297
- // DO NOT SEND OUTPUT WHEN DELIVER AT DIFF LOCATION
298
- defaultOutput.eventCode = '';
299
- defaultOutput.reasonCode = '';
300
- lockTaskResponse = false;
297
+ Object.keys(etOutput).forEach((mergedObjectiveId) => {
298
+ const _output = output[mergedObjectiveId].output;
299
+ // PREFIX_KEY
300
+ if (mergedObjectiveId === 'default') {
301
+ const defaultOutput = output.default.output;
302
+ // DELIVER AT DIFF LOCATION
303
+ if (defaultOutput.eventCode === REASON_NOT_USED) {
304
+ // DO NOT SEND OUTPUT WHEN DELIVER AT DIFF LOCATION
305
+ defaultOutput.eventCode = '';
306
+ defaultOutput.reasonCode = '';
307
+ lockTaskResponse = false;
308
+ } else {
309
+ defaultConfig = {
310
+ index: promises.length,
311
+ success: defaultOutput.success,
312
+ output: output.default,
313
+ };
314
+
315
+ promises.push(
316
+ dispatchExecutor.saveTaskOutput(
317
+ mergedIds.pending,
318
+ taskName,
319
+ taskID,
320
+ {
321
+ input,
322
+ output: defaultOutput,
323
+ },
324
+ {
325
+ ec: defaultOutput.eventCode,
326
+ rc: defaultOutput.reasonCode || '',
327
+ }
328
+ )
329
+ );
330
+ }
301
331
  } else {
302
- defaultConfig = {
303
- index: promises.length,
304
- success: defaultOutput.success,
305
- output: output.default,
306
- };
307
-
308
332
  promises.push(
309
333
  dispatchExecutor.saveTaskOutput(
310
- mergedIds.pending,
334
+ [mergedObjectiveId],
311
335
  taskName,
312
336
  taskID,
313
337
  {
314
338
  input,
315
- output: defaultOutput,
316
- },
317
- {
318
- ec: defaultOutput.eventCode,
319
- rc: defaultOutput.reasonCode || '',
339
+ output: _output,
320
340
  }
321
341
  )
322
342
  );
323
343
  }
324
- } else {
325
- promises.push(
326
- dispatchExecutor.saveTaskOutput(
327
- [mergedObjectiveId],
328
- taskName,
329
- taskID,
330
- {
331
- input,
332
- output: _output,
333
- }
334
- )
335
- );
336
- }
337
- });
344
+ });
338
345
 
339
- const response = await Promise.all(promises);
346
+ const response = await Promise.all(promises);
340
347
 
341
- if (defaultConfig.index !== -1) {
342
- // UPDATE PENDING IN SHARED PREFERENCE MERGED_SCAN_OUTPUT
343
- this.updatePendingSharedPreference(
344
- defaultConfig.success,
345
- response[defaultConfig.index],
346
- prefixKey
347
- );
348
- this.updateScanETOutputSharedPreference(
349
- defaultConfig.output,
350
- response[defaultConfig.index],
351
- prefixKey
348
+ if (defaultConfig.index !== -1) {
349
+ // UPDATE PENDING IN SHARED PREFERENCE MERGED_SCAN_OUTPUT
350
+ this.updatePendingSharedPreference(
351
+ defaultConfig.success,
352
+ response[defaultConfig.index],
353
+ prefixKey
354
+ );
355
+ this.updateScanETOutputSharedPreference(
356
+ defaultConfig.output,
357
+ response[defaultConfig.index],
358
+ prefixKey
359
+ );
360
+ }
361
+ } else {
362
+ await dispatchExecutor.saveTaskOutput(
363
+ mergedObjectiveIds,
364
+ taskName,
365
+ taskID,
366
+ {
367
+ input,
368
+ output: etOutput,
369
+ }
352
370
  );
353
371
  }
354
- } else {
355
- await dispatchExecutor.saveTaskOutput(
356
- mergedObjectiveIds,
357
- taskName,
358
- taskID,
359
- {
360
- input,
361
- output: etOutput,
362
- }
363
- );
372
+ } catch (error: any) {
373
+ Logger.getInstance().logCora("Error", `sendETOutput: ${error}`);
364
374
  }
365
375
  }
366
376
 
@@ -422,11 +432,7 @@ export default class DispatchStateContainer {
422
432
  return response;
423
433
  } else return response;
424
434
  } catch (error: any) {
425
- Logger.getInstance().logEvent(
426
- 'getObjectiveSummary',
427
- error.message,
428
- LOG_TYPE.SDK_ERROR
429
- );
435
+ Logger.getInstance().logCora("Error", `getObjectiveSummary: ${error}`);
430
436
  return [];
431
437
  }
432
438
  }
@@ -626,11 +632,7 @@ export default class DispatchStateContainer {
626
632
  }
627
633
  } catch (error: any) {
628
634
  baseETProps.showProgress(false);
629
- Logger.getInstance().logEvent(
630
- 'navigateToNextTask',
631
- error.message,
632
- LOG_TYPE.SDK_ERROR
633
- );
635
+ Logger.getInstance().logCora("Error", `navigateToNextTask: ${error}`);
634
636
  }
635
637
  }
636
638
 
@@ -807,11 +809,7 @@ export default class DispatchStateContainer {
807
809
  }
808
810
  } catch (error: any) {
809
811
  baseETProps.showProgress(false);
810
- Logger.getInstance().logEvent(
811
- 'moveToNextET',
812
- error.message,
813
- LOG_TYPE.SDK_ERROR
814
- );
812
+ Logger.getInstance().logCora("Error", `moveToNextET: ${error}`);
815
813
  }
816
814
  }
817
815
 
@@ -834,11 +832,7 @@ export default class DispatchStateContainer {
834
832
  isLastTask
835
833
  );
836
834
  } catch (error: any) {
837
- Logger.getInstance().logEvent(
838
- 'saveAndProceed',
839
- error.message,
840
- LOG_TYPE.SDK_ERROR
841
- );
835
+ Logger.getInstance().logCora("Error", `saveAndProceedToNextET: ${error}`);
842
836
  baseETProps.showProgress(false);
843
837
  showToast(error.message);
844
838
  }
@@ -23,7 +23,7 @@ export class DispatchSDKManager {
23
23
  private cache: DispatchSdkCache = DispatchSdkCache.getInstance();
24
24
  private keys = DispatchSdkCache.KEYS;
25
25
 
26
- private constructor() {}
26
+ private constructor() { }
27
27
 
28
28
  public static getInstance(): DispatchSDKManager {
29
29
  if (!DispatchSDKManager.instance) {
@@ -104,6 +104,7 @@ export class DispatchSDKManager {
104
104
  sdkConfig.debugLevelLog ? 'debug' : 'emerg'
105
105
  );
106
106
  AppSyncManager.getInstance().startSDKSyncManager();
107
+ Logger.getInstance().logCora("Info", "Dispatch SDK Initialized");
107
108
  }
108
109
 
109
110
  public removeLocationUpdates() {