react-native-rook-sdk 4.0.0-beta.2 → 4.0.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.
Files changed (333) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -35
  3. package/android/build.gradle +45 -20
  4. package/android/gradle.properties +5 -5
  5. package/android/src/main/AndroidManifest.xml +2 -1
  6. package/android/src/main/AndroidManifestNew.xml +36 -0
  7. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +263 -11
  8. package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +42 -26
  9. package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +65 -0
  10. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +70 -0
  11. package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +52 -0
  12. package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +99 -0
  13. package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +182 -0
  14. package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +301 -0
  15. package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +359 -0
  16. package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +102 -0
  17. package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +119 -0
  18. package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +551 -0
  19. package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +34 -0
  20. package/android/src/main/java/com/rooksdk/utils/PermissionConversion.kt +21 -0
  21. package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +145 -0
  22. package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +26 -0
  23. package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +17 -0
  24. package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +21 -0
  25. package/android/src/main/java/com/rooksdk/utils/Source.kt +6 -0
  26. package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +41 -0
  27. package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +19 -0
  28. package/android/src/main/java/com/rooksdk/utils/serializers/LocalDateSerializer.kt +21 -0
  29. package/android/src/main/res/drawable/ic_health_connect.xml +19 -0
  30. package/android/src/main/res/values/themes.xml +3 -0
  31. package/ios/DateHelper.swift +4 -4
  32. package/ios/EncodableDataSource.swift +3 -2
  33. package/ios/EncodableDataSourceAuthorizer.swift +3 -2
  34. package/ios/{HearRateMapper.swift → EncodableHeartRate.swift} +3 -3
  35. package/ios/EncodableRookDataSource.swift +36 -0
  36. package/ios/EncodableSDKState.swift +94 -0
  37. package/ios/EncodableStatusDataSources.swift +47 -0
  38. package/ios/NutritionMapper.swift +114 -0
  39. package/ios/RookBackground.swift +8 -5
  40. package/ios/RookBackgroundModule.h +5 -0
  41. package/ios/RookBackgroundModule.mm +15 -0
  42. package/ios/RookConfiguration.swift +34 -24
  43. package/ios/RookConfigurationModule.h +5 -0
  44. package/ios/RookConfigurationModule.mm +22 -0
  45. package/ios/RookExternalModule.h +5 -0
  46. package/ios/RookExternalModule.m +31 -0
  47. package/ios/{RookData.swift → RookLocalData.swift} +70 -48
  48. package/ios/RookPermissions.swift +33 -5
  49. package/ios/RookPermissionsModule.h +5 -0
  50. package/ios/RookPermissionsModule.mm +20 -0
  51. package/ios/RookSdk.h +2 -14
  52. package/ios/RookSdk.mm +97 -546
  53. package/ios/RookSources.swift +54 -60
  54. package/ios/RookSourcesModule.h +5 -0
  55. package/ios/RookSourcesModule.mm +18 -0
  56. package/ios/RookSync.h +5 -0
  57. package/ios/RookSync.m +35 -0
  58. package/ios/RookSync.swift +78 -48
  59. package/ios/SwiftTest.swift +18 -0
  60. package/ios/react-native-rook-sdk-Bridging-Header.h +12 -0
  61. package/{src/context/RookSyncGateContext.ts → lib/commonjs/context/RookSyncGateContext.js} +13 -10
  62. package/lib/commonjs/context/RookSyncGateContext.js.map +1 -0
  63. package/lib/commonjs/context/RookSyncGateProvider.js +108 -0
  64. package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -0
  65. package/{src/context/RookSyncGateReducer.ts → lib/commonjs/context/RookSyncGateReducer.js} +44 -13
  66. package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -0
  67. package/lib/commonjs/context/RookSyncGateTypes.js +6 -0
  68. package/lib/commonjs/context/RookSyncGateTypes.js.map +1 -0
  69. package/lib/commonjs/context/index.js +14 -0
  70. package/lib/commonjs/context/index.js.map +1 -0
  71. package/lib/commonjs/hooks/index.js +76 -0
  72. package/lib/commonjs/hooks/index.js.map +1 -0
  73. package/{src/hooks/useRookAPISources.ts → lib/commonjs/hooks/useRookAPISources.js} +36 -40
  74. package/lib/commonjs/hooks/useRookAPISources.js.map +1 -0
  75. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +88 -0
  76. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -0
  77. package/lib/commonjs/hooks/useRookAppleHealth.js +63 -0
  78. package/lib/commonjs/hooks/useRookAppleHealth.js.map +1 -0
  79. package/lib/commonjs/hooks/useRookConfiguration.js +113 -0
  80. package/lib/commonjs/hooks/useRookConfiguration.js.map +1 -0
  81. package/lib/commonjs/hooks/useRookData.js +116 -0
  82. package/lib/commonjs/hooks/useRookData.js.map +1 -0
  83. package/lib/commonjs/hooks/useRookHealthConnect.js +70 -0
  84. package/lib/commonjs/hooks/useRookHealthConnect.js.map +1 -0
  85. package/lib/commonjs/hooks/useRookPermissions.js +211 -0
  86. package/lib/commonjs/hooks/useRookPermissions.js.map +1 -0
  87. package/lib/commonjs/hooks/useRookSamsungHealth.js +54 -0
  88. package/lib/commonjs/hooks/useRookSamsungHealth.js.map +1 -0
  89. package/lib/commonjs/hooks/useRookSync.js +148 -0
  90. package/lib/commonjs/hooks/useRookSync.js.map +1 -0
  91. package/lib/commonjs/hooks/useRookVariables.js +93 -0
  92. package/lib/commonjs/hooks/useRookVariables.js.map +1 -0
  93. package/lib/commonjs/index.js +121 -0
  94. package/lib/commonjs/index.js.map +1 -0
  95. package/lib/commonjs/modules/hook/useRookAutoSync.js +261 -0
  96. package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -0
  97. package/lib/commonjs/modules/types/sendMessageBroadcast.js +2 -0
  98. package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +1 -0
  99. package/lib/commonjs/modules/utils/errors.js +12 -0
  100. package/lib/commonjs/modules/utils/errors.js.map +1 -0
  101. package/lib/commonjs/types/ActivityEvent.js +6 -0
  102. package/lib/commonjs/types/ActivityEvent.js.map +1 -0
  103. package/lib/commonjs/types/AppleHealthNutritionEvent.js +77 -0
  104. package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +1 -0
  105. package/lib/commonjs/types/AppleHealthPermissions.js +57 -0
  106. package/lib/commonjs/types/AppleHealthPermissions.js.map +1 -0
  107. package/lib/commonjs/types/AuthorizedSources.js +6 -0
  108. package/lib/commonjs/types/AuthorizedSources.js.map +1 -0
  109. package/lib/commonjs/types/BodySummary.js +6 -0
  110. package/lib/{module/types/Rook.js.map → commonjs/types/BodySummary.js.map} +1 -1
  111. package/lib/commonjs/types/DataSource.js +16 -0
  112. package/lib/commonjs/types/DataSource.js.map +1 -0
  113. package/lib/commonjs/types/DiagnosticState.js +2 -0
  114. package/lib/commonjs/types/DiagnosticState.js.map +1 -0
  115. package/lib/commonjs/types/HCMealData.js +65 -0
  116. package/lib/commonjs/types/HCMealData.js.map +1 -0
  117. package/lib/commonjs/types/HeartRateEvent.js +2 -0
  118. package/lib/commonjs/types/HeartRateEvent.js.map +1 -0
  119. package/lib/commonjs/types/PermissionsType.js +2 -0
  120. package/lib/commonjs/types/PermissionsType.js.map +1 -0
  121. package/lib/commonjs/types/PhysicalSummary.js +6 -0
  122. package/lib/commonjs/types/PhysicalSummary.js.map +1 -0
  123. package/lib/commonjs/types/SDKSources.js +13 -0
  124. package/lib/commonjs/types/SDKSources.js.map +1 -0
  125. package/lib/commonjs/types/SamsungHealthPermissions.js +23 -0
  126. package/lib/commonjs/types/SamsungHealthPermissions.js.map +1 -0
  127. package/lib/commonjs/types/SleepSummary.js +6 -0
  128. package/lib/commonjs/types/SleepSummary.js.map +1 -0
  129. package/lib/commonjs/types/SummaryTypes.js +2 -0
  130. package/lib/commonjs/types/SummaryTypes.js.map +1 -0
  131. package/lib/commonjs/types/SyncTypes.js +33 -0
  132. package/lib/commonjs/types/SyncTypes.js.map +1 -0
  133. package/lib/commonjs/types/WriteNutrition.js +18 -0
  134. package/lib/commonjs/types/WriteNutrition.js.map +1 -0
  135. package/lib/commonjs/utils/getNativeModule.js +29 -0
  136. package/lib/commonjs/utils/getNativeModule.js.map +1 -0
  137. package/lib/commonjs/utils/getRookModule.js +28 -0
  138. package/lib/commonjs/utils/getRookModule.js.map +1 -0
  139. package/{src/utils/isModuleReady.ts → lib/commonjs/utils/isModuleReady.js} +10 -4
  140. package/lib/commonjs/utils/isModuleReady.js.map +1 -0
  141. package/lib/commonjs/utils/isRunningOnAndroid.js +15 -0
  142. package/lib/commonjs/utils/isRunningOnAndroid.js.map +1 -0
  143. package/lib/commonjs/utils/isRunningOniOS.js +15 -0
  144. package/lib/commonjs/utils/isRunningOniOS.js.map +1 -0
  145. package/lib/commonjs/utils/isValidDate.js +41 -0
  146. package/lib/commonjs/utils/isValidDate.js.map +1 -0
  147. package/lib/commonjs/utils/nativeModules.js +29 -0
  148. package/lib/commonjs/utils/nativeModules.js.map +1 -0
  149. package/lib/commonjs/utils/packageInfo.js +13 -0
  150. package/lib/commonjs/utils/packageInfo.js.map +1 -0
  151. package/lib/module/context/RookSyncGateContext.js +0 -2
  152. package/lib/module/context/RookSyncGateContext.js.map +1 -1
  153. package/lib/module/context/RookSyncGateProvider.js +31 -22
  154. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  155. package/lib/module/context/RookSyncGateReducer.js +12 -4
  156. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  157. package/lib/module/context/RookSyncGateTypes.js +0 -2
  158. package/lib/module/context/index.js +2 -0
  159. package/lib/module/context/index.js.map +1 -0
  160. package/lib/module/hooks/index.js +11 -0
  161. package/lib/module/hooks/index.js.map +1 -0
  162. package/lib/module/hooks/useRookAPISources.js +16 -10
  163. package/lib/module/hooks/useRookAPISources.js.map +1 -1
  164. package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -11
  165. package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
  166. package/lib/module/hooks/useRookAppleHealth.js +10 -9
  167. package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
  168. package/lib/module/hooks/useRookConfiguration.js +34 -10
  169. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  170. package/lib/module/hooks/useRookData.js +45 -31
  171. package/lib/module/hooks/useRookData.js.map +1 -1
  172. package/lib/module/hooks/useRookHealthConnect.js +10 -9
  173. package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
  174. package/lib/module/hooks/useRookPermissions.js +49 -26
  175. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  176. package/lib/module/hooks/useRookSamsungHealth.js +20 -8
  177. package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
  178. package/lib/module/hooks/useRookSync.js +32 -23
  179. package/lib/module/hooks/useRookSync.js.map +1 -1
  180. package/lib/module/hooks/useRookVariables.js +37 -19
  181. package/lib/module/hooks/useRookVariables.js.map +1 -1
  182. package/lib/module/index.js +10 -18
  183. package/lib/module/index.js.map +1 -1
  184. package/lib/module/modules/hook/useRookAutoSync.js +40 -27
  185. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  186. package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
  187. package/lib/module/modules/utils/errors.js +0 -2
  188. package/lib/module/modules/utils/errors.js.map +1 -1
  189. package/lib/module/types/ActivityEvent.js +0 -2
  190. package/lib/module/types/AppleHealthNutritionEvent.js +70 -0
  191. package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -0
  192. package/lib/module/types/AppleHealthPermissions.js +0 -2
  193. package/lib/module/types/AppleHealthPermissions.js.map +1 -1
  194. package/lib/module/types/AuthorizedSources.js +0 -2
  195. package/lib/module/types/BodySummary.js +0 -2
  196. package/lib/module/types/DataSource.js +0 -2
  197. package/lib/module/types/DataSource.js.map +1 -1
  198. package/lib/module/types/DiagnosticState.js +2 -0
  199. package/lib/module/types/DiagnosticState.js.map +1 -0
  200. package/lib/module/types/HCMealData.js +59 -0
  201. package/lib/module/types/HCMealData.js.map +1 -0
  202. package/lib/module/types/HeartRateEvent.js +1 -1
  203. package/lib/module/types/PermissionsType.js +1 -1
  204. package/lib/module/types/PhysicalSummary.js +0 -2
  205. package/lib/module/types/SDKSources.js +0 -2
  206. package/lib/module/types/SDKSources.js.map +1 -1
  207. package/lib/module/types/SamsungHealthPermissions.js +0 -3
  208. package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
  209. package/lib/module/types/SleepSummary.js +0 -2
  210. package/lib/module/types/SummaryTypes.js +1 -1
  211. package/lib/module/types/SyncTypes.js +0 -2
  212. package/lib/module/types/SyncTypes.js.map +1 -1
  213. package/lib/module/types/WriteNutrition.js +12 -0
  214. package/lib/module/types/WriteNutrition.js.map +1 -0
  215. package/lib/module/utils/getNativeModule.js +23 -0
  216. package/lib/module/utils/getNativeModule.js.map +1 -0
  217. package/lib/module/utils/getRookModule.js +22 -0
  218. package/lib/module/utils/getRookModule.js.map +1 -0
  219. package/lib/module/utils/isModuleReady.js +0 -2
  220. package/lib/module/utils/isModuleReady.js.map +1 -1
  221. package/lib/module/utils/isRunningOnAndroid.js +0 -2
  222. package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
  223. package/lib/module/utils/isRunningOniOS.js +0 -2
  224. package/lib/module/utils/isRunningOniOS.js.map +1 -1
  225. package/lib/module/utils/isValidDate.js +20 -2
  226. package/lib/module/utils/isValidDate.js.map +1 -1
  227. package/lib/module/utils/nativeModules.js +23 -0
  228. package/lib/module/utils/nativeModules.js.map +1 -0
  229. package/lib/module/utils/packageInfo.js +7 -0
  230. package/lib/module/utils/packageInfo.js.map +1 -0
  231. package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
  232. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  233. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  234. package/lib/typescript/src/context/RookSyncGateTypes.d.ts +14 -4
  235. package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
  236. package/lib/typescript/src/context/index.d.ts +2 -0
  237. package/lib/typescript/src/context/index.d.ts.map +1 -0
  238. package/lib/typescript/src/hooks/index.d.ts +11 -0
  239. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  240. package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -1
  241. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
  242. package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
  243. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +3 -1
  244. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  245. package/lib/typescript/src/hooks/useRookData.d.ts +2 -2
  246. package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
  247. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
  248. package/lib/typescript/src/hooks/useRookPermissions.d.ts +2 -0
  249. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  250. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +6 -0
  251. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -1
  252. package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
  253. package/lib/typescript/src/hooks/useRookVariables.d.ts +2 -0
  254. package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
  255. package/lib/typescript/src/index.d.ts +8 -17
  256. package/lib/typescript/src/index.d.ts.map +1 -1
  257. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  258. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts +76 -0
  259. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -0
  260. package/lib/typescript/src/types/AuthorizedSources.d.ts +0 -11
  261. package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
  262. package/lib/typescript/src/types/DiagnosticState.d.ts +13 -0
  263. package/lib/typescript/src/types/DiagnosticState.d.ts.map +1 -0
  264. package/lib/typescript/src/types/HCMealData.d.ts +60 -0
  265. package/lib/typescript/src/types/HCMealData.d.ts.map +1 -0
  266. package/lib/typescript/src/types/HeartRateEvent.d.ts +2 -2
  267. package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -1
  268. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +0 -1
  269. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
  270. package/lib/typescript/src/types/SyncTypes.d.ts +1 -5
  271. package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
  272. package/lib/typescript/src/types/WriteNutrition.d.ts +61 -0
  273. package/lib/typescript/src/types/WriteNutrition.d.ts.map +1 -0
  274. package/lib/typescript/src/utils/getNativeModule.d.ts +10 -0
  275. package/lib/typescript/src/utils/getNativeModule.d.ts.map +1 -0
  276. package/lib/typescript/src/utils/getRookModule.d.ts +9 -0
  277. package/lib/typescript/src/utils/getRookModule.d.ts.map +1 -0
  278. package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
  279. package/lib/typescript/src/utils/isValidDate.d.ts +8 -0
  280. package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
  281. package/lib/typescript/src/utils/nativeModules.d.ts +24 -0
  282. package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -0
  283. package/lib/typescript/src/utils/packageInfo.d.ts +6 -0
  284. package/lib/typescript/src/utils/packageInfo.d.ts.map +1 -0
  285. package/package.json +98 -94
  286. package/react-native-rook-sdk.podspec +45 -0
  287. package/RNRookSdk.podspec +0 -22
  288. package/ios/Encodable.swift +0 -25
  289. package/ios/RookEntry.swift +0 -61
  290. package/ios/RookSdk-Bridging-Header.h +0 -12
  291. package/ios/boost-boost_privacy-Bridging-Header.h +0 -4
  292. package/lib/module/NativeRookSdk.js +0 -13
  293. package/lib/module/NativeRookSdk.js.map +0 -1
  294. package/lib/module/package.json +0 -1
  295. package/lib/module/types/Rook.js +0 -2
  296. package/lib/typescript/package.json +0 -1
  297. package/lib/typescript/src/NativeRookSdk.d.ts +0 -116
  298. package/lib/typescript/src/NativeRookSdk.d.ts.map +0 -1
  299. package/lib/typescript/src/types/Rook.d.ts +0 -9
  300. package/lib/typescript/src/types/Rook.d.ts.map +0 -1
  301. package/src/NativeRookSdk.ts +0 -274
  302. package/src/context/RookSyncGateProvider.tsx +0 -78
  303. package/src/context/RookSyncGateTypes.ts +0 -34
  304. package/src/hooks/useRookAndroidBackgroundSteps.ts +0 -81
  305. package/src/hooks/useRookAppleHealth.ts +0 -55
  306. package/src/hooks/useRookConfiguration.ts +0 -82
  307. package/src/hooks/useRookData.ts +0 -122
  308. package/src/hooks/useRookHealthConnect.ts +0 -59
  309. package/src/hooks/useRookPermissions.ts +0 -224
  310. package/src/hooks/useRookSamsungHealth.ts +0 -37
  311. package/src/hooks/useRookSync.ts +0 -157
  312. package/src/hooks/useRookVariables.ts +0 -77
  313. package/src/index.tsx +0 -28
  314. package/src/modules/hook/useRookAutoSync.ts +0 -305
  315. package/src/modules/types/sendMessageBroadcast.ts +0 -5
  316. package/src/modules/utils/errors.ts +0 -9
  317. package/src/types/ActivityEvent.ts +0 -159
  318. package/src/types/AppleHealthPermissions.ts +0 -49
  319. package/src/types/AuthorizedSources.ts +0 -33
  320. package/src/types/BodySummary.ts +0 -116
  321. package/src/types/DataSource.ts +0 -16
  322. package/src/types/HeartRateEvent.ts +0 -26
  323. package/src/types/PermissionsType.ts +0 -9
  324. package/src/types/PhysicalSummary.ts +0 -84
  325. package/src/types/Rook.ts +0 -8
  326. package/src/types/SDKSources.ts +0 -5
  327. package/src/types/SamsungHealthPermissions.ts +0 -16
  328. package/src/types/SleepSummary.ts +0 -66
  329. package/src/types/SummaryTypes.ts +0 -70
  330. package/src/types/SyncTypes.ts +0 -63
  331. package/src/utils/isRunningOnAndroid.ts +0 -10
  332. package/src/utils/isRunningOniOS.ts +0 -10
  333. package/src/utils/isValidDate.ts +0 -15
