react-native-rook-sdk 1.1.3 → 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.
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +0 -16
- package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +2 -0
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +7 -1
- package/android/src/main/java/com/rooksdk/modules/RookBackgroundSyncModule.kt +71 -0
- package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +34 -0
- package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +90 -2
- package/android/src/main/java/com/rooksdk/utils/StringToSyncType.kt +33 -0
- package/ios/RookSourcesModule.mm +21 -1
- package/ios/RookSyncModule.mm +87 -0
- package/lib/commonjs/context/RookSyncGateProvider.js +6 -1
- package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -1
- package/lib/commonjs/context/RookSyncGateReducer.js +5 -0
- package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -1
- package/lib/commonjs/hooks/index.js +14 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/hooks/useRookDataSources.js +24 -3
- package/lib/commonjs/hooks/useRookDataSources.js.map +1 -1
- package/lib/commonjs/hooks/useRookEvents.js +17 -13
- package/lib/commonjs/hooks/useRookEvents.js.map +1 -1
- package/lib/commonjs/hooks/useRookHealthConnect.js +64 -0
- package/lib/commonjs/hooks/useRookHealthConnect.js.map +1 -0
- package/lib/commonjs/hooks/useRookPermissions.js +12 -6
- package/lib/commonjs/hooks/useRookPermissions.js.map +1 -1
- package/lib/commonjs/hooks/useRookSummaries.js +5 -5
- package/lib/commonjs/hooks/useRookSync.js +69 -0
- package/lib/commonjs/hooks/useRookSync.js.map +1 -0
- package/lib/commonjs/modules/hook/useRookAutoSync.js +63 -28
- package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/commonjs/types/SyncTypes.js +2 -0
- package/lib/commonjs/types/SyncTypes.js.map +1 -0
- package/lib/commonjs/utils/nativeModules.js +2 -1
- package/lib/commonjs/utils/nativeModules.js.map +1 -1
- package/lib/module/context/RookSyncGateProvider.js +6 -1
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateReducer.js +5 -0
- package/lib/module/context/RookSyncGateReducer.js.map +1 -1
- package/lib/module/hooks/index.js +2 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/useRookDataSources.js +24 -3
- package/lib/module/hooks/useRookDataSources.js.map +1 -1
- package/lib/module/hooks/useRookEvents.js +17 -13
- package/lib/module/hooks/useRookEvents.js.map +1 -1
- package/lib/module/hooks/useRookHealthConnect.js +56 -0
- package/lib/module/hooks/useRookHealthConnect.js.map +1 -0
- package/lib/module/hooks/useRookPermissions.js +12 -6
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSummaries.js +5 -5
- package/lib/module/hooks/useRookSync.js +61 -0
- package/lib/module/hooks/useRookSync.js.map +1 -0
- package/lib/module/modules/hook/useRookAutoSync.js +63 -28
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/module/types/SyncTypes.js +2 -0
- package/lib/module/types/SyncTypes.js.map +1 -0
- package/lib/module/utils/nativeModules.js +2 -1
- package/lib/module/utils/nativeModules.js.map +1 -1
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts +12 -8
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
- package/lib/typescript/src/hooks/index.d.ts +2 -0
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookDataSources.d.ts +2 -1
- package/lib/typescript/src/hooks/useRookDataSources.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookEvents.d.ts +1 -1
- package/lib/typescript/src/hooks/useRookEvents.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookHealthConnect.d.ts +6 -0
- package/lib/typescript/src/hooks/useRookHealthConnect.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useRookPermissions.d.ts +8 -7
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSummaries.d.ts +1 -1
- package/lib/typescript/src/hooks/useRookSync.d.ts +6 -0
- package/lib/typescript/src/hooks/useRookSync.d.ts.map +1 -0
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
- package/lib/typescript/src/types/AuthorizedSources.d.ts +23 -10
- package/lib/typescript/src/types/AuthorizedSources.d.ts.map +1 -1
- package/lib/typescript/src/types/PermissionsType.d.ts +1 -0
- package/lib/typescript/src/types/PermissionsType.d.ts.map +1 -1
- package/lib/typescript/src/types/SyncTypes.d.ts +14 -0
- package/lib/typescript/src/types/SyncTypes.d.ts.map +1 -0
- package/lib/typescript/src/utils/nativeModules.d.ts +1 -0
- package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-rook-sdk.podspec +1 -1
package/android/build.gradle
CHANGED
|
@@ -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:
|
|
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
|
}
|
package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
+
}
|
package/ios/RookSourcesModule.mm
CHANGED
|
@@ -102,8 +102,28 @@ RCT_EXPORT_METHOD(getAuthorizedDataSources: (RCTPromiseResolveBlock) resolve
|
|
|
102
102
|
|
|
103
103
|
[self checkSourcesInstance];
|
|
104
104
|
|
|
105
|
-
[sourceManager getAuthorizedDataSourcesWithCompletion:^(NSDictionary<NSString *,id> * _Nullable sources, NSError * _Nullable error) {
|
|
105
|
+
[sourceManager getAuthorizedDataSourcesWithCompletion:^(NSArray<NSDictionary<NSString *,id> *> * _Nullable sources, NSError * _Nullable error) {
|
|
106
|
+
if(error) {
|
|
107
|
+
reject(error.description, error.localizedDescription, error);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
106
110
|
|
|
111
|
+
resolve(sources);
|
|
112
|
+
}];
|
|
113
|
+
}
|
|
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) {
|
|
107
127
|
if(error) {
|
|
108
128
|
reject(error.description, error.localizedDescription, error);
|
|
109
129
|
return;
|
package/ios/RookSyncModule.mm
CHANGED
|
@@ -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","
|
|
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":"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","ignoreList":[]}
|
|
@@ -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;
|
|
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":"
|
|
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
|
|
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","
|
|
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":[]}
|