react-native-spike-sdk 4.0.13-beta.2 → 4.0.13-beta.3

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 (31) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/spikesdk/SpikeSdkModule.kt +389 -0
  3. package/ios/SpikeExceptionMapper.swift +2 -0
  4. package/lib/commonjs/SpikeException.js +2 -0
  5. package/lib/commonjs/SpikeException.js.map +1 -1
  6. package/lib/commonjs/index.js +7 -0
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/v3/DataModels/HealthConnectAvailabilityStatus.js +13 -0
  9. package/lib/commonjs/v3/DataModels/HealthConnectAvailabilityStatus.js.map +1 -0
  10. package/lib/commonjs/v3/SpikeRNConnectionAPIv3.js +143 -27
  11. package/lib/commonjs/v3/SpikeRNConnectionAPIv3.js.map +1 -1
  12. package/lib/module/SpikeException.js +2 -0
  13. package/lib/module/SpikeException.js.map +1 -1
  14. package/lib/module/index.js +2 -1
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/v3/DataModels/HealthConnectAvailabilityStatus.js +7 -0
  17. package/lib/module/v3/DataModels/HealthConnectAvailabilityStatus.js.map +1 -0
  18. package/lib/module/v3/SpikeRNConnectionAPIv3.js +143 -27
  19. package/lib/module/v3/SpikeRNConnectionAPIv3.js.map +1 -1
  20. package/lib/typescript/src/SpikeException.d.ts.map +1 -1
  21. package/lib/typescript/src/index.d.ts +2 -1
  22. package/lib/typescript/src/index.d.ts.map +1 -1
  23. package/lib/typescript/src/v3/DataModels/HealthConnectAvailabilityStatus.d.ts +6 -0
  24. package/lib/typescript/src/v3/DataModels/HealthConnectAvailabilityStatus.d.ts.map +1 -0
  25. package/lib/typescript/src/v3/SpikeRNConnectionAPIv3.d.ts +74 -2
  26. package/lib/typescript/src/v3/SpikeRNConnectionAPIv3.d.ts.map +1 -1
  27. package/package.json +8 -4
  28. package/src/SpikeException.ts +3 -0
  29. package/src/index.ts +2 -0
  30. package/src/v3/DataModels/HealthConnectAvailabilityStatus.ts +6 -0
  31. package/src/v3/SpikeRNConnectionAPIv3.ts +176 -45
