camstreamerlib 4.0.0-beta.11 → 4.0.0-beta.111

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 (413) hide show
  1. package/README.md +143 -38
  2. package/cjs/CamOverlayAPI.d.ts +543 -311
  3. package/cjs/CamOverlayAPI.js +112 -145
  4. package/cjs/CamScripterAPI.d.ts +44 -16
  5. package/cjs/CamScripterAPI.js +52 -33
  6. package/cjs/CamStreamerAPI.d.ts +2285 -14
  7. package/cjs/CamStreamerAPI.js +184 -37
  8. package/cjs/CamSwitcherAPI.d.ts +158 -42
  9. package/cjs/CamSwitcherAPI.js +143 -177
  10. package/cjs/PlaneTrackerAPI.d.ts +242 -0
  11. package/cjs/PlaneTrackerAPI.js +257 -0
  12. package/cjs/VapixAPI.d.ts +82 -42
  13. package/cjs/VapixAPI.js +283 -210
  14. package/cjs/{CreatePackage.js → bin/CreatePackage.js} +44 -18
  15. package/cjs/errors/errors.d.ts +70 -4
  16. package/cjs/errors/errors.js +140 -7
  17. package/cjs/index.d.ts +20 -6
  18. package/cjs/index.js +28 -8
  19. package/cjs/internal/ProxyClient.d.ts +8 -9
  20. package/cjs/internal/ProxyClient.js +28 -34
  21. package/cjs/internal/WsEvents.d.ts +38 -0
  22. package/cjs/{CamSwitcherEvents.js → internal/WsEvents.js} +33 -22
  23. package/cjs/internal/constants.d.ts +1 -0
  24. package/cjs/internal/constants.js +2 -1
  25. package/cjs/internal/convertors.d.ts +6 -0
  26. package/cjs/internal/convertors.js +115 -0
  27. package/cjs/internal/types.d.ts +32 -20
  28. package/cjs/internal/utils.d.ts +1 -3
  29. package/cjs/internal/utils.js +1 -12
  30. package/cjs/node/CamOverlayDrawingAPI.d.ts +41 -0
  31. package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +28 -20
  32. package/{esm → cjs/node}/CamOverlayPainter/Frame.d.ts +8 -37
  33. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  34. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.d.ts +5 -21
  35. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +5 -17
  36. package/cjs/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  37. package/cjs/node/CamOverlayPainter/ResourceManager.js +72 -0
  38. package/cjs/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  39. package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +13 -13
  40. package/cjs/node/DefaultClient.d.ts +6 -6
  41. package/cjs/node/DefaultClient.js +12 -16
  42. package/cjs/{internal → node}/Digest.js +24 -1
  43. package/cjs/node/Digest.test.js +13 -0
  44. package/cjs/node/HttpRequestSender.d.ts +1 -0
  45. package/cjs/node/HttpRequestSender.js +14 -4
  46. package/cjs/node/HttpServer.d.ts +1 -1
  47. package/cjs/node/HttpServer.js +29 -6
  48. package/cjs/node/TimeZoneDaemon.d.ts +6 -0
  49. package/cjs/node/TimeZoneDaemon.js +29 -0
  50. package/cjs/node/VapixEvents.d.ts +16 -0
  51. package/cjs/{VapixEvents.js → node/VapixEvents.js} +10 -10
  52. package/cjs/node/WsClient.d.ts +9 -18
  53. package/cjs/node/WsClient.js +27 -20
  54. package/cjs/node/events/AxisCameraStationEvents.d.ts +12 -0
  55. package/cjs/{events → node/events}/AxisCameraStationEvents.js +18 -13
  56. package/cjs/node/events/GenetecAgent.d.ts +16 -0
  57. package/cjs/node/events/GenetecAgent.js +124 -0
  58. package/cjs/node/index.d.ts +18 -2
  59. package/cjs/node/index.js +39 -5
  60. package/cjs/{models/CamOverlayAPI/widgetsSchema.d.ts → types/CamOverlayAPI/CamOverlayAPI.d.ts} +2387 -599
  61. package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +131 -0
  62. package/cjs/{models → types}/CamOverlayAPI/accuweatherSchema.d.ts +12 -12
  63. package/cjs/{models → types}/CamOverlayAPI/accuweatherSchema.js +7 -8
  64. package/cjs/{models → types}/CamOverlayAPI/customGraphicsSchema.d.ts +83 -82
  65. package/cjs/{models → types}/CamOverlayAPI/customGraphicsSchema.js +5 -6
  66. package/{esm/models → cjs/types}/CamOverlayAPI/imagesSchema.d.ts +10 -10
  67. package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
  68. package/cjs/{models → types}/CamOverlayAPI/index.d.ts +2 -4
  69. package/cjs/{models → types}/CamOverlayAPI/index.js +2 -4
  70. package/cjs/{models → types}/CamOverlayAPI/infotickerSchema.d.ts +20 -20
  71. package/cjs/{models → types}/CamOverlayAPI/infotickerSchema.js +6 -7
  72. package/{esm/models → cjs/types}/CamOverlayAPI/pipSchema.d.ts +14 -14
  73. package/cjs/{models → types}/CamOverlayAPI/pipSchema.js +5 -6
  74. package/{esm/models → cjs/types}/CamOverlayAPI/ptzCompassSchema.d.ts +13 -10
  75. package/cjs/{models → types}/CamOverlayAPI/ptzCompassSchema.js +5 -5
  76. package/{esm/models → cjs/types}/CamOverlayAPI/ptzSchema.d.ts +16 -16
  77. package/cjs/types/CamOverlayAPI/ptzSchema.js +12 -0
  78. package/cjs/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  79. package/cjs/types/CamOverlayAPI/scoreBoardSchema.js +132 -0
  80. package/cjs/{models → types}/CamOverlayAPI/screenSharingSchema.d.ts +8 -8
  81. package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
  82. package/{esm/models/CamOverlayAPI/widgetCommonSchema.d.ts → cjs/types/CamOverlayAPI/serviceCommonTypes.d.ts} +67 -48
  83. package/cjs/{models/CamOverlayAPI/widgetCommonSchema.js → types/CamOverlayAPI/serviceCommonTypes.js} +33 -18
  84. package/{esm/models → cjs/types}/CamOverlayAPI/webCameraSharingSchema.d.ts +8 -8
  85. package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +8 -0
  86. package/cjs/types/CamOverlayDrawingAPI.d.ts +48 -0
  87. package/cjs/types/CamOverlayDrawingAPI.js +2 -0
  88. package/cjs/types/CamOverlayPainter.d.ts +76 -0
  89. package/cjs/types/CamOverlayPainter.js +14 -0
  90. package/cjs/types/CamScripterAPI.d.ts +86 -23
  91. package/cjs/types/CamScripterAPI.js +24 -8
  92. package/cjs/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  93. package/cjs/types/CamScripterAPICameraEventsGenerator.js +2 -0
  94. package/cjs/types/CamStreamerAPI/CamStreamerAPI.d.ts +15361 -0
  95. package/cjs/types/CamStreamerAPI/CamStreamerAPI.js +160 -0
  96. package/cjs/types/CamStreamerAPI/churchSchema.d.ts +288 -0
  97. package/cjs/types/CamStreamerAPI/churchSchema.js +11 -0
  98. package/cjs/types/CamStreamerAPI/daCastSchema.d.ts +288 -0
  99. package/cjs/types/CamStreamerAPI/daCastSchema.js +11 -0
  100. package/cjs/types/CamStreamerAPI/dailymotionSchema.d.ts +288 -0
  101. package/cjs/types/CamStreamerAPI/dailymotionSchema.js +11 -0
  102. package/cjs/types/CamStreamerAPI/facebookSchema.d.ts +340 -0
  103. package/cjs/types/CamStreamerAPI/facebookSchema.js +27 -0
  104. package/cjs/types/CamStreamerAPI/gameChangerSchema.d.ts +307 -0
  105. package/cjs/types/CamStreamerAPI/gameChangerSchema.js +11 -0
  106. package/cjs/types/CamStreamerAPI/hlsPullSchema.d.ts +288 -0
  107. package/cjs/types/CamStreamerAPI/hlsPullSchema.js +11 -0
  108. package/cjs/types/CamStreamerAPI/hlsPushSchema.d.ts +288 -0
  109. package/cjs/types/CamStreamerAPI/hlsPushSchema.js +11 -0
  110. package/cjs/types/CamStreamerAPI/ibmSchema.d.ts +288 -0
  111. package/cjs/types/CamStreamerAPI/ibmSchema.js +11 -0
  112. package/cjs/types/CamStreamerAPI/index.d.ts +10 -0
  113. package/cjs/types/CamStreamerAPI/index.js +26 -0
  114. package/cjs/types/CamStreamerAPI/microsoftAzureSchema.d.ts +288 -0
  115. package/cjs/types/CamStreamerAPI/microsoftAzureSchema.js +11 -0
  116. package/cjs/types/CamStreamerAPI/microsoftStreamSchema.d.ts +288 -0
  117. package/cjs/types/CamStreamerAPI/microsoftStreamSchema.js +11 -0
  118. package/cjs/types/CamStreamerAPI/mpegDvbSchema.d.ts +336 -0
  119. package/cjs/types/CamStreamerAPI/mpegDvbSchema.js +27 -0
  120. package/cjs/types/{CamStreamerAPI.d.ts → CamStreamerAPI/oldStreamSchema.d.ts} +108 -39
  121. package/cjs/types/CamStreamerAPI/oldStreamSchema.js +53 -0
  122. package/cjs/types/CamStreamerAPI/rtmpSchema.d.ts +609 -0
  123. package/cjs/types/CamStreamerAPI/rtmpSchema.js +19 -0
  124. package/cjs/types/CamStreamerAPI/sdCardSchema.d.ts +288 -0
  125. package/cjs/types/CamStreamerAPI/sdCardSchema.js +11 -0
  126. package/cjs/types/CamStreamerAPI/srtSchema.d.ts +288 -0
  127. package/cjs/types/CamStreamerAPI/srtSchema.js +11 -0
  128. package/cjs/types/CamStreamerAPI/streamCommonTypes.d.ts +581 -0
  129. package/cjs/types/CamStreamerAPI/streamCommonTypes.js +97 -0
  130. package/cjs/types/CamStreamerAPI/twitchSchema.d.ts +288 -0
  131. package/cjs/types/CamStreamerAPI/twitchSchema.js +11 -0
  132. package/cjs/types/CamStreamerAPI/vimeoSchema.d.ts +288 -0
  133. package/cjs/types/CamStreamerAPI/vimeoSchema.js +11 -0
  134. package/cjs/types/CamStreamerAPI/windySchema.d.ts +288 -0
  135. package/cjs/types/CamStreamerAPI/windySchema.js +11 -0
  136. package/cjs/types/CamStreamerAPI/wowzaSchema.d.ts +288 -0
  137. package/cjs/types/CamStreamerAPI/wowzaSchema.js +11 -0
  138. package/cjs/types/CamStreamerAPI/youtubeRtmpSchema.d.ts +307 -0
  139. package/cjs/types/CamStreamerAPI/youtubeRtmpSchema.js +11 -0
  140. package/cjs/types/CamStreamerAPI/youtubeSchema.d.ts +330 -0
  141. package/cjs/types/CamStreamerAPI/youtubeSchema.js +25 -0
  142. package/cjs/types/CamSwitcherAPI.d.ts +127 -67
  143. package/cjs/types/CamSwitcherAPI.js +31 -1
  144. package/cjs/{events → types}/GenetecAgent.d.ts +47 -47
  145. package/cjs/types/GenetecAgent.js +31 -0
  146. package/cjs/types/PlaneTrackerAPI.d.ts +980 -0
  147. package/cjs/types/PlaneTrackerAPI.js +333 -0
  148. package/cjs/types/VapixAPI.d.ts +255 -15
  149. package/cjs/types/VapixAPI.js +66 -3
  150. package/cjs/types/VapixEvents.d.ts +15 -0
  151. package/cjs/types/VapixEvents.js +2 -0
  152. package/cjs/types/common.d.ts +43 -3
  153. package/cjs/types/common.js +17 -2
  154. package/cjs/types/ws/CamOverlayEvents.d.ts +88 -0
  155. package/cjs/types/ws/CamOverlayEvents.js +19 -0
  156. package/cjs/types/ws/CamStreamerEvents.d.ts +282 -0
  157. package/cjs/types/ws/CamStreamerEvents.js +36 -0
  158. package/cjs/types/ws/PlaneTrackerEvents.d.ts +1703 -0
  159. package/cjs/types/ws/PlaneTrackerEvents.js +207 -0
  160. package/cjs/web/DefaultClient.d.ts +7 -5
  161. package/cjs/web/DefaultClient.js +25 -11
  162. package/cjs/web/WsClient.d.ts +9 -5
  163. package/cjs/web/WsClient.js +16 -18
  164. package/cjs/ws/CamOverlayEvents.d.ts +8 -0
  165. package/cjs/ws/CamOverlayEvents.js +24 -0
  166. package/cjs/ws/CamStreamerEvents.d.ts +8 -0
  167. package/cjs/ws/CamStreamerEvents.js +24 -0
  168. package/cjs/ws/CamSwitcherEvents.d.ts +8 -0
  169. package/cjs/ws/CamSwitcherEvents.js +24 -0
  170. package/cjs/ws/PlaneTrackerEvents.d.ts +9 -0
  171. package/cjs/ws/PlaneTrackerEvents.js +30 -0
  172. package/esm/CamOverlayAPI.js +113 -146
  173. package/esm/CamScripterAPI.js +51 -32
  174. package/esm/CamStreamerAPI.js +183 -37
  175. package/esm/CamSwitcherAPI.js +146 -180
  176. package/esm/PlaneTrackerAPI.js +253 -0
  177. package/esm/VapixAPI.js +285 -212
  178. package/esm/{CreatePackage.js → bin/CreatePackage.js} +16 -16
  179. package/esm/errors/errors.js +122 -6
  180. package/esm/index.js +20 -6
  181. package/esm/internal/ProxyClient.js +28 -34
  182. package/esm/{CamSwitcherEvents.js → internal/WsEvents.js} +31 -20
  183. package/esm/internal/constants.js +1 -0
  184. package/esm/internal/convertors.js +108 -0
  185. package/esm/internal/utils.js +0 -9
  186. package/esm/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +26 -18
  187. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  188. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +2 -13
  189. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/ResourceManager.js +7 -5
  190. package/esm/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +11 -11
  191. package/esm/node/DefaultClient.js +12 -16
  192. package/esm/node/Digest.test.js +11 -0
  193. package/esm/node/HttpRequestSender.js +14 -4
  194. package/esm/node/HttpServer.js +1 -1
  195. package/esm/node/TimeZoneDaemon.js +25 -0
  196. package/esm/{VapixEvents.js → node/VapixEvents.js} +10 -10
  197. package/esm/node/WsClient.js +22 -15
  198. package/esm/{events → node/events}/AxisCameraStationEvents.js +18 -13
  199. package/esm/node/events/GenetecAgent.js +120 -0
  200. package/esm/node/index.js +18 -2
  201. package/esm/types/CamOverlayAPI/CamOverlayAPI.js +110 -0
  202. package/esm/{models → types}/CamOverlayAPI/accuweatherSchema.js +3 -4
  203. package/esm/{models → types}/CamOverlayAPI/customGraphicsSchema.js +3 -4
  204. package/esm/types/CamOverlayAPI/imagesSchema.js +6 -0
  205. package/esm/{models → types}/CamOverlayAPI/index.js +2 -4
  206. package/esm/{models → types}/CamOverlayAPI/infotickerSchema.js +3 -4
  207. package/esm/{models → types}/CamOverlayAPI/pipSchema.js +4 -5
  208. package/esm/{models → types}/CamOverlayAPI/ptzCompassSchema.js +4 -4
  209. package/esm/types/CamOverlayAPI/ptzSchema.js +9 -0
  210. package/esm/types/CamOverlayAPI/scoreBoardSchema.js +129 -0
  211. package/esm/types/CamOverlayAPI/screenSharingSchema.js +5 -0
  212. package/esm/{models/CamOverlayAPI/widgetCommonSchema.js → types/CamOverlayAPI/serviceCommonTypes.js} +32 -17
  213. package/esm/types/CamOverlayAPI/webCameraSharingSchema.js +5 -0
  214. package/esm/types/CamOverlayDrawingAPI.js +1 -0
  215. package/esm/types/CamOverlayPainter.js +11 -0
  216. package/esm/types/CamScripterAPI.js +23 -7
  217. package/esm/types/CamScripterAPICameraEventsGenerator.js +1 -0
  218. package/esm/types/CamStreamerAPI/CamStreamerAPI.js +137 -0
  219. package/esm/types/CamStreamerAPI/churchSchema.js +5 -0
  220. package/esm/types/CamStreamerAPI/daCastSchema.js +5 -0
  221. package/esm/types/CamStreamerAPI/dailymotionSchema.js +5 -0
  222. package/esm/types/CamStreamerAPI/facebookSchema.js +21 -0
  223. package/esm/types/CamStreamerAPI/gameChangerSchema.js +5 -0
  224. package/esm/types/CamStreamerAPI/hlsPullSchema.js +5 -0
  225. package/esm/types/CamStreamerAPI/hlsPushSchema.js +5 -0
  226. package/esm/types/CamStreamerAPI/ibmSchema.js +5 -0
  227. package/esm/types/CamStreamerAPI/index.js +10 -0
  228. package/esm/types/CamStreamerAPI/microsoftAzureSchema.js +5 -0
  229. package/esm/types/CamStreamerAPI/microsoftStreamSchema.js +5 -0
  230. package/esm/types/CamStreamerAPI/mpegDvbSchema.js +21 -0
  231. package/esm/types/CamStreamerAPI/oldStreamSchema.js +50 -0
  232. package/esm/types/CamStreamerAPI/rtmpSchema.js +13 -0
  233. package/esm/types/CamStreamerAPI/sdCardSchema.js +5 -0
  234. package/esm/types/CamStreamerAPI/srtSchema.js +5 -0
  235. package/esm/types/CamStreamerAPI/streamCommonTypes.js +94 -0
  236. package/esm/types/CamStreamerAPI/twitchSchema.js +5 -0
  237. package/esm/types/CamStreamerAPI/vimeoSchema.js +5 -0
  238. package/esm/types/CamStreamerAPI/windySchema.js +5 -0
  239. package/esm/types/CamStreamerAPI/wowzaSchema.js +5 -0
  240. package/esm/types/CamStreamerAPI/youtubeRtmpSchema.js +5 -0
  241. package/esm/types/CamStreamerAPI/youtubeSchema.js +19 -0
  242. package/esm/types/CamSwitcherAPI.js +31 -1
  243. package/esm/types/GenetecAgent.js +28 -0
  244. package/esm/types/PlaneTrackerAPI.js +330 -0
  245. package/esm/types/VapixAPI.js +65 -2
  246. package/esm/types/VapixEvents.js +1 -0
  247. package/esm/types/common.js +16 -1
  248. package/esm/types/ws/CamOverlayEvents.js +16 -0
  249. package/esm/types/ws/CamStreamerEvents.js +33 -0
  250. package/esm/types/ws/PlaneTrackerEvents.js +204 -0
  251. package/esm/web/DefaultClient.js +25 -11
  252. package/esm/web/WsClient.js +16 -18
  253. package/esm/ws/CamOverlayEvents.js +20 -0
  254. package/esm/ws/CamStreamerEvents.js +20 -0
  255. package/esm/ws/CamSwitcherEvents.js +20 -0
  256. package/esm/ws/PlaneTrackerEvents.js +26 -0
  257. package/package.json +43 -9
  258. package/{esm → types}/CamOverlayAPI.d.ts +543 -311
  259. package/types/CamScripterAPI.d.ts +47 -0
  260. package/types/CamStreamerAPI.d.ts +2287 -0
  261. package/types/CamSwitcherAPI.d.ts +168 -0
  262. package/types/PlaneTrackerAPI.d.ts +242 -0
  263. package/types/VapixAPI.d.ts +118 -0
  264. package/types/bin/CreatePackage.d.ts +1 -0
  265. package/types/errors/errors.d.ts +103 -0
  266. package/types/index.d.ts +28 -0
  267. package/types/internal/ProxyClient.d.ts +10 -0
  268. package/types/internal/WsEvents.d.ts +38 -0
  269. package/{esm → types}/internal/constants.d.ts +1 -0
  270. package/types/internal/convertors.d.ts +6 -0
  271. package/types/internal/types.d.ts +47 -0
  272. package/{esm → types}/internal/utils.d.ts +1 -3
  273. package/types/node/CamOverlayDrawingAPI.d.ts +41 -0
  274. package/{cjs → types/node}/CamOverlayPainter/Frame.d.ts +8 -37
  275. package/{esm → types/node}/CamOverlayPainter/Painter.d.ts +5 -21
  276. package/types/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  277. package/types/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  278. package/types/node/DefaultClient.d.ts +16 -0
  279. package/types/node/Digest.test.d.ts +1 -0
  280. package/{esm → types}/node/HttpRequestSender.d.ts +1 -0
  281. package/{esm → types}/node/HttpServer.d.ts +1 -1
  282. package/types/node/TimeZoneDaemon.d.ts +6 -0
  283. package/types/node/VapixEvents.d.ts +16 -0
  284. package/types/node/WsClient.d.ts +30 -0
  285. package/types/node/events/AxisCameraStationEvents.d.ts +12 -0
  286. package/types/node/events/GenetecAgent.d.ts +16 -0
  287. package/types/node/index.d.ts +18 -0
  288. package/{esm/models/CamOverlayAPI/widgetsSchema.d.ts → types/types/CamOverlayAPI/CamOverlayAPI.d.ts} +2387 -599
  289. package/{esm/models → types/types}/CamOverlayAPI/accuweatherSchema.d.ts +12 -12
  290. package/{esm/models → types/types}/CamOverlayAPI/customGraphicsSchema.d.ts +83 -82
  291. package/{cjs/models → types/types}/CamOverlayAPI/imagesSchema.d.ts +10 -10
  292. package/{esm/models → types/types}/CamOverlayAPI/index.d.ts +2 -4
  293. package/{esm/models → types/types}/CamOverlayAPI/infotickerSchema.d.ts +20 -20
  294. package/{cjs/models → types/types}/CamOverlayAPI/pipSchema.d.ts +14 -14
  295. package/{cjs/models → types/types}/CamOverlayAPI/ptzCompassSchema.d.ts +13 -10
  296. package/{cjs/models → types/types}/CamOverlayAPI/ptzSchema.d.ts +16 -16
  297. package/types/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  298. package/{esm/models → types/types}/CamOverlayAPI/screenSharingSchema.d.ts +8 -8
  299. package/{cjs/models/CamOverlayAPI/widgetCommonSchema.d.ts → types/types/CamOverlayAPI/serviceCommonTypes.d.ts} +67 -48
  300. package/{cjs/models → types/types}/CamOverlayAPI/webCameraSharingSchema.d.ts +8 -8
  301. package/types/types/CamOverlayDrawingAPI.d.ts +48 -0
  302. package/types/types/CamOverlayPainter.d.ts +76 -0
  303. package/types/types/CamScripterAPI.d.ts +130 -0
  304. package/types/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  305. package/types/types/CamStreamerAPI/CamStreamerAPI.d.ts +15361 -0
  306. package/types/types/CamStreamerAPI/churchSchema.d.ts +288 -0
  307. package/types/types/CamStreamerAPI/daCastSchema.d.ts +288 -0
  308. package/types/types/CamStreamerAPI/dailymotionSchema.d.ts +288 -0
  309. package/types/types/CamStreamerAPI/facebookSchema.d.ts +340 -0
  310. package/types/types/CamStreamerAPI/gameChangerSchema.d.ts +307 -0
  311. package/types/types/CamStreamerAPI/hlsPullSchema.d.ts +288 -0
  312. package/types/types/CamStreamerAPI/hlsPushSchema.d.ts +288 -0
  313. package/types/types/CamStreamerAPI/ibmSchema.d.ts +288 -0
  314. package/types/types/CamStreamerAPI/index.d.ts +10 -0
  315. package/types/types/CamStreamerAPI/microsoftAzureSchema.d.ts +288 -0
  316. package/types/types/CamStreamerAPI/microsoftStreamSchema.d.ts +288 -0
  317. package/types/types/CamStreamerAPI/mpegDvbSchema.d.ts +336 -0
  318. package/{esm/types/CamStreamerAPI.d.ts → types/types/CamStreamerAPI/oldStreamSchema.d.ts} +108 -39
  319. package/types/types/CamStreamerAPI/rtmpSchema.d.ts +609 -0
  320. package/types/types/CamStreamerAPI/sdCardSchema.d.ts +288 -0
  321. package/types/types/CamStreamerAPI/srtSchema.d.ts +288 -0
  322. package/types/types/CamStreamerAPI/streamCommonTypes.d.ts +581 -0
  323. package/types/types/CamStreamerAPI/twitchSchema.d.ts +288 -0
  324. package/types/types/CamStreamerAPI/vimeoSchema.d.ts +288 -0
  325. package/types/types/CamStreamerAPI/windySchema.d.ts +288 -0
  326. package/types/types/CamStreamerAPI/wowzaSchema.d.ts +288 -0
  327. package/types/types/CamStreamerAPI/youtubeRtmpSchema.d.ts +307 -0
  328. package/types/types/CamStreamerAPI/youtubeSchema.d.ts +330 -0
  329. package/{esm → types}/types/CamSwitcherAPI.d.ts +127 -67
  330. package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
  331. package/types/types/PlaneTrackerAPI.d.ts +980 -0
  332. package/{esm → types}/types/VapixAPI.d.ts +255 -15
  333. package/types/types/VapixEvents.d.ts +15 -0
  334. package/types/types/common.d.ts +77 -0
  335. package/types/types/ws/CamOverlayEvents.d.ts +88 -0
  336. package/types/types/ws/CamStreamerEvents.d.ts +282 -0
  337. package/types/types/ws/PlaneTrackerEvents.d.ts +1703 -0
  338. package/types/web/DefaultClient.d.ts +8 -0
  339. package/types/web/WsClient.d.ts +17 -0
  340. package/types/ws/CamOverlayEvents.d.ts +8 -0
  341. package/types/ws/CamStreamerEvents.d.ts +8 -0
  342. package/types/ws/CamSwitcherEvents.d.ts +8 -0
  343. package/types/ws/PlaneTrackerEvents.d.ts +9 -0
  344. package/cjs/CamOverlayDrawingAPI.d.ts +0 -86
  345. package/cjs/CamOverlayPainter/ResourceManager.d.ts +0 -14
  346. package/cjs/CamOverlayPainter/ResourceManager.js +0 -46
  347. package/cjs/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  348. package/cjs/CamSwitcherEvents.d.ts +0 -18
  349. package/cjs/VapixEvents.d.ts +0 -43
  350. package/cjs/events/AxisCameraStationEvents.d.ts +0 -10
  351. package/cjs/events/GenetecAgent.js +0 -123
  352. package/cjs/models/CamOverlayAPI/constants.d.ts +0 -11
  353. package/cjs/models/CamOverlayAPI/constants.js +0 -14
  354. package/cjs/models/CamOverlayAPI/fileSchema.d.ts +0 -28
  355. package/cjs/models/CamOverlayAPI/fileSchema.js +0 -17
  356. package/cjs/models/CamOverlayAPI/imagesSchema.js +0 -10
  357. package/cjs/models/CamOverlayAPI/ptzSchema.js +0 -13
  358. package/cjs/models/CamOverlayAPI/screenSharingSchema.js +0 -9
  359. package/cjs/models/CamOverlayAPI/webCameraSharingSchema.js +0 -9
  360. package/cjs/models/CamOverlayAPI/widgetsSchema.js +0 -27
  361. package/cjs/node/WsEventClient.d.ts +0 -13
  362. package/cjs/node/WsEventClient.js +0 -22
  363. package/cjs/types/CamOverlayAPI.d.ts +0 -328
  364. package/cjs/types/CamOverlayAPI.js +0 -26
  365. package/cjs/types/CamStreamerAPI.js +0 -28
  366. package/esm/CamOverlayDrawingAPI.d.ts +0 -86
  367. package/esm/CamOverlayPainter/ResourceManager.d.ts +0 -14
  368. package/esm/CamScripterAPI.d.ts +0 -19
  369. package/esm/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  370. package/esm/CamStreamerAPI.d.ts +0 -16
  371. package/esm/CamSwitcherAPI.d.ts +0 -52
  372. package/esm/CamSwitcherEvents.d.ts +0 -18
  373. package/esm/VapixAPI.d.ts +0 -78
  374. package/esm/VapixEvents.d.ts +0 -43
  375. package/esm/errors/errors.d.ts +0 -37
  376. package/esm/events/AxisCameraStationEvents.d.ts +0 -10
  377. package/esm/events/GenetecAgent.js +0 -119
  378. package/esm/index.d.ts +0 -14
  379. package/esm/internal/ProxyClient.d.ts +0 -11
  380. package/esm/internal/types.d.ts +0 -35
  381. package/esm/models/CamOverlayAPI/constants.d.ts +0 -11
  382. package/esm/models/CamOverlayAPI/constants.js +0 -11
  383. package/esm/models/CamOverlayAPI/fileSchema.d.ts +0 -28
  384. package/esm/models/CamOverlayAPI/fileSchema.js +0 -14
  385. package/esm/models/CamOverlayAPI/imagesSchema.js +0 -7
  386. package/esm/models/CamOverlayAPI/ptzSchema.js +0 -10
  387. package/esm/models/CamOverlayAPI/screenSharingSchema.js +0 -6
  388. package/esm/models/CamOverlayAPI/webCameraSharingSchema.js +0 -6
  389. package/esm/models/CamOverlayAPI/widgetsSchema.js +0 -24
  390. package/esm/node/DefaultClient.d.ts +0 -16
  391. package/esm/node/WsClient.d.ts +0 -39
  392. package/esm/node/WsEventClient.d.ts +0 -13
  393. package/esm/node/WsEventClient.js +0 -18
  394. package/esm/types/CamOverlayAPI.d.ts +0 -328
  395. package/esm/types/CamOverlayAPI.js +0 -14
  396. package/esm/types/CamScripterAPI.d.ts +0 -67
  397. package/esm/types/CamStreamerAPI.js +0 -25
  398. package/esm/types/common.d.ts +0 -37
  399. package/esm/web/DefaultClient.d.ts +0 -6
  400. package/esm/web/WsClient.d.ts +0 -13
  401. package/esm/web/index.d.ts +0 -2
  402. /package/cjs/{CreatePackage.d.ts → bin/CreatePackage.d.ts} +0 -0
  403. /package/cjs/{internal → node}/Digest.d.ts +0 -0
  404. /package/{esm/CreatePackage.d.ts → cjs/node/Digest.test.d.ts} +0 -0
  405. /package/cjs/types/{CamSwitcherEvents.d.ts → ws/CamSwitcherEvents.d.ts} +0 -0
  406. /package/cjs/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  407. /package/esm/{internal → node}/Digest.js +0 -0
  408. /package/esm/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  409. /package/{esm → types}/internal/transformers.d.ts +0 -0
  410. /package/{esm → types}/internal/versionCompare.d.ts +0 -0
  411. /package/{esm/internal → types/node}/Digest.d.ts +0 -0
  412. /package/{esm/types → types/types/ws}/CamSwitcherEvents.d.ts +0 -0
  413. /package/{esm/node → types/web}/index.d.ts +0 -0
