react-native-rook-sdk 4.0.0 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +35 -3
  3. package/RNRookSdk.podspec +22 -0
  4. package/android/build.gradle +21 -40
  5. package/android/gradle.properties +5 -5
  6. package/android/src/main/AndroidManifest.xml +1 -2
  7. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +1709 -117
  8. package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +26 -42
  9. package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +34 -37
  10. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +8 -14
  11. package/android/src/main/java/com/rooksdk/broadcasts/SamsungHealthPermissionsReceiverTransmitter.kt +8 -16
  12. package/android/src/main/java/com/rooksdk/utils/{DatasourcesUtils.kt → DatasourceUtils.kt} +10 -9
  13. package/android/src/main/java/com/rooksdk/utils/{PermissionConversion.kt → PermissionConvertions.kt} +1 -1
  14. package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +0 -1
  15. package/android/src/main/java/com/rooksdk/utils/RookGsonBuilder.kt +3 -0
  16. package/android/src/main/java/com/rooksdk/utils/SamsungAvailability.kt +1 -0
  17. package/android/src/main/java/com/rooksdk/utils/serializers/InstantSerializer.kt +0 -1
  18. package/android/src/main/java/com/rooksdk/utils/serializers/ZoneDateTimeSerializer.kt +18 -0
  19. package/ios/DateHelper.swift +4 -4
  20. package/ios/Encodable.swift +25 -0
  21. package/ios/EncodableDataSource.swift +2 -3
  22. package/ios/EncodableDataSourceAuthorizer.swift +2 -3
  23. package/ios/EncodableSDKState.swift +3 -2
  24. package/ios/{EncodableHeartRate.swift → HearRateMapper.swift} +3 -3
  25. package/ios/NutritionMapper.swift +3 -3
  26. package/ios/RookBackground.swift +5 -8
  27. package/ios/RookConfiguration.swift +33 -30
  28. package/ios/{RookLocalData.swift → RookData.swift} +76 -69
  29. package/ios/RookEntry.swift +62 -0
  30. package/ios/RookPermissions.swift +36 -40
  31. package/ios/RookSdk-Bridging-Header.h +12 -0
  32. package/ios/RookSdk.h +3 -3
  33. package/ios/RookSdk.mm +390 -134
  34. package/ios/RookSources.swift +60 -54
  35. package/ios/RookSync.swift +48 -78
  36. package/ios/boost-boost_privacy-Bridging-Header.h +4 -0
  37. package/lib/{commonjs/types/AppleHealthPermissions.js → module/NativeRookSdk.js} +50 -6
  38. package/lib/module/NativeRookSdk.js.map +1 -0
  39. package/lib/module/context/RookSyncGateContext.js +2 -0
  40. package/lib/module/context/RookSyncGateContext.js.map +1 -1
  41. package/lib/module/context/RookSyncGateProvider.js +17 -18
  42. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  43. package/lib/module/context/RookSyncGateReducer.js +2 -0
  44. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  45. package/lib/module/context/RookSyncGateTypes.js +2 -0
  46. package/lib/module/hooks/useRookAPISources.js +10 -16
  47. package/lib/module/hooks/useRookAPISources.js.map +1 -1
  48. package/lib/module/hooks/useRookAndroidBackgroundSteps.js +11 -12
  49. package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
  50. package/lib/module/hooks/useRookAppleHealth.js +9 -10
  51. package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
  52. package/lib/module/hooks/useRookConfiguration.js +17 -22
  53. package/lib/module/hooks/useRookConfiguration.js.map +1 -1
  54. package/lib/module/hooks/useRookData.js +33 -38
  55. package/lib/module/hooks/useRookData.js.map +1 -1
  56. package/lib/module/hooks/useRookHealthConnect.js +9 -10
  57. package/lib/module/hooks/useRookHealthConnect.js.map +1 -1
  58. package/lib/module/hooks/useRookPermissions.js +34 -45
  59. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  60. package/lib/module/hooks/useRookSamsungHealth.js +8 -20
  61. package/lib/module/hooks/useRookSamsungHealth.js.map +1 -1
  62. package/lib/module/hooks/useRookSync.js +23 -32
  63. package/lib/module/hooks/useRookSync.js.map +1 -1
  64. package/lib/module/hooks/useRookVariables.js +26 -29
  65. package/lib/module/hooks/useRookVariables.js.map +1 -1
  66. package/lib/module/index.js +18 -10
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/module/modules/components/RookStateManager.js +31 -0
  69. package/lib/module/modules/components/RookStateManager.js.map +1 -0
  70. package/lib/module/modules/hook/useRookAutoSync.js +24 -36
  71. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  72. package/lib/module/modules/hook/useRookEmitter.js +61 -0
  73. package/lib/module/modules/hook/useRookEmitter.js.map +1 -0
  74. package/lib/module/modules/types/sendMessageBroadcast.js +1 -1
  75. package/lib/module/modules/utils/errors.js +2 -0
  76. package/lib/module/modules/utils/errors.js.map +1 -1
  77. package/lib/module/package.json +1 -0
  78. package/lib/module/types/ActivityEvent.js +2 -0
  79. package/lib/module/types/AppleHealthNutritionEvent.js +2 -0
  80. package/lib/module/types/AppleHealthNutritionEvent.js.map +1 -1
  81. package/lib/module/types/AppleHealthPermissions.js +2 -0
  82. package/lib/module/types/AppleHealthPermissions.js.map +1 -1
  83. package/lib/module/types/AuthorizedSources.js +2 -0
  84. package/lib/module/types/BodySummary.js +2 -0
  85. package/lib/module/types/DataSource.js +2 -0
  86. package/lib/module/types/DataSource.js.map +1 -1
  87. package/lib/module/types/HCMealData.js +3 -1
  88. package/lib/module/types/HCMealData.js.map +1 -1
  89. package/lib/module/types/HeartRateEvent.js +1 -1
  90. package/lib/module/types/PermissionsType.js +1 -1
  91. package/lib/module/types/PhysicalSummary.js +2 -0
  92. package/lib/module/types/Rook.js +2 -0
  93. package/lib/{commonjs/types/BodySummary.js.map → module/types/Rook.js.map} +1 -1
  94. package/lib/module/types/SDKSources.js +2 -0
  95. package/lib/module/types/SDKSources.js.map +1 -1
  96. package/lib/module/types/SamsungHealthPermissions.js +3 -0
  97. package/lib/module/types/SamsungHealthPermissions.js.map +1 -1
  98. package/lib/module/types/SleepSummary.js +2 -0
  99. package/lib/module/types/SummaryTypes.js +1 -1
  100. package/lib/module/types/SyncTypes.js +2 -0
  101. package/lib/module/types/SyncTypes.js.map +1 -1
  102. package/lib/module/types/WriteNutrition.js +2 -0
  103. package/lib/module/types/WriteNutrition.js.map +1 -1
  104. package/lib/module/utils/isModuleReady.js +2 -0
  105. package/lib/module/utils/isModuleReady.js.map +1 -1
  106. package/lib/module/utils/isRunningOnAndroid.js +2 -0
  107. package/lib/module/utils/isRunningOnAndroid.js.map +1 -1
  108. package/lib/module/utils/isRunningOniOS.js +2 -0
  109. package/lib/module/utils/isRunningOniOS.js.map +1 -1
  110. package/lib/module/utils/isValidDate.js +2 -0
  111. package/lib/module/utils/isValidDate.js.map +1 -1
  112. package/lib/typescript/package.json +1 -0
  113. package/lib/typescript/src/NativeRookSdk.d.ts +705 -0
  114. package/lib/typescript/src/NativeRookSdk.d.ts.map +1 -0
  115. package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
  116. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  117. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  118. package/lib/typescript/src/hooks/useRookAPISources.d.ts.map +1 -1
  119. package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
  120. package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
  121. package/lib/typescript/src/hooks/useRookConfiguration.d.ts +1 -1
  122. package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
  123. package/lib/typescript/src/hooks/useRookData.d.ts +1 -1
  124. package/lib/typescript/src/hooks/useRookData.d.ts.map +1 -1
  125. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -1
  126. package/lib/typescript/src/hooks/useRookPermissions.d.ts +1 -1
  127. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  128. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts +0 -6
  129. package/lib/typescript/src/hooks/useRookSamsungHealth.d.ts.map +1 -1
  130. package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -1
  131. package/lib/typescript/src/hooks/useRookVariables.d.ts +1 -1
  132. package/lib/typescript/src/hooks/useRookVariables.d.ts.map +1 -1
  133. package/lib/typescript/src/index.d.ts +17 -8
  134. package/lib/typescript/src/index.d.ts.map +1 -1
  135. package/lib/typescript/src/modules/components/RookStateManager.d.ts +10 -0
  136. package/lib/typescript/src/modules/components/RookStateManager.d.ts.map +1 -0
  137. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  138. package/lib/typescript/src/modules/hook/useRookEmitter.d.ts +4 -0
  139. package/lib/typescript/src/modules/hook/useRookEmitter.d.ts.map +1 -0
  140. package/lib/typescript/src/types/AppleHealthNutritionEvent.d.ts.map +1 -1
  141. package/lib/typescript/src/types/AuthorizedSources.d.ts +11 -0
  142. package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
  143. package/lib/typescript/src/types/HCMealData.d.ts.map +1 -1
  144. package/lib/typescript/src/types/HeartRateEvent.d.ts +2 -2
  145. package/lib/typescript/src/types/HeartRateEvent.d.ts.map +1 -1
  146. package/lib/typescript/src/types/Rook.d.ts +9 -0
  147. package/lib/typescript/src/types/Rook.d.ts.map +1 -0
  148. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts +1 -0
  149. package/lib/typescript/src/types/SamsungHealthPermissions.d.ts.map +1 -1
  150. package/lib/typescript/src/types/SyncTypes.d.ts +5 -1
  151. package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -1
  152. package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
  153. package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
  154. package/package.json +94 -98
  155. package/src/NativeRookSdk.ts +839 -0
  156. package/{lib/commonjs/context/RookSyncGateContext.js → src/context/RookSyncGateContext.ts} +10 -13
  157. package/src/context/RookSyncGateProvider.tsx +82 -0
  158. package/{lib/commonjs/context/RookSyncGateReducer.js → src/context/RookSyncGateReducer.ts} +14 -41
  159. package/src/context/RookSyncGateTypes.ts +40 -0
  160. package/{lib/commonjs/hooks/useRookAPISources.js → src/hooks/useRookAPISources.ts} +40 -36
  161. package/src/hooks/useRookAndroidBackgroundSteps.ts +81 -0
  162. package/src/hooks/useRookAppleHealth.ts +55 -0
  163. package/src/hooks/useRookConfiguration.ts +106 -0
  164. package/src/hooks/useRookData.ts +133 -0
  165. package/src/hooks/useRookHealthConnect.ts +59 -0
  166. package/src/hooks/useRookPermissions.ts +240 -0
  167. package/src/hooks/useRookSamsungHealth.ts +37 -0
  168. package/src/hooks/useRookSync.ts +157 -0
  169. package/src/hooks/useRookVariables.ts +98 -0
  170. package/src/index.tsx +28 -0
  171. package/src/modules/components/RookStateManager.tsx +41 -0
  172. package/{lib/commonjs/modules/hook/useRookAutoSync.js → src/modules/hook/useRookAutoSync.ts} +141 -95
  173. package/src/modules/hook/useRookEmitter.ts +94 -0
  174. package/src/modules/types/sendMessageBroadcast.ts +5 -0
  175. package/src/modules/utils/errors.ts +9 -0
  176. package/src/types/ActivityEvent.ts +159 -0
  177. package/src/types/AppleHealthNutritionEvent.ts +142 -0
  178. package/src/types/AppleHealthPermissions.ts +49 -0
  179. package/src/types/AuthorizedSources.ts +33 -0
  180. package/src/types/BodySummary.ts +116 -0
  181. package/src/types/DataSource.ts +16 -0
  182. package/{lib/commonjs/types/HCMealData.js → src/types/HCMealData.ts} +60 -11
  183. package/src/types/HeartRateEvent.ts +26 -0
  184. package/src/types/PermissionsType.ts +9 -0
  185. package/src/types/PhysicalSummary.ts +84 -0
  186. package/src/types/Rook.ts +8 -0
  187. package/src/types/SDKSources.ts +5 -0
  188. package/src/types/SamsungHealthPermissions.ts +16 -0
  189. package/src/types/SleepSummary.ts +66 -0
  190. package/src/types/SummaryTypes.ts +70 -0
  191. package/src/types/SyncTypes.ts +63 -0
  192. package/src/types/WriteNutrition.ts +66 -0
  193. package/{lib/commonjs/utils/isModuleReady.js → src/utils/isModuleReady.ts} +4 -10
  194. package/src/utils/isRunningOnAndroid.ts +10 -0
  195. package/src/utils/isRunningOniOS.ts +10 -0
  196. package/{lib/commonjs/utils/isValidDate.js → src/utils/isValidDate.ts} +12 -14
  197. package/android/src/main/AndroidManifestNew.xml +0 -36
  198. package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +0 -99
  199. package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +0 -182
  200. package/android/src/main/java/com/rooksdk/modules/RookLocalData.kt +0 -301
  201. package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +0 -359
  202. package/android/src/main/java/com/rooksdk/modules/RookSourcesModule.kt +0 -102
  203. package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +0 -119
  204. package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +0 -551
  205. package/android/src/main/res/drawable/ic_health_connect.xml +0 -19
  206. package/android/src/main/res/values/themes.xml +0 -3
  207. package/ios/EncodableRookDataSource.swift +0 -36
  208. package/ios/EncodableStatusDataSources.swift +0 -47
  209. package/ios/RookBackgroundModule.h +0 -5
  210. package/ios/RookBackgroundModule.mm +0 -15
  211. package/ios/RookConfigurationModule.h +0 -5
  212. package/ios/RookConfigurationModule.mm +0 -22
  213. package/ios/RookExternalModule.h +0 -5
  214. package/ios/RookExternalModule.m +0 -31
  215. package/ios/RookPermissionsModule.h +0 -5
  216. package/ios/RookPermissionsModule.mm +0 -20
  217. package/ios/RookSourcesModule.h +0 -5
  218. package/ios/RookSourcesModule.mm +0 -18
  219. package/ios/RookSync.h +0 -5
  220. package/ios/RookSync.m +0 -35
  221. package/ios/SwiftTest.swift +0 -18
  222. package/ios/react-native-rook-sdk-Bridging-Header.h +0 -12
  223. package/lib/commonjs/context/RookSyncGateContext.js.map +0 -1
  224. package/lib/commonjs/context/RookSyncGateProvider.js +0 -108
  225. package/lib/commonjs/context/RookSyncGateProvider.js.map +0 -1
  226. package/lib/commonjs/context/RookSyncGateReducer.js.map +0 -1
  227. package/lib/commonjs/context/RookSyncGateTypes.js +0 -6
  228. package/lib/commonjs/context/RookSyncGateTypes.js.map +0 -1
  229. package/lib/commonjs/context/index.js +0 -14
  230. package/lib/commonjs/context/index.js.map +0 -1
  231. package/lib/commonjs/hooks/index.js +0 -76
  232. package/lib/commonjs/hooks/index.js.map +0 -1
  233. package/lib/commonjs/hooks/useRookAPISources.js.map +0 -1
  234. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +0 -88
  235. package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +0 -1
  236. package/lib/commonjs/hooks/useRookAppleHealth.js +0 -63
  237. package/lib/commonjs/hooks/useRookAppleHealth.js.map +0 -1
  238. package/lib/commonjs/hooks/useRookConfiguration.js +0 -113
  239. package/lib/commonjs/hooks/useRookConfiguration.js.map +0 -1
  240. package/lib/commonjs/hooks/useRookData.js +0 -116
  241. package/lib/commonjs/hooks/useRookData.js.map +0 -1
  242. package/lib/commonjs/hooks/useRookHealthConnect.js +0 -70
  243. package/lib/commonjs/hooks/useRookHealthConnect.js.map +0 -1
  244. package/lib/commonjs/hooks/useRookPermissions.js +0 -211
  245. package/lib/commonjs/hooks/useRookPermissions.js.map +0 -1
  246. package/lib/commonjs/hooks/useRookSamsungHealth.js +0 -54
  247. package/lib/commonjs/hooks/useRookSamsungHealth.js.map +0 -1
  248. package/lib/commonjs/hooks/useRookSync.js +0 -148
  249. package/lib/commonjs/hooks/useRookSync.js.map +0 -1
  250. package/lib/commonjs/hooks/useRookVariables.js +0 -93
  251. package/lib/commonjs/hooks/useRookVariables.js.map +0 -1
  252. package/lib/commonjs/index.js +0 -121
  253. package/lib/commonjs/index.js.map +0 -1
  254. package/lib/commonjs/modules/hook/useRookAutoSync.js.map +0 -1
  255. package/lib/commonjs/modules/types/sendMessageBroadcast.js +0 -2
  256. package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +0 -1
  257. package/lib/commonjs/modules/utils/errors.js +0 -12
  258. package/lib/commonjs/modules/utils/errors.js.map +0 -1
  259. package/lib/commonjs/types/ActivityEvent.js +0 -6
  260. package/lib/commonjs/types/ActivityEvent.js.map +0 -1
  261. package/lib/commonjs/types/AppleHealthNutritionEvent.js +0 -77
  262. package/lib/commonjs/types/AppleHealthNutritionEvent.js.map +0 -1
  263. package/lib/commonjs/types/AppleHealthPermissions.js.map +0 -1
  264. package/lib/commonjs/types/AuthorizedSources.js +0 -6
  265. package/lib/commonjs/types/AuthorizedSources.js.map +0 -1
  266. package/lib/commonjs/types/BodySummary.js +0 -6
  267. package/lib/commonjs/types/DataSource.js +0 -16
  268. package/lib/commonjs/types/DataSource.js.map +0 -1
  269. package/lib/commonjs/types/DiagnosticState.js +0 -2
  270. package/lib/commonjs/types/DiagnosticState.js.map +0 -1
  271. package/lib/commonjs/types/HCMealData.js.map +0 -1
  272. package/lib/commonjs/types/HeartRateEvent.js +0 -2
  273. package/lib/commonjs/types/HeartRateEvent.js.map +0 -1
  274. package/lib/commonjs/types/PermissionsType.js +0 -2
  275. package/lib/commonjs/types/PermissionsType.js.map +0 -1
  276. package/lib/commonjs/types/PhysicalSummary.js +0 -6
  277. package/lib/commonjs/types/PhysicalSummary.js.map +0 -1
  278. package/lib/commonjs/types/SDKSources.js +0 -13
  279. package/lib/commonjs/types/SDKSources.js.map +0 -1
  280. package/lib/commonjs/types/SamsungHealthPermissions.js +0 -23
  281. package/lib/commonjs/types/SamsungHealthPermissions.js.map +0 -1
  282. package/lib/commonjs/types/SleepSummary.js +0 -6
  283. package/lib/commonjs/types/SleepSummary.js.map +0 -1
  284. package/lib/commonjs/types/SummaryTypes.js +0 -2
  285. package/lib/commonjs/types/SummaryTypes.js.map +0 -1
  286. package/lib/commonjs/types/SyncTypes.js +0 -33
  287. package/lib/commonjs/types/SyncTypes.js.map +0 -1
  288. package/lib/commonjs/types/WriteNutrition.js +0 -18
  289. package/lib/commonjs/types/WriteNutrition.js.map +0 -1
  290. package/lib/commonjs/utils/getNativeModule.js +0 -29
  291. package/lib/commonjs/utils/getNativeModule.js.map +0 -1
  292. package/lib/commonjs/utils/getRookModule.js +0 -28
  293. package/lib/commonjs/utils/getRookModule.js.map +0 -1
  294. package/lib/commonjs/utils/isModuleReady.js.map +0 -1
  295. package/lib/commonjs/utils/isRunningOnAndroid.js +0 -15
  296. package/lib/commonjs/utils/isRunningOnAndroid.js.map +0 -1
  297. package/lib/commonjs/utils/isRunningOniOS.js +0 -15
  298. package/lib/commonjs/utils/isRunningOniOS.js.map +0 -1
  299. package/lib/commonjs/utils/isValidDate.js.map +0 -1
  300. package/lib/commonjs/utils/nativeModules.js +0 -29
  301. package/lib/commonjs/utils/nativeModules.js.map +0 -1
  302. package/lib/commonjs/utils/packageInfo.js +0 -13
  303. package/lib/commonjs/utils/packageInfo.js.map +0 -1
  304. package/lib/module/context/index.js +0 -2
  305. package/lib/module/context/index.js.map +0 -1
  306. package/lib/module/hooks/index.js +0 -11
  307. package/lib/module/hooks/index.js.map +0 -1
  308. package/lib/module/types/DiagnosticState.js +0 -2
  309. package/lib/module/types/DiagnosticState.js.map +0 -1
  310. package/lib/module/utils/getNativeModule.js +0 -23
  311. package/lib/module/utils/getNativeModule.js.map +0 -1
  312. package/lib/module/utils/getRookModule.js +0 -22
  313. package/lib/module/utils/getRookModule.js.map +0 -1
  314. package/lib/module/utils/nativeModules.js +0 -23
  315. package/lib/module/utils/nativeModules.js.map +0 -1
  316. package/lib/module/utils/packageInfo.js +0 -7
  317. package/lib/module/utils/packageInfo.js.map +0 -1
  318. package/lib/typescript/src/context/index.d.ts +0 -2
  319. package/lib/typescript/src/context/index.d.ts.map +0 -1
  320. package/lib/typescript/src/hooks/index.d.ts +0 -11
  321. package/lib/typescript/src/hooks/index.d.ts.map +0 -1
  322. package/lib/typescript/src/types/DiagnosticState.d.ts +0 -13
  323. package/lib/typescript/src/types/DiagnosticState.d.ts.map +0 -1
  324. package/lib/typescript/src/utils/getNativeModule.d.ts +0 -10
  325. package/lib/typescript/src/utils/getNativeModule.d.ts.map +0 -1
  326. package/lib/typescript/src/utils/getRookModule.d.ts +0 -9
  327. package/lib/typescript/src/utils/getRookModule.d.ts.map +0 -1
  328. package/lib/typescript/src/utils/nativeModules.d.ts +0 -24
  329. package/lib/typescript/src/utils/nativeModules.d.ts.map +0 -1
  330. package/lib/typescript/src/utils/packageInfo.d.ts +0 -6
  331. package/lib/typescript/src/utils/packageInfo.d.ts.map +0 -1
  332. package/react-native-rook-sdk.podspec +0 -45
