react-native-rook-sdk 1.1.4 → 1.2.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 (83) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/rooksdk/RookSdkModule.kt +0 -16
  3. package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +2 -0
  4. package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +7 -1
  5. package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +71 -0
  6. package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +34 -0
  7. package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +90 -2
  8. package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +33 -0
  9. package/ios/RookSourcesModule.mm +21 -0
  10. package/ios/RookSyncModule.mm +87 -0
  11. package/lib/commonjs/context/RookSyncGateProvider.js +6 -1
  12. package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -1
  13. package/lib/commonjs/context/RookSyncGateReducer.js +5 -0
  14. package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -1
  15. package/lib/commonjs/hooks/index.js +14 -0
  16. package/lib/commonjs/hooks/index.js.map +1 -1
  17. package/lib/commonjs/hooks/useRookDataSources.js +24 -3
  18. package/lib/commonjs/hooks/useRookDataSources.js.map +1 -1
  19. package/lib/commonjs/hooks/useRookEvents.js +17 -13
  20. package/lib/commonjs/hooks/useRookEvents.js.map +1 -1
  21. package/lib/commonjs/hooks/useRookHealthConnect.js +64 -0
  22. package/lib/commonjs/hooks/useRookHealthConnect.js.map +1 -0
  23. package/lib/commonjs/hooks/useRookPermissions.js +12 -6
  24. package/lib/commonjs/hooks/useRookPermissions.js.map +1 -1
  25. package/lib/commonjs/hooks/useRookSummaries.js +5 -5
  26. package/lib/commonjs/hooks/useRookSync.js +69 -0
  27. package/lib/commonjs/hooks/useRookSync.js.map +1 -0
  28. package/lib/commonjs/modules/hook/useRookAutoSync.js +63 -28
  29. package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -1
  30. package/lib/commonjs/types/SyncTypes.js +2 -0
  31. package/lib/commonjs/types/SyncTypes.js.map +1 -0
  32. package/lib/commonjs/utils/nativeModules.js +2 -1
  33. package/lib/commonjs/utils/nativeModules.js.map +1 -1
  34. package/lib/module/context/RookSyncGateProvider.js +6 -1
  35. package/lib/module/context/RookSyncGateProvider.js.map +1 -1
  36. package/lib/module/context/RookSyncGateReducer.js +5 -0
  37. package/lib/module/context/RookSyncGateReducer.js.map +1 -1
  38. package/lib/module/hooks/index.js +2 -0
  39. package/lib/module/hooks/index.js.map +1 -1
  40. package/lib/module/hooks/useRookDataSources.js +24 -3
  41. package/lib/module/hooks/useRookDataSources.js.map +1 -1
  42. package/lib/module/hooks/useRookEvents.js +17 -13
  43. package/lib/module/hooks/useRookEvents.js.map +1 -1
  44. package/lib/module/hooks/useRookHealthConnect.js +56 -0
  45. package/lib/module/hooks/useRookHealthConnect.js.map +1 -0
  46. package/lib/module/hooks/useRookPermissions.js +12 -6
  47. package/lib/module/hooks/useRookPermissions.js.map +1 -1
  48. package/lib/module/hooks/useRookSummaries.js +5 -5
  49. package/lib/module/hooks/useRookSync.js +61 -0
  50. package/lib/module/hooks/useRookSync.js.map +1 -0
  51. package/lib/module/modules/hook/useRookAutoSync.js +63 -28
  52. package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
  53. package/lib/module/types/SyncTypes.js +2 -0
  54. package/lib/module/types/SyncTypes.js.map +1 -0
  55. package/lib/module/utils/nativeModules.js +2 -1
  56. package/lib/module/utils/nativeModules.js.map +1 -1
  57. package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
  58. package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
  59. package/lib/typescript/src/context/RookSyncGateTypes.d.ts +12 -8
  60. package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
  61. package/lib/typescript/src/hooks/index.d.ts +2 -0
  62. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  63. package/lib/typescript/src/hooks/useRookDataSources.d.ts +2 -1
  64. package/lib/typescript/src/hooks/useRookDataSources.d.ts.map +1 -1
  65. package/lib/typescript/src/hooks/useRookEvents.d.ts +1 -1
  66. package/lib/typescript/src/hooks/useRookEvents.d.ts.map +1 -1
  67. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts +6 -0
  68. package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -0
  69. package/lib/typescript/src/hooks/useRookPermissions.d.ts +8 -7
  70. package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
  71. package/lib/typescript/src/hooks/useRookSummaries.d.ts +1 -1
  72. package/lib/typescript/src/hooks/useRookSync.d.ts +6 -0
  73. package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -0
  74. package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
  75. package/lib/typescript/src/types/AuthorizedSources.d.ts +23 -10
  76. package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
  77. package/lib/typescript/src/types/PermissionsType.d.ts +1 -0
  78. package/lib/typescript/src/types/PermissionsType.d.ts.map +1 -1
  79. package/lib/typescript/src/types/SyncTypes.d.ts +14 -0
  80. package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -0
  81. package/lib/typescript/src/utils/nativeModules.d.ts +1 -0
  82. package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -1
  83. package/package.json +1 -1
@@ -92,6 +92,6 @@ dependencies {
92
92
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
93
93
  implementation 'com.google.code.gson:gson:2.11.0'
94
94
 
95
- implementation 'com.rookmotion.android:rook-sdk:1.10.0'
95
+ implementation 'com.rookmotion.android:rook-sdk:2.0.0-rc02'
96
96
  }
97
97
 
@@ -2,36 +2,20 @@ package com.rooksdk
2
2
 
