hypertrack-sdk-react-native 10.0.3 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/README.md +2 -2
  4. package/android/build.gradle +5 -1
  5. package/android/gradle.properties +1 -1
  6. package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +80 -115
  7. package/android/src/main/java/com/reactnativehypertracksdk/ReactNativeSerialization.kt +23 -3
  8. package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +87 -220
  9. package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +11 -9
  10. package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +216 -132
  11. package/android/src/main/java/com/reactnativehypertracksdk/common/{Result.kt → WrapperResult.kt} +9 -7
  12. package/hypertrack-sdk-react-native.podspec +1 -1
  13. package/ios/HyperTrackReactNativePlugin.m +13 -11
  14. package/ios/HyperTrackReactNativePlugin.swift +141 -114
  15. package/ios/common/DictionaryDecoder.swift +5 -5
  16. package/ios/common/HyperTrackSDKWrapper.swift +46 -80
  17. package/ios/common/SDKMethod.swift +13 -12
  18. package/ios/common/Serialization.swift +200 -245
  19. package/lib/commonjs/HyperTrack/HyperTrack.js +224 -124
  20. package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
  21. package/lib/commonjs/HyperTrack/data_types/HyperTrackError.js +13 -17
  22. package/lib/commonjs/HyperTrack/data_types/HyperTrackError.js.map +1 -1
  23. package/lib/commonjs/HyperTrack/data_types/internal/HyperTrackErrorInternal.js.map +1 -1
  24. package/lib/commonjs/HyperTrack/data_types/internal/Metadata.js +2 -0
  25. package/lib/commonjs/HyperTrack/data_types/internal/Metadata.js.map +1 -0
  26. package/lib/commonjs/HyperTrack/data_types/internal/Name.js +2 -0
  27. package/lib/commonjs/HyperTrack/data_types/internal/Name.js.map +1 -0
  28. package/lib/commonjs/index.js +0 -7
  29. package/lib/commonjs/index.js.map +1 -1
  30. package/lib/module/HyperTrack/HyperTrack.js +224 -124
  31. package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
  32. package/lib/module/HyperTrack/data_types/HyperTrackError.js +13 -17
  33. package/lib/module/HyperTrack/data_types/HyperTrackError.js.map +1 -1
  34. package/lib/module/HyperTrack/data_types/internal/HyperTrackErrorInternal.js.map +1 -1
  35. package/lib/module/HyperTrack/data_types/internal/Metadata.js +2 -0
  36. package/lib/module/HyperTrack/data_types/internal/Metadata.js.map +1 -0
  37. package/lib/module/HyperTrack/data_types/internal/Name.js +2 -0
  38. package/lib/module/HyperTrack/data_types/internal/Name.js.map +1 -0
  39. package/lib/module/index.js +0 -1
  40. package/lib/module/index.js.map +1 -1
  41. package/lib/typescript/HyperTrack/HyperTrack.d.ts +106 -54
  42. package/lib/typescript/HyperTrack/data_types/HyperTrackError.d.ts +59 -17
  43. package/lib/typescript/HyperTrack/data_types/internal/HyperTrackErrorInternal.d.ts +1 -1
  44. package/lib/typescript/HyperTrack/data_types/internal/Metadata.d.ts +4 -0
  45. package/lib/typescript/HyperTrack/data_types/internal/Name.d.ts +7 -0
  46. package/lib/typescript/index.d.ts +0 -1
  47. package/package.json +1 -1
  48. package/src/HyperTrack/HyperTrack.ts +281 -161
  49. package/src/HyperTrack/data_types/HyperTrackError.ts +73 -18
  50. package/src/HyperTrack/data_types/internal/HyperTrackErrorInternal.ts +3 -3
  51. package/src/HyperTrack/data_types/internal/Metadata.ts +4 -0
  52. package/src/HyperTrack/data_types/internal/Name.ts +7 -0
  53. package/src/index.tsx +0 -1
  54. package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackError.kt +0 -28
  55. package/android/src/main/java/com/reactnativehypertracksdk/common/LocationError.kt +0 -9
  56. package/android/src/main/java/com/reactnativehypertracksdk/common/SdkInitParams.kt +0 -44
  57. package/ios/common/HyperTrackError.swift +0 -20
  58. package/ios/common/SDKInitParams.swift +0 -13
  59. package/lib/commonjs/HyperTrack/data_types/SdkInitParams.js +0 -2
  60. package/lib/commonjs/HyperTrack/data_types/SdkInitParams.js.map +0 -1
  61. package/lib/commonjs/HyperTrack/data_types/internal/DeviceName.js +0 -2
  62. package/lib/commonjs/HyperTrack/data_types/internal/DeviceName.js.map +0 -1
  63. package/lib/module/HyperTrack/data_types/SdkInitParams.js +0 -2
  64. package/lib/module/HyperTrack/data_types/SdkInitParams.js.map +0 -1
  65. package/lib/module/HyperTrack/data_types/internal/DeviceName.js +0 -2
  66. package/lib/module/HyperTrack/data_types/internal/DeviceName.js.map +0 -1
  67. package/lib/typescript/HyperTrack/data_types/SdkInitParams.d.ts +0 -25
  68. package/lib/typescript/HyperTrack/data_types/internal/DeviceName.d.ts +0 -4
  69. package/src/HyperTrack/data_types/SdkInitParams.ts +0 -28
  70. package/src/HyperTrack/data_types/internal/DeviceName.ts +0 -4
