hypertrack-sdk-react-native 12.0.0 → 13.0.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 +13 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +2 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +17 -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 +19 -0
- package/lib/commonjs/HyperTrack/HyperTrack.js +21 -4
- package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/internal/DynamicPublishableKey.js +2 -0
- package/lib/commonjs/HyperTrack/data_types/internal/DynamicPublishableKey.js.map +1 -0
- package/lib/module/HyperTrack/HyperTrack.js +21 -4
- package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/module/HyperTrack/data_types/internal/DynamicPublishableKey.js +2 -0
- package/lib/module/HyperTrack/data_types/internal/DynamicPublishableKey.js.map +1 -0
- package/lib/typescript/HyperTrack/HyperTrack.d.ts +8 -4
- package/lib/typescript/HyperTrack/data_types/internal/DynamicPublishableKey.d.ts +4 -0
- package/package.json +1 -1
- package/src/HyperTrack/HyperTrack.ts +33 -4
- package/src/HyperTrack/data_types/internal/DynamicPublishableKey.ts +4 -0
|
@@ -75,6 +75,11 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
|
|
|
75
75
|
HyperTrackSdkWrapper.getDeviceId().toPromise(promise)
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
@ReactMethod
|
|
79
|
+
fun getDynamicPublishableKey(promise: Promise) {
|
|
80
|
+
HyperTrackSdkWrapper.getDynamicPublishableKey().toPromise(promise)
|
|
81
|
+
}
|
|
82
|
+
|
|
78
83
|
@ReactMethod
|
|
79
84
|
fun getErrors(promise: Promise) {
|
|
80
85
|
HyperTrackSdkWrapper.getErrors().toPromise(promise)
|
|
@@ -114,6 +119,11 @@ class HyperTrackReactNativePlugin(reactContext: ReactApplicationContext?) :
|
|
|
114
119
|
Success(Unit).toPromise(promise)
|
|
115
120
|
}
|
|
116
121
|
|
|
122
|
+
@ReactMethod
|
|
123
|
+
fun setDynamicPublishableKey(args: ReadableMap) {
|
|
124
|
+
HyperTrackSdkWrapper.setDynamicPublishableKey(args.toHashMap())
|
|
125
|
+
}
|
|
126
|
+
|
|
117
127
|
@ReactMethod
|
|
118
128
|
fun setIsAvailable(args: ReadableMap) {
|
|
119
129
|
HyperTrackSdkWrapper.setIsAvailable(args.toHashMap())
|
|
@@ -5,12 +5,14 @@ import com.hypertrack.sdk.android.HyperTrack
|
|
|
5
5
|
import com.hypertrack.sdk.android.HyperTrack.metadata
|
|
6
6
|
import com.hypertrack.sdk.android.Json
|
|
7
7
|
import com.hypertrack.sdk.android.Result
|
|
8
|
+
import com.reactnativehypertracksdk.common.Serialization.deserializeDynamicPublishableKey
|
|
8
9
|
import com.reactnativehypertracksdk.common.Serialization.deserializeIsAvailable
|
|
9
10
|
import com.reactnativehypertracksdk.common.Serialization.deserializeName
|
|
10
11
|
import com.reactnativehypertracksdk.common.Serialization.deserializeGeotagData
|
|
11
12
|
import com.reactnativehypertracksdk.common.Serialization.deserializeIsTracking
|
|
12
13
|
import com.reactnativehypertracksdk.common.Serialization.deserializeMetadata
|
|
13
14
|
import com.reactnativehypertracksdk.common.Serialization.serializeDeviceId
|
|
15
|
+
import com.reactnativehypertracksdk.common.Serialization.serializeDynamicPublishableKey
|
|
14
16
|
import com.reactnativehypertracksdk.common.Serialization.serializeErrors
|
|
15
17
|
import com.reactnativehypertracksdk.common.Serialization.serializeIsAvailable
|
|
16
18
|
import com.reactnativehypertracksdk.common.Serialization.serializeIsTracking
|
|
@@ -70,6 +72,10 @@ internal object HyperTrackSdkWrapper {
|
|
|
70
72
|
return Success(serializeDeviceId(HyperTrack.deviceID))
|
|
71
73
|
}
|
|
72
74
|
|
|
75
|
+
fun getDynamicPublishableKey(): WrapperResult<Serialized> {
|
|
76
|
+
return Success(serializeDynamicPublishableKey(HyperTrack.dynamicPublishableKey))
|
|
77
|
+
}
|
|
78
|
+
|
|
73
79
|
fun getErrors(): WrapperResult<List<Serialized>> {
|
|
74
80
|
return Success(serializeErrors(HyperTrack.errors))
|
|
75
81
|
}
|
|
@@ -110,6 +116,13 @@ internal object HyperTrackSdkWrapper {
|
|
|
110
116
|
)
|
|
111
117
|
}
|
|
112
118
|
|
|
119
|
+
fun setDynamicPublishableKey(args: Serialized): WrapperResult<Unit> {
|
|
120
|
+
return deserializeDynamicPublishableKey(args)
|
|
121
|
+
.mapSuccess { publishableKey ->
|
|
122
|
+
HyperTrack.dynamicPublishableKey = publishableKey
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
113
126
|
fun setIsAvailable(args: Serialized): WrapperResult<Unit> {
|
|
114
127
|
return deserializeIsAvailable(args)
|
|
115
128
|
.mapSuccess { isAvailable ->
|
|
@@ -9,6 +9,7 @@ package com.reactnativehypertracksdk.common
|
|
|
9
9
|
internal enum class SdkMethod {
|
|
10
10
|
addGeotag,
|
|
11
11
|
getDeviceID,
|
|
12
|
+
getDynamicPublishableKey,
|
|
12
13
|
getErrors,
|
|
13
14
|
getIsAvailable,
|
|
14
15
|
getIsTracking,
|
|
@@ -16,6 +17,7 @@ internal enum class SdkMethod {
|
|
|
16
17
|
getMetadata,
|
|
17
18
|
getName,
|
|
18
19
|
locate,
|
|
20
|
+
setDynamicPublishableKey,
|
|
19
21
|
setIsAvailable,
|
|
20
22
|
setIsTracking,
|
|
21
23
|
setMetadata,
|
|
@@ -10,6 +10,15 @@ import com.hypertrack.sdk.android.Result
|
|
|
10
10
|
*/
|
|
11
11
|
internal object Serialization {
|
|
12
12
|
|
|
13
|
+
fun deserializeDynamicPublishableKey(args: Serialized): WrapperResult<String> {
|
|
14
|
+
return parse(args) {
|
|
15
|
+
it.assertValue<String>(key = KEY_TYPE, value = TYPE_DYNAMIC_PUBLISHABLE_KEY)
|
|
16
|
+
it
|
|
17
|
+
.get<String>(KEY_VALUE)
|
|
18
|
+
.getOrThrow()
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
13
22
|
fun deserializeIsAvailable(isAvailable: Map<String, Any?>): WrapperResult<Boolean> {
|
|
14
23
|
return parse(isAvailable) {
|
|
15
24
|
it.assertValue<String>(key = KEY_TYPE, value = TYPE_IS_AVAILABLE)
|
|
@@ -66,6 +75,13 @@ internal object Serialization {
|
|
|
66
75
|
)
|
|
67
76
|
}
|
|
68
77
|
|
|
78
|
+
fun serializeDynamicPublishableKey(publishableKey: String): Serialized {
|
|
79
|
+
return mapOf(
|
|
80
|
+
KEY_TYPE to TYPE_DYNAMIC_PUBLISHABLE_KEY,
|
|
81
|
+
KEY_VALUE to publishableKey
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
69
85
|
fun serializeError(error: HyperTrack.Error): Map<String, String> {
|
|
70
86
|
return mapOf(
|
|
71
87
|
KEY_TYPE to TYPE_ERROR,
|
|
@@ -340,6 +356,7 @@ internal object Serialization {
|
|
|
340
356
|
private const val TYPE_RESULT_SUCCESS = "success"
|
|
341
357
|
|
|
342
358
|
private const val TYPE_DEVICE_ID = "deviceID"
|
|
359
|
+
private const val TYPE_DYNAMIC_PUBLISHABLE_KEY = "dynamicPublishableKey"
|
|
343
360
|
private const val TYPE_ERROR = "error"
|
|
344
361
|
private const val TYPE_IS_AVAILABLE = "isAvailable"
|
|
345
362
|
private const val TYPE_IS_TRACKING = "isTracking"
|
|
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
|
|
|
18
18
|
s.source_files = "ios/**/*.{h,m,mm,swift}"
|
|
19
19
|
|
|
20
20
|
s.dependency "React-Core"
|
|
21
|
-
s.dependency 'HyperTrack', '5.0
|
|
21
|
+
s.dependency 'HyperTrack', '5.3.0'
|
|
22
22
|
|
|
23
23
|
# Don't install the dependencies when we run `pod install` in the old architecture.
|
|
24
24
|
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
|
@@ -16,6 +16,9 @@ RCT_EXTERN_METHOD(addGeotag:(NSDictionary *)args
|
|
|
16
16
|
RCT_EXTERN_METHOD(getDeviceId:(RCTPromiseResolveBlock)resolve
|
|
17
17
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
18
18
|
|
|
19
|
+
RCT_EXTERN_METHOD(getDynamicPublishableKey:(RCTPromiseResolveBlock)resolve
|
|
20
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
21
|
+
|
|
19
22
|
RCT_EXTERN_METHOD(getErrors:(RCTPromiseResolveBlock)resolve
|
|
20
23
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
21
24
|
|
|
@@ -37,6 +40,10 @@ RCT_EXTERN_METHOD(getName:(RCTPromiseResolveBlock)resolve
|
|
|
37
40
|
RCT_EXTERN_METHOD(locate:(RCTPromiseResolveBlock)resolve
|
|
38
41
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
39
42
|
|
|
43
|
+
RCT_EXTERN_METHOD(setDynamicPublishableKey:(NSDictionary *)args
|
|
44
|
+
resolver:(RCTPromiseResolveBlock)resolve
|
|
45
|
+
rejecter:(RCTPromiseRejectBlock)reject)
|
|
46
|
+
|
|
40
47
|
RCT_EXTERN_METHOD(setIsAvailable:(NSDictionary *)args
|
|
41
48
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
42
49
|
rejecter:(RCTPromiseRejectBlock)reject)
|
|
@@ -84,6 +84,18 @@ class HyperTrackReactNativePlugin: RCTEventEmitter {
|
|
|
84
84
|
)
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
@objc func getDynamicPublishableKey(
|
|
88
|
+
_ resolve: RCTPromiseResolveBlock,
|
|
89
|
+
rejecter reject: RCTPromiseRejectBlock
|
|
90
|
+
) {
|
|
91
|
+
sendAsPromise(
|
|
92
|
+
.success(.dict(["dynamicPublishableKey": HyperTrack.dynamicPublishableKey])),
|
|
93
|
+
method: .getDynamicPublishableKey,
|
|
94
|
+
resolve,
|
|
95
|
+
reject
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
|
|
87
99
|
@objc func getErrors(
|
|
88
100
|
_ resolve: RCTPromiseResolveBlock,
|
|
89
101
|
rejecter reject: RCTPromiseRejectBlock
|
|
@@ -174,6 +186,21 @@ class HyperTrackReactNativePlugin: RCTEventEmitter {
|
|
|
174
186
|
)
|
|
175
187
|
}
|
|
176
188
|
|
|
189
|
+
@objc func setDynamicPublishableKey(
|
|
190
|
+
_ args: NSDictionary,
|
|
191
|
+
resolver resolve: RCTPromiseResolveBlock,
|
|
192
|
+
rejecter reject: RCTPromiseRejectBlock
|
|
193
|
+
) {
|
|
194
|
+
sendAsPromise(
|
|
195
|
+
hypertrack_sdk_react_native.setDynamicPublishableKey(
|
|
196
|
+
args as! [String: Any]
|
|
197
|
+
),
|
|
198
|
+
method: .setDynamicPublishableKey,
|
|
199
|
+
resolve,
|
|
200
|
+
reject
|
|
201
|
+
)
|
|
202
|
+
}
|
|
203
|
+
|
|
177
204
|
@objc func setIsAvailable(
|
|
178
205
|
_ args: NSDictionary,
|
|
179
206
|
resolver resolve: RCTPromiseResolveBlock,
|
|
@@ -31,6 +31,10 @@ func getDeviceID() -> Result<SuccessResult, FailureResult> {
|
|
|
31
31
|
.success(.dict(serializeDeviceID(HyperTrack.deviceID)))
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
func getDynamicPublishableKey() -> Result<SuccessResult, FailureResult> {
|
|
35
|
+
.success(.dict(serializeDynamicPublishableKey(HyperTrack.dynamicPublishableKey)))
|
|
36
|
+
}
|
|
37
|
+
|
|
34
38
|
func getErrors() -> Result<SuccessResult, FailureResult> {
|
|
35
39
|
.success(.array(serializeErrors(HyperTrack.errors)))
|
|
36
40
|
}
|
|
@@ -51,6 +55,13 @@ func getIsAvailable() -> Result<SuccessResult, FailureResult> {
|
|
|
51
55
|
.success(.dict(serializeIsAvailable(HyperTrack.isAvailable)))
|
|
52
56
|
}
|
|
53
57
|
|
|
58
|
+
func setDynamicPublishableKey(_ args: [String: Any]) -> Result<SuccessResult, FailureResult> {
|
|
59
|
+
deserializeDynamicPublishableKey(args).flatMap { (dynamicPublishableKey: String) in
|
|
60
|
+
HyperTrack.dynamicPublishableKey = dynamicPublishableKey
|
|
61
|
+
return .success(.void)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
54
65
|
func setIsAvailable(_ args: [String: Any]) -> Result<SuccessResult, FailureResult> {
|
|
55
66
|
deserializeIsAvailable(args).flatMap { (isAvailable: Bool) in
|
|
56
67
|
HyperTrack.isAvailable = isAvailable
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
enum SDKMethod: String {
|
|
2
2
|
case addGeotag
|
|
3
3
|
case getDeviceID
|
|
4
|
+
case getDynamicPublishableKey
|
|
4
5
|
case getErrors
|
|
5
6
|
case getIsAvailable
|
|
6
7
|
case getIsTracking
|
|
@@ -8,6 +9,7 @@ enum SDKMethod: String {
|
|
|
8
9
|
case getMetadata
|
|
9
10
|
case getName
|
|
10
11
|
case locate
|
|
12
|
+
case setDynamicPublishableKey
|
|
11
13
|
case setIsAvailable
|
|
12
14
|
case setIsTracking
|
|
13
15
|
case setMetadata
|
|
@@ -14,6 +14,18 @@ private let typeMetadata = "metadata"
|
|
|
14
14
|
private let typeName = "name"
|
|
15
15
|
private let typeSuccess = "success"
|
|
16
16
|
|
|
17
|
+
func deserializeDynamicPublishableKey(
|
|
18
|
+
_ args: [String: Any]
|
|
19
|
+
) -> Result<String, FailureResult> {
|
|
20
|
+
if args[keyType] as? String != "dynamicPublishableKey" {
|
|
21
|
+
return .failure(.fatalError(getParseError(args, key: keyType)))
|
|
22
|
+
}
|
|
23
|
+
guard let value = args[keyValue] as? String else {
|
|
24
|
+
return .failure(.fatalError(getParseError(args, key: keyValue)))
|
|
25
|
+
}
|
|
26
|
+
return .success(value)
|
|
27
|
+
}
|
|
28
|
+
|
|
17
29
|
func deserializeGeotagData(
|
|
18
30
|
_ args: [String: Any]
|
|
19
31
|
) -> Result<GeotagData, FailureResult> {
|
|
@@ -96,6 +108,13 @@ func serializeDeviceID(_ deviceID: String) -> [String: Any] {
|
|
|
96
108
|
]
|
|
97
109
|
}
|
|
98
110
|
|
|
111
|
+
func serializeDynamicPublishableKey(_ dynamicPublishableKey: String) -> [String: Any] {
|
|
112
|
+
return [
|
|
113
|
+
keyType: "dynamicPublishableKey",
|
|
114
|
+
keyValue: dynamicPublishableKey,
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
|
|
99
118
|
func serializeError(_ error: HyperTrack.Error) -> [String: Any] {
|
|
100
119
|
let value: String
|
|
101
120
|
switch error {
|
|
@@ -75,6 +75,9 @@ class HyperTrack {
|
|
|
75
75
|
static async getDeviceId() {
|
|
76
76
|
return HyperTrackSdk.getDeviceId().then(deviceId => deviceId.value);
|
|
77
77
|
}
|
|
78
|
+
static async getDynamicPublishableKey() {
|
|
79
|
+
return HyperTrackSdk.getDynamicPublishableKey().then(dynamicPublishableKey => this.deserializeDynamicPublishableKey(dynamicPublishableKey));
|
|
80
|
+
}
|
|
78
81
|
|
|
79
82
|
/**
|
|
80
83
|
* Returns a list of errors that blocks SDK from tracking
|
|
@@ -167,13 +170,19 @@ class HyperTrack {
|
|
|
167
170
|
HyperTrackSdk.locate();
|
|
168
171
|
return this.locateSubscription;
|
|
169
172
|
}
|
|
173
|
+
static setDynamicPublishableKey(dynamicPublishableKey) {
|
|
174
|
+
HyperTrackSdk.setDynamicPublishableKey({
|
|
175
|
+
type: 'dynamicPublishableKey',
|
|
176
|
+
value: dynamicPublishableKey
|
|
177
|
+
});
|
|
178
|
+
}
|
|
170
179
|
|
|
171
180
|
/**
|
|
172
181
|
* Sets the availability of the device for the Nearby search
|
|
173
182
|
*
|
|
174
183
|
* @param availability true when is available or false when unavailable
|
|
175
184
|
*/
|
|
176
|
-
static
|
|
185
|
+
static setIsAvailable(isAvailable) {
|
|
177
186
|
HyperTrackSdk.setIsAvailable({
|
|
178
187
|
type: 'isAvailable',
|
|
179
188
|
value: isAvailable
|
|
@@ -185,7 +194,7 @@ class HyperTrack {
|
|
|
185
194
|
*
|
|
186
195
|
* @param {boolean} isTracking
|
|
187
196
|
*/
|
|
188
|
-
static
|
|
197
|
+
static setIsTracking(isTracking) {
|
|
189
198
|
HyperTrackSdk.setIsTracking({
|
|
190
199
|
type: 'isTracking',
|
|
191
200
|
value: isTracking
|
|
@@ -197,7 +206,7 @@ class HyperTrack {
|
|
|
197
206
|
*
|
|
198
207
|
* @param {Object} data - Metadata JSON
|
|
199
208
|
*/
|
|
200
|
-
static
|
|
209
|
+
static setMetadata(data) {
|
|
201
210
|
HyperTrackSdk.setMetadata({
|
|
202
211
|
type: 'metadata',
|
|
203
212
|
value: data
|
|
@@ -209,7 +218,7 @@ class HyperTrack {
|
|
|
209
218
|
*
|
|
210
219
|
* @param {string} name
|
|
211
220
|
*/
|
|
212
|
-
static
|
|
221
|
+
static setName(name) {
|
|
213
222
|
HyperTrackSdk.setName({
|
|
214
223
|
type: 'name',
|
|
215
224
|
value: name
|
|
@@ -306,6 +315,14 @@ class HyperTrack {
|
|
|
306
315
|
});
|
|
307
316
|
}
|
|
308
317
|
|
|
318
|
+
/** @ignore */
|
|
319
|
+
static deserializeDynamicPublishableKey(dynamicPublishableKey) {
|
|
320
|
+
if (dynamicPublishableKey.type != 'dynamicPublishableKey') {
|
|
321
|
+
throw new Error(`Invalid dynamicPublishableKey: ${JSON.stringify(dynamicPublishableKey)}`);
|
|
322
|
+
}
|
|
323
|
+
return dynamicPublishableKey.value;
|
|
324
|
+
}
|
|
325
|
+
|
|
309
326
|
/** @ignore */
|
|
310
327
|
static deserializeHyperTrackErrors(errors) {
|
|
311
328
|
let res = errors.map(error => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_HyperTrackError","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","addGeotag","args","length","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","type","latitude","longitude","deserializeLocationWithDeviationResponse","getDeviceId","deviceId","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","keys","HyperTrackError","find","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","JSON","stringify","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag\n *\n * @param {Object} data - Geotad 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 * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotad 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 (args.length === 1 && typeof args[0] === '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 } else if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n let expectedLocation = args[1] as Location;\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: expectedLocation.latitude,\n longitude: expectedLocation.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 } else {\n throw new Error('Invalid arguments');\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 /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n static async 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 async setIsTracking(isTracking: boolean): Promise<void> {\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 async 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 async setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type != 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type != 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type != 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude == 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude == 'number'\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_HyperTrackError","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","addGeotag","args","length","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","type","latitude","longitude","deserializeLocationWithDeviationResponse","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","JSON","stringify","res","map","error","keys","HyperTrackError","find","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag\n *\n * @param {Object} data - Geotad 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 * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotad 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 (args.length === 1 && typeof args[0] === '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 } else if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n let expectedLocation = args[1] as Location;\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: expectedLocation.latitude,\n longitude: expectedLocation.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 } else {\n throw new Error('Invalid arguments');\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 * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type != 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type != 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type != 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type != 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude == 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude == 'number'\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["DynamicPublishableKey.ts"],"sourcesContent":["export type DynamicPublishableKey = {\n type: 'dynamicPublishableKey';\n value: string;\n};\n"],"mappings":""}
|
|
@@ -69,6 +69,9 @@ export default class HyperTrack {
|
|
|
69
69
|
static async getDeviceId() {
|
|
70
70
|
return HyperTrackSdk.getDeviceId().then(deviceId => deviceId.value);
|
|
71
71
|
}
|
|
72
|
+
static async getDynamicPublishableKey() {
|
|
73
|
+
return HyperTrackSdk.getDynamicPublishableKey().then(dynamicPublishableKey => this.deserializeDynamicPublishableKey(dynamicPublishableKey));
|
|
74
|
+
}
|
|
72
75
|
|
|
73
76
|
/**
|
|
74
77
|
* Returns a list of errors that blocks SDK from tracking
|
|
@@ -161,13 +164,19 @@ export default class HyperTrack {
|
|
|
161
164
|
HyperTrackSdk.locate();
|
|
162
165
|
return this.locateSubscription;
|
|
163
166
|
}
|
|
167
|
+
static setDynamicPublishableKey(dynamicPublishableKey) {
|
|
168
|
+
HyperTrackSdk.setDynamicPublishableKey({
|
|
169
|
+
type: 'dynamicPublishableKey',
|
|
170
|
+
value: dynamicPublishableKey
|
|
171
|
+
});
|
|
172
|
+
}
|
|
164
173
|
|
|
165
174
|
/**
|
|
166
175
|
* Sets the availability of the device for the Nearby search
|
|
167
176
|
*
|
|
168
177
|
* @param availability true when is available or false when unavailable
|
|
169
178
|
*/
|
|
170
|
-
static
|
|
179
|
+
static setIsAvailable(isAvailable) {
|
|
171
180
|
HyperTrackSdk.setIsAvailable({
|
|
172
181
|
type: 'isAvailable',
|
|
173
182
|
value: isAvailable
|
|
@@ -179,7 +188,7 @@ export default class HyperTrack {
|
|
|
179
188
|
*
|
|
180
189
|
* @param {boolean} isTracking
|
|
181
190
|
*/
|
|
182
|
-
static
|
|
191
|
+
static setIsTracking(isTracking) {
|
|
183
192
|
HyperTrackSdk.setIsTracking({
|
|
184
193
|
type: 'isTracking',
|
|
185
194
|
value: isTracking
|
|
@@ -191,7 +200,7 @@ export default class HyperTrack {
|
|
|
191
200
|
*
|
|
192
201
|
* @param {Object} data - Metadata JSON
|
|
193
202
|
*/
|
|
194
|
-
static
|
|
203
|
+
static setMetadata(data) {
|
|
195
204
|
HyperTrackSdk.setMetadata({
|
|
196
205
|
type: 'metadata',
|
|
197
206
|
value: data
|
|
@@ -203,7 +212,7 @@ export default class HyperTrack {
|
|
|
203
212
|
*
|
|
204
213
|
* @param {string} name
|
|
205
214
|
*/
|
|
206
|
-
static
|
|
215
|
+
static setName(name) {
|
|
207
216
|
HyperTrackSdk.setName({
|
|
208
217
|
type: 'name',
|
|
209
218
|
value: name
|
|
@@ -300,6 +309,14 @@ export default class HyperTrack {
|
|
|
300
309
|
});
|
|
301
310
|
}
|
|
302
311
|
|
|
312
|
+
/** @ignore */
|
|
313
|
+
static deserializeDynamicPublishableKey(dynamicPublishableKey) {
|
|
314
|
+
if (dynamicPublishableKey.type != 'dynamicPublishableKey') {
|
|
315
|
+
throw new Error(`Invalid dynamicPublishableKey: ${JSON.stringify(dynamicPublishableKey)}`);
|
|
316
|
+
}
|
|
317
|
+
return dynamicPublishableKey.value;
|
|
318
|
+
}
|
|
319
|
+
|
|
303
320
|
/** @ignore */
|
|
304
321
|
static deserializeHyperTrackErrors(errors) {
|
|
305
322
|
let res = errors.map(error => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","addGeotag","args","length","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","type","value","latitude","longitude","deserializeLocationWithDeviationResponse","getDeviceId","deviceId","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","Object","keys","find","key","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","JSON","stringify","obj","_defineProperty"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag\n *\n * @param {Object} data - Geotad 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 * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotad 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 (args.length === 1 && typeof args[0] === '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 } else if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n let expectedLocation = args[1] as Location;\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: expectedLocation.latitude,\n longitude: expectedLocation.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 } else {\n throw new Error('Invalid arguments');\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 /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n static async 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 async setIsTracking(isTracking: boolean): Promise<void> {\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 async 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 async setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type != 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type != 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type != 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude == 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude == 'number'\n );\n }\n}\n"],"mappings":"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WA,CAACtC,IAAY,EAAE;IACrCV,aAAa,CAACgD,WAAW,CAAC;MACxB/B,IAAI,EAAE,UAAU;MAChBC,KAAK,EAAER;IACT,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;EACE,aAAauC,OAAOA,CAACb,IAAY,EAAE;IACjCpC,aAAa,CAACiD,OAAO,CAAC;MACpBhC,IAAI,EAAE,MAAM;MACZC,KAAK,EAAEkB;IACT,CAAS,CAAC;EACZ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOc,iBAAiBA,CACtBC,QAA6C,EACxB;IACrB,OAAO9C,YAAY,CAACsC,WAAW,CAC7BpD,YAAY,EACX6D,SAAoC,IAAK;MACxCD,QAAQ,CAAC,IAAI,CAACzB,2BAA2B,CAAC0B,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,OAAO9C,YAAY,CAACsC,WAAW,CAC7BnD,kBAAkB,EACjBoC,WAAwB,IAAK;MAC5BuB,QAAQ,CAACvB,WAAW,CAACV,KAAK,CAAC;IAC7B,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOoC,qBAAqBA,CAC1BH,QAAuC,EAClB;IACrB,OAAO9C,YAAY,CAACsC,WAAW,CAC7BlD,iBAAiB,EAChBqC,UAAsB,IAAK;MAC1BqB,QAAQ,CAACrB,UAAU,CAACZ,KAAK,CAAC;IAC5B,CACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOqC,mBAAmBA,CACxBJ,QAA6D,EAC7D;IACA,OAAO9C,YAAY,CAACsC,WAAW,CAC7BhD,cAAc,EACbiD,QAAyD,IAAK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"}
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","addGeotag","args","length","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","type","value","latitude","longitude","deserializeLocationWithDeviationResponse","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","JSON","stringify","res","map","error","Object","keys","find","key","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","obj","_defineProperty"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag\n *\n * @param {Object} data - Geotad 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 * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotad 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 (args.length === 1 && typeof args[0] === '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 } else if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n let expectedLocation = args[1] as Location;\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: expectedLocation.latitude,\n longitude: expectedLocation.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 } else {\n throw new Error('Invalid arguments');\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 * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type != 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type != 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type != 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type != 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude == 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude == 'number'\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["DynamicPublishableKey.ts"],"sourcesContent":["export type DynamicPublishableKey = {\n type: 'dynamicPublishableKey';\n value: string;\n};\n"],"mappings":""}
|
|
@@ -27,6 +27,7 @@ export default class HyperTrack {
|
|
|
27
27
|
* @returns {string} Device ID
|
|
28
28
|
*/
|
|
29
29
|
static getDeviceId(): Promise<string>;
|
|
30
|
+
static getDynamicPublishableKey(): Promise<string>;
|
|
30
31
|
/**
|
|
31
32
|
* Returns a list of errors that blocks SDK from tracking
|
|
32
33
|
*
|
|
@@ -84,30 +85,31 @@ export default class HyperTrack {
|
|
|
84
85
|
* ```
|
|
85
86
|
*/
|
|
86
87
|
static locate(callback: (location: Result<Location, HyperTrackError[]>) => void): EmitterSubscription;
|
|
88
|
+
static setDynamicPublishableKey(dynamicPublishableKey: string): void;
|
|
87
89
|
/**
|
|
88
90
|
* Sets the availability of the device for the Nearby search
|
|
89
91
|
*
|
|
90
92
|
* @param availability true when is available or false when unavailable
|
|
91
93
|
*/
|
|
92
|
-
static setIsAvailable(isAvailable: boolean):
|
|
94
|
+
static setIsAvailable(isAvailable: boolean): void;
|
|
93
95
|
/**
|
|
94
96
|
* Sets the tracking intent for the device
|
|
95
97
|
*
|
|
96
98
|
* @param {boolean} isTracking
|
|
97
99
|
*/
|
|
98
|
-
static setIsTracking(isTracking: boolean):
|
|
100
|
+
static setIsTracking(isTracking: boolean): void;
|
|
99
101
|
/**
|
|
100
102
|
* Sets the metadata for the device
|
|
101
103
|
*
|
|
102
104
|
* @param {Object} data - Metadata JSON
|
|
103
105
|
*/
|
|
104
|
-
static setMetadata(data: Object):
|
|
106
|
+
static setMetadata(data: Object): void;
|
|
105
107
|
/**
|
|
106
108
|
* Sets the name for the device
|
|
107
109
|
*
|
|
108
110
|
* @param {string} name
|
|
109
111
|
*/
|
|
110
|
-
static setName(name: string):
|
|
112
|
+
static setName(name: string): void;
|
|
111
113
|
/**
|
|
112
114
|
* Subscribe to tracking errors
|
|
113
115
|
*
|
|
@@ -179,6 +181,8 @@ export default class HyperTrack {
|
|
|
179
181
|
*/
|
|
180
182
|
static subscribeToLocation(listener: (location: Result<Location, LocationError>) => void): EmitterSubscription;
|
|
181
183
|
/** @ignore */
|
|
184
|
+
private static deserializeDynamicPublishableKey;
|
|
185
|
+
/** @ignore */
|
|
182
186
|
private static deserializeHyperTrackErrors;
|
|
183
187
|
/** @ignore */
|
|
184
188
|
private static deserializeLocateResponse;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hypertrack-sdk-react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.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",
|
|
@@ -19,6 +19,7 @@ import type { Result } from './data_types/Result';
|
|
|
19
19
|
import type { LocationInternal } from './data_types/internal/LocationInternal';
|
|
20
20
|
import type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';
|
|
21
21
|
import type { Metadata } from './data_types/internal/Metadata';
|
|
22
|
+
import type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';
|
|
22
23
|
|
|
23
24
|
const EVENT_ERRORS = 'errors';
|
|
24
25
|
const EVENT_IS_AVAILABLE = 'isAvailable';
|
|
@@ -125,6 +126,13 @@ export default class HyperTrack {
|
|
|
125
126
|
);
|
|
126
127
|
}
|
|
127
128
|
|
|
129
|
+
static async getDynamicPublishableKey(): Promise<string> {
|
|
130
|
+
return HyperTrackSdk.getDynamicPublishableKey().then(
|
|
131
|
+
(dynamicPublishableKey: DynamicPublishableKey) =>
|
|
132
|
+
this.deserializeDynamicPublishableKey(dynamicPublishableKey)
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
|
|
128
136
|
/**
|
|
129
137
|
* Returns a list of errors that blocks SDK from tracking
|
|
130
138
|
*
|
|
@@ -229,12 +237,19 @@ export default class HyperTrack {
|
|
|
229
237
|
return this.locateSubscription;
|
|
230
238
|
}
|
|
231
239
|
|
|
240
|
+
static setDynamicPublishableKey(dynamicPublishableKey: string) {
|
|
241
|
+
HyperTrackSdk.setDynamicPublishableKey({
|
|
242
|
+
type: 'dynamicPublishableKey',
|
|
243
|
+
value: dynamicPublishableKey,
|
|
244
|
+
} as DynamicPublishableKey);
|
|
245
|
+
}
|
|
246
|
+
|
|
232
247
|
/**
|
|
233
248
|
* Sets the availability of the device for the Nearby search
|
|
234
249
|
*
|
|
235
250
|
* @param availability true when is available or false when unavailable
|
|
236
251
|
*/
|
|
237
|
-
static
|
|
252
|
+
static setIsAvailable(isAvailable: boolean) {
|
|
238
253
|
HyperTrackSdk.setIsAvailable({
|
|
239
254
|
type: 'isAvailable',
|
|
240
255
|
value: isAvailable,
|
|
@@ -246,7 +261,7 @@ export default class HyperTrack {
|
|
|
246
261
|
*
|
|
247
262
|
* @param {boolean} isTracking
|
|
248
263
|
*/
|
|
249
|
-
static
|
|
264
|
+
static setIsTracking(isTracking: boolean) {
|
|
250
265
|
HyperTrackSdk.setIsTracking({
|
|
251
266
|
type: 'isTracking',
|
|
252
267
|
value: isTracking,
|
|
@@ -258,7 +273,7 @@ export default class HyperTrack {
|
|
|
258
273
|
*
|
|
259
274
|
* @param {Object} data - Metadata JSON
|
|
260
275
|
*/
|
|
261
|
-
static
|
|
276
|
+
static setMetadata(data: Object) {
|
|
262
277
|
HyperTrackSdk.setMetadata({
|
|
263
278
|
type: 'metadata',
|
|
264
279
|
value: data,
|
|
@@ -270,7 +285,7 @@ export default class HyperTrack {
|
|
|
270
285
|
*
|
|
271
286
|
* @param {string} name
|
|
272
287
|
*/
|
|
273
|
-
static
|
|
288
|
+
static setName(name: string) {
|
|
274
289
|
HyperTrackSdk.setName({
|
|
275
290
|
type: 'name',
|
|
276
291
|
value: name,
|
|
@@ -387,6 +402,20 @@ export default class HyperTrack {
|
|
|
387
402
|
);
|
|
388
403
|
}
|
|
389
404
|
|
|
405
|
+
/** @ignore */
|
|
406
|
+
private static deserializeDynamicPublishableKey(
|
|
407
|
+
dynamicPublishableKey: DynamicPublishableKey
|
|
408
|
+
): string {
|
|
409
|
+
if (dynamicPublishableKey.type != 'dynamicPublishableKey') {
|
|
410
|
+
throw new Error(
|
|
411
|
+
`Invalid dynamicPublishableKey: ${JSON.stringify(
|
|
412
|
+
dynamicPublishableKey
|
|
413
|
+
)}`
|
|
414
|
+
);
|
|
415
|
+
}
|
|
416
|
+
return dynamicPublishableKey.value;
|
|
417
|
+
}
|
|
418
|
+
|
|
390
419
|
/** @ignore */
|
|
391
420
|
private static deserializeHyperTrackErrors(
|
|
392
421
|
errors: HyperTrackErrorInternal[]
|