3
3
  import android.content.IntentFilter
4
4
  import androidx.core.content.ContextCompat
5
- import com.facebook.react.bridge.Arguments
6
5
  import com.facebook.react.bridge.Promise
7
6
  import com.facebook.react.bridge.ReactApplicationContext
8
7
  import com.facebook.react.bridge.ReactContextBaseJavaModule
9
8
  import com.facebook.react.bridge.ReactMethod
10
9
  import com.facebook.react.bridge.ReadableMap
11
- import com.facebook.react.bridge.WritableArray
12
10
  import com.facebook.react.modules.core.DeviceEventManagerModule
13
11
  import com.rookmotion.rook.sdk.RookConfigurationManager
14
- import com.rookmotion.rook.sdk.RookDataSources
15
- import com.rookmotion.rook.sdk.RookEventManager
16
- import com.rookmotion.rook.sdk.RookHelpers
17
12
  import com.rookmotion.rook.sdk.RookPermissionsManager
18
- import com.rookmotion.rook.sdk.RookStepsManager
19
- import com.rookmotion.rook.sdk.RookSummaryManager
20
- import com.rookmotion.rook.sdk.RookYesterdaySyncManager
21
- import com.rookmotion.rook.sdk.domain.enums.DataSourceType
22
- import com.rookmotion.rook.sdk.domain.enums.HealthConnectAvailability
23
13
  import com.rookmotion.rook.sdk.domain.environment.RookAndroidClass
24
14
  import com.rookmotion.rook.sdk.domain.environment.RookEnvironment
25
15
  import com.rookmotion.rook.sdk.domain.model.RookConfiguration
26
- import com.rookmotion.rook.sdk.domain.enums.HealthDataType
27
- import com.rookmotion.rook.sdk.domain.enums.RequestPermissionsStatus
28
- import com.rookmotion.rook.sdk.domain.enums.SyncStatus
29
- import com.rookmotion.rook.sdk.domain.model.DataSource
30
- import com.rookmotion.rook.sdk.domain.model.SyncStatusWithData
31
16
  import com.rooksdk.broadcasts.AndroidPermissionsReceiverTransmitter
32
17
  import com.rooksdk.broadcasts.HealthConnectPermissionsReceiverTransmitter
33
18
  import com.rooksdk.utils.ReadableToWritable
34
- import com.rooksdk.utils.RookDateTime
35
19
  import kotlinx.coroutines.CoroutineScope
36
20
  import kotlinx.coroutines.Dispatchers
37
21
  import kotlinx.coroutines.SupervisorJob
@@ -5,6 +5,7 @@ import com.facebook.react.bridge.NativeModule
5
5
  import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.uimanager.ViewManager
7
7
  import com.rookmotion.rook.sdk.RookConfigurationManager
8
+ import com.rooksdk.modules.RookBackgroundSyncModule
8
9
  import com.rooksdk.modules.RookConfigurationModule
9
10
  import com.rooksdk.modules.RookPermissionsModule
10
11
  import com.rooksdk.modules.RookStepsModule
@@ -23,6 +24,7 @@ class RookSdkPackage : ReactPackage {
23
24
  RookPermissionsModule(reactContext),
24
25
  RookConfigurationModule(reactContext, rookConfigurationManager!!),
25
26
  RookSyncModule(reactContext, rookConfigurationManager!!),
27
+ RookBackgroundSyncModule(reactContext),
26
28
  RookStepsModule(reactContext)
27
29
  )
28
30
  }
@@ -35,10 +35,16 @@ class HealthConnectPermissionsReceiverTransmitter: BroadcastReceiver() {
35
35
  false
36
36
  ) ?: false
37
37
 