@@ -6,9 +6,14 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _HyperTrackError = require("./data_types/HyperTrackError");
9
- const EVENT_TRACKING = 'onTrackingChanged';
10
- const EVENT_AVAILABILITY = 'onAvailabilityChanged';
11
- const EVENT_ERROR = 'onError';
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
12
+ const EVENT_ERRORS = 'errors';
13
+ const EVENT_IS_AVAILABLE = 'isAvailable';
14
+ const EVENT_IS_TRACKING = 'isTracking';
15
+ const EVENT_LOCATE = 'locate';
16
+ const EVENT_LOCATION = 'location';
12
17
  const LINKING_ERROR = `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
13
18
  ios: "- You have run 'pod install'\n",
14
19
  default: ''
@@ -20,162 +25,197 @@ const HyperTrackSdk = _reactNative.NativeModules.HyperTrackReactNativePlugin ? _
20
25
  });
21
26
  const EventEmitter = new _reactNative.NativeEventEmitter(HyperTrackSdk);
22
27
  class HyperTrack {
23
- constructor() {
24
- return this;
25
- }
28
+ /**
29
+ * Adds a new geotag
30
+ *
31
+ * @param {Object} data - Geotad data JSON
32
+ * @returns current location if success or LocationError if failure
33
+ */
26
34
 
27
35
  /**
28
- * Creates an SDK instance
36
+ * Adds a new geotag with expected location
29
37
  *
30
- * @param publishableKey publishable key provided in HyperTrack’s dashboard setup page
31
- * @param sdkInitParams
32
- * @returns HyperTrack instance
38
+ * @param {Object} data - Geotad data JSON
39
+ * @param {Location} expectedLocation - Expected location
40
+ * @returns location with deviation if success or LocationError if failure
33
41
  */
34
- static async initialize(publishableKey) {
35
- let sdkInitParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
36
- try {
37
- await HyperTrackSdk.initializeSdk({
38
- publishableKey,
39
- loggingEnabled: sdkInitParams.loggingEnabled ?? false,
40
- allowMockLocations: sdkInitParams.allowMockLocations ?? false,
41
- requireBackgroundTrackingPermission: sdkInitParams.requireBackgroundTrackingPermission ?? false,
42
- automaticallyRequestPermissions: sdkInitParams.automaticallyRequestPermissions ?? true
42
+
43
+ static async addGeotag() {
44
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
45
+ args[_key] = arguments[_key];
46
+ }
47
+ if (args.length === 1 && typeof args[0] === 'object') {
48
+ return HyperTrackSdk.addGeotag({
49
+ data: args[0],
50
+ expectedLocation: undefined
51
+ }).then(locationResponse => {
52
+ return this.deserializeLocationResponse(locationResponse);
43
53
  });
44
- return new HyperTrack();
45
- } catch (error) {
46
- throw error;
54
+ } else if (args.length === 2 && typeof args[0] === 'object' && HyperTrack.isLocation(args[1])) {
55
+ let expectedLocation = args[1];
56
+ return HyperTrackSdk.addGeotag({
57
+ data: args[0],
58
+ expectedLocation: {
59
+ type: 'location',
60
+ value: {
61
+ latitude: expectedLocation.latitude,
62
+ longitude: expectedLocation.longitude
63
+ }
64
+ }
65
+ }).then(locationResponse => {
66
+ return this.deserializeLocationWithDeviationResponse(locationResponse);
67
+ });
68
+ } else {
69
+ throw new Error('Invalid arguments');
47
70
  }
48
71
  }
49
72
 
50
73
  /**
51
74
  * Returns a string that is used to uniquely identify the device
75
+ *
76
+ * @returns {string} Device ID
52
77
  */
53
- getDeviceId() {
78
+ static async getDeviceId() {
54
79
  return HyperTrackSdk.getDeviceId().then(deviceId => deviceId.value);
55
80
  }
56
81
 
57
82
  /**
58
- * Reflects availability of the device for the Nearby search
83
+ * Returns a list of errors that blocks SDK from tracking
59
84
  *
60
- * @returns true when is available or false when unavailable
85
+ * @returns {HyperTrackError[]} List of errors
61
86
  */
62
- isAvailable() {
63
- return HyperTrackSdk.isAvailable().then(isAvailable => isAvailable.value);
87
+ static async getErrors() {
88
+ return HyperTrackSdk.getErrors().then(errors => {
89
+ return this.deserializeHyperTrackErrors(errors);
90
+ });
64
91
  }
65
92
 
66
93
  /**
67
- * Sets the availability of the device for the Nearby search
94
+ * Reflects availability of the device for the Nearby search
68
95
  *
69
- * @param availability true when is available or false when unavailable
96
+ * @returns true when is available or false when unavailable
70
97
  */
71
- setAvailability(isAvailable) {
72
- HyperTrackSdk.setAvailability({
73
- type: 'isAvailable',
74
- value: isAvailable
75
- });
98
+ static async getIsAvailable() {
99
+ return HyperTrackSdk.getIsAvailable().then(isAvailable => isAvailable.value);
76
100
  }
77
101
 
78
102
  /**
79
103
  * Reflects the tracking intent for the device
80
104
  *
81
- * @return {boolean} Whether the user's movement data is getting tracked or not.
105
+ * @returns {boolean} Whether the user's movement data is getting tracked or not.
82
106
  */
83
- isTracking() {
84
- return HyperTrackSdk.isTracking().then(isTracking => isTracking.value);
107
+ static async getIsTracking() {
108
+ return HyperTrackSdk.getIsTracking().then(isTracking => isTracking.value);
85
109
  }
86
110
 
87
111
  /**
88
- * Syncs the device state with the HyperTrack servers
112
+ * Reflects the current location of the user or an outage reason
89
113
  */
90
- sync() {
91
- HyperTrackSdk.sync();
114
+ static async getLocation() {
115
+ return HyperTrackSdk.getLocation().then(locationResponse => {
116
+ return this.deserializeLocationResponse(locationResponse);
117
+ });
92
118
  }
93
119
 
94
120
  /**
95
- * Expresses an intent to start location tracking for the device
121
+ * Gets the metadata that is set for the device
122
+ *
123
+ * @returns {Object} Metadata JSON
96
124
  */
97
- startTracking() {
98
- HyperTrackSdk.startTracking();
125
+ static async getMetadata() {
126
+ return HyperTrackSdk.getMetadata().then(metadata => {
127
+ return this.deserializeMetadata(metadata);
128
+ });
99
129
  }
100
130
 
101
131
  /**
102
- * Stops location tracking immediately
132
+ * Gets the name that is set for the device
133
+ *
134
+ * @returns {string} Device name
103
135
  */
104
- stopTracking() {
105
- HyperTrackSdk.stopTracking();
136
+ static async getName() {
137
+ return HyperTrackSdk.getName().then(name => {
138
+ return this.deserializeName(name);
139
+ });
106
140
  }
107
141
 
108
142
  /**
109
- * Reflects the current location of the user or an outage reason
143
+ * Requests one-time location update and returns the location once it is available, or error.
144
+ *
145
+ * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription
146
+ * will be automaticaly removed.
147
+ *
148
+ * This method will start location tracking if called, and will stop it when the location is received or
149
+ * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),
150
+ * the tracking will not be stopped.
151
+ *
152
+ * @param callback
153
+ * @returns EmitterSubscription
154
+ * @example ```js
155
+ * const subscription = HyperTrack.locate(location => {
156
+ * ...
157
+ * })
158
+ *
159
+ * // to unsubscribe
160
+ * subscription.remove()
161
+ * ```
110
162
  */
111
- getLocation() {
112
- return HyperTrackSdk.getLocation().then(locationResponse => {
113
- return this.deserializeLocationResponse(locationResponse);
163
+ static locate(callback) {
164
+ var _this$locateSubscript;
165
+ (_this$locateSubscript = this.locateSubscription) === null || _this$locateSubscript === void 0 ? void 0 : _this$locateSubscript.remove();
166
+ this.locateSubscription = EventEmitter.addListener(EVENT_LOCATE, location => {
167
+ callback(this.deserializeLocateResponse(location));
114
168
  });
169
+ HyperTrackSdk.locate();
170
+ return this.locateSubscription;
115
171
  }
116
172
 
117
173
  /**
118
- * Sets the name for the device
119
- * @param {string} name
174
+ * Sets the availability of the device for the Nearby search
175
+ *
176
+ * @param availability true when is available or false when unavailable
120
177
  */
121
- setName(name) {
122
- HyperTrackSdk.setName({
123
- type: 'deviceName',
124
- value: name
178
+ static async setIsAvailable(isAvailable) {
179
+ HyperTrackSdk.setIsAvailable({
180
+ type: 'isAvailable',
181
+ value: isAvailable
125
182
  });
126
183
  }
127
184
 
128
185
  /**
129
- * Sets the metadata for the device
130
- * @param {Object} data - Metadata JSON
186
+ * Sets the tracking intent for the device
187
+ *
188
+ * @param {boolean} isTracking
131
189
  */
132
- setMetadata(data) {
133
- HyperTrackSdk.setMetadata(data);
190
+ static async setIsTracking(isTracking) {
191
+ HyperTrackSdk.setIsTracking({
192
+ type: 'isTracking',
193
+ value: isTracking
194
+ });
134
195
  }
135
196
 
136
197
  /**
137
- * Adds a new geotag
198
+ * Sets the metadata for the device
138
199
  *
139
- * @param {Object} data - Geotad data JSON
140
- * @returns current location if success or LocationError if failure
200
+ * @param {Object} data - Metadata JSON
141
201
  */
202
+ static async setMetadata(data) {
203
+ HyperTrackSdk.setMetadata({
204
+ type: 'metadata',
205
+ value: data
206
+ });
207
+ }
142
208
 
143
209
  /**
144
- * Adds a new geotag with expected location
210
+ * Sets the name for the device
145
211
  *
146
- * @param {Object} data - Geotad data JSON
147
- * @param {Location} expectedLocation - Expected location
148
- * @returns location with deviation if success or LocationError if failure
212
+ * @param {string} name
149
213
  */
150
-
151
- async addGeotag() {
152
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
153
- args[_key] = arguments[_key];
154
- }
155
- if (args.length === 1 && typeof args[0] === 'object') {
156
- return HyperTrackSdk.addGeotag({
157
- data: args[0],
158
- expectedLocation: undefined
159
- }).then(locationResponse => {
160
- return this.deserializeLocationResponse(locationResponse);
161
- });
162
- } else if (args.length === 2 && typeof args[0] === 'object' && this.isLocation(args[1])) {
163
- let expectedLocation = args[1];
164
- return HyperTrackSdk.addGeotag({
165
- data: args[0],
166
- expectedLocation: {
167
- type: 'location',
168
- value: {
169
- latitude: expectedLocation.latitude,
170
- longitude: expectedLocation.longitude
171
- }
172
- }
173
- }).then(locationResponse => {
174
- return this.deserializeLocationWithDeviationResponse(locationResponse);
175
- });
176
- } else {
177
- throw new Error('Invalid arguments');
178
- }
214
+ static async setName(name) {
215
+ HyperTrackSdk.setName({
216
+ type: 'name',
217
+ value: name
218
+ });
179
219
  }
180
220
 
181
221
  /**
@@ -195,12 +235,35 @@ class HyperTrack {
195
235
  * subscription.remove()
196
236
  * ```
