camstreamerlib 4.0.0-beta.7 → 4.0.0-beta.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +143 -38
  2. package/cjs/CamOverlayAPI.d.ts +863 -27
  3. package/cjs/CamOverlayAPI.js +135 -92
  4. package/cjs/CamScripterAPI.d.ts +44 -17
  5. package/cjs/CamScripterAPI.js +52 -42
  6. package/cjs/CamStreamerAPI.d.ts +62 -14
  7. package/cjs/CamStreamerAPI.js +82 -39
  8. package/cjs/CamSwitcherAPI.d.ts +158 -43
  9. package/cjs/CamSwitcherAPI.js +138 -122
  10. package/cjs/PlaneTrackerAPI.d.ts +233 -0
  11. package/cjs/PlaneTrackerAPI.js +247 -0
  12. package/cjs/VapixAPI.d.ts +94 -42
  13. package/cjs/VapixAPI.js +323 -233
  14. package/cjs/{CreatePackage.js → bin/CreatePackage.js} +44 -18
  15. package/cjs/errors/errors.d.ts +61 -4
  16. package/cjs/errors/errors.js +134 -7
  17. package/cjs/index.d.ts +20 -4
  18. package/cjs/index.js +28 -5
  19. package/cjs/internal/ProxyClient.d.ts +8 -9
  20. package/cjs/internal/ProxyClient.js +28 -32
  21. package/cjs/internal/WsEvents.d.ts +37 -0
  22. package/cjs/{CamSwitcherEvents.js → internal/WsEvents.js} +28 -22
  23. package/cjs/internal/types.d.ts +47 -0
  24. package/cjs/internal/types.js +2 -0
  25. package/cjs/internal/utils.d.ts +3 -1
  26. package/cjs/internal/utils.js +15 -3
  27. package/cjs/internal/versionCompare.d.ts +2 -2
  28. package/cjs/node/CamOverlayDrawingAPI.d.ts +41 -0
  29. package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +15 -14
  30. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.d.ts +8 -37
  31. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  32. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.d.ts +5 -21
  33. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +5 -17
  34. package/cjs/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  35. package/cjs/node/CamOverlayPainter/ResourceManager.js +72 -0
  36. package/cjs/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  37. package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +13 -13
  38. package/cjs/node/DefaultClient.d.ts +6 -5
  39. package/cjs/node/DefaultClient.js +10 -12
  40. package/cjs/{internal → node}/Digest.js +24 -1
  41. package/cjs/node/Digest.test.js +13 -0
  42. package/cjs/node/HttpRequestSender.d.ts +1 -0
  43. package/cjs/node/HttpRequestSender.js +14 -4
  44. package/cjs/node/HttpServer.d.ts +1 -1
  45. package/cjs/node/HttpServer.js +29 -6
  46. package/cjs/node/TimeZoneDaemon.d.ts +6 -0
  47. package/cjs/node/TimeZoneDaemon.js +29 -0
  48. package/cjs/node/VapixEvents.d.ts +16 -0
  49. package/cjs/{VapixEvents.js → node/VapixEvents.js} +10 -10
  50. package/cjs/node/WsClient.d.ts +9 -18
  51. package/cjs/node/WsClient.js +27 -20
  52. package/cjs/node/events/AxisCameraStationEvents.d.ts +12 -0
  53. package/cjs/node/events/AxisCameraStationEvents.js +53 -0
  54. package/cjs/node/events/GenetecAgent.d.ts +16 -0
  55. package/cjs/node/events/GenetecAgent.js +124 -0
  56. package/cjs/node/index.d.ts +18 -2
  57. package/cjs/node/index.js +39 -5
  58. package/cjs/types/CamOverlayAPI/CamOverlayAPI.d.ts +4330 -0
  59. package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +92 -0
  60. package/cjs/types/CamOverlayAPI/accuweatherSchema.d.ts +84 -0
  61. package/cjs/types/CamOverlayAPI/accuweatherSchema.js +47 -0
  62. package/cjs/types/CamOverlayAPI/customGraphicsSchema.d.ts +700 -0
  63. package/cjs/types/CamOverlayAPI/customGraphicsSchema.js +72 -0
  64. package/cjs/types/CamOverlayAPI/imagesSchema.d.ts +95 -0
  65. package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
  66. package/cjs/types/CamOverlayAPI/index.d.ts +11 -0
  67. package/cjs/types/CamOverlayAPI/index.js +27 -0
  68. package/cjs/types/CamOverlayAPI/infotickerSchema.d.ts +96 -0
  69. package/cjs/types/CamOverlayAPI/infotickerSchema.js +26 -0
  70. package/cjs/types/CamOverlayAPI/pipSchema.d.ts +125 -0
  71. package/cjs/types/CamOverlayAPI/pipSchema.js +39 -0
  72. package/cjs/types/CamOverlayAPI/ptzCompassSchema.d.ts +96 -0
  73. package/cjs/types/CamOverlayAPI/ptzCompassSchema.js +26 -0
  74. package/cjs/types/CamOverlayAPI/ptzSchema.d.ts +118 -0
  75. package/cjs/types/CamOverlayAPI/ptzSchema.js +12 -0
  76. package/cjs/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  77. package/cjs/types/CamOverlayAPI/scoreBoardSchema.js +132 -0
  78. package/cjs/types/CamOverlayAPI/screenSharingSchema.d.ts +58 -0
  79. package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
  80. package/cjs/types/CamOverlayAPI/serviceCommonTypes.d.ts +145 -0
  81. package/cjs/types/CamOverlayAPI/serviceCommonTypes.js +91 -0
  82. package/cjs/types/CamOverlayAPI/webCameraSharingSchema.d.ts +58 -0
  83. package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +8 -0
  84. package/cjs/types/CamOverlayDrawingAPI.d.ts +48 -0
  85. package/cjs/types/CamOverlayDrawingAPI.js +2 -0
  86. package/cjs/types/CamOverlayPainter.d.ts +76 -0
  87. package/cjs/types/CamOverlayPainter.js +14 -0
  88. package/cjs/types/CamScripterAPI.d.ts +86 -23
  89. package/cjs/types/CamScripterAPI.js +24 -8
  90. package/cjs/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  91. package/cjs/types/CamScripterAPICameraEventsGenerator.js +2 -0
  92. package/cjs/types/CamStreamerAPI.d.ts +180 -47
  93. package/cjs/types/CamStreamerAPI.js +34 -3
  94. package/cjs/types/CamSwitcherAPI.d.ts +145 -66
  95. package/cjs/types/CamSwitcherAPI.js +38 -1
  96. package/cjs/{events → types}/GenetecAgent.d.ts +47 -47
  97. package/cjs/types/GenetecAgent.js +31 -0
  98. package/cjs/types/PlaneTrackerAPI.d.ts +952 -0
  99. package/cjs/types/PlaneTrackerAPI.js +320 -0
  100. package/cjs/types/VapixAPI.d.ts +254 -164
  101. package/cjs/types/VapixAPI.js +66 -11
  102. package/cjs/types/VapixEvents.d.ts +15 -0
  103. package/cjs/types/VapixEvents.js +2 -0
  104. package/cjs/types/common.d.ts +17 -5
  105. package/cjs/types/common.js +4 -2
  106. package/cjs/types/ws/CamOverlayEvents.d.ts +88 -0
  107. package/cjs/types/ws/CamOverlayEvents.js +19 -0
  108. package/cjs/types/ws/CamStreamerEvents.d.ts +249 -0
  109. package/cjs/types/ws/CamStreamerEvents.js +32 -0
  110. package/cjs/types/ws/PlaneTrackerEvents.d.ts +1637 -0
  111. package/cjs/types/ws/PlaneTrackerEvents.js +196 -0
  112. package/cjs/web/DefaultClient.d.ts +7 -5
  113. package/cjs/web/DefaultClient.js +26 -10
  114. package/cjs/web/WsClient.d.ts +9 -5
  115. package/cjs/web/WsClient.js +16 -18
  116. package/cjs/ws/CamOverlayEvents.d.ts +8 -0
  117. package/cjs/ws/CamOverlayEvents.js +24 -0
  118. package/cjs/ws/CamStreamerEvents.d.ts +8 -0
  119. package/cjs/ws/CamStreamerEvents.js +24 -0
  120. package/cjs/ws/CamSwitcherEvents.d.ts +8 -0
  121. package/cjs/ws/CamSwitcherEvents.js +24 -0
  122. package/cjs/ws/PlaneTrackerEvents.d.ts +9 -0
  123. package/cjs/ws/PlaneTrackerEvents.js +30 -0
  124. package/esm/CamOverlayAPI.js +135 -92
  125. package/esm/CamScripterAPI.js +50 -40
  126. package/esm/CamStreamerAPI.js +81 -39
  127. package/esm/CamSwitcherAPI.js +136 -120
  128. package/esm/PlaneTrackerAPI.js +243 -0
  129. package/esm/VapixAPI.js +323 -233
  130. package/esm/{CreatePackage.js → bin/CreatePackage.js} +16 -16
  131. package/esm/errors/errors.js +116 -6
  132. package/esm/index.js +20 -4
  133. package/esm/internal/ProxyClient.js +28 -32
  134. package/esm/{CamSwitcherEvents.js → internal/WsEvents.js} +26 -20
  135. package/esm/internal/types.js +1 -0
  136. package/esm/internal/utils.js +11 -1
  137. package/esm/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +13 -12
  138. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  139. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +2 -13
  140. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/ResourceManager.js +7 -5
  141. package/esm/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +11 -11
  142. package/esm/node/DefaultClient.js +10 -12
  143. package/esm/node/Digest.test.js +11 -0
  144. package/esm/node/HttpRequestSender.js +14 -4
  145. package/esm/node/HttpServer.js +1 -1
  146. package/esm/node/TimeZoneDaemon.js +25 -0
  147. package/esm/{VapixEvents.js → node/VapixEvents.js} +10 -10
  148. package/esm/node/WsClient.js +22 -15
  149. package/esm/{events → node/events}/AxisCameraStationEvents.js +18 -13
  150. package/esm/node/events/GenetecAgent.js +120 -0
  151. package/esm/node/index.js +18 -2
  152. package/esm/types/CamOverlayAPI/CamOverlayAPI.js +76 -0
  153. package/esm/types/CamOverlayAPI/accuweatherSchema.js +44 -0
  154. package/esm/types/CamOverlayAPI/customGraphicsSchema.js +69 -0
  155. package/esm/types/CamOverlayAPI/imagesSchema.js +6 -0
  156. package/esm/types/CamOverlayAPI/index.js +11 -0
  157. package/esm/types/CamOverlayAPI/infotickerSchema.js +23 -0
  158. package/esm/types/CamOverlayAPI/pipSchema.js +36 -0
  159. package/esm/types/CamOverlayAPI/ptzCompassSchema.js +23 -0
  160. package/esm/types/CamOverlayAPI/ptzSchema.js +9 -0
  161. package/esm/types/CamOverlayAPI/scoreBoardSchema.js +129 -0
  162. package/esm/types/CamOverlayAPI/screenSharingSchema.js +5 -0
  163. package/esm/types/CamOverlayAPI/serviceCommonTypes.js +88 -0
  164. package/esm/types/CamOverlayAPI/webCameraSharingSchema.js +5 -0
  165. package/esm/types/CamOverlayDrawingAPI.js +1 -0
  166. package/esm/types/CamOverlayPainter.js +11 -0
  167. package/esm/types/CamScripterAPI.js +23 -7
  168. package/esm/types/CamScripterAPICameraEventsGenerator.js +1 -0
  169. package/esm/types/CamStreamerAPI.js +33 -2
  170. package/esm/types/CamSwitcherAPI.js +38 -1
  171. package/esm/types/GenetecAgent.js +28 -0
  172. package/esm/types/PlaneTrackerAPI.js +317 -0
  173. package/esm/types/VapixAPI.js +65 -10
  174. package/esm/types/VapixEvents.js +1 -0
  175. package/esm/types/common.js +3 -1
  176. package/esm/types/ws/CamOverlayEvents.js +16 -0
  177. package/esm/types/ws/CamStreamerEvents.js +29 -0
  178. package/esm/types/ws/PlaneTrackerEvents.js +193 -0
  179. package/esm/web/DefaultClient.js +26 -10
  180. package/esm/web/WsClient.js +16 -18
  181. package/esm/ws/CamOverlayEvents.js +20 -0
  182. package/esm/ws/CamStreamerEvents.js +20 -0
  183. package/esm/ws/CamSwitcherEvents.js +20 -0
  184. package/esm/ws/PlaneTrackerEvents.js +26 -0
  185. package/package.json +44 -11
  186. package/types/CamOverlayAPI.d.ts +867 -0
  187. package/types/CamScripterAPI.d.ts +46 -0
  188. package/types/CamStreamerAPI.d.ts +64 -0
  189. package/types/CamSwitcherAPI.d.ts +167 -0
  190. package/types/PlaneTrackerAPI.d.ts +233 -0
  191. package/types/VapixAPI.d.ts +118 -0
  192. package/types/bin/CreatePackage.d.ts +1 -0
  193. package/types/errors/errors.d.ts +91 -0
  194. package/types/index.d.ts +27 -0
  195. package/types/internal/ProxyClient.d.ts +10 -0
  196. package/types/internal/WsEvents.d.ts +37 -0
  197. package/types/internal/types.d.ts +47 -0
  198. package/{esm → types}/internal/utils.d.ts +3 -1
  199. package/{esm → types}/internal/versionCompare.d.ts +2 -2
  200. package/types/node/CamOverlayDrawingAPI.d.ts +41 -0
  201. package/{esm → types/node}/CamOverlayPainter/Frame.d.ts +8 -37
  202. package/{esm → types/node}/CamOverlayPainter/Painter.d.ts +5 -21
  203. package/types/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  204. package/types/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  205. package/types/node/DefaultClient.d.ts +16 -0
  206. package/types/node/Digest.test.d.ts +1 -0
  207. package/{esm → types}/node/HttpRequestSender.d.ts +1 -0
  208. package/{esm → types}/node/HttpServer.d.ts +1 -1
  209. package/types/node/TimeZoneDaemon.d.ts +6 -0
  210. package/types/node/VapixEvents.d.ts +16 -0
  211. package/types/node/WsClient.d.ts +30 -0
  212. package/types/node/events/AxisCameraStationEvents.d.ts +12 -0
  213. package/types/node/events/GenetecAgent.d.ts +16 -0
  214. package/types/node/index.d.ts +18 -0
  215. package/types/types/CamOverlayAPI/CamOverlayAPI.d.ts +4330 -0
  216. package/types/types/CamOverlayAPI/accuweatherSchema.d.ts +84 -0
  217. package/types/types/CamOverlayAPI/customGraphicsSchema.d.ts +700 -0
  218. package/types/types/CamOverlayAPI/imagesSchema.d.ts +95 -0
  219. package/types/types/CamOverlayAPI/index.d.ts +11 -0
  220. package/types/types/CamOverlayAPI/infotickerSchema.d.ts +96 -0
  221. package/types/types/CamOverlayAPI/pipSchema.d.ts +125 -0
  222. package/types/types/CamOverlayAPI/ptzCompassSchema.d.ts +96 -0
  223. package/types/types/CamOverlayAPI/ptzSchema.d.ts +118 -0
  224. package/types/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  225. package/types/types/CamOverlayAPI/screenSharingSchema.d.ts +58 -0
  226. package/types/types/CamOverlayAPI/serviceCommonTypes.d.ts +145 -0
  227. package/types/types/CamOverlayAPI/webCameraSharingSchema.d.ts +58 -0
  228. package/types/types/CamOverlayDrawingAPI.d.ts +48 -0
  229. package/types/types/CamOverlayPainter.d.ts +76 -0
  230. package/types/types/CamScripterAPI.d.ts +130 -0
  231. package/types/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  232. package/types/types/CamStreamerAPI.d.ts +272 -0
  233. package/{esm → types}/types/CamSwitcherAPI.d.ts +145 -66
  234. package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
  235. package/types/types/PlaneTrackerAPI.d.ts +952 -0
  236. package/{esm → types}/types/VapixAPI.d.ts +254 -164
  237. package/types/types/VapixEvents.d.ts +15 -0
  238. package/{esm → types}/types/common.d.ts +17 -5
  239. package/types/types/ws/CamOverlayEvents.d.ts +88 -0
  240. package/types/types/ws/CamStreamerEvents.d.ts +249 -0
  241. package/types/types/ws/PlaneTrackerEvents.d.ts +1637 -0
  242. package/types/web/DefaultClient.d.ts +8 -0
  243. package/types/web/WsClient.d.ts +17 -0
  244. package/types/ws/CamOverlayEvents.d.ts +8 -0
  245. package/types/ws/CamStreamerEvents.d.ts +8 -0
  246. package/types/ws/CamSwitcherEvents.d.ts +8 -0
  247. package/types/ws/PlaneTrackerEvents.d.ts +9 -0
  248. package/cjs/CamOverlayDrawingAPI.d.ts +0 -86
  249. package/cjs/CamOverlayPainter/ResourceManager.d.ts +0 -14
  250. package/cjs/CamOverlayPainter/ResourceManager.js +0 -46
  251. package/cjs/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  252. package/cjs/CamSwitcherEvents.d.ts +0 -18
  253. package/cjs/VapixEvents.d.ts +0 -43
  254. package/cjs/events/AxisCameraStationEvents.d.ts +0 -9
  255. package/cjs/events/AxisCameraStationEvents.js +0 -48
  256. package/cjs/events/GenetecAgent.js +0 -123
  257. package/cjs/internal/common.d.ts +0 -39
  258. package/cjs/internal/common.js +0 -27
  259. package/cjs/node/WsEventClient.d.ts +0 -13
  260. package/cjs/node/WsEventClient.js +0 -22
  261. package/cjs/types/CamOverlayAPI.d.ts +0 -188
  262. package/cjs/types/CamOverlayAPI.js +0 -47
  263. package/esm/CamOverlayAPI.d.ts +0 -31
  264. package/esm/CamOverlayDrawingAPI.d.ts +0 -86
  265. package/esm/CamOverlayPainter/ResourceManager.d.ts +0 -14
  266. package/esm/CamScripterAPI.d.ts +0 -19
  267. package/esm/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  268. package/esm/CamStreamerAPI.d.ts +0 -16
  269. package/esm/CamSwitcherAPI.d.ts +0 -52
  270. package/esm/CamSwitcherEvents.d.ts +0 -18
  271. package/esm/VapixAPI.d.ts +0 -66
  272. package/esm/VapixEvents.d.ts +0 -43
  273. package/esm/errors/errors.d.ts +0 -34
  274. package/esm/events/AxisCameraStationEvents.d.ts +0 -9
  275. package/esm/events/GenetecAgent.js +0 -119
  276. package/esm/index.d.ts +0 -11
  277. package/esm/internal/ProxyClient.d.ts +0 -11
  278. package/esm/internal/common.d.ts +0 -39
  279. package/esm/internal/common.js +0 -20
  280. package/esm/node/DefaultClient.d.ts +0 -15
  281. package/esm/node/WsClient.d.ts +0 -39
  282. package/esm/node/WsEventClient.d.ts +0 -13
  283. package/esm/node/WsEventClient.js +0 -18
  284. package/esm/types/CamOverlayAPI.d.ts +0 -188
  285. package/esm/types/CamOverlayAPI.js +0 -44
  286. package/esm/types/CamScripterAPI.d.ts +0 -67
  287. package/esm/types/CamStreamerAPI.d.ts +0 -139
  288. package/esm/web/DefaultClient.d.ts +0 -6
  289. package/esm/web/WsClient.d.ts +0 -13
  290. package/esm/web/index.d.ts +0 -2
  291. /package/cjs/{CreatePackage.d.ts → bin/CreatePackage.d.ts} +0 -0
  292. /package/cjs/{internal → node}/Digest.d.ts +0 -0
  293. /package/{esm/CreatePackage.d.ts → cjs/node/Digest.test.d.ts} +0 -0
  294. /package/cjs/types/{CamSwitcherEvents.d.ts → ws/CamSwitcherEvents.d.ts} +0 -0
  295. /package/cjs/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  296. /package/esm/{internal → node}/Digest.js +0 -0
  297. /package/esm/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  298. /package/{esm → types}/internal/constants.d.ts +0 -0
  299. /package/{esm → types}/internal/transformers.d.ts +0 -0
  300. /package/{esm/internal → types/node}/Digest.d.ts +0 -0
  301. /package/{esm/types → types/types/ws}/CamSwitcherEvents.d.ts +0 -0
  302. /package/{esm/node → types/web}/index.d.ts +0 -0
