hypertrack-sdk-react-native 13.3.0 → 13.3.1

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 (25) hide show
  1. package/android/gradle.properties +1 -1
  2. package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +16 -8
  3. package/android/src/main/java/com/reactnativehypertracksdk/ReactNativeSerialization.kt +2 -2
  4. package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +15 -16
  5. package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +106 -98
  6. package/android/src/main/java/com/reactnativehypertracksdk/common/WrapperResult.kt +3 -4
  7. package/hypertrack-sdk-react-native.podspec +1 -1
  8. package/ios/common/Serialization.swift +26 -1
  9. package/lib/commonjs/HyperTrack/HyperTrack.js +10 -4
  10. package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
  11. package/lib/commonjs/HyperTrack/data_types/internal/GeotagData.js.map +1 -1
  12. package/lib/commonjs/HyperTrack/data_types/internal/OrderHandle.js +2 -0
  13. package/lib/commonjs/HyperTrack/data_types/internal/OrderHandle.js.map +1 -0
  14. package/lib/module/HyperTrack/HyperTrack.js +10 -4
  15. package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
  16. package/lib/module/HyperTrack/data_types/internal/GeotagData.js.map +1 -1
  17. package/lib/module/HyperTrack/data_types/internal/OrderHandle.js +2 -0
  18. package/lib/module/HyperTrack/data_types/internal/OrderHandle.js.map +1 -0
  19. package/lib/typescript/HyperTrack/HyperTrack.d.ts +2 -2
  20. package/lib/typescript/HyperTrack/data_types/internal/GeotagData.d.ts +4 -0
  21. package/lib/typescript/HyperTrack/data_types/internal/OrderHandle.d.ts +4 -0
  22. package/package.json +1 -1
  23. package/src/HyperTrack/HyperTrack.ts +11 -4
  24. package/src/HyperTrack/data_types/internal/GeotagData.ts +4 -0
  25. package/src/HyperTrack/data_types/internal/OrderHandle.ts +4 -0
@@ -1,3 +1,3 @@
1
1
  HyperTrackSdk_kotlinVersion=1.6.21
2
- HyperTrackSdk_HyperTrackSDKVersion=7.5.2
2
+ HyperTrackSdk_HyperTrackSDKVersion=7.5.3
3
3
  android.useAndroidX=true
@@ -10,13 +10,11 @@ import com.reactnativehypertracksdk.common.Serialization.serializeErrors
10
10
  import com.reactnativehypertracksdk.common.Serialization.serializeIsAvailable
11
11
  import com.reactnativehypertracksdk.common.Serialization.serializeIsTracking
12
12
  import com.reactnativehypertracksdk.common.Serialization.serializeLocateResult
13
- import com.reactnativehypertracksdk.common.Serialization.serializeLocation
14
13
  import com.reactnativehypertracksdk.common.Serialization.serializeLocationResult
15
14
 
16
15
  @ReactModule(name = HyperTrackReactNativePlugin.NAME)
17
16
  class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
18
17
  ReactContextBaseJavaModule(reactContext) {
19
-
20
18
  private var locateSubscription: HyperTrack.Cancellable? = null
21
19
  private var subscriptions: List<HyperTrack.Cancellable>? = null
22
20
 
@@ -66,7 +64,10 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
66
64
  */
67
65
 
68
66
  @ReactMethod
69
- fun addGeotag(args: ReadableMap, promise: Promise) {
67
+ fun addGeotag(
68
+ args: ReadableMap,
69
+ promise: Promise,
70
+ ) {
70
71
  HyperTrackSdkWrapper.addGeotag(args.toHashMap()).toPromise(promise)
71
72
  }
72
73
 
@@ -113,9 +114,10 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
113
114
  @ReactMethod
114
115
  fun locate(promise: Promise) {
115
116
  locateSubscription?.cancel()
116
- locateSubscription = HyperTrack.locate {
117
- emitEvent(EVENT_LOCATE, serializeLocateResult(it).toWritableMap())
118
- }
117
+ locateSubscription =
118
+ HyperTrack.locate {
119
+ emitEvent(EVENT_LOCATE, serializeLocateResult(it).toWritableMap())
120
+ }
119
121
  Success(Unit).toPromise(promise)
120
122
  }
121
123
 
@@ -172,14 +174,20 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
172
174
  }
173
175
  }
174
176
 