197
237
  */
198
- subscribeToErrors(listener) {
199
- return EventEmitter.addListener(EVENT_ERROR, rawErrors => {
238
+ static subscribeToErrors(listener) {
239
+ return EventEmitter.addListener(EVENT_ERRORS, rawErrors => {
200
240
  listener(this.deserializeHyperTrackErrors(rawErrors));
201
241
  });
202
242
  }
203
243
 
244
+ /**
245
+ * Subscribe to availability changes
246
+ *
247
+ * @param listener
248
+ * @returns EmitterSubscription
249
+ * @example
250
+ * ```js
251
+ * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {
252
+ * if (isAvailable) {
253
+ * // ... ready to go
254
+ * }
255
+ * })
256
+ *
257
+ * // later, to stop listening
258
+ * subscription.remove()
259
+ * ```
260
+ */
261
+ static subscribeToIsAvailable(listener) {
262
+ return EventEmitter.addListener(EVENT_IS_AVAILABLE, isAvailable => {
263
+ listener(isAvailable.value);
264
+ });
265
+ }
266
+
204
267
  /**
205
268
  * Subscribe to tracking intent changes
206
269
  *
@@ -208,7 +271,7 @@ class HyperTrack {
208
271
  * @returns EmitterSubscription
209
272
  * @example
210
273
  * ```js
211
- * const subscription = HyperTrack.subscribeToTracking(isTracking => {
274
+ * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {
212
275
  * if (isTracking) {
213
276
  * // ... ready to go
214
277
  * }
@@ -218,42 +281,76 @@ class HyperTrack {
218
281
  * subscription.remove()
219
282
  * ```
220
283
  */
221
- subscribeToTracking(listener) {
222
- return EventEmitter.addListener(EVENT_TRACKING, isTracking => {
284
+ static subscribeToIsTracking(listener) {
285
+ return EventEmitter.addListener(EVENT_IS_TRACKING, isTracking => {
223
286
  listener(isTracking.value);
224
287
  });
225
288
  }
226
289
 
227
290
  /**
228
- * Subscribe to availability changes
291
+ * Subscribe to location changes
229
292
  *
230
293
  * @param listener
231
294
  * @returns EmitterSubscription
232
295
  * @example
233
296
  * ```js
234
- * const subscription = HyperTrack.subscribeToAvailability(isAvailable => {
235
- * if (isAvailable) {
236
- * // ... ready to go
237
- * }
297
+ * const subscription = HyperTrack.subscribeToLocation(location => {
298
+ * ...
238
299
  * })
239
300
  *
240
301
  * // later, to stop listening
241
302
  * subscription.remove()
242
303
  * ```
243
304
  */
244
- subscribeToAvailability(listener) {
245
- return EventEmitter.addListener(EVENT_AVAILABILITY, isAvailable => {
246
- listener(isAvailable.value);
305
+ static subscribeToLocation(listener) {
306
+ return EventEmitter.addListener(EVENT_LOCATION, location => {
307
+ listener(this.deserializeLocationResponse(location));
247
308
  });
248
309
  }
249
310
 
250
311
  /** @ignore */
251
- deserializeHyperTrackErrors(errors) {
252
- return errors.map(error => _HyperTrackError.HyperTrackError[error.value]);
312
+ static deserializeHyperTrackErrors(errors) {
313
+ let res = errors.map(error => {
314
+ if (error.type != 'error') {
315
+ throw new Error('Invalid error type');
316
+ }
317
+ return Object.keys(_HyperTrackError.HyperTrackError).find(key => _HyperTrackError.HyperTrackError[key] === error.value);
318
+ });
319
+ return res;
253
320
  }
254
321
 
255
322
  /** @ignore */
256
- deserializeLocationResponse(response) {
323
+ static deserializeLocateResponse(response) {
324
+ switch (response.type) {
325
+ case 'success':
326
+ return {
327
+ type: 'success',
328
+ value: response.value.value
329
+ };
330
+ case 'failure':
331
+ return {
332
+ type: 'failure',
333
+ value: this.deserializeHyperTrackErrors(response.value)
334
+ };
335
+ }
336
+ }
337
+
338
+ /** @ignore */
339
+ static deserializeLocationError(locationError) {
340
+ switch (locationError.type) {
341
+ case 'notRunning':
342
+ case 'starting':
343
+ return locationError;
344
+ case 'errors':
345
+ return {
346
+ type: 'errors',
347
+ value: this.deserializeHyperTrackErrors(locationError.value)
348
+ };
349
+ }
350
+ }
351
+
352
+ /** @ignore */
353
+ static deserializeLocationResponse(response) {
257
354
  switch (response.type) {
258
355
  case 'success':
259
356
  return {
@@ -269,7 +366,7 @@ class HyperTrack {
269
366
  }
270
367
 
271
368
  /** @ignore */
272
- deserializeLocationWithDeviationResponse(response) {
369
+ static deserializeLocationWithDeviationResponse(response) {
273
370
  switch (response.type) {
274
371
  case 'success':
275
372
  const locationWithDeviationInternal = response.value;
@@ -290,23 +387,26 @@ class HyperTrack {
290
387
  }
291
388
 
292
389
  /** @ignore */
293
- deserializeLocationError(locationError) {
294
- switch (locationError.type) {
295
- case 'notRunning':
296
- case 'starting':
297
- return locationError;
298
- case 'errors':
299
- return {
300
- type: 'errors',
301
- value: this.deserializeHyperTrackErrors(locationError.value)
302
- };
390
+ static deserializeMetadata(metadata) {
391
+ if (metadata.type != 'metadata') {
392
+ throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);
393
+ }
394
+ return metadata.value;
395
+ }
396
+
397
+ /** @ignore */
398
+ static deserializeName(name) {
399
+ if (name.type != 'name') {
400
+ throw new Error(`Invalid name: ${JSON.stringify(name)}`);
303
401
  }
402
+ return name.value;
304
403
  }
305
404
 
306
405
  /** @ignore */
307
- isLocation(obj) {
406
+ static isLocation(obj) {
308
407
  return 'latitude' in obj && typeof obj.latitude == 'number' && 'longitude' in obj && typeof obj.longitude == 'number';
309
408
  }
310
409
  }
311
410
  exports.default = HyperTrack;
411
+ _defineProperty(HyperTrack, "locateSubscription", void 0);
312
412
  //# sourceMappingURL=HyperTrack.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_HyperTrackError","EVENT_TRACKING","EVENT_AVAILABILITY","EVENT_ERROR","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","constructor","initialize","publishableKey","sdkInitParams","arguments","length","undefined","initializeSdk","loggingEnabled","allowMockLocations","requireBackgroundTrackingPermission","automaticallyRequestPermissions","error","getDeviceId","then","deviceId","value","isAvailable","setAvailability","type","isTracking","sync","startTracking","stopTracking","getLocation","locationResponse","deserializeLocationResponse","setName","name","setMetadata","data","addGeotag","_len","args","Array","_key","expectedLocation","isLocation","latitude","longitude","deserializeLocationWithDeviationResponse","subscribeToErrors","listener","addListener","rawErrors","deserializeHyperTrackErrors","subscribeToTracking","subscribeToAvailability","errors","map","HyperTrackError","response","deserializeLocationError","locationWithDeviationInternal","locationInternal","location","deviation","locationError","obj","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import { NativeModules, Platform, NativeEventEmitter } from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { SdkInitParams } from './data_types/SdkInitParams';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { DeviceName } from './data_types/internal/DeviceName';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\n\nconst EVENT_TRACKING = 'onTrackingChanged';\nconst EVENT_AVAILABILITY = 'onAvailabilityChanged';\nconst EVENT_ERROR = 'onError';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private constructor() {\n return this;\n }\n\n /**\n * Creates an SDK instance\n *\n * @param publishableKey publishable key provided in HyperTrack’s dashboard setup page\n * @param sdkInitParams\n * @returns HyperTrack instance\n */\n static async initialize(\n publishableKey: string,\n sdkInitParams: SdkInitParams = {}\n ): Promise<HyperTrack> {\n try {\n await HyperTrackSdk.initializeSdk({\n publishableKey,\n loggingEnabled: sdkInitParams.loggingEnabled ?? false,\n allowMockLocations: sdkInitParams.allowMockLocations ?? false,\n requireBackgroundTrackingPermission:\n sdkInitParams.requireBackgroundTrackingPermission ?? false,\n automaticallyRequestPermissions:\n sdkInitParams.automaticallyRequestPermissions ?? true,\n });\n return new HyperTrack();\n } catch (error: any) {\n throw error;\n }\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n */\n getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n isAvailable(): Promise<boolean> {\n return HyperTrackSdk.isAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n setAvailability(isAvailable: boolean) {\n HyperTrackSdk.setAvailability({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @return {boolean} Whether the user's movement data is getting tracked or not.\n */\n isTracking(): Promise<boolean> {\n return HyperTrackSdk.isTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Syncs the device state with the HyperTrack servers\n */\n sync() {\n HyperTrackSdk.sync();\n }\n\n /**\n * Expresses an intent to start location tracking for the device\n */\n startTracking() {\n HyperTrackSdk.startTracking();\n }\n\n /**\n * Stops location tracking immediately\n */\n stopTracking() {\n HyperTrackSdk.stopTracking();\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Sets the name for the device\n * @param {string} name\n */\n setName(name: string) {\n HyperTrackSdk.setName({\n type: 'deviceName',\n value: name,\n } as DeviceName);\n }\n\n /**\n * Sets the metadata for the device\n * @param {Object} data - Metadata JSON\n */\n setMetadata(data: Object) {\n HyperTrackSdk.setMetadata(data);\n }\n\n /**\n * Adds a new geotag\n *\n * @param {Object} data - Geotad data JSON\n * @returns current location if success or LocationError if failure\n */\n async addGeotag(data: Object): 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 async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n 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 this.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 * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToErrors(listener: (errors: HyperTrackError[]) => void) {\n return EventEmitter.addListener(\n EVENT_ERROR,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\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.subscribeToTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToTracking(listener: (isTracking: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToAvailability(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n subscribeToAvailability(listener: (isAvailable: boolean) => void) {\n return EventEmitter.addListener(\n EVENT_AVAILABILITY,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /** @ignore */\n private deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n return errors.map(\n (error: HyperTrackErrorInternal) =>\n HyperTrackError[error.value as keyof typeof HyperTrackError]\n );\n }\n\n /** @ignore */\n private 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 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 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 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","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","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","_len","arguments","length","args","Array","_key","data","expectedLocation","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","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 ```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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"}
@@ -7,24 +7,20 @@ exports.HyperTrackError = void 0;
7
7
  // enum naming convention is ignored to make datatype sync
8
8
  // across platforms easier
9
9
  let HyperTrackError = /*#__PURE__*/function (HyperTrackError) {
10
- HyperTrackError["gpsSignalLost"] = "gpsSignalLost";
11
- HyperTrackError["locationMocked"] = "locationMocked";
12
- HyperTrackError["locationPermissionsDenied"] = "locationPermissionsDenied";
13
- HyperTrackError["locationPermissionsInsufficientForBackground"] = "locationPermissionsInsufficientForBackground";
14
- HyperTrackError["locationPermissionsNotDetermined"] = "locationPermissionsNotDetermined";
15
- HyperTrackError["locationPermissionsReducedAccuracy"] = "locationPermissionsReducedAccuracy";
16
- HyperTrackError["locationPermissionsProvisional"] = "locationPermissionsProvisional";
17
- HyperTrackError["locationPermissionsRestricted"] = "locationPermissionsRestricted";
18
- HyperTrackError["locationServicesDisabled"] = "locationServicesDisabled";
19
- HyperTrackError["locationServicesUnavailable"] = "locationServicesUnavailable";
20
- HyperTrackError["motionActivityPermissionsNotDetermined"] = "motionActivityPermissionsNotDetermined";
21
- HyperTrackError["motionActivityPermissionsDenied"] = "motionActivityPermissionsDenied";
22
- HyperTrackError["motionActivityServicesDisabled"] = "motionActivityServicesDisabled";
23
- HyperTrackError["motionActivityServicesUnavailable"] = "motionActivityServicesUnavailable";
24
- HyperTrackError["motionActivityPermissionsRestricted"] = "motionActivityPermissionsRestricted";
25
- HyperTrackError["networkConnectionUnavailable"] = "networkConnectionUnavailable";
26
- HyperTrackError["invalidPublishableKey"] = "invalidPublishableKey";
27
10
  HyperTrackError["blockedFromRunning"] = "blockedFromRunning";
11
+ HyperTrackError["invalidPublishableKey"] = "invalidPublishableKey";
12
+ HyperTrackError["locationMocked"] = "location.mocked";
13
+ HyperTrackError["locationServicesDisabled"] = "location.servicesDisabled";
14
+ HyperTrackError["locationServicesUnavailable"] = "location.servicesUnavailable";
15
+ HyperTrackError["locationSignalLost"] = "location.signalLost";
16
+ HyperTrackError["noExemptionFromBackgroundStartRestrictions"] = "noExemptionFromBackgroundStartRestrictions";
17
+ HyperTrackError["permissionsLocationDenied"] = "permissions.location.denied";
18
+ HyperTrackError["permissionsLocationInsufficientForBackground"] = "permissions.location.insufficientForBackground";
19
+ HyperTrackError["permissionsLocationNotDetermined"] = "permissions.location.notDetermined";
20
+ HyperTrackError["permissionsLocationProvisional"] = "permissions.location.provisional";
21
+ HyperTrackError["permissionsLocationReducedAccuracy"] = "permissions.location.reducedAccuracy";
22
+ HyperTrackError["permissionsLocationRestricted"] = "permissions.location.restricted";
23
+ HyperTrackError["permissionsNotificationsDenied"] = "permissions.notifications.denied";
28
24
  return HyperTrackError;
29
25
  }({});
30
26
  exports.HyperTrackError = HyperTrackError;
@@ -1 +1 @@
1
- {"version":3,"names":["HyperTrackError","exports"],"sources":["HyperTrackError.ts"],"sourcesContent":["// enum naming convention is ignored to make datatype sync\n// across platforms easier\nexport enum HyperTrackError {\n gpsSignalLost = \"gpsSignalLost\",\n locationMocked = \"locationMocked\",\n locationPermissionsDenied = \"locationPermissionsDenied\",\n locationPermissionsInsufficientForBackground = \"locationPermissionsInsufficientForBackground\",\n locationPermissionsNotDetermined = \"locationPermissionsNotDetermined\",\n locationPermissionsReducedAccuracy = \"locationPermissionsReducedAccuracy\",\n locationPermissionsProvisional = \"locationPermissionsProvisional\",\n locationPermissionsRestricted = \"locationPermissionsRestricted\",\n locationServicesDisabled = \"locationServicesDisabled\",\n locationServicesUnavailable = \"locationServicesUnavailable\",\n motionActivityPermissionsNotDetermined = \"motionActivityPermissionsNotDetermined\",\n motionActivityPermissionsDenied = \"motionActivityPermissionsDenied\",\n motionActivityServicesDisabled = \"motionActivityServicesDisabled\",\n motionActivityServicesUnavailable = \"motionActivityServicesUnavailable\",\n motionActivityPermissionsRestricted = \"motionActivityPermissionsRestricted\",\n networkConnectionUnavailable = \"networkConnectionUnavailable\",\n invalidPublishableKey = \"invalidPublishableKey\",\n blockedFromRunning = \"blockedFromRunning\"\n}\n"],"mappings":";;;;;;AAAA;AACA;AAAA,IACYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["HyperTrackError","exports"],"sources":["HyperTrackError.ts"],"sourcesContent":["// enum naming convention is ignored to make datatype sync\n// across platforms easier\nexport enum HyperTrackError {\n /**\n * The SDK was remotely blocked from running.\n */\n blockedFromRunning = 'blockedFromRunning',\n\n /**\n * The publishable key is invalid.\n */\n invalidPublishableKey = 'invalidPublishableKey',\n\n /**\n * The user enabled mock location app while mocking locations is prohibited.\n */\n locationMocked = 'location.mocked',\n\n /**\n * The user disabled location services systemwide.\n */\n locationServicesDisabled = 'location.servicesDisabled',\n\n /**\n * [Android only] The device doesn't have location services.\n */\n locationServicesUnavailable = 'location.servicesUnavailable',\n\n /**\n * GPS satellites are not in view.\n */\n locationSignalLost = 'location.signalLost',\n\n /**\n * [Android only] The SDK wasn't able to start tracking because of the limitations imposed by the OS.\n * The exempt from background execution conditions weren't met.\n * {@link https://developer.android.com/guide/components/foreground-services#background-start-restriction-exemptions}\n */\n noExemptionFromBackgroundStartRestrictions = 'noExemptionFromBackgroundStartRestrictions',\n\n /**\n * The user denied location permissions.\n */\n permissionsLocationDenied = 'permissions.location.denied',\n\n /**\n * Can’t start tracking in background with When In Use location permissions.\n * SDK will automatically start tracking when app will return to foreground.\n */\n permissionsLocationInsufficientForBackground = 'permissions.location.insufficientForBackground',\n\n /**\n * [iOS only] The user has not chosen whether the app can use location services.\n */\n permissionsLocationNotDetermined = 'permissions.location.notDetermined',\n\n /**\n * [iOS only] The app is in Provisional Always authorization state, which stops sending locations when app is in background.\n */\n permissionsLocationProvisional = 'permissions.location.provisional',\n\n /**\n * The user didn't grant precise location permissions or downgraded permissions to imprecise.\n */\n permissionsLocationReducedAccuracy = 'permissions.location.reducedAccuracy',\n\n /**\n * [iOS only] The app is not authorized to use location services.\n */\n permissionsLocationRestricted = 'permissions.location.restricted',\n\n /**\n * [Android only] The user denied notification permissions needed to display a persistent notification\n * needed for foreground location tracking.\n */\n permissionsNotificationsDenied = 'permissions.notifications.denied',\n}\n"],"mappings":";;;;;;AAAA;AACA;AAAA,IACYA,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAAC,OAAA,CAAAD,eAAA,GAAAA,eAAA"}