@@ -1,359 +0,0 @@
1
- package com.rooksdk.modules
2
-
3
- import com.facebook.react.bridge.Promise
4
- import com.facebook.react.bridge.ReactApplicationContext
5
- import com.facebook.react.bridge.ReactContextBaseJavaModule
6
- import com.facebook.react.bridge.ReactMethod
7
- import com.facebook.react.bridge.ReadableArray
8
- import com.rookmotion.rook.sdk.RookPermissionsManager
9
- import com.rookmotion.rook.sdk.domain.enums.BackgroundReadStatus
10
- import com.rookmotion.rook.sdk.domain.enums.HealthConnectAvailability
11
- import com.rookmotion.rook.sdk.domain.enums.RequestPermissionsStatus
12
- import com.rookmotion.rook.sdk.domain.exception.HCException
13
- import com.rooksdk.utils.PermissionConversion
14
- import com.rooksdk.utils.SamsungAvailability
15
- import io.tryrook.sdk.samsung.RookSamsung
16
- import io.tryrook.sdk.samsung.domain.enums.SHRequestPermissionsStatus
17
- import io.tryrook.sdk.samsung.domain.enums.SamsungHealthAvailability
18
- import io.tryrook.sdk.samsung.domain.enums.SamsungHealthPermission
19
- import io.tryrook.sdk.samsung.domain.exception.SHException
20
- import kotlinx.coroutines.CoroutineScope
21
- import kotlinx.coroutines.Dispatchers
22
- import kotlinx.coroutines.SupervisorJob
23
- import kotlinx.coroutines.launch
24
-
25
- class RookPermissionsModule(reactContext: ReactApplicationContext, private val rookSamsung: RookSamsung):
26
- ReactContextBaseJavaModule(reactContext) {
27
-
28
- private val rookPermissionsManager: RookPermissionsManager by lazy {
29
- RookPermissionsManager(reactContext)
30
- }
31
-
32
- private val scope: CoroutineScope by lazy {
33
- CoroutineScope(SupervisorJob() + Dispatchers.Main)
34
- }
35
-
36
- @ReactMethod
37
- fun checkSamsungAvailability(promise: Promise) {
38
- scope.launch {
39
- rookSamsung.checkSamsungHealthAvailability().fold(
40
- { availability ->
41
- when (availability) {
42
- SamsungHealthAvailability.INSTALLED -> promise.resolve("INSTALLED")
43
- SamsungHealthAvailability.NOT_INSTALLED -> promise.resolve("NOT_INSTALLED")
44
- SamsungHealthAvailability.OUTDATED -> promise.resolve("OUTDATED")
45
- SamsungHealthAvailability.DISABLED -> promise.resolve("DISABLED")
46
- SamsungHealthAvailability.NOT_READY -> promise.resolve("NOT_READY")
47
- }
48
- },
49
- {
50
- promise.reject(it)
51
- },
52
- )
53
-
54
- }
55
- }
56
-
57
- /**
58
- * Checks the availability of Health Connect on the device (whether it is installed, not installed, or not supported).
59
- * @param promise A promise object to handle the result (resolved with the availability status or rejected on failure).
60
- */
61
- @ReactMethod
62
- fun checkHealthConnectAvailability(promise: Promise) {
63
- val r = rookPermissionsManager.checkHealthConnectAvailability()
64
-
65
- when(r) {
66
- HealthConnectAvailability.INSTALLED -> promise.resolve("INSTALLED")
67
- HealthConnectAvailability.NOT_INSTALLED -> promise.resolve("NOT_INSTALLED")
68
- HealthConnectAvailability.NOT_SUPPORTED -> promise.resolve("NOT_SUPPORTED")
69
- }
70
- }
71
-
72
- /**
73
- * Opens the Health Connect settings page on the device for the user to manage permissions.
74
- * @param promise A promise object to handle the result (resolved on success, rejected on failure).
75
- */
76
- @ReactMethod
77
- fun openHealthConnectSettings(promise: Promise) {
78
- scope.launch {
79
-
80
- val result = rookPermissionsManager.openHealthConnectSettings()
81
-
82
- result.fold({
83
- promise.resolve(true)
84
- },{
85
- if (it is HCException) {
86
- promise.reject(it.code.toString(), it.message, it)
87
- } else {
88
- promise.reject("1001", it.message, it)
89
- }
90
- })
91
-
92
- }
93
- }
94
-
95
- @ReactMethod
96
- fun checkSamsungHealthPermissions(promise: Promise){
97
- scope.launch {
98
- if (!SamsungAvailability.isSamsungAvailable(rookSamsung)){
99
- promise.reject(Throwable("Samsung health is not available"))
100
- return@launch
101
- }
102
-
103
- rookSamsung.checkSamsungHealthPermissions(SamsungHealthPermission.values().toSet()).fold(
104
- { hasAllPermissions ->
105
- promise.resolve(hasAllPermissions)
106
- },
107
- {
108
- if (it is SHException) {
109
- promise.reject(it.code.toString(), it.message, it)
110
- } else {
111
- promise.reject("1001", it.message, it)
112
- }
113
- }
114
- )
115
- }
116
- }
117
-
118
- @ReactMethod
119
- fun checkSamsungHealthPermissionsPartially(promise: Promise){
120
- scope.launch {
121
- if (!SamsungAvailability.isSamsungAvailable(rookSamsung)){
122
- promise.reject(Throwable("Samsung health is not available"))
123
- return@launch
124
- }
125
-
126
- rookSamsung.checkSamsungHealthPermissionsPartially(SamsungHealthPermission.values().toSet()).fold(
127
- { hasAllPermissions ->
128
- promise.resolve(hasAllPermissions)
129
- },
130
- {
131
- if (it is SHException) {
132
- promise.reject(it.code.toString(), it.message, it)
133
- } else {
134
- promise.reject("1001", it.message, it)
135
- }
136
- }
137
- )
138
- }
139
- }
140
-
141
- /**
142
- * Checks the current permissions granted by Health Conect to ensure the application has the necessary access.
143
- * @param promise A promise object to handle the result (resolved with permission status or rejected on failure).
144
- */
145
- @ReactMethod
146
- fun checkHealthConnectPermissions(promise: Promise) {
147
- scope.launch {
148
- val result = rookPermissionsManager.checkHealthConnectPermissions()
149
-
150
- result.fold({
151
- promise.resolve(it)
152
- }, {
153
- if (it is HCException) {
154
- promise.reject(it.code.toString(), it.message, it)
155
- } else {
156
- promise.reject("1001", it.message, it)
157
- }
158
- })
159
- }
160
- }
161
-
162
- @ReactMethod
163
- fun checkHealthConnectPermissionsPartially(promise: Promise) {
164
- scope.launch {
165
- val result = rookPermissionsManager.checkHealthConnectPermissionsPartially()
166
-
167
- result.fold({
168
- promise.resolve(it)
169
- }, {
170
- if (it is HCException) {
171
- promise.reject(it.code.toString(), it.message, it)
172
- } else {
173
- promise.reject("1001", it.message, it)
174
- }
175
- })
176
- }
177
- }
178
-
179
- /**
180
- * Requests Health Connect permissions from the user if they are not already granted.
181
- * @param promise A promise object to handle the result (resolved with the permission status or rejected on failure).
182
- */
183
- @ReactMethod
184
- fun requestHealthConnectPermissions(promise: Promise) {
185
- scope.launch {
186
- rookPermissionsManager.requestHealthConnectPermissions().fold({
187
- when(it) {
188
- RequestPermissionsStatus.REQUEST_SENT -> {
189
- promise.resolve("REQUEST_SENT")
190
- }
191
- RequestPermissionsStatus .ALREADY_GRANTED -> {
192
- promise.resolve("ALREADY_GRANTED")
193
- }
194
- }
195
- }, {
196
- if (it is HCException) {
197
- promise.reject(it.code.toString(), it.message, it)
198
- } else {
199
- promise.reject("1001", it.message, it)
200
- }
201
- })
202
- }
203
- }
204
-
205
- @ReactMethod
206
- fun requestSamsungPermissions(permissions: ReadableArray, promise: Promise) {
207
- val shPermissions = PermissionConversion.parseSamsungPermissions(permissions)
208
-
209
- scope.launch {
210
- if (!SamsungAvailability.isSamsungAvailable(rookSamsung)) {
211
- promise.reject(Throwable("Samsung Health is not available"))
212
- return@launch
213
- }
214
-
215
- rookSamsung.requestSamsungHealthPermissions(shPermissions).fold(
216
- {
217
- when (it) {
218
- SHRequestPermissionsStatus.ALREADY_GRANTED -> promise.resolve("ALREADY_GRANTED")
219
- SHRequestPermissionsStatus.REQUEST_SENT -> promise.resolve("REQUEST_SENT")
220
- }
221
- },
222
- {
223
- if (it is SHException) {
224
- promise.reject(it.code.toString(), it.message, it)
225
- } else {
226
- promise.reject("1001", it.message, it)
227
- }
228
- }
229
- )
230
- }
231
- }
232
-
233
- /**
234
- * Checks if the SDK has permissions to use background permissions
235
- * */
236
- @ReactMethod
237
- fun hasAndroidBackgroundPermissions(promise: Promise) {
238
- try {
239
- val result = rookPermissionsManager.checkAndroidPermissions()
240
- promise.resolve(result)
241
- }
242
- catch (it: Exception) {
243
- if (it is HCException) {
244
- promise.reject(it.code.toString(), it.message, it)
245
- } else {
246
- promise.reject("1001", it.message, it)
247
- }
248
- }
249
- }
250
-
251
- /**
252
- * Requests Android permissions for step counting if they are not already granted.
253
- * @param promise A promise object to handle the result (resolved with the permission status or rejected on failure).
254
- */
255
- @ReactMethod
256
- fun requestAndroidBackgroundPermissions(promise: Promise) {
257
- try {
258
- val response = rookPermissionsManager.requestAndroidPermissions()
259
-
260
- if (response == RequestPermissionsStatus.REQUEST_SENT)
261
- promise.resolve("REQUEST_SENT")
262
- else promise.resolve("ALREADY_GRANTED")
263
- }
264
- catch (it: Exception) {
265
- if (it is HCException) {
266
- promise.reject(it.code.toString(), it.message, it)
267
- } else {
268
- promise.reject("1001", it.message, it)
269
- }
270
- }
271
- }
272
-
273
- /**
274
- * Check if the SDK should request permissions to use android services
275
- * to show an sticky notification
276
- * */
277
- @ReactMethod
278
- fun shouldRequestAndroidBackgroundPermissions(promise: Promise) {
279
- val activity = reactApplicationContext.currentActivity
280
-
281
- if (activity == null) {
282
- promise.reject(Exception("Error trying to request permissions"))
283
- return
284
- }
285
-
286
- try {
287
- val r = RookPermissionsManager.shouldRequestAndroidPermissions(activity)
288
- promise.resolve(r)
289
- }
290
- catch (it: Exception) {
291
- if (it is HCException) {
292
- promise.reject(it.code.toString(), it.message, it)
293
- } else {
294
- promise.reject("1001", it.message, it)
295
- }
296
- }
297
- }
298
-
299
- @ReactMethod
300
- fun revokeHealthConnectPermissions(promise: Promise) {
301
- scope.launch {
302
- rookPermissionsManager.revokeHealthConnectPermissions()
303
- .fold({
304
- promise.resolve(true)
305
- }, {
306
- if (it is HCException) {
307
- promise.reject(it.code.toString(), it.message, it)
308
- } else {
309
- promise.reject("1001", it.message, it)
310
- }
311
- })
312
- }
313
- }
314
-
315
- /**
316
- * Checks the status of background read permissions using RookPermissionsManager.
317
- *
318
- * This function determines whether the app has permission to read health data in the background.
319
- * The result is returned as a promise to React Native.
320
- *
321
- * Possible results:
322
- * - "UNAVAILABLE": Background read is not available on this device.
323
- * - "PERMISSION_NOT_GRANTED": The background read permission has not been granted.
324
- * - "PERMISSION_GRANTED": The background read permission has been granted.
325
- *
326
- * If an error occurs while checking the permission status, the promise will be rejected.
327
- *
328
- * @param promise A React Native promise that resolves with the permission status or rejects with an error.
329
- */
330
- @ReactMethod
331
- fun checkHealthConnectBackgroundReadStatus(promise: Promise) {
332
- scope.launch {
333
- rookPermissionsManager.checkBackgroundReadStatus().fold(
334
- { status ->
335
- when (status) {
336
- BackgroundReadStatus.UNAVAILABLE -> promise.resolve("UNAVAILABLE")
337
- BackgroundReadStatus.PERMISSION_NOT_GRANTED -> promise.resolve("PERMISSION_NOT_GRANTED")
338
- BackgroundReadStatus.PERMISSION_GRANTED -> promise.resolve("PERMISSION_GRANTED")
339
- }
340
- },
341
- {
342
- if (it is HCException) {
343
- promise.reject(it.code.toString(), it.message, it)
344
- } else {
345
- promise.reject("1001", it.message, it)
346
- }
347
- }
348
- )
349
- }
350
- }
351
-
352
- companion object {
353
- const val NAME = "RookPermissionsModule"
354
- }
355
-
356
- override fun getName(): String {
357
- return NAME
358
- }
359
- }
@@ -1,102 +0,0 @@
1
- package com.rooksdk.modules
2
-
3
- import com.facebook.react.bridge.Promise
4
- import com.facebook.react.bridge.ReactApplicationContext
5
- import com.facebook.react.bridge.ReactContextBaseJavaModule
6
- import com.facebook.react.bridge.ReactMethod
7
- import com.facebook.react.bridge.ReadableMap
8
- import com.google.gson.Gson
9
- import com.rooksdk.utils.DatasourcesUtils.mapToDataSourceType
10
- import io.tryrook.api.sources.RookApiSources
11
- import io.tryrook.api.sources.domain.exception.ApiException
12
- import kotlinx.coroutines.CoroutineScope
13
- import kotlinx.coroutines.Dispatchers
14
- import kotlinx.coroutines.SupervisorJob
15
- import kotlinx.coroutines.launch
16
-
17
- class RookSourcesModule(
18
- private val reactContext: ReactApplicationContext
19
- ): ReactContextBaseJavaModule(reactContext) {
20
- private val scope: CoroutineScope by lazy {
21
- CoroutineScope(SupervisorJob() + Dispatchers.Main)
22
- }
23
-
24
- /**
25
- * Revokes authorization for a specific data source, disconnecting it from the app.
26
- * This method allows the user to revoke a previously authorized data source,
27
- * such as Garmin, Fitbit, or Oura, preventing further data synchronization.
28
- *
29
- * @param source The name of the data source to revoke (e.g., "Garmin", "Fitbit").
30
- * @param promise A promise object that resolves with true if the data source was revoked successfully,
31
- * or rejects with an error if the operation fails or if the source is invalid.
32
- */
33
- @ReactMethod
34
- fun revokeDataSource(userid: String, source: String, promise: Promise) {
35
- val type = mapToDataSourceType(source)
36
-
37
- if (type == null) {
38
- promise.reject("Invalid", "Enter a valid data source")
39
- return
40
- }
41
-
42
- scope.launch {
43
- RookApiSources(reactContext).revokeDataSource(userID = userid, dataSource = type).fold({
44
- promise.resolve(true)
45
- }, {
46
- if (it is ApiException) {
47
- promise.reject(it.code.toString(), it.message, it)
48
- } else {
49
- promise.reject("1001", it.message, it)
50
- }
51
- })
52
- }
53
- }
54
-
55
- @ReactMethod
56
- fun getAuthorizedDataSourcesV2(userid: String, promise: Promise) {
57
- scope.launch {
58
- RookApiSources(reactContext).getAuthorizedDataSourcesV2(
59
- userID = userid
60
- ).fold(
61
- {
62
- val gson = Gson()
63
- promise.resolve(gson.toJson(it))
64
- }, {
65
- if (it is ApiException) {
66
- promise.reject(it.code.toString(), it.message, it)
67
- } else {
68
- promise.reject("1001", it.message, it)
69
- }
70
- }
71
- )
72
- }
73
- }
74
-
75
- @ReactMethod
76
- fun getDataSourceAuthorizer(options: ReadableMap, promise: Promise) {
77
- val source = options.getString("dataSource") ?: ""
78
- val redirect = options.getString("redirectURL")
79
- val userid = options.getString("userID") ?: ""
80
-
81
- scope.launch {
82
- RookApiSources(reactContext).getDataSourceAuthorizer(
83
- dataSource = source,
84
- redirectUrl = redirect,
85
- userID = userid
86
- ).fold({ value ->
87
- val gson = Gson()
88
- promise.resolve(gson.toJson(value))
89
- }, {
90
- if (it is ApiException) {
91
- promise.reject(it.code.toString(), it.message, it)
92
- } else {
93
- promise.reject("1001", it.message, it)
94
- }
95
- })
96
- }
97
- }
98
-
99
- override fun getName(): String {
100
- return "RookSourcesModule"
101
- }
102
- }
@@ -1,119 +0,0 @@
1
- package com.rooksdk.modules
2
-
3
- import com.facebook.react.bridge.Promise
4
- import com.facebook.react.bridge.ReactApplicationContext
5
- import com.facebook.react.bridge.ReactContextBaseJavaModule
6
- import com.facebook.react.bridge.ReactMethod
7
- import com.rookmotion.rook.sdk.RookStepsManager
8
- import com.rookmotion.rook.sdk.domain.exception.HCException
9
- import io.tryrook.sdk.samsung.domain.exception.SHException
10
- import kotlinx.coroutines.CoroutineScope
11
- import kotlinx.coroutines.Dispatchers
12
- import kotlinx.coroutines.SupervisorJob
13
- import kotlinx.coroutines.cancel
14
- import kotlinx.coroutines.launch
15
-
16
- class RookStepsModule(
17
- reactContext: ReactApplicationContext
18
- ): ReactContextBaseJavaModule(reactContext) {
19
-
20
- private val scope: CoroutineScope by lazy {
21
- CoroutineScope(SupervisorJob() + Dispatchers.Main)
22
- }
23
-
24
- private val rookStepsManager: RookStepsManager by lazy {
25
- RookStepsManager(reactApplicationContext)
26
- }
27
-
28
- /**
29
- * Checks if step count data is available on the device.
30
- * @param promise A promise object to handle the result (resolved with true/false).
31
- */
32
- @ReactMethod
33
- fun isStepsAvailable(promise: Promise) {
34
- promise.resolve(rookStepsManager.isAvailable())
35
- }
36
-
37
- /**
38
- * Enables background step counting on Android devices, allowing the app to track steps continuously.
39
- * @param promise A promise object to handle the result (resolved on success, rejected on failure).
40
- */
41
- @ReactMethod
42
- fun enableBackgroundAndroidSteps(promise: Promise) {
43
- rookStepsManager.enableBackgroundAndroidSteps().fold({
44
- promise.resolve(true)
45
- }, {
46
- if (it is HCException) {
47
- promise.reject(it.code.toString(), it.message, it)
48
- } else {
49
- promise.reject("1001", it.message, it)
50
- }
51
- })
52
- }
53
-
54
- /**
55
- * Disables background step counting on Android devices.
56
- * @param promise A promise object to handle the result (resolved on success, rejected on failure).
57
- */
58
- @ReactMethod
59
- fun disableBackgroundAndroidSteps(promise: Promise) {
60
- rookStepsManager
61
- .disableBackgroundAndroidSteps()
62
- .fold({
63
- scope.cancel()
64
- promise.resolve(true)
65
- }, {
66
- if (it is HCException) {
67
- promise.reject(it.code.toString(), it.message, it)
68
- } else {
69
- promise.reject("1001", it.message, it)
70
- }
71
- })
72
- }
73
-
74
- /**
75
- * Checks whether background step tracking on Android is currently active.
76
- * This method queries the Rook SDK to determine if background step counting
77
- * is enabled and active on the device.
78
- *
79
- * @param promise A promise object that resolves with a boolean value:
80
- * - true if background step tracking is active,
81
- * - false otherwise.
82
- */
83
- @ReactMethod
84
- fun isBackgroundAndroidStepsActive(promise: Promise) {
85
- scope.launch {
86
- val response = rookStepsManager.isBackgroundAndroidStepsActive()
87
- promise.resolve(response)
88
- }
89
- }
90
-
91
- /**
92
- * Synchronizes the step count for the current day
93
- * This method queries the Rook SDK to retrieve the number of steps counted today
94
- * from the Android platform and returns the result to the React Native layer.
95
- *
96
- * @param promise A promise object that resolves with the step count as a string
97
- * or rejects with an error if the synchronization fails.
98
- */
99
- @ReactMethod
100
- fun syncTodayAndroidStepsCount(promise: Promise) {
101
- scope.launch {
102
- rookStepsManager
103
- .syncTodayAndroidStepsCount()
104
- .fold({
105
- promise.resolve(it.toString())
106
- }, {
107
- if (it is HCException) {
108
- promise.reject(it.code.toString(), it.message, it)
109
- } else {
110
- promise.reject("1001", it.message, it)
111
- }
112
- })
113
- }
114
- }
115
-
116
- override fun getName(): String {
117
- return "RookStepsModule"
118
- }
119
- }