react-native-spike-sdk 2.2.4 → 2.2.6

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/README.md CHANGED
@@ -10,6 +10,8 @@ Spike ReactNative SDK is a library on top of Apple HealthKit and Android HealthC
10
10
  - [Installation](#installation)
11
11
  - [iOS Setup](#ios_setup)
12
12
  - [Android Setup](#android_setup)
13
+ - [Check HealthConnect availability (Android Only)](#health_connect_package)
14
+ - [Check HealthStore data availability (iOS Only)](#health_store_data)
13
15
  - [Spike SDK usage](#sdk_usage)
14
16
  1. [Create Spike connection](#create_connection)
15
17
  2. [Permissions](#permissions)
@@ -26,6 +28,8 @@ Spike ReactNative SDK is a library on top of Apple HealthKit and Android HealthC
26
28
 
27
29
  - Android 9.0+
28
30
 
31
+ > 🚨 Expo: This package is not available in the [Expo Go](https://expo.io/client) app. Learn how you can use it with [custom dev clients](./Expo.md).
32
+
29
33
  ## Installation <a name="installation"></a>
30
34
 
31
35
  Install the `react-native-spike-sdk` package from [npm](https://www.npmjs.com/package/react-native-spike-sdk)
@@ -54,8 +58,6 @@ To add HealthKit support to your application's Capabilities.
54
58
 
55
59
  ![](https://archbee-image-uploads.s3.amazonaws.com/Gq3NSKcNtQuC0xEw-R9rS/m1edxa1O8BQ9j1xchz9Qq_signing-capabilities2x.png)
56
60
 
57
- > 🚨 Expo: This package is not available in the [Expo Go](https://expo.io/client) app. Learn how you can use it with [custom dev clients](./Expo.md).
58
-
59
61
  More details you can find [here](https://developer.apple.com/documentation/healthkit/setting_up_healthkit).
60
62
 
61
63
  ### Info.plist
@@ -78,7 +80,7 @@ Add Health Kit permissions descriptions to your `Info.plist` file.
78
80
  First of all you have to add the required health permissions to your "AndroidManifest.xml" file
79
81
 
80
82
  ```xml
81
- <uses-permission android:name="android.permission.health.READ_SLEEP" >
83
+ <uses-permission android:name="android.permission.health.READ_SLEEP"/>
82
84
  <uses-permission android:name="android.permission.health.READ_WEIGHT"/>
83
85
  <uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED"/>
84
86
  <uses-permission android:name="android.permission.health.READ_BASAL_METABOLIC_RATE"/>
@@ -166,6 +168,22 @@ maven {
166
168
  }
167
169
  ```
168
170
 
171
+ ## Check HealthConnect availability (Android Only) <a name="health_connect_package"></a>
172
+
173
+ Check if Health Connect installed on a device.
174
+
175
+ ```javascript
176
+ const isPackageInstalled = await Spike.isPackageInstalled();
177
+ ```
178
+
179
+ ## Check HealthStore data availability (iOS Only) <a name="health_store_data"></a>
180
+
181
+ Check if Health Store data available on a device.
182
+
183
+ ```javascript
184
+ const isAvailable = await Spike.isHealthDataAvailable();
185
+ ```
186
+
169
187
  ## Spike SDK usage <a name="sdk_usage"></a>
170
188
 
171
189
  Start getting Spike data in 3 steps.
@@ -278,14 +296,6 @@ const data = await conn.extractAndPostData({
278
296
  });
279
297
  ```
280
298
 
281
- ## Check HealthConnect availability (Android Only) <a name="health_connect_package"></a>
282
-
283
- Check if Health Connect installed on a device.
284
-
285
- ```javascript
286
- const isPackageInstalled = await Spike.isPackageInstalled();
287
- ```
288
-
289
299
  ## Background deliveries (iOS Only) <a name="background_deliveries"></a>
290
300
 
291
301
  Background delivery enables asynchronous data delivery to the customer backend by means of webhooks. It enables data updates to be sent to the backend even when the application is hidden or closed. Background delivery is only supported on iOS devices at the moment. Background deliveries will send whole day data to the webhook.
@@ -401,7 +411,8 @@ class BackgroundDeliveriesLogger implements SpikeBackgroundDeliveriesLogger {
401
411
  | Spike | createConnection | Creates a new SpikeConnection instance with the given user details.<br />**Parameters:** config ([SpikeConnectionConfig](#type_SpikeConnectionConfig)), logger? ([SpikeLogger](#class_SpikeLogger)) .<br />**Returns:** An instance of the SpikeConnection class ([SpikeConnection](#class_SpikeConnection)). | yes | yes |
402
412
  | Spike | getBackgroundConnections | Returns all connections that are configured to deliver data in the background.<br />**Returns:** An array of SpikeConnection instances with callbackUrl (Array\<[SpikeConnection](#class_SpikeConnection)>). | yes | yes |
403
413
  | Spike | ensurePermissionsAreGranted | Verifies that platform-specific permissions corresponding to the Spike data types provided are granted. In the event that some permissions are not granted, a platform-specific permissions dialogue will be presented to the end-user. This method should only be invoked from a UI component.<br />**Parameters:** permissions (Array\<[SpikeDataType](#spike_data_types)>) | yes | no |
404
- | Spike | isPackageInstalled | Check if Health Connect installed on a device. | no | yes |
414
+ | Spike | isPackageInstalled | Check if Health Connect installed on a device.<br />**Returns:** isInstalled (Bool) | no | yes |
415
+ | Spike | isHealthDataAvailable | Check if Health Store data available on the device.<br />**Returns:** isAvailable (Bool) | yes | no |
405
416
 
406
417
  ### SpikeConnection <a name="class_SpikeConnection"></a>
407
418
 
@@ -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.0.6'
79
+ implementation 'com.spikeapi.sdk:spike-sdk:3.0.8'
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'
@@ -1,19 +1,11 @@
1
1
  package com.spikesdk
2
2
 
3
3
  import android.os.Build
4
- import android.os.Environment
5
- import android.os.Environment.DIRECTORY_DOWNLOADS
6
4
  import androidx.activity.ComponentActivity
7
5
  import androidx.activity.result.ActivityResultCallback
8
6
  import androidx.activity.result.ActivityResultLauncher
9
7
  import androidx.activity.result.contract.ActivityResultContract
10
- import com.facebook.react.bridge.Promise
11
- import com.facebook.react.bridge.ReactApplicationContext
12
- import com.facebook.react.bridge.ReactContext
13
- import com.facebook.react.bridge.ReactContextBaseJavaModule
14
- import com.facebook.react.bridge.ReactMethod
15
- import com.facebook.react.bridge.WritableMap
16
- import com.facebook.react.bridge.WritableNativeMap
8
+ import com.facebook.react.bridge.*
17
9
  import com.facebook.react.modules.core.DeviceEventManagerModule
18
10
  import com.google.gson.GsonBuilder
19
11
  import com.spikeapi.SpikeConnection
@@ -24,8 +16,6 @@ import kotlinx.coroutines.CoroutineScope
24
16
  import kotlinx.coroutines.Dispatchers
25
17
  import kotlinx.coroutines.SupervisorJob
26
18
  import kotlinx.coroutines.launch
27
- import java.io.File
28
- import java.io.IOException
29
19
  import java.time.OffsetDateTime
30
20
  import java.util.UUID
31
21
 
@@ -38,7 +28,7 @@ fun <I, O> ComponentActivity.registerActivityResultLauncher(
38
28
  }
39
29
 
40
30
  class SpikeSdkModule(reactContext: ReactApplicationContext) :
41
- ReactContextBaseJavaModule(reactContext) {
31
+ ReactContextBaseJavaModule(reactContext), LifecycleEventListener {
42
32
 
43
33
  private val connections = mutableMapOf<String, SpikeConnection>()
44
34
 
@@ -50,11 +40,16 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
50
40
  OffsetDateTime::class.java,
51
41
  OffsetDateTimeSerializer()
52
42
  ).create()
43
+ private var checkPermissionsFor: Triple<String, String, Promise>? = null
53
44
 
54
45
  override fun getName(): String {
55
46
  return NAME
56
47
  }
57
48
 
49
+ init {
50
+ reactContext.addLifecycleEventListener(this)
51
+ }
52
+
58
53
  @ReactMethod
59
54
  fun isPackageInstalled(
60
55
  promise: Promise
@@ -199,7 +194,6 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
199
194
  "Connection not found"
200
195
  ).mapException(), "Connection not found"
201
196
  )
202
- connection.readGrantedPermissions()
203
197
  val result = connection.extractData(
204
198
  dataType = dataType.toSpikeDataType(),
205
199
  from = fromDateMillis.toLong().millisToOffsetDataTime(),
@@ -227,7 +221,6 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
227
221
  "Connection not found"
228
222
  ).mapException(), "Connection not found"
229
223
  )
230
- connection.readGrantedPermissions()
231
224
  val result = connection.extractAndPostData(
232
225
  dataType = dataType.toSpikeDataType(),
233
226
  from = fromDateMillis.toLong().millisToOffsetDataTime(),
@@ -253,7 +246,6 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
253
246
  "Connection not found"
254
247
  ).mapException(), "Connection not found"
255
248
  )
256
- connection.readGrantedPermissions()
257
249
  val result = connection.extractData(
258
250
  dataType = dataType.toSpikeDataType()
259
251
  )
@@ -277,7 +269,6 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
277
269
  "Connection not found"
278
270
  ).mapException(), "Connection not found"
279
271
  )
280
- connection.readGrantedPermissions()
281
272
  val result = connection.extractAndPostData(
282
273
  dataType = dataType.toSpikeDataType()
283
274
  )
@@ -317,7 +308,6 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
317
308
  )
318
309
  val permissionsGranted: Boolean =
319
310
  connection.hasHealthPermissionsGranted(requiredPermissions)
320
- connection.readGrantedPermissions()
321
311
  promise.resolve(permissionsGranted)
322
312
  } catch (e: SpikeExceptions) {
323
313
  promise.reject(e.mapException(), e.message)
@@ -358,7 +348,6 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
358
348
  }
359
349
  }
360
350
  }
361
-
362
351
  @ReactMethod
363
352
  fun requestHealthPermissions(connectionUUID: String, dataType: String, promise: Promise) {
364
353
  val connection = connections[connectionUUID] ?: return promise.reject(
@@ -371,7 +360,7 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
371
360
  connection.getRequiredHealthPermissionsMetadata(dataType.toSpikeDataType())
372
361
 
373
362
  if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.TIRAMISU) {
374
- val intent = connection.requestReadAuthorization().createIntent(
363
+ val intent = SpikeConnection.requestReadAuthorization().createIntent(
375
364
  reactApplicationContext, permissions
376
365
  )
377
366
 
@@ -383,15 +372,15 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
383
372
  } else {
384
373
  val activity = reactApplicationContext.currentActivity
385
374
  if (activity is ComponentActivity) {
375
+ checkPermissionsFor = Triple(connectionUUID, dataType, promise)
386
376
  val launcher =
387
377
  activity.registerActivityResultLauncher(
388
- connection.requestReadAuthorization()
378
+ SpikeConnection.requestReadAuthorization()
389
379
  ) {
390
- checkPermissionsGranted(connectionUUID, dataType, promise)
380
+
391
381
  }
392
382
 
393
383
  launcher.launch(permissions)
394
- promise.resolve(true)
395
384
  } else {
396
385
  promise.resolve(false)
397
386
  }
@@ -432,10 +421,24 @@ class SpikeSdkModule(reactContext: ReactApplicationContext) :
432
421
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
433
422
  .emit(eventName, params)
434
423
  }
424
+ override fun onHostResume() {
425
+ checkPermissionsFor?.let {
426
+ checkPermissionsGranted(
427
+ it.first,
428
+ it.second,
429
+ it.third
430
+ )
431
+ }
432
+ checkPermissionsFor = null
433
+ }
434
+
435
+ override fun onHostPause() {
436
+ }
435
437
 
438
+ override fun onHostDestroy() {
439
+ }
436
440
  companion object {
437
441
  const val NAME = "SpikeSdk"
438
442
  const val REQUEST_CODE = 4200
439
443
  }
440
-
441
444
  }
@@ -25,6 +25,8 @@ class SpikeExceptionMapper {
25
25
  return "SpikeUnpackException"
26
26
  case is SpikeCallbackURLNotProvidedException:
27
27
  return "SpikeCallbackURLNotProvidedException"
28
+ case is SpikeHealthDataNotAvailableException:
29
+ return "SpikeHealthDataNotAvailableException"
28
30
  case is SpikeWrapperException:
29
31
  return "SpikeException"
30
32
  default:
package/ios/SpikeSdk.m CHANGED
@@ -22,6 +22,9 @@ RCT_EXTERN_METHOD(ensurePermissionsAreGranted: (NSArray<NSString>)permissions
22
22
  withResolver: (RCTPromiseResolveBlock)resolve
23
23
  withRejecter: (RCTPromiseRejectBlock)reject)
24
24
 
25
+ RCT_EXTERN_METHOD(isHealthDataAvailable: (RCTPromiseResolveBlock)resolve
26
+ withRejecter: (RCTPromiseRejectBlock)reject)
27
+
25
28
  // MARK: SpikeConnection level
26
29
 
27
30
  RCT_EXTERN_METHOD(getAppId: (NSString)connectionUUID
@@ -71,6 +71,16 @@ class SpikeSdk: RCTEventEmitter {
71
71
  }
72
72
  }
73
73
  }
74
+
75
+ @objc(isHealthDataAvailable:
76
+ withRejecter:)
77
+ func isHealthDataAvailable(resolve: @escaping RCTPromiseResolveBlock,
78
+ reject: @escaping RCTPromiseRejectBlock) {
79
+ Task {
80
+ let isAvailable = Spike.isHealthDataAvailable()
81
+ resolve(isAvailable)
82
+ }
83
+ }
74
84
 
75
85
  @objc(ensurePermissionsAreGranted:
76
86
  withResolver:
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isPackageInstalled = exports.getBackgroundConnections = exports.ensurePermissionsAreGranted = exports.createConnection = void 0;
6
+ exports.isPackageInstalled = exports.isHealthDataAvailable = exports.getBackgroundConnections = exports.ensurePermissionsAreGranted = exports.createConnection = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _SpikeConnection = require("./SpikeConnection");
9
9
  var _SpikeException = require("./SpikeException");
@@ -51,6 +51,16 @@ const isPackageInstalled = async () => {
51
51
  }
52
52
  };
53
53
  exports.isPackageInstalled = isPackageInstalled;
54
+ const isHealthDataAvailable = async () => {
55
+ if (_reactNative.Platform.OS !== 'ios') return true;
56
+ if (!_SpikeSdk.SpikeSdk) throw new _SpikeException.SpikeException();
57
+ try {
58
+ return await _SpikeSdk.SpikeSdk.isHealthDataAvailable();
59
+ } catch (error) {
60
+ throw (0, _SpikeException.unwrapSpikeException)(error);
61
+ }
62
+ };
63
+ exports.isHealthDataAvailable = isHealthDataAvailable;
54
64
  function generateUUID() {
55
65
  const S4 = function () {
56
66
  let str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXZ';
@@ -1 +1 @@
1
- {"version":3,"names":["createConnection","config","logger","SpikeSdk","SpikeException","connectionUUID","generateUUID","spikeConnection","SpikeConnection","appId","authToken","customerEndUserId","callbackUrl","env","error","unwrapSpikeException","getBackgroundConnections","connectionUUIDs","connections","map","uuid","ensurePermissionsAreGranted","permissions","Platform","OS","permissionType","rawValue","isPackageInstalled","S4","str","i","push","Math","floor","random","length","join"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":"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"}
1
+ {"version":3,"names":["createConnection","config","logger","SpikeSdk","SpikeException","connectionUUID","generateUUID","spikeConnection","SpikeConnection","appId","authToken","customerEndUserId","callbackUrl","env","error","unwrapSpikeException","getBackgroundConnections","connectionUUIDs","connections","map","uuid","ensurePermissionsAreGranted","permissions","Platform","OS","permissionType","rawValue","isPackageInstalled","isHealthDataAvailable","S4","str","i","push","Math","floor","random","length","join"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.unwrapSpikeException = exports.SpikeUnpackException = exports.SpikeServerException = exports.SpikePermissionsNotGrantedException = exports.SpikePackException = exports.SpikeInvalidDateRangeException = exports.SpikeInvalidCredentialsException = exports.SpikeInvalidCallbackUrlException = exports.SpikeException = exports.SpikeConnectionIsClosedException = exports.SpikeCallbackURLNotProvidedException = void 0;
6
+ exports.unwrapSpikeException = exports.SpikeUnpackException = exports.SpikeServerException = exports.SpikePermissionsNotGrantedException = exports.SpikePackException = exports.SpikeInvalidDateRangeException = exports.SpikeInvalidCredentialsException = exports.SpikeInvalidCallbackUrlException = exports.SpikeHealthDataNotAvailableException = exports.SpikeException = exports.SpikeConnectionIsClosedException = exports.SpikeCallbackURLNotProvidedException = void 0;
7
7
  class SpikeException extends Error {
8
8
  constructor(message) {
9
9
  super(message ?? 'SpikeException');
@@ -64,6 +64,12 @@ class SpikeCallbackURLNotProvidedException extends SpikeException {
64
64
  }
65
65
  }
66
66
  exports.SpikeCallbackURLNotProvidedException = SpikeCallbackURLNotProvidedException;
67
+ class SpikeHealthDataNotAvailableException extends SpikeException {
68
+ constructor() {
69
+ super('SpikeHealthDataNotAvailableException');
70
+ }
71
+ }
72
+ exports.SpikeHealthDataNotAvailableException = SpikeHealthDataNotAvailableException;
67
73
  const unwrapSpikeException = error => {
68
74
  if (error instanceof Error && 'code' in error) {
69
75
  switch (error.code) {
@@ -85,6 +91,8 @@ const unwrapSpikeException = error => {
85
91
  return new SpikeUnpackException();
86
92
  case 'SpikeCallbackURLNotProvidedException':
87
93
  return new SpikeCallbackURLNotProvidedException();
94
+ case 'SpikeHealthDataNotAvailableException':
95
+ return new SpikeHealthDataNotAvailableException();
88
96
  case 'SpikeWrapperException':
89
97
  return new SpikeException();
90
98
  default:
@@ -1 +1 @@
1
- {"version":3,"names":["SpikeException","Error","constructor","message","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException","unwrapSpikeException","error","code"],"sourceRoot":"../../src","sources":["SpikeException.ts"],"mappings":";;;;;;AAAO,MAAMA,cAAc,SAASC,KAAK,CAAC;EACxCC,WAAW,CAACC,OAAgB,EAAE;IAC5B,KAAK,CAACA,OAAO,IAAI,gBAAgB,CAAC;EACpC;AACF;AAAC;AAEM,MAAMC,gCAAgC,SAASJ,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AAAC;AACM,MAAMG,gCAAgC,SAASL,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AAAC;AACM,MAAMI,8BAA8B,SAASN,cAAc,CAAC;EACjEE,WAAW,GAAG;IACZ,KAAK,CAAC,gCAAgC,CAAC;EACzC;AACF;AAAC;AACM,MAAMK,gCAAgC,SAASP,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AAAC;AACM,MAAMM,kBAAkB,SAASR,cAAc,CAAC;EACrDE,WAAW,GAAG;IACZ,KAAK,CAAC,oBAAoB,CAAC;EAC7B;AACF;AAAC;AACM,MAAMO,mCAAmC,SAAST,cAAc,CAAC;EACtEE,WAAW,GAAG;IACZ,KAAK,CAAC,qCAAqC,CAAC;EAC9C;AACF;AAAC;AACM,MAAMQ,oBAAoB,SAASV,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AAAC;AACM,MAAMS,oBAAoB,SAASX,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AAAC;AACM,MAAMU,oCAAoC,SAASZ,cAAc,CAAC;EACvEE,WAAW,GAAG;IACZ,KAAK,CAAC,sCAAsC,CAAC;EAC/C;AACF;AAAC;AAEM,MAAMW,oBAAoB,GAAIC,KAAc,IAAqB;EACtE,IAAIA,KAAK,YAAYb,KAAK,IAAI,MAAM,IAAIa,KAAK,EAAE;IAC7C,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,kCAAkC;QACrC,OAAO,IAAIX,gCAAgC,EAAE;MAC/C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,gCAAgC;QACnC,OAAO,IAAIC,8BAA8B,EAAE;MAC7C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,oBAAoB;QACvB,OAAO,IAAIC,kBAAkB,EAAE;MACjC,KAAK,qCAAqC;QACxC,OAAO,IAAIC,mCAAmC,EAAE;MAClD,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sCAAsC;QACzC,OAAO,IAAIC,oCAAoC,EAAE;MACnD,KAAK,uBAAuB;QAC1B,OAAO,IAAIZ,cAAc,EAAE;MAC7B;QACE,OAAO,IAAIA,cAAc,EAAE;IAAC;EAElC;EACA,OAAO,IAAIA,cAAc,EAAE;AAC7B,CAAC;AAAC"}
1
+ {"version":3,"names":["SpikeException","Error","constructor","message","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException","SpikeHealthDataNotAvailableException","unwrapSpikeException","error","code"],"sourceRoot":"../../src","sources":["SpikeException.ts"],"mappings":";;;;;;AAAO,MAAMA,cAAc,SAASC,KAAK,CAAC;EACxCC,WAAW,CAACC,OAAgB,EAAE;IAC5B,KAAK,CAACA,OAAO,IAAI,gBAAgB,CAAC;EACpC;AACF;AAAC;AAEM,MAAMC,gCAAgC,SAASJ,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AAAC;AACM,MAAMG,gCAAgC,SAASL,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AAAC;AACM,MAAMI,8BAA8B,SAASN,cAAc,CAAC;EACjEE,WAAW,GAAG;IACZ,KAAK,CAAC,gCAAgC,CAAC;EACzC;AACF;AAAC;AACM,MAAMK,gCAAgC,SAASP,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AAAC;AACM,MAAMM,kBAAkB,SAASR,cAAc,CAAC;EACrDE,WAAW,GAAG;IACZ,KAAK,CAAC,oBAAoB,CAAC;EAC7B;AACF;AAAC;AACM,MAAMO,mCAAmC,SAAST,cAAc,CAAC;EACtEE,WAAW,GAAG;IACZ,KAAK,CAAC,qCAAqC,CAAC;EAC9C;AACF;AAAC;AACM,MAAMQ,oBAAoB,SAASV,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AAAC;AACM,MAAMS,oBAAoB,SAASX,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AAAC;AACM,MAAMU,oCAAoC,SAASZ,cAAc,CAAC;EACvEE,WAAW,GAAG;IACZ,KAAK,CAAC,sCAAsC,CAAC;EAC/C;AACF;AAAC;AACM,MAAMW,oCAAoC,SAASb,cAAc,CAAC;EACvEE,WAAW,GAAG;IACZ,KAAK,CAAC,sCAAsC,CAAC;EAC/C;AACF;AAAC;AAEM,MAAMY,oBAAoB,GAAIC,KAAc,IAAqB;EACtE,IAAIA,KAAK,YAAYd,KAAK,IAAI,MAAM,IAAIc,KAAK,EAAE;IAC7C,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,kCAAkC;QACrC,OAAO,IAAIZ,gCAAgC,EAAE;MAC/C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,gCAAgC;QACnC,OAAO,IAAIC,8BAA8B,EAAE;MAC7C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,oBAAoB;QACvB,OAAO,IAAIC,kBAAkB,EAAE;MACjC,KAAK,qCAAqC;QACxC,OAAO,IAAIC,mCAAmC,EAAE;MAClD,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sCAAsC;QACzC,OAAO,IAAIC,oCAAoC,EAAE;MACnD,KAAK,sCAAsC;QACzC,OAAO,IAAIC,oCAAoC,EAAE;MACnD,KAAK,uBAAuB;QAC1B,OAAO,IAAIb,cAAc,EAAE;MAC7B;QACE,OAAO,IAAIA,cAAc,EAAE;IAAC;EAElC;EACA,OAAO,IAAIA,cAAc,EAAE;AAC7B,CAAC;AAAC"}
@@ -90,7 +90,8 @@ var _default = {
90
90
  createConnection: _Spike.createConnection,
91
91
  getBackgroundConnections: _Spike.getBackgroundConnections,
92
92
  ensurePermissionsAreGranted: _Spike.ensurePermissionsAreGranted,
93
- isPackageInstalled: _Spike.isPackageInstalled
93
+ isPackageInstalled: _Spike.isPackageInstalled,
94
+ isHealthDataAvailable: _Spike.isHealthDataAvailable
94
95
  };
95
96
  exports.default = _default;
96
97
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createConnection","getBackgroundConnections","ensurePermissionsAreGranted","isPackageInstalled"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AAOA;AAKA;AAW0B,eAaX;EACbA,gBAAgB,EAAhBA,uBAAgB;EAChBC,wBAAwB,EAAxBA,+BAAwB;EACxBC,2BAA2B,EAA3BA,kCAA2B;EAC3BC,kBAAkB,EAAlBA;AACF,CAAC;AAAA"}
1
+ {"version":3,"names":["createConnection","getBackgroundConnections","ensurePermissionsAreGranted","isPackageInstalled","isHealthDataAvailable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AAQA;AAKA;AAW0B,eAaX;EACbA,gBAAgB,EAAhBA,uBAAgB;EAChBC,wBAAwB,EAAxBA,+BAAwB;EACxBC,2BAA2B,EAA3BA,kCAA2B;EAC3BC,kBAAkB,EAAlBA,yBAAkB;EAClBC,qBAAqB,EAArBA;AACF,CAAC;AAAA"}
@@ -41,6 +41,15 @@ const isPackageInstalled = async () => {
41
41
  throw unwrapSpikeException(error);
42
42
  }
43
43
  };
44
+ const isHealthDataAvailable = async () => {
45
+ if (Platform.OS !== 'ios') return true;
46
+ if (!SpikeSdk) throw new SpikeException();
47
+ try {
48
+ return await SpikeSdk.isHealthDataAvailable();
49
+ } catch (error) {
50
+ throw unwrapSpikeException(error);
51
+ }
52
+ };
44
53
  function generateUUID() {
45
54
  const S4 = function () {
46
55
  let str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXZ';
@@ -52,5 +61,5 @@ function generateUUID() {
52
61
  };
53
62
  return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();
54
63
  }
55
- export { createConnection, getBackgroundConnections, ensurePermissionsAreGranted, isPackageInstalled };
64
+ export { createConnection, getBackgroundConnections, ensurePermissionsAreGranted, isPackageInstalled, isHealthDataAvailable };
56
65
  //# sourceMappingURL=Spike.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","SpikeConnection","SpikeException","unwrapSpikeException","SpikeSdk","createConnection","config","logger","connectionUUID","generateUUID","spikeConnection","appId","authToken","customerEndUserId","callbackUrl","env","error","getBackgroundConnections","connectionUUIDs","connections","map","uuid","ensurePermissionsAreGranted","permissions","OS","permissionType","rawValue","isPackageInstalled","S4","str","i","push","Math","floor","random","length","join"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":"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"}
1
+ {"version":3,"names":["Platform","SpikeConnection","SpikeException","unwrapSpikeException","SpikeSdk","createConnection","config","logger","connectionUUID","generateUUID","spikeConnection","appId","authToken","customerEndUserId","callbackUrl","env","error","getBackgroundConnections","connectionUUIDs","connections","map","uuid","ensurePermissionsAreGranted","permissions","OS","permissionType","rawValue","isPackageInstalled","isHealthDataAvailable","S4","str","i","push","Math","floor","random","length","join"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":"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"}
@@ -48,6 +48,11 @@ export class SpikeCallbackURLNotProvidedException extends SpikeException {
48
48
  super('SpikeCallbackURLNotProvidedException');
49
49
  }
50
50
  }
51
+ export class SpikeHealthDataNotAvailableException extends SpikeException {
52
+ constructor() {
53
+ super('SpikeHealthDataNotAvailableException');
54
+ }
55
+ }
51
56
  export const unwrapSpikeException = error => {
52
57
  if (error instanceof Error && 'code' in error) {
53
58
  switch (error.code) {
@@ -69,6 +74,8 @@ export const unwrapSpikeException = error => {
69
74
  return new SpikeUnpackException();
70
75
  case 'SpikeCallbackURLNotProvidedException':
71
76
  return new SpikeCallbackURLNotProvidedException();
77
+ case 'SpikeHealthDataNotAvailableException':
78
+ return new SpikeHealthDataNotAvailableException();
72
79
  case 'SpikeWrapperException':
73
80
  return new SpikeException();
74
81
  default:
@@ -1 +1 @@
1
- {"version":3,"names":["SpikeException","Error","constructor","message","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException","unwrapSpikeException","error","code"],"sourceRoot":"../../src","sources":["SpikeException.ts"],"mappings":"AAAA,OAAO,MAAMA,cAAc,SAASC,KAAK,CAAC;EACxCC,WAAW,CAACC,OAAgB,EAAE;IAC5B,KAAK,CAACA,OAAO,IAAI,gBAAgB,CAAC;EACpC;AACF;AAEA,OAAO,MAAMC,gCAAgC,SAASJ,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AACA,OAAO,MAAMG,gCAAgC,SAASL,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AACA,OAAO,MAAMI,8BAA8B,SAASN,cAAc,CAAC;EACjEE,WAAW,GAAG;IACZ,KAAK,CAAC,gCAAgC,CAAC;EACzC;AACF;AACA,OAAO,MAAMK,gCAAgC,SAASP,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AACA,OAAO,MAAMM,kBAAkB,SAASR,cAAc,CAAC;EACrDE,WAAW,GAAG;IACZ,KAAK,CAAC,oBAAoB,CAAC;EAC7B;AACF;AACA,OAAO,MAAMO,mCAAmC,SAAST,cAAc,CAAC;EACtEE,WAAW,GAAG;IACZ,KAAK,CAAC,qCAAqC,CAAC;EAC9C;AACF;AACA,OAAO,MAAMQ,oBAAoB,SAASV,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AACA,OAAO,MAAMS,oBAAoB,SAASX,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AACA,OAAO,MAAMU,oCAAoC,SAASZ,cAAc,CAAC;EACvEE,WAAW,GAAG;IACZ,KAAK,CAAC,sCAAsC,CAAC;EAC/C;AACF;AAEA,OAAO,MAAMW,oBAAoB,GAAIC,KAAc,IAAqB;EACtE,IAAIA,KAAK,YAAYb,KAAK,IAAI,MAAM,IAAIa,KAAK,EAAE;IAC7C,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,kCAAkC;QACrC,OAAO,IAAIX,gCAAgC,EAAE;MAC/C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,gCAAgC;QACnC,OAAO,IAAIC,8BAA8B,EAAE;MAC7C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,oBAAoB;QACvB,OAAO,IAAIC,kBAAkB,EAAE;MACjC,KAAK,qCAAqC;QACxC,OAAO,IAAIC,mCAAmC,EAAE;MAClD,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sCAAsC;QACzC,OAAO,IAAIC,oCAAoC,EAAE;MACnD,KAAK,uBAAuB;QAC1B,OAAO,IAAIZ,cAAc,EAAE;MAC7B;QACE,OAAO,IAAIA,cAAc,EAAE;IAAC;EAElC;EACA,OAAO,IAAIA,cAAc,EAAE;AAC7B,CAAC"}
1
+ {"version":3,"names":["SpikeException","Error","constructor","message","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException","SpikeHealthDataNotAvailableException","unwrapSpikeException","error","code"],"sourceRoot":"../../src","sources":["SpikeException.ts"],"mappings":"AAAA,OAAO,MAAMA,cAAc,SAASC,KAAK,CAAC;EACxCC,WAAW,CAACC,OAAgB,EAAE;IAC5B,KAAK,CAACA,OAAO,IAAI,gBAAgB,CAAC;EACpC;AACF;AAEA,OAAO,MAAMC,gCAAgC,SAASJ,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AACA,OAAO,MAAMG,gCAAgC,SAASL,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AACA,OAAO,MAAMI,8BAA8B,SAASN,cAAc,CAAC;EACjEE,WAAW,GAAG;IACZ,KAAK,CAAC,gCAAgC,CAAC;EACzC;AACF;AACA,OAAO,MAAMK,gCAAgC,SAASP,cAAc,CAAC;EACnEE,WAAW,GAAG;IACZ,KAAK,CAAC,kCAAkC,CAAC;EAC3C;AACF;AACA,OAAO,MAAMM,kBAAkB,SAASR,cAAc,CAAC;EACrDE,WAAW,GAAG;IACZ,KAAK,CAAC,oBAAoB,CAAC;EAC7B;AACF;AACA,OAAO,MAAMO,mCAAmC,SAAST,cAAc,CAAC;EACtEE,WAAW,GAAG;IACZ,KAAK,CAAC,qCAAqC,CAAC;EAC9C;AACF;AACA,OAAO,MAAMQ,oBAAoB,SAASV,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AACA,OAAO,MAAMS,oBAAoB,SAASX,cAAc,CAAC;EACvDE,WAAW,GAAG;IACZ,KAAK,CAAC,sBAAsB,CAAC;EAC/B;AACF;AACA,OAAO,MAAMU,oCAAoC,SAASZ,cAAc,CAAC;EACvEE,WAAW,GAAG;IACZ,KAAK,CAAC,sCAAsC,CAAC;EAC/C;AACF;AACA,OAAO,MAAMW,oCAAoC,SAASb,cAAc,CAAC;EACvEE,WAAW,GAAG;IACZ,KAAK,CAAC,sCAAsC,CAAC;EAC/C;AACF;AAEA,OAAO,MAAMY,oBAAoB,GAAIC,KAAc,IAAqB;EACtE,IAAIA,KAAK,YAAYd,KAAK,IAAI,MAAM,IAAIc,KAAK,EAAE;IAC7C,QAAQA,KAAK,CAACC,IAAI;MAChB,KAAK,kCAAkC;QACrC,OAAO,IAAIZ,gCAAgC,EAAE;MAC/C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,gCAAgC;QACnC,OAAO,IAAIC,8BAA8B,EAAE;MAC7C,KAAK,kCAAkC;QACrC,OAAO,IAAIC,gCAAgC,EAAE;MAC/C,KAAK,oBAAoB;QACvB,OAAO,IAAIC,kBAAkB,EAAE;MACjC,KAAK,qCAAqC;QACxC,OAAO,IAAIC,mCAAmC,EAAE;MAClD,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sBAAsB;QACzB,OAAO,IAAIC,oBAAoB,EAAE;MACnC,KAAK,sCAAsC;QACzC,OAAO,IAAIC,oCAAoC,EAAE;MACnD,KAAK,sCAAsC;QACzC,OAAO,IAAIC,oCAAoC,EAAE;MACnD,KAAK,uBAAuB;QAC1B,OAAO,IAAIb,cAAc,EAAE;MAC7B;QACE,OAAO,IAAIA,cAAc,EAAE;IAAC;EAElC;EACA,OAAO,IAAIA,cAAc,EAAE;AAC7B,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { SpikeDataTypes } from './DataModels/SpikeDataTypes';
2
- import { createConnection, getBackgroundConnections, ensurePermissionsAreGranted, isPackageInstalled, SpikeConnectionConfig } from './Spike';
2
+ import { createConnection, getBackgroundConnections, ensurePermissionsAreGranted, isPackageInstalled, isHealthDataAvailable, SpikeConnectionConfig } from './Spike';
3
3
  import { SpikeConnection } from './SpikeConnection';
4
4
  import { SpikeException, SpikeConnectionIsClosedException, SpikeInvalidCredentialsException, SpikeInvalidDateRangeException, SpikeInvalidCallbackUrlException, SpikePackException, SpikePermissionsNotGrantedException, SpikeServerException, SpikeUnpackException, SpikeCallbackURLNotProvidedException } from './SpikeException';
5
5
  export default {
6
6
  createConnection,
7
7
  getBackgroundConnections,
8
8
  ensurePermissionsAreGranted,
9
- isPackageInstalled
9
+ isPackageInstalled,
10
+ isHealthDataAvailable
10
11
  };
11
12
  export { SpikeConnection, SpikeDataTypes, SpikeConnectionConfig, SpikeException, SpikeConnectionIsClosedException, SpikeInvalidCredentialsException, SpikeInvalidDateRangeException, SpikeInvalidCallbackUrlException, SpikePackException, SpikePermissionsNotGrantedException, SpikeServerException, SpikeUnpackException, SpikeCallbackURLNotProvidedException };
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SpikeDataTypes","createConnection","getBackgroundConnections","ensurePermissionsAreGranted","isPackageInstalled","SpikeConnectionConfig","SpikeConnection","SpikeException","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,cAAc,QAAQ,6BAA6B;AAE5D,SACEC,gBAAgB,EAChBC,wBAAwB,EACxBC,2BAA2B,EAC3BC,kBAAkB,EAClBC,qBAAqB,QAChB,SAAS;AAChB,SAASC,eAAe,QAAQ,mBAAmB;AAKnD,SACEC,cAAc,EACdC,gCAAgC,EAChCC,gCAAgC,EAChCC,8BAA8B,EAC9BC,gCAAgC,EAChCC,kBAAkB,EAClBC,mCAAmC,EACnCC,oBAAoB,EACpBC,oBAAoB,EACpBC,oCAAoC,QAC/B,kBAAkB;AAazB,eAAe;EACbf,gBAAgB;EAChBC,wBAAwB;EACxBC,2BAA2B;EAC3BC;AACF,CAAC;AACD,SACEE,eAAe,EACfN,cAAc,EAMdK,qBAAqB,EACrBE,cAAc,EACdC,gCAAgC,EAChCC,gCAAgC,EAChCC,8BAA8B,EAC9BC,gCAAgC,EAChCC,kBAAkB,EAClBC,mCAAmC,EACnCC,oBAAoB,EACpBC,oBAAoB,EACpBC,oCAAoC"}
1
+ {"version":3,"names":["SpikeDataTypes","createConnection","getBackgroundConnections","ensurePermissionsAreGranted","isPackageInstalled","isHealthDataAvailable","SpikeConnectionConfig","SpikeConnection","SpikeException","SpikeConnectionIsClosedException","SpikeInvalidCredentialsException","SpikeInvalidDateRangeException","SpikeInvalidCallbackUrlException","SpikePackException","SpikePermissionsNotGrantedException","SpikeServerException","SpikeUnpackException","SpikeCallbackURLNotProvidedException"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,cAAc,QAAQ,6BAA6B;AAE5D,SACEC,gBAAgB,EAChBC,wBAAwB,EACxBC,2BAA2B,EAC3BC,kBAAkB,EAClBC,qBAAqB,EACrBC,qBAAqB,QAChB,SAAS;AAChB,SAASC,eAAe,QAAQ,mBAAmB;AAKnD,SACEC,cAAc,EACdC,gCAAgC,EAChCC,gCAAgC,EAChCC,8BAA8B,EAC9BC,gCAAgC,EAChCC,kBAAkB,EAClBC,mCAAmC,EACnCC,oBAAoB,EACpBC,oBAAoB,EACpBC,oCAAoC,QAC/B,kBAAkB;AAazB,eAAe;EACbhB,gBAAgB;EAChBC,wBAAwB;EACxBC,2BAA2B;EAC3BC,kBAAkB;EAClBC;AACF,CAAC;AACD,SACEE,eAAe,EACfP,cAAc,EAMdM,qBAAqB,EACrBE,cAAc,EACdC,gCAAgC,EAChCC,gCAAgC,EAChCC,8BAA8B,EAC9BC,gCAAgC,EAChCC,kBAAkB,EAClBC,mCAAmC,EACnCC,oBAAoB,EACpBC,oBAAoB,EACpBC,oCAAoC"}
@@ -13,5 +13,6 @@ declare const createConnection: (config: SpikeConnectionConfig, logger?: SpikeLo
13
13
  declare const getBackgroundConnections: () => Promise<SpikeConnection[]>;
14
14
  declare const ensurePermissionsAreGranted: (permissions: SpikeDataType[]) => Promise<void>;
15
15
  declare const isPackageInstalled: () => Promise<boolean>;
16
- export { createConnection, getBackgroundConnections, ensurePermissionsAreGranted, isPackageInstalled, SpikeConnectionConfig, };
16
+ declare const isHealthDataAvailable: () => Promise<boolean>;
17
+ export { createConnection, getBackgroundConnections, ensurePermissionsAreGranted, isPackageInstalled, isHealthDataAvailable, SpikeConnectionConfig, };
17
18
  //# sourceMappingURL=Spike.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spike.d.ts","sourceRoot":"","sources":["../../src/Spike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,gBAAgB,WACZ,qBAAqB,WACpB,WAAW,KACnB,QAAQ,eAAe,CAqBzB,CAAC;AAEF,QAAA,MAAM,wBAAwB,QAAa,QAAQ,eAAe,EAAE,CAanE,CAAC;AAEF,QAAA,MAAM,2BAA2B,gBAClB,aAAa,EAAE,KAC3B,QAAQ,IAAI,CAWd,CAAC;AAEF,QAAA,MAAM,kBAAkB,QAAa,QAAQ,OAAO,CASnD,CAAC;AA4BF,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,GACtB,CAAC"}
1
+ {"version":3,"file":"Spike.d.ts","sourceRoot":"","sources":["../../src/Spike.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,gBAAgB,WACZ,qBAAqB,WACpB,WAAW,KACnB,QAAQ,eAAe,CAqBzB,CAAC;AAEF,QAAA,MAAM,wBAAwB,QAAa,QAAQ,eAAe,EAAE,CAanE,CAAC;AAEF,QAAA,MAAM,2BAA2B,gBAClB,aAAa,EAAE,KAC3B,QAAQ,IAAI,CAWd,CAAC;AAEF,QAAA,MAAM,kBAAkB,QAAa,QAAQ,OAAO,CASnD,CAAC;AAEF,QAAA,MAAM,qBAAqB,QAAa,QAAQ,OAAO,CAStD,CAAC;AA4BF,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,GACtB,CAAC"}
@@ -28,5 +28,8 @@ export declare class SpikeUnpackException extends SpikeException {
28
28
  export declare class SpikeCallbackURLNotProvidedException extends SpikeException {
29
29
  constructor();
30
30
  }
31
+ export declare class SpikeHealthDataNotAvailableException extends SpikeException {
32
+ constructor();
33
+ }
31
34
  export declare const unwrapSpikeException: (error: unknown) => SpikeException;
32
35
  //# sourceMappingURL=SpikeException.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpikeException.d.ts","sourceRoot":"","sources":["../../src/SpikeException.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,gCAAiC,SAAQ,cAAc;;CAInE;AACD,qBAAa,gCAAiC,SAAQ,cAAc;;CAInE;AACD,qBAAa,8BAA+B,SAAQ,cAAc;;CAIjE;AACD,qBAAa,gCAAiC,SAAQ,cAAc;;CAInE;AACD,qBAAa,kBAAmB,SAAQ,cAAc;;CAIrD;AACD,qBAAa,mCAAoC,SAAQ,cAAc;;CAItE;AACD,qBAAa,oBAAqB,SAAQ,cAAc;;CAIvD;AACD,qBAAa,oBAAqB,SAAQ,cAAc;;CAIvD;AACD,qBAAa,oCAAqC,SAAQ,cAAc;;CAIvE;AAED,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,cA4BrD,CAAC"}
1
+ {"version":3,"file":"SpikeException.d.ts","sourceRoot":"","sources":["../../src/SpikeException.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED,qBAAa,gCAAiC,SAAQ,cAAc;;CAInE;AACD,qBAAa,gCAAiC,SAAQ,cAAc;;CAInE;AACD,qBAAa,8BAA+B,SAAQ,cAAc;;CAIjE;AACD,qBAAa,gCAAiC,SAAQ,cAAc;;CAInE;AACD,qBAAa,kBAAmB,SAAQ,cAAc;;CAIrD;AACD,qBAAa,mCAAoC,SAAQ,cAAc;;CAItE;AACD,qBAAa,oBAAqB,SAAQ,cAAc;;CAIvD;AACD,qBAAa,oBAAqB,SAAQ,cAAc;;CAIvD;AACD,qBAAa,oCAAqC,SAAQ,cAAc;;CAIvE;AACD,qBAAa,oCAAqC,SAAQ,cAAc;;CAIvE;AAED,eAAO,MAAM,oBAAoB,UAAW,OAAO,KAAG,cA8BrD,CAAC"}
@@ -23,6 +23,7 @@ declare const _default: {
23
23
  getBackgroundConnections: () => Promise<SpikeConnection[]>;
24
24
  ensurePermissionsAreGranted: (permissions: SpikeDataType[]) => Promise<void>;
25
25
  isPackageInstalled: () => Promise<boolean>;
26
+ isHealthDataAvailable: () => Promise<boolean>;
26
27
  };
27
28
  export default _default;
28
29
  export { SpikeConnection, SpikeDataTypes, SpikeDataType, SpikeDataEntry, SpikeLogger, SpikeBackgroundDeliveriesLogger, SpikeEnvironment, SpikeConnectionConfig, SpikeException, SpikeConnectionIsClosedException, SpikeInvalidCredentialsException, SpikeInvalidDateRangeException, SpikeInvalidCallbackUrlException, SpikePackException, SpikePermissionsNotGrantedException, SpikeServerException, SpikeUnpackException, SpikeCallbackURLNotProvidedException, SpikeData, SpikeActivitiesSummaryDataEntry, SpikeActivitiesStreamDataEntry, SpikeBreathingDataEntry, SpikeCaloriesDataEntry, SpikeDistanceDataEntry, SpikeGlucoseDataEntry, SpikeHeartDataEntry, SpikeOxygenSaturationDataEntry, SpikeSleepDataEntry, SpikeStepsDataEntry, SpikeBodyDataEntry, };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAKL,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,kBAAkB,EAClB,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EACrC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AACpG,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;;;;;;;AAE1E,wBAKE;AACF,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,gCAAgC,EAChC,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,kBAAkB,EAClB,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAML,qBAAqB,EACtB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,gCAAgC,EAChC,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,kBAAkB,EAClB,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EACrC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AACpG,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;;;;;;;;AAE1E,wBAME;AACF,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,+BAA+B,EAC/B,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,gCAAgC,EAChC,gCAAgC,EAChC,8BAA8B,EAC9B,gCAAgC,EAChC,kBAAkB,EAClB,mCAAmC,EACnC,oBAAoB,EACpB,oBAAoB,EACpB,oCAAoC,EACpC,SAAS,EACT,+BAA+B,EAC/B,8BAA8B,EAC9B,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,GACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-spike-sdk",
3
- "version": "2.2.4",
3
+ "version": "2.2.6",
4
4
  "description": "Spike API for health and productivity data from wearables and IoT devices",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -76,9 +76,9 @@
76
76
  "react-native": "*"
77
77
  },
78
78
  "dependencies": {
79
- "@expo/config-types": "^49.0.0",
80
- "@expo/config-plugins": "~7.2.0",
81
- "@expo/fingerprint": "^0.3.0"
79
+ "@expo/config-types": "^50.0.0",
80
+ "@expo/config-plugins": "^7.8.4",
81
+ "@expo/fingerprint": "^0.6.0"
82
82
  },
83
83
  "engines": {
84
84
  "node": ">= 16.0.0"
@@ -5,7 +5,7 @@ folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1
5
5
 
6
6
  Pod::Spec.new do |s|
7
7
  s.name = "react-native-spike-sdk"
8
- s.version = "2.2.4"
8
+ s.version = "2.2.6"
9
9
  s.summary = "Spike API for health and productivity data from wearables and IoT devices"
10
10
 
11
11
  s.description = <<-DESC
@@ -25,7 +25,7 @@ Pod::Spec.new do |s|
25
25
  s.swift_version = "5"
26
26
 
27
27
  s.dependency "React-Core"
28
- s.dependency "SpikeSDK", "~> 2.1.10"
28
+ s.dependency "SpikeSDK", "~> 2.1.11"
29
29
 
30
30
  # Don't install the dependencies when we run `pod install` in the old architecture.
31
31
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
package/src/Spike.ts CHANGED
@@ -81,6 +81,17 @@ const isPackageInstalled = async (): Promise<boolean> => {
81
81
  }
82
82
  };
83
83
 
84
+ const isHealthDataAvailable = async (): Promise<boolean> => {
85
+ if (Platform.OS !== 'ios') return true;
86
+ if (!SpikeSdk) throw new SpikeException();
87
+
88
+ try {
89
+ return await SpikeSdk.isHealthDataAvailable();
90
+ } catch (error) {
91
+ throw unwrapSpikeException(error);
92
+ }
93
+ };
94
+
84
95
  function generateUUID() {
85
96
  const S4 = function () {
86
97
  let str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVXZ';
@@ -112,5 +123,6 @@ export {
112
123
  getBackgroundConnections,
113
124
  ensurePermissionsAreGranted,
114
125
  isPackageInstalled,
126
+ isHealthDataAvailable,
115
127
  SpikeConnectionConfig,
116
128
  };
@@ -49,6 +49,11 @@ export class SpikeCallbackURLNotProvidedException extends SpikeException {
49
49
  super('SpikeCallbackURLNotProvidedException');
50
50
  }
51
51
  }
52
+ export class SpikeHealthDataNotAvailableException extends SpikeException {
53
+ constructor() {
54
+ super('SpikeHealthDataNotAvailableException');
55
+ }
56
+ }
52
57
 
53
58
  export const unwrapSpikeException = (error: unknown): SpikeException => {
54
59
  if (error instanceof Error && 'code' in error) {
@@ -71,6 +76,8 @@ export const unwrapSpikeException = (error: unknown): SpikeException => {
71
76
  return new SpikeUnpackException();
72
77
  case 'SpikeCallbackURLNotProvidedException':
73
78
  return new SpikeCallbackURLNotProvidedException();
79
+ case 'SpikeHealthDataNotAvailableException':
80
+ return new SpikeHealthDataNotAvailableException();
74
81
  case 'SpikeWrapperException':
75
82
  return new SpikeException();
76
83
  default:
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ import {
5
5
  getBackgroundConnections,
6
6
  ensurePermissionsAreGranted,
7
7
  isPackageInstalled,
8
+ isHealthDataAvailable,
8
9
  SpikeConnectionConfig,
9
10
  } from './Spike';
10
11
  import { SpikeConnection } from './SpikeConnection';
@@ -41,6 +42,7 @@ export default {
41
42
  getBackgroundConnections,
42
43
  ensurePermissionsAreGranted,
43
44
  isPackageInstalled,
45
+ isHealthDataAvailable,
44
46
  };
45
47
  export {
46
48
  SpikeConnection,