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.
- package/CHANGELOG.md +6 -0
- package/CONTRIBUTING.md +5 -7
- package/README.md +1 -1
- package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +2 -2
- package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackError.kt +3 -2
- package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +63 -55
- package/android/src/main/java/com/reactnativehypertracksdk/common/Result.kt +11 -9
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkInitParams.kt +13 -15
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +3 -2
- package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +26 -19
- package/ios/HyperTrackReactNativePlugin.swift +1 -1
- package/ios/common/HyperTrackSDKWrapper.swift +5 -3
- package/ios/common/SDKInitParams.swift +2 -0
- package/ios/common/SDKMethod.swift +1 -1
- package/ios/common/Serialization.swift +3 -5
- package/lib/commonjs/HyperTrack/HyperTrack.js +2 -1
- package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/SdkInitParams.js.map +1 -1
- package/lib/module/HyperTrack/HyperTrack.js +2 -1
- package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/module/HyperTrack/data_types/SdkInitParams.js.map +1 -1
- package/lib/typescript/HyperTrack/data_types/SdkInitParams.d.ts +20 -0
- package/package.json +1 -1
- package/src/HyperTrack/HyperTrack.ts +1 -0
- package/src/HyperTrack/data_types/SdkInitParams.ts +23 -0
- /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.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
@@ -70,7 +70,7 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
|
|
|
70
70
|
promise: Promise
|
|
71
71
|
) {
|
|
72
72
|
HyperTrackSdkWrapper
|
|
73
|
-
.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
HyperTrack.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
|
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)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
80
|
-
|
|
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)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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)
|
|
117
|
-
|
|
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
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
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<
|
|
4
|
-
fun <
|
|
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<
|
|
12
|
+
Failure<MappedSuccess>(this.failure)
|
|
11
13
|
}
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
fun <
|
|
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<
|
|
23
|
+
Failure<MappedSuccess>(this.failure)
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
fun getOrThrow():
|
|
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 <
|
|
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<
|
|
48
|
-
internal data class Failure<
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: (
|
|
116
|
+
parseFunction: (Parser) -> T
|
|
110
117
|
): Result<T> {
|
|
111
|
-
val
|
|
118
|
+
val parser = Parser(source)
|
|
112
119
|
return try {
|
|
113
|
-
if (
|
|
114
|
-
Success(parseFunction.invoke(
|
|
120
|
+
if (parser.exceptions.isEmpty()) {
|
|
121
|
+
Success(parseFunction.invoke(parser))
|
|
115
122
|
} else {
|
|
116
|
-
Failure(ParsingExceptions(source,
|
|
123
|
+
Failure(ParsingExceptions(source, parser.exceptions))
|
|
117
124
|
}
|
|
118
125
|
} catch (e: Exception) {
|
|
119
126
|
Failure(
|
|
120
|
-
if (
|
|
121
|
-
ParsingExceptions(source,
|
|
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
|
|
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(
|
|
164
|
-
"
|
|
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
|
-
|
|
@@ -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(
|
|
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
|
-
|
|
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
|
}
|
|
@@ -98,10 +98,10 @@ func serializeErrors(_ errors: Set<HyperTrack.HyperTrackError>) -> Array<Diction
|
|
|
98
98
|
})
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
func
|
|
101
|
+
func serializeDeviceID(_ deviceID: String) -> Dictionary<String, Any> {
|
|
102
102
|
return [
|
|
103
103
|
keyType: "deviceID",
|
|
104
|
-
keyValue:
|
|
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":["
|
|
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":"AAAA,SAASA,aAAa,EAAEC,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;AAC1E,SAASC,eAAe,QAAQ,8BAA8B;AAY9D,MAAMC,cAAc,GAAG,mBAAmB;AAC1C,MAAMC,kBAAkB,GAAG,uBAAuB;AAClD,MAAMC,WAAW,GAAG,SAAS;AAE7B,MAAMC,aAAa,GAChB,sFAAqF,GACtFN,QAAQ,CAACO,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;AAE/C,MAAMC,aAAa,GAAGX,aAAa,CAACY,2BAA2B,GAC3DZ,aAAa,CAACY,2BAA2B,GACzC,IAAIC,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEH,MAAMS,YAAY,GAAG,IAAId,kBAAkB,CAACS,aAAa,CAAC;AAE1D,eAAe,MAAMM,UAAU,CAAC;EACtBC,WAAW,GAAG;IACpB,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,aAAaC,UAAU,CACrBC,cAAsB,EAED;IAAA,IADrBC,aAA4B,uEAAG,CAAC,CAAC;IAEjC,IAAI;MACF,MAAMV,aAAa,CAACW,aAAa,CAAC;QAChCF,cAAc;QACdG,cAAc,EAAEF,aAAa,CAACE,cAAc,IAAI,KAAK;QACrDC,kBAAkB,EAAEH,aAAa,CAACG,kBAAkB,IAAI,KAAK;QAC7DC,mCAAmC,EAAEJ,aAAa,CAACI,mCAAmC,IAAI;MAC5F,CAAC,CAAC;MACF,OAAO,IAAIR,UAAU,EAAE;IACzB,CAAC,CAAC,OAAOS,KAAU,EAAE;MACnB,MAAM,IAAIX,KAAK,CAACW,KAAK,CAACC,OAAO,CAAC;IAChC;EACF;;EAEA;AACF;AACA;EACEC,WAAW,GAAoB;IAC7B,OAAOjB,aAAa,CAACiB,WAAW,EAAE,CAACC,IAAI,CACpCC,QAAkB,IAAKA,QAAQ,CAACC,KAAK,CACvC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEC,WAAW,GAAqB;IAC9B,OAAOrB,aAAa,CAACqB,WAAW,EAAE,CAACH,IAAI,CACpCG,WAAwB,IAAKA,WAAW,CAACD,KAAK,CAChD;EACH;;EAEA;AACF;AACA;AACA;AACA;EACEE,eAAe,CAACD,WAAoB,EAAE;IACpCrB,aAAa,CAACsB,eAAe,CAAC;MAC5BC,IAAI,EAAE,aAAa;MACnBH,KAAK,EAAEC;IACT,CAAC,CAAgB;EACnB;;EAEA;AACF;AACA;AACA;AACA;EACEG,UAAU,GAAqB;IAC7B,OAAOxB,aAAa,CAACwB,UAAU,EAAE,CAACN,IAAI,CACnCM,UAAsB,IAAKA,UAAU,CAACJ,KAAK,CAC7C;EACH;;EAEA;AACF;AACA;EACEK,IAAI,GAAG;IACLzB,aAAa,CAACyB,IAAI,EAAE;EACtB;;EAEA;AACF;AACA;EACEC,aAAa,GAAG;IACd1B,aAAa,CAAC0B,aAAa,EAAE;EAC/B;;EAEA;AACF;AACA;EACEC,YAAY,GAAG;IACb3B,aAAa,CAAC2B,YAAY,EAAE;EAC9B;;EAEA;AACF;AACA;EACEC,WAAW,GAAsC;IAC/C,OAAO5B,aAAa,CAAC4B,WAAW,EAAE,CAACV,IAAI,CACpCW,gBAAkC,IAAK;MACtC,OAAO,IAAI,CAACC,2BAA2B,CAACD,gBAAgB,CAAC;IAC3D,CAAC,CACF;EACH;;EAEA;AACF;AACA;AACA;EACEE,OAAO,CAACC,IAAY,EAAE;IACpBhC,aAAa,CAAC+B,OAAO,CAAC;MACpBR,IAAI,EAAE,YAAY;MAClBH,KAAK,EAAEY;IACT,CAAC,CAAe;EAClB;;EAEA;AACF;AACA;AACA;EACEC,WAAW,CAACC,IAAY,EAAE;IACxBlC,aAAa,CAACiC,WAAW,CAACC,IAAI,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;EACEC,SAAS,CAACD,IAAY,EAAqC;IACzD,OAAOlC,aAAa,CAACmC,SAAS,CAAC;MAC7BD;IACF,CAAC,CAAW,CAAChB,IAAI,CACdW,gBAAkC,IAAK;MACtC,OAAO,IAAI,CAACC,2BAA2B,CAACD,gBAAgB,CAAC;IAC3D,CAAC,CACF;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEO,iBAAiB,CAACC,QAA6C,EAAE;IAC/D,OAAOhC,YAAY,CAACiC,WAAW,CAAC3C,WAAW,EAAG4C,SAAoC,IAAK;MACrFF,QAAQ,CAAC,IAAI,CAACG,2BAA2B,CAACD,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,mBAAmB,CAACJ,QAAuC,EAAE;IAC3D,OAAOhC,YAAY,CAACiC,WAAW,CAC7B7C,cAAc,EACb+B,UAAsB,IAAK;MAC1Ba,QAAQ,CAACb,UAAU,CAACJ,KAAK,CAAC;IAC5B,CAAC,CACF;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEsB,uBAAuB,CAACL,QAAwC,EAAE;IAChE,OAAOhC,YAAY,CAACiC,WAAW,CAC7B5C,kBAAkB,EACjB2B,WAAwB,IAAK;MAC5BgB,QAAQ,CAAChB,WAAW,CAACD,KAAK,CAAC;IAC7B,CAAC,CACF;EACH;;EAEA;EACQoB,2BAA2B,CAACG,MAAiC,EAAqB;IACxF,OAAOA,MAAM,CAACC,GAAG,CAAE7B,KAA8B,IAAKvB,eAAe,CAACuB,KAAK,CAACK,KAAK,CAAiC,CAAC;EACrH;;EAEA;EACQU,2BAA2B,CAACe,QAA0B,EAA4B;IACxF,QAAOA,QAAQ,CAACtB,IAAI;MAClB,KAAK,SAAS;QACZ,OAAOsB,QAAQ,CAACzB,KAAK;MACvB,KAAK,SAAS;QACZ,QAAOyB,QAAQ,CAACzB,KAAK,CAACG,IAAI;UACxB,KAAK,YAAY;UACjB,KAAK,UAAU;YACb,OAAOsB,QAAQ,CAACzB,KAAK;UACvB,KAAK,QAAQ;YACX,OAAO;cACLG,IAAI,EAAE,QAAQ;cACdH,KAAK,EAAE,IAAI,CAACoB,2BAA2B,CAACK,QAAQ,CAACzB,KAAK,CAACA,KAAK;YAC9D,CAAC;QAAA;IACJ;IACJ;EACH;AACF"}
|
|
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":["
|
|
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.
|
|
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
|
};
|
/package/{LICENSE.md → LICENSE}
RENAMED
|
File without changes
|