@@ -0,0 +1,317 @@
1
+ import { z } from 'zod';
2
+ export const wsAliasResponseSchema = z.object({
3
+ alias: z.string(),
4
+ ws: z.string(),
5
+ ws_initial_message: z.string(),
6
+ });
7
+ export const connectionSchema = z.object({
8
+ protocol: z.union([z.literal('http'), z.literal('https'), z.literal('https_insecure')]),
9
+ ip: z.union([z.string().ip(), z.literal('')]),
10
+ port: z.number().positive().lt(65535),
11
+ user: z.string(),
12
+ pass: z.string(),
13
+ });
14
+ export const widgetSchema = z.object({
15
+ enabled: z.boolean().default(true),
16
+ coord: z.union([
17
+ z.literal('top_left'),
18
+ z.literal('top_right'),
19
+ z.literal('bottom_left'),
20
+ z.literal('bottom_right'),
21
+ ]),
22
+ posX: z.number().nonnegative(),
23
+ posY: z.number().nonnegative(),
24
+ scale: z.number().positive(),
25
+ });
26
+ const labelOptionsSchema = z.union([
27
+ z.literal('blank'),
28
+ z.literal('registration'),
29
+ z.literal('call_sign'),
30
+ z.literal('flight_number'),
31
+ z.literal('icao'),
32
+ ]);
33
+ const identificationLabelSchema = z.object({
34
+ firstRow: labelOptionsSchema,
35
+ secondRow: labelOptionsSchema,
36
+ thirdRow: labelOptionsSchema,
37
+ fourthRow: labelOptionsSchema,
38
+ opacity: z.number().positive(),
39
+ });
40
+ export const cameraSettingsSchema = z.object({
41
+ units: z.union([z.literal('metric'), z.literal('imperial')]).default('imperial'),
42
+ adsbSource: z
43
+ .object({
44
+ ip: z.union([z.string().ip(), z.literal('')]),
45
+ port: z.number().positive().lt(65535),
46
+ })
47
+ .default({ ip: '', port: 30334 }),
48
+ camera: connectionSchema.default({
49
+ protocol: 'http',
50
+ ip: '127.0.0.1',
51
+ port: 80,
52
+ user: 'root',
53
+ pass: '',
54
+ }),
55
+ cameraCalibrationProcessConfig: z
56
+ .object({
57
+ nightSkyCalibrationEnabled: z.boolean(),
58
+ scheduleNightSkyCalibrationTimestamp: z.number(),
59
+ focusCalibrationPoints: z.string().default(''),
60
+ })
61
+ .default({
62
+ nightSkyCalibrationEnabled: false,
63
+ scheduleNightSkyCalibrationTimestamp: 0,
64
+ focusCalibrationPoints: '',
65
+ }),
66
+ cameraConfig: z
67
+ .object({
68
+ maxZoomLevel: z.number().optional(),
69
+ defaultCaptureSizeMeters: z.number().positive().default(120),
70
+ captureSizeExtensionMeters: z.number().positive().default(80),
71
+ })
72
+ .default({
73
+ maxZoomLevel: 30,
74
+ defaultCaptureSizeMeters: 120,
75
+ captureSizeExtensionMeters: 80,
76
+ }),
77
+ stream: z
78
+ .object({
79
+ width: z.number().positive(),
80
+ height: z.number().positive(),
81
+ })
82
+ .default({ width: 1920, height: 1080 }),
83
+ imageConfig: z
84
+ .object({
85
+ dayAperture: z.number().nonnegative().min(0).max(100),
86
+ nightAperture: z.number().nonnegative().min(0).max(100),
87
+ maxGain: z.number().nonnegative().min(0).max(100).default(100),
88
+ })
89
+ .default({ dayAperture: 50, nightAperture: 0, maxGain: 100 }),
90
+ airportConfig: z
91
+ .object({
92
+ icao: z.string().default(''),
93
+ centerLat: z.number(),
94
+ centerLon: z.number(),
95
+ radius: z.number().nonnegative().default(10000),
96
+ })
97
+ .default({
98
+ icao: '',
99
+ centerLat: 0,
100
+ centerLon: 0,
101
+ radius: 10000,
102
+ }),
103
+ trackingConfig: z
104
+ .object({
105
+ prioritizeEmergency: z.boolean(),
106
+ trackingZoneWeightIncrease: z.number().int().nonnegative().default(0),
107
+ guardTourEnabled: z.boolean().default(false),
108
+ guardTourId: z.number().int().nonnegative().default(0),
109
+ })
110
+ .default({ prioritizeEmergency: true, guardTourEnabled: false, guardTourId: 0 }),
111
+ overlayText: z
112
+ .object({
113
+ displayIcao: z.boolean().optional(),
114
+ displayRegistration: z.boolean().optional(),
115
+ displayFlightNumber: z.boolean().optional(),
116
+ displayAltitude: z.boolean().optional(),
117
+ displayVelocity: z.boolean().optional(),
118
+ displayDistance: z.boolean().optional(),
119
+ displayFOV: z.boolean().optional(),
120
+ displayPTError: z.boolean().optional(),
121
+ displayPTZSpeed: z.boolean().optional(),
122
+ displayVelocityData: z.boolean().optional(),
123
+ displaySignalQuality: z.boolean().optional(),
124
+ displayAutoTrackingInfo: z.boolean().optional(),
125
+ displayGPSCoords: z.boolean().optional(),
126
+ displayVapixQuery: z.boolean().optional(),
127
+ displayFocus: z.boolean().optional(),
128
+ displayAperture: z.boolean().optional(),
129
+ displaySunDistance: z.boolean().optional(),
130
+ displayTickTime: z.boolean().optional(),
131
+ displayAircraftInfo: z.boolean().optional(),
132
+ })
133
+ .optional(),
134
+ widget: widgetSchema.default({
135
+ enabled: true,
136
+ coord: 'top_right',
137
+ posX: 10,
138
+ posY: 10,
139
+ scale: 100,
140
+ }),
141
+ airportWidget: widgetSchema.default({
142
+ enabled: true,
143
+ coord: 'top_left',
144
+ posX: 10,
145
+ posY: 10,
146
+ scale: 100,
147
+ }),
148
+ fr24FlightInfoSource: z
149
+ .object({
150
+ enabled: z.boolean().default(false),
151
+ priority: z.number().int().positive().default(1),
152
+ apiToken: z.string().default(''),
153
+ validateFlights: z.boolean().default(true),
154
+ })
155
+ .default({
156
+ enabled: false,
157
+ priority: 1,
158
+ apiToken: '',
159
+ validateFlights: true,
160
+ }),
161
+ radarcapeFlightInfoSource: z
162
+ .object({
163
+ enabled: z.boolean().default(false),
164
+ priority: z.number().int().positive().default(2),
165
+ ip: z.union([z.string().ip(), z.literal('')]).default(''),
166
+ port: z.number().positive().lt(65535).default(80),
167
+ })
168
+ .default({
169
+ enabled: false,
170
+ priority: 2,
171
+ ip: '',
172
+ port: 80,
173
+ }),
174
+ identificationLabel: identificationLabelSchema.default({
175
+ firstRow: 'registration',
176
+ secondRow: 'blank',
177
+ thirdRow: 'blank',
178
+ fourthRow: 'blank',
179
+ opacity: 30,
180
+ }),
181
+ acs: connectionSchema
182
+ .extend({
183
+ enabled: z.boolean(),
184
+ sourceKey: z.string(),
185
+ })
186
+ .default({
187
+ enabled: false,
188
+ protocol: 'https_insecure',
189
+ ip: '',
190
+ port: 29204,
191
+ user: '',
192
+ pass: '',
193
+ sourceKey: '',
194
+ }),
195
+ genetec: connectionSchema
196
+ .extend({
197
+ enabled: z.boolean(),
198
+ baseUri: z.string().default(''),
199
+ appId: z.string().default(''),
200
+ cameraList: z.string().array().default([]),
201
+ })
202
+ .default({
203
+ enabled: false,
204
+ protocol: 'http',
205
+ ip: '',
206
+ port: 4590,
207
+ user: '',
208
+ pass: '',
209
+ baseUri: 'WebSdk',
210
+ appId: '',
211
+ cameraList: [],
212
+ }),
213
+ });
214
+ export const serverSettingsSchema = z.object({
215
+ cameraCalibration: z
216
+ .object({
217
+ posLat: z.number(),
218
+ posLon: z.number(),
219
+ geoidHN: z.number(),
220
+ altitudeAmsl: z.number(),
221
+ rotationEast: z.number(),
222
+ rotationNorth: z.number(),
223
+ rotationUp: z.number(),
224
+ tiltTransformationCoefA: z.number(),
225
+ tiltCameraKnownPoint: z.number(),
226
+ tiltRealKnownPoint: z.number(),
227
+ panErrorCorrection: z
228
+ .array(z.object({
229
+ cameraPan: z.number(),
230
+ realPan: z.number(),
231
+ }))
232
+ .default([]),
233
+ })
234
+ .default({
235
+ posLat: 50,
236
+ posLon: 14,
237
+ geoidHN: 45,
238
+ altitudeAmsl: 372,
239
+ rotationEast: 0,
240
+ rotationNorth: 0,
241
+ rotationUp: 0,
242
+ tiltTransformationCoefA: 1.0,
243
+ tiltCameraKnownPoint: 90,
244
+ tiltRealKnownPoint: 90,
245
+ panErrorCorrection: [],
246
+ }),
247
+ });
248
+ export const getIcaoSchema = z.object({
249
+ icao: z.string(),
250
+ });
251
+ export const trackingModeSchema = z.object({
252
+ mode: z.union([z.literal('MANUAL'), z.literal('AUTOMATIC')]),
253
+ });
254
+ export const flightInfoSchema = z.object({
255
+ callsign: z.string().optional(),
256
+ flightNumber: z.string().optional(),
257
+ registration: z.string().optional(),
258
+ aircraftType: z.string().optional(),
259
+ airlines: z.string().optional(),
260
+ originAirport: z
261
+ .object({
262
+ icao: z.string().optional(),
263
+ iata: z.string().optional(),
264
+ city: z.string().optional(),
265
+ })
266
+ .optional(),
267
+ destinationAirport: z.object({
268
+ icao: z.string().optional(),
269
+ iata: z.string().optional(),
270
+ city: z.string().optional(),
271
+ }),
272
+ flightImages: z
273
+ .array(z.object({
274
+ src: z.string().optional(),
275
+ photographer: z.string().optional(),
276
+ }))
277
+ .optional(),
278
+ });
279
+ export const typePriorityListSchema = z.object({
280
+ typePriorityList: z.array(z.string()).default([]),
281
+ });
282
+ export const priorityListSchema = z.object({
283
+ priorityList: z.array(z.string()).default([]),
284
+ });
285
+ export const whiteListSchema = z.object({
286
+ whiteList: z.array(z.string()).default([]),
287
+ });
288
+ export const blackListSchema = z.object({
289
+ blackList: z.array(z.string()).default([]),
290
+ });
291
+ export const mapTypeSchema = z.enum(['roadmap', 'satellite']);
292
+ export const mapInfoSchema = z.object({
293
+ minZoom: z.number().nonnegative(),
294
+ maxZoom: z.number().nonnegative(),
295
+ mapTypes: z.array(mapTypeSchema),
296
+ tileSize: z.number().nonnegative(),
297
+ });
298
+ export const zonesSchema = z.object({
299
+ zones: z
300
+ .array(z.object({
301
+ enabled: z.boolean().default(true),
302
+ name: z.string().optional(),
303
+ area: z
304
+ .array(z.object({
305
+ lat: z.number(),
306
+ lon: z.number(),
307
+ }))
308
+ .nonempty(),
309
+ minAltitudeAmsl: z.number().optional(),
310
+ maxAltitudeAmsl: z.number().optional(),
311
+ minSpeedKmph: z.number().optional(),
312
+ maxSpeedKmph: z.number().optional(),
313
+ flightDirection: z.enum(['all', 'arrival', 'departure']).default('all'),
314
+ weight: z.number(),
315
+ }))
316
+ .default([]),
317
+ });
@@ -12,6 +12,19 @@ export const applicationSchema = z.object({
12
12
  VendorHomePage: z.string().optional(),
13
13
  LicenseName: z.string().optional(),
14
14
  });
