@tryvital/vital-health-react-native 6.0.1 → 6.0.2

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 (32) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/com/vitalhealthreactnative/HealthConnectVitalHealthProvider.kt +4 -0
  3. package/android/src/main/java/com/vitalhealthreactnative/UnavailableVitalHealthProviderDefinition.kt +4 -0
  4. package/android/src/main/java/com/vitalhealthreactnative/VitalHealthProvider.kt +1 -0
  5. package/android/src/main/java/com/vitalhealthreactnative/VitalHealthReactNativeModule.kt +33 -2
  6. package/android/src/samsungHealthEnabled/java/com/vitalhealthreactnative/SamsungHealthVitalHealthProvider.kt +4 -0
  7. package/app.plugin.js +1 -1
  8. package/ios/VitalHealthReactNative.m +1 -0
  9. package/ios/VitalHealthReactNative.swift +16 -1
  10. package/lib/commonjs/app.plugin.js +1 -1
  11. package/lib/commonjs/health_config.js +40 -1
  12. package/lib/commonjs/health_config.js.map +1 -1
  13. package/lib/commonjs/index.js +38 -4
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/providerAvailability.js +16 -0
  16. package/lib/commonjs/providerAvailability.js.map +1 -0
  17. package/lib/module/health_config.js +39 -0
  18. package/lib/module/health_config.js.map +1 -1
  19. package/lib/module/index.js +18 -4
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/providerAvailability.js +10 -0
  22. package/lib/module/providerAvailability.js.map +1 -0
  23. package/lib/typescript/health_config.d.ts +39 -0
  24. package/lib/typescript/health_config.d.ts.map +1 -1
  25. package/lib/typescript/index.d.ts +10 -0
  26. package/lib/typescript/index.d.ts.map +1 -1
  27. package/lib/typescript/providerAvailability.d.ts +48 -0
  28. package/lib/typescript/providerAvailability.d.ts.map +1 -0
  29. package/package.json +2 -2
  30. package/src/health_config.ts +41 -0
  31. package/src/index.tsx +25 -4
  32. package/src/providerAvailability.ts +52 -0
@@ -151,7 +151,7 @@ repositories {
151
151
  }
152
152
 
153
153
  def kotlin_version = getExtOrDefault('kotlinVersion')
154
- def vital_sdk_version = '5.0.0'
154
+ def vital_sdk_version = '5.0.2'
155
155
 
156
156
  dependencies {
157
157
  //noinspection GradleDynamicVersion
@@ -33,6 +33,10 @@ internal object HealthConnectVitalHealthProviderDefinition : VitalHealthProvider
33
33
  return VitalHealthConnectManager.isAvailable(context)
34
34
  }
35
35
 
36
+ override suspend fun providerAvailability(context: Context): ProviderAvailability {
37
+ return isAvailable(context)
38
+ }
39
+
36
40
  override fun openPlatformHealthAppIntent(context: Context) =
37
41
  VitalHealthConnectManager.openHealthConnectIntent(context)
38
42
 
@@ -27,6 +27,10 @@ internal object UnavailableVitalHealthProviderDefinition : VitalHealthProviderDe
27
27
  return ProviderAvailability.NotInstalled
28
28
  }
29
29
 
30
+ override suspend fun providerAvailability(context: Context): ProviderAvailability {
31
+ return ProviderAvailability.NotInstalled
32
+ }
33
+
30
34
  override fun openPlatformHealthAppIntent(context: Context): Intent? {
31
35
  raiseUnimplemented()
32
36
  }
@@ -35,6 +35,7 @@ internal interface VitalHealthProviderDefinition {
35
35
  val connectionStatusEvent: VitalHealthEvent
36
36
 
37
37
  fun isAvailable(context: Context): ProviderAvailability
38
+ suspend fun providerAvailability(context: Context): ProviderAvailability
38
39
  fun openPlatformHealthAppIntent(context: Context): Intent?
39
40
  fun getOrCreateManager(context: Context): VitalHealthManagerBridge
40
41
  }
@@ -72,7 +72,21 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
72
72
  @ReactMethod
73
73
  fun isAvailable(provider: String, promise: Promise) = runOnMain {
74
74
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
75
- promise.resolve(definitionOf(androidProvider).isAvailable(reactApplicationContext) == ProviderAvailability.Installed)
75
+
76
+ val availability = definitionOf(androidProvider).providerAvailability(reactApplicationContext)
77
+ promise.resolve(availability == ProviderAvailability.Installed)
78
+ }
79
+
80
+ @ReactMethod
81
+ fun providerAvailability(provider: String, promise: Promise) = runOnMain {
82
+ val androidProvider = providerOf(provider, promise) ?: return@runOnMain
83
+
84
+ promise.resolve(
85
+ definitionOf(androidProvider)
86
+ .providerAvailability(reactApplicationContext)
87
+ .name
88
+ .replaceFirstChar { it.lowercaseChar() },
89
+ )
76
90
  }
77
91
 
78
92
  @ReactMethod
@@ -88,7 +102,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
88
102
  logger.enabled = enableLogs
89
103
 
90
104
  val providerDefinition = definitionOf(androidProvider)
