hypertrack-sdk-react-native 13.7.1 → 13.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +10 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +10 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +2 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +15 -0
- package/hypertrack-sdk-react-native.podspec +1 -1
- package/ios/HyperTrackReactNativePlugin.m +7 -0
- package/ios/HyperTrackReactNativePlugin.swift +27 -0
- package/ios/common/HyperTrackSDKWrapper.swift +11 -0
- package/ios/common/SDKMethod.swift +2 -0
- package/ios/common/Serialization.swift +20 -0
- package/lib/commonjs/HyperTrack/HyperTrack.js +36 -0
- package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/internal/AllowMockLocation.js +2 -0
- package/lib/commonjs/HyperTrack/data_types/internal/AllowMockLocation.js.map +1 -0
- package/lib/module/HyperTrack/HyperTrack.js +36 -0
- package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/module/HyperTrack/data_types/internal/AllowMockLocation.js +2 -0
- package/lib/module/HyperTrack/data_types/internal/AllowMockLocation.js.map +1 -0
- package/lib/typescript/HyperTrack/HyperTrack.d.ts +19 -0
- package/lib/typescript/HyperTrack/data_types/internal/AllowMockLocation.d.ts +4 -0
- package/package.json +1 -1
- package/src/HyperTrack/HyperTrack.ts +37 -0
- package/src/HyperTrack/data_types/internal/AllowMockLocation.ts +4 -0
|
@@ -90,6 +90,11 @@ class HyperTrackReactNativePlugin(
|
|
|
90
90
|
HyperTrackSdkWrapper.addGeotag(args.toHashMap()).toPromise(promise)
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
@ReactMethod
|
|
94
|
+
fun getAllowMockLocation(promise: Promise) {
|
|
95
|
+
HyperTrackSdkWrapper.getAllowMockLocation().toPromise(promise)
|
|
96
|
+
}
|
|
97
|
+
|
|
93
98
|
@ReactMethod
|
|
94
99
|
fun getDeviceId(promise: Promise) {
|
|
95
100
|
HyperTrackSdkWrapper.getDeviceId().toPromise(promise)
|
|
@@ -150,6 +155,11 @@ class HyperTrackReactNativePlugin(
|
|
|
150
155
|
Success(Unit).toPromise(promise)
|
|
151
156
|
}
|
|
152
157
|
|
|
158
|
+
@ReactMethod
|
|
159
|
+
fun setAllowMockLocation(args: ReadableMap) {
|
|
160
|
+
HyperTrackSdkWrapper.setAllowMockLocation(args.toHashMap())
|
|
161
|
+
}
|
|
162
|
+
|
|
153
163
|
@ReactMethod
|
|
154
164
|
fun setDynamicPublishableKey(args: ReadableMap) {
|
|
155
165
|
HyperTrackSdkWrapper.setDynamicPublishableKey(args.toHashMap())
|
|
@@ -3,6 +3,7 @@ package com.reactnativehypertracksdk.common
|
|
|
3
3
|
import com.hypertrack.sdk.android.HyperTrack
|
|
4
4
|
import com.hypertrack.sdk.android.Json
|
|
5
5
|
import com.hypertrack.sdk.android.Result
|
|
6
|
+
import com.reactnativehypertracksdk.common.Serialization.deserializeAllowMockLocation
|
|
6
7
|
import com.reactnativehypertracksdk.common.Serialization.deserializeDynamicPublishableKey
|
|
7
8
|
import com.reactnativehypertracksdk.common.Serialization.deserializeGeotagData
|
|
8
9
|
import com.reactnativehypertracksdk.common.Serialization.deserializeIsAvailable
|
|
@@ -10,6 +11,7 @@ import com.reactnativehypertracksdk.common.Serialization.deserializeIsTracking
|
|
|
10
11
|
import com.reactnativehypertracksdk.common.Serialization.deserializeMetadata
|
|
11
12
|
import com.reactnativehypertracksdk.common.Serialization.deserializeName
|
|
12
13
|
import com.reactnativehypertracksdk.common.Serialization.deserializeWorkerHandle
|
|
14
|
+
import com.reactnativehypertracksdk.common.Serialization.serializeAllowMockLocation
|
|
13
15
|
import com.reactnativehypertracksdk.common.Serialization.serializeDeviceId
|
|
14
16
|
import com.reactnativehypertracksdk.common.Serialization.serializeDynamicPublishableKey
|
|
15
17
|
import com.reactnativehypertracksdk.common.Serialization.serializeErrors
|
|
@@ -89,6 +91,8 @@ internal object HyperTrackSdkWrapper {
|
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
|
|
94
|
+
fun getAllowMockLocation(): WrapperResult<Serialized> = Success(serializeAllowMockLocation(HyperTrack.allowMockLocation))
|
|
95
|
+
|
|
92
96
|
fun getDeviceId(): WrapperResult<Serialized> = Success(serializeDeviceId(HyperTrack.deviceID))
|
|
93
97
|
|
|
94
98
|
fun getDynamicPublishableKey(): WrapperResult<Serialized> = Success(serializeDynamicPublishableKey(HyperTrack.dynamicPublishableKey))
|
|
@@ -135,6 +139,12 @@ internal object HyperTrackSdkWrapper {
|
|
|
135
139
|
serializeWorkerHandle(HyperTrack.workerHandle),
|
|
136
140
|
)
|
|
137
141
|
|
|
142
|
+
fun setAllowMockLocation(args: Serialized): WrapperResult<Unit> =
|
|
143
|
+
deserializeAllowMockLocation(args)
|
|
144
|
+
.mapSuccess { allowMockLocation ->
|
|
145
|
+
HyperTrack.allowMockLocation = allowMockLocation
|
|
146
|
+
}
|
|
147
|
+
|
|
138
148
|
fun setDynamicPublishableKey(args: Serialized): WrapperResult<Unit> =
|
|
139
149
|
deserializeDynamicPublishableKey(args)
|
|
140
150
|
.mapSuccess { publishableKey ->
|
|
@@ -8,6 +8,7 @@ package com.reactnativehypertracksdk.common
|
|
|
8
8
|
*/
|
|
9
9
|
internal enum class SdkMethod {
|
|
10
10
|
addGeotag,
|
|
11
|
+
getAllowMockLocation,
|
|
11
12
|
getDeviceID,
|
|
12
13
|
getDynamicPublishableKey,
|
|
13
14
|
getErrors,
|
|
@@ -19,6 +20,7 @@ internal enum class SdkMethod {
|
|
|
19
20
|
getOrders,
|
|
20
21
|
getWorkerHandle,
|
|
21
22
|
locate,
|
|
23
|
+
setAllowMockLocation,
|
|
22
24
|
setDynamicPublishableKey,
|
|
23
25
|
setIsAvailable,
|
|
24
26
|
setIsTracking,
|
|
@@ -9,6 +9,14 @@ 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
|
+
fun deserializeAllowMockLocation(allowMockLocation: Serialized): WrapperResult<Boolean> =
|
|
13
|
+
parse(allowMockLocation) {
|
|
14
|
+
it.assertValue<String>(key = KEY_TYPE, value = TYPE_ALLOW_MOCK_LOCATION)
|
|
15
|
+
it
|
|
16
|
+
.get<Boolean>(KEY_VALUE)
|
|
17
|
+
.getOrThrow()
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
fun deserializeDynamicPublishableKey(args: Serialized): WrapperResult<String> =
|
|
13
21
|
parse(args) {
|
|
14
22
|
it.assertValue<String>(key = KEY_TYPE, value = TYPE_DYNAMIC_PUBLISHABLE_KEY)
|
|
@@ -89,6 +97,12 @@ internal object Serialization {
|
|
|
89
97
|
.getOrThrow()
|
|
90
98
|
}
|
|
91
99
|
|
|
100
|
+
fun serializeAllowMockLocation(allowMockLocation: Boolean): Serialized =
|
|
101
|
+
mapOf(
|
|
102
|
+
KEY_TYPE to TYPE_ALLOW_MOCK_LOCATION,
|
|
103
|
+
KEY_VALUE to allowMockLocation,
|
|
104
|
+
)
|
|
105
|
+
|
|
92
106
|
fun serializeDeviceId(deviceId: String): Serialized =
|
|
93
107
|
mapOf(
|
|
94
108
|
KEY_TYPE to TYPE_DEVICE_ID,
|
|
@@ -404,6 +418,7 @@ internal object Serialization {
|
|
|
404
418
|
private const val TYPE_RESULT_FAILURE = "failure"
|
|
405
419
|
private const val TYPE_RESULT_SUCCESS = "success"
|
|
406
420
|
|
|
421
|
+
private const val TYPE_ALLOW_MOCK_LOCATION = "allowMockLocation"
|
|
407
422
|
private const val TYPE_DEVICE_ID = "deviceID"
|
|
408
423
|
private const val TYPE_DYNAMIC_PUBLISHABLE_KEY = "dynamicPublishableKey"
|
|
409
424
|
private const val TYPE_ERROR = "error"
|
|
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
18
18
|
|
|
19
19
|
s.dependency "React-Core"
|
|
20
|
-
s.dependency 'HyperTrack', '5.
|
|
20
|
+
s.dependency 'HyperTrack', '5.10.0'
|
|
21
21
|
|
|
22
22
|
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
23
23
|
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
|
@@ -13,6 +13,9 @@ RCT_EXTERN_METHOD(addGeotag:(NSDictionary *)args
|
|
|
13
13
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
14
14
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
15
15
|
|
|
16
|
+
RCT_EXTERN_METHOD(getAllowMockLocation:(RCTPromiseResolveBlock)resolve
|
|
17
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
18
|
+
|
|
16
19
|
RCT_EXTERN_METHOD(getDeviceId:(RCTPromiseResolveBlock)resolve
|
|
17
20
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
18
21
|
|
|
@@ -46,6 +49,10 @@ RCT_EXTERN_METHOD(getWorkerHandle:(RCTPromiseResolveBlock)resolve
|
|
|
46
49
|
RCT_EXTERN_METHOD(locate:(RCTPromiseResolveBlock)resolve
|
|
47
50
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
48
51
|
|
|
52
|
+
RCT_EXTERN_METHOD(setAllowMockLocation:(NSDictionary *)args
|
|
53
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
54
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
55
|
+
|
|
49
56
|
RCT_EXTERN_METHOD(setDynamicPublishableKey:(NSDictionary *)args
|
|
50
57
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
51
58
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
@@ -77,6 +77,18 @@ class HyperTrackReactNativePlugin: RCTEventEmitter {
|
|
|
77
77
|
)
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
@objc func getAllowMockLocation(
|
|
81
|
+
_ resolve: RCTPromiseResolveBlock,
|
|
82
|
+
rejecter reject: RCTPromiseRejectBlock
|
|
83
|
+
) {
|
|
84
|
+
sendAsPromise(
|
|
85
|
+
hypertrack_sdk_react_native.getAllowMockLocation(),
|
|
86
|
+
method: .getAllowMockLocation,
|
|
87
|
+
resolve,
|
|
88
|
+
reject
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
|
|
80
92
|
@objc func getDeviceId(
|
|
81
93
|
_ resolve: RCTPromiseResolveBlock,
|
|
82
94
|
rejecter reject: RCTPromiseRejectBlock
|
|
@@ -215,6 +227,21 @@ class HyperTrackReactNativePlugin: RCTEventEmitter {
|
|
|
215
227
|
)
|
|
216
228
|
}
|
|
217
229
|
|
|
230
|
+
@objc func setAllowMockLocation(
|
|
231
|
+
_ args: NSDictionary,
|
|
232
|
+
resolver resolve: RCTPromiseResolveBlock,
|
|
233
|
+
rejecter reject: RCTPromiseRejectBlock
|
|
234
|
+
) {
|
|
235
|
+
sendAsPromise(
|
|
236
|
+
hypertrack_sdk_react_native.setAllowMockLocation(
|
|
237
|
+
args as! [String: Any]
|
|
238
|
+
),
|
|
239
|
+
method: .setAllowMockLocation,
|
|
240
|
+
resolve,
|
|
241
|
+
reject
|
|
242
|
+
)
|
|
243
|
+
}
|
|
244
|
+
|
|
218
245
|
@objc func setDynamicPublishableKey(
|
|
219
246
|
_ args: NSDictionary,
|
|
220
247
|
resolver resolve: RCTPromiseResolveBlock,
|
|
@@ -56,6 +56,10 @@ func addGeotag(_ args: [String: Any]) -> Result<SuccessResult, FailureResult> {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
func getAllowMockLocation() -> Result<SuccessResult, FailureResult> {
|
|
60
|
+
.success(.dict(serializeAllowMockLocation(HyperTrack.allowMockLocation)))
|
|
61
|
+
}
|
|
62
|
+
|
|
59
63
|
func getDeviceID() -> Result<SuccessResult, FailureResult> {
|
|
60
64
|
.success(.dict(serializeDeviceID(HyperTrack.deviceID)))
|
|
61
65
|
}
|
|
@@ -96,6 +100,13 @@ func getWorkerHandle() -> Result<SuccessResult, FailureResult> {
|
|
|
96
100
|
.success(.dict(serializeWorkerHandle(HyperTrack.workerHandle)))
|
|
97
101
|
}
|
|
98
102
|
|
|
103
|
+
func setAllowMockLocation(_ args: [String: Any]) -> Result<SuccessResult, FailureResult> {
|
|
104
|
+
deserializeAllowMockLocation(args).flatMap { (allowMockLocation: Bool) in
|
|
105
|
+
HyperTrack.allowMockLocation = allowMockLocation
|
|
106
|
+
return .success(.void)
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
99
110
|
func setDynamicPublishableKey(_ args: [String: Any]) -> Result<SuccessResult, FailureResult> {
|
|
100
111
|
deserializeDynamicPublishableKey(args).flatMap { (dynamicPublishableKey: String) in
|
|
101
112
|
HyperTrack.dynamicPublishableKey = dynamicPublishableKey
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
enum SDKMethod: String {
|
|
2
2
|
case addGeotag
|
|
3
|
+
case getAllowMockLocation
|
|
3
4
|
case getDeviceID
|
|
4
5
|
case getDynamicPublishableKey
|
|
5
6
|
case getErrors
|
|
@@ -11,6 +12,7 @@ enum SDKMethod: String {
|
|
|
11
12
|
case getOrders
|
|
12
13
|
case getWorkerHandle
|
|
13
14
|
case locate
|
|
15
|
+
case setAllowMockLocation
|
|
14
16
|
case setDynamicPublishableKey
|
|
15
17
|
case setIsAvailable
|
|
16
18
|
case setIsTracking
|
|
@@ -5,6 +5,7 @@ private let keyGeotagData = "data"
|
|
|
5
5
|
private let keyType = "type"
|
|
6
6
|
private let keyValue = "value"
|
|
7
7
|
|
|
8
|
+
private let typeAllowMockLocation = "allowMockLocation"
|
|
8
9
|
private let typeError = "error"
|
|
9
10
|
private let typeFailure = "failure"
|
|
10
11
|
private let typeIsAvailable = "isAvailable"
|
|
@@ -15,6 +16,18 @@ private let typeName = "name"
|
|
|
15
16
|
private let typeSuccess = "success"
|
|
16
17
|
private let typeWorkerHandle = "workerHandle"
|
|
17
18
|
|
|
19
|
+
func deserializeAllowMockLocation(
|
|
20
|
+
_ args: [String: Any]
|
|
21
|
+
) -> Result<Bool, FailureResult> {
|
|
22
|
+
if args[keyType] as? String != typeAllowMockLocation {
|
|
23
|
+
return .failure(.fatalError(getParseError(args, key: keyType)))
|
|
24
|
+
}
|
|
25
|
+
guard let value = args[keyValue] as? Bool else {
|
|
26
|
+
return .failure(.fatalError(getParseError(args, key: keyValue)))
|
|
27
|
+
}
|
|
28
|
+
return .success(value)
|
|
29
|
+
}
|
|
30
|
+
|
|
18
31
|
func deserializeDynamicPublishableKey(
|
|
19
32
|
_ args: [String: Any]
|
|
20
33
|
) -> Result<String, FailureResult> {
|
|
@@ -181,6 +194,13 @@ func deserializeWorkerHandle(_ data: [String: Any]) -> Result<String, FailureRes
|
|
|
181
194
|
return .success(value)
|
|
182
195
|
}
|
|
183
196
|
|
|
197
|
+
func serializeAllowMockLocation(_ allowMockLocation: Bool) -> [String: Any] {
|
|
198
|
+
return [
|
|
199
|
+
keyType: typeAllowMockLocation,
|
|
200
|
+
keyValue: allowMockLocation,
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
|
|
184
204
|
func serializeDeviceID(_ deviceID: String) -> [String: Any] {
|
|
185
205
|
return [
|
|
186
206
|
keyType: "deviceID",
|
|
@@ -124,6 +124,17 @@ class HyperTrack {
|
|
|
124
124
|
throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
/**
|
|
128
|
+
* If disallowed, the HyperTrack platform will display and outage if mocked location is detected.
|
|
129
|
+
*
|
|
130
|
+
* @param {boolean} true if mock location is allowed
|
|
131
|
+
*/
|
|
132
|
+
static async getAllowMockLocation() {
|
|
133
|
+
return HyperTrackSdk.getAllowMockLocation().then(allowMockLocation => {
|
|
134
|
+
return this.deserializeAllowMockLocation(allowMockLocation);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
127
138
|
/**
|
|
128
139
|
* Returns a string that is used to uniquely identify the device
|
|
129
140
|
*
|
|
@@ -250,6 +261,23 @@ class HyperTrack {
|
|
|
250
261
|
HyperTrackSdk.locate();
|
|
251
262
|
return this.locateSubscription;
|
|
252
263
|
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Allows mocking location data.
|
|
267
|
+
*
|
|
268
|
+
* Check the [Test with mock locations](https://hypertrack.com/docs/mock-location) guide for more information.
|
|
269
|
+
*
|
|
270
|
+
* To avoid issues related to race conditions in your code use this API **only if** modifying the compiled `HyperTrackAllowMockLocation` AndroidManifest.xml/Info.plist value is insufficient for your needs.
|
|
271
|
+
* Example: if for some reason you aren't able to recompile with `HyperTrackAllowMockLocation` set to `YES`/`true` for your prod app QA mock location tests and need to set up the value in runtime.
|
|
272
|
+
*
|
|
273
|
+
* @param true if mock location is allowed
|
|
274
|
+
*/
|
|
275
|
+
static async setAllowMockLocation(allow) {
|
|
276
|
+
HyperTrackSdk.setAllowMockLocation({
|
|
277
|
+
type: 'allowMockLocation',
|
|
278
|
+
value: allow
|
|
279
|
+
});
|
|
280
|
+
}
|
|
253
281
|
static setDynamicPublishableKey(dynamicPublishableKey) {
|
|
254
282
|
HyperTrackSdk.setDynamicPublishableKey({
|
|
255
283
|
type: 'dynamicPublishableKey',
|
|
@@ -432,6 +460,14 @@ class HyperTrack {
|
|
|
432
460
|
});
|
|
433
461
|
}
|
|
434
462
|
|
|
463
|
+
/** @ignore */
|
|
464
|
+
static deserializeAllowMockLocation(allowMockLocation) {
|
|
465
|
+
if (allowMockLocation.type !== 'allowMockLocation') {
|
|
466
|
+
throw new Error(`Invalid allowMockLocation: ${JSON.stringify(allowMockLocation)}`);
|
|
467
|
+
}
|
|
468
|
+
return allowMockLocation.value;
|
|
469
|
+
}
|
|
470
|
+
|
|
435
471
|
/** @ignore */
|
|
436
472
|
static deserializeDynamicPublishableKey(dynamicPublishableKey) {
|
|
437
473
|
if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {
|
|
@@ -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","EVENT_ORDERS","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","getOrders","orders","deserializeOrders","getWorkerHandle","workerHandle","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","setWorkerHandle","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","subscribeToOrders","res","map","error","keys","HyperTrackError","find","deserializeIsInsideGeofence","isInsideGeofence","successValue","deserializeLocationError","response","locationError","locationWithDeviationInternal","locationInternal","deviation","result","Map","entries","_","sort","first","second","index","forEach","orderInternal","set","startsWith","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n type 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';\nimport type { WorkerHandle } from './data_types/internal/WorkerHandle';\nimport type { Order } from './data_types/Order';\nimport type { OrdersInternal } from './data_types/internal/OrdersInternal';\nimport type { OrderInternal } from './data_types/internal/OrderInternal';\nimport type { IsInsideGeofence } from './data_types/internal/IsInsideGeofence';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\nconst EVENT_ORDERS = 'orders';\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 * Gets the active orders for the worker. The orders are sorted with the ordering in \n * which the worker should complete them.\n *\n * @returns {Map<string, Order>} Map of orders\n */\n static async getOrders(): Promise<Map<string, Order>> {\n return HyperTrackSdk.getOrders().then((orders: OrdersInternal) => {\n return this.deserializeOrders(orders);\n });\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n */\n static async getWorkerHandle(): Promise<string> {\n return HyperTrackSdk.getWorkerHandle().then(\n (workerHandle: WorkerHandle) => workerHandle.value\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 isAvailable 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 * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n *\n * @param {string} workerHandle\n */\n static setWorkerHandle(workerHandle: string) {\n HyperTrackSdk.setWorkerHandle({\n type: 'workerHandle',\n value: workerHandle,\n } as WorkerHandle);\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 /**\n * Subscribe to changes in the orders assigned to the worker\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToOrders(orders => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToOrders(\n listener: (orders: Map<string, Order>) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(EVENT_ORDERS, (orders: OrdersInternal) => {\n listener(this.deserializeOrders(orders));\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 deserializeIsInsideGeofence(\n isInsideGeofence: Result<IsInsideGeofence, LocationErrorInternal>,\n ): Result<boolean, LocationError> {\n switch (isInsideGeofence.type) {\n case 'success':\n let successValue = isInsideGeofence.value;\n if (successValue.type !== 'isInsideGeofence') {\n throw new Error(`Invalid isInsideGeofence: ${JSON.stringify(successValue)}`);\n }\n return {\n type: 'success',\n value: successValue.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(isInsideGeofence.value),\n };\n }\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 deserializeOrders(orders: OrdersInternal): Map<string, Order> {\n if (orders.type !== 'orders') {\n throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);\n }\n let result = new Map<string, Order>();\n Object.entries(orders.value)\n .map(([_, value]: [string, OrderInternal]) => {\n return value;\n })\n .sort(\n (first: OrderInternal, second: OrderInternal) =>\n first.index - second.index\n )\n .forEach((orderInternal: OrderInternal) => {\n result.set(orderInternal.orderHandle, {\n orderHandle: orderInternal.orderHandle,\n isInsideGeofence: this.deserializeIsInsideGeofence(\n orderInternal.isInsideGeofence\n ),\n } as Order);\n });\n return result;\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","EVENT_ORDERS","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","getAllowMockLocation","allowMockLocation","deserializeAllowMockLocation","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","getOrders","orders","deserializeOrders","getWorkerHandle","workerHandle","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setAllowMockLocation","allow","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","setWorkerHandle","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","subscribeToOrders","res","map","error","keys","HyperTrackError","find","deserializeIsInsideGeofence","isInsideGeofence","successValue","deserializeLocationError","response","locationError","locationWithDeviationInternal","locationInternal","deviation","result","Map","entries","_","sort","first","second","index","forEach","orderInternal","set","startsWith","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n type 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';\nimport type { WorkerHandle } from './data_types/internal/WorkerHandle';\nimport type { Order } from './data_types/Order';\nimport type { OrdersInternal } from './data_types/internal/OrdersInternal';\nimport type { OrderInternal } from './data_types/internal/OrderInternal';\nimport type { IsInsideGeofence } from './data_types/internal/IsInsideGeofence';\nimport type { AllowMockLocation } from './data_types/internal/AllowMockLocation';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\nconst EVENT_ORDERS = 'orders';\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 * If disallowed, the HyperTrack platform will display and outage if mocked location is detected.\n *\n * @param {boolean} true if mock location is allowed\n */\n static async getAllowMockLocation(): Promise<boolean> {\n return HyperTrackSdk.getAllowMockLocation().then((allowMockLocation: AllowMockLocation) => {\n return this.deserializeAllowMockLocation(allowMockLocation);\n });\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 * Gets the active orders for the worker. The orders are sorted with the ordering in \n * which the worker should complete them.\n *\n * @returns {Map<string, Order>} Map of orders\n */\n static async getOrders(): Promise<Map<string, Order>> {\n return HyperTrackSdk.getOrders().then((orders: OrdersInternal) => {\n return this.deserializeOrders(orders);\n });\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n */\n static async getWorkerHandle(): Promise<string> {\n return HyperTrackSdk.getWorkerHandle().then(\n (workerHandle: WorkerHandle) => workerHandle.value\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 /**\n * Allows mocking location data. \n * \n * Check the [Test with mock locations](https://hypertrack.com/docs/mock-location) guide for more information.\n * \n * To avoid issues related to race conditions in your code use this API **only if** modifying the compiled `HyperTrackAllowMockLocation` AndroidManifest.xml/Info.plist value is insufficient for your needs.\n * Example: if for some reason you aren't able to recompile with `HyperTrackAllowMockLocation` set to `YES`/`true` for your prod app QA mock location tests and need to set up the value in runtime.\n * \n * @param true if mock location is allowed\n */\n static async setAllowMockLocation(allow: boolean): Promise<void> {\n HyperTrackSdk.setAllowMockLocation({\n type: 'allowMockLocation',\n value: allow,\n } as AllowMockLocation);\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 isAvailable 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 * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n *\n * @param {string} workerHandle\n */\n static setWorkerHandle(workerHandle: string) {\n HyperTrackSdk.setWorkerHandle({\n type: 'workerHandle',\n value: workerHandle,\n } as WorkerHandle);\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 /**\n * Subscribe to changes in the orders assigned to the worker\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToOrders(orders => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToOrders(\n listener: (orders: Map<string, Order>) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(EVENT_ORDERS, (orders: OrdersInternal) => {\n listener(this.deserializeOrders(orders));\n });\n }\n\n /** @ignore */\n private static deserializeAllowMockLocation(allowMockLocation: AllowMockLocation): boolean {\n if (allowMockLocation.type !== 'allowMockLocation') {\n throw new Error(`Invalid allowMockLocation: ${JSON.stringify(allowMockLocation)}`);\n }\n return allowMockLocation.value;\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 deserializeIsInsideGeofence(\n isInsideGeofence: Result<IsInsideGeofence, LocationErrorInternal>,\n ): Result<boolean, LocationError> {\n switch (isInsideGeofence.type) {\n case 'success':\n let successValue = isInsideGeofence.value;\n if (successValue.type !== 'isInsideGeofence') {\n throw new Error(`Invalid isInsideGeofence: ${JSON.stringify(successValue)}`);\n }\n return {\n type: 'success',\n value: successValue.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(isInsideGeofence.value),\n };\n }\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 deserializeOrders(orders: OrdersInternal): Map<string, Order> {\n if (orders.type !== 'orders') {\n throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);\n }\n let result = new Map<string, Order>();\n Object.entries(orders.value)\n .map(([_, value]: [string, OrderInternal]) => {\n return value;\n })\n .sort(\n (first: OrderInternal, second: OrderInternal) =>\n first.index - second.index\n )\n .forEach((orderInternal: OrderInternal) => {\n result.set(orderInternal.orderHandle, {\n orderHandle: orderInternal.orderHandle,\n isInsideGeofence: this.deserializeIsInsideGeofence(\n orderInternal.isInsideGeofence\n ),\n } as Order);\n });\n return result;\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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["AllowMockLocation.ts"],"sourcesContent":["export type AllowMockLocation = {\n type: 'allowMockLocation';\n value: boolean;\n};\n"],"mappings":""}
|
|
@@ -118,6 +118,17 @@ export default class HyperTrack {
|
|
|
118
118
|
throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
/**
|
|
122
|
+
* If disallowed, the HyperTrack platform will display and outage if mocked location is detected.
|
|
123
|
+
*
|
|
124
|
+
* @param {boolean} true if mock location is allowed
|
|
125
|
+
*/
|
|
126
|
+
static async getAllowMockLocation() {
|
|
127
|
+
return HyperTrackSdk.getAllowMockLocation().then(allowMockLocation => {
|
|
128
|
+
return this.deserializeAllowMockLocation(allowMockLocation);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
121
132
|
/**
|
|
122
133
|
* Returns a string that is used to uniquely identify the device
|
|
123
134
|
*
|
|
@@ -244,6 +255,23 @@ export default class HyperTrack {
|
|
|
244
255
|
HyperTrackSdk.locate();
|
|
245
256
|
return this.locateSubscription;
|
|
246
257
|
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Allows mocking location data.
|
|
261
|
+
*
|
|
262
|
+
* Check the [Test with mock locations](https://hypertrack.com/docs/mock-location) guide for more information.
|
|
263
|
+
*
|
|
264
|
+
* To avoid issues related to race conditions in your code use this API **only if** modifying the compiled `HyperTrackAllowMockLocation` AndroidManifest.xml/Info.plist value is insufficient for your needs.
|
|
265
|
+
* Example: if for some reason you aren't able to recompile with `HyperTrackAllowMockLocation` set to `YES`/`true` for your prod app QA mock location tests and need to set up the value in runtime.
|
|
266
|
+
*
|
|
267
|
+
* @param true if mock location is allowed
|
|
268
|
+
*/
|
|
269
|
+
static async setAllowMockLocation(allow) {
|
|
270
|
+
HyperTrackSdk.setAllowMockLocation({
|
|
271
|
+
type: 'allowMockLocation',
|
|
272
|
+
value: allow
|
|
273
|
+
});
|
|
274
|
+
}
|
|
247
275
|
static setDynamicPublishableKey(dynamicPublishableKey) {
|
|
248
276
|
HyperTrackSdk.setDynamicPublishableKey({
|
|
249
277
|
type: 'dynamicPublishableKey',
|
|
@@ -426,6 +454,14 @@ export default class HyperTrack {
|
|
|
426
454
|
});
|
|
427
455
|
}
|
|
428
456
|
|
|
457
|
+
/** @ignore */
|
|
458
|
+
static deserializeAllowMockLocation(allowMockLocation) {
|
|
459
|
+
if (allowMockLocation.type !== 'allowMockLocation') {
|
|
460
|
+
throw new Error(`Invalid allowMockLocation: ${JSON.stringify(allowMockLocation)}`);
|
|
461
|
+
}
|
|
462
|
+
return allowMockLocation.value;
|
|
463
|
+
}
|
|
464
|
+
|
|
429
465
|
/** @ignore */
|
|
430
466
|
static deserializeDynamicPublishableKey(dynamicPublishableKey) {
|
|
431
467
|
if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","EVENT_ORDERS","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","getOrders","orders","deserializeOrders","getWorkerHandle","workerHandle","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","setWorkerHandle","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","subscribeToOrders","res","map","error","Object","keys","find","key","deserializeIsInsideGeofence","isInsideGeofence","successValue","deserializeLocationError","response","locationError","locationWithDeviationInternal","locationInternal","deviation","result","Map","entries","_","sort","first","second","index","forEach","orderInternal","set","obj","startsWith","_defineProperty"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n type 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';\nimport type { WorkerHandle } from './data_types/internal/WorkerHandle';\nimport type { Order } from './data_types/Order';\nimport type { OrdersInternal } from './data_types/internal/OrdersInternal';\nimport type { OrderInternal } from './data_types/internal/OrderInternal';\nimport type { IsInsideGeofence } from './data_types/internal/IsInsideGeofence';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\nconst EVENT_ORDERS = 'orders';\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 * Gets the active orders for the worker. The orders are sorted with the ordering in \n * which the worker should complete them.\n *\n * @returns {Map<string, Order>} Map of orders\n */\n static async getOrders(): Promise<Map<string, Order>> {\n return HyperTrackSdk.getOrders().then((orders: OrdersInternal) => {\n return this.deserializeOrders(orders);\n });\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n */\n static async getWorkerHandle(): Promise<string> {\n return HyperTrackSdk.getWorkerHandle().then(\n (workerHandle: WorkerHandle) => workerHandle.value\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 isAvailable 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 * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n *\n * @param {string} workerHandle\n */\n static setWorkerHandle(workerHandle: string) {\n HyperTrackSdk.setWorkerHandle({\n type: 'workerHandle',\n value: workerHandle,\n } as WorkerHandle);\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 /**\n * Subscribe to changes in the orders assigned to the worker\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToOrders(orders => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToOrders(\n listener: (orders: Map<string, Order>) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(EVENT_ORDERS, (orders: OrdersInternal) => {\n listener(this.deserializeOrders(orders));\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 deserializeIsInsideGeofence(\n isInsideGeofence: Result<IsInsideGeofence, LocationErrorInternal>,\n ): Result<boolean, LocationError> {\n switch (isInsideGeofence.type) {\n case 'success':\n let successValue = isInsideGeofence.value;\n if (successValue.type !== 'isInsideGeofence') {\n throw new Error(`Invalid isInsideGeofence: ${JSON.stringify(successValue)}`);\n }\n return {\n type: 'success',\n value: successValue.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(isInsideGeofence.value),\n };\n }\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 deserializeOrders(orders: OrdersInternal): Map<string, Order> {\n if (orders.type !== 'orders') {\n throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);\n }\n let result = new Map<string, Order>();\n Object.entries(orders.value)\n .map(([_, value]: [string, OrderInternal]) => {\n return value;\n })\n .sort(\n (first: OrderInternal, second: OrderInternal) =>\n first.index - second.index\n )\n .forEach((orderInternal: OrderInternal) => {\n result.set(orderInternal.orderHandle, {\n orderHandle: orderInternal.orderHandle,\n isInsideGeofence: this.deserializeIsInsideGeofence(\n orderInternal.isInsideGeofence\n ),\n } as Order);\n });\n return result;\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;AAwB9D,MAAMC,YAAY,GAAG,QAAQ;AAC7B,MAAMC,kBAAkB,GAAG,aAAa;AACxC,MAAMC,iBAAiB,GAAG,YAAY;AACtC,MAAMC,YAAY,GAAG,QAAQ;AAC7B,MAAMC,cAAc,GAAG,UAAU;AACjC,MAAMC,YAAY,GAAG,QAAQ;AAE7B,MAAMC,aAAa,GAChB,sFAAqF,GACtFT,QAAQ,CAACU,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,6CAA6C;AAE/C,MAAMC,aAAa,GAAGd,aAAa,CAACe,2BAA2B,GAC3Df,aAAa,CAACe,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,IAAIjB,kBAAkB,CAACY,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;EACE,aAAaE,SAASA,CAAA,EAAgC;IACpD,OAAO9C,aAAa,CAAC8C,SAAS,CAAC,CAAC,CAAC5B,IAAI,CAAE6B,MAAsB,IAAK;MAChE,OAAO,IAAI,CAACC,iBAAiB,CAACD,MAAM,CAAC;IACvC,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,aAAaE,eAAeA,CAAA,EAAoB;IAC9C,OAAOjD,aAAa,CAACiD,eAAe,CAAC,CAAC,CAAC/B,IAAI,CACxCgC,YAA0B,IAAKA,YAAY,CAACrC,KAC/C,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOsC,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,GAAGjD,YAAY,CAACmD,WAAW,CAChD/D,YAAY,EACXgE,QAA6D,IAAK;MACjEL,QAAQ,CAAC,IAAI,CAACM,yBAAyB,CAACD,QAAQ,CAAC,CAAC;IACpD,CACF,CAAC;IACDzD,aAAa,CAACmD,MAAM,CAAC,CAAC;IACtB,OAAO,IAAI,CAACG,kBAAkB;EAChC;EAEA,OAAOK,wBAAwBA,CAAC7B,qBAA6B,EAAE;IAC7D9B,aAAa,CAAC2D,wBAAwB,CAAC;MACrC/C,IAAI,EAAE,uBAAuB;MAC7BC,KAAK,EAAEiB;IACT,CAA0B,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAO8B,cAAcA,CAACxB,WAAoB,EAAE;IAC1CpC,aAAa,CAAC4D,cAAc,CAAC;MAC3BhD,IAAI,EAAE,aAAa;MACnBC,KAAK,EAAEuB;IACT,CAAgB,CAAC;EACnB;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOyB,aAAaA,CAACvB,UAAmB,EAAE;IACxCtC,aAAa,CAAC6D,aAAa,CAAC;MAC1BjD,IAAI,EAAE,YAAY;MAClBC,KAAK,EAAEyB;IACT,CAAe,CAAC;EAClB;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOwB,WAAWA,CAAC/C,IAAY,EAAE;IAC/Bf,aAAa,CAAC8D,WAAW,CAAC;MACxBlD,IAAI,EAAE,UAAU;MAChBC,KAAK,EAAEE;IACT,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOgD,OAAOA,CAACnB,IAAY,EAAE;IAC3B5C,aAAa,CAAC+D,OAAO,CAAC;MACpBnD,IAAI,EAAE,MAAM;MACZC,KAAK,EAAE+B;IACT,CAAS,CAAC;EACZ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOoB,eAAeA,CAACd,YAAoB,EAAE;IAC3ClD,aAAa,CAACgE,eAAe,CAAC;MAC5BpD,IAAI,EAAE,cAAc;MACpBC,KAAK,EAAEqC;IACT,CAAiB,CAAC;EACpB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOe,iBAAiBA,CACtBC,QAA6C,EACxB;IACrB,OAAO7D,YAAY,CAACmD,WAAW,CAC7BlE,YAAY,EACX6E,SAAoC,IAAK;MACxCD,QAAQ,CAAC,IAAI,CAAChC,2BAA2B,CAACiC,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,OAAO7D,YAAY,CAACmD,WAAW,CAC7BjE,kBAAkB,EACjB6C,WAAwB,IAAK;MAC5B8B,QAAQ,CAAC9B,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,OAAOwD,qBAAqBA,CAC1BH,QAAuC,EAClB;IACrB,OAAO7D,YAAY,CAACmD,WAAW,CAC7BhE,iBAAiB,EAChB8C,UAAsB,IAAK;MAC1B4B,QAAQ,CAAC5B,UAAU,CAACzB,KAAK,CAAC;IAC5B,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOyD,mBAAmBA,CACxBJ,QAA6D,EAC7D;IACA,OAAO7D,YAAY,CAACmD,WAAW,CAC7B9D,cAAc,EACb+D,QAAyD,IAAK;MAC7DS,QAAQ,CAAC,IAAI,CAAC9C,2BAA2B,CAACqC,QAAQ,CAAC,CAAC;IACtD,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOc,iBAAiBA,CACtBL,QAA8C,EACzB;IACrB,OAAO7D,YAAY,CAACmD,WAAW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"}
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","EVENT_ORDERS","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","getAllowMockLocation","allowMockLocation","deserializeAllowMockLocation","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","getOrders","orders","deserializeOrders","getWorkerHandle","workerHandle","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setAllowMockLocation","allow","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","setWorkerHandle","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","subscribeToOrders","res","map","error","Object","keys","find","key","deserializeIsInsideGeofence","isInsideGeofence","successValue","deserializeLocationError","response","locationError","locationWithDeviationInternal","locationInternal","deviation","result","Map","entries","_","sort","first","second","index","forEach","orderInternal","set","obj","startsWith","_defineProperty"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n type 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';\nimport type { WorkerHandle } from './data_types/internal/WorkerHandle';\nimport type { Order } from './data_types/Order';\nimport type { OrdersInternal } from './data_types/internal/OrdersInternal';\nimport type { OrderInternal } from './data_types/internal/OrderInternal';\nimport type { IsInsideGeofence } from './data_types/internal/IsInsideGeofence';\nimport type { AllowMockLocation } from './data_types/internal/AllowMockLocation';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\nconst EVENT_ORDERS = 'orders';\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 * If disallowed, the HyperTrack platform will display and outage if mocked location is detected.\n *\n * @param {boolean} true if mock location is allowed\n */\n static async getAllowMockLocation(): Promise<boolean> {\n return HyperTrackSdk.getAllowMockLocation().then((allowMockLocation: AllowMockLocation) => {\n return this.deserializeAllowMockLocation(allowMockLocation);\n });\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 * Gets the active orders for the worker. The orders are sorted with the ordering in \n * which the worker should complete them.\n *\n * @returns {Map<string, Order>} Map of orders\n */\n static async getOrders(): Promise<Map<string, Order>> {\n return HyperTrackSdk.getOrders().then((orders: OrdersInternal) => {\n return this.deserializeOrders(orders);\n });\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n */\n static async getWorkerHandle(): Promise<string> {\n return HyperTrackSdk.getWorkerHandle().then(\n (workerHandle: WorkerHandle) => workerHandle.value\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 /**\n * Allows mocking location data. \n * \n * Check the [Test with mock locations](https://hypertrack.com/docs/mock-location) guide for more information.\n * \n * To avoid issues related to race conditions in your code use this API **only if** modifying the compiled `HyperTrackAllowMockLocation` AndroidManifest.xml/Info.plist value is insufficient for your needs.\n * Example: if for some reason you aren't able to recompile with `HyperTrackAllowMockLocation` set to `YES`/`true` for your prod app QA mock location tests and need to set up the value in runtime.\n * \n * @param true if mock location is allowed\n */\n static async setAllowMockLocation(allow: boolean): Promise<void> {\n HyperTrackSdk.setAllowMockLocation({\n type: 'allowMockLocation',\n value: allow,\n } as AllowMockLocation);\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 isAvailable 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 * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n *\n * @param {string} workerHandle\n */\n static setWorkerHandle(workerHandle: string) {\n HyperTrackSdk.setWorkerHandle({\n type: 'workerHandle',\n value: workerHandle,\n } as WorkerHandle);\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 /**\n * Subscribe to changes in the orders assigned to the worker\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToOrders(orders => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToOrders(\n listener: (orders: Map<string, Order>) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(EVENT_ORDERS, (orders: OrdersInternal) => {\n listener(this.deserializeOrders(orders));\n });\n }\n\n /** @ignore */\n private static deserializeAllowMockLocation(allowMockLocation: AllowMockLocation): boolean {\n if (allowMockLocation.type !== 'allowMockLocation') {\n throw new Error(`Invalid allowMockLocation: ${JSON.stringify(allowMockLocation)}`);\n }\n return allowMockLocation.value;\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 deserializeIsInsideGeofence(\n isInsideGeofence: Result<IsInsideGeofence, LocationErrorInternal>,\n ): Result<boolean, LocationError> {\n switch (isInsideGeofence.type) {\n case 'success':\n let successValue = isInsideGeofence.value;\n if (successValue.type !== 'isInsideGeofence') {\n throw new Error(`Invalid isInsideGeofence: ${JSON.stringify(successValue)}`);\n }\n return {\n type: 'success',\n value: successValue.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(isInsideGeofence.value),\n };\n }\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 deserializeOrders(orders: OrdersInternal): Map<string, Order> {\n if (orders.type !== 'orders') {\n throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);\n }\n let result = new Map<string, Order>();\n Object.entries(orders.value)\n .map(([_, value]: [string, OrderInternal]) => {\n return value;\n })\n .sort(\n (first: OrderInternal, second: OrderInternal) =>\n first.index - second.index\n )\n .forEach((orderInternal: OrderInternal) => {\n result.set(orderInternal.orderHandle, {\n orderHandle: orderInternal.orderHandle,\n isInsideGeofence: this.deserializeIsInsideGeofence(\n orderInternal.isInsideGeofence\n ),\n } as Order);\n });\n return result;\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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["AllowMockLocation.ts"],"sourcesContent":["export type AllowMockLocation = {\n type: 'allowMockLocation';\n value: boolean;\n};\n"],"mappings":""}
|
|
@@ -44,6 +44,12 @@ export default class HyperTrack {
|
|
|
44
44
|
* @returns location with deviation if success or LocationError if failure
|
|
45
45
|
*/
|
|
46
46
|
static addGeotag(data: Object, expectedLocation: Location): Promise<Result<LocationWithDeviation, LocationError>>;
|
|
47
|
+
/**
|
|
48
|
+
* If disallowed, the HyperTrack platform will display and outage if mocked location is detected.
|
|
49
|
+
*
|
|
50
|
+
* @param {boolean} true if mock location is allowed
|
|
51
|
+
*/
|
|
52
|
+
static getAllowMockLocation(): Promise<boolean>;
|
|
47
53
|
/**
|
|
48
54
|
* Returns a string that is used to uniquely identify the device
|
|
49
55
|
*
|
|
@@ -123,6 +129,17 @@ export default class HyperTrack {
|
|
|
123
129
|
* ```
|
|
124
130
|
*/
|
|
125
131
|
static locate(callback: (location: Result<Location, HyperTrackError[]>) => void): EmitterSubscription;
|
|
132
|
+
/**
|
|
133
|
+
* Allows mocking location data.
|
|
134
|
+
*
|
|
135
|
+
* Check the [Test with mock locations](https://hypertrack.com/docs/mock-location) guide for more information.
|
|
136
|
+
*
|
|
137
|
+
* To avoid issues related to race conditions in your code use this API **only if** modifying the compiled `HyperTrackAllowMockLocation` AndroidManifest.xml/Info.plist value is insufficient for your needs.
|
|
138
|
+
* Example: if for some reason you aren't able to recompile with `HyperTrackAllowMockLocation` set to `YES`/`true` for your prod app QA mock location tests and need to set up the value in runtime.
|
|
139
|
+
*
|
|
140
|
+
* @param true if mock location is allowed
|
|
141
|
+
*/
|
|
142
|
+
static setAllowMockLocation(allow: boolean): Promise<void>;
|
|
126
143
|
static setDynamicPublishableKey(dynamicPublishableKey: string): void;
|
|
127
144
|
/**
|
|
128
145
|
* Sets the availability of the device for the Nearby search
|
|
@@ -245,6 +262,8 @@ export default class HyperTrack {
|
|
|
245
262
|
*/
|
|
246
263
|
static subscribeToOrders(listener: (orders: Map<string, Order>) => void): EmitterSubscription;
|
|
247
264
|
/** @ignore */
|
|
265
|
+
private static deserializeAllowMockLocation;
|
|
266
|
+
/** @ignore */
|
|
248
267
|
private static deserializeDynamicPublishableKey;
|
|
249
268
|
/** @ignore */
|
|
250
269
|
private static deserializeHyperTrackErrors;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hypertrack-sdk-react-native",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.8.0",
|
|
4
4
|
"description": "React Native HyperTrack SDK is a wrapper around native iOS and Android SDKs that allows to integrate HyperTrack into React Native apps.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -27,6 +27,7 @@ import type { Order } from './data_types/Order';
|
|
|
27
27
|
import type { OrdersInternal } from './data_types/internal/OrdersInternal';
|
|
28
28
|
import type { OrderInternal } from './data_types/internal/OrderInternal';
|
|
29
29
|
import type { IsInsideGeofence } from './data_types/internal/IsInsideGeofence';
|
|
30
|
+
import type { AllowMockLocation } from './data_types/internal/AllowMockLocation';
|
|
30
31
|
|
|
31
32
|
const EVENT_ERRORS = 'errors';
|
|
32
33
|
const EVENT_IS_AVAILABLE = 'isAvailable';
|
|
@@ -212,6 +213,17 @@ export default class HyperTrack {
|
|
|
212
213
|
throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);
|
|
213
214
|
}
|
|
214
215
|
|
|
216
|
+
/**
|
|
217
|
+
* If disallowed, the HyperTrack platform will display and outage if mocked location is detected.
|
|
218
|
+
*
|
|
219
|
+
* @param {boolean} true if mock location is allowed
|
|
220
|
+
*/
|
|
221
|
+
static async getAllowMockLocation(): Promise<boolean> {
|
|
222
|
+
return HyperTrackSdk.getAllowMockLocation().then((allowMockLocation: AllowMockLocation) => {
|
|
223
|
+
return this.deserializeAllowMockLocation(allowMockLocation);
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
|
|
215
227
|
/**
|
|
216
228
|
* Returns a string that is used to uniquely identify the device
|
|
217
229
|
*
|
|
@@ -359,6 +371,23 @@ export default class HyperTrack {
|
|
|
359
371
|
return this.locateSubscription;
|
|
360
372
|
}
|
|
361
373
|
|
|
374
|
+
/**
|
|
375
|
+
* Allows mocking location data.
|
|
376
|
+
*
|
|
377
|
+
* Check the [Test with mock locations](https://hypertrack.com/docs/mock-location) guide for more information.
|
|
378
|
+
*
|
|
379
|
+
* To avoid issues related to race conditions in your code use this API **only if** modifying the compiled `HyperTrackAllowMockLocation` AndroidManifest.xml/Info.plist value is insufficient for your needs.
|
|
380
|
+
* Example: if for some reason you aren't able to recompile with `HyperTrackAllowMockLocation` set to `YES`/`true` for your prod app QA mock location tests and need to set up the value in runtime.
|
|
381
|
+
*
|
|
382
|
+
* @param true if mock location is allowed
|
|
383
|
+
*/
|
|
384
|
+
static async setAllowMockLocation(allow: boolean): Promise<void> {
|
|
385
|
+
HyperTrackSdk.setAllowMockLocation({
|
|
386
|
+
type: 'allowMockLocation',
|
|
387
|
+
value: allow,
|
|
388
|
+
} as AllowMockLocation);
|
|
389
|
+
}
|
|
390
|
+
|
|
362
391
|
static setDynamicPublishableKey(dynamicPublishableKey: string) {
|
|
363
392
|
HyperTrackSdk.setDynamicPublishableKey({
|
|
364
393
|
type: 'dynamicPublishableKey',
|
|
@@ -563,6 +592,14 @@ export default class HyperTrack {
|
|
|
563
592
|
});
|
|
564
593
|
}
|
|
565
594
|
|
|
595
|
+
/** @ignore */
|
|
596
|
+
private static deserializeAllowMockLocation(allowMockLocation: AllowMockLocation): boolean {
|
|
597
|
+
if (allowMockLocation.type !== 'allowMockLocation') {
|
|
598
|
+
throw new Error(`Invalid allowMockLocation: ${JSON.stringify(allowMockLocation)}`);
|
|
599
|
+
}
|
|
600
|
+
return allowMockLocation.value;
|
|
601
|
+
}
|
|
602
|
+
|
|
566
603
|
/** @ignore */
|
|
567
604
|
private static deserializeDynamicPublishableKey(
|
|
568
605
|
dynamicPublishableKey: DynamicPublishableKey
|