react-native-mytatva-rn-sdk 1.2.68 → 1.2.70
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/android/src/main/java/com/mytatvarnsdk/CgmTrackyLibModule.kt +62 -0
- package/ios/MyReactNativeBridge.m +60 -0
- package/ios/Support/API.swift +31 -13
- package/ios/ViewModel/FinalViewModel.swift +4 -2
- package/lib/commonjs/CGMConnect.js +25 -1
- package/lib/commonjs/CGMConnect.js.map +1 -1
- package/lib/commonjs/index.js +8 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/CGMConnect.js +24 -1
- package/lib/module/CGMConnect.js.map +1 -1
- package/lib/module/index.js +4 -3
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/CGMConnect.d.ts +14 -1
- package/package.json +1 -1
- package/src/CGMConnect.ts +24 -0
- package/src/index.js +5 -3
|
@@ -4,6 +4,7 @@ import android.app.Application
|
|
|
4
4
|
import android.bluetooth.BluetoothAdapter
|
|
5
5
|
import android.content.Intent
|
|
6
6
|
import android.content.Context
|
|
7
|
+
import android.os.Environment
|
|
7
8
|
import android.os.Handler
|
|
8
9
|
import android.os.Looper
|
|
9
10
|
import android.util.Log
|
|
@@ -837,6 +838,67 @@ class CgmTrackyLibModule(reactContext: ReactApplicationContext) :
|
|
|
837
838
|
}
|
|
838
839
|
}
|
|
839
840
|
|
|
841
|
+
/**
|
|
842
|
+
* Get all CGM log file paths
|
|
843
|
+
* Returns array of absolute file paths to CGM log files (CSV format)
|
|
844
|
+
*/
|
|
845
|
+
@ReactMethod
|
|
846
|
+
fun getCgmLogFiles(promise: Promise) {
|
|
847
|
+
try {
|
|
848
|
+
val context = reactApplicationContext
|
|
849
|
+
val logFiles = mutableListOf<String>()
|
|
850
|
+
|
|
851
|
+
// Get the primary log folder path
|
|
852
|
+
val externalFilesDir = context.getExternalFilesDir(android.os.Environment.DIRECTORY_DOCUMENTS)
|
|
853
|
+
val primaryFolder = externalFilesDir?.absolutePath
|
|
854
|
+
|
|
855
|
+
// Get the fallback log folder path
|
|
856
|
+
val fallbackFolder = android.os.Environment.getExternalStorageDirectory().absolutePath +
|
|
857
|
+
File.separatorChar + "PocData" + File.separatorChar + "logger"
|
|
858
|
+
|
|
859
|
+
// Check primary folder
|
|
860
|
+
if (primaryFolder != null) {
|
|
861
|
+
val primaryDir = File(primaryFolder)
|
|
862
|
+
if (primaryDir.exists() && primaryDir.isDirectory) {
|
|
863
|
+
val files = primaryDir.listFiles { file ->
|
|
864
|
+
file.isFile && file.name.endsWith(".csv")
|
|
865
|
+
}
|
|
866
|
+
files?.forEach { file ->
|
|
867
|
+
logFiles.add(file.absolutePath)
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
// Check fallback folder
|
|
873
|
+
val fallbackDir = File(fallbackFolder)
|
|
874
|
+
if (fallbackDir.exists() && fallbackDir.isDirectory) {
|
|
875
|
+
val files = fallbackDir.listFiles { file ->
|
|
876
|
+
file.isFile && file.name.endsWith(".csv")
|
|
877
|
+
}
|
|
878
|
+
files?.forEach { file ->
|
|
879
|
+
// Only add if not already in list
|
|
880
|
+
if (!logFiles.contains(file.absolutePath)) {
|
|
881
|
+
logFiles.add(file.absolutePath)
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
Log.d("getCgmLogFiles", "Found ${logFiles.size} log files")
|
|
887
|
+
|
|
888
|
+
// Convert list to WritableArray
|
|
889
|
+
val resultArray = Arguments.createArray()
|
|
890
|
+
logFiles.forEach { path ->
|
|
891
|
+
resultArray.pushString(path)
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
promise.resolve(resultArray)
|
|
895
|
+
|
|
896
|
+
} catch (e: Exception) {
|
|
897
|
+
Log.e("getCgmLogFiles", "Error getting log files: ${e.message}")
|
|
898
|
+
promise.reject("ERROR_GET_LOG_FILES", e.message, e)
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
|
|
840
902
|
// Updated batch processing method with better sync control
|
|
841
903
|
private suspend fun processBatchDataSynchronously(
|
|
842
904
|
dataList: List<PocGlucose>,
|
|
@@ -604,4 +604,64 @@ RCT_EXPORT_METHOD(observeTransmitterUnbindStatus:(NSString *)token
|
|
|
604
604
|
}];
|
|
605
605
|
}
|
|
606
606
|
|
|
607
|
+
/**
|
|
608
|
+
* Get all CGM log file paths
|
|
609
|
+
* Returns array of absolute file paths to CGM log files (CSV format)
|
|
610
|
+
*/
|
|
611
|
+
RCT_EXPORT_METHOD(getCgmLogFiles:(RCTPromiseResolveBlock)resolve
|
|
612
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
613
|
+
{
|
|
614
|
+
@try {
|
|
615
|
+
NSMutableArray *logFilePaths = [NSMutableArray array];
|
|
616
|
+
|
|
617
|
+
// Get Documents directory path
|
|
618
|
+
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
|
619
|
+
NSString *documentDir = [documentPaths firstObject];
|
|
620
|
+
|
|
621
|
+
if (!documentDir) {
|
|
622
|
+
NSError *error = [NSError errorWithDomain:@"CgmTrackyLib"
|
|
623
|
+
code:1002
|
|
624
|
+
userInfo:@{NSLocalizedDescriptionKey: @"Could not access Documents directory"}];
|
|
625
|
+
reject(@"ERROR_DOCUMENTS_DIR", @"Failed to get documents directory", error);
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
// CGM log files are stored in Documents/runLog/
|
|
630
|
+
NSString *logFolderPath = [documentDir stringByAppendingPathComponent:@"runLog"];
|
|
631
|
+
|
|
632
|
+
NSFileManager *fileManager = [NSFileManager defaultManager];
|
|
633
|
+
|
|
634
|
+
// Check if runLog directory exists
|
|
635
|
+
BOOL isDirectory;
|
|
636
|
+
BOOL exists = [fileManager fileExistsAtPath:logFolderPath isDirectory:&isDirectory];
|
|
637
|
+
|
|
638
|
+
if (exists && isDirectory) {
|
|
639
|
+
NSError *error = nil;
|
|
640
|
+
NSArray *fileList = [fileManager contentsOfDirectoryAtPath:logFolderPath error:&error];
|
|
641
|
+
|
|
642
|
+
if (error) {
|
|
643
|
+
reject(@"ERROR_READ_DIRECTORY", @"Failed to read log directory", error);
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
// Filter and get full paths for CSV files
|
|
648
|
+
for (NSString *fileName in fileList) {
|
|
649
|
+
if ([fileName hasSuffix:@".csv"]) {
|
|
650
|
+
NSString *fullPath = [logFolderPath stringByAppendingPathComponent:fileName];
|
|
651
|
+
[logFilePaths addObject:fullPath];
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
NSLog(@"Found %lu CGM log files1", (unsigned long)[logFilePaths count]);
|
|
657
|
+
resolve(logFilePaths);
|
|
658
|
+
|
|
659
|
+
} @catch (NSException *exception) {
|
|
660
|
+
NSError *error = [NSError errorWithDomain:@"CgmTrackyLib"
|
|
661
|
+
code:1003
|
|
662
|
+
userInfo:@{NSLocalizedDescriptionKey: exception.reason ?: @"Unknown error"}];
|
|
663
|
+
reject(@"ERROR_GET_LOG_FILES", exception.reason, error);
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
|
|
607
667
|
@end
|
package/ios/Support/API.swift
CHANGED
|
@@ -139,23 +139,38 @@ class API {
|
|
|
139
139
|
request.setValue("text/plain", forHTTPHeaderField: "Content-Type")
|
|
140
140
|
request.httpBody = encrypted.data(using: .utf8)
|
|
141
141
|
print("===>url:", urlString)
|
|
142
|
-
let (data, response) = try await URLSession.shared.data(for: request)
|
|
143
142
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
// Use regular URLSession for foreground/background compatibility
|
|
144
|
+
// Background URLSession requires delegates, not completion handlers
|
|
145
|
+
let session = URLSession.shared
|
|
147
146
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
147
|
+
let task = session.uploadTask(with: request, from: encrypted.data(using: .utf8)) { data, response, error in
|
|
148
|
+
if let error = error {
|
|
149
|
+
print("===>Upload failed: \(error.localizedDescription)")
|
|
150
|
+
DispatchQueue.main.async {
|
|
151
|
+
onFailure(error)
|
|
152
|
+
}
|
|
153
|
+
return
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if let httpResponse = response as? HTTPURLResponse {
|
|
157
|
+
print("HTTP Status: \(httpResponse.statusCode)")
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if let data = data, let responseStr = String(data: data, encoding: .utf8) {
|
|
161
|
+
print("===>Server Response: \(responseStr)")
|
|
162
|
+
if let decrypted = Crypto.shared.getDecryptedData(cipherText: responseStr, encryptionKey: encryptionKey, encryptionIv: encryptionIv) {
|
|
163
|
+
print("===>Decrypted post cgm data response (for verification): \(decrypted)")
|
|
164
|
+
}
|
|
152
165
|
}
|
|
153
166
|
|
|
167
|
+
DispatchQueue.main.async {
|
|
168
|
+
onSuccess()
|
|
169
|
+
}
|
|
154
170
|
}
|
|
155
171
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
172
|
+
task.resume()
|
|
173
|
+
print("===>Upload task started")
|
|
159
174
|
|
|
160
175
|
} catch {
|
|
161
176
|
print("===>Request failed: \(error.localizedDescription)")
|
|
@@ -216,8 +231,10 @@ class API {
|
|
|
216
231
|
|
|
217
232
|
request.httpBody = encrypted.data(using: .utf8)
|
|
218
233
|
|
|
219
|
-
//
|
|
220
|
-
let
|
|
234
|
+
// Use regular URLSession for foreground/background compatibility
|
|
235
|
+
let session = URLSession.shared
|
|
236
|
+
|
|
237
|
+
let task = session.uploadTask(with: request, from: encrypted.data(using: .utf8)) { data, response, error in
|
|
221
238
|
if let error = error {
|
|
222
239
|
print("Error: \(error)")
|
|
223
240
|
return
|
|
@@ -234,6 +251,7 @@ class API {
|
|
|
234
251
|
}
|
|
235
252
|
}
|
|
236
253
|
task.resume()
|
|
254
|
+
print("===>Status upload started")
|
|
237
255
|
}
|
|
238
256
|
|
|
239
257
|
/*func getStatus(encryptionKey: String = PROD_ENC_KEY,
|
|
@@ -252,8 +252,10 @@ class FinalViewModel: NSObject {
|
|
|
252
252
|
|
|
253
253
|
// Set request body
|
|
254
254
|
|
|
255
|
-
//
|
|
256
|
-
let
|
|
255
|
+
// Use regular URLSession for foreground/background compatibility
|
|
256
|
+
let session = URLSession.shared
|
|
257
|
+
|
|
258
|
+
let task = session.dataTask(with: request) { data, response, error in
|
|
257
259
|
if let error = error {
|
|
258
260
|
print("Error: \(error)")
|
|
259
261
|
return
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.helpCGM = exports.getSqliteDBPath = void 0;
|
|
6
|
+
exports.helpCGM = exports.getSqliteDBPath = exports.getCgmLogFilePaths = void 0;
|
|
7
7
|
exports.initializeCGMEventListener = initializeCGMEventListener;
|
|
8
8
|
exports.reconnectCGM = exports.observeTransmitterUnbindStatusHandler = exports.observeResetLogoutHandler = exports.observeAllGlucoseDataHandler = void 0;
|
|
9
9
|
exports.removeCGMEventListener = removeCGMEventListener;
|
|
@@ -130,5 +130,29 @@ exports.getSqliteDBPath = getSqliteDBPath;
|
|
|
130
130
|
const stopCGM = async () => {
|
|
131
131
|
// Implementation
|
|
132
132
|
};
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Get all CGM log file paths
|
|
136
|
+
* Returns array of absolute file paths to CGM log files (CSV format)
|
|
137
|
+
* Use react-native-fs or similar in your main app to read these files
|
|
138
|
+
*
|
|
139
|
+
* @returns Promise<string[]> - Array of absolute file paths
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* const logPaths = await getCgmLogFilePaths();
|
|
143
|
+
* // Android: ['/storage/emulated/0/Android/data/.../Documents/12345_POCTech.csv']
|
|
144
|
+
* // iOS: ['/var/mobile/Containers/Data/Application/.../Documents/runLog/1_SensorID.csv']
|
|
145
|
+
*/
|
|
133
146
|
exports.stopCGM = stopCGM;
|
|
147
|
+
const getCgmLogFilePaths = async () => {
|
|
148
|
+
try {
|
|
149
|
+
const result = await cgmLib.getCgmLogFiles();
|
|
150
|
+
console.log(`CGM Log Files: ${result.length} files found`);
|
|
151
|
+
return result;
|
|
152
|
+
} catch (error) {
|
|
153
|
+
console.error('Error getting CGM log file paths:', error);
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
exports.getCgmLogFilePaths = getCgmLogFilePaths;
|
|
134
158
|
//# sourceMappingURL=CGMConnect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","eventSubscription","LINKING_ERROR","Platform","select","ios","default","cgmLib","NativeModules","CgmTrackyLib","Proxy","get","Error","initializeCGMEventListener","callback","iosEventEmitter","NativeEventEmitter","remove","OS","DeviceEventEmitter","addListener","eventData","status","removeCGMEventListener","startCGM","token","envType","console","log","result","startCgmTracky","error","exports","reconnectCGM","reconnectCgmTracky","observeAllGlucoseDataHandler","isCleanData","observeAllGlucoseData","deviceStatus","observeDeviceStatus","helpCGM","openHelpSupport","observeTransmitterUnbindStatusHandler","apiResponse","patientId","observeTransmitterUnbindStatus","observeResetLogoutHandler","resetCgmState","getSqliteDBPath","getTrackLibDbPath","stopCGM"],"sources":["CGMConnect.ts"],"sourcesContent":["import {\n DeviceEventEmitter,\n EmitterSubscription,\n NativeEventEmitter,\n NativeModules,\n Platform,\n} from 'react-native';\n\nlet eventSubscription: EmitterSubscription | null = null;\n\nconst LINKING_ERROR =\n `The package 'react-native-mytatva-rn-sdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo Go\\n';\n\nconst cgmLib = NativeModules.CgmTrackyLib\n ? NativeModules.CgmTrackyLib\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nfunction initializeCGMEventListener(callback: (eventData: any) => void) {\n const iosEventEmitter = new NativeEventEmitter(cgmLib);\n if (eventSubscription) {\n eventSubscription.remove();\n }\n\n if (Platform.OS === 'android') {\n eventSubscription = DeviceEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n } else if (Platform.OS === 'ios' && iosEventEmitter) {\n eventSubscription = iosEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n }\n}\n\nfunction removeCGMEventListener() {\n if (eventSubscription) {\n eventSubscription.remove();\n eventSubscription = null;\n }\n}\n\nconst startCGM = async (token: string, envType: string) => {\n console.log('startCGM===');\n try {\n const result = await cgmLib.startCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst reconnectCGM = async (token: string, envType: string) => {\n console.log('reconnectCGM====');\n try {\n const result = await cgmLib.reconnectCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeAllGlucoseDataHandler = async (\n token: string,\n isCleanData: boolean,\n envType: string\n) => {\n console.log('observeAllGlucoseDataHandler====');\n try {\n if (Platform.OS === 'android') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n const deviceStatus = await cgmLib.observeDeviceStatus(token, envType);\n console.log(result);\n console.log(deviceStatus);\n } else if (Platform.OS === 'ios') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n console.log(result);\n }\n } catch (error) {\n console.log('error====', error);\n console.error(error);\n }\n};\n\nconst helpCGM = async (token: string, envType: string) => {\n console.log('helpCGM====');\n try {\n const result = await cgmLib.openHelpSupport();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeTransmitterUnbindStatusHandler = async (\n token: string,\n apiResponse: string,\n patientId: string,\n envType: string\n) => {\n console.log('observeTransmitterUnbindStatusHandler====');\n try {\n const result = await cgmLib.observeTransmitterUnbindStatus(\n token,\n apiResponse,\n patientId,\n envType\n );\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeResetLogoutHandler = async () => {\n console.log('observeResetLogoutHandler====');\n try {\n const result = await cgmLib.resetCgmState();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst getSqliteDBPath = async (): Promise<string> => {\n const result = await cgmLib.getTrackLibDbPath();\n return result;\n};\n\nconst stopCGM = async () => {\n // Implementation\n};\n\nexport {\n startCGM,\n stopCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","eventSubscription","LINKING_ERROR","Platform","select","ios","default","cgmLib","NativeModules","CgmTrackyLib","Proxy","get","Error","initializeCGMEventListener","callback","iosEventEmitter","NativeEventEmitter","remove","OS","DeviceEventEmitter","addListener","eventData","status","removeCGMEventListener","startCGM","token","envType","console","log","result","startCgmTracky","error","exports","reconnectCGM","reconnectCgmTracky","observeAllGlucoseDataHandler","isCleanData","observeAllGlucoseData","deviceStatus","observeDeviceStatus","helpCGM","openHelpSupport","observeTransmitterUnbindStatusHandler","apiResponse","patientId","observeTransmitterUnbindStatus","observeResetLogoutHandler","resetCgmState","getSqliteDBPath","getTrackLibDbPath","stopCGM","getCgmLogFilePaths","getCgmLogFiles","length"],"sources":["CGMConnect.ts"],"sourcesContent":["import {\n DeviceEventEmitter,\n EmitterSubscription,\n NativeEventEmitter,\n NativeModules,\n Platform,\n} from 'react-native';\n\nlet eventSubscription: EmitterSubscription | null = null;\n\nconst LINKING_ERROR =\n `The package 'react-native-mytatva-rn-sdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo Go\\n';\n\nconst cgmLib = NativeModules.CgmTrackyLib\n ? NativeModules.CgmTrackyLib\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nfunction initializeCGMEventListener(callback: (eventData: any) => void) {\n const iosEventEmitter = new NativeEventEmitter(cgmLib);\n if (eventSubscription) {\n eventSubscription.remove();\n }\n\n if (Platform.OS === 'android') {\n eventSubscription = DeviceEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n } else if (Platform.OS === 'ios' && iosEventEmitter) {\n eventSubscription = iosEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n }\n}\n\nfunction removeCGMEventListener() {\n if (eventSubscription) {\n eventSubscription.remove();\n eventSubscription = null;\n }\n}\n\nconst startCGM = async (token: string, envType: string) => {\n console.log('startCGM===');\n try {\n const result = await cgmLib.startCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst reconnectCGM = async (token: string, envType: string) => {\n console.log('reconnectCGM====');\n try {\n const result = await cgmLib.reconnectCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeAllGlucoseDataHandler = async (\n token: string,\n isCleanData: boolean,\n envType: string\n) => {\n console.log('observeAllGlucoseDataHandler====');\n try {\n if (Platform.OS === 'android') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n const deviceStatus = await cgmLib.observeDeviceStatus(token, envType);\n console.log(result);\n console.log(deviceStatus);\n } else if (Platform.OS === 'ios') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n console.log(result);\n }\n } catch (error) {\n console.log('error====', error);\n console.error(error);\n }\n};\n\nconst helpCGM = async (token: string, envType: string) => {\n console.log('helpCGM====');\n try {\n const result = await cgmLib.openHelpSupport();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeTransmitterUnbindStatusHandler = async (\n token: string,\n apiResponse: string,\n patientId: string,\n envType: string\n) => {\n console.log('observeTransmitterUnbindStatusHandler====');\n try {\n const result = await cgmLib.observeTransmitterUnbindStatus(\n token,\n apiResponse,\n patientId,\n envType\n );\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeResetLogoutHandler = async () => {\n console.log('observeResetLogoutHandler====');\n try {\n const result = await cgmLib.resetCgmState();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst getSqliteDBPath = async (): Promise<string> => {\n const result = await cgmLib.getTrackLibDbPath();\n return result;\n};\n\nconst stopCGM = async () => {\n // Implementation\n};\n\n/**\n * Get all CGM log file paths\n * Returns array of absolute file paths to CGM log files (CSV format)\n * Use react-native-fs or similar in your main app to read these files\n *\n * @returns Promise<string[]> - Array of absolute file paths\n *\n * @example\n * const logPaths = await getCgmLogFilePaths();\n * // Android: ['/storage/emulated/0/Android/data/.../Documents/12345_POCTech.csv']\n * // iOS: ['/var/mobile/Containers/Data/Application/.../Documents/runLog/1_SensorID.csv']\n */\nconst getCgmLogFilePaths = async (): Promise<string[]> => {\n try {\n const result = await cgmLib.getCgmLogFiles();\n console.log(`CGM Log Files: ${result.length} files found`);\n return result;\n } catch (error) {\n console.error('Error getting CGM log file paths:', error);\n throw error;\n }\n};\n\nexport {\n startCGM,\n stopCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n getCgmLogFilePaths,\n};\n"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -4,6 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.MyTatvaRnSdkView = void 0;
|
|
7
|
+
Object.defineProperty(exports, "getCgmLogFilePaths", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _CGMConnect.getCgmLogFilePaths;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
7
13
|
Object.defineProperty(exports, "getSqliteDBPath", {
|
|
8
14
|
enumerable: true,
|
|
9
15
|
get: function () {
|
|
@@ -83,6 +89,7 @@ var _default = exports.default = {
|
|
|
83
89
|
helpCGM: _CGMConnect.helpCGM,
|
|
84
90
|
observeTransmitterUnbindStatusHandler: _CGMConnect.observeTransmitterUnbindStatusHandler,
|
|
85
91
|
observeResetLogoutHandler: _CGMConnect.observeResetLogoutHandler,
|
|
86
|
-
getSqliteDBPath: _CGMConnect.getSqliteDBPath
|
|
92
|
+
getSqliteDBPath: _CGMConnect.getSqliteDBPath,
|
|
93
|
+
getCgmLogFilePaths: _CGMConnect.getCgmLogFilePaths
|
|
87
94
|
};
|
|
88
95
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_MyTatvaRnSdkView","_interopRequireDefault","require","_MyTatvaRnSdkView2","_reactNative","_CGMConnect","e","__esModule","default","MyTatvaRnSdkView","exports","Platform","select","ios","MyTatvaRnSdkViewIOS","android","MyTatvaRnSdkViewAndroid","_default","startCGM","initializeCGMEventListener","removeCGMEventListener","observeAllGlucoseDataHandler","reconnectCGM","helpCGM","observeTransmitterUnbindStatusHandler","observeResetLogoutHandler","getSqliteDBPath"],"sources":["index.js"],"sourcesContent":["import MyTatvaRnSdkViewAndroid from './MyTatvaRnSdkView.android';\nimport MyTatvaRnSdkViewIOS from './MyTatvaRnSdkView.ios';\nimport { Platform } from 'react-native';\nimport { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath } from './CGMConnect';\n// ... other imports\n\n// Export the platform-specific component\nexport const MyTatvaRnSdkView = Platform.select({\n ios: MyTatvaRnSdkViewIOS,\n android: MyTatvaRnSdkViewAndroid,\n});\n\n// Export individual functions\nexport {\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath\n // ... other functions\n};\n\n// Export a default object with everything\nexport default {\n MyTatvaRnSdkView,\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath\n};"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_MyTatvaRnSdkView","_interopRequireDefault","require","_MyTatvaRnSdkView2","_reactNative","_CGMConnect","e","__esModule","default","MyTatvaRnSdkView","exports","Platform","select","ios","MyTatvaRnSdkViewIOS","android","MyTatvaRnSdkViewAndroid","_default","startCGM","initializeCGMEventListener","removeCGMEventListener","observeAllGlucoseDataHandler","reconnectCGM","helpCGM","observeTransmitterUnbindStatusHandler","observeResetLogoutHandler","getSqliteDBPath","getCgmLogFilePaths"],"sources":["index.js"],"sourcesContent":["import MyTatvaRnSdkViewAndroid from './MyTatvaRnSdkView.android';\nimport MyTatvaRnSdkViewIOS from './MyTatvaRnSdkView.ios';\nimport { Platform } from 'react-native';\nimport { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths } from './CGMConnect';\n// ... other imports\n\n// Export the platform-specific component\nexport const MyTatvaRnSdkView = Platform.select({\n ios: MyTatvaRnSdkViewIOS,\n android: MyTatvaRnSdkViewAndroid,\n});\n\n// Export individual functions\nexport {\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n getCgmLogFilePaths\n // ... other functions\n};\n\n// Export a default object with everything\nexport default {\n MyTatvaRnSdkView,\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n getCgmLogFilePaths\n};"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAwP,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AACxP;;AAEA;AACO,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,qBAAQ,CAACC,MAAM,CAAC;EAC9CC,GAAG,EAAEC,0BAAmB;EACxBC,OAAO,EAAEC;AACX,CAAC,CAAC;;AAEF;AAeA;AAAA,IAAAC,QAAA,GAAAP,OAAA,CAAAF,OAAA,GACe;EACbC,gBAAgB;EAChBS,QAAQ,EAARA,oBAAQ;EACRC,0BAA0B,EAA1BA,sCAA0B;EAC1BC,sBAAsB,EAAtBA,kCAAsB;EACtBC,4BAA4B,EAA5BA,wCAA4B;EAC5BC,YAAY,EAAZA,wBAAY;EACZC,OAAO,EAAPA,mBAAO;EACPC,qCAAqC,EAArCA,iDAAqC;EACrCC,yBAAyB,EAAzBA,qCAAyB;EACzBC,eAAe,EAAfA,2BAAe;EACfC,kBAAkB,EAAlBA;AACF,CAAC","ignoreList":[]}
|
package/lib/module/CGMConnect.js
CHANGED
|
@@ -113,5 +113,28 @@ const getSqliteDBPath = async () => {
|
|
|
113
113
|
const stopCGM = async () => {
|
|
114
114
|
// Implementation
|
|
115
115
|
};
|
|
116
|
-
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Get all CGM log file paths
|
|
119
|
+
* Returns array of absolute file paths to CGM log files (CSV format)
|
|
120
|
+
* Use react-native-fs or similar in your main app to read these files
|
|
121
|
+
*
|
|
122
|
+
* @returns Promise<string[]> - Array of absolute file paths
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* const logPaths = await getCgmLogFilePaths();
|
|
126
|
+
* // Android: ['/storage/emulated/0/Android/data/.../Documents/12345_POCTech.csv']
|
|
127
|
+
* // iOS: ['/var/mobile/Containers/Data/Application/.../Documents/runLog/1_SensorID.csv']
|
|
128
|
+
*/
|
|
129
|
+
const getCgmLogFilePaths = async () => {
|
|
130
|
+
try {
|
|
131
|
+
const result = await cgmLib.getCgmLogFiles();
|
|
132
|
+
console.log(`CGM Log Files: ${result.length} files found`);
|
|
133
|
+
return result;
|
|
134
|
+
} catch (error) {
|
|
135
|
+
console.error('Error getting CGM log file paths:', error);
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
export { startCGM, stopCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths };
|
|
117
140
|
//# sourceMappingURL=CGMConnect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DeviceEventEmitter","NativeEventEmitter","NativeModules","Platform","eventSubscription","LINKING_ERROR","select","ios","default","cgmLib","CgmTrackyLib","Proxy","get","Error","initializeCGMEventListener","callback","iosEventEmitter","remove","OS","addListener","eventData","status","removeCGMEventListener","startCGM","token","envType","console","log","result","startCgmTracky","error","reconnectCGM","reconnectCgmTracky","observeAllGlucoseDataHandler","isCleanData","observeAllGlucoseData","deviceStatus","observeDeviceStatus","helpCGM","openHelpSupport","observeTransmitterUnbindStatusHandler","apiResponse","patientId","observeTransmitterUnbindStatus","observeResetLogoutHandler","resetCgmState","getSqliteDBPath","getTrackLibDbPath","stopCGM"],"sources":["CGMConnect.ts"],"sourcesContent":["import {\n DeviceEventEmitter,\n EmitterSubscription,\n NativeEventEmitter,\n NativeModules,\n Platform,\n} from 'react-native';\n\nlet eventSubscription: EmitterSubscription | null = null;\n\nconst LINKING_ERROR =\n `The package 'react-native-mytatva-rn-sdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo Go\\n';\n\nconst cgmLib = NativeModules.CgmTrackyLib\n ? NativeModules.CgmTrackyLib\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nfunction initializeCGMEventListener(callback: (eventData: any) => void) {\n const iosEventEmitter = new NativeEventEmitter(cgmLib);\n if (eventSubscription) {\n eventSubscription.remove();\n }\n\n if (Platform.OS === 'android') {\n eventSubscription = DeviceEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n } else if (Platform.OS === 'ios' && iosEventEmitter) {\n eventSubscription = iosEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n }\n}\n\nfunction removeCGMEventListener() {\n if (eventSubscription) {\n eventSubscription.remove();\n eventSubscription = null;\n }\n}\n\nconst startCGM = async (token: string, envType: string) => {\n console.log('startCGM===');\n try {\n const result = await cgmLib.startCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst reconnectCGM = async (token: string, envType: string) => {\n console.log('reconnectCGM====');\n try {\n const result = await cgmLib.reconnectCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeAllGlucoseDataHandler = async (\n token: string,\n isCleanData: boolean,\n envType: string\n) => {\n console.log('observeAllGlucoseDataHandler====');\n try {\n if (Platform.OS === 'android') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n const deviceStatus = await cgmLib.observeDeviceStatus(token, envType);\n console.log(result);\n console.log(deviceStatus);\n } else if (Platform.OS === 'ios') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n console.log(result);\n }\n } catch (error) {\n console.log('error====', error);\n console.error(error);\n }\n};\n\nconst helpCGM = async (token: string, envType: string) => {\n console.log('helpCGM====');\n try {\n const result = await cgmLib.openHelpSupport();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeTransmitterUnbindStatusHandler = async (\n token: string,\n apiResponse: string,\n patientId: string,\n envType: string\n) => {\n console.log('observeTransmitterUnbindStatusHandler====');\n try {\n const result = await cgmLib.observeTransmitterUnbindStatus(\n token,\n apiResponse,\n patientId,\n envType\n );\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeResetLogoutHandler = async () => {\n console.log('observeResetLogoutHandler====');\n try {\n const result = await cgmLib.resetCgmState();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst getSqliteDBPath = async (): Promise<string> => {\n const result = await cgmLib.getTrackLibDbPath();\n return result;\n};\n\nconst stopCGM = async () => {\n // Implementation\n};\n\nexport {\n startCGM,\n stopCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DeviceEventEmitter","NativeEventEmitter","NativeModules","Platform","eventSubscription","LINKING_ERROR","select","ios","default","cgmLib","CgmTrackyLib","Proxy","get","Error","initializeCGMEventListener","callback","iosEventEmitter","remove","OS","addListener","eventData","status","removeCGMEventListener","startCGM","token","envType","console","log","result","startCgmTracky","error","reconnectCGM","reconnectCgmTracky","observeAllGlucoseDataHandler","isCleanData","observeAllGlucoseData","deviceStatus","observeDeviceStatus","helpCGM","openHelpSupport","observeTransmitterUnbindStatusHandler","apiResponse","patientId","observeTransmitterUnbindStatus","observeResetLogoutHandler","resetCgmState","getSqliteDBPath","getTrackLibDbPath","stopCGM","getCgmLogFilePaths","getCgmLogFiles","length"],"sources":["CGMConnect.ts"],"sourcesContent":["import {\n DeviceEventEmitter,\n EmitterSubscription,\n NativeEventEmitter,\n NativeModules,\n Platform,\n} from 'react-native';\n\nlet eventSubscription: EmitterSubscription | null = null;\n\nconst LINKING_ERROR =\n `The package 'react-native-mytatva-rn-sdk' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo Go\\n';\n\nconst cgmLib = NativeModules.CgmTrackyLib\n ? NativeModules.CgmTrackyLib\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nfunction initializeCGMEventListener(callback: (eventData: any) => void) {\n const iosEventEmitter = new NativeEventEmitter(cgmLib);\n if (eventSubscription) {\n eventSubscription.remove();\n }\n\n if (Platform.OS === 'android') {\n eventSubscription = DeviceEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n } else if (Platform.OS === 'ios' && iosEventEmitter) {\n eventSubscription = iosEventEmitter.addListener(\n 'cgmDeviceEvent',\n (eventData: any) => {\n const { status } = eventData;\n if (status === 'WARM_PERIOD_STARTED') {\n callback(eventData);\n } else {\n callback(eventData);\n }\n }\n );\n }\n}\n\nfunction removeCGMEventListener() {\n if (eventSubscription) {\n eventSubscription.remove();\n eventSubscription = null;\n }\n}\n\nconst startCGM = async (token: string, envType: string) => {\n console.log('startCGM===');\n try {\n const result = await cgmLib.startCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst reconnectCGM = async (token: string, envType: string) => {\n console.log('reconnectCGM====');\n try {\n const result = await cgmLib.reconnectCgmTracky(token, envType);\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeAllGlucoseDataHandler = async (\n token: string,\n isCleanData: boolean,\n envType: string\n) => {\n console.log('observeAllGlucoseDataHandler====');\n try {\n if (Platform.OS === 'android') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n const deviceStatus = await cgmLib.observeDeviceStatus(token, envType);\n console.log(result);\n console.log(deviceStatus);\n } else if (Platform.OS === 'ios') {\n const result = await cgmLib.observeAllGlucoseData(\n token,\n isCleanData,\n envType\n );\n console.log(result);\n }\n } catch (error) {\n console.log('error====', error);\n console.error(error);\n }\n};\n\nconst helpCGM = async (token: string, envType: string) => {\n console.log('helpCGM====');\n try {\n const result = await cgmLib.openHelpSupport();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeTransmitterUnbindStatusHandler = async (\n token: string,\n apiResponse: string,\n patientId: string,\n envType: string\n) => {\n console.log('observeTransmitterUnbindStatusHandler====');\n try {\n const result = await cgmLib.observeTransmitterUnbindStatus(\n token,\n apiResponse,\n patientId,\n envType\n );\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst observeResetLogoutHandler = async () => {\n console.log('observeResetLogoutHandler====');\n try {\n const result = await cgmLib.resetCgmState();\n console.log(result);\n } catch (error) {\n console.error(error);\n }\n};\n\nconst getSqliteDBPath = async (): Promise<string> => {\n const result = await cgmLib.getTrackLibDbPath();\n return result;\n};\n\nconst stopCGM = async () => {\n // Implementation\n};\n\n/**\n * Get all CGM log file paths\n * Returns array of absolute file paths to CGM log files (CSV format)\n * Use react-native-fs or similar in your main app to read these files\n *\n * @returns Promise<string[]> - Array of absolute file paths\n *\n * @example\n * const logPaths = await getCgmLogFilePaths();\n * // Android: ['/storage/emulated/0/Android/data/.../Documents/12345_POCTech.csv']\n * // iOS: ['/var/mobile/Containers/Data/Application/.../Documents/runLog/1_SensorID.csv']\n */\nconst getCgmLogFilePaths = async (): Promise<string[]> => {\n try {\n const result = await cgmLib.getCgmLogFiles();\n console.log(`CGM Log Files: ${result.length} files found`);\n return result;\n } catch (error) {\n console.error('Error getting CGM log file paths:', error);\n throw error;\n }\n};\n\nexport {\n startCGM,\n stopCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n getCgmLogFilePaths,\n};\n"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import MyTatvaRnSdkViewAndroid from './MyTatvaRnSdkView.android';
|
|
2
2
|
import MyTatvaRnSdkViewIOS from './MyTatvaRnSdkView.ios';
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
|
-
import { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath } from './CGMConnect';
|
|
4
|
+
import { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths } from './CGMConnect';
|
|
5
5
|
// ... other imports
|
|
6
6
|
|
|
7
7
|
// Export the platform-specific component
|
|
@@ -11,7 +11,7 @@ export const MyTatvaRnSdkView = Platform.select({
|
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
// Export individual functions
|
|
14
|
-
export { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath
|
|
14
|
+
export { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths
|
|
15
15
|
// ... other functions
|
|
16
16
|
};
|
|
17
17
|
|
|
@@ -26,6 +26,7 @@ export default {
|
|
|
26
26
|
helpCGM,
|
|
27
27
|
observeTransmitterUnbindStatusHandler,
|
|
28
28
|
observeResetLogoutHandler,
|
|
29
|
-
getSqliteDBPath
|
|
29
|
+
getSqliteDBPath,
|
|
30
|
+
getCgmLogFilePaths
|
|
30
31
|
};
|
|
31
32
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MyTatvaRnSdkViewAndroid","MyTatvaRnSdkViewIOS","Platform","startCGM","initializeCGMEventListener","removeCGMEventListener","observeAllGlucoseDataHandler","reconnectCGM","helpCGM","observeTransmitterUnbindStatusHandler","observeResetLogoutHandler","getSqliteDBPath","MyTatvaRnSdkView","select","ios","android"],"sources":["index.js"],"sourcesContent":["import MyTatvaRnSdkViewAndroid from './MyTatvaRnSdkView.android';\nimport MyTatvaRnSdkViewIOS from './MyTatvaRnSdkView.ios';\nimport { Platform } from 'react-native';\nimport { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath } from './CGMConnect';\n// ... other imports\n\n// Export the platform-specific component\nexport const MyTatvaRnSdkView = Platform.select({\n ios: MyTatvaRnSdkViewIOS,\n android: MyTatvaRnSdkViewAndroid,\n});\n\n// Export individual functions\nexport {\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath\n // ... other functions\n};\n\n// Export a default object with everything\nexport default {\n MyTatvaRnSdkView,\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath\n};"],"mappings":"AAAA,OAAOA,uBAAuB,MAAM,4BAA4B;AAChE,OAAOC,mBAAmB,MAAM,wBAAwB;AACxD,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,QAAQ,EAAEC,0BAA0B,EAAEC,sBAAsB,EAAEC,4BAA4B,EAAEC,YAAY,EAAEC,OAAO,EAAEC,qCAAqC,EAAEC,yBAAyB,EAAEC,eAAe,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["MyTatvaRnSdkViewAndroid","MyTatvaRnSdkViewIOS","Platform","startCGM","initializeCGMEventListener","removeCGMEventListener","observeAllGlucoseDataHandler","reconnectCGM","helpCGM","observeTransmitterUnbindStatusHandler","observeResetLogoutHandler","getSqliteDBPath","getCgmLogFilePaths","MyTatvaRnSdkView","select","ios","android"],"sources":["index.js"],"sourcesContent":["import MyTatvaRnSdkViewAndroid from './MyTatvaRnSdkView.android';\nimport MyTatvaRnSdkViewIOS from './MyTatvaRnSdkView.ios';\nimport { Platform } from 'react-native';\nimport { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths } from './CGMConnect';\n// ... other imports\n\n// Export the platform-specific component\nexport const MyTatvaRnSdkView = Platform.select({\n ios: MyTatvaRnSdkViewIOS,\n android: MyTatvaRnSdkViewAndroid,\n});\n\n// Export individual functions\nexport {\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n getCgmLogFilePaths\n // ... other functions\n};\n\n// Export a default object with everything\nexport default {\n MyTatvaRnSdkView,\n startCGM,\n initializeCGMEventListener,\n removeCGMEventListener,\n observeAllGlucoseDataHandler,\n reconnectCGM,\n helpCGM,\n observeTransmitterUnbindStatusHandler,\n observeResetLogoutHandler,\n getSqliteDBPath,\n getCgmLogFilePaths\n};"],"mappings":"AAAA,OAAOA,uBAAuB,MAAM,4BAA4B;AAChE,OAAOC,mBAAmB,MAAM,wBAAwB;AACxD,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,QAAQ,EAAEC,0BAA0B,EAAEC,sBAAsB,EAAEC,4BAA4B,EAAEC,YAAY,EAAEC,OAAO,EAAEC,qCAAqC,EAAEC,yBAAyB,EAAEC,eAAe,EAAEC,kBAAkB,QAAQ,cAAc;AACvP;;AAEA;AACA,OAAO,MAAMC,gBAAgB,GAAGX,QAAQ,CAACY,MAAM,CAAC;EAC9CC,GAAG,EAAEd,mBAAmB;EACxBe,OAAO,EAAEhB;AACX,CAAC,CAAC;;AAEF;AACA,SACEG,QAAQ,EACRC,0BAA0B,EAC1BC,sBAAsB,EACtBC,4BAA4B,EAC5BC,YAAY,EACZC,OAAO,EACPC,qCAAqC,EACrCC,yBAAyB,EACzBC,eAAe,EACfC;AACA;AAAA;;AAGF;AACA,eAAe;EACbC,gBAAgB;EAChBV,QAAQ;EACRC,0BAA0B;EAC1BC,sBAAsB;EACtBC,4BAA4B;EAC5BC,YAAY;EACZC,OAAO;EACPC,qCAAqC;EACrCC,yBAAyB;EACzBC,eAAe;EACfC;AACF,CAAC","ignoreList":[]}
|
|
@@ -8,4 +8,17 @@ declare const observeTransmitterUnbindStatusHandler: (token: string, apiResponse
|
|
|
8
8
|
declare const observeResetLogoutHandler: () => Promise<void>;
|
|
9
9
|
declare const getSqliteDBPath: () => Promise<string>;
|
|
10
10
|
declare const stopCGM: () => Promise<void>;
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Get all CGM log file paths
|
|
13
|
+
* Returns array of absolute file paths to CGM log files (CSV format)
|
|
14
|
+
* Use react-native-fs or similar in your main app to read these files
|
|
15
|
+
*
|
|
16
|
+
* @returns Promise<string[]> - Array of absolute file paths
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const logPaths = await getCgmLogFilePaths();
|
|
20
|
+
* // Android: ['/storage/emulated/0/Android/data/.../Documents/12345_POCTech.csv']
|
|
21
|
+
* // iOS: ['/var/mobile/Containers/Data/Application/.../Documents/runLog/1_SensorID.csv']
|
|
22
|
+
*/
|
|
23
|
+
declare const getCgmLogFilePaths: () => Promise<string[]>;
|
|
24
|
+
export { startCGM, stopCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths, };
|
package/package.json
CHANGED
package/src/CGMConnect.ts
CHANGED
|
@@ -164,6 +164,29 @@ const stopCGM = async () => {
|
|
|
164
164
|
// Implementation
|
|
165
165
|
};
|
|
166
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Get all CGM log file paths
|
|
169
|
+
* Returns array of absolute file paths to CGM log files (CSV format)
|
|
170
|
+
* Use react-native-fs or similar in your main app to read these files
|
|
171
|
+
*
|
|
172
|
+
* @returns Promise<string[]> - Array of absolute file paths
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* const logPaths = await getCgmLogFilePaths();
|
|
176
|
+
* // Android: ['/storage/emulated/0/Android/data/.../Documents/12345_POCTech.csv']
|
|
177
|
+
* // iOS: ['/var/mobile/Containers/Data/Application/.../Documents/runLog/1_SensorID.csv']
|
|
178
|
+
*/
|
|
179
|
+
const getCgmLogFilePaths = async (): Promise<string[]> => {
|
|
180
|
+
try {
|
|
181
|
+
const result = await cgmLib.getCgmLogFiles();
|
|
182
|
+
console.log(`CGM Log Files: ${result.length} files found`);
|
|
183
|
+
return result;
|
|
184
|
+
} catch (error) {
|
|
185
|
+
console.error('Error getting CGM log file paths:', error);
|
|
186
|
+
throw error;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
167
190
|
export {
|
|
168
191
|
startCGM,
|
|
169
192
|
stopCGM,
|
|
@@ -175,4 +198,5 @@ export {
|
|
|
175
198
|
observeTransmitterUnbindStatusHandler,
|
|
176
199
|
observeResetLogoutHandler,
|
|
177
200
|
getSqliteDBPath,
|
|
201
|
+
getCgmLogFilePaths,
|
|
178
202
|
};
|
package/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import MyTatvaRnSdkViewAndroid from './MyTatvaRnSdkView.android';
|
|
2
2
|
import MyTatvaRnSdkViewIOS from './MyTatvaRnSdkView.ios';
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
|
-
import { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath } from './CGMConnect';
|
|
4
|
+
import { startCGM, initializeCGMEventListener, removeCGMEventListener, observeAllGlucoseDataHandler, reconnectCGM, helpCGM, observeTransmitterUnbindStatusHandler, observeResetLogoutHandler, getSqliteDBPath, getCgmLogFilePaths } from './CGMConnect';
|
|
5
5
|
// ... other imports
|
|
6
6
|
|
|
7
7
|
// Export the platform-specific component
|
|
@@ -20,7 +20,8 @@ export {
|
|
|
20
20
|
helpCGM,
|
|
21
21
|
observeTransmitterUnbindStatusHandler,
|
|
22
22
|
observeResetLogoutHandler,
|
|
23
|
-
getSqliteDBPath
|
|
23
|
+
getSqliteDBPath,
|
|
24
|
+
getCgmLogFilePaths
|
|
24
25
|
// ... other functions
|
|
25
26
|
};
|
|
26
27
|
|
|
@@ -35,5 +36,6 @@ export default {
|
|
|
35
36
|
helpCGM,
|
|
36
37
|
observeTransmitterUnbindStatusHandler,
|
|
37
38
|
observeResetLogoutHandler,
|
|
38
|
-
getSqliteDBPath
|
|
39
|
+
getSqliteDBPath,
|
|
40
|
+
getCgmLogFilePaths
|
|
39
41
|
};
|