UNPKG

fleeta-api-lib

Version:

A comprehensive library for fleet management applications - API, Auth, Device management

175 lines 5.87 kB
/** * GPS WebSocket SDK Type Definitions * Defines all types for GPS WebSocket communication * * Protocol Specification: * - Data encoding: JSON * - Transport: WebSocket client connection * - Request format: wsClient.send(JSON.stringify(payload)) */ export interface BaseRequest { action: string; sequenceId: number; } export type DeviceActive = "on" | "off"; export type ShareVideo = "on" | "off"; export type Mode = "0" | "1"; export interface DeviceGpsInfo { psn: string; active: DeviceActive; dev_name?: string; share_video: ShareVideo; mode?: Mode; speed?: number; UseGpsInfo?: string; dir_angle?: number | "undefined"; latitude: number; longitude: number; } export interface WsMessage<T = any> { resultcode: string; message: string; response: T; } export type GpsWsEvent = "open" | "close" | "error" | "message" | "deviceGps" | "raw"; export type GpsConnectionState = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'disconnected' | 'failed'; export type GpsWsEventHandler<T = any> = (data: T) => void; export interface GpsWebSocketSDKOptions { url: string; token?: string; email?: string; authMethod?: 'query' | 'header' | 'message'; maxReconnectAttempts?: number; reconnectDelay?: number; requestTimeout?: number; } export interface GpsZoneNoAuthRequest { action: "gpsZoneNoAuth"; sw: string; ne: string; sequenceId?: number; } export interface GpsZoneNoAuthData { action: "gpsZoneNoAuth"; sequenceId: number; device_list?: DeviceGpsInfo[]; zone?: any[]; } export type GpsZoneNoAuthResponse = WsMessage<GpsZoneNoAuthData>; export interface GpsZoneMyDevicesRequest { action: "gpsZoneMyDevices"; email: string; sw: string; ne: string; sequenceId?: number; } export interface GpsZoneMyDevicesData { action: "gpsZoneMyDevices"; sequenceId: number; device_list: DeviceGpsInfo[]; myzone?: any[]; } export type GpsZoneMyDevicesResponse = WsMessage<GpsZoneMyDevicesData>; export interface GpsZoneAllDevicesRequest { action: "gpsZoneAllDevices"; email: string; sw: string; ne: string; sequenceId?: number; } export interface GpsZoneAllDevicesData { action: "gpsZoneAllDevices"; sequenceId: number; device_list: DeviceGpsInfo[]; zone?: any[]; } export type GpsZoneAllDevicesResponse = WsMessage<GpsZoneAllDevicesData>; export interface GpsZoneGroupMyDevicesRequest { action: "gpsZoneGroupMyDevices"; email: string; sw: string; ne: string; groupIdList: string[]; sequenceId?: number; } export interface GpsZoneGroupMyDevicesData { action: "gpsZoneGroupMyDevices"; sequenceId: number; device_list: DeviceGpsInfo[]; myzone?: any[]; } export type GpsZoneGroupMyDevicesResponse = WsMessage<GpsZoneGroupMyDevicesData>; export interface GpsZoneGroupAllDevicesRequest { action: "gpsZoneGroupAllDevices"; email: string; sw: string; ne: string; groupIdList: string[]; sequenceId?: number; } export interface GpsZoneGroupAllDevicesData { action: "gpsZoneGroupAllDevices"; sequenceId: number; device_list: DeviceGpsInfo[]; zone?: any[]; } export type GpsZoneGroupAllDevicesResponse = WsMessage<GpsZoneGroupAllDevicesData>; export interface GpsPsnsMyDevicesRequest { action: "gpsPsnsMyDevices"; email: string; sequenceId?: number; } export interface GpsPsnsMyDevicesData { action: "gpsPsnsMyDevices"; sequenceId: number; device_list: DeviceGpsInfo[]; } export type GpsPsnsMyDevicesResponse = WsMessage<GpsPsnsMyDevicesData>; export interface GpsPsnsSpecificDeviceRequest { action: "gpsPsnsSpecificDevice"; email: string; psn: string; sequenceId?: number; } export interface GpsPsnsSpecificDeviceData { action: "gpsPsnsSpecificDevice"; sequenceId: number; device: DeviceGpsInfo; } export type GpsPsnsSpecificDeviceResponse = WsMessage<GpsPsnsSpecificDeviceData>; export interface GpsPsnsMultiLiveViewRequest { action: "gpsPsnsMultiLiveView"; email: string; psns: string[]; sequenceId?: number; } export interface GpsPsnsMultiLiveViewData { action: "gpsPsnsMultiLiveView"; sequenceId: number; device_list: DeviceGpsInfo[]; } export type GpsPsnsMultiLiveViewResponse = WsMessage<GpsPsnsMultiLiveViewData>; export type GpsWebSocketRequest = GpsZoneNoAuthRequest | GpsZoneMyDevicesRequest | GpsZoneAllDevicesRequest | GpsZoneGroupMyDevicesRequest | GpsZoneGroupAllDevicesRequest | GpsPsnsMyDevicesRequest | GpsPsnsSpecificDeviceRequest | GpsPsnsMultiLiveViewRequest; export type GpsWebSocketResponse = GpsZoneNoAuthResponse | GpsZoneMyDevicesResponse | GpsZoneAllDevicesResponse | GpsZoneGroupMyDevicesResponse | GpsZoneGroupAllDevicesResponse | GpsPsnsMyDevicesResponse | GpsPsnsSpecificDeviceResponse | GpsPsnsMultiLiveViewResponse; export type ActionRequestMap = { gpsZoneNoAuth: GpsZoneNoAuthRequest; gpsZoneMyDevices: GpsZoneMyDevicesRequest; gpsZoneAllDevices: GpsZoneAllDevicesRequest; gpsZoneGroupMyDevices: GpsZoneGroupMyDevicesRequest; gpsZoneGroupAllDevices: GpsZoneGroupAllDevicesRequest; gpsPsnsMyDevices: GpsPsnsMyDevicesRequest; gpsPsnsSpecificDevice: GpsPsnsSpecificDeviceRequest; gpsPsnsMultiLiveView: GpsPsnsMultiLiveViewRequest; }; export type ActionResponseMap = { gpsZoneNoAuth: GpsZoneNoAuthResponse; gpsZoneMyDevices: GpsZoneMyDevicesResponse; gpsZoneAllDevices: GpsZoneAllDevicesResponse; gpsZoneGroupMyDevices: GpsZoneGroupMyDevicesResponse; gpsZoneGroupAllDevices: GpsZoneGroupAllDevicesResponse; gpsPsnsMyDevices: GpsPsnsMyDevicesResponse; gpsPsnsSpecificDevice: GpsPsnsSpecificDeviceResponse; gpsPsnsMultiLiveView: GpsPsnsMultiLiveViewResponse; }; export type ActionKey = keyof ActionRequestMap; //# sourceMappingURL=types.d.ts.map