@@ -1,12 +1,19 @@
1
- "use strict";
2
-
3
- import RookSdk from "../NativeRookSdk.js";
1
+ import { useRef } from 'react';
4
2
  import { Platform } from 'react-native';
5
- import { isModuleReady } from "../utils/isModuleReady.js";
6
- import { isValidDate } from "../utils/isValidDate.js";
7
- import { useRookSyncGateContext } from "../context/RookSyncGateContext.js";
8
- import { SDKDataSource } from "../types/SDKSources.js";
3
+ import getNativeModule from '../utils/getNativeModule';
4
+ import { isModuleReady } from '../utils/isModuleReady';
5
+ import { isValidDate, isValidZonedDateTime } from '../utils/isValidDate';
6
+ import nativeModules from '../utils/nativeModules';
7
+ import { useRookSyncGateContext } from '../context/RookSyncGateContext';
8
+ import { SDKDataSource } from '../types/SDKSources';
9
+ import { packageInfo } from '../utils/packageInfo';
10
+ import { parseWriteNutritionToHC } from '../types/HCMealData';
11
+ import { parseWriteNutritionToAH } from '../types/AppleHealthNutritionEvent';
9
12
  export const useRookData = () => {
13
+ const rookData = useRef(getNativeModule(Platform.select({
14
+ android: () => nativeModules.android.LOCAL_DATA,
15
+ default: () => nativeModules.ios.LOCAL_DATA
16
+ })()));
10
17
  const {
11
18
  state: {
12
19
  ready
@@ -18,15 +25,15 @@ export const useRookData = () => {
18
25
  }) => {
19
26
  isModuleReady(ready);
20
27
  isValidDate(date);
21
- if (Platform.OS === 'android' && source === SDKDataSource.SAMSUNG_HEALTH) {
22
- const result = await RookSdk.getSamsungSleepSummary(date);
28
+ if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
29
+ const result = await rookData.current.getSamsungSleepSummary(date);
23
30
  return JSON.parse(result);
24
31
  }
25
- if (Platform.OS === 'android' && source === SDKDataSource.HEALTH_CONNECT) {
26
- const result = await RookSdk.getHealthConnectSleepSummary(date);
32
+ if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
33
+ const result = await rookData.current.getHealthConnectSleepSummary(date);
27
34
  return JSON.parse(result);
28
35
  }
29
- return RookSdk.getAppleHealthSleepSummary(date);
36
+ return rookData.current.getAppleHealthSleepSummary(date);
30
37
  };
31
38
  const getPhysicalSummary = async ({
32
39
  date,
@@ -34,15 +41,15 @@ export const useRookData = () => {
34
41
  }) => {
35
42
  isModuleReady(ready);
36
43
  isValidDate(date);
37
- if (Platform.OS === 'android' && source === SDKDataSource.SAMSUNG_HEALTH) {
38
- const result = await RookSdk.getSamsungPhysicalSummary(date);
44
+ if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
45
+ const result = await rookData.current.getSamsungPhysicalSummary(date);
39
46
  return JSON.parse(result);
40
47
  }
41
- if (Platform.OS === 'android' && source === SDKDataSource.HEALTH_CONNECT) {
42
- const result = await RookSdk.getHealthConnectPhysicalSummary(date);
48
+ if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
49
+ const result = await rookData.current.getHealthConnectPhysicalSummary(date);
43
50
  return JSON.parse(result);
44
51
  }
45
- return RookSdk.getAppleHealthPhysicalSummary(date);
52
+ return rookData.current.getAppleHealthPhysicalSummary(date);
46
53
  };
47
54
  const getBodySummary = async ({
48
55
  date,
@@ -50,15 +57,15 @@ export const useRookData = () => {
50
57
  }) => {
51
58
  isModuleReady(ready);
52
59
  isValidDate(date);
53
- if (Platform.OS === 'android' && source === SDKDataSource.SAMSUNG_HEALTH) {
54
- const result = await RookSdk.getSamsungBodySummary(date);
60
+ if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
61
+ const result = await rookData.current.getSamsungBodySummary(date);
55
62
  return JSON.parse(result);
56
63
  }
57
- if (Platform.OS === 'android' && source === SDKDataSource.HEALTH_CONNECT) {
58
- const result = await RookSdk.getHealthConnectBodySummary(date);
64
+ if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
65
+ const result = await rookData.current.getHealthConnectBodySummary(date);
59
66
  return JSON.parse(result);
60
67
  }
61
- return RookSdk.getAppleHealthBodySummary(date);
68
+ return rookData.current.getAppleHealthBodySummary(date);
62
69
  };
63
70
  const getActivityEvents = async ({
64
71
  date,
@@ -66,19 +73,26 @@ export const useRookData = () => {
66
73
  }) => {
67
74
  isModuleReady(ready);
68
75
  isValidDate(date);
69
- if (Platform.OS === 'android' && source === SDKDataSource.SAMSUNG_HEALTH) {
70
- const result = await RookSdk.getSamsungActivityEvents(date);
76
+ if (packageInfo.isAndroid && source === SDKDataSource.SAMSUNG_HEALTH) {
77
+ const result = await rookData.current.getSamsungActivityEvents(date);
71
78
  return JSON.parse(result);
72
79
  }
73
- if (Platform.OS === 'android' && source === SDKDataSource.HEALTH_CONNECT) {
74
- const result = await RookSdk.getHealthConnectActivityEvents(date);
80
+ if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
81
+ const result = await rookData.current.getHealthConnectActivityEvents(date);
75
82
  return JSON.parse(result);
76
83
  }
77
- return RookSdk.getAppleHealthActivityEvents(date);
84
+ return rookData.current.getAppleHealthActivityEvents(date);
78
85
  };
79
- const getTodayHeartRate = async source => {
80
- if (Platform.OS !== 'android' && source === SDKDataSource.APPLE_HEALTH) {
81
- return RookSdk.getTodayHeartRate();
86
+ const writeNutritionData = async (data, source) => {
87
+ isModuleReady(ready);
88
+ isValidZonedDateTime(data.date);
89
+ if (packageInfo.isAndroid && source === SDKDataSource.HEALTH_CONNECT) {
90
+ const event = parseWriteNutritionToHC(data);
91
+ return rookData.current.writeHealthConnectMealData(event);
92
+ }
93
+ if (!packageInfo.isAndroid && source === SDKDataSource.APPLE_HEALTH) {
94
+ const event = parseWriteNutritionToAH(data);
95
+ return rookData.current.writeAppleHealthMealData(event);
82
96
  }
83
97
  throw new Error('Please check the data source');
84
98
  };
@@ -88,7 +102,7 @@ export const useRookData = () => {
88
102
  getPhysicalSummary,
89
103
  getBodySummary,
90
104
  getActivityEvents,
91
- getTodayHeartRate
105
+ writeNutritionData
92
106
  };
93
107
  };
94
108
  //# sourceMappingURL=useRookData.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RookSdk","Platform","isModuleReady","isValidDate","useRookSyncGateContext","SDKDataSource","useRookData","state","ready","getSleepSummary","date","source","OS","SAMSUNG_HEALTH","result","getSamsungSleepSummary","JSON","parse","HEALTH_CONNECT","getHealthConnectSleepSummary","getAppleHealthSleepSummary","getPhysicalSummary","getSamsungPhysicalSummary","getHealthConnectPhysicalSummary","getAppleHealthPhysicalSummary","getBodySummary","getSamsungBodySummary","getHealthConnectBodySummary","getAppleHealthBodySummary","getActivityEvents","getSamsungActivityEvents","getHealthConnectActivityEvents","getAppleHealthActivityEvents","getTodayHeartRate","APPLE_HEALTH","Error"],"sourceRoot":"../../../src","sources":["hooks/useRookData.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","Platform","getNativeModule","isModuleReady","isValidDate","isValidZonedDateTime","nativeModules","useRookSyncGateContext","SDKDataSource","packageInfo","parseWriteNutritionToHC","parseWriteNutritionToAH","useRookData","rookData","select","android","LOCAL_DATA","default","ios","state","ready","getSleepSummary","date","source","isAndroid","SAMSUNG_HEALTH","result","current","getSamsungSleepSummary","JSON","parse","HEALTH_CONNECT","getHealthConnectSleepSummary","getAppleHealthSleepSummary","getPhysicalSummary","getSamsungPhysicalSummary","getHealthConnectPhysicalSummary","getAppleHealthPhysicalSummary","getBodySummary","getSamsungBodySummary","getHealthConnectBodySummary","getAppleHealthBodySummary","getActivityEvents","getSamsungActivityEvents","getHealthConnectActivityEvents","getAppleHealthActivityEvents","writeNutritionData","data","event","writeHealthConnectMealData","APPLE_HEALTH","writeAppleHealthMealData","Error"],"sourceRoot":"../../../src","sources":["hooks/useRookData.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,11 @@
1
- "use strict";
2
-
3
- import RookSdk from "../NativeRookSdk.js";
4
- import { useRookSyncGateContext } from "../context/RookSyncGateContext.js";
5
- import { isModuleReady } from "../utils/isModuleReady.js";
6
- import isRunningOnAndroid from "../utils/isRunningOnAndroid.js";
1
+ import { useRef } from 'react';
2
+ import { useRookSyncGateContext } from '../context/RookSyncGateContext';
3
+ import getNativeModule from '../utils/getNativeModule';
4
+ import { isModuleReady } from '../utils/isModuleReady';
5
+ import isRunningOnAndroid from '../utils/isRunningOnAndroid';
6
+ import nativeModules from '../utils/nativeModules';
7
7
  export const useRookHealthConnect = () => {
8
+ const rookSync = useRef(getNativeModule(nativeModules.android.BACKGROUND));
8
9
  const {
9
10
  state: {
10
11
  ready,
@@ -27,7 +28,7 @@ export const useRookHealthConnect = () => {
27
28
  const scheduleBackgroundSync = () => {
28
29
  isRunningOnAndroid();
29
30
  isModuleReady(ready);
30
- return RookSdk.scheduleBackgroundSync(enableLogs);
31
+ return rookSync.current.scheduleBackgroundSync(enableLogs);
31
32
  };
32
33
 
33
34
  /**
@@ -44,12 +45,12 @@ export const useRookHealthConnect = () => {
44
45
  const cancelBackgroundSync = () => {
45
46
  isRunningOnAndroid();
46
47
  isModuleReady(ready);
47
- return RookSdk.cancelBackgroundSync();
48
+ return rookSync.current.cancelBackgroundSync();
48
49
  };
49
50
  const isBackgroundSyncEnabled = () => {
50
51
  isRunningOnAndroid();
51
52
  isModuleReady(ready);
52
- return RookSdk.isBackgroundSyncEnabled();
53
+ return rookSync.current.isBackgroundSyncEnabled();
53
54
  };
54
55
  return {
55
56
  ready,
@@ -1 +1 @@
1
- {"version":3,"names":["RookSdk","useRookSyncGateContext","isModuleReady","isRunningOnAndroid","useRookHealthConnect","state","ready","enableLogs","scheduleBackgroundSync","cancelBackgroundSync","isBackgroundSyncEnabled"],"sourceRoot":"../../../src","sources":["hooks/useRookHealthConnect.ts"],"mappings":";;AAAA,OAAOA,OAAO,MAAM,qBAAkB;AACtC,SAASC,sBAAsB,QAAQ,mCAAgC;AACvE,SAASC,aAAa,QAAQ,2BAAwB;AACtD,OAAOC,kBAAkB,MAAM,gCAA6B;AAE5D,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAM;IACJC,KAAK,EAAE;MAAEC,KAAK;MAAEC;IAAW;EAC7B,CAAC,GAAGN,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMO,sBAAsB,GAAGA,CAAA,KAAwB;IACrDL,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACI,KAAK,CAAC;IACpB,OAAON,OAAO,CAACQ,sBAAsB,CAACD,UAAU,CAAC;EACnD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAME,oBAAoB,GAAGA,CAAA,KAAwB;IACnDN,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACI,KAAK,CAAC;IACpB,OAAON,OAAO,CAACS,oBAAoB,CAAC,CAAC;EACvC,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAwB;IACtDP,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACI,KAAK,CAAC;IAEpB,OAAON,OAAO,CAACU,uBAAuB,CAAC,CAAC;EAC1C,CAAC;EAED,OAAO;IACLJ,KAAK;IACLE,sBAAsB;IACtBC,oBAAoB;IACpBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useRef","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","nativeModules","useRookHealthConnect","rookSync","android","BACKGROUND","state","ready","enableLogs","scheduleBackgroundSync","current","cancelBackgroundSync","isBackgroundSyncEnabled"],"sourceRoot":"../../../src","sources":["hooks/useRookHealthConnect.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,kBAAkB,MAAM,6BAA6B;AAC5D,OAAOC,aAAa,MAAM,wBAAwB;AAElD,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,QAAQ,GAAGP,MAAM,CAACE,eAAe,CAACG,aAAa,CAACG,OAAO,CAACC,UAAU,CAAC,CAAC;EAC1E,MAAM;IACJC,KAAK,EAAE;MAAEC,KAAK;MAAEC;IAAW;EAC7B,CAAC,GAAGX,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMY,sBAAsB,GAAGA,CAAA,KAAwB;IACrDT,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACQ,KAAK,CAAC;IACpB,OAAOJ,QAAQ,CAACO,OAAO,CAACD,sBAAsB,CAACD,UAAU,CAAC;EAC5D,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMG,oBAAoB,GAAGA,CAAA,KAAwB;IACnDX,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACQ,KAAK,CAAC;IACpB,OAAOJ,QAAQ,CAACO,OAAO,CAACC,oBAAoB,CAAC,CAAC;EAChD,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAAA,KAAwB;IACtDZ,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACQ,KAAK,CAAC;IAEpB,OAAOJ,QAAQ,CAACO,OAAO,CAACE,uBAAuB,CAAC,CAAC;EACnD,CAAC;EAED,OAAO;IACLL,KAAK;IACLE,sBAAsB;IACtBE,oBAAoB;IACpBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,12 +1,13 @@
1
- "use strict";
2
-
3
- import RookSdk from "../NativeRookSdk.js";
4
- import { useRookSyncGateContext } from "../context/RookSyncGateContext.js";
5
- import { isModuleReady } from "../utils/isModuleReady.js";
6
- import isRunningOnAndroid from "../utils/isRunningOnAndroid.js";
7
- import { isRunningOniOS } from "../utils/isRunningOniOS.js";
8
- import { SamsungHealthPermission } from "../types/SamsungHealthPermissions.js";
9
- import { AppleHealthPermission } from "../types/AppleHealthPermissions.js";
1
+ import { useRef } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import { useRookSyncGateContext } from '../context/RookSyncGateContext';
4
+ import getNativeModule from '../utils/getNativeModule';
5
+ import { isModuleReady } from '../utils/isModuleReady';
6
+ import isRunningOnAndroid from '../utils/isRunningOnAndroid';
7
+ import { isRunningOniOS } from '../utils/isRunningOniOS';
8
+ import nativeModules from '../utils/nativeModules';
9
+ import { SamsungHealthPermission } from '../types/SamsungHealthPermissions';
10
+ import { AppleHealthPermission } from '../types/AppleHealthPermissions';
10
11
  /**
11
12
  * The `useRookPermissions` hook manages permissions for accessing Apple Health and Health Connect data,
12
13
  * including requesting various types of permissions and checking their status.
@@ -15,6 +16,10 @@ import { AppleHealthPermission } from "../types/AppleHealthPermissions.js";
15
16
  * following properties and functions:
16
17
  */
17
18
  export const useRookPermissions = () => {
19
+ const rookSync = useRef(getNativeModule(Platform.select({
20
+ android: () => nativeModules.android.PERMISSIONS,
21
+ default: () => nativeModules.ios.PERMISSIONS
22
+ })()));
18
23
  const {
19
24
  state: {
20
25
  ready
@@ -30,12 +35,12 @@ export const useRookPermissions = () => {
30
35
  const checkHealthConnectAvailability = () => {
31
36
  isModuleReady(ready);
32
37
  isRunningOnAndroid();
33
- return RookSdk.checkHealthConnectAvailability();
38
+ return rookSync.current.checkHealthConnectAvailability();
34
39
  };
35
40
  const checkSamsungAvailability = () => {
36
41
  isModuleReady(ready);
37
42
  isRunningOnAndroid();
38
- return RookSdk.checkSamsungAvailability();
43
+ return rookSync.current.checkSamsungAvailability();
39
44
  };
40
45
 
41
46
  /**
@@ -46,7 +51,7 @@ export const useRookPermissions = () => {
46
51
  const healthConnectHasPermissions = () => {
47
52
  isRunningOnAndroid();
48
53
  isModuleReady(ready);
49
- return RookSdk.healthConnectHasPermissions();
54
+ return rookSync.current.checkHealthConnectPermissions();
50
55
  };
51
56
 
52
57
  /**
@@ -57,7 +62,7 @@ export const useRookPermissions = () => {
57
62
  const healthConnectHasPartialPermissions = () => {
58
63
  isRunningOnAndroid();
59
64
  isModuleReady(ready);
60
- return RookSdk.healthConnectHasPartialPermissions();
65
+ return rookSync.current.checkHealthConnectPermissionsPartially();
61
66
  };
62
67
 
63
68
  /**
@@ -68,17 +73,17 @@ export const useRookPermissions = () => {
68
73
  const appleHealthHasPermissions = param => {
69
74
  isRunningOniOS();
70
75
  isModuleReady(ready);
71
- return RookSdk.appleHealthHasPermissions(param);
76
+ return rookSync.current.checkPermissionsStatus(param ? param : null);
72
77
  };
73
78
  const samsungHealthHasPermissions = () => {
74
79
  isRunningOnAndroid();
75
80
  isModuleReady(ready);
76
- return RookSdk.samsungHealthHasPermissions();
81
+ return rookSync.current.checkSamsungHealthPermissions();
77
82
  };
78
83
  const samsungHealthHasPartialPermissions = () => {
79
84
  isRunningOnAndroid();
80
85
  isModuleReady(ready);
81
- return RookSdk.samsungHealthHasPartialPermissions();
86
+ return rookSync.current.checkSamsungHealthPermissionsPartially();
82
87
  };
83
88
 
84
89
  /**
@@ -87,13 +92,13 @@ export const useRookPermissions = () => {
87
92
  const requestHealthConnectPermissions = async () => {
88
93
  isRunningOnAndroid();
89
94
  isModuleReady(ready);
90
- return RookSdk.requestHealthConnectPermissions();
95
+ return rookSync.current.requestHealthConnectPermissions();
91
96
  };
92
97
  const requestAppleHealthPermissions = async permissions => {
93
98
  isModuleReady(ready);
94
99
  isRunningOniOS();
95
100
  const bridge = permissions || Object.values(AppleHealthPermission);
96
- const result = await RookSdk.requestAppleHealthPermissions(bridge);
101
+ const result = await rookSync.current.requestAppleHealthPermissions(bridge);
97
102
  dispatch({
98
103
  type: 'SET_PERMISSIONS'
99
104
  });
@@ -103,9 +108,14 @@ export const useRookPermissions = () => {
103
108
  isRunningOnAndroid();
104
109
  isModuleReady(ready);
105
110
  const bridge = permissions || Object.values(SamsungHealthPermission);
106
- const result = await RookSdk.requestSamsungHealthPermissions(bridge);
111
+ const result = await rookSync.current.requestSamsungPermissions(bridge);
107
112
  return result;
108
113
  };
114
+ const requestWriteNutritionPermission = async () => {
115
+ isRunningOniOS();
116
+ isModuleReady(ready);
117
+ return rookSync.current.requestWriteNutritionPermission();
118
+ };
109
119
 
110
120
  /**
111
121
  * The function `openAppleHealthSettings` opens the apple health settings
@@ -113,7 +123,7 @@ export const useRookPermissions = () => {
113
123
  const openAppleHealthSettings = async () => {
114
124
  isRunningOniOS();
115
125
  isModuleReady(ready);
116
- return RookSdk.openAppleHealthSettings();
126
+ return rookSync.current.openAppleHealthSettings();
117
127
  };
118
128
 
119
129
  /**
@@ -122,7 +132,7 @@ export const useRookPermissions = () => {
122
132
  const openHealthConnectSettings = async () => {
123
133
  isRunningOnAndroid();
124
134
  isModuleReady(ready);
125
- return RookSdk.openHealthConnectSettings();
135
+ return rookSync.current.openHealthConnectSettings();
126
136
  };
127
137
 
128
138
  /**
@@ -133,7 +143,7 @@ export const useRookPermissions = () => {
133
143
  const requestAndroidBackgroundPermissions = () => {
134
144
  isRunningOnAndroid();
135
145
  isModuleReady(ready);
136
- return RookSdk.requestAndroidBackgroundPermissions();
146
+ return rookSync.current.requestAndroidBackgroundPermissions();
137
147
  };
138
148
 
139
149
  /**
@@ -145,17 +155,28 @@ export const useRookPermissions = () => {
145
155
  const androidHasBackgroundPermissions = () => {
146
156
  isRunningOnAndroid();
147
157
  isModuleReady(ready);
148
- return RookSdk.androidHasBackgroundPermissions();
158
+ return rookSync.current.hasAndroidBackgroundPermissions();
149
159
  };
150
160
  const checkHealthConnectBackgroundReadStatus = () => {
151
161
  isRunningOnAndroid();
152
162
  isModuleReady(ready);
153
- return RookSdk.checkHealthConnectBackgroundReadStatus();
163
+ return rookSync.current.checkHealthConnectBackgroundReadStatus();
164
+ };
165
+
166
+ /**
167
+ * The function `shouldRequestPermissions` checks if permissions should be requested.
168
+ * @returns The function `shouldRequestPermissions` returns a `Promise` that resolves to a `boolean`
169
+ * value.
170
+ */
171
+ const shouldRequestAndroidBackgroundPermissions = () => {
172
+ isRunningOnAndroid();
173
+ isModuleReady(ready);
174
+ return rookSync.current.shouldRequestAndroidBackgroundPermissions();
154
175
  };
155
176
  const revokeHealthConnectPermissions = () => {
156
177
  isRunningOnAndroid();
157
178
  isModuleReady(ready);
158
- return RookSdk.revokeHealthConnectPermissions();
179
+ return rookSync.current.revokeHealthConnectPermissions();
159
180
  };
160
181
  return {
161
182
  ready,
@@ -172,9 +193,11 @@ export const useRookPermissions = () => {
172
193
  requestAppleHealthPermissions,
173
194
  requestHealthConnectPermissions,
174
195
  requestSamsungHealthPermissions,
196
+ requestWriteNutritionPermission,
175
197
  samsungHealthHasPartialPermissions,
176
198
  samsungHealthHasPermissions,
177
- revokeHealthConnectPermissions
199
+ revokeHealthConnectPermissions,
200
+ shouldRequestAndroidBackgroundPermissions
178
201
  };
179
202
  };
180
203
  //# sourceMappingURL=useRookPermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RookSdk","useRookSyncGateContext","isModuleReady","isRunningOnAndroid","isRunningOniOS","SamsungHealthPermission","AppleHealthPermission","useRookPermissions","state","ready","dispatch","checkHealthConnectAvailability","checkSamsungAvailability","healthConnectHasPermissions","healthConnectHasPartialPermissions","appleHealthHasPermissions","param","samsungHealthHasPermissions","samsungHealthHasPartialPermissions","requestHealthConnectPermissions","requestAppleHealthPermissions","permissions","bridge","Object","values","result","type","requestSamsungHealthPermissions","openAppleHealthSettings","openHealthConnectSettings","requestAndroidBackgroundPermissions","androidHasBackgroundPermissions","checkHealthConnectBackgroundReadStatus","revokeHealthConnectPermissions"],"sourceRoot":"../../../src","sources":["hooks/useRookPermissions.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","Platform","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","isRunningOniOS","nativeModules","SamsungHealthPermission","AppleHealthPermission","useRookPermissions","rookSync","select","android","PERMISSIONS","default","ios","state","ready","dispatch","checkHealthConnectAvailability","current","checkSamsungAvailability","healthConnectHasPermissions","checkHealthConnectPermissions","healthConnectHasPartialPermissions","checkHealthConnectPermissionsPartially","appleHealthHasPermissions","param","checkPermissionsStatus","samsungHealthHasPermissions","checkSamsungHealthPermissions","samsungHealthHasPartialPermissions","checkSamsungHealthPermissionsPartially","requestHealthConnectPermissions","requestAppleHealthPermissions","permissions","bridge","Object","values","result","type","requestSamsungHealthPermissions","requestSamsungPermissions","requestWriteNutritionPermission","openAppleHealthSettings","openHealthConnectSettings","requestAndroidBackgroundPermissions","androidHasBackgroundPermissions","hasAndroidBackgroundPermissions","checkHealthConnectBackgroundReadStatus","shouldRequestAndroidBackgroundPermissions","revokeHealthConnectPermissions"],"sourceRoot":"../../../src","sources":["hooks/useRookPermissions.ts"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,22 @@
1
- "use strict";
1
+ import { useRef } from 'react';
2
+ import { Platform } from 'react-native';
3
+ import { useRookSyncGateContext } from '../context/RookSyncGateContext';
4
+ import getNativeModule from '../utils/getNativeModule';
5
+ import { isModuleReady } from '../utils/isModuleReady';
6
+ import isRunningOnAndroid from '../utils/isRunningOnAndroid';
7
+ import nativeModules from '../utils/nativeModules';
2
8
 
3
- import RookSdk from "../NativeRookSdk.js";
4
- import { useRookSyncGateContext } from "../context/RookSyncGateContext.js";
5
- import { isModuleReady } from "../utils/isModuleReady.js";
6
- import isRunningOnAndroid from "../utils/isRunningOnAndroid.js";
9
+ /**
10
+ * The `useRookSamsungHealth` hook provides various asynchronous methods for managing the configuration
11
+ * of the samsung health integration
12
+ * @returns The `useRookSamsungHealth` function returns an object containing that allow the user to configure
13
+ * the SDK
14
+ */
7
15
  export const useRookSamsungHealth = () => {
16
+ const rookSync = useRef(getNativeModule(Platform.select({
17
+ android: () => nativeModules.android.SYNC,
18
+ default: () => nativeModules.ios.CONFIGURATION
19
+ })()));
8
20
  const {
9
21
  state: {
10
22
  ready
@@ -13,17 +25,17 @@ export const useRookSamsungHealth = () => {
13
25
  const enableSamsungSync = async () => {
14
26
  isRunningOnAndroid();
15
27
  isModuleReady(ready);
16
- return RookSdk.enableSamsungSync();
28
+ return rookSync.current.enableSamsungSync();
17
29
  };
18
30
  const isSamsungSyncEnabled = async () => {
19
31
  isRunningOnAndroid();
20
32
  isModuleReady(ready);
21
- return RookSdk.isSamsungSyncEnabled();
33
+ return rookSync.current.isSamsungSyncEnabled();
22
34
  };
23
35
  const disableSamsungSync = async () => {
24
36
  isRunningOnAndroid();
25
37
  isModuleReady(ready);
26
- return RookSdk.disableSamsungSync();
38
+ return rookSync.current.disableSamsungSync();
27
39
  };
28
40
  return {
29
41
  ready,
@@ -1 +1 @@
1
- {"version":3,"names":["RookSdk","useRookSyncGateContext","isModuleReady","isRunningOnAndroid","useRookSamsungHealth","state","ready","enableSamsungSync","isSamsungSyncEnabled","disableSamsungSync"],"sourceRoot":"../../../src","sources":["hooks/useRookSamsungHealth.ts"],"mappings":";;AAAA,OAAOA,OAAO,MAAM,qBAAkB;AACtC,SAASC,sBAAsB,QAAQ,mCAAgC;AACvE,SAASC,aAAa,QAAQ,2BAAwB;AACtD,OAAOC,kBAAkB,MAAM,gCAA6B;AAE5D,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGL,sBAAsB,CAAC,CAAC;EAE5B,MAAMM,iBAAiB,GAAG,MAAAA,CAAA,KAA8B;IACtDJ,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACI,KAAK,CAAC;IAEpB,OAAON,OAAO,CAACO,iBAAiB,CAAC,CAAC;EACpC,CAAC;EAED,MAAMC,oBAAoB,GAAG,MAAAA,CAAA,KAA8B;IACzDL,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACI,KAAK,CAAC;IAEpB,OAAON,OAAO,CAACQ,oBAAoB,CAAC,CAAC;EACvC,CAAC;EAED,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAA8B;IACvDN,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACI,KAAK,CAAC;IAEpB,OAAON,OAAO,CAACS,kBAAkB,CAAC,CAAC;EACrC,CAAC;EACD,OAAO;IACLH,KAAK;IACLC,iBAAiB;IACjBE,kBAAkB;IAClBD;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useRef","Platform","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","nativeModules","useRookSamsungHealth","rookSync","select","android","SYNC","default","ios","CONFIGURATION","state","ready","enableSamsungSync","current","isSamsungSyncEnabled","disableSamsungSync"],"sourceRoot":"../../../src","sources":["hooks/useRookSamsungHealth.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,kBAAkB,MAAM,6BAA6B;AAC5D,OAAOC,aAAa,MAAM,wBAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,QAAQ,GAAGR,MAAM,CACrBG,eAAe,CACbF,QAAQ,CAACQ,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAMJ,aAAa,CAACI,OAAO,CAACC,IAAI;IACzCC,OAAO,EAAEA,CAAA,KAAMN,aAAa,CAACO,GAAG,CAACC;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EACD,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGd,sBAAsB,CAAC,CAAC;EAE5B,MAAMe,iBAAiB,GAAG,MAAAA,CAAA,KAA8B;IACtDZ,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACY,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACU,OAAO,CAACD,iBAAiB,CAAC,CAAC;EAC7C,CAAC;EAED,MAAME,oBAAoB,GAAG,MAAAA,CAAA,KAA8B;IACzDd,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACY,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACU,OAAO,CAACC,oBAAoB,CAAC,CAAC;EAChD,CAAC;EAED,MAAMC,kBAAkB,GAAG,MAAAA,CAAA,KAA8B;IACvDf,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACY,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACU,OAAO,CAACE,kBAAkB,CAAC,CAAC;EAC9C,CAAC;EAED,OAAO;IACLJ,KAAK;IACLC,iBAAiB;IACjBG,kBAAkB;IAClBD;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,12 +1,17 @@
1
- "use strict";
2
-
3
- import RookSdk from "../NativeRookSdk.js";
1
+ import { useRef } from 'react';
4
2
  import { Platform } from 'react-native';
5
- import { isModuleReady } from "../utils/isModuleReady.js";
6
- import { isValidDate } from "../utils/isValidDate.js";
7
- import { SDKDataSource } from "../types/SDKSources.js";
8
- import { useRookSyncGateContext } from "../context/RookSyncGateContext.js";
3
+ import getNativeModule from '../utils/getNativeModule';
4
+ import { isModuleReady } from '../utils/isModuleReady';
5
+ import { isValidDate } from '../utils/isValidDate';
6
+ import nativeModules from '../utils/nativeModules';
7
+ import { SDKDataSource } from '../types/SDKSources';
8
+ import { useRookSyncGateContext } from '../context/RookSyncGateContext';
9
+ import { packageInfo } from '../utils/packageInfo';
9
10
  export const useRookSync = () => {
11
+ const rookSync = useRef(getNativeModule(Platform.select({
12
+ android: () => nativeModules.android.SYNC,
13
+ default: () => nativeModules.ios.MANUAL_SYNC
14
+ })()));
10
15
  const {
11
16
  state: {
12
17
  ready,
@@ -33,9 +38,9 @@ export const useRookSync = () => {
33
38
  });
34
39
  };
35
40
  const syncWithOutParams = async callback => {
36
- if (Platform.OS === 'android') {
37
- const hcResult = await convertToPromise([enableLogs], RookSdk.sync);
38
- RookSdk.shSync(enableLogs, (err, result) => {
41
+ if (packageInfo.isAndroid) {
42
+ const hcResult = await convertToPromise([enableLogs], rookSync.current.sync);
43
+ rookSync.current.shSync(enableLogs, (err, result) => {
39
44
  callback({
40
45
  healthConnect: {
41
46
  status: hcResult.result,
@@ -49,7 +54,7 @@ export const useRookSync = () => {
49
54
  });
50
55
  return;
51
56
  }
52
- RookSdk.sync((error, result) => {
57
+ rookSync.current.sync((error, result) => {
53
58
  callback({
54
59
  appleHealth: {
55
60
  status: result,
@@ -66,22 +71,24 @@ export const useRookSync = () => {
66
71
  summary,
67
72
  date
68
73
  } = params;
69
- const isAndroid = Platform.OS === 'android';
74
+ const {
75
+ isAndroid
76
+ } = packageInfo;
70
77
  const args = [date];
71
- let bridgeMethod = RookSdk.syncByDate;
72
- let shBridgeMethod = RookSdk.shSyncByDate;
78
+ let bridgeMethod = 'syncByDate';
79
+ let shBridgeMethod = 'shSyncByDate';
73
80
  if (summary) {
74
81
  args.unshift(summary);
75
- bridgeMethod = RookSdk.syncByDefinition;
76
- shBridgeMethod = RookSdk.shSyncByDefinition;
82
+ bridgeMethod = 'syncByDefinition';
83
+ shBridgeMethod = 'shSyncByDefinition';
77
84
  }
78
85
  const shouldSyncSO = sources.includes(SDKDataSource.APPLE_HEALTH) || sources.includes(SDKDataSource.HEALTH_CONNECT);
79
86
  const shouldSyncSH = sources.includes(SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
80
87
  if (shouldSyncSO) {
81
- promisesToRun.push(convertToPromise(args, bridgeMethod));
88
+ promisesToRun.push(convertToPromise(args, rookSync.current[bridgeMethod]));
82
89
  }
83
90
  if (shouldSyncSH) {
84
- promisesToRun.push(convertToPromise(args, shBridgeMethod));
91
+ promisesToRun.push(convertToPromise(args, rookSync.current[shBridgeMethod]));
85
92
  }
86
93
  const results = await Promise.all(promisesToRun);
87
94
  const SOResult = shouldSyncSO ? results.shift() : null;
@@ -110,16 +117,18 @@ export const useRookSync = () => {
110
117
  event,
111
118
  sources
112
119
  } = params;
113
- const isAndroid = Platform.OS === 'android';
120
+ const {
121
+ isAndroid
122
+ } = packageInfo;
114
123
  const promisesToRun = [];
115
- const parsedEvent = isAndroid ? event : event.toLowerCase();
124
+ const parsedEvent = packageInfo.isAndroid ? event : event.toLowerCase();
116
125
  const shouldSyncSO = sources.includes(SDKDataSource.APPLE_HEALTH) || sources.includes(SDKDataSource.HEALTH_CONNECT);
117
126
  const shouldSyncSH = sources.includes(SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
118
127
  if (shouldSyncSO) {
119
- if (['hydration', 'nutrition'].includes(params.event) && !isAndroid) throw new Error(`${params.event} is not available on iOS`);
120
- promisesToRun.push(RookSdk.syncEvent(date, parsedEvent));
128
+ if (['hydration', 'nutrition'].includes(params.event) && !packageInfo.isAndroid) throw new Error(`${params.event} is not available on iOS`);
129
+ promisesToRun.push(rookSync.current.syncEvent(date, parsedEvent));
121
130
  }
122
- if (shouldSyncSH) promisesToRun.push(RookSdk.shSyncEvent(date, event));
131
+ if (shouldSyncSH) promisesToRun.push(rookSync.current.shSyncEvent(date, event));
123
132
  await Promise.all(promisesToRun);
124
133
  return true;
125
134
  };