UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

223 lines (222 loc) 9.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.diagnosticsSchema = exports.diagnosticsParamsSchema = exports.srtStreamStatisticsSchema = exports.streamStatsSchema = exports.audioLocalSchema = exports.audioUrlSchema = exports.audioFileListSchema = exports.audioFileSchema = exports.storageListSchema = exports.audioFileStorageTypeSchema = exports.AudioType = exports.isYoutubeRtmpStream = exports.isGameChangerStream = exports.isMicrosoftStream = exports.isMicrosoftAzureStream = exports.isIbmStream = exports.isDailymotionStream = exports.isWowzaStream = exports.isHlsPushStream = exports.isHlsPullStream = exports.isDaCastStream = exports.isSrtStream = exports.isTwitchStream = exports.isVimeoStream = exports.isYouTubeStream = exports.isWindyStream = exports.isSdCardStream = exports.isRtmpStream = exports.isMpegDvbStream = exports.isFacebookRtmpStream = exports.isFacebookStream = exports.streamListSchema = exports.streamSchema = void 0; const zod_1 = require("zod"); const facebookSchema_1 = require("./facebookSchema"); const windySchema_1 = require("./windySchema"); const youtubeSchema_1 = require("./youtubeSchema"); const streamsSchema_1 = require("./streamsSchema"); const common_1 = require("../common"); exports.streamSchema = zod_1.z.discriminatedUnion('platform', [ facebookSchema_1.facebookSchema, streamsSchema_1.facebookRtmpSchema, streamsSchema_1.mpegDvbSchema, streamsSchema_1.rtmpSchema, streamsSchema_1.sdCardSchema, windySchema_1.windySchema, youtubeSchema_1.youtubeSchema, streamsSchema_1.vimeoSchema, streamsSchema_1.twitchSchema, streamsSchema_1.srtSchema, streamsSchema_1.daCastSchema, streamsSchema_1.hlsPullSchema, streamsSchema_1.hlsPushSchema, streamsSchema_1.wowzaSchema, streamsSchema_1.dailymotionSchema, streamsSchema_1.ibmSchema, streamsSchema_1.microsoftAzureSchema, streamsSchema_1.microsoftStreamSchema, streamsSchema_1.gameChangerSchema, streamsSchema_1.youtubeRtmpSchema, ]); exports.streamListSchema = zod_1.z.object({ streamList: zod_1.z.array(exports.streamSchema) }); const isFacebookStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.facebook; }; exports.isFacebookStream = isFacebookStream; const isFacebookRtmpStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.facebook_rtmp; }; exports.isFacebookRtmpStream = isFacebookRtmpStream; const isMpegDvbStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.mpeg_dvb; }; exports.isMpegDvbStream = isMpegDvbStream; const isRtmpStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.rtmp; }; exports.isRtmpStream = isRtmpStream; const isSdCardStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.sd_card; }; exports.isSdCardStream = isSdCardStream; const isWindyStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.windy; }; exports.isWindyStream = isWindyStream; const isYouTubeStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.youtube; }; exports.isYouTubeStream = isYouTubeStream; const isVimeoStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.vimeo; }; exports.isVimeoStream = isVimeoStream; const isTwitchStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.twitch; }; exports.isTwitchStream = isTwitchStream; const isSrtStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.srt; }; exports.isSrtStream = isSrtStream; const isDaCastStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.da_cast; }; exports.isDaCastStream = isDaCastStream; const isHlsPullStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.hls_pull; }; exports.isHlsPullStream = isHlsPullStream; const isHlsPushStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.hls_push; }; exports.isHlsPushStream = isHlsPushStream; const isWowzaStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.wowza; }; exports.isWowzaStream = isWowzaStream; const isDailymotionStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.dailymotion; }; exports.isDailymotionStream = isDailymotionStream; const isIbmStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.ibm; }; exports.isIbmStream = isIbmStream; const isMicrosoftAzureStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.microsoft_azure; }; exports.isMicrosoftAzureStream = isMicrosoftAzureStream; const isMicrosoftStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.microsoft_stream; }; exports.isMicrosoftStream = isMicrosoftStream; const isGameChangerStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.game_changer; }; exports.isGameChangerStream = isGameChangerStream; const isYoutubeRtmpStream = (stream) => { return stream.platform === streamsSchema_1.streamPlatforms.youtube_rtmp; }; exports.isYoutubeRtmpStream = isYoutubeRtmpStream; var AudioType; (function (AudioType) { AudioType[AudioType["MP3"] = 0] = "MP3"; AudioType[AudioType["AAC"] = 1] = "AAC"; })(AudioType || (exports.AudioType = AudioType = {})); exports.audioFileStorageTypeSchema = zod_1.z.union([zod_1.z.literal('flash'), zod_1.z.literal('SD0'), zod_1.z.literal('url')]); exports.storageListSchema = zod_1.z.array(zod_1.z.discriminatedUnion('type', [ zod_1.z.object({ type: zod_1.z.literal('flash'), flash: zod_1.z.string(), }), zod_1.z.object({ type: zod_1.z.literal('SD0'), SD0: zod_1.z.string(), }), ])); exports.audioFileSchema = zod_1.z.object({ name: zod_1.z.string(), path: zod_1.z.string(), storage: exports.audioFileStorageTypeSchema, }); exports.audioFileListSchema = zod_1.z.array(exports.audioFileSchema); exports.audioUrlSchema = zod_1.z.object({ fileUrl: zod_1.z.string(), name: zod_1.z.string(), storage: zod_1.z.literal('url'), }); exports.audioLocalSchema = zod_1.z.object({ file: common_1.fileSchema, name: zod_1.z.string(), storage: zod_1.z.enum(['flash', 'SD0']), }); exports.streamStatsSchema = zod_1.z.object({ net_stats: zod_1.z.string(), stream_bytes_time_ms: zod_1.z.number().nonnegative(), stream_bytes: zod_1.z.number().nonnegative(), start_count: zod_1.z.number().nonnegative(), is_streaming: zod_1.z.literal(0).or(zod_1.z.literal(1)), }); exports.srtStreamStatisticsSchema = zod_1.z.object({ msTimeStamp: zod_1.z.number().nonnegative(), pktSentTotal: zod_1.z.number().nonnegative(), byteSentTotal: zod_1.z.number().nonnegative(), pktRetransTotal: zod_1.z.number().nonnegative(), byteRetransTotal: zod_1.z.number().nonnegative(), pktSndDropTotal: zod_1.z.number().nonnegative(), byteSndDropTotal: zod_1.z.number().nonnegative(), mbpsSendRate: zod_1.z.number().nonnegative(), mbpsBandwidth: zod_1.z.number().nonnegative(), mbpsMaxBW: zod_1.z.number().nonnegative(), msRTT: zod_1.z.number().nonnegative(), msSndBuf: zod_1.z.number().nonnegative(), }); exports.diagnosticsParamsSchema = zod_1.z.object({ camerainfo: (0, zod_1.boolean)().optional(), checkserver: (0, zod_1.boolean)().optional(), checkservertime: (0, zod_1.boolean)().optional(), speedtest: (0, zod_1.boolean)().optional(), pingtest: (0, zod_1.boolean)().optional(), videoHostPort: zod_1.z.string().optional(), audioHostPort: zod_1.z.string().optional(), }); exports.diagnosticsSchema = zod_1.z.object({ status: zod_1.z.number(), message: zod_1.z.string(), data: zod_1.z.object({ audioHostPort: zod_1.z .object({ code: zod_1.z.number(), message: zod_1.z.string(), }) .optional(), cameraInfo: zod_1.z .object({ uptime: zod_1.z.string(), availableRAM: zod_1.z.number(), availableInternal: zod_1.z.number(), }) .optional(), checkServer: zod_1.z .object({ state: zod_1.z.string(), message: zod_1.z.string(), }) .optional(), checkServerTime: zod_1.z .object({ code: zod_1.z.number(), message: zod_1.z.string(), }) .optional(), videoHostPort: zod_1.z .object({ code: zod_1.z.number(), message: zod_1.z.string(), }) .optional(), speedTest: zod_1.z .object({ code: zod_1.z.string(), data: zod_1.z.array(zod_1.z.object({ timestamp: zod_1.z.number(), speed: zod_1.z.number() })), }) .optional(), pingTest: zod_1.z .object({ output: zod_1.z.string(), }) .optional(), }), });