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
@@ -1,106 +1,100 @@
1
1
  //
2
2
  // RookSources.swift
3
- // RNRookSdk
3
+ // react-native-rook-sdk
4
4
  //
5
- // Created by Javier Villanueva on 17/12/25.
5
+ // Created by Javier Villanueva on 07/10/25.
6
6
  //
7
7
 
8
8
  import RookSDK
9
- import React
10
9
 
11
- @objcMembers public class RookSources: NSObject {
12
-
10
+ @objc(RookSources)
11
+ public class RookSources: NSObject {
12
+
13
13
  lazy var dataSourceManager: DataSourcesManager = {
14
- return DataSourcesManager()
14
+ return DataSourcesManager()
15
15
  }()
16
-
16
+
17
17
  /**
18
18
  * Revoke the access to a API source
19
19
  *
20
20
  * @param resolve A block called with a boolean value indicating whether the result is.
21
21
  * @param reject A block called if an error occurs, such as Apple Health not being installed.
22
22
  */
23
+ @objc(revokeDataSource:source:resolve:reject:)
23
24
  public func revokeDataSource(
24
25
  _ userid: String, source: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
25
26
  ) {
26
27
  Task {
27
28
  do {
28
29
  let result = try await self.dataSourceManager.revokeDataSource(userId: userid, dataSource: source)
29
-
30
- DispatchQueue.main.async {
31
- resolve(result)
32
- }
30
+ resolve(result)
33
31
  } catch {
34
32
  if let rookError: RookError = error as? RookError {
35
33
  DispatchQueue.main.async {
36
34
  reject(String(rookError.code), rookError.errorDescription, error as NSError)
37
35
  }
38
36
  } else {
39
- DispatchQueue.main.async {
40
- reject("1001", "An error ocurred with SDK try again", error as NSError)
41
- }
37
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
42
38
  }
43
39
  }
44
40
  }
45
41
  }
46
42
 
47
- public func getDataSourceAuthorizer(
48
- _ options: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
49
- ) {
50
- Task {
51
- do {
52
- let source = options["dataSource"] as? String ?? ""
53
- let redirect = options["redirectURL"] as? String ?? ""
54
- let userid = options["userID"] as? String ?? ""
43
+ @objc(getDataSourceAuthorizer:resolve:reject:)
44
+ public func getDataSourceAuthorizer(
45
+ _ options: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
46
+ ) {
47
+ Task {
48
+ do {
49
+ let source = options["dataSource"] as? String ?? ""
50
+ let redirect = options["redirectURL"] as? String ?? ""
51
+ let userid = options["userID"] as? String ?? ""
55
52
 
56
- let result = try await self.dataSourceManager.getDataSourceAuthorizer(
57
- userId: userid,
58
- dataSource: source,
59
- redirectUrl: redirect
60
- )
61
-
62
- let dic = EncodableDataSourceAuthorizer(result).toDictionary()
53
+ let result = try await self.dataSourceManager.getDataSourceAuthorizer(
54
+ userId: userid,
55
+ dataSource: source,
56
+ redirectUrl: redirect
57
+ )
58
+
59
+ let dic = EncodableDataSourceAuthorizer(result).toDictionary()
63
60
 
61
+ DispatchQueue.main.async {
62
+ resolve(dic)
63
+ }
64
+ } catch {
65
+ if let rookError: RookError = error as? RookError {
64
66
  DispatchQueue.main.async {
65
- resolve(dic)
66
- }
67
- } catch {
68
- if let rookError: RookError = error as? RookError {
69
- DispatchQueue.main.async {
70
- reject(String(rookError.code), rookError.errorDescription, error as NSError)
71
- }
72
- } else {
73
- DispatchQueue.main.async {
74
- reject("1001", "An error ocurred with SDK try again", error as NSError)
75
- }
67
+ reject(String(rookError.code), rookError.errorDescription, error as NSError)
76
68
  }
69
+ } else {
70
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
77
71
  }
78
72
  }
79
73
  }
74
+ }
80
75
 
81
- public func getAuthorizedDataSourcesV2(
82
- _ userid: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
83
- ){
84
- Task {
85
- do {
86
-
87
- let result = try await self.dataSourceManager.getDataSourcesAuthorizedV2(userId: userid)
88
- let dic = result.map{ EncodableDataSource($0).toDictionary() }
89
-
76
+ @objc(getAuthorizedDataSourcesV2:resolve:reject:)
77
+ public func getAuthorizedDataSourcesV2(
78
+ _ userid: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
79
+ ){
80
+ Task {
81
+ do {
82
+
83
+ let result = try await self.dataSourceManager.getDataSourcesAuthorizedV2(userId: userid)
84
+ let dic = result.map{ EncodableDataSource($0).toDictionary() }
85
+
86
+ DispatchQueue.main.async {
87
+ resolve(dic)
88
+ }
89
+ } catch {
90
+ if let rookError: RookError = error as? RookError {
90
91
  DispatchQueue.main.async {
91
- resolve(dic)
92
- }
93
- } catch {
94
- if let rookError: RookError = error as? RookError {
95
- DispatchQueue.main.async {
96
- reject(String(rookError.code), rookError.errorDescription, error as NSError)
97
- }
98
- } else {
99
- DispatchQueue.main.async {
100
- reject("1001", "An error ocurred with SDK try again", error as NSError)
101
- }
92
+ reject(String(rookError.code), rookError.errorDescription, error as NSError)
102
93
  }
94
+ } else {
95
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
103
96
  }
104
97
  }
105
98
  }
99
+ }
106
100
  }
@@ -0,0 +1,5 @@
1
+ #import <React/RCTBridgeModule.h>
2
+
3
+ @interface RookSourcesModule : NSObject<RCTBridgeModule>
4
+
5
+ @end
@@ -0,0 +1,18 @@
1
+ #import "RookSourcesModule.h"
2
+ #import <React/RCTBridgeModule.h>
3
+
4
+ @interface RCT_EXTERN_MODULE(RookSources, NSObject)
5
+
6
+ RCT_EXTERN_METHOD(revokeDataSource: (NSString *) userid
7
+ source: (NSString *) source
8
+ resolve:(RCTPromiseResolveBlock)resolve
9
+ reject:(RCTPromiseRejectBlock)reject)
10
+
11
+ RCT_EXTERN_METHOD(getDataSourceAuthorizer: (NSDictionary *) options
12
+ resolve:(RCTPromiseResolveBlock)resolve
13
+ reject:(RCTPromiseRejectBlock)reject)
14
+
15
+ RCT_EXTERN_METHOD(getAuthorizedDataSourcesV2: (NSString *) userid
16
+ resolve: (RCTPromiseResolveBlock)resolve
17
+ reject:(RCTPromiseRejectBlock)reject)
18
+ @end
package/ios/RookSync.h ADDED
@@ -0,0 +1,5 @@
1
+ #import <React/RCTBridgeModule.h>
2
+
3
+ @interface RookSync: NSObject<RCTBridgeModule>
4
+
5
+ @end
package/ios/RookSync.m ADDED
@@ -0,0 +1,35 @@
1
+ //
2
+ // RookSync.m
3
+ // react-native-rook-sdk
4
+ //
5
+ // Created by Javier Villanueva on 15/09/25.
6
+ //
7
+
8
+ #import <React/RCTBridgeModule.h>
9
+
10
+ @interface RCT_EXTERN_MODULE(RookSync, NSObject)
11
+
12
+ RCT_EXTERN_METHOD(sync: (RCTResponseSenderBlock) callback)
13
+
14
+ RCT_EXTERN_METHOD(syncByDate: (NSString *) date
15
+ callback: (RCTResponseSenderBlock)callback)
16
+
17
+ RCT_EXTERN_METHOD(syncByDefinition: (NSString *) summary
18
+ syncDate: (NSString *) date
19
+ callback: (RCTResponseSenderBlock)callback)
20
+
21
+ RCT_EXTERN_METHOD(syncEvent:(NSString *) syncDate
22
+ event: (NSString *) event
23
+ resolve: (RCTPromiseResolveBlock) resolve
24
+ reject:(RCTPromiseRejectBlock)reject)
25
+
26
+ RCT_EXTERN_METHOD(getTodayAppleHealthSteps:(RCTPromiseResolveBlock) resolve
27
+ reject:(RCTPromiseRejectBlock)reject)
28
+
29
+ RCT_EXTERN_METHOD(syncTodayCaloriesCount:(RCTPromiseResolveBlock) resolve
30
+ reject:(RCTPromiseRejectBlock)reject)
31
+
32
+ RCT_EXTERN_METHOD(getTodayHeartRate:(RCTPromiseResolveBlock)resolve
33
+ reject:(RCTPromiseRejectBlock)reject)
34
+
35
+ @end
@@ -1,31 +1,28 @@
1
1
  //
2
- // RookSync.swift
3
- // RNRookSdk
2
+ // RookSyncModule.swift
3
+ // react-native-rook-sdk
4
4
  //
5
- // Created by Javier Villanueva on 18/12/25.
5
+ // Created by Javier Villanueva on 15/09/25.
6
6
  //
7
7
 
8
- import React
9
8
  import RookSDK
10
9
 
11
- @objcMembers public class RookSync: NSObject {
10
+ @objc(RookSync)
11
+ public class RookSync: NSObject {
12
12
  lazy var summaryManager: RookSummaryManager = {
13
13
  return RookSummaryManager()
14
14
  }()
15
-
15
+
16
16
  lazy var eventManager: RookEventsManager = {
17
17
  return RookEventsManager()
18
18
  }()
19
-
20
- lazy var dateHelper: DateHelper = {
21
- return DateHelper()
22
- }()
23
-
19
+
20
+ @objc(sync:)
24
21
  public func sync(_ callback: @escaping RCTResponseSenderBlock) {
25
22
  Task {
26
23
  do {
27
24
  let result = try await summaryManager.sync()
28
-
25
+
29
26
  DispatchQueue.main.async {
30
27
  callback([NSNull(), result])
31
28
  }
@@ -34,16 +31,15 @@ import RookSDK
34
31
  "code": "1001",
35
32
  "message": "An error ocurred with SDK try again"
36
33
  ]
37
-
34
+
38
35
  if let rookError: RookError = error as? RookError {
39
36
  errorInfo["code"] = String(rookError.code)
40
37
  errorInfo["message"] = rookError.errorDescription
41
-
38
+
42
39
  DispatchQueue.main.async {
43
40
  callback([errorInfo, false])
44
41
  }
45
42
  } else {
46
- errorInfo["message"] = error.localizedDescription
47
43
  DispatchQueue.main.async {
48
44
  callback([errorInfo, false])
49
45
  }
@@ -51,41 +47,42 @@ import RookSDK
51
47
  }
52
48
  }
53
49
  }
54
-
50
+
51
+ @objc(syncByDate:callback:)
55
52
  public func syncByDate(_ date: String, callback: @escaping RCTResponseSenderBlock) {
56
53
  Task {
57
54
  do {
58
- guard let parsed = dateHelper.getDateFromString(stringDate: date) else {
55
+
56
+ guard let parsed = parseStringToDate(date) else {
59
57
  let error: [String: Any] = [
60
58
  "code": "8",
61
59
  "message": "The provided date is not in the allowed to fetch the summary",
62
60
  ]
63
-
61
+
64
62
  callback([error, false])
65
63
  return
66
64
  }
67
-
65
+
68
66
  let result = try await summaryManager.sync(parsed)
69
-
67
+
70
68
  DispatchQueue.main.async {
71
69
  callback([NSNull(), result])
72
70
  }
73
-
71
+
74
72
  } catch {
75
73
  var errorInfo = [
76
74
  "code": "1001",
77
75
  "message": "An error ocurred with SDK try again"
78
76
  ]
79
-
77
+
80
78
  if let rookError: RookError = error as? RookError {
81
79
  errorInfo["code"] = String(rookError.code)
82
80
  errorInfo["message"] = rookError.errorDescription
83
-
81
+
84
82
  DispatchQueue.main.async {
85
83
  callback([errorInfo, false])
86
84
  }
87
85
  } else {
88
- errorInfo["message"] = error.localizedDescription
89
86
  DispatchQueue.main.async {
90
87
  callback([errorInfo, false])
91
88
  }
@@ -93,11 +90,12 @@ import RookSDK
93
90
  }
94
91
  }
95
92
  }
96
-
93
+
94
+ @objc(syncByDefinition:syncDate:callback:)
97
95
  public func syncByDefinition(_ summary: String, syncDate date: String, callback: @escaping RCTResponseSenderBlock) {
98
96
  Task {
99
97
  do {
100
- guard let parsed = dateHelper.getDateFromString(stringDate: date) else {
98
+ guard let parsed = parseStringToDate(date) else {
101
99
  let error: [String: Any] = [
102
100
  "code": "8",
103
101
  "message": "The provided date is not in the allowed to fetch the summary",
@@ -106,38 +104,37 @@ import RookSDK
106
104
  callback([error, false])
107
105
  return
108
106
  }
109
-
107
+
110
108
  guard let type = RookSDK.SummaryTypeToUpload(rawValue: summary) else {
111
109
  let error: [String: Any] = [
112
110
  "code": "8",
113
111
  "message": "The provided date is not in the allowed to fetch the summary",
114
112
  ]
115
-
113
+
116
114
  callback([error, false])
117
115
  return
118
116
  }
119
-
117
+
120
118
  let result = try await summaryManager.sync(parsed, [type])
121
-
119
+
122
120
  DispatchQueue.main.async {
123
121
  callback([NSNull(), result])
124
122
  }
125
-
123
+
126
124
  } catch {
127
125
  var errorInfo = [
128
126
  "code": "1001",
129
127
  "message": "An error ocurred with SDK try again"
130
128
  ]
131
-
129
+
132
130
  if let rookError: RookError = error as? RookError {
133
131
  errorInfo["code"] = String(rookError.code)
134
132
  errorInfo["message"] = rookError.errorDescription
135
-
133
+
136
134
  DispatchQueue.main.async {
137
135
  callback([errorInfo, false])
138
136
  }
139
137
  } else {
140
- errorInfo["message"] = error.localizedDescription
141
138
  DispatchQueue.main.async {
142
139
  callback([errorInfo, false])
143
140
  }
@@ -145,20 +142,21 @@ import RookSDK
145
142
  }
146
143
  }
147
144
  }
148
-
145
+
146
+ @objc(syncEvent:event:resolve:reject:)
149
147
  public func syncEvent(
150
148
  _ syncDate: String, event: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
151
149
  ) {
152
- guard let parsed = dateHelper.getDateFromString(stringDate: syncDate) else {
150
+ guard let parsed = parseStringToDate(syncDate) else {
153
151
  reject("9", "The provided date is not in the allowed range to extract events.", nil)
154
152
  return
155
153
  }
156
-
154
+
157
155
  guard let type = RookSDK.EventTypeToUpload(rawValue: event) else {
158
156
  reject("1001", "Invalid event type", nil)
159
157
  return
160
158
  }
161
-
159
+
162
160
  Task {
163
161
  do {
164
162
  let result = try await eventManager.syncEvents(date: parsed, eventType: type)
@@ -169,13 +167,14 @@ import RookSDK
169
167
  reject(String(rookError.code), rookError.errorDescription, error as NSError)
170
168
  }
171
169
  } else {
172
- reject("1001", error.localizedDescription, error as NSError)
170
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
173
171
  }
174
172
  }
175
173
  }
176
-
174
+
177
175
  }
178
-
176
+
177
+ @objc(getTodayAppleHealthSteps:reject:)
179
178
  public func getTodayAppleHealthSteps(
180
179
  _ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
181
180
  ) {
@@ -189,27 +188,26 @@ import RookSDK
189
188
  reject(String(rookError.code), rookError.errorDescription, error as NSError)
190
189
  }
191
190
  } else {
192
- DispatchQueue.main.async {
193
- reject("1001", error.localizedDescription, error as NSError)
194
- }
191
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
195
192
  }
196
193
  }
197
194
  }
198
195
  }
199
-
196
+
197
+ @objc(syncTodayCaloriesCount:reject:)
200
198
  public func syncTodayCaloriesCount(
201
199
  _ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
202
200
  ) {
203
201
  Task {
204
202
  do {
205
203
  let result = try await eventManager.getTodayCalories()
206
-
204
+
207
205
  let dic = [
208
206
  "active": result.activeCalories,
209
207
  "basal": result.basalCalories,
210
208
  "total": result.totalCalories
211
209
  ]
212
-
210
+
213
211
  resolve(dic)
214
212
  } catch {
215
213
  if let rookError: RookError = error as? RookError {
@@ -217,11 +215,43 @@ import RookSDK
217
215
  reject(String(rookError.code), rookError.errorDescription, error as NSError)
218
216
  }
219
217
  } else {
218
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ @objc(getTodayHeartRate:reject:)
225
+ public func getTodayHeartRate(
226
+ _ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock
227
+ ){
228
+ Task {
229
+ do {
230
+ let result = try await eventManager.getTodayHeartRate()
231
+ let mapper: HeartRateMapper = HeartRateMapper()
232
+ let data: [String: Any?] = mapper.map(result)
233
+
234
+ DispatchQueue.main.async {
235
+ resolve(data)
236
+ }
237
+ } catch {
238
+ if let rookError: RookError = error as? RookError {
220
239
  DispatchQueue.main.async {
221
- reject("1001", error.localizedDescription, error as NSError)
240
+ reject(String(rookError.code), rookError.errorDescription, error as NSError)
222
241
  }
242
+ } else {
243
+ reject("1001", "An error ocurred with SDK try again", error as NSError)
223
244
  }
224
245
  }
225
246
  }
226
247
  }
248
+
249
+ func parseStringToDate(_ input: String) -> Date? {
250
+ let dateFormatter = DateFormatter()
251
+ dateFormatter.dateFormat = "yyyy-MM-dd"
252
+ return dateFormatter.date(from: input)
253
+ }
227
254
  }
255
+
256
+
257
+
@@ -0,0 +1,18 @@
1
+ import Foundation
2
+
3
+ // La clase debe heredar de NSObject y tener @objc para ser visible
4
+ @objc(SwiftTest)
5
+ public class SwiftTest: NSObject {
6
+
7
+ // Un método estático (de clase) que también debe ser @objc
8
+ @objc
9
+ public static func getGreeting(name: String) -> String {
10
+ return "Hello, \(name) from Swift! 👋"
11
+ }
12
+
13
+ // Un método de instancia
14
+ @objc
15
+ public func showMessage() {
16
+ print("This is a message from a Swift instance.")
17
+ }
18
+ }
@@ -0,0 +1,12 @@
1
+ //
2
+ // react-native-rook-sdk-Bridging-Header.h
3
+ // Pods
4
+ //
5
+ // Created by Javier Villanueva on 04/09/25.
6
+ //
7
+
8
+ #ifndef react_native_rook_sdk_Bridging_Header_h
9
+ #define react_native_rook_sdk_Bridging_Header_h
10
+
11
+
12
+ #endif /* react_native_rook_sdk_Bridging_Header_h */
@@ -1,14 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useRookSyncGateContext = exports.RookSyncGateContext = void 0;
7
+ var _react = require("react");
1
8
  // RookSyncGateContext.tsx
2
- import { createContext, useContext, type Dispatch } from 'react';
3
- import type { RookSyncGateState, Action } from './RookSyncGateTypes';
4
9
 
5
10
  /* This line of code is creating a context using the `createContext` function provided by React. The
6
11
  context being created is named `RookSyncGateContext` and it is defined to hold an object with two
7
12
  properties: `state` of type `RookSyncGateState` and `dispatch` of type `Dispatch<Action>`. The
8
13
  `Dispatch` type is a generic type that represents a function to dispatch actions. */
9
- export const RookSyncGateContext = createContext<
10
- { state: RookSyncGateState; dispatch: Dispatch<Action> } | undefined
11
- >(undefined);
14
+ const RookSyncGateContext = exports.RookSyncGateContext = /*#__PURE__*/(0, _react.createContext)(undefined);
12
15
 
13
16
  /**
14
17
  * The function `useRookSyncGateContext` ensures that it is used within the `RookSyncGateProvider`
@@ -17,12 +20,12 @@ export const RookSyncGateContext = createContext<
17
20
  * `RookSyncGateContext` using the `useContext` hook. If the context is not found, it throws an error
18
21
  * indicating that `useRookSyncGateContext` should be used inside `RookSyncGateProvider`.
19
22
  */
20
- export const useRookSyncGateContext = () => {
21
- const context = useContext(RookSyncGateContext);
23
+ const useRookSyncGateContext = () => {
24
+ const context = (0, _react.useContext)(RookSyncGateContext);
22
25
  if (!context) {
23
- throw new Error(
24
- 'useRookSyncGateContext should be used inside RookSyncGateProvider'
25
- );
26
+ throw new Error('useRookSyncGateContext should be used inside RookSyncGateProvider');
26
27
  }
27
28
  return context;
28
29
  };
30
+ exports.useRookSyncGateContext = useRookSyncGateContext;
31
+ //# sourceMappingURL=RookSyncGateContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","RookSyncGateContext","exports","createContext","undefined","useRookSyncGateContext","context","useContext","Error"],"sourceRoot":"../../../src","sources":["context/RookSyncGateContext.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AADA;;AAIA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,gBAAG,IAAAE,oBAAa,EAE9CC,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EAC1C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACN,mBAAmB,CAAC;EAC/C,IAAI,CAACK,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CACb,mEACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB,CAAC;AAACJ,OAAA,CAAAG,sBAAA,GAAAA,sBAAA","ignoreList":[]}