@@ -1,15 +1,15 @@
1
- import * as AdmZip from 'adm-zip';
2
- import * as Path from 'path';
1
+ import AdmZip from 'adm-zip';
2
+ import * as path from 'path';
3
3
  import * as fs from 'fs';
4
4
  import { execSync } from 'child_process';
5
5
  const productionModulesFolder = 'production_modules';
6
- function isDirectory(path) {
7
- const stat = fs.statSync(path);
6
+ function isDirectory(filePath) {
7
+ const stat = fs.statSync(filePath);
8
8
  return stat.isDirectory();
9
9
  }
10
10
  function getPackageInfo(folder) {
11
11
  try {
12
- const manifest = fs.readFileSync(Path.join(folder, 'manifest.json'));
12
+ const manifest = fs.readFileSync(path.join(folder, 'manifest.json'));
13
13
  const manifestParsed = JSON.parse(manifest.toString());
14
14
  return {
15
15
  packageName: manifestParsed.package_name,
@@ -21,11 +21,11 @@ function getPackageInfo(folder) {
21
21
  }
22
22
  }
23
23
  function createZipArchive(zip, folder, options) {
24
- const zipFileRegex = new RegExp(`${Path.basename(folder)}(_[0-9]){3}\\.zip`);
24
+ const zipFileRegex = new RegExp(`${path.basename(folder)}(_[0-9]){3}\\.zip`);
25
25
  const files = fs.readdirSync(folder);
26
26
  for (const file of files) {
27
- const path = Path.join(folder, file);
28
- const isDir = isDirectory(path);
27
+ const filePath = path.join(folder, file);
28
+ const isDir = isDirectory(filePath);
29
29
  if (file[0] === '.' ||
30
30
  zipFileRegex.test(file) ||
31
31
  file === 'node_modules' ||
@@ -34,16 +34,16 @@ function createZipArchive(zip, folder, options) {
34
34
  continue;
35
35
  }
36
36
  else if (file === 'dist' && options.typeScriptPackage) {
37
- zip.addLocalFolder(path);
37
+ zip.addLocalFolder(filePath);
38
38
  }
39
39
  else if (file === productionModulesFolder && options.includeNodeModules) {
40
- zip.addLocalFolder(Path.join(productionModulesFolder, 'node_modules'), 'node_modules');
40
+ zip.addLocalFolder(path.join(productionModulesFolder, 'node_modules'), 'node_modules');
41
41
  }
42
42
  else if (isDir) {
43
- zip.addLocalFolder(path, file);
43
+ zip.addLocalFolder(filePath, file);
44
44
  }
45
45
  else {
46
- zip.addLocalFile(path);
46
+ zip.addLocalFile(filePath);
47
47
  }
48
48
  }
49
49
  }
@@ -51,10 +51,10 @@ function installDependencies() {
51
51
  if (!fs.existsSync(productionModulesFolder)) {
52
52
  fs.mkdirSync(productionModulesFolder, {});
53
53
  }
54
- fs.cpSync('package.json', Path.join(productionModulesFolder, 'package.json'));
55
- fs.cpSync('package-lock.json', Path.join(productionModulesFolder, 'package-lock.json'));
54
+ fs.cpSync('package.json', path.join(productionModulesFolder, 'package.json'));
55
+ fs.cpSync('package-lock.json', path.join(productionModulesFolder, 'package-lock.json'));
56
56
  execSync(`npm ci --omit=dev`, {
57
- cwd: Path.join(process.cwd(), productionModulesFolder),
57
+ cwd: path.join(process.cwd(), productionModulesFolder),
58
58
  });
59
59
  }
60
60
  function main(args) {
@@ -81,7 +81,7 @@ function main(args) {
81
81
  if (fs.existsSync('dist')) {
82
82
  options.typeScriptPackage = true;
83
83
  }
84
- const folder = Path.resolve('.');
84
+ const folder = path.resolve('.');
85
85
  const packageInfo = getPackageInfo(folder);
86
86
  if (packageInfo === undefined) {
87
87
  console.error('Package info not found');
@@ -1,3 +1,11 @@
1
+ export class ErrorWithResponse extends Error {
2
+ res;
3
+ constructor(res) {
4
+ super(res.statusText);
5
+ this.res = res;
6
+ this.name = 'ErrorWithResponse';
7
+ }
8
+ }
1
9
  export class ServiceUnavailableError extends Error {
2
10
  constructor() {
3
11
  super('Service is unavailable.');
@@ -16,21 +24,43 @@ export class ParsingBlobError extends Error {
16
24
  this.name = 'ParsingBlobError';
17
25
  }
18
26
  }
27
+ export class JsonParseError extends Error {
28
+ constructor(paramName, data) {
29
+ super(`Error: in JSON parsing of ${paramName}. Cannot parse: ${data}`);
30
+ this.name = 'JsonParseError';
31
+ }
32
+ }
33
+ export class ParameterNotFoundError extends Error {
34
+ constructor(paramName) {
35
+ super(`Error: no parameter '${paramName}' was found`);
36
+ this.name = 'ParameterNotFoundError';
37
+ }
38
+ }
39
+ export class SettingParameterError extends Error {
40
+ constructor(message) {
41
+ super(`Error setting parameter to camera: ${message}`);
42
+ this.name = 'SettingParameterError';
43
+ }
44
+ }
19
45
  export class ApplicationAPIError extends Error {
20
- constructor(action, res) {
21
- super(`[APP ${action}] Error: ` + res);
46
+ action;
47
+ constructor(action, reason) {
48
+ super(`Error performing application action '${action}': ${reason}`);
49
+ this.action = action;
22
50
  this.name = 'ApplicationAPIError';
23
51
  }
24
52
  }
25
53
  export class SDCardActionError extends Error {
26
- constructor(action, res) {
27
- super(`[SD_CARD ${action}] Error: ` + res);
54
+ action;
55
+ constructor(action, reason) {
56
+ super(`Error performing SD card action '${action}': ${reason}`);
57
+ this.action = action;
28
58
  this.name = 'SDCardActionError';
29
59
  }
30
60
  }
31
61
  export class SDCardJobError extends Error {
32
- constructor() {
33
- super('Error while fetching SD card job progress');
62
+ constructor(reason) {
63
+ super(`Error while fetching SD card job progress: ${reason}`);
34
64
  this.name = 'SDCardJobError';
35
65
  }
36
66
  }
@@ -70,3 +100,89 @@ export class PtzNotSupportedError extends Error {
70
100
  this.name = 'PtzNotSupportedError';
71
101
  }
72
102
  }
103
+ export class StorageDataFetchError extends Error {
104
+ constructor(err) {
105
+ super('Error fetching storage data: ' + err);
106
+ this.name = 'StorageDataFetchError';
107
+ }
108
+ }
109
+ export class WsAuthorizationError extends Error {
110
+ constructor(message) {
111
+ super('Server error on ws authorization: ' + message);
112
+ this.name = 'WsAuthorizationError';
113
+ }
114
+ }
115
+ export class UtcTimeFetchError extends Error {
116
+ constructor(message) {
117
+ super('Server error on get UTC time: ' + message);
118
+ this.name = 'UtcTimeFetchError';
119
+ }
120
+ }
121
+ export class TimezoneNotSetupError extends Error {
122
+ constructor() {
123
+ super('Time zone not setup on the device');
124
+ this.name = 'TimezoneNotSetupError';
125
+ }
126
+ }
127
+ export class TimezoneFetchError extends Error {
128
+ constructor(err) {
129
+ super('Error fetching time zone information: ' + err);
130
+ this.name = 'TimezoneFetchError';
131
+ }
132
+ }
133
+ export class ResetCalibrationError extends ErrorWithResponse {
134
+ type;
135
+ constructor(type, res) {
136
+ super(res);
137
+ this.type = type;
138
+ this.name = 'ResetCalibrationError';
139
+ }
140
+ }
141
+ export class ImportSettingsError extends ErrorWithResponse {
142
+ constructor(res) {
143
+ super(res);
144
+ this.name = 'ImportSettingsError';
145
+ }
146
+ }
147
+ export class CannotSetCoordsInAutoModeError extends Error {
148
+ constructor() {
149
+ super("The automatic mode doesn't allow control of the camera.");
150
+ this.name = 'CannotSetCoordsInAutoModeError';
151
+ }
152
+ }
153
+ export class InvalidLatLngError extends Error {
154
+ constructor() {
155
+ super('The provided latitude or longitude parameters are invalid.');
156
+ this.name = 'InvalidLatLngError';
157
+ }
158
+ }
159
+ export class InvalidAltitudeError extends Error {
160
+ constructor() {
161
+ super('The provided altitude parameter is invalid.');
162
+ this.name = 'InvalidAltitudeError';
163
+ }
164
+ }
165
+ export class ServerError extends Error {
166
+ constructor() {
167
+ super('An internal server error occurred.');
168
+ this.name = 'ServerError';
169
+ }
170
+ }
171
+ export class BadRequestError extends ErrorWithResponse {
172
+ constructor(res) {
173
+ super(res);
174
+ this.name = 'BadRequestError';
175
+ }
176
+ }
177
+ export class MigrationError extends Error {
178
+ valid;
179
+ old;
180
+ invalid;
181
+ constructor(valid, old, invalid = []) {
182
+ super('Migration to newer version is needed: some stream entries failed to parse.');
183
+ this.name = 'MigrationError';
184
+ this.valid = valid;
185
+ this.old = old;
186
+ this.invalid = invalid;
187
+ }
188
+ }
package/esm/index.js CHANGED
@@ -1,14 +1,28 @@
1
+ export * from './errors/errors';
1
2
  export * from './internal/types';
2
3
  export * from './internal/constants';
4
+ export * from './internal/convertors';
3
5
  export * from './internal/utils';
4
6
  export * from './internal/versionCompare';
7
+ export * from './internal/ProxyClient';
5
8
  export * from './types/common';
6
- export { CamSwitcherAPI } from './CamSwitcherAPI';
7
- export { CamSwitcherEvents } from './CamSwitcherEvents';
8
- export { VapixAPI } from './VapixAPI';
9
+ export { CamStreamerAPI } from './CamStreamerAPI';
10
+ export * from './types/CamStreamerAPI';
11
+ export { CamStreamerEvents } from './ws/CamStreamerEvents';
12
+ export * from './types/ws/CamStreamerEvents';
9
13
  export { CamOverlayAPI } from './CamOverlayAPI';
10
- export * from './types/CamSwitcherEvents';
14
+ export * from './types/CamOverlayAPI';
15
+ export { CamOverlayEvents } from './ws/CamOverlayEvents';
16
+ export * from './types/ws/CamOverlayEvents';
17
+ export { CamSwitcherAPI } from './CamSwitcherAPI';
11
18
  export * from './types/CamSwitcherAPI';
19
+ export { CamSwitcherEvents } from './ws/CamSwitcherEvents';
20
+ export * from './types/ws/CamSwitcherEvents';
21
+ export { PlaneTrackerAPI } from './PlaneTrackerAPI';
22
+ export * from './types/PlaneTrackerAPI';
23
+ export { PlaneTrackerEvents } from './ws/PlaneTrackerEvents';
24
+ export * from './types/ws/PlaneTrackerEvents';
25
+ export { CamScripterAPI } from './CamScripterAPI';
26
+ export * from './types/CamScripterAPI';
27
+ export { VapixAPI } from './VapixAPI';
12
28
  export * from './types/VapixAPI';
13
- export * from './types/CamOverlayAPI';
14
- export * from './models/CamOverlayAPI';
@@ -1,42 +1,36 @@
1
1
  import { addParametersToPath } from './utils';
2
2
  export class ProxyClient {
3
3
  client;
4
- getProxyUrl;
5
- constructor(client, getProxyUrl) {
4
+ proxyParams;
5
+ constructor(client, proxyParams) {
6
6
  this.client = client;
7
- this.getProxyUrl = getProxyUrl;
7
+ this.proxyParams = proxyParams;
8
8
  }
9
- get = (proxy, ...args) => {
10
- const [path, parameters, headers] = args;
11
- const url = addParametersToPath(path, parameters);
12
- const { realUrl, realHeaders } = this.getReal(proxy, url, headers);
13
- return this.client.get(realUrl, {}, realHeaders);
14
- };
15
- post = (proxy, ...args) => {
16
- const [path, data, parameters, headers] = args;
17
- const url = addParametersToPath(path, parameters);
18
- const { realUrl, realHeaders } = this.getReal(proxy, url, headers);
19
- return this.client.post(realUrl, data, {}, realHeaders);
20
- };
21
- getReal = (proxy, url, headers) => {
22
- if (proxy !== null) {
23
- return {
24
- realUrl: this.getProxyUrl(),
25
- realHeaders: {
26
- ...(headers ?? {}),
27
- 'x-target-camera-protocol': proxy.port === 443 ? 'https' : 'http',
28
- 'x-target-camera-path': url,
29
- 'x-target-camera-ip': proxy.ip,
30
- 'x-target-camera-mdns': proxy.mdnsName,
31
- 'x-target-camera-port': String(proxy.port),
32
- 'x-target-camera-pass': encodeURIComponent(proxy.pass),
33
- 'x-target-camera-user': encodeURIComponent(proxy.user),
34
- },
35
- };
36
- }
9
+ get(params) {
10
+ const { path, parameters, headers, timeout } = params;
11
+ const targetPath = addParametersToPath(path, parameters);
12
+ const { realPath, realHeaders } = this.getReal(targetPath, headers);
13
+ return this.client.get({ path: realPath, headers: realHeaders, timeout });
14
+ }
15
+ post(params) {
16
+ const { path, data, parameters, headers, timeout } = params;
17
+ const targetPath = addParametersToPath(path, parameters);
18
+ const { realPath, realHeaders } = this.getReal(targetPath, headers);
19
+ return this.client.post({ path: realPath, data, headers: realHeaders, timeout });
20
+ }
21
+ getReal(targetPath, headers) {
37
22
  return {
38
- realUrl: url,
39
- realHeaders: headers,
23
+ realPath: this.proxyParams.path,
24
+ realHeaders: {
25
+ ...(headers ?? {}),
26
+ 'x-target-camera-protocol': this.proxyParams.target.port === 443 ? 'https' : 'http',
27
+ 'x-target-camera-path': targetPath,
28
+ 'x-target-camera-ip': this.proxyParams.target.ip,
29
+ 'x-target-camera-mdns': this.proxyParams.target.mdnsName,
30
+ 'x-target-camera-port': String(this.proxyParams.target.port),
31
+ 'x-target-camera-pass': this.proxyParams.target.pass,
32
+ 'x-target-camera-user': this.proxyParams.target.user,
33
+ },
40
34
  };
41
- };
35
+ }
42
36
  }
@@ -1,20 +1,21 @@
1
- import { cswEventsSchema, } from './types/CamSwitcherEvents';
2
- export class CamSwitcherEvents {
3
- isDestroyed = false;
4
- ws = null;
1
+ export class WsEvents {
2
+ validate;
3
+ ws;
4
+ _isDestroyed = false;
5
5
  listeners = {};
6
- setWebsocket(ws) {
7
- if (this.ws) {
8
- this.ws.destroy();
9
- }
6
+ constructor(validate, ws) {
7
+ this.validate = validate;
10
8
  this.ws = ws;
11
- this.ws.onmessage = (e) => this.onMessage(e);
9
+ this.ws.onMessage = (e) => this.onMessage(e);
10
+ }
11
+ get isDestroyed() {
12
+ return this._isDestroyed;
12
13
  }
13
14
  resendInitData() {
14
15
  const request = {
15
16
  command: 'sendInitData',
16
17
  };
17
- this.ws?.send(JSON.stringify(request));
18
+ this.ws.send(JSON.stringify(request));
18
19
  }
19
20
  addListener(type, listener, id) {
20
21
  const typeList = this.listeners[type];
@@ -28,23 +29,31 @@ export class CamSwitcherEvents {
28
29
  const typeList = this.listeners[type];
29
30
  if (typeList) {
30
31
  delete typeList[id];
32
+ if (Object.keys(typeList).length === 0) {
33
+ delete this.listeners[type];
34
+ }
31
35
  }
32
36
  }
33
- onMessage(evt) {
37
+ removeAllListenersForId(id) {
38
+ for (const type in this.listeners) {
39
+ this.removeListener(type, id);
40
+ }
41
+ }
42
+ onMessage(incomeData) {
34
43
  if (this.isDestroyed) {
35
44
  return;
36
45
  }
37
46
  try {
38
- const eventData = JSON.parse(evt.data);
39
- const data = cswEventsSchema.parse(eventData);
40
- if (data.type === 'init') {
47
+ const eventData = JSON.parse(incomeData.toString());
48
+ const data = this.validate(eventData);
49
+ if (isInitEvent(data)) {
41
50
  this.processMessage(data.data, true);
42
51
  return;
43
52
  }
44
53
  this.processMessage(data, false);
45
54
  }
46
55
  catch (error) {
47
- console.error('Error parsing event data:', evt.data, error);
56
+ console.error('Error parsing event data:', incomeData.toString(), error);
48
57
  }
49
58
  }
50
59
  processMessage(event, isInit) {
@@ -53,11 +62,13 @@ export class CamSwitcherEvents {
53
62
  list.forEach((listener) => listener(event, isInit));
54
63
  }
55
64
  destroy() {
56
- this.isDestroyed = true;
57
- if (this.ws) {
58
- this.ws.destroy();
59
- this.ws = null;
60
- }
65
+ this._isDestroyed = true;
66
+ this.ws.onMessage = () => { };
67
+ this.ws.onOpen = () => Promise.reject(new Error('Websocket is destroyed'));
68
+ this.ws.destroy();
61
69
  this.listeners = {};
62
70
  }
63
71
  }
72
+ const isInitEvent = (event) => {
73
+ return event.type === 'init';
74
+ };
@@ -1 +1,2 @@
1
1
  export const FIRMWARE_WITH_BITRATE_MODES_SUPPORT = '11.11.73';
2
+ export const FIRMWARE_WITH_OVERLAYS_SUPPORT = '10.7.0';
@@ -0,0 +1,108 @@
1
+ import { FIRMWARE_WITH_BITRATE_MODES_SUPPORT, FIRMWARE_WITH_OVERLAYS_SUPPORT } from './constants';
2
+ import { isFirmwareVersionAtLeast } from './versionCompare';
3
+ export const parseBitrateOptionsToVapixParams = (firmWareVersion, bitrateMode, cameraOptions) => {
4
+ if (!isFirmwareVersionAtLeast(firmWareVersion, FIRMWARE_WITH_BITRATE_MODES_SUPPORT)) {
5
+ return `videomaxbitrate=${cameraOptions.maximumBitRate}`;
6
+ }
7
+ if (bitrateMode === undefined) {
8
+ return '';
9
+ }
10
+ const data = {
11
+ VBR: 'videobitratemode=vbr',
12
+ MBR: `videobitratemode=mbr&videomaxbitrate=${cameraOptions.maximumBitRate}&videobitratepriority=framerate`,
13
+ ABR: `videobitratemode=abr&videoabrtargetbitrate=${cameraOptions.maximumBitRate}&videoabrretentiontime=${cameraOptions.retentionTime}&videoabrmaxbitrate=${cameraOptions.bitRateLimit}`,
14
+ };
15
+ return data[bitrateMode];
16
+ };
17
+ export const parseVapixParamsToBitrateOptions = (bitrateVapixParams) => {
18
+ const params = {};
19
+ const searchParams = new URLSearchParams(bitrateVapixParams);
20
+ searchParams.forEach((value, key) => {
21
+ params[key] = value;
22
+ });
23
+ const bitrateMode = params['videobitratemode'] !== undefined ? params['videobitratemode'].toUpperCase() : undefined;
24
+ const hasLowerFw = bitrateMode === undefined && params['videomaxbitrate'] !== undefined;
25
+ if (hasLowerFw) {
26
+ const maximumBitRate = parseInt(params['videomaxbitrate'] ?? '0', 10);
27
+ return {
28
+ bitrateMode: 'MBR',
29
+ maximumBitRate: maximumBitRate,
30
+ retentionTime: 1,
31
+ bitRateLimit: Math.floor(maximumBitRate * 1.1),
32
+ };
33
+ }
34
+ if (bitrateMode === 'ABR') {
35
+ const maximumBitRate = parseInt(params['videoabrtargetbitrate'] ?? '0', 10);
36
+ const retentionTime = parseInt(params['videoabrretentiontime'] ?? '0', 10);
37
+ const bitRateLimit = parseInt(params['videoabrmaxbitrate'] ?? '0', 10);
38
+ return {
39
+ bitrateMode,
40
+ maximumBitRate,
41
+ retentionTime,
42
+ bitRateLimit,
43
+ };
44
+ }
45
+ else if (bitrateMode === 'MBR') {
46
+ const maximumBitRate = params['videomaxbitrate'] !== undefined ? parseInt(params['videomaxbitrate'], 10) : null;
47
+ const oldMaximumBitrateParamValue = parseInt(params['videombrmaxbitrate'] ?? '0', 10);
48
+ return {
49
+ bitrateMode: bitrateMode,
50
+ maximumBitRate: maximumBitRate ?? oldMaximumBitrateParamValue,
51
+ retentionTime: 1,
52
+ bitRateLimit: Math.floor(maximumBitRate ?? oldMaximumBitrateParamValue * 1.1),
53
+ };
54
+ }
55
+ return {
56
+ bitrateMode: bitrateMode,
57
+ retentionTime: 1,
58
+ maximumBitRate: 0,
59
+ bitRateLimit: 0,
60
+ };
61
+ };
62
+ export const parseVideoOptionsToVapixParams = (firmWareVersion, video) => {
63
+ const bitrateParams = parseBitrateOptionsToVapixParams(firmWareVersion, video.bitrateMode, {
64
+ maximumBitRate: video.maximumBitRate,
65
+ retentionTime: video.retentionTime,
66
+ bitRateLimit: video.bitRateLimit,
67
+ });
68
+ let overlaysParams = '';
69
+ if (isFirmwareVersionAtLeast(firmWareVersion, FIRMWARE_WITH_OVERLAYS_SUPPORT)) {
70
+ overlaysParams = `&overlays=${video.overlays}`;
71
+ }
72
+ const nbrOfChannels = video.audio === 1 ? `&nbrOfChannels=${video.nbrOfChannels}` : '';
73
+ const audioParams = `audio=${video.audio}${nbrOfChannels}`;
74
+ const videoCodecParams = video.videoCodec === 'h264'
75
+ ? `videoCodec=${video.videoCodec}&h264Profile=${video.h264Profile}`
76
+ : `videoCodec=${video.videoCodec}`;
77
+ const videoParams = `camera=${video.camera}&resolution=${video.resolution}&fps=${video.fps}&compression=${video.compression}&videokeyframeinterval=${video.govLength}&${videoCodecParams}${overlaysParams}`;
78
+ return [videoParams, bitrateParams, audioParams].join('&');
79
+ };
80
+ export const parseVapixParamsToVideoOptions = (internalVapixParams) => {
81
+ const bitrateOptions = parseVapixParamsToBitrateOptions(internalVapixParams);
82
+ const params = {};
83
+ const searchParams = new URLSearchParams(internalVapixParams);
84
+ searchParams.forEach((value, key) => {
85
+ params[key] = value;
86
+ });
87
+ let h264Profile = undefined;
88
+ if (params['videoCodec'] === 'h264') {
89
+ h264Profile = (params['h264Profile'] ?? 'high');
90
+ }
91
+ let nbrOfChannels = undefined;
92
+ if (params['audio'] === '1') {
93
+ nbrOfChannels = parseInt(params['nbrOfChannels'] ?? '1');
94
+ }
95
+ return {
96
+ ...bitrateOptions,
97
+ camera: params['camera'] ?? '1',
98
+ resolution: params['resolution'] ?? '',
99
+ fps: parseInt(params['fps'] ?? '0', 10),
100
+ compression: parseInt(params['compression'] ?? '0', 10),
101
+ govLength: parseInt(params['videokeyframeinterval'] ?? '0', 10),
102
+ videoCodec: (params['videoCodec'] ?? 'h264'),
103
+ h264Profile,
104
+ audio: parseInt(params['audio'] ?? '0'),
105
+ nbrOfChannels,
106
+ overlays: params['overlays'],
107
+ };
108
+ };
@@ -31,15 +31,6 @@ export const isClip = (id) => id?.charAt(0) === 's';
31
31
  export const isTracker = (id) => id?.charAt(0) === 't';
32
32
  export const isPlaylist = (id) => id?.charAt(0) === 'p';
33
33
  export const isLoopPlayType = (playType) => playType.includes('LOOP');
34
- export function isClient(arg = {}) {
35
- return 'get' in arg && 'post' in arg;
36
- }
37
- export async function responseStringify(res) {
38
- return JSON.stringify({
39
- status: res.status,
40
- body: await res.text(),
41
- });
42
- }
43
34
  export function pad(num, size) {
44
35
  const sign = Math.sign(num) === -1 ? '-' : '';
45
36
  return (sign +
@@ -1,5 +1,5 @@
1
- import * as EventEmitter from 'events';
2
- import { WsClient } from './node/WsClient';
1
+ import { EventEmitter } from 'events';
2
+ import { WsClient } from './WsClient';
3
3
  export class CamOverlayDrawingAPI extends EventEmitter {
4
4
  tls;
5
5
  tlsInsecure;
@@ -41,7 +41,7 @@ export class CamOverlayDrawingAPI extends EventEmitter {
41
41
  this.startMsgsTimeoutCheck();
42
42
  }
43
43
  disconnect() {
44
- this.ws.close();
44
+ this.ws.destroy();
45
45
  this.stopMsgsTimeoutCheck();
46
46
  }
47
47
  isConnected() {
@@ -98,23 +98,23 @@ export class CamOverlayDrawingAPI extends EventEmitter {
98
98
  tlsInsecure: this.tlsInsecure,
99
99
  };
100
100
  this.ws = new WsClient(options);
101
- this.ws.on('open', () => {
101
+ this.ws.onOpen = () => {
102
102
  console.log('CamOverlay connection opened');
103
103
  this.wsConnected = true;
104
104
  this.emit('open');
105
- });
106
- this.ws.on('message', (msgData) => this.incomingWsMessageHandler(msgData));
107
- this.ws.on('error', (error) => {
105
+ };
106
+ this.ws.onMessage = (data) => this.incomingWsMessageHandler(data.toString());
107
+ this.ws.onError = (error) => {
108
108
  this.reportError(error);
109
- });
110
- this.ws.on('close', () => {
109
+ };
110
+ this.ws.onClose = () => {
111
111
  console.log('CamOverlay connection closed');
112
112
  this.wsConnected = false;
113
113
  this.reportClose();
114
- });
114
+ };
115
115
  }
116
116
  incomingWsMessageHandler(msgData) {
117
- const dataJSON = JSON.parse(msgData.toString());
117
+ const dataJSON = JSON.parse(msgData);
118
118
  let errorResponse;
119
119
  if ('error' in dataJSON) {
120
120
  errorResponse = dataJSON;
@@ -165,13 +165,21 @@ export class CamOverlayDrawingAPI extends EventEmitter {
165
165
  throw new Error('No CamOverlay connection');
166
166
  }
167
167
  msgJson.call_id = ++this.callId;
168
- const jsonBuffer = Buffer.from(JSON.stringify(msgJson));
169
- const header = new ArrayBuffer(5);
170
- const headerView = new DataView(header);
171
- headerView.setInt8(0, 1);
172
- headerView.setInt32(1, jsonBuffer.byteLength);
173
- const msgBuffer = Buffer.concat([Buffer.from(header), jsonBuffer, data]);
174
- this.ws.send(msgBuffer);
168
+ const jsonString = JSON.stringify(msgJson);
169
+ const jsonByteLength = Buffer.byteLength(jsonString);
170
+ const headerLength = 5;
171
+ const totalLength = headerLength + jsonByteLength + data.byteLength;
172
+ const arrayBuffer = new ArrayBuffer(totalLength);
173
+ const view = new DataView(arrayBuffer);
174
+ view.setInt8(0, 1);
175
+ view.setInt32(1, jsonByteLength);
176
+ const jsonBuffer = new Uint8Array(arrayBuffer, 5, jsonByteLength);
177
+ for (let i = 0; i < jsonString.length; i++) {
178
+ jsonBuffer[i] = jsonString.charCodeAt(i);
179
+ }
180
+ const dataBuffer = new Uint8Array(arrayBuffer, 5 + jsonByteLength, data.byteLength);
181
+ data.copy(dataBuffer);
182
+ this.ws.send(arrayBuffer);
175
183
  this.sendMessages[this.callId] = { resolve, reject, sentTimestamp: Date.now() };
176
184
  }
177
185
  catch (err) {