15
+ export const applicationListSchema = z.array(applicationSchema.extend({
16
+ appId: z
17
+ .union([
18
+ z.literal('CamStreamer'),
19
+ z.literal('CamSwitcher'),
20
+ z.literal('CamOverlay'),
21
+ z.literal('CamScripter'),
22
+ z.literal('PlaneTracker'),
23
+ z.literal('Ndihxplugin'),
24
+ z.literal('SportTracker'),
25
+ ])
26
+ .nullable(),
27
+ }));
15
28
  export const APP_IDS = [
16
29
  'CamStreamer',
17
30
  'CamSwitcher',
@@ -21,14 +34,6 @@ export const APP_IDS = [
21
34
  'Ndihxplugin',
22
35
  'SportTracker',
23
36
  ];
24
- export const applicationListSchema = z.object({
25
- reply: z.object({
26
- $: z.object({ result: z.string() }),
27
- application: z.array(z.object({
28
- $: applicationSchema,
29
- })),
30
- }),
31
- });
32
37
  export const guardTourSchema = z.object({
33
38
  id: z.string(),
34
39
  camNbr: z.unknown(),
@@ -50,7 +55,12 @@ const audioSampleRatesSchema = z.object({
50
55
  });
51
56
  const audioSampleRatesOutSchema = audioSampleRatesSchema.transform(toCamelCaseDeep);
52
57
  export const sdCardWatchedStatuses = ['OK', 'connected', 'disconnected'];
53
- export const PtzOverviewSchema = z.record(z.number(), z.array(z.object({ id: z.number(), name: z.string() })));
58
+ export const sdCardInfoSchema = z.object({
59
+ status: z.enum(sdCardWatchedStatuses),
60
+ totalSize: z.number(),
61
+ freeSize: z.number(),
62
+ });
63
+ export const ptzOverviewSchema = z.record(z.number(), z.array(z.object({ id: z.number(), name: z.string() })));
54
64
  export const cameraPTZItemDataSchema = z.object({
55
65
  pan: z.number().optional(),
56
66
  tilt: z.number().optional(),
@@ -115,9 +125,23 @@ export const dateTimeinfoSchema = z.object({
115
125
  dstEnabled: z.boolean(),
116
126
  localDateTime: z.string(),
117
127
  posixTimeZone: z.string(),
118
- timeZone: z.string(),
128
+ timeZone: z.string().optional(),
119
129
  }),
120
130
  });
131
+ export const timeZoneSchema = z.discriminatedUnion('status', [
132
+ z.object({
133
+ status: z.literal('success'),
134
+ data: z.object({
135
+ activeTimeZone: z.string(),
136
+ }),
137
+ }),
138
+ z.object({
139
+ status: z.literal('error'),
140
+ error: z.object({
141
+ message: z.string(),
142
+ }),
143
+ }),
144
+ ]);
121
145
  export const audioSampleRatesResponseSchema = z.object({
122
146
  data: z.object({
123
147
  encoders: z
@@ -128,3 +152,34 @@ export const audioSampleRatesResponseSchema = z.object({
128
152
  .partial(),
129
153
  }),
130
154
  });
155
+ export const portStatusSchema = z.object({
156
+ port: z.string(),
157
+ state: z.enum(['open', 'closed']),
158
+ configurable: z.boolean(),
159
+ readonly: z.boolean().optional(),
160
+ usage: z.string(),
161
+ direction: z.enum(['input', 'output']),
162
+ name: z.string(),
163
+ normalState: z.enum(['open', 'closed']),
164
+ });
165
+ export const getPortsResponseSchema = z.object({
166
+ apiVersion: z.string(),
167
+ context: z.string(),
168
+ method: z.literal('getPorts'),
169
+ data: z.object({
170
+ numberOfPorts: z.number(),
171
+ items: z.array(portStatusSchema),
172
+ }),
173
+ });
174
+ export const portSetSchema = z.object({
175
+ port: z.string(),
176
+ state: z.enum(['open', 'closed']),
177
+ usage: z.string().optional(),
178
+ direction: z.enum(['input', 'output']).optional(),
179
+ name: z.string().optional(),
180
+ normalState: z.enum(['open', 'closed']).optional(),
181
+ });
182
+ export const portSequenceStateSchema = z.object({
183
+ state: z.enum(['open', 'closed']),
184
+ time: z.number().min(0).max(65535),
185
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -2,7 +2,9 @@ import { z } from 'zod';
2
2
  export const audioChannelSchema = z.union([z.literal('mono'), z.literal('stereo')]);
3
3
  export const audioChannelCountSchema = z.union([z.literal(1), z.literal(2)]);
4
4
  export const h264ProfileSchema = z.union([z.literal('high'), z.literal('main'), z.literal('baseline')]);
5
- export const storageTypeSchema = z.union([z.literal('SD_DISK'), z.literal('FLASH')]);
5
+ export const flashStorageTypeSchema = z.literal('FLASH');
6
+ export const sdCardStorageTypeSchema = z.literal('SD_DISK');
7
+ export const storageTypeSchema = z.union([sdCardStorageTypeSchema, flashStorageTypeSchema]);
6
8
  export const networkCameraListSchema = z.array(z.object({
7
9
  name: z.string(),
8
10
  ip: z.string(),
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ const coEventsDataSchema = z.discriminatedUnion('type', [
3
+ z.object({ type: z.literal('authorization'), state: z.string() }),
4
+ z.object({
5
+ type: z.literal('ServiceStart'),
6
+ serviceId: z.number(),
7
+ }),
8
+ z.object({
9
+ type: z.literal('ServiceStop'),
10
+ serviceId: z.number(),
11
+ }),
12
+ ]);
13
+ export const coEventsSchema = z.discriminatedUnion('type', [
14
+ z.object({ type: z.literal('init'), data: coEventsDataSchema }),
15
+ ...coEventsDataSchema.options,
16
+ ]);
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ const csEventsDataSchema = z.discriminatedUnion('type', [
3
+ z.object({ type: z.literal('authorization'), state: z.string() }),
4
+ z.object({
5
+ type: z.literal('StreamState'),
6
+ streamID: z.number(),
7
+ enabled: z.union([z.literal(0), z.literal(1)]),
8
+ active: z.union([z.literal(0), z.literal(1)]),
9
+ automationState: z.union([z.literal(0), z.literal(1)]),
10
+ isStreaming: z.union([z.literal(0), z.literal(1)]),
11
+ }),
12
+ z.object({
13
+ type: z.literal('CS_API_SUCCESS'),
14
+ apiCall: z.string(),
15
+ message: z.string(),
16
+ streamID: z.string(),
17
+ }),
18
+ z.object({
19
+ type: z.literal('CS_API_ERROR'),
20
+ apiCall: z.string(),
21
+ message: z.string(),
22
+ streamID: z.string(),
23
+ code: z.string(),
24
+ }),
25
+ ]);
26
+ export const csEventsSchema = z.discriminatedUnion('type', [
27
+ z.object({ type: z.literal('init'), data: csEventsDataSchema }),
28
+ ...csEventsDataSchema.options,
29
+ ]);
@@ -0,0 +1,193 @@
1
+ import { z } from 'zod';
2
+ import { trackingModeSchema, zonesSchema } from '../PlaneTrackerAPI';
3
+ const apiFlightDataSchema = z.object({
4
+ icao: z.string(),
5
+ lat: z.number(),
6
+ lon: z.number(),
7
+ heading: z.number(),
8
+ groundSpeed: z.number(),
9
+ altitudeAMSL: z.number(),
10
+ cameraDistance: z.number(),
11
+ autoTrackingOrder: z.number(),
12
+ whiteListed: z.boolean(),
13
+ blackListed: z.boolean(),
14
+ priorityListed: z.boolean(),
15
+ autoSelectionIgnored: z.boolean(),
16
+ signalQuality: z.number(),
17
+ emitterCategorySet: z.number().default(4),
18
+ emitterCategory: z.number().default(3),
19
+ emergencyState: z.boolean(),
20
+ emergencyStatusMessage: z.string(),
21
+ });
22
+ const apiUserSchema = z.object({
23
+ userId: z.string(),
24
+ userName: z.string(),
25
+ userPriority: z.number(),
26
+ ip: z.string(),
27
+ });
28
+ const apiStringUserSchema = z.object({
29
+ userId: z.string(),
30
+ userName: z.string(),
31
+ userPriority: z.string(),
32
+ });
33
+ export var PlaneTrackerWsEvents;
34
+ (function (PlaneTrackerWsEvents) {
35
+ PlaneTrackerWsEvents["FLIGHT_LIST"] = "FLIGHT_LIST";
36
+ PlaneTrackerWsEvents["CAMERA_POSITION"] = "CAMERA_POSITION";
37
+ PlaneTrackerWsEvents["TRACKING_START"] = "TRACKING_START";
38
+ PlaneTrackerWsEvents["TRACKING_STOP"] = "TRACKING_STOP";
39
+ PlaneTrackerWsEvents["USER_ACTION"] = "USER_ACTION";
40
+ PlaneTrackerWsEvents["CONNECTED_USERS"] = "CONNECTED_USERS";
41
+ PlaneTrackerWsEvents["FORCE_TRACKING_STATUS"] = "FORCE_TRACKING_STATUS";
42
+ })(PlaneTrackerWsEvents || (PlaneTrackerWsEvents = {}));
43
+ export var PlaneTrackerUserActions;
44
+ (function (PlaneTrackerUserActions) {
45
+ PlaneTrackerUserActions["TRACK_ICAO"] = "trackIcao.cgi";
46
+ PlaneTrackerUserActions["RESET_ICAO"] = "resetIcao.cgi";
47
+ PlaneTrackerUserActions["SET_PRIORITY_LIST"] = "setPriorityList.cgi";
48
+ PlaneTrackerUserActions["SET_BLACK_LIST"] = "setBlackList.cgi";
49
+ PlaneTrackerUserActions["SET_WHITE_LIST"] = "setWhiteList.cgi";
50
+ PlaneTrackerUserActions["GO_TO_COORDINATES"] = "goToCoordinates.cgi";
51
+ PlaneTrackerUserActions["SET_TRACKING_MODE"] = "setTrackingMode.cgi";
52
+ PlaneTrackerUserActions["SET_ZONES"] = "setZones.cgi";
53
+ PlaneTrackerUserActions["RESET_PTZ_CALIBRATION"] = "resetPtzCalibration.cgi";
54
+ PlaneTrackerUserActions["LOCK_API"] = "lockApi.cgi";
55
+ PlaneTrackerUserActions["UNLOCK_API"] = "unlockApi.cgi";
56
+ })(PlaneTrackerUserActions || (PlaneTrackerUserActions = {}));
57
+ export const planeTrackerUserActionData = z.discriminatedUnion('cgi', [
58
+ z.object({
59
+ cgi: z.literal(PlaneTrackerUserActions.TRACK_ICAO),
60
+ ip: z.string(),
61
+ params: apiStringUserSchema.extend({
62
+ icao: z.string(),
63
+ }),
64
+ }),
65
+ z.object({
66
+ cgi: z.literal(PlaneTrackerUserActions.RESET_ICAO),
67
+ ip: z.string(),
68
+ params: apiStringUserSchema,
69
+ }),
70
+ z.object({
71
+ cgi: z.literal(PlaneTrackerUserActions.SET_PRIORITY_LIST),
72
+ ip: z.string(),
73
+ params: apiStringUserSchema,
74
+ postJsonBody: z.object({
75
+ priorityList: z.array(z.string()),
76
+ }),
77
+ }),
78
+ z.object({
79
+ cgi: z.literal(PlaneTrackerUserActions.SET_BLACK_LIST),
80
+ ip: z.string(),
81
+ params: apiStringUserSchema,
82
+ postJsonBody: z.object({
83
+ blackList: z.array(z.string()),
84
+ }),
85
+ }),
86
+ z.object({
87
+ cgi: z.literal(PlaneTrackerUserActions.SET_WHITE_LIST),
88
+ ip: z.string(),
89
+ params: apiStringUserSchema,
90
+ postJsonBody: z.object({
91
+ whiteList: z.array(z.string()),
92
+ }),
93
+ }),
94
+ z.object({
95
+ cgi: z.literal(PlaneTrackerUserActions.GO_TO_COORDINATES),
96
+ ip: z.string(),
97
+ params: apiStringUserSchema.extend({
98
+ lat: z.string(),
99
+ lon: z.string(),
100
+ }),
101
+ }),
102
+ z.object({
103
+ cgi: z.literal(PlaneTrackerUserActions.SET_TRACKING_MODE),
104
+ ip: z.string(),
105
+ params: apiStringUserSchema,
106
+ postJsonBody: trackingModeSchema,
107
+ }),
108
+ z.object({
109
+ cgi: z.literal(PlaneTrackerUserActions.SET_ZONES),
110
+ ip: z.string(),
111
+ params: apiStringUserSchema,
112
+ postJsonBody: zonesSchema,
113
+ }),
114
+ z.object({
115
+ cgi: z.literal(PlaneTrackerUserActions.RESET_PTZ_CALIBRATION),
116
+ ip: z.string(),
117
+ params: apiStringUserSchema,
118
+ }),
119
+ z.object({
120
+ cgi: z.literal(PlaneTrackerUserActions.LOCK_API),
121
+ ip: z.string(),
122
+ params: apiStringUserSchema.extend({
123
+ timeout: z.string(),
124
+ }),
125
+ }),
126
+ z.object({
127
+ cgi: z.literal(PlaneTrackerUserActions.UNLOCK_API),
128
+ ip: z.string(),
129
+ params: apiStringUserSchema,
130
+ }),
131
+ ]);
132
+ const ptrEventsDataSchema = z.discriminatedUnion('type', [
133
+ z.object({
134
+ type: z.literal('CAMERA_POSITION'),
135
+ lat: z.number(),
136
+ lon: z.number(),
137
+ azimuth: z.number().min(0).max(360),
138
+ elevation: z.number().min(-90).max(90),
139
+ fov: z.number(),
140
+ }),
141
+ z.object({
142
+ type: z.literal('TRACKING_START'),
143
+ icao: z.string(),
144
+ }),
145
+ z.object({
146
+ type: z.literal('TRACKING_STOP'),
147
+ }),
148
+ z.object({
149
+ type: z.literal('FLIGHT_LIST'),
150
+ list: z.array(apiFlightDataSchema),
151
+ }),
152
+ z.object({
153
+ type: z.literal('USER_ACTION'),
154
+ ip: z.string(),
155
+ params: apiStringUserSchema.extend({
156
+ lat: z.string().optional(),
157
+ lon: z.string().optional(),
158
+ timeout: z.string().optional(),
159
+ }),
160
+ cgi: z.enum([
161
+ PlaneTrackerUserActions.TRACK_ICAO,
162
+ PlaneTrackerUserActions.RESET_ICAO,
163
+ PlaneTrackerUserActions.SET_PRIORITY_LIST,
164
+ PlaneTrackerUserActions.SET_BLACK_LIST,
165
+ PlaneTrackerUserActions.SET_WHITE_LIST,
166
+ PlaneTrackerUserActions.GO_TO_COORDINATES,
167
+ PlaneTrackerUserActions.SET_TRACKING_MODE,
168
+ PlaneTrackerUserActions.SET_ZONES,
169
+ PlaneTrackerUserActions.RESET_PTZ_CALIBRATION,
170
+ PlaneTrackerUserActions.LOCK_API,
171
+ PlaneTrackerUserActions.UNLOCK_API,
172
+ ]),
173
+ postJsonBody: z.any(),
174
+ }),
175
+ z.object({
176
+ type: z.literal('CONNECTED_USERS'),
177
+ users: z.array(apiUserSchema),
178
+ }),
179
+ z.object({
180
+ type: z.literal('FORCE_TRACKING_STATUS'),
181
+ enabled: z.boolean(),
182
+ icao: z.string().optional(),
183
+ }),
184
+ z.object({
185
+ type: z.literal('API_LOCK_STATUS'),
186
+ isLocked: z.boolean(),
187
+ user: apiUserSchema.optional(),
188
+ }),
189
+ ]);
190
+ export const ptrEventsSchema = z.discriminatedUnion('type', [
191
+ z.object({ type: z.literal('init'), data: ptrEventsDataSchema }),
192
+ ...ptrEventsDataSchema.options,
193
+ ]);