@@ -76,7 +76,7 @@ dependencies {
76
76
  //noinspection GradleDynamicVersion
77
77
  implementation "com.facebook.react:react-android:0.71.3"
78
78
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
79
- implementation 'com.spikeapi.sdk:spike-sdk:3.1.6'
79
+ implementation 'com.spikeapi.sdk:spike-sdk:4.0.12-beta.1'
80
80
  implementation 'androidx.core:core-ktx:1.9.0'
81
81
  implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
82
82
  implementation 'com.google.code.gson:gson:2.10.1'
@@ -14,6 +14,12 @@ import com.spikeapi.SpikeExceptions
14
14
  import com.spikeapi.SpikeLogger
15
15
  import com.spikeapi.SpikePackageChecker
16
16
  import com.spikeapi.healthconnect.HealthConnectAvailability
17
+ import com.spikeapi.apiv3.SpikeConnectionAPIv3
18
+ import com.spikeapi.apiv3.datamodels.MetricType
19
+ import com.spikeapi.apiv3.datamodels.StatisticsType
20
+ import com.spikeapi.apiv3.datamodels.StatisticsInterval
21
+ import com.spikeapi.apiv3.datamodels.StatisticsFilter
22
+ import com.spikeapi.apiv3.healthconnect.HealthConnectPermissionManager
17
23
  import kotlinx.coroutines.CoroutineScope
18
24
  import kotlinx.coroutines.Dispatchers
19
25
  import kotlinx.coroutines.SupervisorJob
@@ -22,6 +28,10 @@ import kotlinx.coroutines.sync.Mutex
22
28
  import kotlinx.coroutines.sync.withLock
23
29
  import java.time.OffsetDateTime
24
30
  import java.util.UUID
31
+ import android.util.Log
32
+ import java.time.Instant
33
+ import java.time.format.DateTimeParseException
34
+
25
35
 
26
36
  fun <I, O> ComponentActivity.registerActivityResultLauncher(
27
37
  contract: ActivityResultContract<I, O>,
@@ -513,7 +523,9 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
513
523
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
514
524
  .emit(eventName, params)
515
525
  }
526
+
516
527
  override fun onHostResume() {
528
+ // Old SDK
517
529
  checkPermissionsFor?.let {
518
530
  it.second.forEach { permission ->
519
531
  checkPermissionsGranted(
@@ -524,6 +536,12 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
524
536
  }
525
537
  }
526
538
  checkPermissionsFor = null
539
+
540
+ // New SDK V3
541
+ checkPermissionsForV3?.let {
542
+ areAllPermissionsGranted(it.first, it.second, it.third)
543
+ }
544
+ checkPermissionsForV3 = null
527
545
  }
528
546
 
529
547
  override fun onHostPause() {
@@ -554,4 +572,375 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
554
572
  }
555
573
  }
556
574
 
575
+ // ------------------------- V3 -------------------------
576
+
577
+ @ReactMethod
578
+ fun setWrapper(type: String, version: String) {
579
+ SpikeConnectionAPIv3.setWrapper(type, version)
580
+ }
581
+
582
+ @ReactMethod
583
+ fun createConnectionAPIv3(
584
+ uuid: String,
585
+ appId: String,
586
+ authToken: String,
587
+ customerEndUserId: String,
588
+ promise: Promise
589
+ ) {
590
+ scope.launch {
591
+ try {
592
+ val connection = SpikeConnectionAPIv3.createConnection(
593
+ appId = appId,
594
+ authToken = authToken,
595
+ customerEndUserId = customerEndUserId,
596
+ context = reactApplicationContext
597
+ )
598
+
599
+ addConnectionV3(connection, uuid)
600
+ promise.resolve(uuid)
601
+
602
+ } catch (e: SpikeExceptions) {
603
+ promise.reject(e.mapException(), e.message)
604
+ }
605
+ }
606
+ }
607
+
608
+ /// --- Read Health connect data ---
609
+
610
+ @ReactMethod
611
+ fun getStatisticsconnectionUUID(
612
+ connectionUUID: String,
613
+ types: ReadableArray, // [StatisticsType]
614
+ from: String, // Instant
615
+ to: String, // Instant
616
+ interval: String, // StatisticsInterval
617
+ filter: String?, // StatisticsFilter?
618
+ promise: Promise
619
+ ) {
620
+ scope.launch {
621
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
622
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
623
+ "Connection not found (enableHealthConnectIntegration)"
624
+ )
625
+ val statTypes = types.toArrayList().mapNotNull {
626
+ StatisticsType.fromValue(it as String)
627
+ }.toSet()
628
+ val dateFrom = convertIsoStringToInstant(from)
629
+ val dateTo = convertIsoStringToInstant(to)
630
+ val statsInterval = StatisticsInterval.fromValue(interval)
631
+ val statsFilter = StatisticsFilter.fromValue(filter)
632
+
633
+ val result = connection.getStatistics(
634
+ types = statTypes,
635
+ from = dateFrom,
636
+ to = dateTo,
637
+ interval = statsInterval,
638
+ filter = statsFilter
639
+ )
640
+
641
+ promise.resolve(SpikeConnectionAPIv3.convertToJson(result))
642
+ }
643
+ }
644
+
645
+ @ReactMethod
646
+ fun getRecordsconnectionUUID(
647
+ connectionUUID: String,
648
+ types: ReadableArray, // [MetricType]
649
+ from: String, // Instant
650
+ to: String, // Instant
651
+ filter: String?, // StatisticsFilter?
652
+ promise: Promise
653
+ ) {
654
+ scope.launch {
655
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
656
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
657
+ "Connection not found (enableHealthConnectIntegration)"
658
+ )
659
+ val statTypes = types.toArrayList().mapNotNull {
660
+ MetricType.fromValue(it as String)
661
+ }.toSet()
662
+ val dateFrom = convertIsoStringToInstant(from)
663
+ val dateTo = convertIsoStringToInstant(to)
664
+ val statsFilter = StatisticsFilter.fromValue(filter)
665
+
666
+ val result = connection.getRecords(
667
+ types = statTypes,
668
+ from = dateFrom,
669
+ to = dateTo,
670
+ filter = statsFilter
671
+ )
672
+
673
+ promise.resolve(SpikeConnectionAPIv3.convertToJson(result))
674
+ }
675
+ }
676
+
677
+ /// --- Health connect permissions ---
678
+
679
+ @ReactMethod
680
+ fun checkHealthConnectAvailability(connectionUUID: String, promise: Promise) {
681
+ scope.launch {
682
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
683
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
684
+ "Connection not found (checkHealthConnectAvailability)"
685
+ )
686
+
687
+ val result = connection.checkHealthConnectAvailability()
688
+ promise.resolve(result.value)
689
+ }
690
+ }
691
+
692
+ @ReactMethod
693
+ fun openHealthConnectInstallation(connectionUUID: String, promise: Promise) {
694
+ scope.launch {
695
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
696
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
697
+ "Connection not found (openHealthConnectInstallation)"
698
+ )
699
+
700
+ connection.openHealthConnectInstallation()
701
+ promise.resolve(true)
702
+ }
703
+ }
704
+
705
+ @ReactMethod
706
+ fun enableHealthConnectIntegration(connectionUUID: String, promise: Promise) {
707
+ scope.launch {
708
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
709
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
710
+ "Connection not found (enableHealthConnectIntegration)"
711
+ )
712
+
713
+ connection.enableHealthConnectIntegration()
714
+ Log.d("SpikeSdkModule", "Health Connect integration enabled")
715
+ promise.resolve(true)
716
+ }
717
+ }
718
+
719
+ @ReactMethod
720
+ fun disableHealthConnectIntegration(connectionUUID: String, promise: Promise) {
721
+ scope.launch {
722
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
723
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
724
+ "Connection not found (enableHealthConnectIntegration)"
725
+ )
726
+
727
+ connection.disableHealthConnectIntegration()
728
+ Log.d("SpikeSdkModule", "Health Connect integration disabled")
729
+ promise.resolve(true)
730
+ }
731
+ }
732
+
733
+ @ReactMethod
734
+ fun isHealthConnectIntegrationEnabled(connectionUUID: String, promise: Promise) {
735
+ scope.launch {
736
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
737
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
738
+ "Connection not found (enableHealthConnectIntegration)"
739
+ )
740
+
741
+ val result = connection.isHealthConnectIntegrationEnabled()
742
+ Log.d("SpikeSdkModule", "Health Connect integration is " + if (result) { "enabled" } else ( "disabled" ))
743
+ promise.resolve(result)
744
+ }
745
+ }
746
+
747
+ @ReactMethod
748
+ fun getGrantedHealthKitPermissions(connectionUUID: String, promise: Promise) {
749
+ scope.launch {
750
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
751
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
752
+ "Connection not found (getGrantedHealthKitPermissions)"
753
+ )
754
+ if (!connection.isHealthConnectIntegrationEnabled()) {
755
+ return@launch promise.reject(
756
+ SpikeExceptions.SpikeException("Health Connect is disabled").mapException(),
757
+ "Health Connect should be enabled before calling getGrantedHealthKitPermissions"
758
+ )
759
+ }
760
+
761
+ val permissions = connection
762
+ .getHealthConnectPermissionManager()
763
+ .getGrantedPermissions()
764
+
765
+ val result = Arguments.createArray()
766
+ permissions.forEach {
767
+ result.pushString(it)
768
+ }
769
+
770
+ Log.w("SpikeSdkModule", "$permissions")
771
+ promise.resolve(result)
772
+ }
773
+ }
774
+
775
+ @ReactMethod
776
+ fun getHealthConnectPermissionsForStatisticTypes(connectionUUID: String, statisticTypes: ReadableArray, promise: Promise) {
777
+ scope.launch {
778
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
779
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
780
+ "Connection not found (getPermissionsForHealthConnect)"
781
+ )
782
+ if (!connection.isHealthConnectIntegrationEnabled()) {
783
+ return@launch promise.reject(
784
+ SpikeExceptions.SpikeException("Health Connect is disabled").mapException(),
785
+ "Health Connect should be enabled before calling getHealthConnectPermissionsForStatisticTypes"
786
+ )
787
+ }
788
+ val permissionManager = connection.getHealthConnectPermissionManager()
789
+
790
+ val statTypes = statisticTypes.toArrayList().mapNotNull {
791
+ StatisticsType.fromValue(it as String)
792
+ }.toSet()
793
+
794
+ val permissions = permissionManager
795
+ .getPermissionsForStatistics(statisticsTypes = statTypes)
796
+
797
+ val result = Arguments.createArray()
798
+ permissions.forEach {
799
+ result.pushString(it)
800
+ }
801
+
802
+ // Log.w("SpikeSdkModule", "$permissions")
803
+ promise.resolve(result)
804
+ }
805
+ }
806
+
807
+ @ReactMethod
808
+ fun revokeAllHealthConnectPermissions(connectionUUID: String, promise: Promise) {
809
+ scope.launch {
810
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
811
+ SpikeExceptions.SpikeException("Connection not found").mapException(),
812
+ "Connection not found (revokeAllHealthConnectPermissions)"
813
+ )
814
+ if (!connection.isHealthConnectIntegrationEnabled()) {
815
+ return@launch promise.reject(
816
+ SpikeExceptions.SpikeException("Health Connect is disabled").mapException(),
817
+ "Health Connect should be enabled before calling revokeAllHealthConnectPermissions"
818
+ )
819
+ }
820
+
821
+ connection
822
+ .getHealthConnectPermissionManager()
823
+ .revokeAllPermissions()
824
+
825
+ promise.resolve(true)
826
+ }
827
+ }
828
+
829
+ @ReactMethod
830
+ fun requestPermissionsFromHealthConnect(connectionUUID: String, permissions: ReadableArray, promise: Promise) {
831
+ scope.launch {
832
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
833
+ SpikeExceptions.SpikeException(
834
+ "Connection not found"
835
+ ).mapException(), "Connection not found"
836
+ )
837
+ if (!connection.isHealthConnectIntegrationEnabled()) {
838
+ return@launch promise.reject(
839
+ SpikeExceptions.SpikeException("Health Connect is disabled").mapException(),
840
+ "Health Connect should be enabled before calling requestPermissionsFromHealthConnect"
841
+ )
842
+ }
843
+
844
+ val permissionManager = connection.getHealthConnectPermissionManager()
845
+ val permissionsStrings = permissions.toArrayList().map{ it as String }.toSet()
846
+
847
+ if (checkIfAllPermissionsAreGranted(permissionManager, permissionsStrings)) {
848
+ // All permissions granted, nothing to do here
849
+ promise.resolve(true)
850
+ return@launch
851
+ }
852
+
853
+ Log.d("SpikeSdkModule", "Will ask for following Health Connect permissions: $permissions")
854
+
855
+ if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) {
856
+ startHealthConnectRequest_oldAndroid(connectionUUID, permissionManager, permissionsStrings, promise)
857
+ } else {
858
+ startHealthConnectRequest(connectionUUID, permissionManager, permissionsStrings, promise)
859
+ }
860
+ }
861
+ }
862
+
863
+ private fun startHealthConnectRequest_oldAndroid(connectionUUID: String, permissionManager: HealthConnectPermissionManager, permissions: Set<String>, promise: Promise) {
864
+ // val availability = connection.getHealthConnectAvailability()
865
+ // && availability == HealthConnectAvailability.INSTALLED
866
+ val intent = permissionManager.getRequestPermissionResultContract().createIntent(
867
+ reactApplicationContext, permissions
868
+ )
869
+
870
+ reactApplicationContext.currentActivity?.startActivityForResult(
871
+ intent,
872
+ REQUEST_CODE
873
+ )
874
+ promise.resolve(true)
875
+ }
876
+
877
+ private var checkPermissionsForV3: Triple<String, Set<String>, Promise>? = null
878
+
879
+ private fun startHealthConnectRequest(connectionUUID: String, permissionManager: HealthConnectPermissionManager, permissions: Set<String>, promise: Promise) {
880
+ val activity = reactApplicationContext.currentActivity
881
+ if (!(activity is ComponentActivity)) {
882
+ promise.resolve(false)
883
+ return
884
+ }
885
+ checkPermissionsForV3 = Triple(
886
+ connectionUUID,
887
+ permissions,
888
+ promise
889
+ )
890
+ val launcher = activity.registerActivityResultLauncher(permissionManager.getRequestPermissionResultContract()) {
891
+
892
+ }
893
+ launcher.launch(permissions)
894
+ }
895
+
896
+ @ReactMethod
897
+ fun areAllPermissionsGranted(connectionUUID: String, permissions: Set<String>, promise: Promise) {
898
+ scope.launch {
899
+ val connection = getConnectionV3(connectionUUID) ?: return@launch promise.reject(
900
+ SpikeExceptions.SpikeException(
901
+ "Connection not found"
902
+ ).mapException(), "Connection not found"
903
+ )
904
+ if (!connection.isHealthConnectIntegrationEnabled()) {
905
+ return@launch promise.reject(
906
+ SpikeExceptions.SpikeException("Health Connect is disabled").mapException(),
907
+ "Health Connect should be enabled before calling areAllPermissionsGranted"
908
+ )
909
+ }
910
+ val permissionManager = connection.getHealthConnectPermissionManager()
911
+
912
+ val permissionsGranted: Boolean = checkIfAllPermissionsAreGranted(permissionManager, permissions)
913
+ promise.resolve(permissionsGranted)
914
+ }
915
+ }
916
+
917
+ private suspend fun checkIfAllPermissionsAreGranted(permissionManager: HealthConnectPermissionManager, permissions: Set<String>): Boolean {
918
+ return permissionManager.getGrantedPermissions().containsAll(permissions)
919
+ }
920
+
921
+ /// --- Private stuff ---
922
+
923
+ // Do not use this directly, use `addConnection` and `getConnection` instead
924
+ private val _connectionsV3 = mutableMapOf<String, SpikeConnectionAPIv3>()
925
+
926
+ private val mutexV3 = Mutex()
927
+
928
+ // Add new connection to the dictionary in a thread-safe manner
929
+ private suspend fun addConnectionV3(connection: SpikeConnectionAPIv3, uuid: String) {
930
+ mutex.withLock {
931
+ _connectionsV3[uuid] = connection
932
+ }
933
+ }
934
+
935
+ // Synchronised read for safe multithreaded usage
936
+ private suspend fun getConnectionV3(uuid: String): SpikeConnectionAPIv3? {
937
+ mutex.withLock {
938
+ return _connectionsV3[uuid]
939
+ }
940
+ }
941
+
557
942
  }
