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.
- package/CHANGELOG.md +54 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +2 -2
- package/android/build.gradle +5 -1
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +80 -115
- package/android/src/main/java/com/reactnativehypertracksdk/ReactNativeSerialization.kt +23 -3
- package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +87 -220
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +11 -9
- package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +216 -132
- package/android/src/main/java/com/reactnativehypertracksdk/common/{Result.kt → WrapperResult.kt} +9 -7
- package/hypertrack-sdk-react-native.podspec +1 -1
- package/ios/HyperTrackReactNativePlugin.m +13 -11
- package/ios/HyperTrackReactNativePlugin.swift +141 -114
- package/ios/common/DictionaryDecoder.swift +5 -5
- package/ios/common/HyperTrackSDKWrapper.swift +46 -80
- package/ios/common/SDKMethod.swift +13 -12
- package/ios/common/Serialization.swift +200 -245
- package/lib/commonjs/HyperTrack/HyperTrack.js +224 -124
- package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/HyperTrackError.js +13 -17
- package/lib/commonjs/HyperTrack/data_types/HyperTrackError.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/internal/HyperTrackErrorInternal.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/internal/Metadata.js +2 -0
- package/lib/commonjs/HyperTrack/data_types/internal/Metadata.js.map +1 -0
- package/lib/commonjs/HyperTrack/data_types/internal/Name.js +2 -0
- package/lib/commonjs/HyperTrack/data_types/internal/Name.js.map +1 -0
- package/lib/commonjs/index.js +0 -7
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/HyperTrack/HyperTrack.js +224 -124
- package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/module/HyperTrack/data_types/HyperTrackError.js +13 -17
- package/lib/module/HyperTrack/data_types/HyperTrackError.js.map +1 -1
- package/lib/module/HyperTrack/data_types/internal/HyperTrackErrorInternal.js.map +1 -1
- package/lib/module/HyperTrack/data_types/internal/Metadata.js +2 -0
- package/lib/module/HyperTrack/data_types/internal/Metadata.js.map +1 -0
- package/lib/module/HyperTrack/data_types/internal/Name.js +2 -0
- package/lib/module/HyperTrack/data_types/internal/Name.js.map +1 -0
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/HyperTrack/HyperTrack.d.ts +106 -54
- package/lib/typescript/HyperTrack/data_types/HyperTrackError.d.ts +59 -17
- package/lib/typescript/HyperTrack/data_types/internal/HyperTrackErrorInternal.d.ts +1 -1
- package/lib/typescript/HyperTrack/data_types/internal/Metadata.d.ts +4 -0
- package/lib/typescript/HyperTrack/data_types/internal/Name.d.ts +7 -0
- package/lib/typescript/index.d.ts +0 -1
- package/package.json +1 -1
- package/src/HyperTrack/HyperTrack.ts +281 -161
- package/src/HyperTrack/data_types/HyperTrackError.ts +73 -18
- package/src/HyperTrack/data_types/internal/HyperTrackErrorInternal.ts +3 -3
- package/src/HyperTrack/data_types/internal/Metadata.ts +4 -0
- package/src/HyperTrack/data_types/internal/Name.ts +7 -0
- package/src/index.tsx +0 -1
- package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackError.kt +0 -28
- package/android/src/main/java/com/reactnativehypertracksdk/common/LocationError.kt +0 -9
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkInitParams.kt +0 -44
- package/ios/common/HyperTrackError.swift +0 -20
- package/ios/common/SDKInitParams.swift +0 -13
- package/lib/commonjs/HyperTrack/data_types/SdkInitParams.js +0 -2
- package/lib/commonjs/HyperTrack/data_types/SdkInitParams.js.map +0 -1
- package/lib/commonjs/HyperTrack/data_types/internal/DeviceName.js +0 -2
- package/lib/commonjs/HyperTrack/data_types/internal/DeviceName.js.map +0 -1
- package/lib/module/HyperTrack/data_types/SdkInitParams.js +0 -2
- package/lib/module/HyperTrack/data_types/SdkInitParams.js.map +0 -1
- package/lib/module/HyperTrack/data_types/internal/DeviceName.js +0 -2
- package/lib/module/HyperTrack/data_types/internal/DeviceName.js.map +0 -1
- package/lib/typescript/HyperTrack/data_types/SdkInitParams.d.ts +0 -25
- package/lib/typescript/HyperTrack/data_types/internal/DeviceName.d.ts +0 -4
- package/src/HyperTrack/data_types/SdkInitParams.ts +0 -28
- package/src/HyperTrack/data_types/internal/DeviceName.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["HyperTrackErrorInternal.ts"],"sourcesContent":["export type HyperTrackErrorInternal = {\n
|
|
1
|
+
{"version":3,"names":[],"sources":["HyperTrackErrorInternal.ts"],"sourcesContent":["export type HyperTrackErrorInternal = {\n type: 'error';\n value: string;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["Metadata.ts"],"sourcesContent":["export type Metadata = {\n type: 'metadata';\n value: Object;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["Name.ts"],"sourcesContent":["/**\n * Device name\n */\nexport type Name = {\n type: 'name';\n value: string;\n};\n"],"mappings":""}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -57,12 +57,6 @@ Object.defineProperty(exports, "Result", {
|
|
|
57
57
|
return _Result.Result;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
-
Object.defineProperty(exports, "SdkInitParams", {
|
|
61
|
-
enumerable: true,
|
|
62
|
-
get: function () {
|
|
63
|
-
return _SdkInitParams.SdkInitParams;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
60
|
Object.defineProperty(exports, "Starting", {
|
|
67
61
|
enumerable: true,
|
|
68
62
|
get: function () {
|
|
@@ -82,7 +76,6 @@ var _LocationErrorInternal = require("./HyperTrack/data_types/internal/LocationE
|
|
|
82
76
|
var _LocationError = require("./HyperTrack/data_types/LocationError");
|
|
83
77
|
var _LocationWithDeviation = require("./HyperTrack/data_types/LocationWithDeviation");
|
|
84
78
|
var _Location = require("./HyperTrack/data_types/Location");
|
|
85
|
-
var _SdkInitParams = require("./HyperTrack/data_types/SdkInitParams");
|
|
86
79
|
var _Result = require("./HyperTrack/data_types/Result");
|
|
87
80
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
88
81
|
var _default = _HyperTrack.default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_HyperTrack","_interopRequireDefault","require","_HyperTrackError","_LocationErrorInternal","_LocationError","_LocationWithDeviation","_Location","
|
|
1
|
+
{"version":3,"names":["_HyperTrack","_interopRequireDefault","require","_HyperTrackError","_LocationErrorInternal","_LocationError","_LocationWithDeviation","_Location","_Result","obj","__esModule","default","_default","HyperTrack","exports"],"sources":["index.tsx"],"sourcesContent":["import HyperTrack from './HyperTrack/HyperTrack';\nexport default HyperTrack;\nexport { HyperTrack };\n\nexport { HyperTrackError } from './HyperTrack/data_types/HyperTrackError';\nexport {\n NotRunning,\n Starting,\n} from './HyperTrack/data_types/internal/LocationErrorInternal';\nexport { LocationError, Errors } from './HyperTrack/data_types/LocationError';\nexport { LocationWithDeviation } from './HyperTrack/data_types/LocationWithDeviation';\nexport { Location } from './HyperTrack/data_types/Location';\nexport { Result, Success, Failure } from './HyperTrack/data_types/Result';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAIA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAA0E,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAX3DC,mBAAU;AAAAC,OAAA,CAAAH,OAAA,GAAAC,QAAA"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
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; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
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); }
|
|
1
4
|
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
|
|
2
5
|
import { HyperTrackError } from './data_types/HyperTrackError';
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
+
const EVENT_ERRORS = 'errors';
|
|
7
|
+
const EVENT_IS_AVAILABLE = 'isAvailable';
|
|
8
|
+
const EVENT_IS_TRACKING = 'isTracking';
|
|
9
|
+
const EVENT_LOCATE = 'locate';
|
|
10
|
+
const EVENT_LOCATION = 'location';
|
|
6
11
|
const LINKING_ERROR = `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
7
12
|
ios: "- You have run 'pod install'\n",
|
|
8
13
|
default: ''
|
|
@@ -14,162 +19,197 @@ const HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin ? NativeModules.
|
|
|
14
19
|
});
|
|
15
20
|
const EventEmitter = new NativeEventEmitter(HyperTrackSdk);
|
|
16
21
|
export default class HyperTrack {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Adds a new geotag
|
|
24
|
+
*
|
|
25
|
+
* @param {Object} data - Geotad data JSON
|
|
26
|
+
* @returns current location if success or LocationError if failure
|
|
27
|
+
*/
|
|
20
28
|
|
|
21
29
|
/**
|
|
22
|
-
*
|
|
30
|
+
* Adds a new geotag with expected location
|
|
23
31
|
*
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @returns
|
|
32
|
+
* @param {Object} data - Geotad data JSON
|
|
33
|
+
* @param {Location} expectedLocation - Expected location
|
|
34
|
+
* @returns location with deviation if success or LocationError if failure
|
|
27
35
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
|
|
37
|
+
static async addGeotag() {
|
|
38
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
39
|
+
args[_key] = arguments[_key];
|
|
40
|
+
}
|
|
41
|
+
if (args.length === 1 && typeof args[0] === 'object') {
|
|
42
|
+
return HyperTrackSdk.addGeotag({
|
|
43
|
+
data: args[0],
|
|
44
|
+
expectedLocation: undefined
|
|
45
|
+
}).then(locationResponse => {
|
|
46
|
+
return this.deserializeLocationResponse(locationResponse);
|
|
37
47
|
});
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
48
|
+
} else if (args.length === 2 && typeof args[0] === 'object' && HyperTrack.isLocation(args[1])) {
|
|
49
|
+
let expectedLocation = args[1];
|
|
50
|
+
return HyperTrackSdk.addGeotag({
|
|
51
|
+
data: args[0],
|
|
52
|
+
expectedLocation: {
|
|
53
|
+
type: 'location',
|
|
54
|
+
value: {
|
|
55
|
+
latitude: expectedLocation.latitude,
|
|
56
|
+
longitude: expectedLocation.longitude
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}).then(locationResponse => {
|
|
60
|
+
return this.deserializeLocationWithDeviationResponse(locationResponse);
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
throw new Error('Invalid arguments');
|
|
41
64
|
}
|
|
42
65
|
}
|
|
43
66
|
|
|
44
67
|
/**
|
|
45
68
|
* Returns a string that is used to uniquely identify the device
|
|
69
|
+
*
|
|
70
|
+
* @returns {string} Device ID
|
|
46
71
|
*/
|
|
47
|
-
getDeviceId() {
|
|
72
|
+
static async getDeviceId() {
|
|
48
73
|
return HyperTrackSdk.getDeviceId().then(deviceId => deviceId.value);
|
|
49
74
|
}
|
|
50
75
|
|
|
51
76
|
/**
|
|
52
|
-
*
|
|
77
|
+
* Returns a list of errors that blocks SDK from tracking
|
|
53
78
|
*
|
|
54
|
-
* @returns
|
|
79
|
+
* @returns {HyperTrackError[]} List of errors
|
|
55
80
|
*/
|
|
56
|
-
|
|
57
|
-
return HyperTrackSdk.
|
|
81
|
+
static async getErrors() {
|
|
82
|
+
return HyperTrackSdk.getErrors().then(errors => {
|
|
83
|
+
return this.deserializeHyperTrackErrors(errors);
|
|
84
|
+
});
|
|
58
85
|
}
|
|
59
86
|
|
|
60
87
|
/**
|
|
61
|
-
*
|
|
88
|
+
* Reflects availability of the device for the Nearby search
|
|
62
89
|
*
|
|
63
|
-
* @
|
|
90
|
+
* @returns true when is available or false when unavailable
|
|
64
91
|
*/
|
|
65
|
-
|
|
66
|
-
HyperTrackSdk.
|
|
67
|
-
type: 'isAvailable',
|
|
68
|
-
value: isAvailable
|
|
69
|
-
});
|
|
92
|
+
static async getIsAvailable() {
|
|
93
|
+
return HyperTrackSdk.getIsAvailable().then(isAvailable => isAvailable.value);
|
|
70
94
|
}
|
|
71
95
|
|
|
72
96
|
/**
|
|
73
97
|
* Reflects the tracking intent for the device
|
|
74
98
|
*
|
|
75
|
-
* @
|
|
99
|
+
* @returns {boolean} Whether the user's movement data is getting tracked or not.
|
|
76
100
|
*/
|
|
77
|
-
|
|
78
|
-
return HyperTrackSdk.
|
|
101
|
+
static async getIsTracking() {
|
|
102
|
+
return HyperTrackSdk.getIsTracking().then(isTracking => isTracking.value);
|
|
79
103
|
}
|
|
80
104
|
|
|
81
105
|
/**
|
|
82
|
-
*
|
|
106
|
+
* Reflects the current location of the user or an outage reason
|
|
83
107
|
*/
|
|
84
|
-
|
|
85
|
-
HyperTrackSdk.
|
|
108
|
+
static async getLocation() {
|
|
109
|
+
return HyperTrackSdk.getLocation().then(locationResponse => {
|
|
110
|
+
return this.deserializeLocationResponse(locationResponse);
|
|
111
|
+
});
|
|
86
112
|
}
|
|
87
113
|
|
|
88
114
|
/**
|
|
89
|
-
*
|
|
115
|
+
* Gets the metadata that is set for the device
|
|
116
|
+
*
|
|
117
|
+
* @returns {Object} Metadata JSON
|
|
90
118
|
*/
|
|
91
|
-
|
|
92
|
-
HyperTrackSdk.
|
|
119
|
+
static async getMetadata() {
|
|
120
|
+
return HyperTrackSdk.getMetadata().then(metadata => {
|
|
121
|
+
return this.deserializeMetadata(metadata);
|
|
122
|
+
});
|
|
93
123
|
}
|
|
94
124
|
|
|
95
125
|
/**
|
|
96
|
-
*
|
|
126
|
+
* Gets the name that is set for the device
|
|
127
|
+
*
|
|
128
|
+
* @returns {string} Device name
|
|
97
129
|
*/
|
|
98
|
-
|
|
99
|
-
HyperTrackSdk.
|
|
130
|
+
static async getName() {
|
|
131
|
+
return HyperTrackSdk.getName().then(name => {
|
|
132
|
+
return this.deserializeName(name);
|
|
133
|
+
});
|
|
100
134
|
}
|
|
101
135
|
|
|
102
136
|
/**
|
|
103
|
-
*
|
|
137
|
+
* Requests one-time location update and returns the location once it is available, or error.
|
|
138
|
+
*
|
|
139
|
+
* Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription
|
|
140
|
+
* will be automaticaly removed.
|
|
141
|
+
*
|
|
142
|
+
* This method will start location tracking if called, and will stop it when the location is received or
|
|
143
|
+
* the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),
|
|
144
|
+
* the tracking will not be stopped.
|
|
145
|
+
*
|
|
146
|
+
* @param callback
|
|
147
|
+
* @returns EmitterSubscription
|
|
148
|
+
* @example ```js
|
|
149
|
+
* const subscription = HyperTrack.locate(location => {
|
|
150
|
+
* ...
|
|
151
|
+
* })
|
|
152
|
+
*
|
|
153
|
+
* // to unsubscribe
|
|
154
|
+
* subscription.remove()
|
|
155
|
+
* ```
|
|
104
156
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
157
|
+
static locate(callback) {
|
|
158
|
+
var _this$locateSubscript;
|
|
159
|
+
(_this$locateSubscript = this.locateSubscription) === null || _this$locateSubscript === void 0 ? void 0 : _this$locateSubscript.remove();
|
|
160
|
+
this.locateSubscription = EventEmitter.addListener(EVENT_LOCATE, location => {
|
|
161
|
+
callback(this.deserializeLocateResponse(location));
|
|
108
162
|
});
|
|
163
|
+
HyperTrackSdk.locate();
|
|
164
|
+
return this.locateSubscription;
|
|
109
165
|
}
|
|
110
166
|
|
|
111
167
|
/**
|
|
112
|
-
* Sets the
|
|
113
|
-
*
|
|
168
|
+
* Sets the availability of the device for the Nearby search
|
|
169
|
+
*
|
|
170
|
+
* @param availability true when is available or false when unavailable
|
|
114
171
|
*/
|
|
115
|
-
|
|
116
|
-
HyperTrackSdk.
|
|
117
|
-
type: '
|
|
118
|
-
value:
|
|
172
|
+
static async setIsAvailable(isAvailable) {
|
|
173
|
+
HyperTrackSdk.setIsAvailable({
|
|
174
|
+
type: 'isAvailable',
|
|
175
|
+
value: isAvailable
|
|
119
176
|
});
|
|
120
177
|
}
|
|
121
178
|
|
|
122
179
|
/**
|
|
123
|
-
* Sets the
|
|
124
|
-
*
|
|
180
|
+
* Sets the tracking intent for the device
|
|
181
|
+
*
|
|
182
|
+
* @param {boolean} isTracking
|
|
125
183
|
*/
|
|
126
|
-
|
|
127
|
-
HyperTrackSdk.
|
|
184
|
+
static async setIsTracking(isTracking) {
|
|
185
|
+
HyperTrackSdk.setIsTracking({
|
|
186
|
+
type: 'isTracking',
|
|
187
|
+
value: isTracking
|
|
188
|
+
});
|
|
128
189
|
}
|
|
129
190
|
|
|
130
191
|
/**
|
|
131
|
-
*
|
|
192
|
+
* Sets the metadata for the device
|
|
132
193
|
*
|
|
133
|
-
* @param {Object} data -
|
|
134
|
-
* @returns current location if success or LocationError if failure
|
|
194
|
+
* @param {Object} data - Metadata JSON
|
|
135
195
|
*/
|
|
196
|
+
static async setMetadata(data) {
|
|
197
|
+
HyperTrackSdk.setMetadata({
|
|
198
|
+
type: 'metadata',
|
|
199
|
+
value: data
|
|
200
|
+
});
|
|
201
|
+
}
|
|
136
202
|
|
|
137
203
|
/**
|
|
138
|
-
*
|
|
204
|
+
* Sets the name for the device
|
|
139
205
|
*
|
|
140
|
-
* @param {
|
|
141
|
-
* @param {Location} expectedLocation - Expected location
|
|
142
|
-
* @returns location with deviation if success or LocationError if failure
|
|
206
|
+
* @param {string} name
|
|
143
207
|
*/
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
if (args.length === 1 && typeof args[0] === 'object') {
|
|
150
|
-
return HyperTrackSdk.addGeotag({
|
|
151
|
-
data: args[0],
|
|
152
|
-
expectedLocation: undefined
|
|
153
|
-
}).then(locationResponse => {
|
|
154
|
-
return this.deserializeLocationResponse(locationResponse);
|
|
155
|
-
});
|
|
156
|
-
} else if (args.length === 2 && typeof args[0] === 'object' && this.isLocation(args[1])) {
|
|
157
|
-
let expectedLocation = args[1];
|
|
158
|
-
return HyperTrackSdk.addGeotag({
|
|
159
|
-
data: args[0],
|
|
160
|
-
expectedLocation: {
|
|
161
|
-
type: 'location',
|
|
162
|
-
value: {
|
|
163
|
-
latitude: expectedLocation.latitude,
|
|
164
|
-
longitude: expectedLocation.longitude
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}).then(locationResponse => {
|
|
168
|
-
return this.deserializeLocationWithDeviationResponse(locationResponse);
|
|
169
|
-
});
|
|
170
|
-
} else {
|
|
171
|
-
throw new Error('Invalid arguments');
|
|
172
|
-
}
|
|
208
|
+
static async setName(name) {
|
|
209
|
+
HyperTrackSdk.setName({
|
|
210
|
+
type: 'name',
|
|
211
|
+
value: name
|
|
212
|
+
});
|
|
173
213
|
}
|
|
174
214
|
|
|
175
215
|
/**
|
|
@@ -189,12 +229,35 @@ export default class HyperTrack {
|
|
|
189
229
|
* subscription.remove()
|
|
190
230
|
* ```
|
|
191
231
|
*/
|
|
192
|
-
subscribeToErrors(listener) {
|
|
193
|
-
return EventEmitter.addListener(
|
|
232
|
+
static subscribeToErrors(listener) {
|
|
233
|
+
return EventEmitter.addListener(EVENT_ERRORS, rawErrors => {
|
|
194
234
|
listener(this.deserializeHyperTrackErrors(rawErrors));
|
|
195
235
|
});
|
|
196
236
|
}
|
|
197
237
|
|
|
238
|
+
/**
|
|
239
|
+
* Subscribe to availability changes
|
|
240
|
+
*
|
|
241
|
+
* @param listener
|
|
242
|
+
* @returns EmitterSubscription
|
|
243
|
+
* @example
|
|
244
|
+
* ```js
|
|
245
|
+
* const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {
|
|
246
|
+
* if (isAvailable) {
|
|
247
|
+
* // ... ready to go
|
|
248
|
+
* }
|
|
249
|
+
* })
|
|
250
|
+
*
|
|
251
|
+
* // later, to stop listening
|
|
252
|
+
* subscription.remove()
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
static subscribeToIsAvailable(listener) {
|
|
256
|
+
return EventEmitter.addListener(EVENT_IS_AVAILABLE, isAvailable => {
|
|
257
|
+
listener(isAvailable.value);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
|
|
198
261
|
/**
|
|
199
262
|
* Subscribe to tracking intent changes
|
|
200
263
|
*
|
|
@@ -202,7 +265,7 @@ export default class HyperTrack {
|
|
|
202
265
|
* @returns EmitterSubscription
|
|
203
266
|
* @example
|
|
204
267
|
* ```js
|
|
205
|
-
* const subscription = HyperTrack.
|
|
268
|
+
* const subscription = HyperTrack.subscribeToIsTracking(isTracking => {
|
|
206
269
|
* if (isTracking) {
|
|
207
270
|
* // ... ready to go
|
|
208
271
|
* }
|
|
@@ -212,42 +275,76 @@ export default class HyperTrack {
|
|
|
212
275
|
* subscription.remove()
|
|
213
276
|
* ```
|
|
214
277
|
*/
|
|
215
|
-
|
|
216
|
-
return EventEmitter.addListener(
|
|
278
|
+
static subscribeToIsTracking(listener) {
|
|
279
|
+
return EventEmitter.addListener(EVENT_IS_TRACKING, isTracking => {
|
|
217
280
|
listener(isTracking.value);
|
|
218
281
|
});
|
|
219
282
|
}
|
|
220
283
|
|
|
221
284
|
/**
|
|
222
|
-
* Subscribe to
|
|
285
|
+
* Subscribe to location changes
|
|
223
286
|
*
|
|
224
287
|
* @param listener
|
|
225
288
|
* @returns EmitterSubscription
|
|
226
289
|
* @example
|
|
227
290
|
* ```js
|
|
228
|
-
* const subscription = HyperTrack.
|
|
229
|
-
*
|
|
230
|
-
* // ... ready to go
|
|
231
|
-
* }
|
|
291
|
+
* const subscription = HyperTrack.subscribeToLocation(location => {
|
|
292
|
+
* ...
|
|
232
293
|
* })
|
|
233
294
|
*
|
|
234
295
|
* // later, to stop listening
|
|
235
296
|
* subscription.remove()
|
|
236
297
|
* ```
|
|
237
298
|
*/
|
|
238
|
-
|
|
239
|
-
return EventEmitter.addListener(
|
|
240
|
-
listener(
|
|
299
|
+
static subscribeToLocation(listener) {
|
|
300
|
+
return EventEmitter.addListener(EVENT_LOCATION, location => {
|
|
301
|
+
listener(this.deserializeLocationResponse(location));
|
|
241
302
|
});
|
|
242
303
|
}
|
|
243
304
|
|
|
244
305
|
/** @ignore */
|
|
245
|
-
deserializeHyperTrackErrors(errors) {
|
|
246
|
-
|
|
306
|
+
static deserializeHyperTrackErrors(errors) {
|
|
307
|
+
let res = errors.map(error => {
|
|
308
|
+
if (error.type != 'error') {
|
|
309
|
+
throw new Error('Invalid error type');
|
|
310
|
+
}
|
|
311
|
+
return Object.keys(HyperTrackError).find(key => HyperTrackError[key] === error.value);
|
|
312
|
+
});
|
|
313
|
+
return res;
|
|
247
314
|
}
|
|
248
315
|
|
|
249
316
|
/** @ignore */
|
|
250
|
-
|
|
317
|
+
static deserializeLocateResponse(response) {
|
|
318
|
+
switch (response.type) {
|
|
319
|
+
case 'success':
|
|
320
|
+
return {
|
|
321
|
+
type: 'success',
|
|
322
|
+
value: response.value.value
|
|
323
|
+
};
|
|
324
|
+
case 'failure':
|
|
325
|
+
return {
|
|
326
|
+
type: 'failure',
|
|
327
|
+
value: this.deserializeHyperTrackErrors(response.value)
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/** @ignore */
|
|
333
|
+
static deserializeLocationError(locationError) {
|
|
334
|
+
switch (locationError.type) {
|
|
335
|
+
case 'notRunning':
|
|
336
|
+
case 'starting':
|
|
337
|
+
return locationError;
|
|
338
|
+
case 'errors':
|
|
339
|
+
return {
|
|
340
|
+
type: 'errors',
|
|
341
|
+
value: this.deserializeHyperTrackErrors(locationError.value)
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/** @ignore */
|
|
347
|
+
static deserializeLocationResponse(response) {
|
|
251
348
|
switch (response.type) {
|
|
252
349
|
case 'success':
|
|
253
350
|
return {
|
|
@@ -263,7 +360,7 @@ export default class HyperTrack {
|
|
|
263
360
|
}
|
|
264
361
|
|
|
265
362
|
/** @ignore */
|
|
266
|
-
deserializeLocationWithDeviationResponse(response) {
|
|
363
|
+
static deserializeLocationWithDeviationResponse(response) {
|
|
267
364
|
switch (response.type) {
|
|
268
365
|
case 'success':
|
|
269
366
|
const locationWithDeviationInternal = response.value;
|
|
@@ -284,22 +381,25 @@ export default class HyperTrack {
|
|
|
284
381
|
}
|
|
285
382
|
|
|
286
383
|
/** @ignore */
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
384
|
+
static deserializeMetadata(metadata) {
|
|
385
|
+
if (metadata.type != 'metadata') {
|
|
386
|
+
throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);
|
|
387
|
+
}
|
|
388
|
+
return metadata.value;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/** @ignore */
|
|
392
|
+
static deserializeName(name) {
|
|
393
|
+
if (name.type != 'name') {
|
|
394
|
+
throw new Error(`Invalid name: ${JSON.stringify(name)}`);
|
|
297
395
|
}
|
|
396
|
+
return name.value;
|
|
298
397
|
}
|
|
299
398
|
|
|
300
399
|
/** @ignore */
|
|
301
|
-
isLocation(obj) {
|
|
400
|
+
static isLocation(obj) {
|
|
302
401
|
return 'latitude' in obj && typeof obj.latitude == 'number' && 'longitude' in obj && typeof obj.longitude == 'number';
|
|
303
402
|
}
|
|
304
403
|
}
|
|
404
|
+
_defineProperty(HyperTrack, "locateSubscription", void 0);
|
|
305
405
|
//# sourceMappingURL=HyperTrack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","HyperTrackError","EVENT_TRACKING","EVENT_AVAILABILITY","EVENT_ERROR","LINKING_ERROR","select","ios","default","HyperTrackSdk","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","HyperTrack","constructor","initialize","publishableKey","sdkInitParams","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","response","deserializeLocationError","locationWithDeviationInternal","locationInternal","location","deviation","locationError","obj"],"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":["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","_len","arguments","length","args","Array","_key","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 ```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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"}
|