hypertrack-sdk-react-native 9.0.0 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/CONTRIBUTING.md +5 -7
  3. package/README.md +1 -1
  4. package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +2 -2
  5. package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackError.kt +3 -2
  6. package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +63 -55
  7. package/android/src/main/java/com/reactnativehypertracksdk/common/Result.kt +11 -9
  8. package/android/src/main/java/com/reactnativehypertracksdk/common/SdkInitParams.kt +13 -15
  9. package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +3 -2
  10. package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +26 -19
  11. package/ios/HyperTrackReactNativePlugin.swift +1 -1
  12. package/ios/common/HyperTrackSDKWrapper.swift +5 -3
  13. package/ios/common/SDKInitParams.swift +2 -0
  14. package/ios/common/SDKMethod.swift +1 -1
  15. package/ios/common/Serialization.swift +3 -5
  16. package/lib/commonjs/HyperTrack/HyperTrack.js +2 -1
  17. package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
  18. package/lib/commonjs/HyperTrack/data_types/SdkInitParams.js.map +1 -1
  19. package/lib/module/HyperTrack/HyperTrack.js +2 -1
  20. package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
  21. package/lib/module/HyperTrack/data_types/SdkInitParams.js.map +1 -1
  22. package/lib/typescript/HyperTrack/data_types/SdkInitParams.d.ts +20 -0
  23. package/package.json +1 -1
  24. package/src/HyperTrack/HyperTrack.ts +1 -0
  25. package/src/HyperTrack/data_types/SdkInitParams.ts +23 -0
  26. /package/{LICENSE.md → LICENSE} +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,11 @@
3
3
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
4
4
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
5
 
6
+ ## [9.1.0] - 2023-03-21
7
+
8
+ ### Added
9
+ - `automaticallyRequestPermissions` param to `initialize()`
10
+
6
11
  ## [9.0.0] - 2023-02-17
7
12
 
8
13
  ### Changed
@@ -23,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
23
28
  - `subscribeToAvailability()`
24
29
 
25
30
  ### Removed
31
+ - `automaticallyRequestPermissions` param from `initialize()`
26
32
  - `enableDebugLogging()` (use `initialize()` param `loggingEnabled` istead)
27
33
  - `setTripMarker()` (use `addGeotag` instead)
28
34
 
package/CONTRIBUTING.md CHANGED
@@ -18,14 +18,12 @@
18
18
 
19
19
  3. Update CHANGELOG.md
20
20
  4. Update badge in README.md
21
- 5. Commit
22
- 5. Create a version tag
23
- 6. Push branch and tags
24
- 7. Create a Github repo release
21
+ 5. Do the release dry run with `just release` and verify that the release is correct (checklist is in the command output)
22
+ 6. Commit and merge to master
23
+ 7. Create and push a new version tag
24
+ 8. Run `npm publish` to publish the package to npm
25
+ 9. Create a Github repo release
25
26
  - Release title should be the current version tag
26
- 8. `yarn release`
27
- - will generate docs
28
- 9. `yarn npm publish`
29
27
 
30
28
  ### How to change build config
31
29
 
package/README.md CHANGED
@@ -13,7 +13,7 @@ For information about how to get started with React Native HyperTrack SDK, pleas
13
13
 
14
14
  ## Installation
15
15
 
