react-native-rook-sdk 4.0.0-beta.2 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNRookSdk.podspec +1 -1
- package/android/build.gradle +6 -0
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +1850 -6
- package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +62 -0
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +64 -0
- package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +44 -0
- package/android/src/main/java/com/rooksdk/utils/DatasourceUtils.kt +35 -0
- package/android/src/main/java/com/rooksdk/utils/PermissionConvertions.kt +21 -0
- package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +144 -0
- package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +26 -0
- package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +20 -0
- package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +22 -0
- package/android/src/main/java/com/rooksdk/utils/Source.kt +6 -0
- package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +41 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +18 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +21 -0
- package/android/src/main/java/com/rooksdk/utils/serializers/ZoneDateTimeSerializer.kt +18 -0
- package/ios/EncodableSDKState.swift +95 -0
- package/ios/NutritionMapper.swift +114 -0
- package/ios/RookConfiguration.swift +13 -0
- package/ios/RookData.swift +29 -0
- package/ios/RookEntry.swift +5 -4
- package/ios/RookPermissions.swift +33 -9
- package/ios/RookSdk.h +1 -13
- package/ios/RookSdk.mm +44 -237
- package/lib/module/NativeRookSdk.js +98 -10
- package/lib/module/NativeRookSdk.js.map +1 -1
- package/lib/module/context/RookSyncGateProvider.js +29 -21
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateReducer.js +12 -2
- package/lib/module/context/RookSyncGateReducer.js.map +1 -1
- package/lib/module/hooks/useRookConfiguration.js +20 -1
- package/lib/module/hooks/useRookConfiguration.js.map +1 -1
- package/lib/module/hooks/useRookData.js +13 -4
- package/lib/module/hooks/useRookData.js.map +1 -1
- package/lib/module/hooks/useRookPermissions.js +13 -1
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSync.js +1 -1
- package/lib/module/hooks/useRookSync.js.map +1 -1
- package/lib/module/hooks/useRookVariables.js +16 -1
- package/lib/module/hooks/useRookVariables.js.map +1 -1
- package/lib/module/modules/components/RookStateManager.js +31 -0
- package/lib/module/modules/components/RookStateManager.js.map +1 -0
- package/lib/module/modules/hook/useRookAutoSync.js +5 -4
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/module/modules/hook/useRookEmitter.js +61 -0
- package/lib/module/modules/hook/useRookEmitter.js.map +1 -0
- package/lib/module/types/AppleHealthNutritionEvent.js +72 -0
- package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -0
- package/lib/module/types/HCMealData.js +61 -0
- package/lib/module/types/HCMealData.js.map +1 -0
- package/lib/module/types/WriteNutrition.js +14 -0
- package/lib/module/types/WriteNutrition.js.map +1 -0
- package/lib/module/utils/isValidDate.js +20 -0
- package/lib/module/utils/isValidDate.js.map +1 -1
- package/lib/typescript/src/NativeRookSdk.d.ts +622 -33
- package/lib/typescript/src/NativeRookSdk.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts +14 -4
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookData.d.ts +2 -2
- package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookPermissions.d.ts +2 -0
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookVariables.d.ts +2 -0
- package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
- package/lib/typescript/src/modules/components/RookStateManager.d.ts +10 -0
- package/lib/typescript/src/modules/components/RookStateManager.d.ts.map +1 -0
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
- package/lib/typescript/src/modules/hook/useRookEmitter.d.ts +4 -0
- package/lib/typescript/src/modules/hook/useRookEmitter.d.ts.map +1 -0
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts +76 -0
- package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/HCMealData.d.ts +60 -0
- package/lib/typescript/src/types/HCMealData.d.ts.map +1 -0
- package/lib/typescript/src/types/WriteNutrition.d.ts +61 -0
- package/lib/typescript/src/types/WriteNutrition.d.ts.map +1 -0
- package/lib/typescript/src/utils/isValidDate.d.ts +8 -0
- package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeRookSdk.ts +682 -117
- package/src/context/RookSyncGateProvider.tsx +20 -16
- package/src/context/RookSyncGateReducer.ts +6 -2
- package/src/context/RookSyncGateTypes.ts +9 -3
- package/src/hooks/useRookConfiguration.ts +26 -2
- package/src/hooks/useRookData.ts +18 -7
- package/src/hooks/useRookPermissions.ts +16 -0
- package/src/hooks/useRookSync.ts +1 -1
- package/src/hooks/useRookVariables.ts +22 -1
- package/src/modules/components/RookStateManager.tsx +41 -0
- package/src/modules/hook/useRookAutoSync.ts +6 -4
- package/src/modules/hook/useRookEmitter.ts +94 -0
- package/src/types/AppleHealthNutritionEvent.ts +142 -0
- package/src/types/HCMealData.ts +114 -0
- package/src/types/WriteNutrition.ts +66 -0
- package/src/utils/isValidDate.ts +24 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RookSdk","useEffect","useRef","useState","AppState","Platform","errors","AppleHealthPermission","MESSAGE_TYPE","useRookAutoSync","enableBackground","enableLogs","state","appState","currentState","changeAppState","setChangeState","subscription","addEventListener","nextAppState","current","match","prev","remove","ready","startBackgroundServices","clientUUID","
|
|
1
|
+
{"version":3,"names":["RookSdk","useEffect","useRef","useState","AppState","Platform","errors","AppleHealthPermission","MESSAGE_TYPE","useRookAutoSync","enableBackground","enableLogs","state","appState","currentState","changeAppState","setChangeState","subscription","addEventListener","nextAppState","current","match","prev","remove","ready","startBackgroundServices","clientUUID","secret","OS","startAndroidBackgroundSync","startIOSBackgroundSync","isValidUser","userID","getUserID","console","error","noUserIDAndroidBackground","Error","sendMessageToBroadcast","type","message","value","tryToStartBackgroundSync","backgroundStatus","checkHealthConnectBackgroundReadStatus","result","scheduleBackgroundSync","tryToStartForegroundSync","hasHCPermissions","healthConnectHasPartialPermissions","hasAndroidPermissions","androidHasBackgroundPermissions","autoStartAndroidBackgroundSync","enableBackgroundAndroidSteps","tryToStartSamsungHealthSync","isAvailable","checkSamsungAvailability","enableSamsungSync","enabledSources","isValid","isSamsungEnabled","isEnabled","push","isForegroundEnabled","join","log","status","appleHealthHasPermissions","STEP_COUNT","enableBackGroundUpdates","sync","err","autoStartIOSBackgroundSync","includes","sendMessage"],"sourceRoot":"../../../../src","sources":["modules/hook/useRookAutoSync.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
4
|
+
import { useRef, useCallback } from 'react';
|
|
5
|
+
import RookSdk from "../../NativeRookSdk.js";
|
|
6
|
+
const PERM_KEYS = {
|
|
7
|
+
HC: 'ROOK_HEALTH_CONNECT_PERMISSIONS',
|
|
8
|
+
HC_PARTIAL: 'ROOK_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED',
|
|
9
|
+
HC_BG: 'ROOK_HEALTH_CONNECT_BACKGROUND_PERMISSIONS',
|
|
10
|
+
SAMSUNG: 'ROOK_SAMSUNG_HEALTH_PERMISSIONS',
|
|
11
|
+
SAMSUNG_PARTIAL: 'ROOK_SAMSUNG_HEALTH_PERMISSIONS_PARTIALLY_GRANTED',
|
|
12
|
+
ANDROID_BG: 'ROOK_BACKGROUND_ANDROID_PERMISSIONS'
|
|
13
|
+
};
|
|
14
|
+
export const useRookPermissionEmitter = () => {
|
|
15
|
+
const emittedRef = useRef({});
|
|
16
|
+
const evaluateAndEmit = useCallback(async (key, checkFn) => {
|
|
17
|
+
let previuos = emittedRef.current[key] || false;
|
|
18
|
+
try {
|
|
19
|
+
const result = await checkFn();
|
|
20
|
+
const isGranted = typeof result === 'string' ? result === 'PERMISSION_GRANTED' : result;
|
|
21
|
+
if (previuos === isGranted) return;
|
|
22
|
+
const success = await RookSdk.sendMessage({
|
|
23
|
+
type: key,
|
|
24
|
+
value: isGranted
|
|
25
|
+
});
|
|
26
|
+
if (success) {
|
|
27
|
+
emittedRef.current[key] = true;
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.error(`Error checking/emitting ${key}:`, error);
|
|
31
|
+
}
|
|
32
|
+
}, []);
|
|
33
|
+
const checkAndroidSystem = async () => {
|
|
34
|
+
await evaluateAndEmit(PERM_KEYS.ANDROID_BG, RookSdk.androidHasBackgroundPermissions);
|
|
35
|
+
};
|
|
36
|
+
const checkHealthConnect = async () => {
|
|
37
|
+
await Promise.all([evaluateAndEmit(PERM_KEYS.HC, RookSdk.healthConnectHasPermissions), evaluateAndEmit(PERM_KEYS.HC_PARTIAL, RookSdk.healthConnectHasPartialPermissions), evaluateAndEmit(PERM_KEYS.HC_BG, RookSdk.checkHealthConnectBackgroundReadStatus)]);
|
|
38
|
+
};
|
|
39
|
+
const checkSamsungHealth = async () => {
|
|
40
|
+
await Promise.all([evaluateAndEmit(PERM_KEYS.SAMSUNG, RookSdk.samsungHealthHasPermissions), evaluateAndEmit(PERM_KEYS.SAMSUNG_PARTIAL, RookSdk.samsungHealthHasPartialPermissions)]);
|
|
41
|
+
};
|
|
42
|
+
const checkAndroidPermissions = async () => {
|
|
43
|
+
try {
|
|
44
|
+
const samsungStatus = await RookSdk.checkSamsungAvailability();
|
|
45
|
+
const isSamsungAvailable = samsungStatus === 'INSTALLED';
|
|
46
|
+
checkAndroidSystem().then().catch(console.log);
|
|
47
|
+
checkHealthConnect().then().catch(console.log);
|
|
48
|
+
if (isSamsungAvailable) {
|
|
49
|
+
checkSamsungHealth().catch(console.log);
|
|
50
|
+
} else {
|
|
51
|
+
console.log(`Skipping Samsung Health checks. Status: ${samsungStatus}`);
|
|
52
|
+
}
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error('Global Permission Check Failed', error);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
checkAndroidPermissions
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=useRookEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","useCallback","RookSdk","PERM_KEYS","HC","HC_PARTIAL","HC_BG","SAMSUNG","SAMSUNG_PARTIAL","ANDROID_BG","useRookPermissionEmitter","emittedRef","evaluateAndEmit","key","checkFn","previuos","current","result","isGranted","success","sendMessage","type","value","error","console","checkAndroidSystem","androidHasBackgroundPermissions","checkHealthConnect","Promise","all","healthConnectHasPermissions","healthConnectHasPartialPermissions","checkHealthConnectBackgroundReadStatus","checkSamsungHealth","samsungHealthHasPermissions","samsungHealthHasPartialPermissions","checkAndroidPermissions","samsungStatus","checkSamsungAvailability","isSamsungAvailable","then","catch","log"],"sourceRoot":"../../../../src","sources":["modules/hook/useRookEmitter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents the unit of measurement for nutrition.
|
|
5
|
+
* Map these integers to your SDK's unit requirements (e.g., Grams, Calories).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Main Interface for Apple Health Nutrition Insertion
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
export const parseWriteNutritionToAH = data => {
|
|
13
|
+
return {
|
|
14
|
+
name: data.name,
|
|
15
|
+
date: data.date,
|
|
16
|
+
quantity: {
|
|
17
|
+
unit: data.unit ?? 1,
|
|
18
|
+
amount: data.amount ?? 0
|
|
19
|
+
},
|
|
20
|
+
energyWaterData: {
|
|
21
|
+
dietaryKiloCaloriesEnergyConsumed: data.calories,
|
|
22
|
+
dietaryMilliLiterWater: data.water
|
|
23
|
+
},
|
|
24
|
+
carbohydratesData: {
|
|
25
|
+
dietaryGramCarbohydrates: data.totalCarbohydrates,
|
|
26
|
+
dietaryGramFiber: data.dietaryFiber,
|
|
27
|
+
dietaryGramSugar: data.sugar
|
|
28
|
+
},
|
|
29
|
+
fatsData: {
|
|
30
|
+
dietaryGramFatTotal: data.totalFat,
|
|
31
|
+
dietaryGramFatSaturated: data.saturatedFat,
|
|
32
|
+
dietaryGramFatMonounsaturated: data.monounsaturatedFat,
|
|
33
|
+
dietaryGramFatPolyunsaturated: data.polyunsaturatedFat
|
|
34
|
+
},
|
|
35
|
+
proteinData: {
|
|
36
|
+
dietaryGramProtein: data.protein,
|
|
37
|
+
dietaryMilliGramCholesterol: data.cholesterol
|
|
38
|
+
},
|
|
39
|
+
vitaminsData: {
|
|
40
|
+
dietaryMicroGramVitaminA: data.vitaminA,
|
|
41
|
+
dietaryMilliGramVitaminB6: data.vitaminB6,
|
|
42
|
+
dietaryMicroGramVitaminB12: data.vitaminB12,
|
|
43
|
+
dietaryMilliGramVitaminC: data.vitaminC,
|
|
44
|
+
dietaryMicroGramVitaminD: data.vitaminD,
|
|
45
|
+
dietaryMilliGramVitaminE: data.vitaminE,
|
|
46
|
+
dietaryMicroGramVitaminK: data.vitaminK,
|
|
47
|
+
dietaryMilliGramThiamin: data.thiamin,
|
|
48
|
+
dietaryMilliGramRiboflavin: data.riboflavin,
|
|
49
|
+
dietaryMilliGramNiacin: data.niacin,
|
|
50
|
+
dietaryMilliGramPantothenicAcid: data.pantothenicAcid,
|
|
51
|
+
dietaryMicroGramFolate: data.folate,
|
|
52
|
+
dietaryMicroGramBiotin: data.biotin
|
|
53
|
+
},
|
|
54
|
+
mineralData: {
|
|
55
|
+
dietaryMilliGramsCalcium: data.calcium,
|
|
56
|
+
dietaryMilliGramsChloride: data.chloride,
|
|
57
|
+
dietaryMilliGramsChromium: data.chromium,
|
|
58
|
+
dietaryMilliGramsCopper: data.copper,
|
|
59
|
+
dietaryMilliGramsIodine: data.iodine,
|
|
60
|
+
dietaryMilliGramsIron: data.iron,
|
|
61
|
+
dietaryMilliGramsMagnesium: data.magnesium,
|
|
62
|
+
dietaryMilliGramsManganese: data.manganese,
|
|
63
|
+
dietaryMilliGramsMolybdenum: data.molybdenum,
|
|
64
|
+
dietaryMilliGramsPhosphorus: data.phosphorus,
|
|
65
|
+
dietaryMilliGramsPotassium: data.potassium,
|
|
66
|
+
dietaryMilliGramsSelenium: data.selenium,
|
|
67
|
+
dietaryMilliGramsSodium: data.sodium,
|
|
68
|
+
dietaryMilliGramsZinc: data.zinc
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=AppleHealthNutritionEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseWriteNutritionToAH","data","name","date","quantity","unit","amount","energyWaterData","dietaryKiloCaloriesEnergyConsumed","calories","dietaryMilliLiterWater","water","carbohydratesData","dietaryGramCarbohydrates","totalCarbohydrates","dietaryGramFiber","dietaryFiber","dietaryGramSugar","sugar","fatsData","dietaryGramFatTotal","totalFat","dietaryGramFatSaturated","saturatedFat","dietaryGramFatMonounsaturated","monounsaturatedFat","dietaryGramFatPolyunsaturated","polyunsaturatedFat","proteinData","dietaryGramProtein","protein","dietaryMilliGramCholesterol","cholesterol","vitaminsData","dietaryMicroGramVitaminA","vitaminA","dietaryMilliGramVitaminB6","vitaminB6","dietaryMicroGramVitaminB12","vitaminB12","dietaryMilliGramVitaminC","vitaminC","dietaryMicroGramVitaminD","vitaminD","dietaryMilliGramVitaminE","vitaminE","dietaryMicroGramVitaminK","vitaminK","dietaryMilliGramThiamin","thiamin","dietaryMilliGramRiboflavin","riboflavin","dietaryMilliGramNiacin","niacin","dietaryMilliGramPantothenicAcid","pantothenicAcid","dietaryMicroGramFolate","folate","dietaryMicroGramBiotin","biotin","mineralData","dietaryMilliGramsCalcium","calcium","dietaryMilliGramsChloride","chloride","dietaryMilliGramsChromium","chromium","dietaryMilliGramsCopper","copper","dietaryMilliGramsIodine","iodine","dietaryMilliGramsIron","iron","dietaryMilliGramsMagnesium","magnesium","dietaryMilliGramsManganese","manganese","dietaryMilliGramsMolybdenum","molybdenum","dietaryMilliGramsPhosphorus","phosphorus","dietaryMilliGramsPotassium","potassium","dietaryMilliGramsSelenium","selenium","dietaryMilliGramsSodium","sodium","dietaryMilliGramsZinc","zinc"],"sourceRoot":"../../../src","sources":["types/AppleHealthNutritionEvent.ts"],"mappings":";;AAEA;AACA;AACA;AACA;;AA8DA;AACA;AACA;;AAcA,OAAO,MAAMA,uBAAuB,GAClCC,IAAoB,IACU;EAC9B,OAAO;IACLC,IAAI,EAAED,IAAI,CAACC,IAAI;IACfC,IAAI,EAAEF,IAAI,CAACE,IAAI;IACfC,QAAQ,EAAE;MAAEC,IAAI,EAAEJ,IAAI,CAACI,IAAI,IAAI,CAAC;MAAEC,MAAM,EAAEL,IAAI,CAACK,MAAM,IAAI;IAAE,CAAC;IAC5DC,eAAe,EAAE;MACfC,iCAAiC,EAAEP,IAAI,CAACQ,QAAQ;MAChDC,sBAAsB,EAAET,IAAI,CAACU;IAC/B,CAAC;IACDC,iBAAiB,EAAE;MACjBC,wBAAwB,EAAEZ,IAAI,CAACa,kBAAkB;MACjDC,gBAAgB,EAAEd,IAAI,CAACe,YAAY;MACnCC,gBAAgB,EAAEhB,IAAI,CAACiB;IACzB,CAAC;IACDC,QAAQ,EAAE;MACRC,mBAAmB,EAAEnB,IAAI,CAACoB,QAAQ;MAClCC,uBAAuB,EAAErB,IAAI,CAACsB,YAAY;MAC1CC,6BAA6B,EAAEvB,IAAI,CAACwB,kBAAkB;MACtDC,6BAA6B,EAAEzB,IAAI,CAAC0B;IACtC,CAAC;IACDC,WAAW,EAAE;MACXC,kBAAkB,EAAE5B,IAAI,CAAC6B,OAAO;MAChCC,2BAA2B,EAAE9B,IAAI,CAAC+B;IACpC,CAAC;IACDC,YAAY,EAAE;MACZC,wBAAwB,EAAEjC,IAAI,CAACkC,QAAQ;MACvCC,yBAAyB,EAAEnC,IAAI,CAACoC,SAAS;MACzCC,0BAA0B,EAAErC,IAAI,CAACsC,UAAU;MAC3CC,wBAAwB,EAAEvC,IAAI,CAACwC,QAAQ;MACvCC,wBAAwB,EAAEzC,IAAI,CAAC0C,QAAQ;MACvCC,wBAAwB,EAAE3C,IAAI,CAAC4C,QAAQ;MACvCC,wBAAwB,EAAE7C,IAAI,CAAC8C,QAAQ;MACvCC,uBAAuB,EAAE/C,IAAI,CAACgD,OAAO;MACrCC,0BAA0B,EAAEjD,IAAI,CAACkD,UAAU;MAC3CC,sBAAsB,EAAEnD,IAAI,CAACoD,MAAM;MACnCC,+BAA+B,EAAErD,IAAI,CAACsD,eAAe;MACrDC,sBAAsB,EAAEvD,IAAI,CAACwD,MAAM;MACnCC,sBAAsB,EAAEzD,IAAI,CAAC0D;IAC/B,CAAC;IACDC,WAAW,EAAE;MACXC,wBAAwB,EAAE5D,IAAI,CAAC6D,OAAO;MACtCC,yBAAyB,EAAE9D,IAAI,CAAC+D,QAAQ;MACxCC,yBAAyB,EAAEhE,IAAI,CAACiE,QAAQ;MACxCC,uBAAuB,EAAElE,IAAI,CAACmE,MAAM;MACpCC,uBAAuB,EAAEpE,IAAI,CAACqE,MAAM;MACpCC,qBAAqB,EAAEtE,IAAI,CAACuE,IAAI;MAChCC,0BAA0B,EAAExE,IAAI,CAACyE,SAAS;MAC1CC,0BAA0B,EAAE1E,IAAI,CAAC2E,SAAS;MAC1CC,2BAA2B,EAAE5E,IAAI,CAAC6E,UAAU;MAC5CC,2BAA2B,EAAE9E,IAAI,CAAC+E,UAAU;MAC5CC,0BAA0B,EAAEhF,IAAI,CAACiF,SAAS;MAC1CC,yBAAyB,EAAElF,IAAI,CAACmF,QAAQ;MACxCC,uBAAuB,EAAEpF,IAAI,CAACqF,MAAM;MACpCC,qBAAqB,EAAEtF,IAAI,CAACuF;IAC9B;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MealDataType } from "./WriteNutrition.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Interface representing nutrition and meal data for Health Connect.
|
|
7
|
+
* * Note: All gram values have a range of [0.0 - 100.0] unless specified otherwise.
|
|
8
|
+
* Energy and macro values have a range of [0.0 - 100,000.0].
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export const parseWriteNutritionToHC = data => {
|
|
12
|
+
return {
|
|
13
|
+
name: data.name,
|
|
14
|
+
startDateTime: data.date,
|
|
15
|
+
endDateTime: data.date,
|
|
16
|
+
type: data.mealType ?? MealDataType.SNACK,
|
|
17
|
+
biotinGrams: data.biotin,
|
|
18
|
+
caffeineGrams: data.caffeine,
|
|
19
|
+
calciumGrams: data.calcium,
|
|
20
|
+
energyKcal: data.calories,
|
|
21
|
+
energyFromFatKcal: data.caloriesFromFat,
|
|
22
|
+
chlorideGrams: data.chloride,
|
|
23
|
+
cholesterolGrams: data.cholesterol,
|
|
24
|
+
chromiumGrams: data.chromium,
|
|
25
|
+
copperGrams: data.copper,
|
|
26
|
+
dietaryFiberGrams: data.dietaryFiber,
|
|
27
|
+
folateGrams: data.folate,
|
|
28
|
+
folicAcidGrams: data.folicAcid,
|
|
29
|
+
iodineGrams: data.iodine,
|
|
30
|
+
ironGrams: data.iron,
|
|
31
|
+
magnesiumGrams: data.magnesium,
|
|
32
|
+
manganeseGrams: data.manganese,
|
|
33
|
+
molybdenumGrams: data.molybdenum,
|
|
34
|
+
monounsaturatedFatGrams: data.monounsaturatedFat,
|
|
35
|
+
niacinGrams: data.niacin,
|
|
36
|
+
pantothenicAcidGrams: data.pantothenicAcid,
|
|
37
|
+
phosphorusGrams: data.phosphorus,
|
|
38
|
+
polyunsaturatedFatGrams: data.polyunsaturatedFat,
|
|
39
|
+
potassiumGrams: data.potassium,
|
|
40
|
+
proteinGrams: data.protein,
|
|
41
|
+
riboflavinGrams: data.riboflavin,
|
|
42
|
+
saturatedFatGrams: data.saturatedFat,
|
|
43
|
+
seleniumGrams: data.selenium,
|
|
44
|
+
sodiumGrams: data.sodium,
|
|
45
|
+
sugarGrams: data.sugar,
|
|
46
|
+
thiaminGrams: data.thiamin,
|
|
47
|
+
totalCarbohydrateGrams: data.totalCarbohydrates,
|
|
48
|
+
totalFatGrams: data.totalFat,
|
|
49
|
+
transFatGrams: data.transFat,
|
|
50
|
+
unsaturatedFatGrams: data.unsaturatedFat,
|
|
51
|
+
vitaminAGrams: data.vitaminA,
|
|
52
|
+
vitaminB12Grams: data.vitaminB12,
|
|
53
|
+
vitaminB6Grams: data.vitaminB6,
|
|
54
|
+
vitaminCGrams: data.vitaminC,
|
|
55
|
+
vitaminDGrams: data.vitaminD,
|
|
56
|
+
vitaminEGrams: data.vitaminE,
|
|
57
|
+
vitaminKGrams: data.vitaminK,
|
|
58
|
+
zincGrams: data.zinc
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=HCMealData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MealDataType","parseWriteNutritionToHC","data","name","startDateTime","date","endDateTime","type","mealType","SNACK","biotinGrams","biotin","caffeineGrams","caffeine","calciumGrams","calcium","energyKcal","calories","energyFromFatKcal","caloriesFromFat","chlorideGrams","chloride","cholesterolGrams","cholesterol","chromiumGrams","chromium","copperGrams","copper","dietaryFiberGrams","dietaryFiber","folateGrams","folate","folicAcidGrams","folicAcid","iodineGrams","iodine","ironGrams","iron","magnesiumGrams","magnesium","manganeseGrams","manganese","molybdenumGrams","molybdenum","monounsaturatedFatGrams","monounsaturatedFat","niacinGrams","niacin","pantothenicAcidGrams","pantothenicAcid","phosphorusGrams","phosphorus","polyunsaturatedFatGrams","polyunsaturatedFat","potassiumGrams","potassium","proteinGrams","protein","riboflavinGrams","riboflavin","saturatedFatGrams","saturatedFat","seleniumGrams","selenium","sodiumGrams","sodium","sugarGrams","sugar","thiaminGrams","thiamin","totalCarbohydrateGrams","totalCarbohydrates","totalFatGrams","totalFat","transFatGrams","transFat","unsaturatedFatGrams","unsaturatedFat","vitaminAGrams","vitaminA","vitaminB12Grams","vitaminB12","vitaminB6Grams","vitaminB6","vitaminCGrams","vitaminC","vitaminDGrams","vitaminD","vitaminEGrams","vitaminE","vitaminKGrams","vitaminK","zincGrams","zinc"],"sourceRoot":"../../../src","sources":["types/HCMealData.ts"],"mappings":";;AAAA,SAA8BA,YAAY,QAAQ,qBAAkB;;AAEpE;AACA;AACA;AACA;AACA;;AA0DA,OAAO,MAAMC,uBAAuB,GAAIC,IAAoB,IAAiB;EAC3E,OAAO;IACLC,IAAI,EAAED,IAAI,CAACC,IAAI;IACfC,aAAa,EAAEF,IAAI,CAACG,IAAI;IACxBC,WAAW,EAAEJ,IAAI,CAACG,IAAI;IACtBE,IAAI,EAAEL,IAAI,CAACM,QAAQ,IAAIR,YAAY,CAACS,KAAK;IACzCC,WAAW,EAAER,IAAI,CAACS,MAAM;IACxBC,aAAa,EAAEV,IAAI,CAACW,QAAQ;IAC5BC,YAAY,EAAEZ,IAAI,CAACa,OAAO;IAC1BC,UAAU,EAAEd,IAAI,CAACe,QAAQ;IACzBC,iBAAiB,EAAEhB,IAAI,CAACiB,eAAe;IACvCC,aAAa,EAAElB,IAAI,CAACmB,QAAQ;IAC5BC,gBAAgB,EAAEpB,IAAI,CAACqB,WAAW;IAClCC,aAAa,EAAEtB,IAAI,CAACuB,QAAQ;IAC5BC,WAAW,EAAExB,IAAI,CAACyB,MAAM;IACxBC,iBAAiB,EAAE1B,IAAI,CAAC2B,YAAY;IACpCC,WAAW,EAAE5B,IAAI,CAAC6B,MAAM;IACxBC,cAAc,EAAE9B,IAAI,CAAC+B,SAAS;IAC9BC,WAAW,EAAEhC,IAAI,CAACiC,MAAM;IACxBC,SAAS,EAAElC,IAAI,CAACmC,IAAI;IACpBC,cAAc,EAAEpC,IAAI,CAACqC,SAAS;IAC9BC,cAAc,EAAEtC,IAAI,CAACuC,SAAS;IAC9BC,eAAe,EAAExC,IAAI,CAACyC,UAAU;IAChCC,uBAAuB,EAAE1C,IAAI,CAAC2C,kBAAkB;IAChDC,WAAW,EAAE5C,IAAI,CAAC6C,MAAM;IACxBC,oBAAoB,EAAE9C,IAAI,CAAC+C,eAAe;IAC1CC,eAAe,EAAEhD,IAAI,CAACiD,UAAU;IAChCC,uBAAuB,EAAElD,IAAI,CAACmD,kBAAkB;IAChDC,cAAc,EAAEpD,IAAI,CAACqD,SAAS;IAC9BC,YAAY,EAAEtD,IAAI,CAACuD,OAAO;IAC1BC,eAAe,EAAExD,IAAI,CAACyD,UAAU;IAChCC,iBAAiB,EAAE1D,IAAI,CAAC2D,YAAY;IACpCC,aAAa,EAAE5D,IAAI,CAAC6D,QAAQ;IAC5BC,WAAW,EAAE9D,IAAI,CAAC+D,MAAM;IACxBC,UAAU,EAAEhE,IAAI,CAACiE,KAAK;IACtBC,YAAY,EAAElE,IAAI,CAACmE,OAAO;IAC1BC,sBAAsB,EAAEpE,IAAI,CAACqE,kBAAkB;IAC/CC,aAAa,EAAEtE,IAAI,CAACuE,QAAQ;IAC5BC,aAAa,EAAExE,IAAI,CAACyE,QAAQ;IAC5BC,mBAAmB,EAAE1E,IAAI,CAAC2E,cAAc;IACxCC,aAAa,EAAE5E,IAAI,CAAC6E,QAAQ;IAC5BC,eAAe,EAAE9E,IAAI,CAAC+E,UAAU;IAChCC,cAAc,EAAEhF,IAAI,CAACiF,SAAS;IAC9BC,aAAa,EAAElF,IAAI,CAACmF,QAAQ;IAC5BC,aAAa,EAAEpF,IAAI,CAACqF,QAAQ;IAC5BC,aAAa,EAAEtF,IAAI,CAACuF,QAAQ;IAC5BC,aAAa,EAAExF,IAAI,CAACyF,QAAQ;IAC5BC,SAAS,EAAE1F,IAAI,CAAC2F;EAClB,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Represents the type of meal consumed.
|
|
5
|
+
* These strings must match the Kotlin HCMealDataType enum.
|
|
6
|
+
*/
|
|
7
|
+
export let MealDataType = /*#__PURE__*/function (MealDataType) {
|
|
8
|
+
MealDataType["BREAKFAST"] = "BREAKFAST";
|
|
9
|
+
MealDataType["LUNCH"] = "LUNCH";
|
|
10
|
+
MealDataType["DINNER"] = "DINNER";
|
|
11
|
+
MealDataType["SNACK"] = "SNACK";
|
|
12
|
+
return MealDataType;
|
|
13
|
+
}({});
|
|
14
|
+
//# sourceMappingURL=WriteNutrition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MealDataType"],"sourceRoot":"../../../src","sources":["types/WriteNutrition.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,WAAYA,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
|
@@ -12,4 +12,24 @@ export const isValidDate = date => {
|
|
|
12
12
|
throw new Error(`Invalid format: ${date}, the correct format is YYYY-MM-DD`);
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Validates that a string is a full ISO-8601 date-time with a timezone.
|
|
18
|
+
* Examples of valid formats:
|
|
19
|
+
* - 2026-02-23T12:00:00Z
|
|
20
|
+
* - 2026-02-23T12:00:00+01:00
|
|
21
|
+
* - 2026-02-23T12:00:00.000-06:00
|
|
22
|
+
*/
|
|
23
|
+
export const isValidZonedDateTime = date => {
|
|
24
|
+
// Regex for ISO 8601 with Timezone
|
|
25
|
+
const isoRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})$/;
|
|
26
|
+
if (!isoRegex.test(date)) {
|
|
27
|
+
throw new Error(`Invalid format: ${date}. Expected ISO-8601 with Timezone (e.g., YYYY-MM-DDTHH:mm:ssZ or YYYY-MM-DDTHH:mm:ss+HH:mm)`);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Also verify it's a valid calendar date
|
|
31
|
+
if (isNaN(Date.parse(date))) {
|
|
32
|
+
throw new Error(`Invalid date value: ${date}`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
15
35
|
//# sourceMappingURL=isValidDate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isValidDate","date","regex","test","Error"],"sourceRoot":"../../../src","sources":["utils/isValidDate.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAIC,IAAY,IAAK;EAC3C,MAAMC,KAAK,GAAG,qBAAqB;EAEnC,IAAI,CAACA,KAAK,CAACC,IAAI,CAACF,IAAI,CAAC,EAAE;IACrB,MAAM,IAAIG,KAAK,CACb,mBAAmBH,IAAI,oCACzB,CAAC;EACH;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isValidDate","date","regex","test","Error","isValidZonedDateTime","isoRegex","isNaN","Date","parse"],"sourceRoot":"../../../src","sources":["utils/isValidDate.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAIC,IAAY,IAAK;EAC3C,MAAMC,KAAK,GAAG,qBAAqB;EAEnC,IAAI,CAACA,KAAK,CAACC,IAAI,CAACF,IAAI,CAAC,EAAE;IACrB,MAAM,IAAIG,KAAK,CACb,mBAAmBH,IAAI,oCACzB,CAAC;EACH;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,oBAAoB,GAAIJ,IAAY,IAAK;EACpD;EACA,MAAMK,QAAQ,GACZ,kEAAkE;EAEpE,IAAI,CAACA,QAAQ,CAACH,IAAI,CAACF,IAAI,CAAC,EAAE;IACxB,MAAM,IAAIG,KAAK,CACb,mBAAmBH,IAAI,6FACzB,CAAC;EACH;;EAEA;EACA,IAAIM,KAAK,CAACC,IAAI,CAACC,KAAK,CAACR,IAAI,CAAC,CAAC,EAAE;IAC3B,MAAM,IAAIG,KAAK,CAAC,uBAAuBH,IAAI,EAAE,CAAC;EAChD;AACF,CAAC","ignoreList":[]}
|