react-native-rook-sdk 4.0.0-beta.1 → 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 (332) 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/{module/NativeRookSdk.js → commonjs/types/AppleHealthPermissions.js} +7 -45
  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.map +0 -1
  293. package/lib/module/package.json +0 -1
  294. package/lib/module/types/Rook.js +0 -2
  295. package/lib/typescript/package.json +0 -1
  296. package/lib/typescript/src/NativeRookSdk.d.ts +0 -190
  297. package/lib/typescript/src/NativeRookSdk.d.ts.map +0 -1
  298. package/lib/typescript/src/types/Rook.d.ts +0 -9
  299. package/lib/typescript/src/types/Rook.d.ts.map +0 -1
  300. package/src/NativeRookSdk.ts +0 -281
  301. package/src/context/RookSyncGateProvider.tsx +0 -78
  302. package/src/context/RookSyncGateTypes.ts +0 -34
  303. package/src/hooks/useRookAndroidBackgroundSteps.ts +0 -81
  304. package/src/hooks/useRookAppleHealth.ts +0 -55
  305. package/src/hooks/useRookConfiguration.ts +0 -82
  306. package/src/hooks/useRookData.ts +0 -122
  307. package/src/hooks/useRookHealthConnect.ts +0 -59
  308. package/src/hooks/useRookPermissions.ts +0 -224
  309. package/src/hooks/useRookSamsungHealth.ts +0 -37
  310. package/src/hooks/useRookSync.ts +0 -157
  311. package/src/hooks/useRookVariables.ts +0 -77
  312. package/src/index.tsx +0 -28
  313. package/src/modules/hook/useRookAutoSync.ts +0 -305
  314. package/src/modules/types/sendMessageBroadcast.ts +0 -5
  315. package/src/modules/utils/errors.ts +0 -9
  316. package/src/types/ActivityEvent.ts +0 -159
  317. package/src/types/AppleHealthPermissions.ts +0 -49
  318. package/src/types/AuthorizedSources.ts +0 -33
  319. package/src/types/BodySummary.ts +0 -116
  320. package/src/types/DataSource.ts +0 -16
  321. package/src/types/HeartRateEvent.ts +0 -26
  322. package/src/types/PermissionsType.ts +0 -9
  323. package/src/types/PhysicalSummary.ts +0 -84
  324. package/src/types/Rook.ts +0 -8
  325. package/src/types/SDKSources.ts +0 -5
  326. package/src/types/SamsungHealthPermissions.ts +0 -16
  327. package/src/types/SleepSummary.ts +0 -66
  328. package/src/types/SummaryTypes.ts +0 -70
  329. package/src/types/SyncTypes.ts +0 -63
  330. package/src/utils/isRunningOnAndroid.ts +0 -10
  331. package/src/utils/isRunningOniOS.ts +0 -10
  332. package/src/utils/isValidDate.ts +0 -15
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRookSync = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _getNativeModule = _interopRequireDefault(require("../utils/getNativeModule"));
10
+ var _isModuleReady = require("../utils/isModuleReady");
11
+ var _isValidDate = require("../utils/isValidDate");
12
+ var _nativeModules = _interopRequireDefault(require("../utils/nativeModules"));
13
+ var _SDKSources = require("../types/SDKSources");
14
+ var _RookSyncGateContext = require("../context/RookSyncGateContext");
15
+ var _packageInfo = require("../utils/packageInfo");
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ const useRookSync = () => {
18
+ const rookSync = (0, _react.useRef)((0, _getNativeModule.default)(_reactNative.Platform.select({
19
+ android: () => _nativeModules.default.android.SYNC,
20
+ default: () => _nativeModules.default.ios.MANUAL_SYNC
21
+ })()));
22
+ const {
23
+ state: {
24
+ ready,
25
+ enableLogs
26
+ }
27
+ } = (0, _RookSyncGateContext.useRookSyncGateContext)();
28
+ const createResultPayload = result => {
29
+ if (!result) {
30
+ return undefined;
31
+ }
32
+ return {
33
+ status: result.result,
34
+ error: result.error
35
+ };
36
+ };
37
+ const convertToPromise = (params, toPromise) => {
38
+ return new Promise(resolve => {
39
+ toPromise(...params, (error, result) => {
40
+ resolve({
41
+ error,
42
+ result
43
+ });
44
+ });
45
+ });
46
+ };
47
+ const syncWithOutParams = async callback => {
48
+ if (_packageInfo.packageInfo.isAndroid) {
49
+ const hcResult = await convertToPromise([enableLogs], rookSync.current.sync);
50
+ rookSync.current.shSync(enableLogs, (err, result) => {
51
+ callback({
52
+ healthConnect: {
53
+ status: hcResult.result,
54
+ error: hcResult.error
55
+ },
56
+ samsungHealth: {
57
+ status: result,
58
+ error: err
59
+ }
60
+ });
61
+ });
62
+ return;
63
+ }
64
+ rookSync.current.sync((error, result) => {
65
+ callback({
66
+ appleHealth: {
67
+ status: result,
68
+ error
69
+ }
70
+ });
71
+ });
72
+ };
73
+ const syncWithParams = async (params, callback) => {
74
+ (0, _isValidDate.isValidDate)(params.date);
75
+ const promisesToRun = [];
76
+ const {
77
+ sources,
78
+ summary,
79
+ date
80
+ } = params;
81
+ const {
82
+ isAndroid
83
+ } = _packageInfo.packageInfo;
84
+ const args = [date];
85
+ let bridgeMethod = 'syncByDate';
86
+ let shBridgeMethod = 'shSyncByDate';
87
+ if (summary) {
88
+ args.unshift(summary);
89
+ bridgeMethod = 'syncByDefinition';
90
+ shBridgeMethod = 'shSyncByDefinition';
91
+ }
92
+ const shouldSyncSO = sources.includes(_SDKSources.SDKDataSource.APPLE_HEALTH) || sources.includes(_SDKSources.SDKDataSource.HEALTH_CONNECT);
93
+ const shouldSyncSH = sources.includes(_SDKSources.SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
94
+ if (shouldSyncSO) {
95
+ promisesToRun.push(convertToPromise(args, rookSync.current[bridgeMethod]));
96
+ }
97
+ if (shouldSyncSH) {
98
+ promisesToRun.push(convertToPromise(args, rookSync.current[shBridgeMethod]));
99
+ }
100
+ const results = await Promise.all(promisesToRun);
101
+ const SOResult = shouldSyncSO ? results.shift() : null;
102
+ const shResult = shouldSyncSH ? results.shift() : null;
103
+ callback({
104
+ appleHealth: !isAndroid ? createResultPayload(SOResult) : undefined,
105
+ healthConnect: isAndroid ? createResultPayload(SOResult) : undefined,
106
+ samsungHealth: createResultPayload(shResult)
107
+ });
108
+ };
109
+ const sync = (callback, params) => {
110
+ (0, _isModuleReady.isModuleReady)(ready);
111
+ if (!params) {
112
+ syncWithOutParams(callback);
113
+ return;
114
+ }
115
+ if (params && params.summary && !params.date) {
116
+ throw new Error('Date is missing');
117
+ }
118
+ syncWithParams(params, callback);
119
+ };
120
+ const syncEvents = async params => {
121
+ (0, _isModuleReady.isModuleReady)(ready);
122
+ const {
123
+ date,
124
+ event,
125
+ sources
126
+ } = params;
127
+ const {
128
+ isAndroid
129
+ } = _packageInfo.packageInfo;
130
+ const promisesToRun = [];
131
+ const parsedEvent = _packageInfo.packageInfo.isAndroid ? event : event.toLowerCase();
132
+ const shouldSyncSO = sources.includes(_SDKSources.SDKDataSource.APPLE_HEALTH) || sources.includes(_SDKSources.SDKDataSource.HEALTH_CONNECT);
133
+ const shouldSyncSH = sources.includes(_SDKSources.SDKDataSource.SAMSUNG_HEALTH) && isAndroid;
134
+ if (shouldSyncSO) {
135
+ if (['hydration', 'nutrition'].includes(params.event) && !_packageInfo.packageInfo.isAndroid) throw new Error(`${params.event} is not available on iOS`);
136
+ promisesToRun.push(rookSync.current.syncEvent(date, parsedEvent));
137
+ }
138
+ if (shouldSyncSH) promisesToRun.push(rookSync.current.shSyncEvent(date, event));
139
+ await Promise.all(promisesToRun);
140
+ return true;
141
+ };
142
+ return {
143
+ sync,
144
+ syncEvents
145
+ };
146
+ };
147
+ exports.useRookSync = useRookSync;
148
+ //# sourceMappingURL=useRookSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_getNativeModule","_interopRequireDefault","_isModuleReady","_isValidDate","_nativeModules","_SDKSources","_RookSyncGateContext","_packageInfo","e","__esModule","default","useRookSync","rookSync","useRef","getNativeModule","Platform","select","android","nativeModules","SYNC","ios","MANUAL_SYNC","state","ready","enableLogs","useRookSyncGateContext","createResultPayload","result","undefined","status","error","convertToPromise","params","toPromise","Promise","resolve","syncWithOutParams","callback","packageInfo","isAndroid","hcResult","current","sync","shSync","err","healthConnect","samsungHealth","appleHealth","syncWithParams","isValidDate","date","promisesToRun","sources","summary","args","bridgeMethod","shBridgeMethod","unshift","shouldSyncSO","includes","SDKDataSource","APPLE_HEALTH","HEALTH_CONNECT","shouldSyncSH","SAMSUNG_HEALTH","push","results","all","SOResult","shift","shResult","isModuleReady","Error","syncEvents","event","parsedEvent","toLowerCase","syncEvent","shSyncEvent","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookSync.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRookVariables = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _RookSyncGateContext = require("../context/RookSyncGateContext");
10
+ var _getNativeModule = _interopRequireDefault(require("../utils/getNativeModule"));
11
+ var _isModuleReady = require("../utils/isModuleReady");
12
+ var _nativeModules = _interopRequireDefault(require("../utils/nativeModules"));
13
+ var _packageInfo = require("../utils/packageInfo");
14
+ var _SDKSources = require("../types/SDKSources");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ /**
17
+ * The `useRookVariables` hook returns an object with a `ready` boolean and an
18
+ * asynchronous function `getTodaySteps` that retrieves the number of steps taken today.
19
+ * @returns The `useRookVariable` hook is returning an object with two properties:
20
+ * 1. `ready`: This property is coming from the `useRookSyncGateContext` hook and represents the state
21
+ * of readiness.
22
+ * 2. `getTodaySteps`: This property is a function that retrieves the number of steps taken today
23
+ * asynchronously and returns a Promise<string> representing the number of steps taken today.
24
+ * 3. `getTodayCalories`: This property is a function that retrieves the number of calories burned today
25
+ * asynchronously and returns a Promise<string> representing the number of calories burned today.
26
+ */
27
+ const useRookVariables = () => {
28
+ const rookSync = (0, _react.useRef)((0, _getNativeModule.default)(_reactNative.Platform.select({
29
+ android: () => _nativeModules.default.android.SYNC,
30
+ default: () => _nativeModules.default.ios.SYNC
31
+ })()));
32
+ const {
33
+ state: {
34
+ ready
35
+ }
36
+ } = (0, _RookSyncGateContext.useRookSyncGateContext)();
37
+
38
+ /**
39
+ * The function `getTodaySteps` retrieves the number of steps taken today asynchronously.
40
+ * @returns The function `getTodaySteps` is returning a string representing the number of steps taken today.
41
+ */
42
+ const getTodaySteps = async source => {
43
+ (0, _isModuleReady.isModuleReady)(ready);
44
+ if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.HEALTH_CONNECT) {
45
+ return rookSync.current.syncTodayHealthConnectStepsCount();
46
+ }
47
+ if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.SAMSUNG_HEALTH) {
48
+ return rookSync.current.syncTodaySamsungHealthStepsCount();
49
+ }
50
+ if (!_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.APPLE_HEALTH) {
51
+ return rookSync.current.getTodayAppleHealthSteps();
52
+ }
53
+ throw new Error('Invalid SDK datasource');
54
+ };
55
+
56
+ /**
57
+ * The function `syncTodayCaloriesCount` retrieves the number of calories burned today asynchronously as string
58
+ * @returns The function `syncTodayCaloriesCount` is returning the result of calling
59
+ */
60
+ const getTodayCalories = async source => {
61
+ (0, _isModuleReady.isModuleReady)(ready);
62
+ if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.HEALTH_CONNECT) {
63
+ return rookSync.current.syncTodayCaloriesCount();
64
+ }
65
+ if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.SAMSUNG_HEALTH) {
66
+ return rookSync.current.syncSHTodayCaloriesCount();
67
+ }
68
+ if (!_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.APPLE_HEALTH) {
69
+ return rookSync.current.syncTodayCaloriesCount();
70
+ }
71
+ throw new Error('Invalid SDK datasource');
72
+ };
73
+ const getTodayHeartRate = async source => {
74
+ if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.HEALTH_CONNECT) {
75
+ return rookSync.current.getTodayHeartRate();
76
+ }
77
+ if (_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.SAMSUNG_HEALTH) {
78
+ return rookSync.current.getSHTodayHeartRate();
79
+ }
80
+ if (!_packageInfo.packageInfo.isAndroid && source === _SDKSources.SDKDataSource.APPLE_HEALTH) {
81
+ return rookSync.current.getTodayHeartRate();
82
+ }
83
+ throw new Error('Please check the data source');
84
+ };
85
+ return {
86
+ ready,
87
+ getTodaySteps,
88
+ getTodayCalories,
89
+ getTodayHeartRate
90
+ };
91
+ };
92
+ exports.useRookVariables = useRookVariables;
93
+ //# sourceMappingURL=useRookVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_RookSyncGateContext","_getNativeModule","_interopRequireDefault","_isModuleReady","_nativeModules","_packageInfo","_SDKSources","e","__esModule","default","useRookVariables","rookSync","useRef","getNativeModule","Platform","select","android","nativeModules","SYNC","ios","state","ready","useRookSyncGateContext","getTodaySteps","source","isModuleReady","packageInfo","isAndroid","SDKDataSource","HEALTH_CONNECT","current","syncTodayHealthConnectStepsCount","SAMSUNG_HEALTH","syncTodaySamsungHealthStepsCount","APPLE_HEALTH","getTodayAppleHealthSteps","Error","getTodayCalories","syncTodayCaloriesCount","syncSHTodayCaloriesCount","getTodayHeartRate","getSHTodayHeartRate","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookVariables.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ getRookModule: true,
8
+ SDKDataSource: true,
9
+ APIDataSource: true,
10
+ SamsungHealthPermission: true,
11
+ AppleHealthPermission: true,
12
+ MealDataType: true,
13
+ SharedHealthEvents: true,
14
+ UniqueAppleHealthEvents: true,
15
+ UniqueSamsungHealthEvents: true,
16
+ UniqueHealthConnectEvents: true
17
+ };
18
+ Object.defineProperty(exports, "APIDataSource", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _DataSource.APIDataSource;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "AppleHealthPermission", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _AppleHealthPermissions.AppleHealthPermission;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "MealDataType", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _WriteNutrition.MealDataType;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "SDKDataSource", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _SDKSources.SDKDataSource;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "SamsungHealthPermission", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _SamsungHealthPermissions.SamsungHealthPermission;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "SharedHealthEvents", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _SyncTypes.SharedHealthEvents;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "UniqueAppleHealthEvents", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _SyncTypes.UniqueAppleHealthEvents;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "UniqueHealthConnectEvents", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _SyncTypes.UniqueHealthConnectEvents;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "UniqueSamsungHealthEvents", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _SyncTypes.UniqueSamsungHealthEvents;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "getRookModule", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _getRookModule.getRookModule;
76
+ }
77
+ });
78
+ var _getRookModule = require("./utils/getRookModule");
79
+ var _context = require("./context");
80
+ Object.keys(_context).forEach(function (key) {
81
+ if (key === "default" || key === "__esModule") return;
82
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
83
+ if (key in exports && exports[key] === _context[key]) return;
84
+ Object.defineProperty(exports, key, {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _context[key];
88
+ }
89
+ });
90
+ });
91
+ var _hooks = require("./hooks");
92
+ Object.keys(_hooks).forEach(function (key) {
93
+ if (key === "default" || key === "__esModule") return;
94
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
95
+ if (key in exports && exports[key] === _hooks[key]) return;
96
+ Object.defineProperty(exports, key, {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _hooks[key];
100
+ }
101
+ });
102
+ });
103
+ var _SDKSources = require("./types/SDKSources");
104
+ var _DataSource = require("./types/DataSource");
105
+ var _SamsungHealthPermissions = require("./types/SamsungHealthPermissions");
106
+ var _AppleHealthPermissions = require("./types/AppleHealthPermissions");
107
+ var _WriteNutrition = require("./types/WriteNutrition");
108
+ var _DiagnosticState = require("./types/DiagnosticState");
109
+ Object.keys(_DiagnosticState).forEach(function (key) {
110
+ if (key === "default" || key === "__esModule") return;
111
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
112
+ if (key in exports && exports[key] === _DiagnosticState[key]) return;
113
+ Object.defineProperty(exports, key, {
114
+ enumerable: true,
115
+ get: function () {
116
+ return _DiagnosticState[key];
117
+ }
118
+ });
119
+ });
120
+ var _SyncTypes = require("./types/SyncTypes");
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_getRookModule","require","_context","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_hooks","_SDKSources","_DataSource","_SamsungHealthPermissions","_AppleHealthPermissions","_WriteNutrition","_DiagnosticState","_SyncTypes"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,QAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,QAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,QAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,MAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,MAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAf,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,yBAAA,GAAAjB,OAAA;AACA,IAAAkB,uBAAA,GAAAlB,OAAA;AAEA,IAAAmB,eAAA,GAAAnB,OAAA;AACA,IAAAoB,gBAAA,GAAApB,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAiB,gBAAA,EAAAhB,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAe,gBAAA,CAAAf,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAO,gBAAA,CAAAf,GAAA;IAAA;EAAA;AAAA;AACA,IAAAgB,UAAA,GAAArB,OAAA","ignoreList":[]}
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRookAutoSync = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _errors = require("../utils/errors");
10
+ var _getNativeModule = _interopRequireDefault(require("../../utils/getNativeModule"));
11
+ var _nativeModules = _interopRequireDefault(require("../../utils/nativeModules"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ /* eslint-disable react-hooks/exhaustive-deps */
14
+
15
+ const MESSAGE_TYPE = 'ROOK_BACKGROUND_ENABLED';
16
+
17
+ /**
18
+ * The above TypeScript code defines a function `useRookAutoSync` that handles background
19
+ * synchronization, including user ID validation and error messaging.
20
+ * @property {boolean} enableBackground - The `enableBackground` property in the `useRookAutoSync`
21
+ * function determines whether background synchronization should be enabled. If `enableBackground` is
22
+ * set to `true`, the function will listen for changes in the app state and trigger the
23
+ * `startBackgroundSync` function when the app transitions from
24
+ * @property {boolean} enableLogs - The `enableLogs` property in the `useRookAutoSync` function is a
25
+ * boolean value that determines whether logging should be enabled or not. If `enableLogs` is set to
26
+ * `true`, logging messages will be displayed in the console to provide information about the
27
+ * background synchronization process. If `
28
+ * @property {RookSyncGateState} state - The `state` property in the `useRookAutoSync` function
29
+ * represents the current state of the RookSyncGate. It includes information such as whether the state
30
+ * is ready, the permissions status, and the user ID associated with the state. This state is used to
31
+ * determine when to start the
32
+ */
33
+ const useRookAutoSync = ({
34
+ enableBackground,
35
+ enableLogs,
36
+ state
37
+ }) => {
38
+ const appState = (0, _react.useRef)(_reactNative.AppState.currentState);
39
+ const [changeAppState, setChangeState] = (0, _react.useState)(0);
40
+ (0, _react.useEffect)(() => {
41
+ if (!enableBackground) return;
42
+ const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
43
+ if (
44
+ // Check previous state to check if he app was inactive or in background
45
+ // and then pass to be active
46
+ appState.current.match(/inactive|background/) && nextAppState === 'active') {
47
+ setChangeState(prev => prev + 1);
48
+ }
49
+ appState.current = nextAppState;
50
+ });
51
+ return () => {
52
+ subscription.remove();
53
+ };
54
+ }, []);
55
+ (0, _react.useEffect)(() => {
56
+ if (!state.ready || !enableBackground) return;
57
+ startBackgroundServices();
58
+ }, [state, changeAppState]);
59
+ const startBackgroundServices = () => {
60
+ const {
61
+ clientUUID,
62
+ secret,
63
+ ready
64
+ } = state;
65
+ if (!ready || !clientUUID || !secret) {
66
+ return;
67
+ }
68
+ if (_reactNative.Platform.OS === 'android') {
69
+ startAndroidBackgroundSync();
70
+ return;
71
+ }
72
+ startIOSBackgroundSync();
73
+ };
74
+ const isValidUser = async () => {
75
+ try {
76
+ const rookModule = (0, _getNativeModule.default)(_nativeModules.default.android.CONFIGURATION);
77
+ const userID = await rookModule.getUserID();
78
+ if (userID) return true;
79
+ if (enableLogs) console.error(_errors.errors.noUserIDAndroidBackground);
80
+ throw new Error(_errors.errors.noUserIDAndroidBackground);
81
+ } catch (error) {
82
+ sendMessageToBroadcast({
83
+ type: 'ROOK_BACKGROUND_ENABLED',
84
+ message: 'There is not a user id',
85
+ value: false
86
+ });
87
+ return false;
88
+ }
89
+ };
90
+ const tryToStartBackgroundSync = async () => {
91
+ try {
92
+ const rookPermissions = (0, _getNativeModule.default)(_nativeModules.default.android.PERMISSIONS);
93
+ const backgroundStatus = await rookPermissions.checkHealthConnectPermissionsPartially();
94
+ if (!backgroundStatus) throw new Error('No permission granted or not available');
95
+ const rookBackground = (0, _getNativeModule.default)(_nativeModules.default.android.BACKGROUND);
96
+ const result = await rookBackground.scheduleBackgroundSync(enableLogs);
97
+ return result;
98
+ } catch (error) {
99
+ console.log(error);
100
+ sendMessageToBroadcast({
101
+ type: 'ROOK_BACKGROUND_ENABLED',
102
+ message: 'Health Connect background is not available on the device or the user does not grants permission',
103
+ value: false
104
+ });
105
+ return false;
106
+ }
107
+ };
108
+ const tryToStartForegroundSync = async () => {
109
+ try {
110
+ const rookPermissionsModule = (0, _getNativeModule.default)(_nativeModules.default.android.PERMISSIONS);
111
+ const hasHCPermissions = await rookPermissionsModule.checkHealthConnectPermissions();
112
+ const hasAndroidPermissions = await rookPermissionsModule.hasAndroidBackgroundPermissions();
113
+ if (!hasHCPermissions || !hasAndroidPermissions) {
114
+ if (enableLogs) console.error(_errors.errors.autoStartAndroidBackgroundSync);
115
+ throw new Error(_errors.errors.autoStartAndroidBackgroundSync);
116
+ }
117
+ const rookStepsModule = (0, _getNativeModule.default)(_nativeModules.default.android.STEPS);
118
+ if (_reactNative.AppState.currentState === 'active' && appState.current === 'active') {
119
+ await rookStepsModule.enableBackgroundAndroidSteps();
120
+ return true;
121
+ }
122
+ return false;
123
+ } catch (error) {
124
+ sendMessageToBroadcast({
125
+ type: 'ROOK_BACKGROUND_ENABLED',
126
+ value: false,
127
+ message: error.message
128
+ });
129
+ return false;
130
+ }
131
+ };
132
+ const tryToStartSamsungHealthSync = async () => {
133
+ try {
134
+ const rookPermissionsModule = (0, _getNativeModule.default)(_nativeModules.default.android.PERMISSIONS);
135
+ const isAvailable = await rookPermissionsModule.checkSamsungAvailability();
136
+ if (isAvailable !== 'INSTALLED') return false;
137
+ const rookSyncModule = (0, _getNativeModule.default)(_nativeModules.default.android.SYNC);
138
+ await rookSyncModule.enableSamsungSync();
139
+ return true;
140
+ } catch (error) {
141
+ sendMessageToBroadcast({
142
+ type: 'ROOK_BACKGROUND_ENABLED',
143
+ value: false,
144
+ message: error.message
145
+ });
146
+ return false;
147
+ }
148
+ };
149
+
150
+ /**
151
+ * The function `startAndroidBackgroundSync` in TypeScript initiates background synchronization for an
152
+ * Android app, handling user ID validation and error messaging.
153
+ * @returns If the `userID` is not available, an error message is logged and a message is sent to
154
+ * broadcast with `value` set to `false`. If an error occurs during the process, a message is sent to
155
+ * broadcast with `value` set to `false` and an error message is logged.
156
+ */
157
+ const startAndroidBackgroundSync = async () => {
158
+ const {
159
+ clientUUID,
160
+ secret,
161
+ ready
162
+ } = state;
163
+ if (!ready || !clientUUID || !secret) {
164
+ return;
165
+ }
166
+ try {
167
+ const enabledSources = [];
168
+ const isValid = await isValidUser();
169
+ if (!isValid) return;
170
+ const isSamsungEnabled = await tryToStartSamsungHealthSync();
171
+ const isEnabled = await tryToStartBackgroundSync();
172
+ if (isSamsungEnabled) enabledSources.push('Samsung Health');
173
+ if (isEnabled) enabledSources.push('Health Connect');
174
+ if (!isEnabled) {
175
+ const isForegroundEnabled = await tryToStartForegroundSync();
176
+ if (!isForegroundEnabled && !isSamsungEnabled) throw new Error("We couldn't start background sync");
177
+ if (isForegroundEnabled) enabledSources.push('Foreground Service');
178
+ }
179
+ sendMessageToBroadcast({
180
+ type: 'ROOK_BACKGROUND_ENABLED',
181
+ value: true,
182
+ message: `via: ${enabledSources.join(', ')}`
183
+ });
184
+ if (enableLogs) console.log('ROOK - Background enabled successfully');
185
+ } catch (error) {
186
+ sendMessageToBroadcast({
187
+ type: 'ROOK_BACKGROUND_ENABLED',
188
+ value: false
189
+ });
190
+ }
191
+ };
192
+
193
+ /**
194
+ * The function `startIOSBackgroundSync` in TypeScript initiates background synchronization for an
195
+ * iOS app, handling user ID validation and error messaging.
196
+ * @returns If the `userID` is not available, an error message is logged and a message is sent to
197
+ * broadcast with `value` set to `false`. If an error occurs during the process, a message is sent to
198
+ * broadcast with `value` set to `false` and an error message is logged.
199
+ */
200
+ const startIOSBackgroundSync = async () => {
201
+ try {
202
+ const rookPermissions = (0, _getNativeModule.default)(_nativeModules.default.ios.PERMISSIONS);
203
+ const rookBackground = (0, _getNativeModule.default)(_nativeModules.default.ios.BACKGROUND);
204
+ const rookConfigModule = (0, _getNativeModule.default)(_nativeModules.default.ios.CONFIGURATION);
205
+ const rookSync = (0, _getNativeModule.default)(_nativeModules.default.ios.SYNC);
206
+ const userID = await rookConfigModule.getUserID();
207
+ if (!userID) {
208
+ if (enableLogs) console.error(_errors.errors.noUserIDAndroidBackground);
209
+ sendMessageToBroadcast({
210
+ type: MESSAGE_TYPE,
211
+ value: false,
212
+ message: _errors.errors.noUserIDAndroidBackground
213
+ });
214
+ return;
215
+ }
216
+ const status = await rookPermissions.checkPermissionsStatus(null);
217
+ if (status === 'PERMISSION_NOT_REQUESTED') throw new Error('Permissions required');
218
+ await rookBackground.enableBackGroundUpdates();
219
+ rookSync.sync(() => {
220
+ sendMessageToBroadcast({
221
+ type: MESSAGE_TYPE,
222
+ value: true,
223
+ message: 'Some data has already uploaded'
224
+ });
225
+ });
226
+ sendMessageToBroadcast({
227
+ type: MESSAGE_TYPE,
228
+ value: true
229
+ });
230
+ if (enableLogs) console.log('ROOK - Background enabled successfully');
231
+ } catch (err) {
232
+ const error = err;
233
+ sendMessageToBroadcast({
234
+ type: MESSAGE_TYPE,
235
+ value: false,
236
+ message: _errors.errors.autoStartIOSBackgroundSync
237
+ });
238
+ if (enableLogs) {
239
+ if (error.message && error.message.includes('emptyUserId')) console.error(_errors.errors.noUserIDAndroidBackground);else console.error(_errors.errors.autoStartIOSBackgroundSync);
240
+ }
241
+ }
242
+ };
243
+
244
+ /**
245
+ * The function `sendMessageToBroadcast` sends a message to be broadcasted using a Rook module.
246
+ * @param {Message} message - The `message` parameter is of type `Message`, which is likely an object
247
+ * containing information to be sent as a broadcast message.
248
+ */
249
+ const sendMessageToBroadcast = message => {
250
+ const rookSyncModule = (0, _getNativeModule.default)(_reactNative.Platform.select({
251
+ android: () => _nativeModules.default.android.MAIN,
252
+ default: () => _nativeModules.default.ios.MAIN
253
+ })());
254
+ rookSyncModule.sendMessageToBroadcast(message).then().catch();
255
+ };
256
+ return {
257
+ startBackgroundServices
258
+ };
259
+ };
260
+ exports.useRookAutoSync = useRookAutoSync;
261
+ //# sourceMappingURL=useRookAutoSync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_errors","_getNativeModule","_interopRequireDefault","_nativeModules","e","__esModule","default","MESSAGE_TYPE","useRookAutoSync","enableBackground","enableLogs","state","appState","useRef","AppState","currentState","changeAppState","setChangeState","useState","useEffect","subscription","addEventListener","nextAppState","current","match","prev","remove","ready","startBackgroundServices","clientUUID","secret","Platform","OS","startAndroidBackgroundSync","startIOSBackgroundSync","isValidUser","rookModule","getNativeModule","nativeModules","android","CONFIGURATION","userID","getUserID","console","error","errors","noUserIDAndroidBackground","Error","sendMessageToBroadcast","type","message","value","tryToStartBackgroundSync","rookPermissions","PERMISSIONS","backgroundStatus","checkHealthConnectPermissionsPartially","rookBackground","BACKGROUND","result","scheduleBackgroundSync","log","tryToStartForegroundSync","rookPermissionsModule","hasHCPermissions","checkHealthConnectPermissions","hasAndroidPermissions","hasAndroidBackgroundPermissions","autoStartAndroidBackgroundSync","rookStepsModule","STEPS","enableBackgroundAndroidSteps","tryToStartSamsungHealthSync","isAvailable","checkSamsungAvailability","rookSyncModule","SYNC","enableSamsungSync","enabledSources","isValid","isSamsungEnabled","isEnabled","push","isForegroundEnabled","join","ios","rookConfigModule","rookSync","status","checkPermissionsStatus","enableBackGroundUpdates","sync","err","autoStartIOSBackgroundSync","includes","select","MAIN","then","catch","exports"],"sourceRoot":"../../../../src","sources":["modules/hook/useRookAutoSync.ts"],"mappings":"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","ignoreList":[]}