175
- private fun emitEvent(event: String, data: WritableMap) {
177
+ private fun emitEvent(
178
+ event: String,
179
+ data: WritableMap,
180
+ ) {
176
181
  reactApplicationContext
177
182
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
178
183
  .emit(event, data)
179
184
  }
180
185
 
181
186
  @Suppress("SameParameterValue")
182
- private fun emitEvent(event: String, data: WritableArray) {
187
+ private fun emitEvent(
188
+ event: String,
189
+ data: WritableArray,
190
+ ) {
183
191
  reactApplicationContext
184
192
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
185
193
  .emit(event, data)
@@ -5,8 +5,8 @@ import com.facebook.react.bridge.Promise
5
5
  import com.facebook.react.bridge.WritableArray
6
6
  import com.facebook.react.bridge.WritableMap
7
7
  import com.reactnativehypertracksdk.common.Failure
8
- import com.reactnativehypertracksdk.common.WrapperResult
9
8
  import com.reactnativehypertracksdk.common.Success
9
+ import com.reactnativehypertracksdk.common.WrapperResult
10
10
 
11
11
  @Suppress("UNCHECKED_CAST")
12
12
  internal fun <T> WrapperResult<T>.toPromise(promise: Promise) {
@@ -98,7 +98,7 @@ internal fun Map<String, Any?>.toWritableMap(): WritableMap {
98
98
  is Double -> {
99
99
  putDouble(key, value)
100
100
  }
101
-
101
+
102
102
  is Float -> {
103
103
  putDouble(key, value.toDouble())
104
104
  }
@@ -28,20 +28,20 @@ typealias Serialized = Map<String, Any?>
28
28
  * It receives serialized params.
29
29
  */
30
30
  internal object HyperTrackSdkWrapper {
31
-
32
31
  fun addGeotag(args: Serialized): WrapperResult<Serialized> {
33
32
  return deserializeGeotagData(args)
34
33
  .flatMapSuccess { geotag ->
35
34
  // TODO: return proper error if JSON is wrong
36
35
  val geotagMetadata = Json.fromMap(geotag.data)!!
37
- val expectedLocation = geotag
38
- .expectedLocation
39
- ?.let {
40
- HyperTrack.Location(
41
- latitude = it.latitude,
42
- longitude = it.longitude
43
- )
44
- }
36
+ val expectedLocation =
37
+ geotag
38
+ .expectedLocation
39
+ ?.let {
40
+ HyperTrack.Location(
41
+ latitude = it.latitude,
42
+ longitude = it.longitude,
43
+ )
44
+ }
45
45
  val orderHandle = geotag.orderHandle
46
46
  val orderStatus = geotag.orderStatus
47
47
  if (expectedLocation != null) {
@@ -53,7 +53,7 @@ internal object HyperTrackSdkWrapper {
53
53
  orderHandle = orderHandle,
54
54
  orderStatus = orderStatus,
55
55
  expectedLocation = expectedLocation,
56
- metadata = geotagMetadata
56
+ metadata = geotagMetadata,
57
57
  )
58
58
  } else {
59
59
  HyperTrack.addGeotag(geotagMetadata, expectedLocation)
@@ -77,7 +77,7 @@ internal object HyperTrackSdkWrapper {
77
77
  HyperTrack.addGeotag(
78
78
  orderHandle = orderHandle,
79
79
  orderStatus = orderStatus,
80
- metadata = geotagMetadata
80
+ metadata = geotagMetadata,
81
81
  )
82
82
  } else {
83
83
  HyperTrack.addGeotag(geotagMetadata)
@@ -103,13 +103,13 @@ internal object HyperTrackSdkWrapper {
103
103
 
104
104
  fun getIsAvailable(): WrapperResult<Serialized> {
105
105
  return Success(
106
- serializeIsAvailable(HyperTrack.isAvailable)
106
+ serializeIsAvailable(HyperTrack.isAvailable),
107
107
  )
108
108
  }
109
109
 
110
110
  fun getIsTracking(): WrapperResult<Serialized> {
111
111
  return Success(
112
- serializeIsTracking(HyperTrack.isTracking)
112
+ serializeIsTracking(HyperTrack.isTracking),
113
113
  )
114
114
  }
115
115
 
@@ -127,13 +127,13 @@ internal object HyperTrackSdkWrapper {
127
127
 
128
128
  fun getMetadata(): WrapperResult<Serialized> {
129
129
  return Success(
130
- serializeMetadata(HyperTrack.metadata.toMap())
130
+ serializeMetadata(HyperTrack.metadata.toMap()),
131
131
  )
132
132
  }
133
133
 
134
134
  fun getName(): WrapperResult<Serialized> {
135
135
  return Success(
136
- serializeName(HyperTrack.name)
136
+ serializeName(HyperTrack.name),
137
137
  )
138
138
  }
139
139
 
@@ -174,5 +174,4 @@ internal object HyperTrackSdkWrapper {
174
174
  HyperTrack.name = name
175
175
  }
176
176
  }
177
-
178
177
  }
@@ -9,7 +9,6 @@ import com.hypertrack.sdk.android.Result
9
9
  * to Map<String, T> or List<T> where T is any JSON-compatible type
10
10
  */
11
11
  internal object Serialization {
12
-
13
12
  fun deserializeDynamicPublishableKey(args: Serialized): WrapperResult<String> {
14
13
  return parse(args) {
15
14
  it.assertValue<String>(key = KEY_TYPE, value = TYPE_DYNAMIC_PUBLISHABLE_KEY)
@@ -21,27 +20,33 @@ internal object Serialization {
21
20
 
22
21
  fun deserializeGeotagData(map: Map<String, Any?>): WrapperResult<GeotagData> {
23
22
  return parse(map) {
24
- val data = it
25
- .get<Map<String, Any?>>(KEY_GEOTAG_DATA)
26
- .getOrThrow()
27
- val expectedLocationData = it
28
- .getOptional<Map<String, Any?>>(KEY_GEOTAG_EXPECTED_LOCATION)
29
- .getOrThrow()
30
- val expectedLocation = expectedLocationData?.let {
31
- deserializeLocation(it).getOrThrow()
32
- }
33
- val orderHandle = it
34
- .getOptional<String>(KEY_GEOTAG_ORDER_HANDLE)
35
- .getOrThrow()
36
- val orderStatusData = it
37
- .getOptional<Map<String, Any?>>(KEY_GEOTAG_ORDER_STATUS)
38
- .getOrThrow()
23
+ val data =
24
+ it
25
+ .get<Map<String, Any?>>(KEY_GEOTAG_DATA)
26
+ .getOrThrow()
27
+ val expectedLocationData =
28
+ it
29
+ .getOptional<Map<String, Any?>>(KEY_GEOTAG_EXPECTED_LOCATION)
30
+ .getOrThrow()
31
+ val expectedLocation =
32
+ expectedLocationData?.let {
33
+ deserializeLocation(it).getOrThrow()
34
+ }
35
+ val orderHandleData =
36
+ it
37
+ .getOptional<Map<String, Any?>>(KEY_GEOTAG_ORDER_HANDLE)
38
+ .getOrThrow()
39
+ val orderHandle = orderHandleData?.let { deserializeOrderHandle(it).getOrThrow() }
40
+ val orderStatusData =
41
+ it
42
+ .getOptional<Map<String, Any?>>(KEY_GEOTAG_ORDER_STATUS)
43
+ .getOrThrow()
39
44
  val orderStatus = orderStatusData?.let { deserializeOrderStatus(it).getOrThrow() }
40
45
  GeotagData(
41
46
  data = data,
42
47
  expectedLocation = expectedLocation,
43
48
  orderHandle = orderHandle,
44
- orderStatus = orderStatus
49
+ orderStatus = orderStatus,
45
50
  )
46
51
  }
47
52
  }
@@ -85,33 +90,34 @@ internal object Serialization {
85
90
  fun serializeDeviceId(deviceId: String): Map<String, Any?> {
86
91
  return mapOf(
87
92
  KEY_TYPE to TYPE_DEVICE_ID,
88
- KEY_VALUE to deviceId
93
+ KEY_VALUE to deviceId,
89
94
  )
90
95
  }
91
96
 
92
97
  fun serializeDynamicPublishableKey(publishableKey: String): Serialized {
93
98
  return mapOf(
94
99
  KEY_TYPE to TYPE_DYNAMIC_PUBLISHABLE_KEY,
95
- KEY_VALUE to publishableKey
100
+ KEY_VALUE to publishableKey,
96
101
  )
97
102
  }
98
103
 
99
104
  fun serializeError(error: HyperTrack.Error): Map<String, String> {
100
105
  return mapOf(
101
106
  KEY_TYPE to TYPE_ERROR,
102
- KEY_VALUE to when (error) {
103
- HyperTrack.Error.BlockedFromRunning -> "blockedFromRunning"
104
- HyperTrack.Error.InvalidPublishableKey -> "invalidPublishableKey"
105
- HyperTrack.Error.Location.Mocked -> "location.mocked"
106
- HyperTrack.Error.Location.ServicesDisabled -> "location.servicesDisabled"
107
- HyperTrack.Error.Location.ServicesUnavailable -> "location.servicesUnavailable"
108
- HyperTrack.Error.Location.SignalLost -> "location.signalLost"
109
- HyperTrack.Error.NoExemptionFromBackgroundStartRestrictions -> "noExemptionFromBackgroundStartRestrictions"
110
- HyperTrack.Error.Permissions.Location.Denied -> "permissions.location.denied"
111
- HyperTrack.Error.Permissions.Location.InsufficientForBackground -> "permissions.location.insufficientForBackground"
112
- HyperTrack.Error.Permissions.Location.ReducedAccuracy -> "permissions.location.reducedAccuracy"
113
- HyperTrack.Error.Permissions.Notifications.Denied -> "permissions.notifications.denied"
114
- }
107
+ KEY_VALUE to
108
+ when (error) {
109
+ HyperTrack.Error.BlockedFromRunning -> "blockedFromRunning"
110
+ HyperTrack.Error.InvalidPublishableKey -> "invalidPublishableKey"
111
+ HyperTrack.Error.Location.Mocked -> "location.mocked"
112
+ HyperTrack.Error.Location.ServicesDisabled -> "location.servicesDisabled"
113
+ HyperTrack.Error.Location.ServicesUnavailable -> "location.servicesUnavailable"
114
+ HyperTrack.Error.Location.SignalLost -> "location.signalLost"
115
+ HyperTrack.Error.NoExemptionFromBackgroundStartRestrictions -> "noExemptionFromBackgroundStartRestrictions"
116
+ HyperTrack.Error.Permissions.Location.Denied -> "permissions.location.denied"
117
+ HyperTrack.Error.Permissions.Location.InsufficientForBackground -> "permissions.location.insufficientForBackground"
118
+ HyperTrack.Error.Permissions.Location.ReducedAccuracy -> "permissions.location.reducedAccuracy"
119
+ HyperTrack.Error.Permissions.Notifications.Denied -> "permissions.notifications.denied"
120
+ },
115
121
  )
116
122
  }
117
123
 
@@ -124,20 +130,18 @@ internal object Serialization {
124
130
  fun serializeIsAvailable(isAvailable: Boolean): Map<String, Any?> {
125
131
  return mapOf(
126
132
  KEY_TYPE to TYPE_IS_AVAILABLE,
127
- KEY_VALUE to isAvailable
133
+ KEY_VALUE to isAvailable,
128
134
  )
129
135
  }
130
136
 
131
137
  fun serializeIsTracking(isTracking: Boolean): Map<String, Any?> {
132
138
  return mapOf(
133
139
  KEY_TYPE to TYPE_IS_TRACKING,
134
- KEY_VALUE to isTracking
140
+ KEY_VALUE to isTracking,
135
141
  )
136
142
  }
137
143
 
138
- fun serializeLocateResult(
139
- locationResult: Result<HyperTrack.Location, Set<HyperTrack.Error>>
140
- ): Map<String, Any?> {
144
+ fun serializeLocateResult(locationResult: Result<HyperTrack.Location, Set<HyperTrack.Error>>): Map<String, Any?> {
141
145
  return when (locationResult) {
142
146
  is Result.Failure -> {
143
147
  serializeFailure(serializeErrors(locationResult.failure))
@@ -149,9 +153,7 @@ internal object Serialization {
149
153
  }
150
154
  }
151
155
 
152
- fun serializeLocationResult(
153
- locationResult: Result<HyperTrack.Location, HyperTrack.LocationError>
154
- ): Map<String, Any?> {
156
+ fun serializeLocationResult(locationResult: Result<HyperTrack.Location, HyperTrack.LocationError>): Map<String, Any?> {
155
157
  return when (locationResult) {
156
158
  is Result.Failure -> {
157
159
  serializeLocationErrorFailure(locationResult.failure)
@@ -171,54 +173,55 @@ internal object Serialization {
171
173
  return serializeSuccess(serializeLocation(location))
172
174
  }
173
175
 
174
- fun serializeLocationWithDeviationSuccess(
175
- locationWithDeviation: HyperTrack.LocationWithDeviation,
176
- ): Map<String, Any?> {
176
+ fun serializeLocationWithDeviationSuccess(locationWithDeviation: HyperTrack.LocationWithDeviation): Map<String, Any?> {
177
177
  return serializeSuccess(
178
178
  serializeLocationWithDeviation(
179
- locationWithDeviation
180
- )
179
+ locationWithDeviation,
180
+ ),
181
181
  )
182
182
  }
183
183
 
184
184
  fun serializeLocation(location: HyperTrack.Location): Map<String, Any?> {
185
185
  return mapOf(
186
186
  KEY_TYPE to TYPE_LOCATION,
187
- KEY_VALUE to mapOf(
188
- KEY_LATITUDE to location.latitude,
189
- KEY_LONGITUDE to location.longitude
190
- )
187
+ KEY_VALUE to
188
+ mapOf(
189
+ KEY_LATITUDE to location.latitude,
190
+ KEY_LONGITUDE to location.longitude,
191
+ ),
191
192
  )
192
193
  }
193
194
 
194
-
195
195
  fun serializeMetadata(metadata: Map<String, Any?>): Map<String, Any?> {
196
196
  return mapOf(
197
197
  KEY_TYPE to TYPE_METADATA,
198
- KEY_VALUE to metadata
198
+ KEY_VALUE to metadata,
199
199
  )
200
200
  }
201
201
 
202
202
  fun serializeName(name: String): Map<String, Any?> {
203
203
  return mapOf(
204
204
  KEY_TYPE to TYPE_NAME,
205
- KEY_VALUE to name
205
+ KEY_VALUE to name,
206
206
  )
207
207
  }
208
208
 
209
209
  private fun deserializeLocation(map: Map<String, Any?>): WrapperResult<Location> {
210
210
  return parse(map) {
211
211
  it.assertValue<String>(key = KEY_TYPE, value = TYPE_LOCATION)
212
- val value = it
213
- .get<Map<String, Any?>>(KEY_VALUE)
214
- .getOrThrow()
215
- parse(value) { parser ->
216
- val latitude = parser
217
- .get<Double>(KEY_LATITUDE)
218
- .getOrThrow()
219
- val longitude = parser
220
- .get<Double>(KEY_LONGITUDE)
212
+ val value =
213
+ it
214
+ .get<Map<String, Any?>>(KEY_VALUE)
221
215
  .getOrThrow()
216
+ parse(value) { parser ->
217
+ val latitude =
218
+ parser
219
+ .get<Double>(KEY_LATITUDE)
220
+ .getOrThrow()
221
+ val longitude =
222
+ parser
223
+ .get<Double>(KEY_LONGITUDE)
224
+ .getOrThrow()
222
225
  Location("api").also {
223
226
  it.latitude = latitude
224
227
  it.longitude = longitude
@@ -227,52 +230,59 @@ internal object Serialization {
227
230
  }
228
231
  }
229
232
 
230
- private fun deserializeOrderStatus(
231
- map: Map<String, Any?>
232
- ): WrapperResult<HyperTrack.OrderStatus> {
233
+ private fun deserializeOrderHandle(map: Map<String, Any?>): WrapperResult<String> {
234
+ return parse(map) {
235
+ it.assertValue<String>(key = KEY_TYPE, value = TYPE_ORDER_HANDLE)
236
+ it
237
+ .get<String>(KEY_VALUE)
238
+ .getOrThrow()
239
+ }
240
+ }
241
+
242
+ private fun deserializeOrderStatus(map: Map<String, Any?>): WrapperResult<HyperTrack.OrderStatus> {
233
243
  return parse(map) {
234
244
  when (it.get<String>(KEY_TYPE).getOrThrow()) {
235
245
  TYPE_GEOTAG_ORDER_STATUS_CLOCK_IN -> HyperTrack.OrderStatus.ClockIn
236
246
  TYPE_GEOTAG_ORDER_STATUS_CLOCK_OUT -> HyperTrack.OrderStatus.ClockOut
237
- TYPE_GEOTAG_ORDER_STATUS_CUSTOM -> HyperTrack.OrderStatus.Custom(
238
- it.get<String>(KEY_VALUE).getOrThrow()
239
- )
247
+ TYPE_GEOTAG_ORDER_STATUS_CUSTOM ->
248
+ HyperTrack.OrderStatus.Custom(
249
+ it.get<String>(KEY_VALUE).getOrThrow(),
250
+ )
240
251
 
241
252
  else -> throw Error("Unknown order status: $map")
242
253
  }
243
254
  }
244
255
  }
245
256
 
246
- private fun serializeLocationWithDeviation(
247
- locationWithDeviation: HyperTrack.LocationWithDeviation,
248
- ): Map<String, Any?> {
257
+ private fun serializeLocationWithDeviation(locationWithDeviation: HyperTrack.LocationWithDeviation): Map<String, Any?> {
249
258
  return mapOf(
250
259
  KEY_TYPE to TYPE_LOCATION_WITH_DEVIATION,
251
- KEY_VALUE to mapOf(
252
- KEY_LOCATION to serializeLocation(locationWithDeviation.location),
253
- KEY_DEVIATION to locationWithDeviation.deviation
254
- )
260
+ KEY_VALUE to
261
+ mapOf(
262
+ KEY_LOCATION to serializeLocation(locationWithDeviation.location),
263
+ KEY_DEVIATION to locationWithDeviation.deviation,
264
+ ),
255
265
  )
256
266
  }
257
267
 
258
268
  private fun serializeFailure(failure: List<Map<String, Any?>>): Map<String, Any?> {
259
269
  return mapOf(
260
270
  KEY_TYPE to TYPE_RESULT_FAILURE,
261
- KEY_VALUE to failure
271
+ KEY_VALUE to failure,
262
272
  )
263
273
  }
264
274
 
265
275
  private fun serializeFailure(failure: Map<String, Any?>): Map<String, Any?> {
266
276
  return mapOf(
267
277
  KEY_TYPE to TYPE_RESULT_FAILURE,
268
- KEY_VALUE to failure
278
+ KEY_VALUE to failure,
269
279
  )
270
280
  }
271
281
 
272
282
  private fun serializeSuccess(success: Map<String, Any?>): Map<String, Any?> {
273
283
  return mapOf(
274
284
  KEY_TYPE to TYPE_RESULT_SUCCESS,
275
- KEY_VALUE to success
285
+ KEY_VALUE to success,
276
286
  )
277
287
  }
278
288
 
@@ -289,8 +299,9 @@ internal object Serialization {
289
299
  is HyperTrack.LocationError.Errors -> {
290
300
  mapOf(
291
301
  KEY_TYPE to TYPE_LOCATION_ERROR_ERRORS,
292
- KEY_VALUE to locationError.errors
293
- .map { serializeError(it) }
302
+ KEY_VALUE to
303
+ locationError.errors
304
+ .map { serializeError(it) },
294
305
  )
295
306
  }
296
307
  }
@@ -298,7 +309,7 @@ internal object Serialization {
298
309
 
299
310
  fun <T> parse(
300
311
  source: Map<String, Any?>,
301
- parseFunction: (Parser) -> T
312
+ parseFunction: (Parser) -> T,
302
313
  ): WrapperResult<T> {
303
314
  val parser = Parser(source)
304
315
  return try {
@@ -313,20 +324,18 @@ internal object Serialization {
313
324
  ParsingExceptions(source, parser.exceptions + e)
314
325
  } else {
315
326
  e
316
- }
327
+ },
317
328
  )
318
329
  }
319
330
  }
320
331
 
321
332
  internal class Parser(
322
- private val source: Map<String, Any?>
333
+ private val source: Map<String, Any?>,
323
334
  ) {
324
335
  private val _exceptions = mutableListOf<Exception>()
325
336
  val exceptions: List<Exception> = _exceptions
326
337
 
327
- inline fun <reified T> get(
328
- key: String
329
- ): WrapperResult<T> {
338
+ inline fun <reified T> get(key: String): WrapperResult<T> {
330
339
  return try {
331
340
  Success(source[key]!! as T)
332
341
  } catch (e: Exception) {
@@ -334,14 +343,12 @@ internal object Serialization {
334
343
  ParsingException(key, e)
335
344
  .also {
336
345
  _exceptions.add(it)
337
- }
346
+ },
338
347
  )
339
348
  }
340
349
  }
341
350
 
342
- inline fun <reified T> getOptional(
343
- key: String
344
- ): WrapperResult<T?> {
351
+ inline fun <reified T> getOptional(key: String): WrapperResult<T?> {
345
352
  return try {
346
353
  Success(source[key] as T?)
347
354
  } catch (e: Exception) {
@@ -349,14 +356,14 @@ internal object Serialization {
349
356
  ParsingException(key, e)
350
357
  .also {
351
358
  _exceptions.add(it)
352
- }
359
+ },
353
360
  )
354
361
  }
355
362
  }
356
363
 
357
364
  inline fun <reified T> assertValue(
358
365
  key: String,
359
- value: Any
366
+ value: Any,
360
367
  ) {
361
368
  if (source[key] != value) {
362
369
  _exceptions.add(Exception("Assertion failed: $key != $value"))
@@ -366,17 +373,17 @@ internal object Serialization {
366
373
 
367
374
  internal data class ParsingExceptions(
368
375
  val source: Any,
369
- val exceptions: List<Exception>
376
+ val exceptions: List<Exception>,
370
377
  ) : Throwable(
371
- exceptions.joinToString("\n")
372
- .let {
373
- "Invalid input:\n\n${source}\n\n$it"
374
- }
375
- )
378
+ exceptions.joinToString("\n")
379
+ .let {
380
+ "Invalid input:\n\n${source}\n\n$it"
381
+ },
382
+ )
376
383
 
377
384
  internal class ParsingException(
378
385
  key: String,
379
- exception: Exception
386
+ exception: Exception,
380
387
  ) : Exception("Invalid value for '$key': $exception", exception)
381
388
 
382
389
  private const val KEY_TYPE = "type"
@@ -399,6 +406,7 @@ internal object Serialization {
399
406
  private const val TYPE_LOCATION_ERROR_NOT_RUNNING = "notRunning"
400
407
  private const val TYPE_LOCATION_ERROR_STARTING = "starting"
401
408
 
409
+ private const val TYPE_ORDER_HANDLE = "orderHandle"
402
410
  private const val TYPE_GEOTAG_ORDER_STATUS_CLOCK_IN = "orderStatusClockIn"
403
411
  private const val TYPE_GEOTAG_ORDER_STATUS_CLOCK_OUT = "orderStatusClockOut"
404
412
  private const val TYPE_GEOTAG_ORDER_STATUS_CUSTOM = "orderStatusCustom"
@@ -1,9 +1,7 @@
1
1
  package com.reactnativehypertracksdk.common
2
2
 
3
3
  internal sealed class WrapperResult<SuccessType> {
4
- fun <MappedSuccess> flatMapSuccess(
5
- onSuccess: (SuccessType) -> WrapperResult<MappedSuccess>
6
- ): WrapperResult<MappedSuccess> {
4
+ fun <MappedSuccess> flatMapSuccess(onSuccess: (SuccessType) -> WrapperResult<MappedSuccess>): WrapperResult<MappedSuccess> {
7
5
  return when (this) {
8
6
  is Success -> {
9
7
  onSuccess.invoke(this.success)
@@ -32,7 +30,7 @@ internal sealed class WrapperResult<SuccessType> {
32
30
  is Success -> this.success
33
31
  is Failure -> throw Exception(
34
32
  "Result unwrapping failed: ${this.failure}",
35
- this.failure
33
+ this.failure,
36
34
  )
37
35
  }
38
36
  }
@@ -49,4 +47,5 @@ internal sealed class WrapperResult<SuccessType> {
49
47
  }
50
48
 
51
49
  internal data class Success<SuccessType>(val success: SuccessType) : WrapperResult<SuccessType>()
50
+
52
51
  internal data class Failure<SuccessType>(val failure: Throwable) : WrapperResult<SuccessType>()
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
18
18
  s.source_files = "ios/**/*.{h,m,mm,swift}"
19
19
 
20
20
  s.dependency "React-Core"
21
- s.dependency 'HyperTrack', '5.5.1'
21
+ s.dependency 'HyperTrack', '5.5.2'
22
22
 
23
23
  # Don't install the dependencies when we run `pod install` in the old architecture.
24
24
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
@@ -32,7 +32,21 @@ func deserializeGeotagData(
32
32
  guard let data = args[keyGeotagData] as? [String: Any] else {
33
33
  return .failure(.fatalError(getParseError(args, key: keyGeotagData)))
34
34
  }
35
- let orderHandle = args["orderHandle"] as? String
35
+ let orderHandleData = args["orderHandle"] as? [String: Any]
36
+ let orderHandleResult: Result<String, FailureResult>? = if let orderHandleData = orderHandleData {
37
+ deserializeOrderHandle(orderHandleData)
38
+ } else {
39
+ nil
40
+ }
41
+ if case let .failure(failure) = orderHandleResult {
42
+ return .failure(failure)
43
+ }
44
+ let orderHandle: String? = if case let .success(orderHandle) = orderHandleResult {
45
+ orderHandle
46
+ } else {
47
+ nil
48
+ }
49
+
36
50
  let orderStatusData = args["orderStatus"] as? [String: Any]
37
51
  let orderStatusResult: Result<HyperTrack.OrderStatus, FailureResult>? = if let orderStatusData = orderStatusData {
38
52
  deserializeOrderStatus(orderStatusData)
@@ -47,6 +61,7 @@ func deserializeGeotagData(
47
61
  } else {
48
62
  nil
49
63
  }
64
+
50
65
  if let expectedLocationData = args[keyExpectedLocation] as? [String: Any] {
51
66
  let expectedLocation = deserializeLocation(expectedLocationData)
52
67
  switch expectedLocation {
@@ -126,6 +141,16 @@ func deserializeName(_ data: [String: Any]) -> Result<String, FailureResult> {
126
141
  return .success(value)
127
142
  }
128
143
 
144
+ func deserializeOrderHandle(_ data: [String: Any]) -> Result<String, FailureResult> {
145
+ if data[keyType] as? String != "orderHandle" {
146
+ return .failure(.fatalError(getParseError(data, key: keyType)))
147
+ }
148
+ guard let value = data[keyValue] as? String else {
149
+ return .failure(.fatalError(getParseError(data, key: keyValue)))
150
+ }
151
+ return .success(value)
152
+ }
153
+
129
154
  func deserializeOrderStatus(_ data: [String: Any]) -> Result<HyperTrack.OrderStatus, FailureResult> {
130
155
  guard let type = data[keyType] as? String else {
131
156
  return .failure(.fatalError(getParseError(data, key: keyType)))
@@ -26,7 +26,7 @@ const HyperTrackSdk = _reactNative.NativeModules.HyperTrackReactNativePlugin ? _
26
26
  const EventEmitter = new _reactNative.NativeEventEmitter(HyperTrackSdk);
27
27
  class HyperTrack {
28
28
  /**
29
- * Adds a new geotag
29
+ * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
30
30
  *
31
31
  * @param {string} orderHandle - Order handle
32
32
  * @param {OrderStatus} orderStatus - Order status
@@ -35,7 +35,7 @@ class HyperTrack {
35
35
  */
36
36
 
37
37
  /**
38
- * Adds a new geotag with expected location
38
+ * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
39
39
  *
40
40
  * @param {string} orderHandle - Order handle
41
41
  * @param {OrderStatus} orderStatus - Order status
@@ -65,7 +65,10 @@ class HyperTrack {
65
65
  if (args.length === 3 && typeof args[0] === 'string' && HyperTrack.isOrderStatus(args[1]) && typeof args[2] === 'object') {
66
66
  // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)
67
67
  return HyperTrackSdk.addGeotag({
68
- orderHandle: args[0],
68
+ orderHandle: {
69
+ type: 'orderHandle',
70
+ value: args[0]
71
+ },
69
72
  orderStatus: args[1],
70
73
  data: args[2],
71
74
  expectedLocation: undefined
@@ -76,7 +79,10 @@ class HyperTrack {
76
79
  if (args.length === 4 && typeof args[0] === 'string' && HyperTrack.isOrderStatus(args[1]) && typeof args[2] === 'object' && HyperTrack.isLocation(args[3])) {
77
80
  // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)
78
81
  return HyperTrackSdk.addGeotag({
79
- orderHandle: args[0],
82
+ orderHandle: {
83
+ type: 'orderHandle',
84
+ value: args[0]
85
+ },
80
86
  orderStatus: args[1],
81
87
  data: args[2],
82
88
  expectedLocation: {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_HyperTrackError","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","addGeotag","args","length","isOrderStatus","orderHandle","orderStatus","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","type","latitude","longitude","deserializeLocationWithDeviationResponse","JSON","stringify","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","keys","HyperTrackError","find","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","startsWith","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} 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 { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\nimport type { OrderStatus } from './data_types/OrderStatus';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\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 static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * Adds a new geotag with expected location\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag\n *\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n static async addGeotag(\n ...args: any[]\n ): Promise<Result<Location | LocationWithDeviation, LocationError>> {\n if (\n args.length === 3 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object'\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)\n return HyperTrackSdk.addGeotag({\n orderHandle: args[0],\n orderStatus: args[1],\n data: args[2],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 4 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object' &&\n HyperTrack.isLocation(args[3])\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n orderHandle: args[0],\n orderStatus: args[1],\n data: args[2],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[3].latitude,\n longitude: args[3].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n if (args.length === 1 && typeof args[0] === 'object') {\n // addGeotag(data: Object)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n // addGeotag(data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[1].latitude,\n longitude: args[1].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n *\n * @returns {string} Device ID\n */\n static async getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n static async getDynamicPublishableKey(): Promise<string> {\n return HyperTrackSdk.getDynamicPublishableKey().then(\n (dynamicPublishableKey: DynamicPublishableKey) =>\n this.deserializeDynamicPublishableKey(dynamicPublishableKey)\n );\n }\n\n /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\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 static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\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 static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\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 static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\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.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\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.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type !== 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type !== 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type !== 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude === 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude === 'number'\n );\n }\n\n /** @ignore */\n private static isOrderStatus(obj: OrderStatus): obj is OrderStatus {\n return 'type' in obj && obj.type.startsWith('orderStatus');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_HyperTrackError","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","addGeotag","args","length","isOrderStatus","orderHandle","type","orderStatus","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","latitude","longitude","deserializeLocationWithDeviationResponse","JSON","stringify","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","keys","HyperTrackError","find","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","startsWith","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} 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 { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\nimport type { OrderStatus } from './data_types/OrderStatus';\nimport type { OrderHandle } from './data_types/internal/OrderHandle';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\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 static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag\n *\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n static async addGeotag(\n ...args: any[]\n ): Promise<Result<Location | LocationWithDeviation, LocationError>> {\n if (\n args.length === 3 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object'\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 4 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object' &&\n HyperTrack.isLocation(args[3])\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[3].latitude,\n longitude: args[3].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n if (args.length === 1 && typeof args[0] === 'object') {\n // addGeotag(data: Object)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n // addGeotag(data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[1].latitude,\n longitude: args[1].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n *\n * @returns {string} Device ID\n */\n static async getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n static async getDynamicPublishableKey(): Promise<string> {\n return HyperTrackSdk.getDynamicPublishableKey().then(\n (dynamicPublishableKey: DynamicPublishableKey) =>\n this.deserializeDynamicPublishableKey(dynamicPublishableKey)\n );\n }\n\n /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\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 static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\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 static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\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 static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\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.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\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.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type !== 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type !== 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type !== 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude === 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude === 'number'\n );\n }\n\n /** @ignore */\n private static isOrderStatus(obj: OrderStatus): obj is OrderStatus {\n return 'type' in obj && obj.type.startsWith('orderStatus');\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["GeotagData.ts"],"sourcesContent":["import type { LocationInternal } from './LocationInternal';\n\nexport type GeotagData = {\n data: Object;\n expectedLocation?: LocationInternal;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["GeotagData.ts"],"sourcesContent":["import type { OrderStatus } from '../OrderStatus';\nimport type { LocationInternal } from './LocationInternal';\nimport type { OrderHandle } from './OrderHandle';\n\nexport type GeotagData = {\n orderHandle: OrderHandle;\n orderStatus: OrderStatus;\n data: Object;\n expectedLocation?: LocationInternal;\n};\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=OrderHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["OrderHandle.ts"],"sourcesContent":["export type OrderHandle = {\n type: 'orderHandle';\n value: string;\n};\n"],"mappings":""}
@@ -20,7 +20,7 @@ const HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin ? NativeModules.
20
20
  const EventEmitter = new NativeEventEmitter(HyperTrackSdk);
21
21
  export default class HyperTrack {
22
22
  /**
23
- * Adds a new geotag
23
+ * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
24
24
  *
25
25
  * @param {string} orderHandle - Order handle
26
26
  * @param {OrderStatus} orderStatus - Order status
@@ -29,7 +29,7 @@ export default class HyperTrack {
29
29
  */
30
30
 
31
31
  /**
32
- * Adds a new geotag with expected location
32
+ * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
33
33
  *
34
34
  * @param {string} orderHandle - Order handle
35
35
  * @param {OrderStatus} orderStatus - Order status
@@ -59,7 +59,10 @@ export default class HyperTrack {
59
59
  if (args.length === 3 && typeof args[0] === 'string' && HyperTrack.isOrderStatus(args[1]) && typeof args[2] === 'object') {
60
60
  // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)
61
61
  return HyperTrackSdk.addGeotag({
62
- orderHandle: args[0],
62
+ orderHandle: {
63
+ type: 'orderHandle',
64
+ value: args[0]
65
+ },
63
66
  orderStatus: args[1],
64
67
  data: args[2],
65
68
  expectedLocation: undefined
@@ -70,7 +73,10 @@ export default class HyperTrack {
70
73
  if (args.length === 4 && typeof args[0] === 'string' && HyperTrack.isOrderStatus(args[1]) && typeof args[2] === 'object' && HyperTrack.isLocation(args[3])) {
71
74
  // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)
72
75
  return HyperTrackSdk.addGeotag({
73
- orderHandle: args[0],
76
+ orderHandle: {
77
+ type: 'orderHandle',
78
+ value: args[0]
79
+ },
74
80
  orderStatus: args[1],
75
81
  data: args[2],
76
82
  expectedLocation: {
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","addGeotag","args","length","isOrderStatus","orderHandle","orderStatus","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","type","value","latitude","longitude","deserializeLocationWithDeviationResponse","JSON","stringify","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","Object","keys","find","key","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","obj","startsWith","_defineProperty"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} 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 { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\nimport type { OrderStatus } from './data_types/OrderStatus';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\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 static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * Adds a new geotag with expected location\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag\n *\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n static async addGeotag(\n ...args: any[]\n ): Promise<Result<Location | LocationWithDeviation, LocationError>> {\n if (\n args.length === 3 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object'\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)\n return HyperTrackSdk.addGeotag({\n orderHandle: args[0],\n orderStatus: args[1],\n data: args[2],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 4 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object' &&\n HyperTrack.isLocation(args[3])\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n orderHandle: args[0],\n orderStatus: args[1],\n data: args[2],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[3].latitude,\n longitude: args[3].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n if (args.length === 1 && typeof args[0] === 'object') {\n // addGeotag(data: Object)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n // addGeotag(data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[1].latitude,\n longitude: args[1].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n *\n * @returns {string} Device ID\n */\n static async getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n static async getDynamicPublishableKey(): Promise<string> {\n return HyperTrackSdk.getDynamicPublishableKey().then(\n (dynamicPublishableKey: DynamicPublishableKey) =>\n this.deserializeDynamicPublishableKey(dynamicPublishableKey)\n );\n }\n\n /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\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 static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\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 static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\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 static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\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.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\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.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type !== 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type !== 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type !== 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude === 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude === 'number'\n );\n }\n\n /** @ignore */\n private static isOrderStatus(obj: OrderStatus): obj is OrderStatus {\n return 'type' in obj && obj.type.startsWith('orderStatus');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","addGeotag","args","length","isOrderStatus","orderHandle","type","value","orderStatus","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","latitude","longitude","deserializeLocationWithDeviationResponse","JSON","stringify","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","Object","keys","find","key","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","obj","startsWith","_defineProperty"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} 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 { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\nimport type { OrderStatus } from './data_types/OrderStatus';\nimport type { OrderHandle } from './data_types/internal/OrderHandle';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\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 static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag\n *\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n static async addGeotag(\n ...args: any[]\n ): Promise<Result<Location | LocationWithDeviation, LocationError>> {\n if (\n args.length === 3 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object'\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 4 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object' &&\n HyperTrack.isLocation(args[3])\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[3].latitude,\n longitude: args[3].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n if (args.length === 1 && typeof args[0] === 'object') {\n // addGeotag(data: Object)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n // addGeotag(data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[1].latitude,\n longitude: args[1].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n *\n * @returns {string} Device ID\n */\n static async getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n static async getDynamicPublishableKey(): Promise<string> {\n return HyperTrackSdk.getDynamicPublishableKey().then(\n (dynamicPublishableKey: DynamicPublishableKey) =>\n this.deserializeDynamicPublishableKey(dynamicPublishableKey)\n );\n }\n\n /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\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 static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\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 static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\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 static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\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.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\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.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type !== 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type !== 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type !== 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude === 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude === 'number'\n );\n }\n\n /** @ignore */\n private static isOrderStatus(obj: OrderStatus): obj is OrderStatus {\n return 'type' in obj && obj.type.startsWith('orderStatus');\n }\n}\n"],"mappings":";;;AAAA,SACEA,aAAa,EACbC,QAAQ,EACRC,kBAAkB,QAEb,cAAc;AACrB,SAASC,eAAe,QAAQ,8BAA8B;AAmB9D,MAAMC,YAAY,GAAG,QAAQ;AAC7B,MAAMC,kBAAkB,GAAG,aAAa;AACxC,MAAMC,iBAAiB,GAAG,YAAY;AACtC,MAAMC,YAAY,GAAG,QAAQ;AAC7B,MAAMC,cAAc,GAAG,UAAU;AAEjC,MAAMC,aAAa,GAChB,sFAAqF,GACtFR,QAAQ,CAACS,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;AAE/C,MAAMC,aAAa,GAAGb,aAAa,CAACc,2BAA2B,GAC3Dd,aAAa,CAACc,2BAA2B,GACzC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,MAAMS,YAAY,GAAG,IAAIhB,kBAAkB,CAACW,aAAa,CAAC;AAE1D,eAAe,MAAMM,UAAU,CAAC;EAG9B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAOE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAQE;AACF;AACA;AACA;AACA;AACA;AACA;;EAKE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAME,aAAaC,SAASA,CACpB,GAAGC,IAAW,EACoD;IAClE,IACEA,IAAI,CAACC,MAAM,KAAK,CAAC,IACjB,OAAOD,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3BF,UAAU,CAACI,aAAa,CAACF,IAAI,CAAC,CAAC,CAAC,CAAC,IACjC,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC3B;MACA;MACA,OAAOR,aAAa,CAACO,SAAS,CAAC;QAC7BI,WAAW,EAAE;UACXC,IAAI,EAAE,aAAa;UACnBC,KAAK,EAAEL,IAAI,CAAC,CAAC;QACf,CAAgB;QAChBM,WAAW,EAAEN,IAAI,CAAC,CAAC,CAAC;QACpBO,IAAI,EAAEP,IAAI,CAAC,CAAC,CAAC;QACbQ,gBAAgB,EAAEC;MACpB,CAAe,CAAC,CAACC,IAAI,CAClBC,gBAAiE,IAAK;QACrE,OAAO,IAAI,CAACC,2BAA2B,CAACD,gBAAgB,CAAC;MAC3D,CACF,CAAC;IACH;IACA,IACEX,IAAI,CAACC,MAAM,KAAK,CAAC,IACjB,OAAOD,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3BF,UAAU,CAACI,aAAa,CAACF,IAAI,CAAC,CAAC,CAAC,CAAC,IACjC,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3BF,UAAU,CAACe,UAAU,CAACb,IAAI,CAAC,CAAC,CAAC,CAAC,EAC9B;MACA;MACA,OAAOR,aAAa,CAACO,SAAS,CAAC;QAC7BI,WAAW,EAAE;UACXC,IAAI,EAAE,aAAa;UACnBC,KAAK,EAAEL,IAAI,CAAC,CAAC;QACf,CAAgB;QAChBM,WAAW,EAAEN,IAAI,CAAC,CAAC,CAAC;QACpBO,IAAI,EAAEP,IAAI,CAAC,CAAC,CAAC;QACbQ,gBAAgB,EAAE;UAChBJ,IAAI,EAAE,UAAU;UAChBC,KAAK,EAAE;YACLS,QAAQ,EAAEd,IAAI,CAAC,CAAC,CAAC,CAACc,QAAQ;YAC1BC,SAAS,EAAEf,IAAI,CAAC,CAAC,CAAC,CAACe;UACrB;QACF;MACF,CAAe,CAAC,CAACL,IAAI,CAEjBC,gBAGC,IACE;QACH,OAAO,IAAI,CAACK,wCAAwC,CAClDL,gBACF,CAAC;MACH,CACF,CAAC;IACH;IACA,IAAIX,IAAI,CAACC,MAAM,KAAK,CAAC,IAAI,OAAOD,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MACpD;MACA,OAAOR,aAAa,CAACO,SAAS,CAAC;QAC7BQ,IAAI,EAAEP,IAAI,CAAC,CAAC,CAAC;QACbQ,gBAAgB,EAAEC;MACpB,CAAe,CAAC,CAACC,IAAI,CAClBC,gBAAiE,IAAK;QACrE,OAAO,IAAI,CAACC,2BAA2B,CAACD,gBAAgB,CAAC;MAC3D,CACF,CAAC;IACH;IACA,IACEX,IAAI,CAACC,MAAM,KAAK,CAAC,IACjB,OAAOD,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAC3BF,UAAU,CAACe,UAAU,CAACb,IAAI,CAAC,CAAC,CAAC,CAAC,EAC9B;MACA;MACA,OAAOR,aAAa,CAACO,SAAS,CAAC;QAC7BQ,IAAI,EAAEP,IAAI,CAAC,CAAC,CAAC;QACbQ,gBAAgB,EAAE;UAChBJ,IAAI,EAAE,UAAU;UAChBC,KAAK,EAAE;YACLS,QAAQ,EAAEd,IAAI,CAAC,CAAC,CAAC,CAACc,QAAQ;YAC1BC,SAAS,EAAEf,IAAI,CAAC,CAAC,CAAC,CAACe;UACrB;QACF;MACF,CAAe,CAAC,CAACL,IAAI,CAEjBC,gBAGC,IACE;QACH,OAAO,IAAI,CAACK,wCAAwC,CAClDL,gBACF,CAAC;MACH,CACF,CAAC;IACH;IACA,MAAM,IAAIf,KAAK,CAAE,kCAAiCqB,IAAI,CAACC,SAAS,CAAClB,IAAI,CAAE,EAAC,CAAC;EAC3E;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAamB,WAAWA,CAAA,EAAoB;IAC1C,OAAO3B,aAAa,CAAC2B,WAAW,CAAC,CAAC,CAACT,IAAI,CACpCU,QAAkB,IAAKA,QAAQ,CAACf,KACnC,CAAC;EACH;EAEA,aAAagB,wBAAwBA,CAAA,EAAoB;IACvD,OAAO7B,aAAa,CAAC6B,wBAAwB,CAAC,CAAC,CAACX,IAAI,CACjDY,qBAA4C,IAC3C,IAAI,CAACC,gCAAgC,CAACD,qBAAqB,CAC/D,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAaE,SAASA,CAAA,EAA+B;IACnD,OAAOhC,aAAa,CAACgC,SAAS,CAAC,CAAC,CAACd,IAAI,CAClCe,MAAiC,IAAK;MACrC,OAAO,IAAI,CAACC,2BAA2B,CAACD,MAAM,CAAC;IACjD,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAaE,cAAcA,CAAA,EAAqB;IAC9C,OAAOnC,aAAa,CAACmC,cAAc,CAAC,CAAC,CAACjB,IAAI,CACvCkB,WAAwB,IAAKA,WAAW,CAACvB,KAC5C,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAawB,aAAaA,CAAA,EAAqB;IAC7C,OAAOrC,aAAa,CAACqC,aAAa,CAAC,CAAC,CAACnB,IAAI,CACtCoB,UAAsB,IAAKA,UAAU,CAACzB,KACzC,CAAC;EACH;;EAEA;AACF;AACA;EACE,aAAa0B,WAAWA,CAAA,EAA6C;IACnE,OAAOvC,aAAa,CAACuC,WAAW,CAAC,CAAC,CAACrB,IAAI,CACpCC,gBAAiE,IAAK;MACrE,OAAO,IAAI,CAACC,2BAA2B,CAACD,gBAAgB,CAAC;IAC3D,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAaqB,WAAWA,CAAA,EAAoB;IAC1C,OAAOxC,aAAa,CAACwC,WAAW,CAAC,CAAC,CAACtB,IAAI,CAAEuB,QAAkB,IAAK;MAC9D,OAAO,IAAI,CAACC,mBAAmB,CAACD,QAAQ,CAAC;IAC3C,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAaE,OAAOA,CAAA,EAAoB;IACtC,OAAO3C,aAAa,CAAC2C,OAAO,CAAC,CAAC,CAACzB,IAAI,CAAE0B,IAAU,IAAK;MAClD,OAAO,IAAI,CAACC,eAAe,CAACD,IAAI,CAAC;IACnC,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,MAAMA,CACXC,QAAiE,EACjE;IAAA,IAAAC,qBAAA;IACA,CAAAA,qBAAA,OAAI,CAACC,kBAAkB,cAAAD,qBAAA,eAAvBA,qBAAA,CAAyBE,MAAM,CAAC,CAAC;IACjC,IAAI,CAACD,kBAAkB,GAAG5C,YAAY,CAAC8C,WAAW,CAChDzD,YAAY,EACX0D,QAA6D,IAAK;MACjEL,QAAQ,CAAC,IAAI,CAACM,yBAAyB,CAACD,QAAQ,CAAC,CAAC;IACpD,CACF,CAAC;IACDpD,aAAa,CAAC8C,MAAM,CAAC,CAAC;IACtB,OAAO,IAAI,CAACG,kBAAkB;EAChC;EAEA,OAAOK,wBAAwBA,CAACxB,qBAA6B,EAAE;IAC7D9B,aAAa,CAACsD,wBAAwB,CAAC;MACrC1C,IAAI,EAAE,uBAAuB;MAC7BC,KAAK,EAAEiB;IACT,CAA0B,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOyB,cAAcA,CAACnB,WAAoB,EAAE;IAC1CpC,aAAa,CAACuD,cAAc,CAAC;MAC3B3C,IAAI,EAAE,aAAa;MACnBC,KAAK,EAAEuB;IACT,CAAgB,CAAC;EACnB;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOoB,aAAaA,CAAClB,UAAmB,EAAE;IACxCtC,aAAa,CAACwD,aAAa,CAAC;MAC1B5C,IAAI,EAAE,YAAY;MAClBC,KAAK,EAAEyB;IACT,CAAe,CAAC;EAClB;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOmB,WAAWA,CAAC1C,IAAY,EAAE;IAC/Bf,aAAa,CAACyD,WAAW,CAAC;MACxB7C,IAAI,EAAE,UAAU;MAChBC,KAAK,EAAEE;IACT,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAO2C,OAAOA,CAACd,IAAY,EAAE;IAC3B5C,aAAa,CAAC0D,OAAO,CAAC;MACpB9C,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE+B;IACT,CAAS,CAAC;EACZ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOe,iBAAiBA,CACtBC,QAA6C,EACxB;IACrB,OAAOvD,YAAY,CAAC8C,WAAW,CAC7B5D,YAAY,EACXsE,SAAoC,IAAK;MACxCD,QAAQ,CAAC,IAAI,CAAC1B,2BAA2B,CAAC2B,SAAS,CAAC,CAAC;IACvD,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,sBAAsBA,CAC3BF,QAAwC,EACnB;IACrB,OAAOvD,YAAY,CAAC8C,WAAW,CAC7B3D,kBAAkB,EACjB4C,WAAwB,IAAK;MAC5BwB,QAAQ,CAACxB,WAAW,CAACvB,KAAK,CAAC;IAC7B,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOkD,qBAAqBA,CAC1BH,QAAuC,EAClB;IACrB,OAAOvD,YAAY,CAAC8C,WAAW,CAC7B1D,iBAAiB,EAChB6C,UAAsB,IAAK;MAC1BsB,QAAQ,CAACtB,UAAU,CAACzB,KAAK,CAAC;IAC5B,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOmD,mBAAmBA,CACxBJ,QAA6D,EAC7D;IACA,OAAOvD,YAAY,CAAC8C,WAAW,CAC7BxD,cAAc,EACbyD,QAAyD,IAAK;MAC7DQ,QAAQ,CAAC,IAAI,CAACxC,2BAA2B,CAACgC,QAAQ,CAAC,CAAC;IACtD,CACF,CAAC;EACH;;EAEA;EACA,OAAerB,gCAAgCA,CAC7CD,qBAA4C,EACpC;IACR,IAAIA,qBAAqB,CAAClB,IAAI,KAAK,uBAAuB,EAAE;MAC1D,MAAM,IAAIR,KAAK,CACZ,kCAAiCqB,IAAI,CAACC,SAAS,CAC9CI,qBACF,CAAE,EACJ,CAAC;IACH;IACA,OAAOA,qBAAqB,CAACjB,KAAK;EACpC;;EAEA;EACA,OAAeqB,2BAA2BA,CACxCD,MAAiC,EACd;IACnB,IAAIgC,GAAG,GAAGhC,MAAM,CAACiC,GAAG,CAAEC,KAA8B,IAAK;MACvD,IAAIA,KAAK,CAACvD,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,IAAIR,KAAK,CAAC,oBAAoB,CAAC;MACvC;MACA,OAAOgE,MAAM,CAACC,IAAI,CAAC/E,eAAe,CAAC,CAACgF,IAAI,CACrCC,GAAG,IACFjF,eAAe,CAACiF,GAAG,CAAiC,KAAKJ,KAAK,CAACtD,KACnE,CAAC;IACH,CAAC,CAAC;IACF,OAAOoD,GAAG;EACZ;;EAEA;EACA,OAAeZ,yBAAyBA,CACtCmB,QAA6D,EACxB;IACrC,QAAQA,QAAQ,CAAC5D,IAAI;MACnB,KAAK,SAAS;QACZ,OAAO;UACLA,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE2D,QAAQ,CAAC3D,KAAK,CAACA;QACxB,CAAC;MACH,KAAK,SAAS;QACZ,OAAO;UACLD,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE,IAAI,CAACqB,2BAA2B,CAACsC,QAAQ,CAAC3D,KAAK;QACxD,CAAC;IACL;EACF;;EAEA;EACA,OAAe4D,wBAAwBA,CACrCC,aAAoC,EACrB;IACf,QAAQA,aAAa,CAAC9D,IAAI;MACxB,KAAK,YAAY;MACjB,KAAK,UAAU;QACb,OAAO8D,aAAa;MACtB,KAAK,QAAQ;QACX,OAAO;UACL9D,IAAI,EAAE,QAAQ;UACdC,KAAK,EAAE,IAAI,CAACqB,2BAA2B,CAACwC,aAAa,CAAC7D,KAAK;QAC7D,CAAC;IACL;EACF;;EAEA;EACA,OAAeO,2BAA2BA,CACxCoD,QAAyD,EACxB;IACjC,QAAQA,QAAQ,CAAC5D,IAAI;MACnB,KAAK,SAAS;QACZ,OAAO;UACLA,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE2D,QAAQ,CAAC3D,KAAK,CAACA;QACxB,CAAC;MACH,KAAK,SAAS;QACZ,OAAO;UACLD,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE,IAAI,CAAC4D,wBAAwB,CAACD,QAAQ,CAAC3D,KAAK;QACrD,CAAC;IACL;EACF;;EAEA;EACA,OAAeW,wCAAwCA,CACrDgD,QAAsE,EACxB;IAC9C,QAAQA,QAAQ,CAAC5D,IAAI;MACnB,KAAK,SAAS;QACZ,MAAM+D,6BAA4D,GAChEH,QAAQ,CAAC3D,KAAK;QAChB,MAAM+D,gBAAkC,GACtCD,6BAA6B,CAAC9D,KAAK,CAACuC,QAAQ;QAE9C,OAAO;UACLxC,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE;YACLuC,QAAQ,EAAEwB,gBAAgB,CAAC/D,KAAK;YAChCgE,SAAS,EAAEF,6BAA6B,CAAC9D,KAAK,CAACgE;UACjD;QACF,CAAC;MACH,KAAK,SAAS;QACZ,OAAO;UACLjE,IAAI,EAAE,SAAS;UACfC,KAAK,EAAE,IAAI,CAAC4D,wBAAwB,CAACD,QAAQ,CAAC3D,KAAK;QACrD,CAAC;IACL;EACF;;EAEA;EACA,OAAe6B,mBAAmBA,CAACD,QAAkB,EAAU;IAC7D,IAAIA,QAAQ,CAAC7B,IAAI,KAAK,UAAU,EAAE;MAChC,MAAM,IAAIR,KAAK,CAAE,qBAAoBqB,IAAI,CAACC,SAAS,CAACe,QAAQ,CAAE,EAAC,CAAC;IAClE;IACA,OAAOA,QAAQ,CAAC5B,KAAK;EACvB;;EAEA;EACA,OAAegC,eAAeA,CAACD,IAAU,EAAU;IACjD,IAAIA,IAAI,CAAChC,IAAI,KAAK,MAAM,EAAE;MACxB,MAAM,IAAIR,KAAK,CAAE,iBAAgBqB,IAAI,CAACC,SAAS,CAACkB,IAAI,CAAE,EAAC,CAAC;IAC1D;IACA,OAAOA,IAAI,CAAC/B,KAAK;EACnB;;EAEA;EACA,OAAeQ,UAAUA,CAACyD,GAAa,EAAmB;IACxD,OACE,UAAU,IAAIA,GAAG,IACjB,OAAOA,GAAG,CAACxD,QAAQ,KAAK,QAAQ,IAChC,WAAW,IAAIwD,GAAG,IAClB,OAAOA,GAAG,CAACvD,SAAS,KAAK,QAAQ;EAErC;;EAEA;EACA,OAAeb,aAAaA,CAACoE,GAAgB,EAAsB;IACjE,OAAO,MAAM,IAAIA,GAAG,IAAIA,GAAG,CAAClE,IAAI,CAACmE,UAAU,CAAC,aAAa,CAAC;EAC5D;AACF;AAACC,eAAA,CAvkBoB1E,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["GeotagData.ts"],"sourcesContent":["import type { LocationInternal } from './LocationInternal';\n\nexport type GeotagData = {\n data: Object;\n expectedLocation?: LocationInternal;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["GeotagData.ts"],"sourcesContent":["import type { OrderStatus } from '../OrderStatus';\nimport type { LocationInternal } from './LocationInternal';\nimport type { OrderHandle } from './OrderHandle';\n\nexport type GeotagData = {\n orderHandle: OrderHandle;\n orderStatus: OrderStatus;\n data: Object;\n expectedLocation?: LocationInternal;\n};\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=OrderHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["OrderHandle.ts"],"sourcesContent":["export type OrderHandle = {\n type: 'orderHandle';\n value: string;\n};\n"],"mappings":""}
@@ -8,7 +8,7 @@ import type { OrderStatus } from './data_types/OrderStatus';
8
8
  export default class HyperTrack {
9
9
  private static locateSubscription;
10
10
  /**
11
- * Adds a new geotag
11
+ * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
12
12
  *
13
13
  * @param {string} orderHandle - Order handle
14
14
  * @param {OrderStatus} orderStatus - Order status
@@ -17,7 +17,7 @@ export default class HyperTrack {
17
17
  */
18
18
  static addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object): Promise<Result<Location, LocationError>>;
19
19
  /**
20
- * Adds a new geotag with expected location
20
+ * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
21
21
  *
22
22
  * @param {string} orderHandle - Order handle
23
23
  * @param {OrderStatus} orderStatus - Order status
@@ -1,5 +1,9 @@
1
+ import type { OrderStatus } from '../OrderStatus';
1
2
  import type { LocationInternal } from './LocationInternal';
3
+ import type { OrderHandle } from './OrderHandle';
2
4
  export type GeotagData = {
5
+ orderHandle: OrderHandle;
6
+ orderStatus: OrderStatus;
3
7
  data: Object;
4
8
  expectedLocation?: LocationInternal;
5
9
  };
@@ -0,0 +1,4 @@
1
+ export type OrderHandle = {
2
+ type: 'orderHandle';
3
+ value: string;
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hypertrack-sdk-react-native",
3
- "version": "13.3.0",
3
+ "version": "13.3.1",
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",
@@ -21,6 +21,7 @@ import type { LocationWithDeviationInternal } from './data_types/internal/Locati
21
21
  import type { Metadata } from './data_types/internal/Metadata';
22
22
  import type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';
23
23
  import type { OrderStatus } from './data_types/OrderStatus';
24
+ import type { OrderHandle } from './data_types/internal/OrderHandle';
24
25
 
25
26
  const EVENT_ERRORS = 'errors';
26
27
  const EVENT_IS_AVAILABLE = 'isAvailable';
@@ -51,7 +52,7 @@ export default class HyperTrack {
51
52
  private static locateSubscription: EmitterSubscription | undefined;
52
53
 
53
54
  /**
54
- * Adds a new geotag
55
+ * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
55
56
  *
56
57
  * @param {string} orderHandle - Order handle
57
58
  * @param {OrderStatus} orderStatus - Order status
@@ -65,7 +66,7 @@ export default class HyperTrack {
65
66
  ): Promise<Result<Location, LocationError>>;
66
67
 
67
68
  /**
68
- * Adds a new geotag with expected location
69
+ * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.
69
70
  *
70
71
  * @param {string} orderHandle - Order handle
71
72
  * @param {OrderStatus} orderStatus - Order status
@@ -115,7 +116,10 @@ export default class HyperTrack {
115
116
  ) {
116
117
  // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)
117
118
  return HyperTrackSdk.addGeotag({
118
- orderHandle: args[0],
119
+ orderHandle: {
120
+ type: 'orderHandle',
121
+ value: args[0],
122
+ } as OrderHandle,
119
123
  orderStatus: args[1],
120
124
  data: args[2],
121
125
  expectedLocation: undefined,
@@ -134,7 +138,10 @@ export default class HyperTrack {
134
138
  ) {
135
139
  // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)
136
140
  return HyperTrackSdk.addGeotag({
137
- orderHandle: args[0],
141
+ orderHandle: {
142
+ type: 'orderHandle',
143
+ value: args[0],
144
+ } as OrderHandle,
138
145
  orderStatus: args[1],
139
146
  data: args[2],
140
147
  expectedLocation: {
@@ -1,6 +1,10 @@
1
+ import type { OrderStatus } from '../OrderStatus';
1
2
  import type { LocationInternal } from './LocationInternal';
3
+ import type { OrderHandle } from './OrderHandle';
2
4
 
3
5
  export type GeotagData = {
6
+ orderHandle: OrderHandle;
7
+ orderStatus: OrderStatus;
4
8
  data: Object;
5
9
  expectedLocation?: LocationInternal;
6
10
  };
@@ -0,0 +1,4 @@
1
+ export type OrderHandle = {
2
+ type: 'orderHandle';
3
+ value: string;
4
+ };