38
+ val backgroundReadStatus = intent?.getBooleanExtra(
39
+ RookPermissionsManager.EXTRA_HEALTH_CONNECT_BACKGROUND_PERMISSION_GRANTED,
40
+ false
41
+ ) ?: false
42
+
38
43
  reactApplicationContext?.also { reactContext ->
39
44
  val events = listOf(
40
45
  "ROOK_HEALTH_CONNECT_PERMISSIONS" to permissionsGranted,
41
- "ROOK_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED" to partiallyGranted
46
+ "ROOK_HEALTH_CONNECT_PERMISSIONS_PARTIALLY_GRANTED" to partiallyGranted,
47
+ "ROOK_HEALTH_CONNECT_BACKGROUND_PERMISSIONS" to backgroundReadStatus,
42
48
  )
43
49
 
44
50
  val emitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
@@ -0,0 +1,71 @@
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.RookBackgroundSyncManager
8
+ import kotlinx.coroutines.CoroutineScope
9
+ import kotlinx.coroutines.Dispatchers
10
+ import kotlinx.coroutines.SupervisorJob
11
+ import kotlinx.coroutines.launch
12
+
13
+ class RookBackgroundSyncModule (reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
14
+
15
+ private val backgroundSyncManager = RookBackgroundSyncManager(reactContext)
16
+
17
+ private val scope: CoroutineScope by lazy {
18
+ CoroutineScope(SupervisorJob() + Dispatchers.Main)
19
+ }
20
+
21
+ override fun getName(): String {
22
+ return "RookBackgroundModule"
23
+ }
24
+
25
+ /**
26
+ * Schedules the background synchronization of health data using Rook.
27
+ *
28
+ * This function enables automatic background data synchronization with Rook.
29
+ * It ensures that health data is periodically fetched and sent to Rook’s API
30
+ * based on the defined configuration.
31
+ *
32
+ * If the scheduling is successful, the promise resolves with "SUCCESS".
33
+ * If an error occurs, the promise rejects with an error message.
34
+ *
35
+ * @param promise A React Native promise that resolves when the sync is scheduled successfully or rejects with an error.
36
+ */
37
+ @ReactMethod
38
+ fun scheduleBackgroundSync(enableLogs: Boolean, promise: Promise) {
39
+ try {
40
+ backgroundSyncManager.schedule(enableLogs)
41
+ promise.resolve(true)
42
+ }
43
+ catch (e: Exception) {
44
+ promise.reject(e)
45
+ }
46
+
47
+ }
48
+
49
+ /**
50
+ * Cancels the scheduled background synchronization of health data.
51
+ *
52
+ * This function stops the automatic background sync previously scheduled using Rook.
53
+ * It ensures that no further health data is fetched and sent until scheduled again.
54
+ *
55
+ * If the cancellation is successful, the promise resolves with "SUCCESS".
56
+ * If an error occurs, the promise rejects with an error message.
57
+ *
58
+ * @param promise A React Native promise that resolves when the sync is canceled successfully or rejects with an error.
59
+ */
60
+ @ReactMethod
61
+ fun cancelBackgroundSync(promise: Promise) {
62
+ scope.launch {
63
+ try {
64
+ backgroundSyncManager.cancel()
65
+ promise.resolve(true)
66
+ } catch (e: Exception) {
67
+ promise.reject(e)
68
+ }
69
+ }
70
+ }
71
+ }
@@ -5,6 +5,7 @@ import com.facebook.react.bridge.ReactApplicationContext
5
5
  import com.facebook.react.bridge.ReactContextBaseJavaModule
6
6
  import com.facebook.react.bridge.ReactMethod
7
7
  import com.rookmotion.rook.sdk.RookPermissionsManager
8
+ import com.rookmotion.rook.sdk.domain.enums.BackgroundReadStatus
8
9
  import com.rookmotion.rook.sdk.domain.enums.HealthConnectAvailability
9
10
  import com.rookmotion.rook.sdk.domain.enums.RequestPermissionsStatus
10
11
  import kotlinx.coroutines.CoroutineScope
@@ -175,6 +176,39 @@ class RookPermissionsModule(reactContext: ReactApplicationContext):
175
176
  }
176
177
  }
177
178
 
179
+ /**
180
+ * Checks the status of background read permissions using RookPermissionsManager.
181
+ *
182
+ * This function determines whether the app has permission to read health data in the background.
183
+ * The result is returned as a promise to React Native.
184
+ *
185
+ * Possible results:
186
+ * - "UNAVAILABLE": Background read is not available on this device.
187
+ * - "PERMISSION_NOT_GRANTED": The background read permission has not been granted.
188
+ * - "PERMISSION_GRANTED": The background read permission has been granted.
189
+ *
190
+ * If an error occurs while checking the permission status, the promise will be rejected.
191
+ *
192
+ * @param promise A React Native promise that resolves with the permission status or rejects with an error.
193
+ */
194
+ @ReactMethod
195
+ fun checkBackgroundReadStatus(promise: Promise) {
196
+ scope.launch {
197
+ rookPermissionsManager.checkBackgroundReadStatus().fold(
198
+ { status ->
199
+ when (status) {
200
+ BackgroundReadStatus.UNAVAILABLE -> promise.resolve("UNAVAILABLE")
201
+ BackgroundReadStatus.PERMISSION_NOT_GRANTED -> promise.resolve("PERMISSION_NOT_GRANTED")
202
+ BackgroundReadStatus.PERMISSION_GRANTED -> promise.resolve("PERMISSION_GRANTED")
203
+ }
204
+ },
205
+ { throwable ->
206
+ promise.reject(throwable)
207
+ }
208
+ )
209
+ }
210
+ }
211
+
178
212
  companion object {
179
213
  const val NAME = "RookPermissionsModule"
180
214
  }
@@ -2,6 +2,7 @@ package com.rooksdk.modules
2
2
 
3
3
  import android.annotation.SuppressLint
4
4
  import com.facebook.react.bridge.Arguments
5
+ import com.facebook.react.bridge.Callback
5
6
  import com.facebook.react.bridge.Promise
6
7
  import com.facebook.react.bridge.ReactApplicationContext
7
8
  import com.facebook.react.bridge.ReactContextBaseJavaModule
@@ -13,11 +14,13 @@ import com.rookmotion.rook.sdk.RookContinuousUploadManager
13
14
  import com.rookmotion.rook.sdk.RookDataSources
14
15
  import com.rookmotion.rook.sdk.RookEventManager
15
16
  import com.rookmotion.rook.sdk.RookSummaryManager
17
+ import com.rookmotion.rook.sdk.RookSyncManager
16
18
  import com.rookmotion.rook.sdk.domain.enums.SyncStatus
17
19
  import com.rookmotion.rook.sdk.domain.model.SyncStatusWithData
18
20
  import com.rooksdk.utils.DatasourcesUtils.dataSourcesToWritableArray
19
21
  import com.rooksdk.utils.DatasourcesUtils.mapToDataSourceType
20
22
  import com.rooksdk.utils.RookDateTime
23
+ import com.rooksdk.utils.StringToSyncType
21
24
  import kotlinx.coroutines.CoroutineScope
22
25
  import kotlinx.coroutines.Dispatchers
23
26
  import kotlinx.coroutines.SupervisorJob
@@ -32,6 +35,10 @@ class RookSyncModule(
32
35
  RookContinuousUploadManager(reactContext)
33
36
  }
34
37
 
