camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
119 lines (118 loc) • 4.84 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ptrEventsSchema = exports.PlaneTrackerUserActions = exports.PlaneTrackerWsEvents = void 0;
const zod_1 = require("zod");
const apiFlightDataSchema = zod_1.z.object({
icao: zod_1.z.string(),
lat: zod_1.z.number(),
lon: zod_1.z.number(),
heading: zod_1.z.number(),
groundSpeed: zod_1.z.number(),
altitudeAMSL: zod_1.z.number(),
cameraDistance: zod_1.z.number(),
autoTrackingOrder: zod_1.z.number(),
whiteListed: zod_1.z.boolean(),
blackListed: zod_1.z.boolean(),
priorityListed: zod_1.z.boolean(),
autoSelectionIgnored: zod_1.z.boolean(),
signalQuality: zod_1.z.number(),
emergencyState: zod_1.z.boolean(),
emergencyStatusMessage: zod_1.z.string(),
});
const apiUserSchema = zod_1.z.object({
userId: zod_1.z.string(),
userName: zod_1.z.string(),
userPriority: zod_1.z.number(),
ip: zod_1.z.string(),
});
const apiStringUserSchema = zod_1.z.object({
userId: zod_1.z.string(),
userName: zod_1.z.string(),
userPriority: zod_1.z.string(),
});
var PlaneTrackerWsEvents;
(function (PlaneTrackerWsEvents) {
PlaneTrackerWsEvents["FLIGHT_LIST"] = "FLIGHT_LIST";
PlaneTrackerWsEvents["CAMERA_POSITION"] = "CAMERA_POSITION";
PlaneTrackerWsEvents["TRACKING_START"] = "TRACKING_START";
PlaneTrackerWsEvents["TRACKING_STOP"] = "TRACKING_STOP";
PlaneTrackerWsEvents["USER_ACTION"] = "USER_ACTION";
PlaneTrackerWsEvents["CONNECTED_USERS"] = "CONNECTED_USERS";
PlaneTrackerWsEvents["FORCE_TRACKING_STATUS"] = "FORCE_TRACKING_STATUS";
})(PlaneTrackerWsEvents || (exports.PlaneTrackerWsEvents = PlaneTrackerWsEvents = {}));
var PlaneTrackerUserActions;
(function (PlaneTrackerUserActions) {
PlaneTrackerUserActions["TRACK_ICAO"] = "trackIcao.cgi";
PlaneTrackerUserActions["RESET_ICAO"] = "resetIcao.cgi";
PlaneTrackerUserActions["SET_PRIORITY_LIST"] = "setPriorityList.cgi";
PlaneTrackerUserActions["SET_BLACK_LIST"] = "setBlackList.cgi";
PlaneTrackerUserActions["SET_WHITE_LIST"] = "setWhiteList.cgi";
PlaneTrackerUserActions["GO_TO_COORDINATES"] = "goToCoordinates.cgi";
PlaneTrackerUserActions["SET_TRACKING_MODE"] = "setTrackingMode.cgi";
PlaneTrackerUserActions["SET_ZONES"] = "setZones.cgi";
PlaneTrackerUserActions["RESET_PTZ_CALIBRATION"] = "resetPtzCalibration.cgi";
PlaneTrackerUserActions["LOCK_API"] = "lockApi.cgi";
PlaneTrackerUserActions["UNLOCK_API"] = "unlockApi.cgi";
})(PlaneTrackerUserActions || (exports.PlaneTrackerUserActions = PlaneTrackerUserActions = {}));
const ptrEventsDataSchema = zod_1.z.discriminatedUnion('type', [
zod_1.z.object({
type: zod_1.z.literal('CAMERA_POSITION'),
lat: zod_1.z.number(),
lon: zod_1.z.number(),
azimuth: zod_1.z.number().min(0).max(360),
elevation: zod_1.z.number().min(-90).max(90),
fov: zod_1.z.number(),
}),
zod_1.z.object({
type: zod_1.z.literal('TRACKING_START'),
icao: zod_1.z.string(),
}),
zod_1.z.object({
type: zod_1.z.literal('TRACKING_STOP'),
}),
zod_1.z.object({
type: zod_1.z.literal('FLIGHT_LIST'),
list: zod_1.z.array(apiFlightDataSchema),
}),
zod_1.z.object({
type: zod_1.z.literal('USER_ACTION'),
ip: zod_1.z.string(),
params: apiStringUserSchema.extend({
lat: zod_1.z.string().optional(),
lon: zod_1.z.string().optional(),
timeout: zod_1.z.string().optional(),
}),
cgi: zod_1.z.enum([
PlaneTrackerUserActions.TRACK_ICAO,
PlaneTrackerUserActions.RESET_ICAO,
PlaneTrackerUserActions.SET_PRIORITY_LIST,
PlaneTrackerUserActions.SET_BLACK_LIST,
PlaneTrackerUserActions.SET_WHITE_LIST,
PlaneTrackerUserActions.GO_TO_COORDINATES,
PlaneTrackerUserActions.SET_TRACKING_MODE,
PlaneTrackerUserActions.SET_ZONES,
PlaneTrackerUserActions.RESET_PTZ_CALIBRATION,
PlaneTrackerUserActions.LOCK_API,
PlaneTrackerUserActions.UNLOCK_API,
]),
postJsonBody: zod_1.z.any(),
}),
zod_1.z.object({
type: zod_1.z.literal('CONNECTED_USERS'),
users: zod_1.z.array(apiUserSchema),
}),
zod_1.z.object({
type: zod_1.z.literal('FORCE_TRACKING_STATUS'),
enabled: zod_1.z.boolean(),
icao: zod_1.z.string().optional(),
}),
zod_1.z.object({
type: zod_1.z.literal('API_LOCK_STATUS'),
isLocked: zod_1.z.boolean(),
user: apiUserSchema.optional(),
}),
]);
exports.ptrEventsSchema = zod_1.z.discriminatedUnion('type', [
zod_1.z.object({ type: zod_1.z.literal('init'), data: ptrEventsDataSchema }),
...ptrEventsDataSchema.options,
]);