943
+
944
+ private fun convertIsoStringToInstant(isoString: String): Instant {
945
+ return Instant.parse(isoString)
946
+ }
@@ -37,6 +37,8 @@ class SpikeExceptionMapper {
37
37
  return "SpikeDataExtractionException"
38
38
  case is SpikeDataDecodingException:
39
39
  return "SpikeDataDecodingException"
40
+ case is SpikeApiException:
41
+ return "SpikeApiException"
40
42
  default:
41
43
  return "SpikeException"
42
44
  }
@@ -98,6 +98,8 @@ const unwrapSpikeException = error => {
98
98
  return new SpikeException("SpikeConnectionNotFoundException");
99
99
  case 'SpikeDataDecodingException':
100
100
  return new SpikeException("SpikeDataDecodingException:" + error.message);
101
+ case 'SpikeApiException':
102
+ return new SpikeException(error.message);
101
103
  default:
102
104
  return new SpikeException("Default SpikeException: " + error.message);
103
105
  }
@@ -1 +1 @@
1
- {"version":3,"names":["SpikeException","Error","constructor","message","exports","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException","SpikeHealthDataNotAvailableException","unwrapSpikeException","error","code"],"sourceRoot":"../../src","sources":["SpikeException.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SpikeException","Error","constructor","message","exports","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException","SpikeHealthDataNotAvailableException","unwrapSpikeException","error","code"],"sourceRoot":"../../src","sources":["SpikeException.ts"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "ActivityType", {
15
15
  return _ActivityType.ActivityType;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "HealthConnectAvailabilityStatus", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _HealthConnectAvailabilityStatus.HealthConnectAvailabilityStatus;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "InputMethod", {
19
25
  enumerable: true,
20
26
  get: function () {
@@ -163,6 +169,7 @@ var _StatisticsType = require("./v3/DataModels/StatisticsType");
163
169
  var _StatisticsInterval = require("./v3/DataModels/StatisticsInterval");
164
170
  var _Unit = require("./v3/DataModels/Unit");
165
171
  var _StatisticsFilter = require("./v3/StatisticsFilter");
172
+ var _HealthConnectAvailabilityStatus = require("./v3/DataModels/HealthConnectAvailabilityStatus");
166
173
  var _default = exports.default = {
167
174
  createConnection: _Spike.createConnection,
168
175
  getBackgroundConnections: _Spike.getBackgroundConnections,
@@ -1 +1 @@
1
- {"version":3,"names":["_SpikeDataTypes","require","_Spike","_SpikeConnection","_SpikeException","_SpikeRNConnectionAPIv","_ActivityTag","_ActivityType","_InputMethod","_MetricType","_Provider","_ProviderSource","_StatisticsType","_StatisticsInterval","_Unit","_StatisticsFilter","_default","exports","default","createConnection","getBackgroundConnections","ensurePermissionsAreGranted","isPackageInstalled","isHealthDataAvailable","createConnectionAPIv3"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,gBAAA,GAAAF,OAAA;AAIA,IAAAG,eAAA,GAAAH,OAAA;AAkEA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAX,OAAA;AACA,IAAAY,mBAAA,GAAAZ,OAAA;AACA,IAAAa,KAAA,GAAAb,OAAA;AACA,IAAAc,iBAAA,GAAAd,OAAA;AAAyD,IAAAe,QAAA,GAAAC,OAAA,CAAAC,OAAA,GApD1C;EACbC,gBAAgB,EAAhBA,uBAAgB;EAChBC,wBAAwB,EAAxBA,+BAAwB;EACxBC,2BAA2B,EAA3BA,kCAA2B;EAC3BC,kBAAkB,EAAlBA,yBAAkB;EAClBC,qBAAqB,EAArBA,4BAAqB;EACrB;EACAC,qBAAqB,EAArBA;AACF,CAAC,EAiCD","ignoreList":[]}
1
+ {"version":3,"names":["_SpikeDataTypes","require","_Spike","_SpikeConnection","_SpikeException","_SpikeRNConnectionAPIv","_ActivityTag","_ActivityType","_InputMethod","_MetricType","_Provider","_ProviderSource","_StatisticsType","_StatisticsInterval","_Unit","_StatisticsFilter","_HealthConnectAvailabilityStatus","_default","exports","default","createConnection","getBackgroundConnections","ensurePermissionsAreGranted","isPackageInstalled","isHealthDataAvailable","createConnectionAPIv3"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,gBAAA,GAAAF,OAAA;AAIA,IAAAG,eAAA,GAAAH,OAAA;AAkEA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,eAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAX,OAAA;AACA,IAAAY,mBAAA,GAAAZ,OAAA;AACA,IAAAa,KAAA,GAAAb,OAAA;AACA,IAAAc,iBAAA,GAAAd,OAAA;AACA,IAAAe,gCAAA,GAAAf,OAAA;AAAkG,IAAAgB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GArDnF;EACbC,gBAAgB,EAAhBA,uBAAgB;EAChBC,wBAAwB,EAAxBA,+BAAwB;EACxBC,2BAA2B,EAA3BA,kCAA2B;EAC3BC,kBAAkB,EAAlBA,yBAAkB;EAClBC,qBAAqB,EAArBA,4BAAqB;EACrB;EACAC,qBAAqB,EAArBA;AACF,CAAC,EAiCD","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HealthConnectAvailabilityStatus = void 0;
7
+ let HealthConnectAvailabilityStatus = exports.HealthConnectAvailabilityStatus = /*#__PURE__*/function (HealthConnectAvailabilityStatus) {
8
+ HealthConnectAvailabilityStatus["notInstalled"] = "NOT_INSTALLED";
9
+ HealthConnectAvailabilityStatus["updateRequired"] = "UPDATE_REQUIRED";
10
+ HealthConnectAvailabilityStatus["installed"] = "INSTALLED";
11
+ return HealthConnectAvailabilityStatus;
12
+ }({});
13
+ //# sourceMappingURL=HealthConnectAvailabilityStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HealthConnectAvailabilityStatus","exports"],"sourceRoot":"../../../../src","sources":["v3/DataModels/HealthConnectAvailabilityStatus.ts"],"mappings":";;;;;;IACYA,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,0BAA/BA,+BAA+B;EAA/BA,+BAA+B;EAA/BA,+BAA+B;EAA/BA,+BAA+B;EAAA,OAA/BA,+BAA+B;AAAA","ignoreList":[]}