hypertrack-sdk-react-native 13.4.0 → 13.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/gradle.properties +1 -1
- package/android/src/main/java/com/reactnativehypertracksdk/HyperTrackReactNativePlugin.kt +38 -6
- package/android/src/main/java/com/reactnativehypertracksdk/common/HyperTrackSdkWrapper.kt +7 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/SdkMethod.kt +1 -0
- package/android/src/main/java/com/reactnativehypertracksdk/common/Serialization.kt +80 -44
- package/hypertrack-sdk-react-native.podspec +1 -1
- package/ios/HyperTrackReactNativePlugin.m +4 -1
- package/ios/HyperTrackReactNativePlugin.swift +21 -1
- package/ios/common/HyperTrackSDKWrapper.swift +4 -0
- package/ios/common/SDKMethod.swift +1 -0
- package/ios/common/Serialization.swift +30 -0
- package/lib/commonjs/HyperTrack/HyperTrack.js +68 -1
- package/lib/commonjs/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/commonjs/HyperTrack/data_types/Order.js +6 -0
- package/lib/commonjs/HyperTrack/data_types/Order.js.map +1 -0
- package/lib/commonjs/HyperTrack/data_types/internal/OrderInternal.js +6 -0
- package/lib/commonjs/HyperTrack/data_types/internal/OrderInternal.js.map +1 -0
- package/lib/commonjs/HyperTrack/data_types/internal/OrdersInternal.js +2 -0
- package/lib/commonjs/HyperTrack/data_types/internal/OrdersInternal.js.map +1 -0
- package/lib/commonjs/index.js +0 -66
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/HyperTrack/HyperTrack.js +68 -1
- package/lib/module/HyperTrack/HyperTrack.js.map +1 -1
- package/lib/module/HyperTrack/data_types/Order.js +2 -0
- package/lib/module/HyperTrack/data_types/Order.js.map +1 -0
- package/lib/module/HyperTrack/data_types/internal/OrderInternal.js +2 -0
- package/lib/module/HyperTrack/data_types/internal/OrderInternal.js.map +1 -0
- package/lib/module/HyperTrack/data_types/internal/OrdersInternal.js +2 -0
- package/lib/module/HyperTrack/data_types/internal/OrdersInternal.js.map +1 -0
- package/lib/module/index.js +0 -6
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/HyperTrack/HyperTrack.d.ts +30 -2
- package/lib/typescript/HyperTrack/data_types/Order.d.ts +6 -0
- package/lib/typescript/HyperTrack/data_types/internal/OrderInternal.d.ts +7 -0
- package/lib/typescript/HyperTrack/data_types/internal/OrdersInternal.d.ts +4 -0
- package/lib/typescript/index.d.ts +7 -6
- package/package.json +2 -2
- package/src/HyperTrack/HyperTrack.ts +84 -2
- package/src/HyperTrack/data_types/Order.ts +7 -0
- package/src/HyperTrack/data_types/internal/OrderInternal.ts +8 -0
- package/src/HyperTrack/data_types/internal/OrdersInternal.ts +4 -0
- package/src/index.tsx +10 -7
|
@@ -14,6 +14,7 @@ const EVENT_IS_AVAILABLE = 'isAvailable';
|
|
|
14
14
|
const EVENT_IS_TRACKING = 'isTracking';
|
|
15
15
|
const EVENT_LOCATE = 'locate';
|
|
16
16
|
const EVENT_LOCATION = 'location';
|
|
17
|
+
const EVENT_ORDERS = 'orders';
|
|
17
18
|
const LINKING_ERROR = `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
18
19
|
ios: "- You have run 'pod install'\n",
|
|
19
20
|
default: ''
|
|
@@ -195,6 +196,18 @@ class HyperTrack {
|
|
|
195
196
|
});
|
|
196
197
|
}
|
|
197
198
|
|
|
199
|
+
/**
|
|
200
|
+
* Gets the active orders for the worker. The orders are sorted with the ordering in
|
|
201
|
+
* which the worker should complete them.
|
|
202
|
+
*
|
|
203
|
+
* @returns {Map<string, Order>} Map of orders
|
|
204
|
+
*/
|
|
205
|
+
static async getOrders() {
|
|
206
|
+
return HyperTrackSdk.getOrders().then(orders => {
|
|
207
|
+
return this.deserializeOrders(orders);
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
|
|
198
211
|
/**
|
|
199
212
|
* A primary identifier that uniquely identifies the worker outside of HyperTrack.
|
|
200
213
|
* Example: email, phone number, database id
|
|
@@ -247,7 +260,7 @@ class HyperTrack {
|
|
|
247
260
|
/**
|
|
248
261
|
* Sets the availability of the device for the Nearby search
|
|
249
262
|
*
|
|
250
|
-
* @param
|
|
263
|
+
* @param isAvailable true when is available or false when unavailable
|
|
251
264
|
*/
|
|
252
265
|
static setIsAvailable(isAvailable) {
|
|
253
266
|
HyperTrackSdk.setIsAvailable({
|
|
@@ -398,6 +411,27 @@ class HyperTrack {
|
|
|
398
411
|
});
|
|
399
412
|
}
|
|
400
413
|
|
|
414
|
+
/**
|
|
415
|
+
* Subscribe to changes in the orders assigned to the worker
|
|
416
|
+
*
|
|
417
|
+
* @param listener
|
|
418
|
+
* @returns EmitterSubscription
|
|
419
|
+
* @example
|
|
420
|
+
* ```js
|
|
421
|
+
* const subscription = HyperTrack.subscribeToOrders(orders => {
|
|
422
|
+
* ...
|
|
423
|
+
* })
|
|
424
|
+
*
|
|
425
|
+
* // later, to stop listening
|
|
426
|
+
* subscription.remove()
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
static subscribeToOrders(listener) {
|
|
430
|
+
return EventEmitter.addListener(EVENT_ORDERS, orders => {
|
|
431
|
+
listener(this.deserializeOrders(orders));
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
|
|
401
435
|
/** @ignore */
|
|
402
436
|
static deserializeDynamicPublishableKey(dynamicPublishableKey) {
|
|
403
437
|
if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {
|
|
@@ -417,6 +451,22 @@ class HyperTrack {
|
|
|
417
451
|
return res;
|
|
418
452
|
}
|
|
419
453
|
|
|
454
|
+
/** @ignore */
|
|
455
|
+
static deserializeIsInsideGeofence(isInsideGeofence) {
|
|
456
|
+
switch (isInsideGeofence.type) {
|
|
457
|
+
case 'success':
|
|
458
|
+
return {
|
|
459
|
+
type: 'success',
|
|
460
|
+
value: isInsideGeofence.value
|
|
461
|
+
};
|
|
462
|
+
case 'failure':
|
|
463
|
+
return {
|
|
464
|
+
type: 'failure',
|
|
465
|
+
value: this.deserializeLocationError(isInsideGeofence.value)
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
|
|
420
470
|
/** @ignore */
|
|
421
471
|
static deserializeLocateResponse(response) {
|
|
422
472
|
switch (response.type) {
|
|
@@ -500,6 +550,23 @@ class HyperTrack {
|
|
|
500
550
|
return name.value;
|
|
501
551
|
}
|
|
502
552
|
|
|
553
|
+
/** @ignore */
|
|
554
|
+
static deserializeOrders(orders) {
|
|
555
|
+
if (orders.type !== 'orders') {
|
|
556
|
+
throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);
|
|
557
|
+
}
|
|
558
|
+
let result = new Map();
|
|
559
|
+
Object.entries(orders.value).map(([_, value]) => {
|
|
560
|
+
return value;
|
|
561
|
+
}).sort((first, second) => first.index - second.index).forEach(orderInternal => {
|
|
562
|
+
result.set(orderInternal.orderHandle, {
|
|
563
|
+
orderHandle: orderInternal.orderHandle,
|
|
564
|
+
isInsideGeofence: this.deserializeIsInsideGeofence(orderInternal.isInsideGeofence)
|
|
565
|
+
});
|
|
566
|
+
});
|
|
567
|
+
return result;
|
|
568
|
+
}
|
|
569
|
+
|
|
503
570
|
/** @ignore */
|
|
504
571
|
static isLocation(obj) {
|
|
505
572
|
return 'latitude' in obj && typeof obj.latitude === 'number' && 'longitude' in obj && typeof obj.longitude === 'number';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_HyperTrackError","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","addGeotag","args","length","isOrderStatus","orderHandle","type","orderStatus","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","latitude","longitude","deserializeLocationWithDeviationResponse","JSON","stringify","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","getWorkerHandle","workerHandle","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","setWorkerHandle","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","res","map","error","keys","HyperTrackError","find","response","deserializeLocationError","locationError","locationWithDeviationInternal","locationInternal","deviation","startsWith","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\nimport type { OrderStatus } from './data_types/OrderStatus';\nimport type { OrderHandle } from './data_types/internal/OrderHandle';\nimport type { WorkerHandle } from './data_types/internal/WorkerHandle';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag\n *\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n static async addGeotag(\n ...args: any[]\n ): Promise<Result<Location | LocationWithDeviation, LocationError>> {\n if (\n args.length === 3 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object'\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 4 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object' &&\n HyperTrack.isLocation(args[3])\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[3].latitude,\n longitude: args[3].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n if (args.length === 1 && typeof args[0] === 'object') {\n // addGeotag(data: Object)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n // addGeotag(data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[1].latitude,\n longitude: args[1].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n *\n * @returns {string} Device ID\n */\n static async getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n static async getDynamicPublishableKey(): Promise<string> {\n return HyperTrackSdk.getDynamicPublishableKey().then(\n (dynamicPublishableKey: DynamicPublishableKey) =>\n this.deserializeDynamicPublishableKey(dynamicPublishableKey)\n );\n }\n\n /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n */\n static async getWorkerHandle(): Promise<string> {\n return HyperTrackSdk.getWorkerHandle().then(\n (workerHandle: WorkerHandle) => workerHandle.value\n );\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param availability true when is available or false when unavailable\n */\n static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n *\n * @param {string} workerHandle\n */\n static setWorkerHandle(workerHandle: string) {\n HyperTrackSdk.setWorkerHandle({\n type: 'workerHandle',\n value: workerHandle,\n } as WorkerHandle);\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type !== 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type !== 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type !== 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude === 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude === 'number'\n );\n }\n\n /** @ignore */\n private static isOrderStatus(obj: OrderStatus): obj is OrderStatus {\n return 'type' in obj && obj.type.startsWith('orderStatus');\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_HyperTrackError","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","EVENT_ERRORS","EVENT_IS_AVAILABLE","EVENT_IS_TRACKING","EVENT_LOCATE","EVENT_LOCATION","EVENT_ORDERS","LINKING_ERROR","Platform","select","ios","default","HyperTrackSdk","NativeModules","HyperTrackReactNativePlugin","Proxy","get","Error","EventEmitter","NativeEventEmitter","HyperTrack","addGeotag","args","length","isOrderStatus","orderHandle","type","orderStatus","data","expectedLocation","undefined","then","locationResponse","deserializeLocationResponse","isLocation","latitude","longitude","deserializeLocationWithDeviationResponse","JSON","stringify","getDeviceId","deviceId","getDynamicPublishableKey","dynamicPublishableKey","deserializeDynamicPublishableKey","getErrors","errors","deserializeHyperTrackErrors","getIsAvailable","isAvailable","getIsTracking","isTracking","getLocation","getMetadata","metadata","deserializeMetadata","getName","name","deserializeName","getOrders","orders","deserializeOrders","getWorkerHandle","workerHandle","locate","callback","_this$locateSubscript","locateSubscription","remove","addListener","location","deserializeLocateResponse","setDynamicPublishableKey","setIsAvailable","setIsTracking","setMetadata","setName","setWorkerHandle","subscribeToErrors","listener","rawErrors","subscribeToIsAvailable","subscribeToIsTracking","subscribeToLocation","subscribeToOrders","res","map","error","keys","HyperTrackError","find","deserializeIsInsideGeofence","isInsideGeofence","deserializeLocationError","response","locationError","locationWithDeviationInternal","locationInternal","deviation","result","Map","entries","_","sort","first","second","index","forEach","orderInternal","set","startsWith","exports"],"sources":["HyperTrack.ts"],"sourcesContent":["import {\n NativeModules,\n Platform,\n NativeEventEmitter,\n type EmitterSubscription,\n} from 'react-native';\nimport { HyperTrackError } from './data_types/HyperTrackError';\nimport type { IsAvailable } from './data_types/internal/IsAvailable';\nimport type { IsTracking } from './data_types/internal/IsTracking';\nimport type { Location } from './data_types/Location';\nimport type { LocationError } from './data_types/LocationError';\nimport type { DeviceId } from './data_types/internal/DeviceId';\nimport type { GeotagData } from './data_types/internal/GeotagData';\nimport type { Name } from './data_types/internal/Name';\nimport type { HyperTrackErrorInternal } from './data_types/internal/HyperTrackErrorInternal';\nimport type { LocationWithDeviation } from './data_types/LocationWithDeviation';\nimport type { LocationErrorInternal } from './data_types/internal/LocationErrorInternal';\nimport type { Result } from './data_types/Result';\nimport type { LocationInternal } from './data_types/internal/LocationInternal';\nimport type { LocationWithDeviationInternal } from './data_types/internal/LocationWithDeviationInternal';\nimport type { Metadata } from './data_types/internal/Metadata';\nimport type { DynamicPublishableKey } from './data_types/internal/DynamicPublishableKey';\nimport type { OrderStatus } from './data_types/OrderStatus';\nimport type { OrderHandle } from './data_types/internal/OrderHandle';\nimport type { WorkerHandle } from './data_types/internal/WorkerHandle';\nimport type { Order } from './data_types/Order';\nimport type { OrdersInternal } from './data_types/internal/OrdersInternal';\nimport type { OrderInternal } from './data_types/internal/OrderInternal';\n\nconst EVENT_ERRORS = 'errors';\nconst EVENT_IS_AVAILABLE = 'isAvailable';\nconst EVENT_IS_TRACKING = 'isTracking';\nconst EVENT_LOCATE = 'locate';\nconst EVENT_LOCATION = 'location';\nconst EVENT_ORDERS = 'orders';\n\nconst LINKING_ERROR =\n `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: \"- You have run 'pod install'\\n\", default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst HyperTrackSdk = NativeModules.HyperTrackReactNativePlugin\n ? NativeModules.HyperTrackReactNativePlugin\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n }\n );\n\nconst EventEmitter = new NativeEventEmitter(HyperTrackSdk);\n\nexport default class HyperTrack {\n private static locateSubscription: EmitterSubscription | undefined;\n\n /**\n * Adds a new geotag. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * Adds a new geotag with expected location. Check [Shift tracking](https://hypertrack.com/docs/shift-tracking) and [Clock In/Out tagging](https://hypertrack.com/docs/clock-inout-tracking) docs to learn how to use Order handle and Order status params.\n *\n * @param {string} orderHandle - Order handle\n * @param {OrderStatus} orderStatus - Order status\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n orderHandle: string,\n orderStatus: OrderStatus,\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag\n *\n * @param {Object} data - Geotag data JSON\n * @returns current location if success or LocationError if failure\n */\n static async addGeotag(\n data: Object\n ): Promise<Result<Location, LocationError>>;\n\n /**\n * @deprecated\n * Adds a new geotag with expected location\n *\n * @param {Object} data - Geotag data JSON\n * @param {Location} expectedLocation - Expected location\n * @returns location with deviation if success or LocationError if failure\n */\n static async addGeotag(\n data: Object,\n expectedLocation: Location\n ): Promise<Result<LocationWithDeviation, LocationError>>;\n\n static async addGeotag(\n ...args: any[]\n ): Promise<Result<Location | LocationWithDeviation, LocationError>> {\n if (\n args.length === 3 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object'\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 4 &&\n typeof args[0] === 'string' &&\n HyperTrack.isOrderStatus(args[1]) &&\n typeof args[2] === 'object' &&\n HyperTrack.isLocation(args[3])\n ) {\n // addGeotag(orderHandle: string, orderStatus: OrderStatus, data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n orderHandle: {\n type: 'orderHandle',\n value: args[0],\n } as OrderHandle,\n orderStatus: args[1],\n data: args[2],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[3].latitude,\n longitude: args[3].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n if (args.length === 1 && typeof args[0] === 'object') {\n // addGeotag(data: Object)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: undefined,\n } as GeotagData).then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n if (\n args.length === 2 &&\n typeof args[0] === 'object' &&\n HyperTrack.isLocation(args[1])\n ) {\n // addGeotag(data: Object, expectedLocation: Location)\n return HyperTrackSdk.addGeotag({\n data: args[0],\n expectedLocation: {\n type: 'location',\n value: {\n latitude: args[1].latitude,\n longitude: args[1].longitude,\n },\n } as LocationInternal,\n } as GeotagData).then(\n (\n locationResponse: Result<\n LocationWithDeviationInternal,\n LocationErrorInternal\n >\n ) => {\n return this.deserializeLocationWithDeviationResponse(\n locationResponse\n );\n }\n );\n }\n throw new Error(`Invalid addGeotag() arguments: ${JSON.stringify(args)}`);\n }\n\n /**\n * Returns a string that is used to uniquely identify the device\n *\n * @returns {string} Device ID\n */\n static async getDeviceId(): Promise<string> {\n return HyperTrackSdk.getDeviceId().then(\n (deviceId: DeviceId) => deviceId.value\n );\n }\n\n static async getDynamicPublishableKey(): Promise<string> {\n return HyperTrackSdk.getDynamicPublishableKey().then(\n (dynamicPublishableKey: DynamicPublishableKey) =>\n this.deserializeDynamicPublishableKey(dynamicPublishableKey)\n );\n }\n\n /**\n * Returns a list of errors that blocks SDK from tracking\n *\n * @returns {HyperTrackError[]} List of errors\n */\n static async getErrors(): Promise<HyperTrackError[]> {\n return HyperTrackSdk.getErrors().then(\n (errors: HyperTrackErrorInternal[]) => {\n return this.deserializeHyperTrackErrors(errors);\n }\n );\n }\n\n /**\n * Reflects availability of the device for the Nearby search\n *\n * @returns true when is available or false when unavailable\n */\n static async getIsAvailable(): Promise<boolean> {\n return HyperTrackSdk.getIsAvailable().then(\n (isAvailable: IsAvailable) => isAvailable.value\n );\n }\n\n /**\n * Reflects the tracking intent for the device\n *\n * @returns {boolean} Whether the user's movement data is getting tracked or not.\n */\n static async getIsTracking(): Promise<boolean> {\n return HyperTrackSdk.getIsTracking().then(\n (isTracking: IsTracking) => isTracking.value\n );\n }\n\n /**\n * Reflects the current location of the user or an outage reason\n */\n static async getLocation(): Promise<Result<Location, LocationError>> {\n return HyperTrackSdk.getLocation().then(\n (locationResponse: Result<LocationInternal, LocationErrorInternal>) => {\n return this.deserializeLocationResponse(locationResponse);\n }\n );\n }\n\n /**\n * Gets the metadata that is set for the device\n *\n * @returns {Object} Metadata JSON\n */\n static async getMetadata(): Promise<Object> {\n return HyperTrackSdk.getMetadata().then((metadata: Metadata) => {\n return this.deserializeMetadata(metadata);\n });\n }\n\n /**\n * Gets the name that is set for the device\n *\n * @returns {string} Device name\n */\n static async getName(): Promise<string> {\n return HyperTrackSdk.getName().then((name: Name) => {\n return this.deserializeName(name);\n });\n }\n\n /**\n * Gets the active orders for the worker. The orders are sorted with the ordering in \n * which the worker should complete them.\n *\n * @returns {Map<string, Order>} Map of orders\n */\n static async getOrders(): Promise<Map<string, Order>> {\n return HyperTrackSdk.getOrders().then((orders: OrdersInternal) => {\n return this.deserializeOrders(orders);\n });\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n */\n static async getWorkerHandle(): Promise<string> {\n return HyperTrackSdk.getWorkerHandle().then(\n (workerHandle: WorkerHandle) => workerHandle.value\n );\n }\n\n /**\n * Requests one-time location update and returns the location once it is available, or error.\n *\n * Only one locate subscription can be active at a time. If you re-subscribe, the old EmitterSubscription\n * will be automaticaly removed.\n *\n * This method will start location tracking if called, and will stop it when the location is received or\n * the subscription is cancelled. If any other tracking intent is present (e.g. isAvailable is set to `true`),\n * the tracking will not be stopped.\n *\n * @param callback\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.locate(location => {\n * ...\n * })\n *\n * // to unsubscribe\n * subscription.remove()\n * ```\n */\n static locate(\n callback: (location: Result<Location, HyperTrackError[]>) => void\n ) {\n this.locateSubscription?.remove();\n this.locateSubscription = EventEmitter.addListener(\n EVENT_LOCATE,\n (location: Result<LocationInternal, HyperTrackErrorInternal[]>) => {\n callback(this.deserializeLocateResponse(location));\n }\n );\n HyperTrackSdk.locate();\n return this.locateSubscription;\n }\n\n static setDynamicPublishableKey(dynamicPublishableKey: string) {\n HyperTrackSdk.setDynamicPublishableKey({\n type: 'dynamicPublishableKey',\n value: dynamicPublishableKey,\n } as DynamicPublishableKey);\n }\n\n /**\n * Sets the availability of the device for the Nearby search\n *\n * @param isAvailable true when is available or false when unavailable\n */\n static setIsAvailable(isAvailable: boolean) {\n HyperTrackSdk.setIsAvailable({\n type: 'isAvailable',\n value: isAvailable,\n } as IsAvailable);\n }\n\n /**\n * Sets the tracking intent for the device\n *\n * @param {boolean} isTracking\n */\n static setIsTracking(isTracking: boolean) {\n HyperTrackSdk.setIsTracking({\n type: 'isTracking',\n value: isTracking,\n } as IsTracking);\n }\n\n /**\n * Sets the metadata for the device\n *\n * @param {Object} data - Metadata JSON\n */\n static setMetadata(data: Object) {\n HyperTrackSdk.setMetadata({\n type: 'metadata',\n value: data,\n });\n }\n\n /**\n * Sets the name for the device\n *\n * @param {string} name\n */\n static setName(name: string) {\n HyperTrackSdk.setName({\n type: 'name',\n value: name,\n } as Name);\n }\n\n /**\n * A primary identifier that uniquely identifies the worker outside of HyperTrack.\n * Example: email, phone number, database id\n * It is usually obtained and set when the worker logs into the app.\n * Set it to an empty string \"\" when the worker logs out of the app to un-bind the device from the worker and\n * avoid unintentional tracking.\n *\n * @param {string} workerHandle\n */\n static setWorkerHandle(workerHandle: string) {\n HyperTrackSdk.setWorkerHandle({\n type: 'workerHandle',\n value: workerHandle,\n } as WorkerHandle);\n }\n\n /**\n * Subscribe to tracking errors\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToErrors(errors => {\n * errors.forEach(error => {\n * // ... error\n * })\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToErrors(\n listener: (errors: HyperTrackError[]) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_ERRORS,\n (rawErrors: HyperTrackErrorInternal[]) => {\n listener(this.deserializeHyperTrackErrors(rawErrors));\n }\n );\n }\n\n /**\n * Subscribe to availability changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsAvailable(isAvailable => {\n * if (isAvailable) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsAvailable(\n listener: (isAvailable: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_AVAILABLE,\n (isAvailable: IsAvailable) => {\n listener(isAvailable.value);\n }\n );\n }\n\n /**\n * Subscribe to tracking intent changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToIsTracking(isTracking => {\n * if (isTracking) {\n * // ... ready to go\n * }\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToIsTracking(\n listener: (isTracking: boolean) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(\n EVENT_IS_TRACKING,\n (isTracking: IsTracking) => {\n listener(isTracking.value);\n }\n );\n }\n\n /**\n * Subscribe to location changes\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToLocation(location => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToLocation(\n listener: (location: Result<Location, LocationError>) => void\n ) {\n return EventEmitter.addListener(\n EVENT_LOCATION,\n (location: Result<LocationInternal, LocationErrorInternal>) => {\n listener(this.deserializeLocationResponse(location));\n }\n );\n }\n\n /**\n * Subscribe to changes in the orders assigned to the worker\n *\n * @param listener\n * @returns EmitterSubscription\n * @example\n * ```js\n * const subscription = HyperTrack.subscribeToOrders(orders => {\n * ...\n * })\n *\n * // later, to stop listening\n * subscription.remove()\n * ```\n */\n static subscribeToOrders(\n listener: (orders: Map<string, Order>) => void\n ): EmitterSubscription {\n return EventEmitter.addListener(EVENT_ORDERS, (orders: OrdersInternal) => {\n listener(this.deserializeOrders(orders));\n });\n }\n\n /** @ignore */\n private static deserializeDynamicPublishableKey(\n dynamicPublishableKey: DynamicPublishableKey\n ): string {\n if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {\n throw new Error(\n `Invalid dynamicPublishableKey: ${JSON.stringify(\n dynamicPublishableKey\n )}`\n );\n }\n return dynamicPublishableKey.value;\n }\n\n /** @ignore */\n private static deserializeHyperTrackErrors(\n errors: HyperTrackErrorInternal[]\n ): HyperTrackError[] {\n let res = errors.map((error: HyperTrackErrorInternal) => {\n if (error.type !== 'error') {\n throw new Error('Invalid error type');\n }\n return Object.keys(HyperTrackError).find(\n (key) =>\n HyperTrackError[key as keyof typeof HyperTrackError] === error.value\n ) as HyperTrackError;\n });\n return res;\n }\n\n /** @ignore */\n private static deserializeIsInsideGeofence(\n isInsideGeofence: Result<boolean, LocationErrorInternal>\n ): Result<boolean, LocationError> {\n switch (isInsideGeofence.type) {\n case 'success':\n return {\n type: 'success',\n value: isInsideGeofence.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(isInsideGeofence.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocateResponse(\n response: Result<LocationInternal, HyperTrackErrorInternal[]>\n ): Result<Location, HyperTrackError[]> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeHyperTrackErrors(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationError(\n locationError: LocationErrorInternal\n ): LocationError {\n switch (locationError.type) {\n case 'notRunning':\n case 'starting':\n return locationError;\n case 'errors':\n return {\n type: 'errors',\n value: this.deserializeHyperTrackErrors(locationError.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationResponse(\n response: Result<LocationInternal, LocationErrorInternal>\n ): Result<Location, LocationError> {\n switch (response.type) {\n case 'success':\n return {\n type: 'success',\n value: response.value.value,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeLocationWithDeviationResponse(\n response: Result<LocationWithDeviationInternal, LocationErrorInternal>\n ): Result<LocationWithDeviation, LocationError> {\n switch (response.type) {\n case 'success':\n const locationWithDeviationInternal: LocationWithDeviationInternal =\n response.value;\n const locationInternal: LocationInternal =\n locationWithDeviationInternal.value.location;\n\n return {\n type: 'success',\n value: {\n location: locationInternal.value,\n deviation: locationWithDeviationInternal.value.deviation,\n } as LocationWithDeviation,\n };\n case 'failure':\n return {\n type: 'failure',\n value: this.deserializeLocationError(response.value),\n };\n }\n }\n\n /** @ignore */\n private static deserializeMetadata(metadata: Metadata): Object {\n if (metadata.type !== 'metadata') {\n throw new Error(`Invalid metadata: ${JSON.stringify(metadata)}`);\n }\n return metadata.value;\n }\n\n /** @ignore */\n private static deserializeName(name: Name): string {\n if (name.type !== 'name') {\n throw new Error(`Invalid name: ${JSON.stringify(name)}`);\n }\n return name.value;\n }\n\n /** @ignore */\n private static deserializeOrders(orders: OrdersInternal): Map<string, Order> {\n if (orders.type !== 'orders') {\n throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);\n }\n let result = new Map<string, Order>();\n Object.entries(orders.value)\n .map(([_, value]: [string, OrderInternal]) => {\n return value;\n })\n .sort(\n (first: OrderInternal, second: OrderInternal) =>\n first.index - second.index\n )\n .forEach((orderInternal: OrderInternal) => {\n result.set(orderInternal.orderHandle, {\n orderHandle: orderInternal.orderHandle,\n isInsideGeofence: this.deserializeIsInsideGeofence(\n orderInternal.isInsideGeofence\n ),\n } as Order);\n });\n return result;\n }\n\n /** @ignore */\n private static isLocation(obj: Location): obj is Location {\n return (\n 'latitude' in obj &&\n typeof obj.latitude === 'number' &&\n 'longitude' in obj &&\n typeof obj.longitude === 'number'\n );\n }\n\n /** @ignore */\n private static isOrderStatus(obj: OrderStatus): obj is OrderStatus {\n return 'type' in obj && obj.type.startsWith('orderStatus');\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["Order.ts"],"sourcesContent":["import type { Result } from './Result';\nimport type { LocationError } from './LocationError';\n\nexport type Order = {\n orderHandle: string;\n isInsideGeofence: Result<boolean, LocationError>;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["OrderInternal.ts"],"sourcesContent":["import type { Result } from '../Result';\nimport type { LocationErrorInternal } from './LocationErrorInternal';\n\nexport type OrderInternal = {\n orderHandle: string;\n isInsideGeofence: Result<boolean, LocationErrorInternal>;\n index: number;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["OrdersInternal.ts"],"sourcesContent":["export type OrdersInternal = {\n type: 'orders';\n value: object;\n};\n"],"mappings":""}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,18 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "Errors", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _LocationError.Errors;
|
|
10
|
-
}
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(exports, "Failure", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _Result.Failure;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
6
|
Object.defineProperty(exports, "HyperTrack", {
|
|
19
7
|
enumerable: true,
|
|
20
8
|
get: function () {
|
|
@@ -27,63 +15,9 @@ Object.defineProperty(exports, "HyperTrackError", {
|
|
|
27
15
|
return _HyperTrackError.HyperTrackError;
|
|
28
16
|
}
|
|
29
17
|
});
|
|
30
|
-
Object.defineProperty(exports, "Location", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () {
|
|
33
|
-
return _Location.Location;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
Object.defineProperty(exports, "LocationError", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _LocationError.LocationError;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
Object.defineProperty(exports, "LocationWithDeviation", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function () {
|
|
45
|
-
return _LocationWithDeviation.LocationWithDeviation;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
Object.defineProperty(exports, "NotRunning", {
|
|
49
|
-
enumerable: true,
|
|
50
|
-
get: function () {
|
|
51
|
-
return _LocationErrorInternal.NotRunning;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(exports, "OrderStatus", {
|
|
55
|
-
enumerable: true,
|
|
56
|
-
get: function () {
|
|
57
|
-
return _OrderStatus.OrderStatus;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
Object.defineProperty(exports, "Result", {
|
|
61
|
-
enumerable: true,
|
|
62
|
-
get: function () {
|
|
63
|
-
return _Result.Result;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
Object.defineProperty(exports, "Starting", {
|
|
67
|
-
enumerable: true,
|
|
68
|
-
get: function () {
|
|
69
|
-
return _LocationErrorInternal.Starting;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
Object.defineProperty(exports, "Success", {
|
|
73
|
-
enumerable: true,
|
|
74
|
-
get: function () {
|
|
75
|
-
return _Result.Success;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
18
|
exports.default = void 0;
|
|
79
19
|
var _HyperTrack = _interopRequireDefault(require("./HyperTrack/HyperTrack"));
|
|
80
20
|
var _HyperTrackError = require("./HyperTrack/data_types/HyperTrackError");
|
|
81
|
-
var _LocationErrorInternal = require("./HyperTrack/data_types/internal/LocationErrorInternal");
|
|
82
|
-
var _LocationError = require("./HyperTrack/data_types/LocationError");
|
|
83
|
-
var _LocationWithDeviation = require("./HyperTrack/data_types/LocationWithDeviation");
|
|
84
|
-
var _Location = require("./HyperTrack/data_types/Location");
|
|
85
|
-
var _Result = require("./HyperTrack/data_types/Result");
|
|
86
|
-
var _OrderStatus = require("./HyperTrack/data_types/OrderStatus");
|
|
87
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
88
22
|
var _default = exports.default = _HyperTrack.default;
|
|
89
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_HyperTrack","_interopRequireDefault","require","_HyperTrackError","
|
|
1
|
+
{"version":3,"names":["_HyperTrack","_interopRequireDefault","require","_HyperTrackError","obj","__esModule","default","_default","exports","HyperTrack"],"sources":["index.tsx"],"sourcesContent":["import HyperTrack from './HyperTrack/HyperTrack';\nexport default HyperTrack;\nexport { HyperTrack };\nexport { HyperTrackError } from './HyperTrack/data_types/HyperTrackError';\nexport type {\n NotRunning,\n Starting,\n} from './HyperTrack/data_types/internal/LocationErrorInternal';\nexport type {\n LocationError,\n Errors,\n} from './HyperTrack/data_types/LocationError';\nexport type { LocationWithDeviation } from './HyperTrack/data_types/LocationWithDeviation';\nexport type { Location } from './HyperTrack/data_types/Location';\nexport type { Order } from './HyperTrack/data_types/Order';\nexport type { OrderStatus } from './HyperTrack/data_types/OrderStatus';\nexport type { Result, Success, Failure } from './HyperTrack/data_types/Result';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,gBAAA,GAAAD,OAAA;AAA0E,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAF3DG,mBAAU"}
|
|
@@ -8,6 +8,7 @@ const EVENT_IS_AVAILABLE = 'isAvailable';
|
|
|
8
8
|
const EVENT_IS_TRACKING = 'isTracking';
|
|
9
9
|
const EVENT_LOCATE = 'locate';
|
|
10
10
|
const EVENT_LOCATION = 'location';
|
|
11
|
+
const EVENT_ORDERS = 'orders';
|
|
11
12
|
const LINKING_ERROR = `The package 'hypertrack-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
12
13
|
ios: "- You have run 'pod install'\n",
|
|
13
14
|
default: ''
|
|
@@ -189,6 +190,18 @@ export default class HyperTrack {
|
|
|
189
190
|
});
|
|
190
191
|
}
|
|
191
192
|
|
|
193
|
+
/**
|
|
194
|
+
* Gets the active orders for the worker. The orders are sorted with the ordering in
|
|
195
|
+
* which the worker should complete them.
|
|
196
|
+
*
|
|
197
|
+
* @returns {Map<string, Order>} Map of orders
|
|
198
|
+
*/
|
|
199
|
+
static async getOrders() {
|
|
200
|
+
return HyperTrackSdk.getOrders().then(orders => {
|
|
201
|
+
return this.deserializeOrders(orders);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
|
|
192
205
|
/**
|
|
193
206
|
* A primary identifier that uniquely identifies the worker outside of HyperTrack.
|
|
194
207
|
* Example: email, phone number, database id
|
|
@@ -241,7 +254,7 @@ export default class HyperTrack {
|
|
|
241
254
|
/**
|
|
242
255
|
* Sets the availability of the device for the Nearby search
|
|
243
256
|
*
|
|
244
|
-
* @param
|
|
257
|
+
* @param isAvailable true when is available or false when unavailable
|
|
245
258
|
*/
|
|
246
259
|
static setIsAvailable(isAvailable) {
|
|
247
260
|
HyperTrackSdk.setIsAvailable({
|
|
@@ -392,6 +405,27 @@ export default class HyperTrack {
|
|
|
392
405
|
});
|
|
393
406
|
}
|
|
394
407
|
|
|
408
|
+
/**
|
|
409
|
+
* Subscribe to changes in the orders assigned to the worker
|
|
410
|
+
*
|
|
411
|
+
* @param listener
|
|
412
|
+
* @returns EmitterSubscription
|
|
413
|
+
* @example
|
|
414
|
+
* ```js
|
|
415
|
+
* const subscription = HyperTrack.subscribeToOrders(orders => {
|
|
416
|
+
* ...
|
|
417
|
+
* })
|
|
418
|
+
*
|
|
419
|
+
* // later, to stop listening
|
|
420
|
+
* subscription.remove()
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
423
|
+
static subscribeToOrders(listener) {
|
|
424
|
+
return EventEmitter.addListener(EVENT_ORDERS, orders => {
|
|
425
|
+
listener(this.deserializeOrders(orders));
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
|
|
395
429
|
/** @ignore */
|
|
396
430
|
static deserializeDynamicPublishableKey(dynamicPublishableKey) {
|
|
397
431
|
if (dynamicPublishableKey.type !== 'dynamicPublishableKey') {
|
|
@@ -411,6 +445,22 @@ export default class HyperTrack {
|
|
|
411
445
|
return res;
|
|
412
446
|
}
|
|
413
447
|
|
|
448
|
+
/** @ignore */
|
|
449
|
+
static deserializeIsInsideGeofence(isInsideGeofence) {
|
|
450
|
+
switch (isInsideGeofence.type) {
|
|
451
|
+
case 'success':
|
|
452
|
+
return {
|
|
453
|
+
type: 'success',
|
|
454
|
+
value: isInsideGeofence.value
|
|
455
|
+
};
|
|
456
|
+
case 'failure':
|
|
457
|
+
return {
|
|
458
|
+
type: 'failure',
|
|
459
|
+
value: this.deserializeLocationError(isInsideGeofence.value)
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
|
|
414
464
|
/** @ignore */
|
|
415
465
|
static deserializeLocateResponse(response) {
|
|
416
466
|
switch (response.type) {
|
|
@@ -494,6 +544,23 @@ export default class HyperTrack {
|
|
|
494
544
|
return name.value;
|
|
495
545
|
}
|
|
496
546
|
|
|
547
|
+
/** @ignore */
|
|
548
|
+
static deserializeOrders(orders) {
|
|
549
|
+
if (orders.type !== 'orders') {
|
|
550
|
+
throw new Error(`Invalid orders: ${JSON.stringify(orders)}`);
|
|
551
|
+
}
|
|
552
|
+
let result = new Map();
|
|
553
|
+
Object.entries(orders.value).map(([_, value]) => {
|
|
554
|
+
return value;
|
|
555
|
+
}).sort((first, second) => first.index - second.index).forEach(orderInternal => {
|
|
556
|
+
result.set(orderInternal.orderHandle, {
|
|
557
|
+
orderHandle: orderInternal.orderHandle,
|
|
558
|
+
isInsideGeofence: this.deserializeIsInsideGeofence(orderInternal.isInsideGeofence)
|
|
559
|
+
});
|
|
560
|
+
});
|
|
561
|
+
return result;
|
|
562
|
+
}
|
|
563
|
+
|
|
497
564
|
/** @ignore */
|
|
498
565
|
static isLocation(obj) {
|
|
499
566
|
return 'latitude' in obj && typeof obj.latitude === 'number' && 'longitude' in obj && typeof obj.longitude === 'number';
|