camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
189 lines (188 loc) • 7.23 kB
JavaScript
"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),
});