16
- [Install from NPM](https://www.npmjs.com/package/hypertrack-sdk-react-native)
16
+ `yarn add hypertrack-sdk-react-native`
17
17
 
18
18
  ## Sample code
19
19
 
@@ -70,7 +70,7 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
70
70
  promise: Promise
71
71
  ) {
72
72
  HyperTrackSdkWrapper
73
- .initialize(initParams.toHashMap())
73
+ .initializeSdk(initParams.toHashMap())
74
74
  .mapSuccess { sdk ->
75
75
  initListeners(sdk)
76
76
  }
@@ -122,7 +122,7 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
122
122
 
123
123
  @ReactMethod
124
124
  fun getDeviceId(promise: Promise) {
125
- HyperTrackSdkWrapper.getDeviceID().toPromise(promise)
125
+ HyperTrackSdkWrapper.getDeviceId().toPromise(promise)
126
126
  }
127
127
 
128
128
  @ReactMethod
@@ -1,8 +1,9 @@
1
1
  package com.reactnativehypertracksdk.common
2
2
 
3
3
  /**
4
- * Check HyperTrack SDK docs for HyperTrackError
5
- * Enum naming convention is ignored to make datatype sync across platforms easier
4
+ * Check HyperTrack SDK docs for HyperTrackError.
5
+ * Enum naming convention is ignored to make datatype sync across platforms easier.
6
+ * Using Swift naming convention.
6
7
  */
7
8
  @Suppress("EnumEntryName")
8
9
  internal enum class HyperTrackError {
@@ -2,19 +2,16 @@ package com.reactnativehypertracksdk.common
2
2
 
3
3
  import com.hypertrack.sdk.*
4
4
  import com.reactnativehypertracksdk.common.Serialization.deserializeAvailability
5
+ import com.reactnativehypertracksdk.common.Serialization.deserializeDeviceName
5
6
  import com.reactnativehypertracksdk.common.Serialization.deserializeGeotagData
6
- import com.reactnativehypertracksdk.common.Serialization.serializeFailure
7
+ import com.reactnativehypertracksdk.common.Serialization.serializeDeviceId
7
8
  import com.reactnativehypertracksdk.common.Serialization.serializeErrors
9
+ import com.reactnativehypertracksdk.common.Serialization.serializeFailure
8
10
  import com.reactnativehypertracksdk.common.Serialization.serializeIsAvailable
9
11
  import com.reactnativehypertracksdk.common.Serialization.serializeIsTracking
10
12
  import com.reactnativehypertracksdk.common.Serialization.serializeSuccess
11
- import com.reactnativehypertracksdk.common.Serialization.serializeDeviceId
12
- import com.reactnativehypertracksdk.common.Serialization.deserializeDeviceName
13
- import com.reactnativehypertracksdk.common.Serialization.parse
14
13
  import java.lang.IllegalStateException
15
14
  import java.lang.RuntimeException
16
- import android.util.Log
17
-
18
15
 
19
16
  /**
20
17
  * This class stores SDK instance, calls HyperTrack SDK methods and serializes responses.
@@ -28,29 +25,32 @@ internal object HyperTrackSdkWrapper {
28
25
  val sdkInstance: HyperTrack
29
26
  get() = _sdkInstance
30
27
 
31
- fun initialize(
28
+ // method is named to align with 'initializeSDK' in iOS
29
+ fun initializeSdk(
32
30
  args: Map<String, Any?>
33
31
  ): Result<HyperTrack> {
34
32
  return try {
35
- SdkInitParams.fromMap(args).flatMapSuccess { initParams ->
36
- _sdkInstance = HyperTrack.getInstance(initParams.publishableKey)
37
- if (initParams.loggingEnabled) {
38
- HyperTrack.enableDebugLogging()
39
- }
40
- if (initParams.allowMockLocations) {
41
- sdkInstance.allowMockLocations()
33
+ SdkInitParams
34
+ .fromMap(args)
35
+ .flatMapSuccess { initParams ->
36
+ _sdkInstance = HyperTrack.getInstance(initParams.publishableKey)
37
+ if (initParams.loggingEnabled) {
38
+ HyperTrack.enableDebugLogging()
39
+ }
40
+ if (initParams.allowMockLocations) {
41
+ sdkInstance.allowMockLocations()
42
+ }
43
+ this.sdkInstance.backgroundTrackingRequirement(
44
+ initParams.requireBackgroundTrackingPermission
45
+ )
46
+ Success(sdkInstance)
42
47
  }
43
- this.sdkInstance.backgroundTrackingRequirement(
44
- initParams.requireBackgroundTrackingPermission
45
- )
46
- Success(sdkInstance)
47
- }
48
48
  } catch (exception: Exception) {
49
49
  Failure(Exception("Hypertrack SDK initialization failed.", exception))
50
50
  }
51
51
  }
52
52
 
53
- fun getDeviceID(): Result<Map<String, Any?>> {
53
+ fun getDeviceId(): Result<Map<String, Any?>> {
54
54
  return Success(serializeDeviceId(sdkInstance.deviceID))
55
55
  }
56
56
 
@@ -70,26 +70,30 @@ internal object HyperTrackSdkWrapper {
70
70
  }
71
71
 
72
72
  fun addGeotag(args: Map<String, Any?>): Result<Map<String, Any?>> {
73
- return deserializeGeotagData(args).flatMapSuccess { geotag ->
74
- sdkInstance.addGeotag(geotag.data).let { result ->
75
- when (result) {
76
- is GeotagResult.SuccessWithDeviation -> {
77
- serializeSuccess(result.deviceLocation)
73
+ return deserializeGeotagData(args)
74
+ .flatMapSuccess { geotag ->
75
+ sdkInstance
76
+ .addGeotag(geotag.data)
77
+ .let { result ->
78
+ when (result) {
79
+ is GeotagResult.SuccessWithDeviation -> {
80
+ serializeSuccess(result.deviceLocation)
81
+ }
82
+ is GeotagResult.Success -> {
83
+ serializeSuccess(result.deviceLocation)
84
+ }
85
+ is GeotagResult.Error -> {
86
+ serializeFailure(getLocationError(result.reason))
87
+ }
88
+ else -> {
89
+ throw IllegalArgumentException()
90
+ }
91
+ }
78
92
  }
79
- is GeotagResult.Success -> {
80
- serializeSuccess(result.deviceLocation)
93
+ .let {
94
+ Success(it)
81
95
  }
82
- is GeotagResult.Error -> {
83
- serializeFailure(getLocationError(result.reason))
84
- }
85
- else -> {
86
- throw IllegalArgumentException()
87
- }
88
- }
89
- }.let {
90
- Success(it)
91
96
  }
92
- }
93
97
  }
94
98
 
95
99
  fun isTracking(): Result<Map<String, Any?>> {
@@ -103,19 +107,21 @@ internal object HyperTrackSdkWrapper {
103
107
  }
104
108
 
105
109
  fun setAvailability(args: Map<String, Any?>): Result<Unit> {
106
- return deserializeAvailability(args).mapSuccess { isAvailable ->
107
- if (isAvailable) {
108
- sdkInstance.availability = Availability.AVAILABLE
109
- } else {
110
- sdkInstance.availability = Availability.UNAVAILABLE
110
+ return deserializeAvailability(args)
111
+ .mapSuccess { isAvailable ->
112
+ if (isAvailable) {
113
+ sdkInstance.availability = Availability.AVAILABLE
114
+ } else {
115
+ sdkInstance.availability = Availability.UNAVAILABLE
116
+ }
111
117
  }
112
- }
113
118
  }
114
119
 
115
120
  fun setName(args: Map<String, Any?>): Result<Unit> {
116
- return deserializeDeviceName(args).mapSuccess { name ->
117
- sdkInstance.setDeviceName(name)
118
- }
121
+ return deserializeDeviceName(args)
122
+ .mapSuccess { name ->
123
+ sdkInstance.setDeviceName(name)
124
+ }
119
125
  }
120
126
 
121
127
  fun setMetadata(metadata: Map<String, Any?>): Result<Unit> {
@@ -126,13 +132,15 @@ internal object HyperTrackSdkWrapper {
126
132
  }
127
133
 
128
134
  fun getLocation(): Result<Map<String, Any?>> {
129
- return sdkInstance.latestLocation.let { result ->
130
- if (result.isSuccess) {
131
- serializeSuccess(result.value)
132
- } else {
133
- serializeFailure(getLocationError(result.error))
135
+ return sdkInstance.latestLocation
136
+ .let { result ->
137
+ if (result.isSuccess) {
138
+ serializeSuccess(result.value)
139
+ } else {
140
+ serializeFailure(getLocationError(result.error))
141
+ }
134
142
  }
135
- }.let { Success(it) }
143
+ .let { Success(it) }
136
144
  }
137
145
 
138
146
  fun getInitialErrors(): List<Map<String, String>> {
@@ -163,9 +171,10 @@ internal object HyperTrackSdkWrapper {
163
171
  else -> {
164
172
  throw RuntimeException("Unknown tracking error")
165
173
  }
166
- }.let { hyperTrackError ->
167
- (hyperTrackError?.let { setOf(it) } ?: setOf()) + getHyperTrackErrorsFromBlockers()
168
174
  }
175
+ .let { hyperTrackError ->
176
+ (hyperTrackError?.let { setOf(it) } ?: setOf()) + getHyperTrackErrorsFromBlockers()
177
+ }
169
178
  }
170
179
 
171
180
  private fun getLocationError(error: OutageReason): LocationError {
@@ -239,5 +248,4 @@ internal object HyperTrackSdkWrapper {
239
248
  }
240
249
  .toSet()
241
250
  }
242
-
243
251
  }
@@ -1,29 +1,31 @@
1
1
  package com.reactnativehypertracksdk.common
2
2
 
3
- internal sealed class Result<S> {
4
- fun <T> flatMapSuccess(onSuccess: (S) -> Result<T>): Result<T> {
3
+ internal sealed class Result<SuccessType> {
4
+ fun <MappedSuccess> flatMapSuccess(
5
+ onSuccess: (SuccessType) -> Result<MappedSuccess>
6
+ ): Result<MappedSuccess> {
5
7
  return when (this) {
6
8
  is Success -> {
7
9
  onSuccess.invoke(this.success)
8
10
  }
9
11
  is Failure -> {
10
- Failure<T>(this.failure)
12
+ Failure<MappedSuccess>(this.failure)
11
13
  }
12
14
  }
13
15
  }
14
16
 
15
- fun <T> mapSuccess(onSuccess: (S) -> T): Result<T> {
17
+ fun <MappedSuccess> mapSuccess(onSuccess: (SuccessType) -> MappedSuccess): Result<MappedSuccess> {
16
18
  return when (this) {
17
19
  is Success -> {
18
20
  Success(onSuccess.invoke(this.success))
19
21
  }
20
22
  is Failure -> {
21
- Failure<T>(this.failure)
23
+ Failure<MappedSuccess>(this.failure)
22
24
  }
23
25
  }
24
26
  }
25
27
 
26
- fun getOrThrow(): S {
28
+ fun getOrThrow(): SuccessType {
27
29
  return when (this) {
28
30
  is Success -> this.success
29
31
  is Failure -> throw Exception(
@@ -34,7 +36,7 @@ internal sealed class Result<S> {
34
36
  }
35
37
 
36
38
  companion object {
37
- fun <T> tryAsResult(block: () -> T): Result<T> {
39
+ fun <SuccessType> tryAsResult(block: () -> SuccessType): Result<SuccessType> {
38
40
  return try {
39
41
  Success(block.invoke())
40
42
  } catch (e: Exception) {
@@ -44,5 +46,5 @@ internal sealed class Result<S> {
44
46
  }
45
47
  }
46
48
 
47
- internal data class Success<S>(val success: S) : Result<S>()
48
- internal data class Failure<S>(val failure: Throwable) : Result<S>()
49
+ internal data class Success<SuccessType>(val success: SuccessType) : Result<SuccessType>()
50
+ internal data class Failure<SuccessType>(val failure: Throwable) : Result<SuccessType>()
@@ -1,7 +1,6 @@
1
1
  package com.reactnativehypertracksdk.common
2
2
 
3
3
  import com.reactnativehypertracksdk.common.Serialization.parse
4
- import android.util.Log
5
4
 
6
5
  /**
7
6
  * SDK config params
@@ -10,24 +9,26 @@ internal data class SdkInitParams(
10
9
  val publishableKey: String,
11
10
  val requireBackgroundTrackingPermission: Boolean,
12
11
  val loggingEnabled: Boolean,
13
- val allowMockLocations: Boolean,
12
+ val allowMockLocations: Boolean
14
13
  ) {
15
14
 
16
15
  companion object {
17
16
  fun fromMap(map: Map<String, Any?>): Result<SdkInitParams> {
18
- Log.v(javaClass.simpleName, "fromMap 1")
19
17
  return parse(map) {
20
- Log.v(javaClass.simpleName, "parse 1")
21
18
  SdkInitParams(
22
- publishableKey = it.get<String>(KEY_PUBLISHABLE_KEY).getOrThrow(),
23
- requireBackgroundTrackingPermission = it.get<Boolean>(
24
- KEY_REQUIRE_BACKGROUND_TRACKING_PERMISSION
25
- ).getOrThrow(),
26
- loggingEnabled = it.get<Boolean>(KEY_LOGGING_ENABLED).getOrThrow(),
27
- allowMockLocations = it.get<Boolean>(KEY_ALLOW_MOCK_LOCATIONS).getOrThrow()
19
+ publishableKey = it
20
+ .get<String>(KEY_PUBLISHABLE_KEY)
21
+ .getOrThrow(),
22
+ requireBackgroundTrackingPermission = it
23
+ .get<Boolean>(KEY_REQUIRE_BACKGROUND_TRACKING_PERMISSION)
24
+ .getOrThrow(),
25
+ loggingEnabled = it
26
+ .get<Boolean>(KEY_LOGGING_ENABLED)
27
+ .getOrThrow(),
28
+ allowMockLocations = it
29
+ .get<Boolean>(KEY_ALLOW_MOCK_LOCATIONS)
30
+ .getOrThrow()
28
31
  )
29
- }.also {
30
- Log.v(javaClass.simpleName, "fromMap $it")
31
32
  }
32
33
  }
33
34
 
@@ -40,7 +41,4 @@ internal data class SdkInitParams(
40
41
  private const val KEY_ALLOW_MOCK_LOCATIONS =
41
42
  "allowMockLocations"
42
43
  }
43
-
44
44
  }
45
-
46
-
@@ -2,11 +2,12 @@ package com.reactnativehypertracksdk.common
2
2
 
3
3
  /**
4
4
  * The list of available methods in the SDK API.
5
- * Enum naming convention is ignored to make datatype sync across platforms easier
5
+ * Enum naming convention is ignored to make datatype sync across platforms easier.
6
+ * Using Swift naming convention.
6
7
  */
7
8
  internal enum class SdkMethod {
8
9
  initialize,
9
- getDeviceId,
10
+ getDeviceID,
10
11
  getLocation,
11
12
  startTracking,
12
13
  stopTracking,
@@ -63,7 +63,8 @@ internal object Serialization {
63
63
  is Errors -> {
64
64
  mapOf(
65
65
  KEY_TYPE to TYPE_LOCATION_ERROR_ERRORS,
66
- KEY_VALUE to locationError.errors.map { serializeHypertrackError(it) }
66
+ KEY_VALUE to locationError.errors
67
+ .map { serializeHypertrackError(it) }
67
68
  )
68
69
  }
69
70
  }
@@ -86,39 +87,45 @@ internal object Serialization {
86
87
  fun deserializeDeviceName(name: Map<String, Any?>): Result<String> {
87
88
  return parse(name) {
88
89
  it.assertValue<String>(key = KEY_TYPE, value = TYPE_DEVICE_NAME)
89
- it.get<String>(KEY_VALUE).getOrThrow()
90
+ it
91
+ .get<String>(KEY_VALUE)
92
+ .getOrThrow()
90
93
  }
91
94
  }
92
95
 
93
96
  fun deserializeAvailability(isAvailable: Map<String, Any?>): Result<Boolean> {
94
97
  return parse(isAvailable) {
95
98
  it.assertValue<String>(key = KEY_TYPE, value = TYPE_AVAILABILITY)
96
- it.get<Boolean>(KEY_VALUE).getOrThrow()
99
+ it
100
+ .get<Boolean>(KEY_VALUE)
101
+ .getOrThrow()
97
102
  }
98
103
  }
99
104
 
100
105
  fun deserializeGeotagData(map: Map<String, Any?>): Result<Geotag> {
101
106
  return parse(map) {
102
- val data = it.get<Map<String, Any?>>(KEY_GEOTAG_DATA).getOrThrow()
107
+ val data = it
108
+ .get<Map<String, Any?>>(KEY_GEOTAG_DATA)
109
+ .getOrThrow()
103
110
  Geotag(data)
104
111
  }
105
112
  }
106
113
 
107
114
  fun <T> parse(
108
115
  source: Map<String, Any?>,
109
- parseFunction: (ParsingHandle) -> T
116
+ parseFunction: (Parser) -> T
110
117
  ): Result<T> {
111
- val handle = ParsingHandle(source);
118
+ val parser = Parser(source)
112
119
  return try {
113
- if (handle.exceptions.isEmpty()) {
114
- Success(parseFunction.invoke(handle))
120
+ if (parser.exceptions.isEmpty()) {
121
+ Success(parseFunction.invoke(parser))
115
122
  } else {
116
- Failure(ParsingExceptions(source, handle.exceptions))
123
+ Failure(ParsingExceptions(source, parser.exceptions))
117
124
  }
118
125
  } catch (e: Exception) {
119
126
  Failure(
120
- if (handle.exceptions.isNotEmpty()) {
121
- ParsingExceptions(source, handle.exceptions + e)
127
+ if (parser.exceptions.isNotEmpty()) {
128
+ ParsingExceptions(source, parser.exceptions + e)
122
129
  } else {
123
130
  e
124
131
  }
@@ -126,8 +133,8 @@ internal object Serialization {
126
133
  }
127
134
  }
128
135
 
129
- internal class ParsingHandle(
130
- private val source: Map<String, Any?>,
136
+ internal class Parser(
137
+ private val source: Map<String, Any?>
131
138
  ) {
132
139
  private val _exceptions = mutableListOf<Exception>()
133
140
  val exceptions: List<Exception> = _exceptions
@@ -160,9 +167,12 @@ internal object Serialization {
160
167
  internal data class ParsingExceptions(
161
168
  val source: Any,
162
169
  val exceptions: List<Exception>
163
- ) : Throwable(exceptions.joinToString("\n").let {
164
- "Invalid input:\n\n${source}\n\n${it}"
165
- })
170
+ ) : Throwable(
171
+ exceptions.joinToString("\n")
172
+ .let {
173
+ "Invalid input:\n\n${source}\n\n$it"
174
+ }
175
+ )
166
176
 
167
177
  internal class ParsingException(
168
178
  key: String,
@@ -190,7 +200,4 @@ internal object Serialization {
190
200
  private const val KEY_LONGITUDE = "longitude"
191
201
 
192
202
  const val KEY_GEOTAG_DATA = "data"
193
-
194
203
  }
195
-
196
-
@@ -63,7 +63,7 @@ class HyperTrackReactNativePlugin: RCTEventEmitter {
63
63
  ) {
64
64
  sendAsPromise(
65
65
  hypertrack_sdk_react_native.getDeviceID(),
66
- method: .getDeviceId,
66
+ method: .getDeviceID,
67
67
  resolve,
68
68
  reject
69
69
  )
@@ -12,6 +12,7 @@ enum FailureResult: Error {
12
12
 
13
13
  var sdkInstance: HyperTrack! // initialize method is guaranteed to be called (by non-native side) prior to any access to the SDK instance
14
14
 
15
+ // method is named 'initializeSDK' to avoid conflict with React Native plugin 'initialize' method
15
16
  func initializeSDK(
16
17
  _ params: Dictionary<String, Any>
17
18
  ) -> Result<SuccessResult, FailureResult> {
@@ -20,6 +21,7 @@ func initializeSDK(
20
21
  if let publishableKey = publishableKey {
21
22
  switch HyperTrack.makeSDK(
22
23
  publishableKey: publishableKey,
24
+ automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions,
23
25
  mockLocationsAllowed: sdkInitParams.allowMockLocations
24
26
  ) {
25
27
  case let .success(hyperTrack):
@@ -38,7 +40,7 @@ func initializeSDK(
38
40
  }
39
41
 
40
42
  func getDeviceID() -> Result<SuccessResult, FailureResult> {
41
- .success(.dict(serializeDeviceId(sdkInstance.deviceID)))
43
+ .success(.dict(serializeDeviceID(sdkInstance.deviceID)))
42
44
  }
43
45
 
44
46
  func getLocation() -> Result<SuccessResult, FailureResult> {
@@ -68,9 +70,8 @@ func setAvailability(
68
70
 
69
71
  func setName(_ args: Dictionary<String, Any>) -> Result<SuccessResult, FailureResult> {
70
72
  deserializeDeviceName(args).flatMap({ (name: String) in
71
- .success(asVoid(sdkInstance.setDeviceName(name)))
73
+ .success(asVoid(sdkInstance.setDeviceName(name)))
72
74
  })
73
-
74
75
  }
75
76
 
76
77
  func setMetadata(_ map: Dictionary<String, Any>) -> Result<SuccessResult, FailureResult> {
@@ -108,6 +109,7 @@ private func mapFatalError(fatalError: HyperTrack.FatalError) -> FailureResult {
108
109
  return .fatalError("missingLocationUpdatesBackgroundModeCapability")
109
110
  case .developmentError(.runningOnSimulatorUnsupported):
110
111
  return .fatalError("runningOnSimulatorUnsupported")
112
+ // typo is in the HyperTrack SDK itself, no need to fix (it will be deleted in the next major update)
111
113
  case .productionError(.locationServicesUnavalible):
112
114
  return .error("locationServicesUnavalible")
113
115
  case .productionError(.motionActivityServicesUnavalible):
@@ -2,10 +2,12 @@ public struct SDKInitParams {
2
2
  let publishableKey: String
3
3
  let loggingEnabled: Bool
4
4
  let allowMockLocations: Bool
5
+ let automaticallyRequestPermissions: Bool
5
6
 
6
7
  init?(_ map: Dictionary<String, Any>) {
7
8
  self.publishableKey = (map["publishableKey"] as! String)
8
9
  self.loggingEnabled = (map["loggingEnabled"] as! Bool)
9
10
  self.allowMockLocations = (map["allowMockLocations"] as! Bool)
11
+ self.automaticallyRequestPermissions = (map["automaticallyRequestPermissions"] as! Bool)
10
12
  }
11
13
  }
@@ -1,6 +1,6 @@
1
1
  enum SDKMethod: String {
2
2
  case initialize = "initialize"
3
- case getDeviceId = "getDeviceId"
3
+ case getDeviceID = "getDeviceID"
4
4
  case getLocation = "getLocation"
5
5
  case startTracking = "startTracking"
6
6
  case stopTracking = "stopTracking"
@@ -98,10 +98,10 @@ func serializeErrors(_ errors: Set<HyperTrack.HyperTrackError>) -> Array<Diction
98
98
  })
99
99
  }
100
100
 
101
- func serializeDeviceId(_ deviceId: String) -> Dictionary<String, Any> {
101
+ func serializeDeviceID(_ deviceID: String) -> Dictionary<String, Any> {
102
102
  return [
103
103
  keyType: "deviceID",
104
- keyValue: deviceId
104
+ keyValue: deviceID
105
105
  ]
106
106
  }
107
107
 
@@ -143,7 +143,6 @@ func serializeLocationResult(_ result: Result<HyperTrack.Location, HyperTrack.Lo
143
143
  locationError = serializeHyperTrackErrorAsLocationError(HyperTrackError.motionActivityPermissionsDenied)
144
144
  case .motionActivityServicesDisabled:
145
145
  locationError = serializeHyperTrackErrorAsLocationError(HyperTrackError.motionActivityServicesDisabled)
146
-
147
146
  case .gpsSignalLost:
148
147
  locationError = serializeHyperTrackErrorAsLocationError(HyperTrackError.gpsSignalLost)
149
148
  case .locationMocked:
@@ -157,7 +156,6 @@ func serializeLocationResult(_ result: Result<HyperTrack.Location, HyperTrack.Lo
157
156
  keyType: "notRunning"
158
157
  ]
159
158
  }
160
-
161
159
  return [
162
160
  keyType: typeFailure,
163
161
  keyValue: locationError
@@ -195,7 +193,7 @@ func serializeLocationResult(_ result: Result<HyperTrack.Location, HyperTrack.No
195
193
  keyValue: serializeErrors(errors)
196
194
  ]
197
195
  }
198
-
196
+
199
197
  return [
200
198
  keyType: typeFailure,
201
199
  keyValue: locationError
@@ -38,7 +38,8 @@ class HyperTrack {
38
38
  publishableKey,
39
39
  loggingEnabled: sdkInitParams.loggingEnabled ?? false,
40
40
  allowMockLocations: sdkInitParams.allowMockLocations ?? false,
41
- requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false
41
+ requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,
42
+ automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions ?? true
42
43
  });
43
44
  return new HyperTrack();
44
45
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["EVENT_TRACKING","EVENT_AVAILABILITY","EVENT_ERROR","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","constructor","initialize","publishableKey","sdkInitParams","initializeSdk","loggingEnabled","allowMockLocations","requireBackgroundTrackingPermission","error","message","getDeviceId","then","deviceId","value","isAvailable","setAvailability","type","isTracking","sync","startTracking","stopTracking","getLocation","locationResponse","deserializeLocationResponse","setName","name","setMetadata","data","addGeotag","subscribeToErrors","listener","addListener","rawErrors","deserializeHyperTrackErrors","subscribeToTracking","subscribeToAvailability","errors","map","HyperTrackError","response"],"sources":["HyperTrack.ts"],"sourcesContent":["import { NativeModules, Platform, NativeEventEmitter } from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { LocationResponse } from './data_types/internal/LocationResponse';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { SdkInitParams } from './data_types/SdkInitParams';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { Geotag } from './data_types/internal/Geotag';\nimport type { DeviceName } from './data_types/internal/DeviceName';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\n\nconst EVENT_TRACKING = 'onTrackingChanged';\nconst EVENT_AVAILABILITY = 'onAvailabilityChanged';\nconst EVENT_ERROR = 'onError';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private constructor() {\n return this;\n }\n\n /**\n * Creates an SDK instance\n * \n * @param publishableKey publishable key provided in HyperTrack’s dashboard setup page\n * @param sdkInitParams\n * @returns HyperTrack instance\n */\n static async initialize(\n publishableKey: string,\n sdkInitParams: SdkInitParams = {}\n ): Promise<HyperTrack> {\n try {\n await HyperTrackSdk.initializeSdk({\n publishableKey,\n loggingEnabled: sdkInitParams.loggingEnabled ?? false,\n allowMockLocations: sdkInitParams.allowMockLocations ?? false,\n requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,\n });\n return new HyperTrack();\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n */\n getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n isAvailable(): Promise<boolean> {\n return HyperTrackSdk.isAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n setAvailability(isAvailable: boolean) {\n HyperTrackSdk.setAvailability({\n type: 'isAvailable',\n value: isAvailable\n } as IsAvailable);\n }\n\n /**\n * Reflects the tracking intent for the device\n * \n * @return {boolean} Whether the user's movement data is getting tracked or not.\n */\n isTracking(): Promise<boolean> {\n return HyperTrackSdk.isTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Syncs the device state with the HyperTrack servers\n */\n sync() {\n HyperTrackSdk.sync();\n }\n\n /**\n * Expresses an intent to start location tracking for the device\n */\n startTracking() {\n HyperTrackSdk.startTracking();\n }\n\n /**\n * Stops location tracking immediately\n */\n stopTracking() {\n HyperTrackSdk.stopTracking();\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n getLocation(): Promise<LocationError | Location> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Sets the name for the device\n * @param {string} name\n */\n setName(name: string) {\n HyperTrackSdk.setName({\n type: 'deviceName',\n value: name\n } as DeviceName)\n }\n\n /**\n * Sets the metadata for the device\n * @param {Object} data - Metadata JSON\n */\n setMetadata(data: Object) {\n HyperTrackSdk.setMetadata(data);\n }\n\n /**\n * Adds a new geotag\n * @param {Object} data - Geotad data JSON\n * @returns current location if success or LocationError if failure\n */\n addGeotag(data: Object): Promise<LocationError | Location> {\n return HyperTrackSdk.addGeotag({\n data\n } as Geotag).then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToErrors(listener: (errors: HyperTrackError[]) => void) {\n return EventEmitter.addListener(EVENT_ERROR, (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors))\n });\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToTracking(listener: (isTracking: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToAvailability(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToAvailability(listener: (isAvailable: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_AVAILABILITY,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /** @ignore */\n private deserializeHyperTrackErrors(errors: HyperTrackErrorInternal[]): HyperTrackError[] {\n return errors.map((error: HyperTrackErrorInternal) => HyperTrackError[error.value as keyof typeof HyperTrackError])\n }\n\n /** @ignore */\n private deserializeLocationResponse(response: LocationResponse): Location | LocationError {\n switch(response.type) {\n case \"success\":\n return response.value\n case \"failure\":\n switch(response.value.type) {\n case \"notRunning\":\n case \"starting\":\n return response.value\n case \"errors\":\n return {\n type: \"errors\",\n value: this.deserializeHyperTrackErrors(response.value.value)\n }\n }\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["EVENT_TRACKING","EVENT_AVAILABILITY","EVENT_ERROR","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","constructor","initialize","publishableKey","sdkInitParams","initializeSdk","loggingEnabled","allowMockLocations","requireBackgroundTrackingPermission","automaticallyRequestPermissions","error","message","getDeviceId","then","deviceId","value","isAvailable","setAvailability","type","isTracking","sync","startTracking","stopTracking","getLocation","locationResponse","deserializeLocationResponse","setName","name","setMetadata","data","addGeotag","subscribeToErrors","listener","addListener","rawErrors","deserializeHyperTrackErrors","subscribeToTracking","subscribeToAvailability","errors","map","HyperTrackError","response"],"sources":["HyperTrack.ts"],"sourcesContent":["import { NativeModules, Platform, NativeEventEmitter } from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { LocationResponse } from './data_types/internal/LocationResponse';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { SdkInitParams } from './data_types/SdkInitParams';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { Geotag } from './data_types/internal/Geotag';\nimport type { DeviceName } from './data_types/internal/DeviceName';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\n\nconst EVENT_TRACKING = 'onTrackingChanged';\nconst EVENT_AVAILABILITY = 'onAvailabilityChanged';\nconst EVENT_ERROR = 'onError';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private constructor() {\n return this;\n }\n\n /**\n * Creates an SDK instance\n * \n * @param publishableKey publishable key provided in HyperTrack’s dashboard setup page\n * @param sdkInitParams\n * @returns HyperTrack instance\n */\n static async initialize(\n publishableKey: string,\n sdkInitParams: SdkInitParams = {}\n ): Promise<HyperTrack> {\n try {\n await HyperTrackSdk.initializeSdk({\n publishableKey,\n loggingEnabled: sdkInitParams.loggingEnabled ?? false,\n allowMockLocations: sdkInitParams.allowMockLocations ?? false,\n requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,\n automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions ?? true,\n });\n return new HyperTrack();\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n */\n getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n isAvailable(): Promise<boolean> {\n return HyperTrackSdk.isAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n setAvailability(isAvailable: boolean) {\n HyperTrackSdk.setAvailability({\n type: 'isAvailable',\n value: isAvailable\n } as IsAvailable);\n }\n\n /**\n * Reflects the tracking intent for the device\n * \n * @return {boolean} Whether the user's movement data is getting tracked or not.\n */\n isTracking(): Promise<boolean> {\n return HyperTrackSdk.isTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Syncs the device state with the HyperTrack servers\n */\n sync() {\n HyperTrackSdk.sync();\n }\n\n /**\n * Expresses an intent to start location tracking for the device\n */\n startTracking() {\n HyperTrackSdk.startTracking();\n }\n\n /**\n * Stops location tracking immediately\n */\n stopTracking() {\n HyperTrackSdk.stopTracking();\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n getLocation(): Promise<LocationError | Location> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Sets the name for the device\n * @param {string} name\n */\n setName(name: string) {\n HyperTrackSdk.setName({\n type: 'deviceName',\n value: name\n } as DeviceName)\n }\n\n /**\n * Sets the metadata for the device\n * @param {Object} data - Metadata JSON\n */\n setMetadata(data: Object) {\n HyperTrackSdk.setMetadata(data);\n }\n\n /**\n * Adds a new geotag\n * @param {Object} data - Geotad data JSON\n * @returns current location if success or LocationError if failure\n */\n addGeotag(data: Object): Promise<LocationError | Location> {\n return HyperTrackSdk.addGeotag({\n data\n } as Geotag).then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToErrors(listener: (errors: HyperTrackError[]) => void) {\n return EventEmitter.addListener(EVENT_ERROR, (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors))\n });\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToTracking(listener: (isTracking: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToAvailability(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToAvailability(listener: (isAvailable: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_AVAILABILITY,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /** @ignore */\n private deserializeHyperTrackErrors(errors: HyperTrackErrorInternal[]): HyperTrackError[] {\n return errors.map((error: HyperTrackErrorInternal) => HyperTrackError[error.value as keyof typeof HyperTrackError])\n }\n\n /** @ignore */\n private deserializeLocationResponse(response: LocationResponse): Location | LocationError {\n switch(response.type) {\n case \"success\":\n return response.value\n case \"failure\":\n switch(response.value.type) {\n case \"notRunning\":\n case \"starting\":\n return response.value\n case \"errors\":\n return {\n type: \"errors\",\n value: this.deserializeHyperTrackErrors(response.value.value)\n }\n }\n };\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["SdkInitParams.ts"],"sourcesContent":["export type SdkInitParams = {\n loggingEnabled?: boolean;\n allowMockLocations?: boolean;\n requireBackgroundTrackingPermission?: boolean;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["SdkInitParams.ts"],"sourcesContent":["/**\n * Parameters for initializing the SDK.\n */\nexport type SdkInitParams = {\n /**\n * Enable debug logging.\n * @default false\n */\n loggingEnabled?: boolean;\n\n /**\n * Allow mock locations to pass through and don’t send mock location outage.\n * @default false\n */\n allowMockLocations?: boolean;\n\n /**\n * Require Background location permissions while requiring permissions on Android.\n * @default false\n */\n requireBackgroundTrackingPermission?: boolean;\n\n /**\n * Automatically request permissions on starting tracking on iOS.\n * @default true\n */\n automaticallyRequestPermissions?: boolean;\n};\n"],"mappings":""}
@@ -32,7 +32,8 @@ export default class HyperTrack {
32
32
  publishableKey,
33
33
  loggingEnabled: sdkInitParams.loggingEnabled ?? false,
34
34
  allowMockLocations: sdkInitParams.allowMockLocations ?? false,
35
- requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false
35
+ requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,
36
+ automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions ?? true
36
37
  });
37
38
  return new HyperTrack();
38
39
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_TRACKING","EVENT_AVAILABILITY","EVENT_ERROR","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","constructor","initialize","publishableKey","sdkInitParams","initializeSdk","loggingEnabled","allowMockLocations","requireBackgroundTrackingPermission","error","message","getDeviceId","then","deviceId","value","isAvailable","setAvailability","type","isTracking","sync","startTracking","stopTracking","getLocation","locationResponse","deserializeLocationResponse","setName","name","setMetadata","data","addGeotag","subscribeToErrors","listener","addListener","rawErrors","deserializeHyperTrackErrors","subscribeToTracking","subscribeToAvailability","errors","map","response"],"sources":["HyperTrack.ts"],"sourcesContent":["import { NativeModules, Platform, NativeEventEmitter } from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { LocationResponse } from './data_types/internal/LocationResponse';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { SdkInitParams } from './data_types/SdkInitParams';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { Geotag } from './data_types/internal/Geotag';\nimport type { DeviceName } from './data_types/internal/DeviceName';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\n\nconst EVENT_TRACKING = 'onTrackingChanged';\nconst EVENT_AVAILABILITY = 'onAvailabilityChanged';\nconst EVENT_ERROR = 'onError';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private constructor() {\n return this;\n }\n\n /**\n * Creates an SDK instance\n * \n * @param publishableKey publishable key provided in HyperTrack’s dashboard setup page\n * @param sdkInitParams\n * @returns HyperTrack instance\n */\n static async initialize(\n publishableKey: string,\n sdkInitParams: SdkInitParams = {}\n ): Promise<HyperTrack> {\n try {\n await HyperTrackSdk.initializeSdk({\n publishableKey,\n loggingEnabled: sdkInitParams.loggingEnabled ?? false,\n allowMockLocations: sdkInitParams.allowMockLocations ?? false,\n requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,\n });\n return new HyperTrack();\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n */\n getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n isAvailable(): Promise<boolean> {\n return HyperTrackSdk.isAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n setAvailability(isAvailable: boolean) {\n HyperTrackSdk.setAvailability({\n type: 'isAvailable',\n value: isAvailable\n } as IsAvailable);\n }\n\n /**\n * Reflects the tracking intent for the device\n * \n * @return {boolean} Whether the user's movement data is getting tracked or not.\n */\n isTracking(): Promise<boolean> {\n return HyperTrackSdk.isTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Syncs the device state with the HyperTrack servers\n */\n sync() {\n HyperTrackSdk.sync();\n }\n\n /**\n * Expresses an intent to start location tracking for the device\n */\n startTracking() {\n HyperTrackSdk.startTracking();\n }\n\n /**\n * Stops location tracking immediately\n */\n stopTracking() {\n HyperTrackSdk.stopTracking();\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n getLocation(): Promise<LocationError | Location> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Sets the name for the device\n * @param {string} name\n */\n setName(name: string) {\n HyperTrackSdk.setName({\n type: 'deviceName',\n value: name\n } as DeviceName)\n }\n\n /**\n * Sets the metadata for the device\n * @param {Object} data - Metadata JSON\n */\n setMetadata(data: Object) {\n HyperTrackSdk.setMetadata(data);\n }\n\n /**\n * Adds a new geotag\n * @param {Object} data - Geotad data JSON\n * @returns current location if success or LocationError if failure\n */\n addGeotag(data: Object): Promise<LocationError | Location> {\n return HyperTrackSdk.addGeotag({\n data\n } as Geotag).then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToErrors(listener: (errors: HyperTrackError[]) => void) {\n return EventEmitter.addListener(EVENT_ERROR, (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors))\n });\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToTracking(listener: (isTracking: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToAvailability(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToAvailability(listener: (isAvailable: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_AVAILABILITY,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /** @ignore */\n private deserializeHyperTrackErrors(errors: HyperTrackErrorInternal[]): HyperTrackError[] {\n return errors.map((error: HyperTrackErrorInternal) => HyperTrackError[error.value as keyof typeof HyperTrackError])\n }\n\n /** @ignore */\n private deserializeLocationResponse(response: LocationResponse): Location | LocationError {\n switch(response.type) {\n case \"success\":\n return response.value\n case \"failure\":\n switch(response.value.type) {\n case \"notRunning\":\n case \"starting\":\n return response.value\n case \"errors\":\n return {\n type: \"errors\",\n value: this.deserializeHyperTrackErrors(response.value.value)\n }\n }\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_TRACKING","EVENT_AVAILABILITY","EVENT_ERROR","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","constructor","initialize","publishableKey","sdkInitParams","initializeSdk","loggingEnabled","allowMockLocations","requireBackgroundTrackingPermission","automaticallyRequestPermissions","error","message","getDeviceId","then","deviceId","value","isAvailable","setAvailability","type","isTracking","sync","startTracking","stopTracking","getLocation","locationResponse","deserializeLocationResponse","setName","name","setMetadata","data","addGeotag","subscribeToErrors","listener","addListener","rawErrors","deserializeHyperTrackErrors","subscribeToTracking","subscribeToAvailability","errors","map","response"],"sources":["HyperTrack.ts"],"sourcesContent":["import { NativeModules, Platform, NativeEventEmitter } from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { LocationResponse } from './data_types/internal/LocationResponse';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { SdkInitParams } from './data_types/SdkInitParams';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { Geotag } from './data_types/internal/Geotag';\nimport type { DeviceName } from './data_types/internal/DeviceName';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\n\nconst EVENT_TRACKING = 'onTrackingChanged';\nconst EVENT_AVAILABILITY = 'onAvailabilityChanged';\nconst EVENT_ERROR = 'onError';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private constructor() {\n return this;\n }\n\n /**\n * Creates an SDK instance\n * \n * @param publishableKey publishable key provided in HyperTrack’s dashboard setup page\n * @param sdkInitParams\n * @returns HyperTrack instance\n */\n static async initialize(\n publishableKey: string,\n sdkInitParams: SdkInitParams = {}\n ): Promise<HyperTrack> {\n try {\n await HyperTrackSdk.initializeSdk({\n publishableKey,\n loggingEnabled: sdkInitParams.loggingEnabled ?? false,\n allowMockLocations: sdkInitParams.allowMockLocations ?? false,\n requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,\n automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions ?? true,\n });\n return new HyperTrack();\n } catch (error: any) {\n throw new Error(error.message);\n }\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n */\n getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n isAvailable(): Promise<boolean> {\n return HyperTrackSdk.isAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n setAvailability(isAvailable: boolean) {\n HyperTrackSdk.setAvailability({\n type: 'isAvailable',\n value: isAvailable\n } as IsAvailable);\n }\n\n /**\n * Reflects the tracking intent for the device\n * \n * @return {boolean} Whether the user's movement data is getting tracked or not.\n */\n isTracking(): Promise<boolean> {\n return HyperTrackSdk.isTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Syncs the device state with the HyperTrack servers\n */\n sync() {\n HyperTrackSdk.sync();\n }\n\n /**\n * Expresses an intent to start location tracking for the device\n */\n startTracking() {\n HyperTrackSdk.startTracking();\n }\n\n /**\n * Stops location tracking immediately\n */\n stopTracking() {\n HyperTrackSdk.stopTracking();\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n getLocation(): Promise<LocationError | Location> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Sets the name for the device\n * @param {string} name\n */\n setName(name: string) {\n HyperTrackSdk.setName({\n type: 'deviceName',\n value: name\n } as DeviceName)\n }\n\n /**\n * Sets the metadata for the device\n * @param {Object} data - Metadata JSON\n */\n setMetadata(data: Object) {\n HyperTrackSdk.setMetadata(data);\n }\n\n /**\n * Adds a new geotag\n * @param {Object} data - Geotad data JSON\n * @returns current location if success or LocationError if failure\n */\n addGeotag(data: Object): Promise<LocationError | Location> {\n return HyperTrackSdk.addGeotag({\n data\n } as Geotag).then(\n (locationResponse: LocationResponse) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToErrors(listener: (errors: HyperTrackError[]) => void) {\n return EventEmitter.addListener(EVENT_ERROR, (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors))\n });\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToTracking(listener: (isTracking: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToAvailability(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToAvailability(listener: (isAvailable: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_AVAILABILITY,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /** @ignore */\n private deserializeHyperTrackErrors(errors: HyperTrackErrorInternal[]): HyperTrackError[] {\n return errors.map((error: HyperTrackErrorInternal) => HyperTrackError[error.value as keyof typeof HyperTrackError])\n }\n\n /** @ignore */\n private deserializeLocationResponse(response: LocationResponse): Location | LocationError {\n switch(response.type) {\n case \"success\":\n return response.value\n case \"failure\":\n switch(response.value.type) {\n case \"notRunning\":\n case \"starting\":\n return response.value\n case \"errors\":\n return {\n type: \"errors\",\n value: this.deserializeHyperTrackErrors(response.value.value)\n }\n }\n };\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["SdkInitParams.ts"],"sourcesContent":["export type SdkInitParams = {\n loggingEnabled?: boolean;\n allowMockLocations?: boolean;\n requireBackgroundTrackingPermission?: boolean;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["SdkInitParams.ts"],"sourcesContent":["/**\n * Parameters for initializing the SDK.\n */\nexport type SdkInitParams = {\n /**\n * Enable debug logging.\n * @default false\n */\n loggingEnabled?: boolean;\n\n /**\n * Allow mock locations to pass through and don’t send mock location outage.\n * @default false\n */\n allowMockLocations?: boolean;\n\n /**\n * Require Background location permissions while requiring permissions on Android.\n * @default false\n */\n requireBackgroundTrackingPermission?: boolean;\n\n /**\n * Automatically request permissions on starting tracking on iOS.\n * @default true\n */\n automaticallyRequestPermissions?: boolean;\n};\n"],"mappings":""}
@@ -1,5 +1,25 @@
1
+ /**
2
+ * Parameters for initializing the SDK.
3
+ */
1
4
  export type SdkInitParams = {
5
+ /**
6
+ * Enable debug logging.
7
+ * @default false
8
+ */
2
9
  loggingEnabled?: boolean;
10
+ /**
11
+ * Allow mock locations to pass through and don’t send mock location outage.
12
+ * @default false
13
+ */
3
14
  allowMockLocations?: boolean;
15
+ /**
16
+ * Require Background location permissions while requiring permissions on Android.
17
+ * @default false
18
+ */
4
19
  requireBackgroundTrackingPermission?: boolean;
20
+ /**
21
+ * Automatically request permissions on starting tracking on iOS.
22
+ * @default true
23
+ */
24
+ automaticallyRequestPermissions?: boolean;
5
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hypertrack-sdk-react-native",
3
- "version": "9.0.0",
3
+ "version": "9.1.0",
4
4
  "description": "React Native HyperTrack SDK is a wrapper around native iOS and Android SDKs that allows to integrate HyperTrack into React Native apps.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -56,6 +56,7 @@ export default class HyperTrack {
56
56
  loggingEnabled: sdkInitParams.loggingEnabled ?? false,
57
57
  allowMockLocations: sdkInitParams.allowMockLocations ?? false,
58
58
  requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,
59
+ automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions ?? true,
59
60
  });
60
61
  return new HyperTrack();
61
62
  } catch (error: any) {
@@ -1,5 +1,28 @@
1
+ /**
2
+ * Parameters for initializing the SDK.
3
+ */
1
4
  export type SdkInitParams = {
5
+ /**
6
+ * Enable debug logging.
7
+ * @default false
8
+ */
2
9
  loggingEnabled?: boolean;
10
+
11
+ /**
12
+ * Allow mock locations to pass through and don’t send mock location outage.
13
+ * @default false
14
+ */
3
15
  allowMockLocations?: boolean;
16
+
17
+ /**
18
+ * Require Background location permissions while requiring permissions on Android.
19
+ * @default false
20
+ */
4
21
  requireBackgroundTrackingPermission?: boolean;
22
+
23
+ /**
24
+ * Automatically request permissions on starting tracking on iOS.
25
+ * @default true
26
+ */
27
+ automaticallyRequestPermissions?: boolean;
5
28
  };
File without changes