91
- val availability = providerDefinition.isAvailable(reactApplicationContext)
105
+ val availability = providerDefinition.providerAvailability(reactApplicationContext)
92
106
  if (availability != ProviderAvailability.Installed) {
93
107
  return@runOnMain promise.reject(
94
108
  VITAL_HEALTH_ERROR,
@@ -214,6 +228,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
214
228
  @ReactMethod
215
229
  fun hasAskedForPermission(provider: String, resource: String, promise: Promise) = runOnMain {
216
230
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
231
+
217
232
  val vitalResource = try {
218
233
  VitalResource.valueOf(resource)
219
234
  } catch (e: IllegalArgumentException) {
@@ -230,6 +245,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
230
245
  @ReactMethod
231
246
  fun syncData(provider: String, resources: ReadableArray, promise: Promise) = runOnMain {
232
247
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
248
+
233
249
  val vitalResources = resources.toArrayList()
234
250
  .mapNotNull {
235
251
  try {
@@ -261,6 +277,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
261
277
  promise: Promise,
262
278
  ) = runOnMain {
263
279
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
280
+
264
281
  val writableResource = try {
265
282
  WritableVitalResource.valueOf(resource)
266
283
  } catch (e: IllegalArgumentException) {
@@ -300,6 +317,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
300
317
  @ReactMethod
301
318
  fun enableBackgroundSync(provider: String, promise: Promise) = runOnMain {
302
319
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
320
+
303
321
  if (synchronized(this) { enableBackgroundSync != null }) {
304
322
  return@runOnMain promise.reject(
305
323
  VITAL_HEALTH_ERROR,
@@ -348,6 +366,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
348
366
  @ReactMethod
349
367
  fun disableBackgroundSync(provider: String, promise: Promise) = runOnMain {
350
368
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
369
+
351
370
  managerOf(androidProvider)
352
371
  .disableBackgroundSync()
353
372
  promise.resolve(null)
@@ -356,6 +375,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
356
375
  @ReactMethod
357
376
  fun setSyncNotificationContent(provider: String, content: String, promise: Promise) = runOnMain {
358
377
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
378
+
359
379
  val manager = managerOf(androidProvider)
360
380
 
361
381
  try {
@@ -378,6 +398,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
378
398
  @ReactMethod
379
399
  fun setPauseSynchronization(provider: String, paused: Boolean, promise: Promise) = runOnMain {
380
400
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
401
+
381
402
  val manager = managerOf(androidProvider)
382
403
  manager.pauseSynchronization = paused
383
404
  promise.resolve(null)
@@ -386,6 +407,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
386
407
  @ReactMethod
387
408
  fun getPauseSynchronization(provider: String, promise: Promise) = runOnMain {
388
409
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
410
+
389
411
  val manager = managerOf(androidProvider)
390
412
  promise.resolve(manager.pauseSynchronization)
391
413
  }
@@ -393,6 +415,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
393
415
  @ReactMethod
394
416
  fun isBackgroundSyncEnabled(provider: String, promise: Promise) = runOnMain {
395
417
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
418
+
396
419
  val manager = managerOf(androidProvider)
397
420
  promise.resolve(manager.isBackgroundSyncEnabled)
398
421
  }
@@ -400,6 +423,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
400
423
  @ReactMethod
401
424
  fun autoSyncThrottle(provider: String, promise: Promise) = runOnMain {
402
425
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
426
+
403
427
  val manager = managerOf(androidProvider)
404
428
  promise.resolve(manager.autoSyncThrottle.inWholeMilliseconds.toDouble())
405
429
  }
@@ -407,6 +431,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
407
431
  @ReactMethod
408
432
  fun backgroundSyncMinimumInterval(provider: String, promise: Promise) = runOnMain {
409
433
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
434
+
410
435
  val manager = managerOf(androidProvider)
411
436
  promise.resolve(manager.backgroundSyncMinimumInterval.inWholeMilliseconds.toDouble())
412
437
  }
@@ -418,6 +443,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
418
443
  promise: Promise,
419
444
  ) = runOnMain {
420
445
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
446
+
421
447
  val manager = managerOf(androidProvider)
422
448
  manager.backgroundSyncMinimumInterval = intervalInMilliseconds.milliseconds
423
449
  promise.resolve(null)
@@ -430,6 +456,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
430
456
  promise: Promise,
431
457
  ) = runOnMain {
432
458
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
459
+
433
460
  val manager = definitionOf(androidProvider).getOrCreateManager(reactApplicationContext)
434
461
  manager.autoSyncThrottle = thresholdInMilliseconds.milliseconds
435
462
  promise.resolve(null)
@@ -438,6 +465,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
438
465
  @ReactMethod
439
466
  fun openPlatformHealthApp(provider: String, promise: Promise) = runOnMain {
440
467
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
468
+
441
469
  val activity = reactApplicationContext.currentActivity ?: return@runOnMain promise.reject(
442
470
  VITAL_HEALTH_ERROR,
443
471
  "No active Android Activity",
@@ -453,6 +481,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
453
481
  @ReactMethod
454
482
  fun getConnectionStatus(provider: String, promise: Promise) = runOnMain {
455
483
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
484
+
456
485
  val manager = managerOf(androidProvider)
457
486
  promise.resolve(
458
487
  manager.connectionStatus.value.name.replaceFirstChar { it.lowercase() },
@@ -462,6 +491,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
462
491
  @ReactMethod
463
492
  fun connect(provider: String, promise: Promise) = runOnMain {
464
493
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
494
+
465
495
  try {
466
496
  managerOf(androidProvider)
467
497
  .connect()
@@ -474,6 +504,7 @@ class VitalHealthReactNativeModule(reactContext: ReactApplicationContext) :
474
504
  @ReactMethod
475
505
  fun disconnect(provider: String, promise: Promise) = runOnMain {
476
506
  val androidProvider = providerOf(provider, promise) ?: return@runOnMain
507
+
477
508
  try {
478
509
  managerOf(androidProvider)
479
510
  .disconnect()
@@ -30,6 +30,10 @@ internal object SamsungHealthVitalHealthProviderDefinition : VitalHealthProvider
30
30
  return VitalSamsungHealthManager.isAvailable(context)
31
31
  }
32
32
 
33
+ override suspend fun providerAvailability(context: Context): ProviderAvailability {
34
+ return VitalSamsungHealthManager.providerAvailability(context)
35
+ }
36
+
33
37
  override fun openPlatformHealthAppIntent(context: Context) =
34
38
  VitalSamsungHealthManager.openSamsungHealthIntent(context)
35
39
 
package/app.plugin.js CHANGED
@@ -17,7 +17,7 @@ const ANDROID_HEALTH_PERMISSION_PREFIX = 'android.permission.health.';
17
17
  const HEALTH_CONNECT_PERMISSIONS_RATIONALE_ACTION = 'androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE';
18
18
  const SAMSUNG_HEALTH_SETTINGS_PLUGIN = 'io.tryvital.shealth-settings-plugin';
19
19
  const SAMSUNG_HEALTH_PROJECT_PLUGIN = 'io.tryvital.shealth-project-plugin';
20
- const SAMSUNG_HEALTH_PLUGIN_VERSION = '5.0.0';
20
+ const SAMSUNG_HEALTH_PLUGIN_VERSION = '5.0.2';
21
21
  const SAMSUNG_HEALTH_SETTINGS_PLUGIN_DECLARATION =
22
22
  `id("${SAMSUNG_HEALTH_SETTINGS_PLUGIN}") version "${SAMSUNG_HEALTH_PLUGIN_VERSION}"`;
23
23
  const SAMSUNG_HEALTH_PLUGIN_CLASSPATH =
@@ -7,6 +7,7 @@ RCT_EXTERN_METHOD(configure:(NSString *)provider
7
7
  numberOfDaysToBackFill:(int)numberOfDaysToBackFill
8
8
  enableLogs:(BOOL)enableLogs
9
9
  connectionPolicy:(NSString *)connectionPolicy
10
+ sleepDataAllowlist:(id)sleepDataAllowlist
10
11
  resolver:(RCTPromiseResolveBlock)resolve
11
12
  rejecter:(RCTPromiseRejectBlock)reject)
12
13
 
@@ -64,13 +64,14 @@ class VitalHealthReactNative: RCTEventEmitter {
64
64
  return ["Status", "VitalHealthConnectionStatus"]
65
65
  }
66
66
 
67
- @objc(configure:backgroundDeliveryEnabled:numberOfDaysToBackFill:enableLogs:connectionPolicy:resolver:rejecter:)
67
+ @objc(configure:backgroundDeliveryEnabled:numberOfDaysToBackFill:enableLogs:connectionPolicy:sleepDataAllowlist:resolver:rejecter:)
68
68
  func configure(
69
69
  _ provider: String,
70
70
  backgroundDeliveryEnabled: Bool,
71
71
  numberOfDaysToBackFill: Int,
72
72
  enableLogs: Bool,
73
73
  connectionPolicy: String,
74
+ sleepDataAllowlist: Any?,
74
75
  resolve: @escaping RCTPromiseResolveBlock,
75
76
  reject: RCTPromiseRejectBlock
76
77
  ) {
@@ -81,12 +82,26 @@ class VitalHealthReactNative: RCTEventEmitter {
81
82
  backgroundDeliveryEnabled: backgroundDeliveryEnabled,
82
83
  numberOfDaysToBackFill: numberOfDaysToBackFill,
83
84
  logsEnabled: enableLogs,
85
+ sleepDataAllowlist: decodeSleepAllowlist(sleepDataAllowlist),
84
86
  connectionPolicy: VitalHealthKitClient.ConnectionPolicy(rawValue: connectionPolicy) ?? .autoConnect
85
87
  )
86
88
  )
87
89
  resolve(())
88
90
  }
89
91
 
92
+ /// Maps the value bridged from JS into the iOS SDK `AppAllowlist`.
93
+ /// `"all"` -> `.all`; `[String]` of bundle identifiers -> `.specific`; anything else
94
+ /// (incl. `nil`/`NSNull` for an unset value) falls back to the SDK default allow list.
95
+ private func decodeSleepAllowlist(_ value: Any?) -> AppAllowlist {
96
+ if let string = value as? String, string == "all" {
97
+ return .all
98
+ }
99
+ if let bundleIdentifiers = value as? [String] {
100
+ return .specific(bundleIdentifiers.map { AppIdentifier(rawValue: $0) })
101
+ }
102
+ return .specific(AppIdentifier.defaultsleepDataAllowlist)
103
+ }
104
+
90
105
  @objc(setUserId:userId:resolver:rejecter:)
91
106
  func setUserId(
92
107
  _ provider: String,
@@ -17,7 +17,7 @@ const ANDROID_HEALTH_PERMISSION_PREFIX = 'android.permission.health.';
17
17
  const HEALTH_CONNECT_PERMISSIONS_RATIONALE_ACTION = 'androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE';
18
18
  const SAMSUNG_HEALTH_SETTINGS_PLUGIN = 'io.tryvital.shealth-settings-plugin';
19
19
  const SAMSUNG_HEALTH_PROJECT_PLUGIN = 'io.tryvital.shealth-project-plugin';
20
- const SAMSUNG_HEALTH_PLUGIN_VERSION = '5.0.0';
20
+ const SAMSUNG_HEALTH_PLUGIN_VERSION = '5.0.2';
21
21
  const SAMSUNG_HEALTH_SETTINGS_PLUGIN_DECLARATION =
22
22
  `id("${SAMSUNG_HEALTH_SETTINGS_PLUGIN}") version "${SAMSUNG_HEALTH_PLUGIN_VERSION}"`;
23
23
  const SAMSUNG_HEALTH_PLUGIN_CLASSPATH =
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.IOSHealthProvider = exports.IOSHealthConfig = exports.HealthConfig = exports.AndroidHealthProvider = exports.AndroidHealthConfig = void 0;
6
+ exports.iOSAppIdentifier = exports.IOSHealthProvider = exports.IOSHealthConfig = exports.HealthConfig = exports.AndroidHealthProvider = exports.AndroidHealthConfig = void 0;
7
7
  let IOSHealthProvider = exports.IOSHealthProvider = /*#__PURE__*/function (IOSHealthProvider) {
8
8
  IOSHealthProvider["AppleHealthKit"] = "apple_health_kit";
9
9
  return IOSHealthProvider;
@@ -28,6 +28,45 @@ exports.AndroidHealthConfig = AndroidHealthConfig;
28
28
  class IOSHealthConfig {
29
29
  dataPushMode = 'automatic';
30
30
  backgroundDeliveryEnabled = true;
31
+ /**
32
+ * Controls which apps/sources are allowed to contribute sleep data during sync (iOS only).
33
+ *
34
+ * - `undefined` (default): use the SDK's built-in default allow list of known sleep providers.
35
+ * - `'all'`: accept sleep data from every source.
36
+ * - `string[]`: accept only the listed source app bundle identifiers. Use {@link iOSAppIdentifier}
37
+ * for the known providers, or pass any raw bundle identifier string.
38
+ *
39
+ * Manually-entered sleep data is always allowed, regardless of this setting.
40
+ */
31
41
  }
42
+
43
+ /**
44
+ * Known sleep data source apps and their bundle identifiers, mirroring the iOS SDK's
45
+ * `AppIdentifier` constants. Use these with {@link IOSHealthConfig.sleepDataAllowlist}.
46
+ */
32
47
  exports.IOSHealthConfig = IOSHealthConfig;
48
+ const iOSAppIdentifier = exports.iOSAppIdentifier = {
49
+ appleHealthKit: 'com.apple.health',
50
+ oura: 'com.ouraring.oura',
51
+ withings: 'com.withings.wiScaleNG',
52
+ whoop: 'com.whoop.iphone',
53
+ garmin: 'com.garmin.connect.mobile',
54
+ fitbit: 'com.fitbit.FitbitMobile',
55
+ polar: 'fi.polar.polarflow',
56
+ coros: 'com.coros.coros',
57
+ suunto: 'com.sports-tracker.suunto.iphone',
58
+ xiaomi: 'com.xiaomi.miwatch.pro',
59
+ muse: 'com.interaxon.muse',
60
+ biostrap: 'com.biostrap.Biostrap',
61
+ cardiomood: 'com.corsanohealth.cardiomood',
62
+ eightsleep: 'com.eightsleep.Eight',
63
+ zepp: 'com.huami.watch',
64
+ zeppLife: 'HM.wristband',
65
+ sleepCycle: 'com.lexwarelabs.goodmorning'
66
+ };
67
+
68
+ /**
69
+ * Sleep data allow list value. `'all'` accepts every source; a `string[]` of bundle identifiers
70
+ * accepts only those sources; leaving it `undefined` uses the SDK default.
71
+ */
33
72
  //# sourceMappingURL=health_config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IOSHealthProvider","exports","AndroidHealthProvider","HealthConfig","logsEnabled","numberOfDaysToBackFill","connectionPolicy","androidConfig","AndroidHealthConfig","iOSConfig","IOSHealthConfig","syncOnAppStart","dataPushMode","backgroundDeliveryEnabled"],"sourceRoot":"../../src","sources":["health_config.ts"],"mappings":";;;;;;IAEYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAIjBE,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAU1B,MAAMC,YAAY,CAAC;EACxBC,WAAW,GAAG,IAAI;EAClBC,sBAAsB,GAAG,EAAE;EAC3BC,gBAAgB,GAAqB,aAAa;EAClDC,aAAa,GAAG,IAAIC,mBAAmB,CAAC,CAAC;EACzCC,SAAS,GAAG,IAAIC,eAAe,CAAC,CAAC;AACnC;AAACT,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAEM,MAAMK,mBAAmB,CAAC;EAC/BG,cAAc,GAAG,IAAI;AACvB;AAACV,OAAA,CAAAO,mBAAA,GAAAA,mBAAA;AAEM,MAAME,eAAe,CAAC;EAC3BE,YAAY,GAAG,WAAW;EAC1BC,yBAAyB,GAAG,IAAI;AAClC;AAACZ,OAAA,CAAAS,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["IOSHealthProvider","exports","AndroidHealthProvider","HealthConfig","logsEnabled","numberOfDaysToBackFill","connectionPolicy","androidConfig","AndroidHealthConfig","iOSConfig","IOSHealthConfig","syncOnAppStart","dataPushMode","backgroundDeliveryEnabled","iOSAppIdentifier","appleHealthKit","oura","withings","whoop","garmin","fitbit","polar","coros","suunto","xiaomi","muse","biostrap","cardiomood","eightsleep","zepp","zeppLife","sleepCycle"],"sourceRoot":"../../src","sources":["health_config.ts"],"mappings":";;;;;;IAEYA,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAIjBE,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAU1B,MAAMC,YAAY,CAAC;EACxBC,WAAW,GAAG,IAAI;EAClBC,sBAAsB,GAAG,EAAE;EAC3BC,gBAAgB,GAAqB,aAAa;EAClDC,aAAa,GAAG,IAAIC,mBAAmB,CAAC,CAAC;EACzCC,SAAS,GAAG,IAAIC,eAAe,CAAC,CAAC;AACnC;AAACT,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAEM,MAAMK,mBAAmB,CAAC;EAC/BG,cAAc,GAAG,IAAI;AACvB;AAACV,OAAA,CAAAO,mBAAA,GAAAA,mBAAA;AAEM,MAAME,eAAe,CAAC;EAC3BE,YAAY,GAAG,WAAW;EAC1BC,yBAAyB,GAAG,IAAI;EAChC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAHAZ,OAAA,CAAAS,eAAA,GAAAA,eAAA;AAIO,MAAMI,gBAAgB,GAAAb,OAAA,CAAAa,gBAAA,GAAG;EAC9BC,cAAc,EAAE,kBAAkB;EAClCC,IAAI,EAAE,mBAAmB;EACzBC,QAAQ,EAAE,wBAAwB;EAClCC,KAAK,EAAE,kBAAkB;EACzBC,MAAM,EAAE,2BAA2B;EACnCC,MAAM,EAAE,yBAAyB;EACjCC,KAAK,EAAE,oBAAoB;EAC3BC,KAAK,EAAE,iBAAiB;EACxBC,MAAM,EAAE,kCAAkC;EAC1CC,MAAM,EAAE,wBAAwB;EAChCC,IAAI,EAAE,oBAAoB;EAC1BC,QAAQ,EAAE,uBAAuB;EACjCC,UAAU,EAAE,8BAA8B;EAC1CC,UAAU,EAAE,sBAAsB;EAClCC,IAAI,EAAE,iBAAiB;EACvBC,QAAQ,EAAE,cAAc;EACxBC,UAAU,EAAE;AACd,CAAU;;AAEV;AACA;AACA;AACA"}
@@ -24,6 +24,30 @@ Object.keys(_health_config).forEach(function (key) {
24
24
  }
25
25
  });
26
26
  });
27
+ var _providerAvailability = require("./providerAvailability");
28
+ Object.keys(_providerAvailability).forEach(function (key) {
29
+ if (key === "default" || key === "__esModule") return;
30
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
+ if (key in exports && exports[key] === _providerAvailability[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _providerAvailability[key];
36
+ }
37
+ });
38
+ });
39
+ var _ask_config = require("./ask_config");
40
+ Object.keys(_ask_config).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
43
+ if (key in exports && exports[key] === _ask_config[key]) return;
44
+ Object.defineProperty(exports, key, {
45
+ enumerable: true,
46
+ get: function () {
47
+ return _ask_config[key];
48
+ }
49
+ });
50
+ });
27
51
  // Reexports
28
52
 
29
53
  const LINKING_ERROR = `The package 'vital-health-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
@@ -220,13 +244,23 @@ class VitalHealth {
220
244
  return this.getAutoSyncThrottle();
221
245
  }
222
246
  static async isAvailable(provider = defaultHealthProvider()) {
247
+ return (await this.providerAvailability(provider)) === _providerAvailability.ProviderAvailability.Installed;
248
+ }
249
+
250
+ /**
251
+ * Returns the platform provider availability.
252
+ *
253
+ * Apple HealthKit is treated as always installed when requested on iOS.
254
+ * Health Connect and Samsung Health return the native Android SDK availability.
255
+ */
256
+ static async providerAvailability(provider = defaultHealthProvider()) {
223
257
  if (_reactNative.Platform.OS === 'android') {
224
258
  if (!isAndroidHealthProvider(provider)) {
225
- return false;
259
+ return _providerAvailability.ProviderAvailability.NotInstalled;
226
260
  }
227
- return await VitalHealthReactNative.isAvailable(provider);
261
+ return await VitalHealthReactNative.providerAvailability(provider);
228
262
  } else {
229
- return provider === 'apple_health_kit' && _reactNative.Platform.OS === 'ios';
263
+ return provider === _health_config.IOSHealthProvider.AppleHealthKit && _reactNative.Platform.OS === 'ios' ? _providerAvailability.ProviderAvailability.Installed : _providerAvailability.ProviderAvailability.NotInstalled;
230
264
  }
231
265
  }
232
266
  static async configure(healthConfig, provider = defaultHealthProvider()) {
@@ -234,7 +268,7 @@ class VitalHealth {
234
268
  if (_reactNative.Platform.OS === 'android') {
235
269
  return await VitalHealthReactNative.configure(provider, healthConfig.androidConfig.syncOnAppStart, healthConfig.numberOfDaysToBackFill, healthConfig.logsEnabled, healthConfig.connectionPolicy);
236
270
  } else {
237
- return await VitalHealthReactNative.configure(provider, healthConfig.iOSConfig.backgroundDeliveryEnabled, healthConfig.numberOfDaysToBackFill, healthConfig.logsEnabled, healthConfig.connectionPolicy);
271
+ return await VitalHealthReactNative.configure(provider, healthConfig.iOSConfig.backgroundDeliveryEnabled, healthConfig.numberOfDaysToBackFill, healthConfig.logsEnabled, healthConfig.connectionPolicy, healthConfig.iOSConfig.sleepDataAllowlist ?? null);
238
272
  }
239
273
  }
240
274
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_health_config","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","LINKING_ERROR","Platform","select","ios","default","VitalHealthReactNative","NativeModules","Proxy","Error","eventNames","syncStatus","apple_health_kit","health_connect","samsung_health","connectionStatus","defaultHealthProvider","OS","AndroidHealthProvider","HealthConnect","IOSHealthProvider","AppleHealthKit","isAndroidHealthProvider","provider","SamsungHealth","validateHealthProvider","VitalHealthReactNativeModule","VitalHealthEvents","statusEvent","VitalHealth","status","NativeEventEmitter","eventEmitter","setEventEmitter","emitter","canEnableBackgroundSyncNoninteractively","getConnectionStatus","observeConnectionStatusChange","listener","isCancelled","wrappedListener","subscription","addListener","then","remove","observeSyncStatusChange","isProviderSynchronizationPaused","getPauseSynchronization","pauseSynchronization","isBackgroundSyncEnabledForProvider","isBackgroundSyncEnabled","getBackgroundSyncMinimumInterval","backgroundSyncMinimumInterval","getAutoSyncThrottle","autoSyncThrottle","isAvailable","configure","healthConfig","androidConfig","syncOnAppStart","numberOfDaysToBackFill","logsEnabled","connectionPolicy","iOSConfig","backgroundDeliveryEnabled","connect","disconnect","enableBackgroundSync","disableBackgroundSync","setSyncNotificationContent","content","JSON","stringify","setAutoSyncThrottle","thresholdInMilliseconds","setBackgroundSyncMinimumInterval","intervalInMilliseconds","setPauseSynchronization","paused","askForResources","resources","ask","undefined","readResources","writeResources","config","type","result","writeHealthData","resource","value","startDate","endDate","getTime","hasAskedForPermission","syncData","openPlatformHealthApp","openSyncProgressView","isPersistentLoggingEnabled","setPersistentLoggingEnabled","enabled","sharePersistentLogArchive","VitalResource","VitalWriteResource"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_health_config","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_providerAvailability","_ask_config","LINKING_ERROR","Platform","select","ios","default","VitalHealthReactNative","NativeModules","Proxy","Error","eventNames","syncStatus","apple_health_kit","health_connect","samsung_health","connectionStatus","defaultHealthProvider","OS","AndroidHealthProvider","HealthConnect","IOSHealthProvider","AppleHealthKit","isAndroidHealthProvider","provider","SamsungHealth","validateHealthProvider","VitalHealthReactNativeModule","VitalHealthEvents","statusEvent","VitalHealth","status","NativeEventEmitter","eventEmitter","setEventEmitter","emitter","canEnableBackgroundSyncNoninteractively","getConnectionStatus","observeConnectionStatusChange","listener","isCancelled","wrappedListener","subscription","addListener","then","remove","observeSyncStatusChange","isProviderSynchronizationPaused","getPauseSynchronization","pauseSynchronization","isBackgroundSyncEnabledForProvider","isBackgroundSyncEnabled","getBackgroundSyncMinimumInterval","backgroundSyncMinimumInterval","getAutoSyncThrottle","autoSyncThrottle","isAvailable","providerAvailability","ProviderAvailability","Installed","NotInstalled","configure","healthConfig","androidConfig","syncOnAppStart","numberOfDaysToBackFill","logsEnabled","connectionPolicy","iOSConfig","backgroundDeliveryEnabled","sleepDataAllowlist","connect","disconnect","enableBackgroundSync","disableBackgroundSync","setSyncNotificationContent","content","JSON","stringify","setAutoSyncThrottle","thresholdInMilliseconds","setBackgroundSyncMinimumInterval","intervalInMilliseconds","setPauseSynchronization","paused","askForResources","resources","ask","undefined","readResources","writeResources","config","type","result","writeHealthData","resource","value","startDate","endDate","getTime","hasAskedForPermission","syncData","openPlatformHealthApp","openSyncProgressView","isPersistentLoggingEnabled","setPersistentLoggingEnabled","enabled","sharePersistentLogArchive","VitalResource","VitalWriteResource"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ProviderAvailability = void 0;
7
+ let ProviderAvailability = exports.ProviderAvailability = /*#__PURE__*/function (ProviderAvailability) {
8
+ ProviderAvailability["Installed"] = "installed";
9
+ ProviderAvailability["NotInstalled"] = "notInstalled";
10
+ ProviderAvailability["NotSupportedSDK"] = "notSupportedSDK";
11
+ ProviderAvailability["OnboardingIncomplete"] = "onboardingIncomplete";
12
+ ProviderAvailability["AppNotAllowed"] = "appNotAllowed";
13
+ ProviderAvailability["ServiceUnavailable"] = "serviceUnavailable";
14
+ return ProviderAvailability;
15
+ }({});
16
+ //# sourceMappingURL=providerAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ProviderAvailability","exports"],"sourceRoot":"../../src","sources":["providerAvailability.ts"],"mappings":";;;;;;IAAYA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA"}
@@ -20,5 +20,44 @@ export class AndroidHealthConfig {
20
20
  export class IOSHealthConfig {
21
21
  dataPushMode = 'automatic';
22
22
  backgroundDeliveryEnabled = true;
23
+ /**
24
+ * Controls which apps/sources are allowed to contribute sleep data during sync (iOS only).
25
+ *
26
+ * - `undefined` (default): use the SDK's built-in default allow list of known sleep providers.
27
+ * - `'all'`: accept sleep data from every source.
28
+ * - `string[]`: accept only the listed source app bundle identifiers. Use {@link iOSAppIdentifier}
29
+ * for the known providers, or pass any raw bundle identifier string.
30
+ *
31
+ * Manually-entered sleep data is always allowed, regardless of this setting.
32
+ */
23
33
  }
34
+
35
+ /**
36
+ * Known sleep data source apps and their bundle identifiers, mirroring the iOS SDK's
37
+ * `AppIdentifier` constants. Use these with {@link IOSHealthConfig.sleepDataAllowlist}.
38
+ */
39
+ export const iOSAppIdentifier = {
40
+ appleHealthKit: 'com.apple.health',
41
+ oura: 'com.ouraring.oura',
42
+ withings: 'com.withings.wiScaleNG',
43
+ whoop: 'com.whoop.iphone',
44
+ garmin: 'com.garmin.connect.mobile',
45
+ fitbit: 'com.fitbit.FitbitMobile',
46
+ polar: 'fi.polar.polarflow',
47
+ coros: 'com.coros.coros',
48
+ suunto: 'com.sports-tracker.suunto.iphone',
49
+ xiaomi: 'com.xiaomi.miwatch.pro',
50
+ muse: 'com.interaxon.muse',
51
+ biostrap: 'com.biostrap.Biostrap',
52
+ cardiomood: 'com.corsanohealth.cardiomood',
53
+ eightsleep: 'com.eightsleep.Eight',
54
+ zepp: 'com.huami.watch',
55
+ zeppLife: 'HM.wristband',
56
+ sleepCycle: 'com.lexwarelabs.goodmorning'
57
+ };
58
+
59
+ /**
60
+ * Sleep data allow list value. `'all'` accepts every source; a `string[]` of bundle identifiers
61
+ * accepts only those sources; leaving it `undefined` uses the SDK default.
62
+ */
24
63
  //# sourceMappingURL=health_config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["IOSHealthProvider","AndroidHealthProvider","HealthConfig","logsEnabled","numberOfDaysToBackFill","connectionPolicy","androidConfig","AndroidHealthConfig","iOSConfig","IOSHealthConfig","syncOnAppStart","dataPushMode","backgroundDeliveryEnabled"],"sourceRoot":"../../src","sources":["health_config.ts"],"mappings":"AAEA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAI7B,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAUjC,OAAO,MAAMC,YAAY,CAAC;EACxBC,WAAW,GAAG,IAAI;EAClBC,sBAAsB,GAAG,EAAE;EAC3BC,gBAAgB,GAAqB,aAAa;EAClDC,aAAa,GAAG,IAAIC,mBAAmB,CAAC,CAAC;EACzCC,SAAS,GAAG,IAAIC,eAAe,CAAC,CAAC;AACnC;AAEA,OAAO,MAAMF,mBAAmB,CAAC;EAC/BG,cAAc,GAAG,IAAI;AACvB;AAEA,OAAO,MAAMD,eAAe,CAAC;EAC3BE,YAAY,GAAG,WAAW;EAC1BC,yBAAyB,GAAG,IAAI;AAClC"}
1
+ {"version":3,"names":["IOSHealthProvider","AndroidHealthProvider","HealthConfig","logsEnabled","numberOfDaysToBackFill","connectionPolicy","androidConfig","AndroidHealthConfig","iOSConfig","IOSHealthConfig","syncOnAppStart","dataPushMode","backgroundDeliveryEnabled","iOSAppIdentifier","appleHealthKit","oura","withings","whoop","garmin","fitbit","polar","coros","suunto","xiaomi","muse","biostrap","cardiomood","eightsleep","zepp","zeppLife","sleepCycle"],"sourceRoot":"../../src","sources":["health_config.ts"],"mappings":"AAEA,WAAYA,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAI7B,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AAUjC,OAAO,MAAMC,YAAY,CAAC;EACxBC,WAAW,GAAG,IAAI;EAClBC,sBAAsB,GAAG,EAAE;EAC3BC,gBAAgB,GAAqB,aAAa;EAClDC,aAAa,GAAG,IAAIC,mBAAmB,CAAC,CAAC;EACzCC,SAAS,GAAG,IAAIC,eAAe,CAAC,CAAC;AACnC;AAEA,OAAO,MAAMF,mBAAmB,CAAC;EAC/BG,cAAc,GAAG,IAAI;AACvB;AAEA,OAAO,MAAMD,eAAe,CAAC;EAC3BE,YAAY,GAAG,WAAW;EAC1BC,yBAAyB,GAAG,IAAI;EAChC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,cAAc,EAAE,kBAAkB;EAClCC,IAAI,EAAE,mBAAmB;EACzBC,QAAQ,EAAE,wBAAwB;EAClCC,KAAK,EAAE,kBAAkB;EACzBC,MAAM,EAAE,2BAA2B;EACnCC,MAAM,EAAE,yBAAyB;EACjCC,KAAK,EAAE,oBAAoB;EAC3BC,KAAK,EAAE,iBAAiB;EACxBC,MAAM,EAAE,kCAAkC;EAC1CC,MAAM,EAAE,wBAAwB;EAChCC,IAAI,EAAE,oBAAoB;EAC1BC,QAAQ,EAAE,uBAAuB;EACjCC,UAAU,EAAE,8BAA8B;EAC1CC,UAAU,EAAE,sBAAsB;EAClCC,IAAI,EAAE,iBAAiB;EACvBC,QAAQ,EAAE,cAAc;EACxBC,UAAU,EAAE;AACd,CAAU;;AAEV;AACA;AACA;AACA"}
@@ -1,7 +1,11 @@
1
1
  import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
2
2
  import { AndroidHealthProvider, IOSHealthProvider } from './health_config';
3
+ import { ProviderAvailability } from './providerAvailability';
4
+
3
5
  // Reexports
4
6
  export * from './health_config';
7
+ export * from './ask_config';
8
+ export * from './providerAvailability';
5
9
  const LINKING_ERROR = `The package 'vital-health-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
6
10
  ios: "- You have run 'pod install'\n",
7
11
  default: ''
@@ -196,13 +200,23 @@ export class VitalHealth {
196
200
  return this.getAutoSyncThrottle();
197
201
  }
198
202
  static async isAvailable(provider = defaultHealthProvider()) {
203
+ return (await this.providerAvailability(provider)) === ProviderAvailability.Installed;
204
+ }
205
+
206
+ /**
207
+ * Returns the platform provider availability.
208
+ *
209
+ * Apple HealthKit is treated as always installed when requested on iOS.
210
+ * Health Connect and Samsung Health return the native Android SDK availability.
211
+ */
212
+ static async providerAvailability(provider = defaultHealthProvider()) {
199
213
  if (Platform.OS === 'android') {
200
214
  if (!isAndroidHealthProvider(provider)) {
201
- return false;
215
+ return ProviderAvailability.NotInstalled;
202
216
  }
203
- return await VitalHealthReactNative.isAvailable(provider);
217
+ return await VitalHealthReactNative.providerAvailability(provider);
204
218
  } else {
205
- return provider === 'apple_health_kit' && Platform.OS === 'ios';
219
+ return provider === IOSHealthProvider.AppleHealthKit && Platform.OS === 'ios' ? ProviderAvailability.Installed : ProviderAvailability.NotInstalled;
206
220
  }
207
221
  }
208
222
  static async configure(healthConfig, provider = defaultHealthProvider()) {
@@ -210,7 +224,7 @@ export class VitalHealth {
210
224
  if (Platform.OS === 'android') {
211
225
  return await VitalHealthReactNative.configure(provider, healthConfig.androidConfig.syncOnAppStart, healthConfig.numberOfDaysToBackFill, healthConfig.logsEnabled, healthConfig.connectionPolicy);
212
226
  } else {
213
- return await VitalHealthReactNative.configure(provider, healthConfig.iOSConfig.backgroundDeliveryEnabled, healthConfig.numberOfDaysToBackFill, healthConfig.logsEnabled, healthConfig.connectionPolicy);
227
+ return await VitalHealthReactNative.configure(provider, healthConfig.iOSConfig.backgroundDeliveryEnabled, healthConfig.numberOfDaysToBackFill, healthConfig.logsEnabled, healthConfig.connectionPolicy, healthConfig.iOSConfig.sleepDataAllowlist ?? null);
214
228
  }
215
229
  }
216
230
 
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","AndroidHealthProvider","IOSHealthProvider","LINKING_ERROR","select","ios","default","VitalHealthReactNative","Proxy","get","Error","eventNames","syncStatus","apple_health_kit","health_connect","samsung_health","connectionStatus","defaultHealthProvider","OS","HealthConnect","AppleHealthKit","isAndroidHealthProvider","provider","SamsungHealth","validateHealthProvider","VitalHealthReactNativeModule","VitalHealthEvents","statusEvent","VitalHealth","status","eventEmitter","setEventEmitter","emitter","canEnableBackgroundSyncNoninteractively","getConnectionStatus","observeConnectionStatusChange","listener","isCancelled","wrappedListener","subscription","addListener","then","remove","observeSyncStatusChange","isProviderSynchronizationPaused","getPauseSynchronization","pauseSynchronization","isBackgroundSyncEnabledForProvider","isBackgroundSyncEnabled","getBackgroundSyncMinimumInterval","backgroundSyncMinimumInterval","getAutoSyncThrottle","autoSyncThrottle","isAvailable","configure","healthConfig","androidConfig","syncOnAppStart","numberOfDaysToBackFill","logsEnabled","connectionPolicy","iOSConfig","backgroundDeliveryEnabled","connect","disconnect","enableBackgroundSync","disableBackgroundSync","setSyncNotificationContent","content","JSON","stringify","setAutoSyncThrottle","thresholdInMilliseconds","setBackgroundSyncMinimumInterval","intervalInMilliseconds","setPauseSynchronization","paused","askForResources","resources","ask","undefined","readResources","writeResources","config","type","result","writeHealthData","resource","value","startDate","endDate","getTime","hasAskedForPermission","syncData","openPlatformHealthApp","openSyncProgressView","isPersistentLoggingEnabled","setPersistentLoggingEnabled","enabled","sharePersistentLogArchive","VitalResource","VitalWriteResource"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["NativeEventEmitter","NativeModules","Platform","AndroidHealthProvider","IOSHealthProvider","ProviderAvailability","LINKING_ERROR","select","ios","default","VitalHealthReactNative","Proxy","get","Error","eventNames","syncStatus","apple_health_kit","health_connect","samsung_health","connectionStatus","defaultHealthProvider","OS","HealthConnect","AppleHealthKit","isAndroidHealthProvider","provider","SamsungHealth","validateHealthProvider","VitalHealthReactNativeModule","VitalHealthEvents","statusEvent","VitalHealth","status","eventEmitter","setEventEmitter","emitter","canEnableBackgroundSyncNoninteractively","getConnectionStatus","observeConnectionStatusChange","listener","isCancelled","wrappedListener","subscription","addListener","then","remove","observeSyncStatusChange","isProviderSynchronizationPaused","getPauseSynchronization","pauseSynchronization","isBackgroundSyncEnabledForProvider","isBackgroundSyncEnabled","getBackgroundSyncMinimumInterval","backgroundSyncMinimumInterval","getAutoSyncThrottle","autoSyncThrottle","isAvailable","providerAvailability","Installed","NotInstalled","configure","healthConfig","androidConfig","syncOnAppStart","numberOfDaysToBackFill","logsEnabled","connectionPolicy","iOSConfig","backgroundDeliveryEnabled","sleepDataAllowlist","connect","disconnect","enableBackgroundSync","disableBackgroundSync","setSyncNotificationContent","content","JSON","stringify","setAutoSyncThrottle","thresholdInMilliseconds","setBackgroundSyncMinimumInterval","intervalInMilliseconds","setPauseSynchronization","paused","askForResources","resources","ask","undefined","readResources","writeResources","config","type","result","writeHealthData","resource","value","startDate","endDate","getTime","hasAskedForPermission","syncData","openPlatformHealthApp","openSyncProgressView","isPersistentLoggingEnabled","setPersistentLoggingEnabled","enabled","sharePersistentLogArchive","VitalResource","VitalWriteResource"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export let ProviderAvailability = /*#__PURE__*/function (ProviderAvailability) {
2
+ ProviderAvailability["Installed"] = "installed";
3
+ ProviderAvailability["NotInstalled"] = "notInstalled";
4
+ ProviderAvailability["NotSupportedSDK"] = "notSupportedSDK";
5
+ ProviderAvailability["OnboardingIncomplete"] = "onboardingIncomplete";
6
+ ProviderAvailability["AppNotAllowed"] = "appNotAllowed";
7
+ ProviderAvailability["ServiceUnavailable"] = "serviceUnavailable";
8
+ return ProviderAvailability;
9
+ }({});
10
+ //# sourceMappingURL=providerAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ProviderAvailability"],"sourceRoot":"../../src","sources":["providerAvailability.ts"],"mappings":"AAAA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA"}
@@ -20,5 +20,44 @@ export declare class AndroidHealthConfig {
20
20
  export declare class IOSHealthConfig {
21
21
  dataPushMode: string;
22
22
  backgroundDeliveryEnabled: boolean;
23
+ /**
24
+ * Controls which apps/sources are allowed to contribute sleep data during sync (iOS only).
25
+ *
26
+ * - `undefined` (default): use the SDK's built-in default allow list of known sleep providers.
27
+ * - `'all'`: accept sleep data from every source.
28
+ * - `string[]`: accept only the listed source app bundle identifiers. Use {@link iOSAppIdentifier}
29
+ * for the known providers, or pass any raw bundle identifier string.
30
+ *
31
+ * Manually-entered sleep data is always allowed, regardless of this setting.
32
+ */
33
+ sleepDataAllowlist?: SleepDataAllowlist;
23
34
  }
35
+ /**
36
+ * Known sleep data source apps and their bundle identifiers, mirroring the iOS SDK's
37
+ * `AppIdentifier` constants. Use these with {@link IOSHealthConfig.sleepDataAllowlist}.
38
+ */
39
+ export declare const iOSAppIdentifier: {
40
+ readonly appleHealthKit: "com.apple.health";
41
+ readonly oura: "com.ouraring.oura";
42
+ readonly withings: "com.withings.wiScaleNG";
43
+ readonly whoop: "com.whoop.iphone";
44
+ readonly garmin: "com.garmin.connect.mobile";
45
+ readonly fitbit: "com.fitbit.FitbitMobile";
46
+ readonly polar: "fi.polar.polarflow";
47
+ readonly coros: "com.coros.coros";
48
+ readonly suunto: "com.sports-tracker.suunto.iphone";
49
+ readonly xiaomi: "com.xiaomi.miwatch.pro";
50
+ readonly muse: "com.interaxon.muse";
51
+ readonly biostrap: "com.biostrap.Biostrap";
52
+ readonly cardiomood: "com.corsanohealth.cardiomood";
53
+ readonly eightsleep: "com.eightsleep.Eight";
54
+ readonly zepp: "com.huami.watch";
55
+ readonly zeppLife: "HM.wristband";
56
+ readonly sleepCycle: "com.lexwarelabs.goodmorning";
57
+ };
58
+ /**
59
+ * Sleep data allow list value. `'all'` accepts every source; a `string[]` of bundle identifiers
60
+ * accepts only those sources; leaving it `undefined` uses the SDK default.
61
+ */
62
+ export type SleepDataAllowlist = 'all' | string[];
24
63
  //# sourceMappingURL=health_config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health_config.d.ts","sourceRoot":"","sources":["../../src/health_config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,UAAU,CAAC;AAE1D,oBAAY,iBAAiB;IAC3B,cAAc,qBAAqB;CACpC;AAED,oBAAY,qBAAqB;IAC/B,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;CACjC;AAED,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,qBAAa,YAAY;IACvB,WAAW,UAAQ;IACnB,sBAAsB,SAAM;IAC5B,gBAAgB,EAAE,gBAAgB,CAAiB;IACnD,aAAa,sBAA6B;IAC1C,SAAS,kBAAyB;CACnC;AAED,qBAAa,mBAAmB;IAC9B,cAAc,UAAQ;CACvB;AAED,qBAAa,eAAe;IAC1B,YAAY,SAAe;IAC3B,yBAAyB,UAAQ;CAClC"}
1
+ {"version":3,"file":"health_config.d.ts","sourceRoot":"","sources":["../../src/health_config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,UAAU,CAAC;AAE1D,oBAAY,iBAAiB;IAC3B,cAAc,qBAAqB;CACpC;AAED,oBAAY,qBAAqB;IAC/B,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;CACjC;AAED,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,qBAAa,YAAY;IACvB,WAAW,UAAQ;IACnB,sBAAsB,SAAM;IAC5B,gBAAgB,EAAE,gBAAgB,CAAiB;IACnD,aAAa,sBAA6B;IAC1C,SAAS,kBAAyB;CACnC;AAED,qBAAa,mBAAmB;IAC9B,cAAc,UAAQ;CACvB;AAED,qBAAa,eAAe;IAC1B,YAAY,SAAe;IAC3B,yBAAyB,UAAQ;IACjC;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;CAkBnB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC"}
@@ -2,7 +2,10 @@ import { NativeEventEmitter } from 'react-native';
2
2
  import type { HealthConfig, HealthProvider } from './health_config';
3
3
  import type { AskConfig } from './ask_config';
4
4
  import type { Subscription } from '@tryvital/vital-core-react-native';
5
+ import { ProviderAvailability } from './providerAvailability';
5
6
  export * from './health_config';
7
+ export * from './ask_config';
8
+ export * from './providerAvailability';
6
9
  export declare const VitalHealthReactNativeModule: any;
7
10
  export declare const VitalHealthEvents: {
8
11
  statusEvent: string;
@@ -88,6 +91,13 @@ export declare class VitalHealth {
88
91
  */
89
92
  static get autoSyncThrottle(): Promise<number>;
90
93
  static isAvailable(provider?: HealthProvider): Promise<boolean>;
94
+ /**
95
+ * Returns the platform provider availability.
96
+ *
97
+ * Apple HealthKit is treated as always installed when requested on iOS.
98
+ * Health Connect and Samsung Health return the native Android SDK availability.
99
+ */
100
+ static providerAvailability(provider?: HealthProvider): Promise<ProviderAvailability>;
91
101
  static configure(healthConfig: HealthConfig, provider?: HealthProvider): Promise<void>;
92
102
  /**
93
103
  * Setup a HealthKit (iOS) or Health Connect (Android) connection with this device.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export declare enum ProviderAvailability {
2
+ /**
3
+ * Apple HealthKit, Health Connect, or Samsung Health.
4
+ *
5
+ * There is an active Apple HealthKit, Samsung Health, or Health Connect installation
6
+ * on this device.
7
+ */
8
+ Installed = "installed",
9
+ /**
10
+ * Health Connect or Samsung Health.
11
+ *
12
+ * No Samsung Health or Health Connect installation has been detected on this device.
13
+ */
14
+ NotInstalled = "notInstalled",
15
+ /**
16
+ * Health Connect or Samsung Health.
17
+ *
18
+ * The SDK being used is incompatible with the Samsung Health or Health Connect installation.
19
+ */
20
+ NotSupportedSDK = "notSupportedSDK",
21
+ /**
22
+ * Samsung Health only.
23
+ *
24
+ * Samsung Health has been installed, but the onboarding experience is incomplete.
25
+ * So all the SDK methods are blocked.
26
+ */
27
+ OnboardingIncomplete = "onboardingIncomplete",
28
+ /**
29
+ * Samsung Health only.
30
+ *
31
+ * Samsung Health has been installed. But your App Package ID has not yet been allowlisted
32
+ * by Samsung. Contact Samsumg Developer Support.
33
+ *
34
+ * If you are testing on your device, you can enable Samsung Health developer mode.
35
+ * See https://developer.samsung.com/health/data/guide/developer-mode.html for the instructions.
36
+ */
37
+ AppNotAllowed = "appNotAllowed",
38
+ /**
39
+ * Samsung Health only.
40
+ *
41
+ * Samsung Health has been installed, but we fail to estsblish a functional service connection
42
+ * to Samsung Health. This edge case can happen when Samsung Health is installed while your app
43
+ * is active. The only solution today as of June 10, 2026 appears to be closing and restarting
44
+ * your app.
45
+ */
46
+ ServiceUnavailable = "serviceUnavailable"
47
+ }
48
+ //# sourceMappingURL=providerAvailability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerAvailability.d.ts","sourceRoot":"","sources":["../../src/providerAvailability.ts"],"names":[],"mappings":"AAAA,oBAAY,oBAAoB;IAC9B;;;;;OAKG;IACH,SAAS,cAAc;IAEvB;;;;OAIG;IACH,YAAY,iBAAiB;IAE7B;;;;OAIG;IACH,eAAe,oBAAoB;IAEnC;;;;;OAKG;IACH,oBAAoB,yBAAyB;IAE7C;;;;;;;;OAQG;IACH,aAAa,kBAAkB;IAE/B;;;;;;;OAOG;IACH,kBAAkB,uBAAuB;CAC1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryvital/vital-health-react-native",
3
- "version": "6.0.1",
3
+ "version": "6.0.2",
4
4
  "description": "Client to access iOS's HealthKit and Android HealthConnect",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -50,7 +50,7 @@
50
50
  "registry": "https://registry.npmjs.org/"
51
51
  },
52
52
  "dependencies": {
53
- "@tryvital/vital-core-react-native": "6.0.1"
53
+ "@tryvital/vital-core-react-native": "6.0.2"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "react": "*",
@@ -29,4 +29,45 @@ export class AndroidHealthConfig {
29
29
  export class IOSHealthConfig {
30
30
  dataPushMode = 'automatic';
31
31
  backgroundDeliveryEnabled = true;
32
+ /**
33
+ * Controls which apps/sources are allowed to contribute sleep data during sync (iOS only).
34
+ *
35
+ * - `undefined` (default): use the SDK's built-in default allow list of known sleep providers.
36
+ * - `'all'`: accept sleep data from every source.
37
+ * - `string[]`: accept only the listed source app bundle identifiers. Use {@link iOSAppIdentifier}
38
+ * for the known providers, or pass any raw bundle identifier string.
39
+ *
40
+ * Manually-entered sleep data is always allowed, regardless of this setting.
41
+ */
42
+ sleepDataAllowlist?: SleepDataAllowlist;
32
43
  }
44
+
45
+ /**
46
+ * Known sleep data source apps and their bundle identifiers, mirroring the iOS SDK's
47
+ * `AppIdentifier` constants. Use these with {@link IOSHealthConfig.sleepDataAllowlist}.
48
+ */
49
+ export const iOSAppIdentifier = {
50
+ appleHealthKit: 'com.apple.health',
51
+ oura: 'com.ouraring.oura',
52
+ withings: 'com.withings.wiScaleNG',
53
+ whoop: 'com.whoop.iphone',
54
+ garmin: 'com.garmin.connect.mobile',
55
+ fitbit: 'com.fitbit.FitbitMobile',
56
+ polar: 'fi.polar.polarflow',
57
+ coros: 'com.coros.coros',
58
+ suunto: 'com.sports-tracker.suunto.iphone',
59
+ xiaomi: 'com.xiaomi.miwatch.pro',
60
+ muse: 'com.interaxon.muse',
61
+ biostrap: 'com.biostrap.Biostrap',
62
+ cardiomood: 'com.corsanohealth.cardiomood',
63
+ eightsleep: 'com.eightsleep.Eight',
64
+ zepp: 'com.huami.watch',
65
+ zeppLife: 'HM.wristband',
66
+ sleepCycle: 'com.lexwarelabs.goodmorning',
67
+ } as const;
68
+
69
+ /**
70
+ * Sleep data allow list value. `'all'` accepts every source; a `string[]` of bundle identifiers
71
+ * accepts only those sources; leaving it `undefined` uses the SDK default.
72
+ */
73
+ export type SleepDataAllowlist = 'all' | string[];
package/src/index.tsx CHANGED
@@ -3,9 +3,12 @@ import { AndroidHealthProvider, IOSHealthProvider } from './health_config';
3
3
  import type { HealthConfig, HealthProvider } from './health_config';
4
4
  import type { AskConfig } from './ask_config';
5
5
  import type { Subscription } from '@tryvital/vital-core-react-native';
6
+ import { ProviderAvailability } from './providerAvailability';
6
7
 
7
8
  // Reexports
8
9
  export * from './health_config';
10
+ export * from './ask_config';
11
+ export * from './providerAvailability';
9
12
 
10
13
  const LINKING_ERROR =
11
14
  `The package 'vital-health-react-native' doesn't seem to be linked. Make sure: \n\n` +
@@ -296,13 +299,30 @@ export class VitalHealth {
296
299
  static async isAvailable(
297
300
  provider: HealthProvider = defaultHealthProvider()
298
301
  ): Promise<boolean> {
302
+ return (
303
+ (await this.providerAvailability(provider)) === ProviderAvailability.Installed
304
+ );
305
+ }
306
+
307
+ /**
308
+ * Returns the platform provider availability.
309
+ *
310
+ * Apple HealthKit is treated as always installed when requested on iOS.
311
+ * Health Connect and Samsung Health return the native Android SDK availability.
312
+ */
313
+ static async providerAvailability(
314
+ provider: HealthProvider = defaultHealthProvider()
315
+ ): Promise<ProviderAvailability> {
299
316
  if (Platform.OS === 'android') {
300
317
  if (!isAndroidHealthProvider(provider)) {
301
- return false;
318
+ return ProviderAvailability.NotInstalled;
302
319
  }
303
- return await VitalHealthReactNative.isAvailable(provider);
320
+
321
+ return await VitalHealthReactNative.providerAvailability(provider);
304
322
  } else {
305
- return provider === 'apple_health_kit' && Platform.OS === 'ios';
323
+ return provider === IOSHealthProvider.AppleHealthKit && Platform.OS === 'ios'
324
+ ? ProviderAvailability.Installed
325
+ : ProviderAvailability.NotInstalled;
306
326
  }
307
327
  }
308
328
 
@@ -326,7 +346,8 @@ export class VitalHealth {
326
346
  healthConfig.iOSConfig.backgroundDeliveryEnabled,
327
347
  healthConfig.numberOfDaysToBackFill,
328
348
  healthConfig.logsEnabled,
329
- healthConfig.connectionPolicy
349
+ healthConfig.connectionPolicy,
350
+ healthConfig.iOSConfig.sleepDataAllowlist ?? null
330
351
  );
331
352
  }
332
353
  }
@@ -0,0 +1,52 @@
1
+ export enum ProviderAvailability {
2
+ /**
3
+ * Apple HealthKit, Health Connect, or Samsung Health.
4
+ *
5
+ * There is an active Apple HealthKit, Samsung Health, or Health Connect installation
6
+ * on this device.
7
+ */
8
+ Installed = 'installed',
9
+
10
+ /**
11
+ * Health Connect or Samsung Health.
12
+ *
13
+ * No Samsung Health or Health Connect installation has been detected on this device.
14
+ */
15
+ NotInstalled = 'notInstalled',
16
+
17
+ /**
18
+ * Health Connect or Samsung Health.
19
+ *
20
+ * The SDK being used is incompatible with the Samsung Health or Health Connect installation.
21
+ */
22
+ NotSupportedSDK = 'notSupportedSDK',
23
+
24
+ /**
25
+ * Samsung Health only.
26
+ *
27
+ * Samsung Health has been installed, but the onboarding experience is incomplete.
28
+ * So all the SDK methods are blocked.
29
+ */
30
+ OnboardingIncomplete = 'onboardingIncomplete',
31
+
32
+ /**
33
+ * Samsung Health only.
34
+ *
35
+ * Samsung Health has been installed. But your App Package ID has not yet been allowlisted
36
+ * by Samsung. Contact Samsumg Developer Support.
37
+ *
38
+ * If you are testing on your device, you can enable Samsung Health developer mode.
39
+ * See https://developer.samsung.com/health/data/guide/developer-mode.html for the instructions.
40
+ */
41
+ AppNotAllowed = 'appNotAllowed',
42
+
43
+ /**
44
+ * Samsung Health only.
45
+ *
46
+ * Samsung Health has been installed, but we fail to estsblish a functional service connection
47
+ * to Samsung Health. This edge case can happen when Samsung Health is installed while your app
48
+ * is active. The only solution today as of June 10, 2026 appears to be closing and restarting
49
+ * your app.
50
+ */
51
+ ServiceUnavailable = 'serviceUnavailable',
52
+ }