UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

189 lines (188 loc) 7.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.portSequenceStateSchema = exports.portSetSchema = exports.getPortsResponseSchema = exports.portStatusSchema = exports.audioSampleRatesResponseSchema = exports.timeZoneSchema = exports.dateTimeinfoSchema = exports.maxFpsResponseSchema = exports.audioDeviceRequestSchema = exports.audioDeviceSchema = exports.audioDeviceInputOutputSchema = exports.audioDeviceConnectionTypeSchema = exports.audioDeviceSignalingTypeSchema = exports.audioDeviceSignalingChannelTypeSchema = exports.cameraPTZItemSchema = exports.cameraPTZItemDataSchema = exports.ptzOverviewSchema = exports.sdCardInfoSchema = exports.sdCardWatchedStatuses = exports.guardTourSchema = exports.APP_IDS = exports.applicationListSchema = exports.applicationSchema = void 0; const zod_1 = require("zod"); const transformers_1 = require("../internal/transformers"); exports.applicationSchema = zod_1.z.object({ Name: zod_1.z.string(), NiceName: zod_1.z.string(), Vendor: zod_1.z.string(), Version: zod_1.z.string(), ApplicationID: zod_1.z.string().optional(), License: zod_1.z.string(), Status: zod_1.z.string(), ConfigurationPage: zod_1.z.string().optional(), VendorHomePage: zod_1.z.string().optional(), LicenseName: zod_1.z.string().optional(), }); exports.applicationListSchema = zod_1.z.array(exports.applicationSchema.extend({ appId: zod_1.z .union([ zod_1.z.literal('CamStreamer'), zod_1.z.literal('CamSwitcher'), zod_1.z.literal('CamOverlay'), zod_1.z.literal('CamScripter'), zod_1.z.literal('PlaneTracker'), zod_1.z.literal('Ndihxplugin'), zod_1.z.literal('SportTracker'), ]) .nullable(), })); exports.APP_IDS = [ 'CamStreamer', 'CamSwitcher', 'CamOverlay', 'CamScripter', 'PlaneTracker', 'Ndihxplugin', 'SportTracker', ]; exports.guardTourSchema = zod_1.z.object({ id: zod_1.z.string(), camNbr: zod_1.z.unknown(), name: zod_1.z.string(), randomEnabled: zod_1.z.unknown(), running: zod_1.z.string(), timeBetweenSequences: zod_1.z.unknown(), tour: zod_1.z.array(zod_1.z.object({ moveSpeed: zod_1.z.unknown(), position: zod_1.z.unknown(), presetNbr: zod_1.z.unknown(), waitTime: zod_1.z.unknown(), waitTimeViewType: zod_1.z.unknown(), })), }); const audioSampleRatesSchema = zod_1.z.object({ sample_rate: zod_1.z.number(), bit_rates: zod_1.z.array(zod_1.z.number()), }); const audioSampleRatesOutSchema = audioSampleRatesSchema.transform(transformers_1.toCamelCaseDeep); exports.sdCardWatchedStatuses = ['OK', 'connected', 'disconnected']; exports.sdCardInfoSchema = zod_1.z.object({ status: zod_1.z.enum(exports.sdCardWatchedStatuses), totalSize: zod_1.z.number(), freeSize: zod_1.z.number(), }); exports.ptzOverviewSchema = zod_1.z.record(zod_1.z.number(), zod_1.z.array(zod_1.z.object({ id: zod_1.z.number(), name: zod_1.z.string() }))); exports.cameraPTZItemDataSchema = zod_1.z.object({ pan: zod_1.z.number().optional(), tilt: zod_1.z.number().optional(), zoom: zod_1.z.number().optional(), }); exports.cameraPTZItemSchema = zod_1.z.object({ name: zod_1.z.string(), id: zod_1.z.number(), data: exports.cameraPTZItemDataSchema, }); exports.audioDeviceSignalingChannelTypeSchema = zod_1.z.object({ id: zod_1.z.string(), gain: zod_1.z.number(), mute: zod_1.z.boolean(), }); exports.audioDeviceSignalingTypeSchema = zod_1.z.object({ id: zod_1.z.string(), powerType: zod_1.z.string().optional(), channels: zod_1.z.array(exports.audioDeviceSignalingChannelTypeSchema), }); exports.audioDeviceConnectionTypeSchema = zod_1.z.object({ id: zod_1.z.string(), signalingTypeSelected: zod_1.z.string(), signalingTypes: zod_1.z.array(exports.audioDeviceSignalingTypeSchema), }); exports.audioDeviceInputOutputSchema = zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string(), enabled: zod_1.z.boolean(), connectionTypes: zod_1.z.array(exports.audioDeviceConnectionTypeSchema), connectionTypeSelected: zod_1.z.string(), }); exports.audioDeviceSchema = zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string(), inputs: zod_1.z.array(exports.audioDeviceInputOutputSchema), outputs: zod_1.z.array(exports.audioDeviceInputOutputSchema), }); const audioDeviceFromRequestSchema = zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string(), inputs: zod_1.z.array(exports.audioDeviceInputOutputSchema).optional(), outputs: zod_1.z.array(exports.audioDeviceInputOutputSchema).optional(), }); exports.audioDeviceRequestSchema = zod_1.z.object({ data: zod_1.z.object({ devices: zod_1.z.array(audioDeviceFromRequestSchema) }), }); exports.maxFpsResponseSchema = zod_1.z.object({ data: zod_1.z .array(zod_1.z.object({ channel: zod_1.z.number(), captureMode: zod_1.z.array(zod_1.z.object({ enabled: zod_1.z.boolean(), maxFPS: zod_1.z.number().optional(), })), })) .optional(), }); exports.dateTimeinfoSchema = zod_1.z.object({ data: zod_1.z.object({ dateTime: zod_1.z.string(), dstEnabled: zod_1.z.boolean(), localDateTime: zod_1.z.string(), posixTimeZone: zod_1.z.string(), timeZone: zod_1.z.string().optional(), }), }); exports.timeZoneSchema = zod_1.z.discriminatedUnion('status', [ zod_1.z.object({ status: zod_1.z.literal('success'), data: zod_1.z.object({ activeTimeZone: zod_1.z.string(), }), }), zod_1.z.object({ status: zod_1.z.literal('error'), error: zod_1.z.object({ message: zod_1.z.string(), }), }), ]); exports.audioSampleRatesResponseSchema = zod_1.z.object({ data: zod_1.z.object({ encoders: zod_1.z .object({ aac: zod_1.z.array(audioSampleRatesSchema), AAC: zod_1.z.array(audioSampleRatesSchema), }) .partial(), }), }); exports.portStatusSchema = zod_1.z.object({ port: zod_1.z.string(), state: zod_1.z.enum(['open', 'closed']), configurable: zod_1.z.boolean(), readonly: zod_1.z.boolean().optional(), usage: zod_1.z.string(), direction: zod_1.z.enum(['input', 'output']), name: zod_1.z.string(), normalState: zod_1.z.enum(['open', 'closed']), }); exports.getPortsResponseSchema = zod_1.z.object({ apiVersion: zod_1.z.string(), context: zod_1.z.string(), method: zod_1.z.literal('getPorts'), data: zod_1.z.object({ numberOfPorts: zod_1.z.number(), items: zod_1.z.array(exports.portStatusSchema), }), }); exports.portSetSchema = zod_1.z.object({ port: zod_1.z.string(), state: zod_1.z.enum(['open', 'closed']), usage: zod_1.z.string().optional(), direction: zod_1.z.enum(['input', 'output']).optional(), name: zod_1.z.string().optional(), normalState: zod_1.z.enum(['open', 'closed']).optional(), }); exports.portSequenceStateSchema = zod_1.z.object({ state: zod_1.z.enum(['open', 'closed']), time: zod_1.z.number().min(0).max(65535), });