38
+ private val rookSync by lazy {
39
+ RookSyncManager(reactContext)
40
+ }
41
+
35
42
  private val rookEventManager by lazy {
36
43
  RookEventManager(rookConfigurationManager)
37
44
  }
@@ -379,7 +386,7 @@ class RookSyncModule(
379
386
  @ReactMethod
380
387
  fun syncTodayHealthConnectStepsCount(promise: Promise) {
381
388
  scope.launch {
382
- rookEventManager.syncTodayHealthConnectStepsCount().fold(
389
+ rookSync.getTodayStepsCount().fold(
383
390
  {
384
391
  when (it) {
385
392
  SyncStatusWithData.RecordsNotFound -> {
@@ -489,6 +496,23 @@ class RookSyncModule(
489
496
  }
490
497
  }
491
498
 
499
+ @ReactMethod
500
+ fun getDataSourceAuthorizer(options: ReadableMap, promise: Promise) {
501
+
502
+ val source = options.getString("dataSource") ?: ""
503
+ val redirect = options.getString("redirectURL")
504
+
505
+ scope.launch {
506
+ rookDataSources.getDataSourceAuthorizer(dataSource = source, redirectUrl = redirect)
507
+ .fold({ value ->
508
+ val gson = Gson()
509
+ promise.resolve(gson.toJson(value))
510
+ }, {
511
+ promise.reject(it)
512
+ })
513
+ }
514
+ }
515
+
492
516
  /**
493
517
  * Synchronizes the calories count for the current day from Health Connect.
494
518
  * This method queries the Health Connect platform via the Rook SDK to retrieve
@@ -500,7 +524,7 @@ class RookSyncModule(
500
524
  @ReactMethod
501
525
  fun syncTodayCaloriesCount(promise: Promise) {
502
526
  scope.launch {
503
- rookEventManager.getTodayCaloriesCount().fold(
527
+ rookSync.getTodayCaloriesCount().fold(
504
528
  {
505
529
  when (it) {
506
530
  SyncStatusWithData.RecordsNotFound -> {
@@ -524,6 +548,70 @@ class RookSyncModule(
524
548
  }
525
549
  }
526
550
 
551
+ @ReactMethod
552
+ fun sync(enableLogs: Boolean, callback: Callback) {
553
+ scope.launch {
554
+ rookSync.sync(enableLogs).fold({ result ->
555
+ callback.invoke(null, result)
556
+ }, {
557
+ val params = Arguments.createMap().apply {
558
+ putString("domain", it.localizedMessage ?: it.message)
559
+ }
560
+
561
+ callback.invoke(params, false)
562
+ })
563
+ }
564
+ }
565
+
566
+ @ReactMethod
567
+ fun syncByDate(date: String, callback: Callback) {
568
+ val localDate = RookDateTime.stringToLocalDate(date)
569
+
570
+ scope.launch {
571
+ rookSync.sync(localDate).fold({ result ->
572
+ callback.invoke(null, result)
573
+ }, {
574
+ val params = Arguments.createMap().apply {
575
+ putString("domain", it.localizedMessage ?: it.message)
576
+ }
577
+
578
+ callback.invoke(params, false)
579
+ })
580
+ }
581
+ }
582
+
583
+ @ReactMethod
584
+ fun syncByDefinition(summary: String, date: String, callback: Callback) {
585
+ val localDate = RookDateTime.stringToLocalDate(date)
586
+ val type = StringToSyncType.stringToSummary(summary)
587
+
588
+ scope.launch {
589
+ rookSync.sync(localDate, type).fold({ result ->
590
+ callback.invoke(null, result)
591
+ }, {
592
+ val params = Arguments.createMap().apply {
593
+ putString("domain", it.localizedMessage ?: it.message)
594
+ }
595
+
596
+ callback.invoke(params, false)
597
+ })
598
+ }
599
+ }
600
+
601
+ @ReactMethod
602
+ fun syncEvent(date: String, event: String, promise: Promise) {
603
+ val localDate = RookDateTime.stringToLocalDate(date)
604
+ val type = StringToSyncType.stringToEvent(event)
605
+
606
+ scope.launch {
607
+ rookSync.syncEvents(localDate, type).fold({ result ->
608
+ promise.resolve(result)
609
+ }, {
610
+ promise.reject(it)
611
+ })
612
+ }
613
+ }
614
+
527
615
  override fun getName(): String {
528
616
  return "RookSyncModule"
529
617
  }
@@ -0,0 +1,33 @@
1
+ package com.rooksdk.utils
2
+
3
+ import com.rookmotion.rook.sdk.domain.model.SyncType
4
+
5
+ object StringToSyncType {
6
+
7
+ fun stringToSummary(type: String): SyncType.Summary {
8
+ return when(type.lowercase()) {
9
+ "sleep" -> SyncType.Summary.SLEEP
10
+ "body" -> SyncType.Summary.BODY
11
+ "physical" -> SyncType.Summary.PHYSICAL
12
+ else -> SyncType.Summary.BODY
13
+ }
14
+ }
15
+
16
+ fun stringToEvent(value: String): SyncType.Event {
17
+ return when (value.lowercase()) {
18
+ "activity" -> SyncType.Event.ACTIVITY
19
+ "blood_glucose" -> SyncType.Event.BLOOD_GLUCOSE
20
+ "blood_pressure" -> SyncType.Event.BLOOD_PRESSURE
21
+ "body_metrics" -> SyncType.Event.BODY_METRICS
22
+ "heart_rate" -> SyncType.Event.HEART_RATE
23
+ "hydration" -> SyncType.Event.HYDRATION
24
+ "nutrition" -> SyncType.Event.NUTRITION
25
+ "oxygenation" -> SyncType.Event.OXYGENATION
26
+ "temperature" -> SyncType.Event.TEMPERATURE
27
+ "steps" -> SyncType.Event.STEPS
28
+ "calories" -> SyncType.Event.CALORIES
29
+ else -> SyncType.Event.STEPS
30
+ }
31
+ }
32
+
33
+ }
@@ -112,4 +112,25 @@ RCT_EXPORT_METHOD(getAuthorizedDataSources: (RCTPromiseResolveBlock) resolve
112
112
  }];
113
113
  }
114
114
 
115
+ RCT_EXPORT_METHOD(getDataSourceAuthorizer:(NSDictionary *)params
116
+ resolve:(RCTPromiseResolveBlock) resolve
117
+ reject:(RCTPromiseRejectBlock)reject ) {
118
+
119
+ [self checkSourcesInstance];
120
+
121
+ NSString * source = [RCTConvert NSString:params[@"dataSource"]];
122
+ NSString * redirect = [RCTConvert NSString:params[@"redirectURL"]];
123
+
124
+ [sourceManager getDataSourceAuthorizerWithDataSource:source
125
+ redirectUrl:redirect
126
+ completion:^(NSDictionary<NSString *,id> * _Nullable sources, NSError * _Nullable error) {
127
+ if(error) {
128
+ reject(error.description, error.localizedDescription, error);
129
+ return;
130
+ }
131
+
132
+ resolve(sources);
133
+ }];
134
+ }
135
+
115
136
  @end
@@ -381,4 +381,91 @@ RCT_EXPORT_METHOD(syncTodayCaloriesCount: (RCTPromiseResolveBlock) resolve
381
381
 
382
382
  }
383
383
 
384
+ RCT_EXPORT_METHOD(sync: (RCTResponseSenderBlock)callback) {
385
+
386
+ [self checkSummariesInstance];
387
+
388
+ [summaryManager syncWithCompletion:^(BOOL result, NSError * _Nullable error) {
389
+ if (error) {
390
+ NSDictionary *dictionary = @{
391
+ @"code" : [NSString stringWithFormat: @"%ld", (long)error.code],
392
+ @"domain" : error.domain,
393
+ @"info" : error.userInfo,
394
+ };
395
+
396
+
397
+ callback(@[dictionary, @(result)]);
398
+ } else {
399
+ callback(@[[NSNull null], @(result)]);
400
+ }
401
+ }];
402
+ }
403
+
404
+ RCT_EXPORT_METHOD(syncByDefinition: (NSString *) summary
405
+ syncDate: (NSString *) syncDate
406
+ callback: (RCTResponseSenderBlock)callback) {
407
+
408
+ [self checkSummariesInstance];
409
+
410
+ NSArray* types = [NSArray arrayWithObjects:summary, nil];
411
+
412
+ [summaryManager syncWithDate:parseDateFromString(syncDate)
413
+ summaryType:types
414
+ completion:^(BOOL result, NSError * _Nullable error) {
415
+ if (error) {
416
+ NSDictionary *dictionary = @{
417
+ @"code" : [NSString stringWithFormat: @"%ld", (long)error.code],
418
+ @"domain" : error.domain,
419
+ @"info" : error.userInfo,
420
+ };
421
+
422
+
423
+ callback(@[dictionary, @(result)]);
424
+ } else {
425
+ callback(@[[NSNull null], @(result)]);
426
+ }
427
+ }];
428
+
429
+ }
430
+
431
+ RCT_EXPORT_METHOD(syncByDate: (NSString *) syncDate
432
+ callback: (RCTResponseSenderBlock)callback) {
433
+
434
+ [self checkSummariesInstance];
435
+
436
+ [summaryManager syncWithDate:parseDateFromString(syncDate)
437
+ completion:^(BOOL result, NSError * _Nullable error) {
438
+ if (error) {
439
+ NSDictionary *dictionary = @{
440
+ @"code" : [NSString stringWithFormat: @"%ld", (long)error.code],
441
+ @"domain" : error.domain,
442
+ @"info" : error.userInfo,
443
+ };
444
+
445
+
446
+ callback(@[dictionary, @(result)]);
447
+ } else {
448
+ callback(@[[NSNull null], @(result)]);
449
+ }
450
+ }];
451
+
452
+ }
453
+
454
+ RCT_EXPORT_METHOD(syncEvent:(NSString *) syncDate
455
+ event: (NSString *) event
456
+ resolve: (RCTPromiseResolveBlock) resolve
457
+ reject:(RCTPromiseRejectBlock)reject) {
458
+
459
+ [self checkEventsInstance];
460
+
461
+ [eventsManager syncEventsWithDate:parseDateFromString(syncDate) eventType:event completion:^(BOOL result, NSError * _Nullable error) {
462
+ if(error != nil) {
463
+ reject(error.description, error.localizedDescription, error);
464
+ return;
465
+ }
466
+
467
+ resolve(@(result));
468
+ }];
469
+
470
+ }
384
471
  @end
@@ -23,7 +23,8 @@ const initialState = {
23
23
  password: '',
24
24
  ready: false,
25
25
  userID: '',
26
- permissions: 0
26
+ permissions: 0,
27
+ enableLogs: false
27
28
  };
28
29
 
29
30
  /*
@@ -63,6 +64,10 @@ const RookSyncGateProvider = ({
63
64
  type: 'SET_PASSWORD',
64
65
  password
65
66
  });
67
+ dispatch({
68
+ type: 'SET_ENABLE_LOGS',
69
+ enableLogs
70
+ });
66
71
  try {
67
72
  const rookSyncModule = (0, _getRookModule.getRookModule)();
68
73
  await rookSyncModule.initRook({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_RookSyncGateReducer","_RookSyncGateContext","_credentials","_getRookModule","_packageInfo","_useRookAutoSync","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initialState","clientUUID","environment","password","ready","userID","permissions","RookSyncGateProvider","children","enableLogs","enableBackgroundSync","enableEventsBackgroundSync","state","dispatch","useReducer","rookSyncGateReducer","startBackgroundServices","useRookAutoSync","enableBackground","useEffect","initModule","type","rookSyncModule","getRookModule","initRook","packageInfo","debug","credentials","uuid","pdw","error","console","log","createElement","RookSyncGateContext","Provider","value","_default","exports"],"sourceRoot":"../../../src","sources":["context/RookSyncGateProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_RookSyncGateReducer","_RookSyncGateContext","_credentials","_getRookModule","_packageInfo","_useRookAutoSync","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initialState","clientUUID","environment","password","ready","userID","permissions","enableLogs","RookSyncGateProvider","children","enableBackgroundSync","enableEventsBackgroundSync","state","dispatch","useReducer","rookSyncGateReducer","startBackgroundServices","useRookAutoSync","enableBackground","useEffect","initModule","type","rookSyncModule","getRookModule","initRook","packageInfo","debug","credentials","uuid","pdw","error","console","log","createElement","RookSyncGateContext","Provider","value","_default","exports"],"sourceRoot":"../../../src","sources":["context/RookSyncGateProvider.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAKA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AAAkE,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAXlE;;AAE6D;;AAW7D,MAAMW,YAA+B,GAAG;EACtCC,UAAU,EAAE,EAAE;EACdC,WAAW,EAAE,SAAS;EACtBC,QAAQ,EAAE,EAAE;EACZC,KAAK,EAAE,KAAK;EACZC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,CAAC;EACdC,UAAU,EAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,oBAAmD,GAAGA,CAAC;EAC3DN,WAAW;EACXD,UAAU;EACVE,QAAQ;EACRM,QAAQ;EACRF,UAAU,GAAG,KAAK;EAClBG,oBAAoB;EACpBC,0BAA0B,GAAG;AAC/B,CAAC,KAAK;EACJ,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACC,wCAAmB,EAAEf,YAAY,CAAC;EAEvE,MAAM;IAAEgB;EAAwB,CAAC,GAAG,IAAAC,gCAAe,EAAC;IAClDL,KAAK;IACLM,gBAAgB,EAAER,oBAAoB;IACtCH;EACF,CAAC,CAAC;EAEF,IAAAY,gBAAS,EAAC,MAAM;IACdC,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,CAAClB,WAAW,EAAED,UAAU,EAAEE,QAAQ,CAAC,CAAC;EAEvC,MAAMiB,UAAU,GAAG,MAAAA,CAAA,KAA2B;IAC5CP,QAAQ,CAAC;MAAEQ,IAAI,EAAE,sBAAsB;MAAEnB;IAAY,CAAC,CAAC;IACvDW,QAAQ,CAAC;MAAEQ,IAAI,EAAE,iBAAiB;MAAEpB;IAAW,CAAC,CAAC;IACjDY,QAAQ,CAAC;MAAEQ,IAAI,EAAE,cAAc;MAAElB;IAAS,CAAC,CAAC;IAC5CU,QAAQ,CAAC;MAAEQ,IAAI,EAAE,iBAAiB;MAAEd;IAAW,CAAC,CAAC;IAEjD,IAAI;MACF,MAAMe,cAAc,GAAG,IAAAC,4BAAa,EAAC,CAAC;MAEtC,MAAMD,cAAc,CAACE,QAAQ,CAAC;QAC5BtB,WAAW,EAAEuB,wBAAW,CAACC,KAAK,GAAG,aAAa,GAAGxB,WAAW;QAC5DD,UAAU,EAAEwB,wBAAW,CAACC,KAAK,GAAGC,wBAAW,CAACC,IAAI,GAAG3B,UAAU;QAC7DE,QAAQ,EAAEsB,wBAAW,CAACC,KAAK,GAAGC,wBAAW,CAACE,GAAG,GAAG1B,QAAQ;QACxDI,UAAU;QACVI,0BAA0B;QAC1BO,gBAAgB,EAAER;MACpB,CAAC,CAAC;MAEF,IAAIA,oBAAoB,EAAEM,uBAAuB,CAAC,CAAC;MAEnDH,QAAQ,CAAC;QAAEQ,IAAI,EAAE,WAAW;QAAEjB,KAAK,EAAE;MAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,OAAO0B,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAACF,KAAK,CAAC;IACpB;EACF,CAAC;EAED,oBACE3D,MAAA,CAAAe,OAAA,CAAA+C,aAAA,CAAC1D,oBAAA,CAAA2D,mBAAmB,CAACC,QAAQ;IAACC,KAAK,EAAE;MAAExB,KAAK;MAAEC;IAAS;EAAE,GACtDJ,QAC2B,CAAC;AAEnC,CAAC;AAAC,IAAA4B,QAAA,GAAAC,OAAA,CAAApD,OAAA,GAEasB,oBAAoB","ignoreList":[]}
@@ -46,6 +46,11 @@ const rookSyncGateReducer = (state, action) => {
46
46
  ...state,
47
47
  userID: action.userID
48
48
  };
49
+ case 'SET_ENABLE_LOGS':
50
+ return {
51
+ ...state,
52
+ enableLogs: action.enableLogs
53
+ };
49
54
  case 'SET_PERMISSIONS':
50
55
  return {
51
56
  ...state,
@@ -1 +1 @@
1
- {"version":3,"names":["rookSyncGateReducer","state","action","type","ready","environment","clientUUID","password","userID","permissions","exports"],"sourceRoot":"../../../src","sources":["context/RookSyncGateReducer.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,mBAAmB,GAAGA,CACjCC,KAAwB,EACxBC,MAAc,KACQ;EACtB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,WAAW;MACd,OAAO;QAAE,GAAGF,KAAK;QAAEG,KAAK,EAAEF,MAAM,CAACE;MAAM,CAAC;IAC1C,KAAK,sBAAsB;MACzB,OAAO;QAAE,GAAGH,KAAK;QAAEI,WAAW,EAAEH,MAAM,CAACG;MAAY,CAAC;IACtD,KAAK,iBAAiB;MACpB,OAAO;QAAE,GAAGJ,KAAK;QAAEK,UAAU,EAAEJ,MAAM,CAACI;MAAW,CAAC;IACpD,KAAK,cAAc;MACjB,OAAO;QAAE,GAAGL,KAAK;QAAEM,QAAQ,EAAEL,MAAM,CAACK;MAAS,CAAC;IAChD,KAAK,aAAa;MAChB,OAAO;QAAE,GAAGN,KAAK;QAAEO,MAAM,EAAEN,MAAM,CAACM;MAAO,CAAC;IAC5C,KAAK,iBAAiB;MACpB,OAAO;QACL,GAAGP,KAAK;QACRQ,WAAW,EAAER,KAAK,CAACQ,WAAW,GAAG;MACnC,CAAC;IACH;MACE,OAAOR,KAAK;EAChB;AACF,CAAC;AAACS,OAAA,CAAAV,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"names":["rookSyncGateReducer","state","action","type","ready","environment","clientUUID","password","userID","enableLogs","permissions","exports"],"sourceRoot":"../../../src","sources":["context/RookSyncGateReducer.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,mBAAmB,GAAGA,CACjCC,KAAwB,EACxBC,MAAc,KACQ;EACtB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,WAAW;MACd,OAAO;QAAE,GAAGF,KAAK;QAAEG,KAAK,EAAEF,MAAM,CAACE;MAAM,CAAC;IAC1C,KAAK,sBAAsB;MACzB,OAAO;QAAE,GAAGH,KAAK;QAAEI,WAAW,EAAEH,MAAM,CAACG;MAAY,CAAC;IACtD,KAAK,iBAAiB;MACpB,OAAO;QAAE,GAAGJ,KAAK;QAAEK,UAAU,EAAEJ,MAAM,CAACI;MAAW,CAAC;IACpD,KAAK,cAAc;MACjB,OAAO;QAAE,GAAGL,KAAK;QAAEM,QAAQ,EAAEL,MAAM,CAACK;MAAS,CAAC;IAChD,KAAK,aAAa;MAChB,OAAO;QAAE,GAAGN,KAAK;QAAEO,MAAM,EAAEN,MAAM,CAACM;MAAO,CAAC;IAC5C,KAAK,iBAAiB;MACpB,OAAO;QAAE,GAAGP,KAAK;QAAEQ,UAAU,EAAEP,MAAM,CAACO;MAAW,CAAC;IACpD,KAAK,iBAAiB;MACpB,OAAO;QACL,GAAGR,KAAK;QACRS,WAAW,EAAET,KAAK,CAACS,WAAW,GAAG;MACnC,CAAC;IACH;MACE,OAAOT,KAAK;EAChB;AACF,CAAC;AAACU,OAAA,CAAAX,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -39,6 +39,12 @@ Object.defineProperty(exports, "useRookEvents", {
39
39
  return _useRookEvents.useRookEvents;
40
40
  }
41
41
  });
42
+ Object.defineProperty(exports, "useRookHealthConnect", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _useRookHealthConnect.useRookHealthConnect;
46
+ }
47
+ });
42
48
  Object.defineProperty(exports, "useRookPermissions", {
43
49
  enumerable: true,
44
50
  get: function () {
@@ -51,12 +57,20 @@ Object.defineProperty(exports, "useRookSummaries", {
51
57
  return _useRookSummaries.useRookSummaries;
52
58
  }
53
59
  });
60
+ Object.defineProperty(exports, "useRookSync", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _useRookSync.useRookSync;
64
+ }
65
+ });
54
66
  var _useRookAndroidBackgroundSteps = require("./useRookAndroidBackgroundSteps");
55
67
  var _useRookAppleHealth = require("./useRookAppleHealth");
56
68
  var _useRookAppleHealthVariables = require("./useRookAppleHealthVariables");
57
69
  var _useRookConfiguration = require("./useRookConfiguration");
58
70
  var _useRookDataSources = require("./useRookDataSources");
59
71
  var _useRookEvents = require("./useRookEvents");
72
+ var _useRookHealthConnect = require("./useRookHealthConnect");
60
73
  var _useRookPermissions = require("./useRookPermissions");
61
74
  var _useRookSummaries = require("./useRookSummaries");
75
+ var _useRookSync = require("./useRookSync");
62
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_useRookAndroidBackgroundSteps","require","_useRookAppleHealth","_useRookAppleHealthVariables","_useRookConfiguration","_useRookDataSources","_useRookEvents","_useRookPermissions","_useRookSummaries"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,8BAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_useRookAndroidBackgroundSteps","require","_useRookAppleHealth","_useRookAppleHealthVariables","_useRookConfiguration","_useRookDataSources","_useRookEvents","_useRookHealthConnect","_useRookPermissions","_useRookSummaries","_useRookSync"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,8BAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA","ignoreList":[]}
@@ -67,18 +67,39 @@ const useRookDataSources = () => {
67
67
  */
68
68
  const getAuthorizedDataSources = async () => {
69
69
  (0, _isModuleReady.isModuleReady)(ready);
70
+ const response = await rookSync.current.getAuthorizedDataSources();
70
71
  if (_packageInfo.packageInfo.isAndroid) {
71
- const response = await rookSync.current.getAuthorizedDataSources();
72
72
  return JSON.parse(response);
73
73
  }
74
- return rookSync.current.getAuthorizedDataSources();
74
+ return response.reduce((acc, current) => {
75
+ return {
76
+ ...acc,
77
+ [`${current.source}`]: current.status
78
+ };
79
+ }, {});
80
+ };
81
+
82
+ /**
83
+ * Retrieves the authorization status for a specific data source linked to a given user.
84
+ * If the user is not authorized, an authorization URL is provided to start the process.
85
+ * If the user is already authorized, the response will indicate "authorized": true and no authorization URL will be
86
+ * returned. The redirect_url parameter can be used to specify where the user should be redirected
87
+ * after completing the authorization.
88
+ * @returns The function `getDataSourceAuthorizer` is returning a `DataSourceAuthorizer` object after
89
+ * parsing the response from `rookSync.current.getDataSourceAuthorizer()` as JSON.
90
+ */
91
+ const getDataSourceAuthorizer = async props => {
92
+ const response = await rookSync.current.getDataSourceAuthorizer(props);
93
+ if (_packageInfo.packageInfo.isAndroid) return JSON.parse(response);
94
+ return response;
75
95
  };
76
96
  return {
77
97
  ready,
78
98
  getAvailableDataSources,
79
99
  presentDataSourceView,
80
100
  revokeDataSource,
81
- getAuthorizedDataSources
101
+ getAuthorizedDataSources,
102
+ getDataSourceAuthorizer
82
103
  };
83
104
  };
84
105
  exports.useRookDataSources = useRookDataSources;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_isModuleReady","_reactNative","_RookSyncGateContext","_getNativeModule","_interopRequireDefault","_nativeModules","_packageInfo","e","__esModule","default","useRookDataSources","rookSync","useRef","getNativeModule","Platform","select","android","nativeModules","SYNC","ios","SOURCES","state","ready","useRookSyncGateContext","getAvailableDataSources","options","isModuleReady","current","presentDataSourceView","revokeDataSource","type","getAuthorizedDataSources","packageInfo","isAndroid","response","JSON","parse","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookDataSources.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,cAAA,GAAAD,sBAAA,CAAAL,OAAA;AAGA,IAAAO,YAAA,GAAAP,OAAA;AAAmD,SAAAK,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMnD;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EACrB,IAAAC,wBAAe,EACbC,qBAAQ,CAACC,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAMC,sBAAa,CAACD,OAAO,CAACE,IAAI;IACzCT,OAAO,EAAEA,CAAA,KAAMQ,sBAAa,CAACE,GAAG,CAACC;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EAED,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAG,IAAAC,2CAAsB,EAAC,CAAC;;EAE5B;AACF;AACA;AACA;EACE,MAAMC,uBAAuB,GAC3BC,OAAiB,IACS;IAC1B,IAAAC,4BAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOX,QAAQ,CAACgB,OAAO,CAACH,uBAAuB,CAACC,OAAO,CAAC;EAC1D,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMG,qBAAqB,GAAIH,OAAiB,IAAuB;IACrE,IAAAC,4BAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOX,QAAQ,CAACgB,OAAO,CAACC,qBAAqB,CAACH,OAAO,CAAC;EACxD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,MAAMI,gBAAgB,GAAIC,IAAoB,IAAuB;IACnE,IAAAJ,4BAAa,EAACJ,KAAK,CAAC;IAEpB,OAAOX,QAAQ,CAACgB,OAAO,CAACE,gBAAgB,CAACC,IAAI,CAAC;EAChD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMC,wBAAwB,GAAG,MAAAA,CAAA,KAAwC;IACvE,IAAAL,4BAAa,EAACJ,KAAK,CAAC;IAEpB,IAAIU,wBAAW,CAACC,SAAS,EAAE;MACzB,MAAMC,QAAQ,GAAG,MAAMvB,QAAQ,CAACgB,OAAO,CAACI,wBAAwB,CAAC,CAAC;MAClE,OAAOI,IAAI,CAACC,KAAK,CAACF,QAAQ,CAAC;IAC7B;IAEA,OAAOvB,QAAQ,CAACgB,OAAO,CAACI,wBAAwB,CAAC,CAAC;EACpD,CAAC;EAED,OAAO;IACLT,KAAK;IACLE,uBAAuB;IACvBI,qBAAqB;IACrBC,gBAAgB;IAChBE;EACF,CAAC;AACH,CAAC;AAACM,OAAA,CAAA3B,kBAAA,GAAAA,kBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_isModuleReady","_reactNative","_RookSyncGateContext","_getNativeModule","_interopRequireDefault","_nativeModules","_packageInfo","e","__esModule","default","useRookDataSources","rookSync","useRef","getNativeModule","Platform","select","android","nativeModules","SYNC","ios","SOURCES","state","ready","useRookSyncGateContext","getAvailableDataSources","options","isModuleReady","current","presentDataSourceView","revokeDataSource","type","getAuthorizedDataSources","response","packageInfo","isAndroid","JSON","parse","reduce","acc","source","status","getDataSourceAuthorizer","props","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookDataSources.ts"],"mappings":"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","ignoreList":[]}