camstreamerlib 4.0.0-beta.16 → 4.0.0-beta.161

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 (361) hide show
  1. package/README.md +143 -38
  2. package/cjs/CamOverlayAPI.d.ts +603 -327
  3. package/cjs/CamOverlayAPI.js +99 -184
  4. package/cjs/CamScripterAPI.d.ts +41 -17
  5. package/cjs/CamScripterAPI.js +54 -56
  6. package/cjs/CamStreamerAPI.d.ts +3557 -14
  7. package/cjs/CamStreamerAPI.js +174 -52
  8. package/cjs/CamSwitcherAPI.d.ts +158 -42
  9. package/cjs/CamSwitcherAPI.js +148 -189
  10. package/cjs/PlaneTrackerAPI.d.ts +238 -29
  11. package/cjs/PlaneTrackerAPI.js +187 -101
  12. package/cjs/VapixAPI.d.ts +97 -44
  13. package/cjs/VapixAPI.js +400 -207
  14. package/cjs/{CreatePackage.js → bin/CreatePackage.js} +44 -18
  15. package/cjs/errors/errors.d.ts +75 -4
  16. package/cjs/errors/errors.js +142 -7
  17. package/cjs/index.d.ts +20 -9
  18. package/cjs/index.js +28 -14
  19. package/cjs/internal/BasicAPI.d.ts +15 -0
  20. package/cjs/internal/BasicAPI.js +93 -0
  21. package/cjs/internal/ProxyClient.d.ts +8 -9
  22. package/cjs/internal/ProxyClient.js +28 -34
  23. package/cjs/internal/WsEvents.d.ts +38 -0
  24. package/cjs/{CamSwitcherEvents.js → internal/WsEvents.js} +33 -22
  25. package/cjs/internal/constants.d.ts +1 -0
  26. package/cjs/internal/constants.js +2 -1
  27. package/cjs/internal/convertors.d.ts +6 -0
  28. package/cjs/internal/convertors.js +115 -0
  29. package/cjs/internal/transformers.js +8 -8
  30. package/cjs/internal/types.d.ts +32 -20
  31. package/cjs/internal/utils.d.ts +1 -3
  32. package/cjs/internal/utils.js +1 -12
  33. package/cjs/internal/versionCompare.d.ts +2 -2
  34. package/cjs/node/CamOverlayDrawingAPI.d.ts +41 -0
  35. package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +28 -20
  36. package/{esm → cjs/node}/CamOverlayPainter/Frame.d.ts +8 -37
  37. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  38. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.d.ts +5 -21
  39. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +5 -17
  40. package/cjs/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  41. package/cjs/node/CamOverlayPainter/ResourceManager.js +72 -0
  42. package/cjs/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  43. package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +13 -13
  44. package/cjs/node/DefaultClient.d.ts +6 -6
  45. package/cjs/node/DefaultClient.js +12 -16
  46. package/cjs/{internal → node}/Digest.js +24 -1
  47. package/cjs/node/Digest.test.js +13 -0
  48. package/cjs/node/HttpRequestSender.d.ts +1 -0
  49. package/cjs/node/HttpRequestSender.js +14 -4
  50. package/cjs/node/HttpServer.d.ts +1 -1
  51. package/cjs/node/HttpServer.js +29 -6
  52. package/cjs/node/TimeZoneDaemon.d.ts +6 -0
  53. package/cjs/node/TimeZoneDaemon.js +29 -0
  54. package/cjs/node/VapixEvents.d.ts +16 -0
  55. package/cjs/{VapixEvents.js → node/VapixEvents.js} +10 -10
  56. package/cjs/node/WsClient.d.ts +9 -18
  57. package/cjs/node/WsClient.js +27 -20
  58. package/cjs/node/events/AxisCameraStationEvents.d.ts +12 -0
  59. package/cjs/{events → node/events}/AxisCameraStationEvents.js +18 -13
  60. package/cjs/node/events/GenetecAgent.d.ts +16 -0
  61. package/cjs/node/events/GenetecAgent.js +124 -0
  62. package/cjs/node/index.d.ts +18 -2
  63. package/cjs/node/index.js +39 -5
  64. package/cjs/{models/CamOverlayAPI/widgetsSchema.d.ts → types/CamOverlayAPI/CamOverlayAPI.d.ts} +2794 -767
  65. package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +135 -0
  66. package/cjs/{models → types}/CamOverlayAPI/accuweatherSchema.d.ts +19 -19
  67. package/cjs/{models → types}/CamOverlayAPI/accuweatherSchema.js +7 -8
  68. package/cjs/{models → types}/CamOverlayAPI/customGraphicsSchema.d.ts +108 -107
  69. package/cjs/{models → types}/CamOverlayAPI/customGraphicsSchema.js +5 -6
  70. package/cjs/types/CamOverlayAPI/htmlOverlaySchema.d.ts +81 -0
  71. package/cjs/types/CamOverlayAPI/htmlOverlaySchema.js +21 -0
  72. package/{esm/models → cjs/types}/CamOverlayAPI/imagesSchema.d.ts +19 -19
  73. package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
  74. package/cjs/{models → types}/CamOverlayAPI/index.d.ts +3 -4
  75. package/cjs/{models → types}/CamOverlayAPI/index.js +3 -4
  76. package/cjs/{models → types}/CamOverlayAPI/infotickerSchema.d.ts +27 -27
  77. package/cjs/{models → types}/CamOverlayAPI/infotickerSchema.js +6 -7
  78. package/{esm/models → cjs/types}/CamOverlayAPI/pipSchema.d.ts +21 -21
  79. package/cjs/{models → types}/CamOverlayAPI/pipSchema.js +5 -6
  80. package/{esm/models → cjs/types}/CamOverlayAPI/ptzCompassSchema.d.ts +18 -15
  81. package/cjs/{models → types}/CamOverlayAPI/ptzCompassSchema.js +5 -5
  82. package/cjs/{models → types}/CamOverlayAPI/ptzSchema.d.ts +28 -28
  83. package/cjs/types/CamOverlayAPI/ptzSchema.js +12 -0
  84. package/cjs/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  85. package/cjs/types/CamOverlayAPI/scoreBoardSchema.js +132 -0
  86. package/{esm/models → cjs/types}/CamOverlayAPI/screenSharingSchema.d.ts +15 -15
  87. package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
  88. package/{esm/models/CamOverlayAPI/widgetCommonSchema.d.ts → cjs/types/CamOverlayAPI/serviceCommonTypes.d.ts} +80 -60
  89. package/cjs/{models/CamOverlayAPI/widgetCommonSchema.js → types/CamOverlayAPI/serviceCommonTypes.js} +39 -21
  90. package/{esm/models → cjs/types}/CamOverlayAPI/webCameraSharingSchema.d.ts +15 -15
  91. package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +8 -0
  92. package/cjs/types/CamOverlayDrawingAPI.d.ts +48 -0
  93. package/cjs/types/CamOverlayDrawingAPI.js +2 -0
  94. package/cjs/types/CamOverlayPainter.d.ts +76 -0
  95. package/cjs/types/CamOverlayPainter.js +14 -0
  96. package/cjs/types/CamScripterAPI.d.ts +75 -23
  97. package/cjs/types/CamScripterAPI.js +20 -8
  98. package/cjs/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  99. package/cjs/types/CamScripterAPICameraEventsGenerator.js +2 -0
  100. package/cjs/types/CamStreamerAPI/CamStreamerAPI.d.ts +26085 -0
  101. package/cjs/types/CamStreamerAPI/CamStreamerAPI.js +222 -0
  102. package/cjs/types/CamStreamerAPI/facebookSchema.d.ts +574 -0
  103. package/cjs/types/CamStreamerAPI/facebookSchema.js +23 -0
  104. package/cjs/types/CamStreamerAPI/index.d.ts +6 -0
  105. package/cjs/types/CamStreamerAPI/index.js +22 -0
  106. package/cjs/types/{CamStreamerAPI.d.ts → CamStreamerAPI/oldStreamSchema.d.ts} +104 -35
  107. package/cjs/types/CamStreamerAPI/oldStreamSchema.js +53 -0
  108. package/cjs/types/CamStreamerAPI/streamCommonTypes.d.ts +570 -0
  109. package/cjs/types/CamStreamerAPI/streamCommonTypes.js +123 -0
  110. package/cjs/types/CamStreamerAPI/streamsSchema.d.ts +8642 -0
  111. package/cjs/types/CamStreamerAPI/streamsSchema.js +81 -0
  112. package/cjs/types/CamStreamerAPI/windySchema.d.ts +534 -0
  113. package/cjs/types/CamStreamerAPI/windySchema.js +19 -0
  114. package/cjs/types/CamStreamerAPI/youtubeSchema.d.ts +542 -0
  115. package/cjs/types/CamStreamerAPI/youtubeSchema.js +22 -0
  116. package/cjs/types/CamSwitcherAPI.d.ts +205 -121
  117. package/cjs/types/CamSwitcherAPI.js +38 -1
  118. package/cjs/{events → types}/GenetecAgent.d.ts +47 -47
  119. package/cjs/types/GenetecAgent.js +31 -0
  120. package/cjs/types/PlaneTrackerAPI.d.ts +993 -0
  121. package/cjs/types/PlaneTrackerAPI.js +336 -0
  122. package/cjs/types/VapixAPI.d.ts +281 -22
  123. package/cjs/types/VapixAPI.js +74 -4
  124. package/cjs/types/VapixEvents.d.ts +15 -0
  125. package/cjs/types/VapixEvents.js +2 -0
  126. package/cjs/types/common.d.ts +43 -3
  127. package/cjs/types/common.js +17 -2
  128. package/cjs/types/ws/CamOverlayEvents.d.ts +88 -0
  129. package/cjs/types/ws/CamOverlayEvents.js +19 -0
  130. package/cjs/types/ws/CamStreamerEvents.d.ts +282 -0
  131. package/cjs/types/ws/CamStreamerEvents.js +36 -0
  132. package/cjs/types/ws/PlaneTrackerEvents.d.ts +1703 -0
  133. package/cjs/types/ws/PlaneTrackerEvents.js +207 -0
  134. package/cjs/web/DefaultClient.d.ts +7 -5
  135. package/cjs/web/DefaultClient.js +25 -11
  136. package/cjs/web/WsClient.d.ts +9 -5
  137. package/cjs/web/WsClient.js +16 -18
  138. package/cjs/ws/CamOverlayEvents.d.ts +8 -0
  139. package/cjs/ws/CamOverlayEvents.js +24 -0
  140. package/cjs/ws/CamStreamerEvents.d.ts +8 -0
  141. package/cjs/ws/CamStreamerEvents.js +24 -0
  142. package/cjs/ws/CamSwitcherEvents.d.ts +8 -0
  143. package/cjs/ws/CamSwitcherEvents.js +24 -0
  144. package/cjs/ws/PlaneTrackerEvents.d.ts +9 -0
  145. package/cjs/ws/PlaneTrackerEvents.js +30 -0
  146. package/esm/CamOverlayAPI.js +99 -184
  147. package/esm/CamScripterAPI.js +52 -57
  148. package/esm/CamStreamerAPI.js +172 -51
  149. package/esm/CamSwitcherAPI.js +151 -192
  150. package/esm/PlaneTrackerAPI.js +186 -100
  151. package/esm/VapixAPI.js +402 -209
  152. package/esm/{CreatePackage.js → bin/CreatePackage.js} +16 -16
  153. package/esm/errors/errors.js +124 -6
  154. package/esm/index.js +20 -9
  155. package/esm/internal/BasicAPI.js +89 -0
  156. package/esm/internal/ProxyClient.js +28 -34
  157. package/esm/{CamSwitcherEvents.js → internal/WsEvents.js} +31 -20
  158. package/esm/internal/constants.js +1 -0
  159. package/esm/internal/convertors.js +108 -0
  160. package/esm/internal/transformers.js +1 -1
  161. package/esm/internal/utils.js +0 -9
  162. package/esm/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +26 -18
  163. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  164. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +2 -13
  165. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/ResourceManager.js +7 -5
  166. package/esm/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +11 -11
  167. package/esm/node/DefaultClient.js +12 -16
  168. package/esm/node/Digest.test.js +11 -0
  169. package/esm/node/HttpRequestSender.js +14 -4
  170. package/esm/node/HttpServer.js +1 -1
  171. package/esm/node/TimeZoneDaemon.js +25 -0
  172. package/esm/{VapixEvents.js → node/VapixEvents.js} +10 -10
  173. package/esm/node/WsClient.js +22 -15
  174. package/esm/{events → node/events}/AxisCameraStationEvents.js +18 -13
  175. package/esm/node/events/GenetecAgent.js +120 -0
  176. package/esm/node/index.js +18 -2
  177. package/esm/types/CamOverlayAPI/CamOverlayAPI.js +113 -0
  178. package/esm/{models → types}/CamOverlayAPI/accuweatherSchema.js +3 -4
  179. package/esm/{models → types}/CamOverlayAPI/customGraphicsSchema.js +3 -4
  180. package/esm/types/CamOverlayAPI/htmlOverlaySchema.js +18 -0
  181. package/esm/types/CamOverlayAPI/imagesSchema.js +6 -0
  182. package/esm/{models → types}/CamOverlayAPI/index.js +3 -4
  183. package/esm/{models → types}/CamOverlayAPI/infotickerSchema.js +3 -4
  184. package/esm/{models → types}/CamOverlayAPI/pipSchema.js +4 -5
  185. package/esm/{models → types}/CamOverlayAPI/ptzCompassSchema.js +4 -4
  186. package/esm/types/CamOverlayAPI/ptzSchema.js +9 -0
  187. package/esm/types/CamOverlayAPI/scoreBoardSchema.js +129 -0
  188. package/esm/types/CamOverlayAPI/screenSharingSchema.js +5 -0
  189. package/esm/{models/CamOverlayAPI/widgetCommonSchema.js → types/CamOverlayAPI/serviceCommonTypes.js} +38 -20
  190. package/esm/types/CamOverlayAPI/webCameraSharingSchema.js +5 -0
  191. package/esm/types/CamOverlayDrawingAPI.js +1 -0
  192. package/esm/types/CamOverlayPainter.js +11 -0
  193. package/esm/types/CamScripterAPI.js +19 -7
  194. package/esm/types/CamScripterAPICameraEventsGenerator.js +1 -0
  195. package/esm/types/CamStreamerAPI/CamStreamerAPI.js +199 -0
  196. package/esm/types/CamStreamerAPI/facebookSchema.js +17 -0
  197. package/esm/types/CamStreamerAPI/index.js +6 -0
  198. package/esm/types/CamStreamerAPI/oldStreamSchema.js +50 -0
  199. package/esm/types/CamStreamerAPI/streamCommonTypes.js +120 -0
  200. package/esm/types/CamStreamerAPI/streamsSchema.js +75 -0
  201. package/esm/types/CamStreamerAPI/windySchema.js +13 -0
  202. package/esm/types/CamStreamerAPI/youtubeSchema.js +16 -0
  203. package/esm/types/CamSwitcherAPI.js +38 -1
  204. package/esm/types/GenetecAgent.js +28 -0
  205. package/esm/types/PlaneTrackerAPI.js +333 -0
  206. package/esm/types/VapixAPI.js +73 -3
  207. package/esm/types/VapixEvents.js +1 -0
  208. package/esm/types/common.js +16 -1
  209. package/esm/types/ws/CamOverlayEvents.js +16 -0
  210. package/esm/types/ws/CamStreamerEvents.js +33 -0
  211. package/esm/types/ws/PlaneTrackerEvents.js +204 -0
  212. package/esm/web/DefaultClient.js +25 -11
  213. package/esm/web/WsClient.js +16 -18
  214. package/esm/ws/CamOverlayEvents.js +20 -0
  215. package/esm/ws/CamStreamerEvents.js +20 -0
  216. package/esm/ws/CamSwitcherEvents.js +20 -0
  217. package/esm/ws/PlaneTrackerEvents.js +26 -0
  218. package/package.json +46 -12
  219. package/{esm → types}/CamOverlayAPI.d.ts +603 -327
  220. package/types/CamScripterAPI.d.ts +43 -0
  221. package/types/CamStreamerAPI.d.ts +3559 -0
  222. package/types/CamSwitcherAPI.d.ts +168 -0
  223. package/types/PlaneTrackerAPI.d.ts +239 -0
  224. package/types/VapixAPI.d.ts +131 -0
  225. package/types/bin/CreatePackage.d.ts +1 -0
  226. package/types/errors/errors.d.ts +108 -0
  227. package/types/index.d.ts +28 -0
  228. package/types/internal/BasicAPI.d.ts +15 -0
  229. package/types/internal/ProxyClient.d.ts +10 -0
  230. package/types/internal/WsEvents.d.ts +38 -0
  231. package/{esm → types}/internal/constants.d.ts +1 -0
  232. package/types/internal/convertors.d.ts +6 -0
  233. package/types/internal/types.d.ts +47 -0
  234. package/{esm → types}/internal/utils.d.ts +1 -3
  235. package/{esm → types}/internal/versionCompare.d.ts +2 -2
  236. package/types/node/CamOverlayDrawingAPI.d.ts +41 -0
  237. package/{cjs → types/node}/CamOverlayPainter/Frame.d.ts +8 -37
  238. package/{esm → types/node}/CamOverlayPainter/Painter.d.ts +5 -21
  239. package/types/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  240. package/types/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  241. package/types/node/DefaultClient.d.ts +16 -0
  242. package/types/node/Digest.test.d.ts +1 -0
  243. package/{esm → types}/node/HttpRequestSender.d.ts +1 -0
  244. package/{esm → types}/node/HttpServer.d.ts +1 -1
  245. package/types/node/TimeZoneDaemon.d.ts +6 -0
  246. package/types/node/VapixEvents.d.ts +16 -0
  247. package/types/node/WsClient.d.ts +30 -0
  248. package/types/node/events/AxisCameraStationEvents.d.ts +12 -0
  249. package/types/node/events/GenetecAgent.d.ts +16 -0
  250. package/types/node/index.d.ts +18 -0
  251. package/{esm/models/CamOverlayAPI/widgetsSchema.d.ts → types/types/CamOverlayAPI/CamOverlayAPI.d.ts} +2794 -767
  252. package/{esm/models → types/types}/CamOverlayAPI/accuweatherSchema.d.ts +19 -19
  253. package/{esm/models → types/types}/CamOverlayAPI/customGraphicsSchema.d.ts +108 -107
  254. package/types/types/CamOverlayAPI/htmlOverlaySchema.d.ts +81 -0
  255. package/{cjs/models → types/types}/CamOverlayAPI/imagesSchema.d.ts +19 -19
  256. package/{esm/models → types/types}/CamOverlayAPI/index.d.ts +3 -4
  257. package/{esm/models → types/types}/CamOverlayAPI/infotickerSchema.d.ts +27 -27
  258. package/{cjs/models → types/types}/CamOverlayAPI/pipSchema.d.ts +21 -21
  259. package/{cjs/models → types/types}/CamOverlayAPI/ptzCompassSchema.d.ts +18 -15
  260. package/{esm/models → types/types}/CamOverlayAPI/ptzSchema.d.ts +28 -28
  261. package/types/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  262. package/{cjs/models → types/types}/CamOverlayAPI/screenSharingSchema.d.ts +15 -15
  263. package/{cjs/models/CamOverlayAPI/widgetCommonSchema.d.ts → types/types/CamOverlayAPI/serviceCommonTypes.d.ts} +80 -60
  264. package/{cjs/models → types/types}/CamOverlayAPI/webCameraSharingSchema.d.ts +15 -15
  265. package/types/types/CamOverlayDrawingAPI.d.ts +48 -0
  266. package/types/types/CamOverlayPainter.d.ts +76 -0
  267. package/types/types/CamScripterAPI.d.ts +119 -0
  268. package/types/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  269. package/types/types/CamStreamerAPI/CamStreamerAPI.d.ts +26085 -0
  270. package/types/types/CamStreamerAPI/facebookSchema.d.ts +574 -0
  271. package/types/types/CamStreamerAPI/index.d.ts +6 -0
  272. package/{esm/types/CamStreamerAPI.d.ts → types/types/CamStreamerAPI/oldStreamSchema.d.ts} +104 -35
  273. package/types/types/CamStreamerAPI/streamCommonTypes.d.ts +570 -0
  274. package/types/types/CamStreamerAPI/streamsSchema.d.ts +8642 -0
  275. package/types/types/CamStreamerAPI/windySchema.d.ts +534 -0
  276. package/types/types/CamStreamerAPI/youtubeSchema.d.ts +542 -0
  277. package/{esm → types}/types/CamSwitcherAPI.d.ts +205 -121
  278. package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
  279. package/types/types/PlaneTrackerAPI.d.ts +993 -0
  280. package/{esm → types}/types/VapixAPI.d.ts +281 -22
  281. package/types/types/VapixEvents.d.ts +15 -0
  282. package/types/types/common.d.ts +77 -0
  283. package/types/types/ws/CamOverlayEvents.d.ts +88 -0
  284. package/types/types/ws/CamStreamerEvents.d.ts +282 -0
  285. package/types/types/ws/PlaneTrackerEvents.d.ts +1703 -0
  286. package/types/web/DefaultClient.d.ts +8 -0
  287. package/types/web/WsClient.d.ts +17 -0
  288. package/types/ws/CamOverlayEvents.d.ts +8 -0
  289. package/types/ws/CamStreamerEvents.d.ts +8 -0
  290. package/types/ws/CamSwitcherEvents.d.ts +8 -0
  291. package/types/ws/PlaneTrackerEvents.d.ts +9 -0
  292. package/cjs/CamOverlayDrawingAPI.d.ts +0 -86
  293. package/cjs/CamOverlayPainter/ResourceManager.d.ts +0 -14
  294. package/cjs/CamOverlayPainter/ResourceManager.js +0 -46
  295. package/cjs/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  296. package/cjs/CamSwitcherEvents.d.ts +0 -18
  297. package/cjs/VapixEvents.d.ts +0 -43
  298. package/cjs/events/AxisCameraStationEvents.d.ts +0 -10
  299. package/cjs/events/GenetecAgent.js +0 -123
  300. package/cjs/models/CamOverlayAPI/constants.d.ts +0 -11
  301. package/cjs/models/CamOverlayAPI/constants.js +0 -14
  302. package/cjs/models/CamOverlayAPI/fileSchema.d.ts +0 -28
  303. package/cjs/models/CamOverlayAPI/fileSchema.js +0 -17
  304. package/cjs/models/CamOverlayAPI/imagesSchema.js +0 -10
  305. package/cjs/models/CamOverlayAPI/ptzSchema.js +0 -13
  306. package/cjs/models/CamOverlayAPI/screenSharingSchema.js +0 -9
  307. package/cjs/models/CamOverlayAPI/webCameraSharingSchema.js +0 -9
  308. package/cjs/models/CamOverlayAPI/widgetsSchema.js +0 -27
  309. package/cjs/node/WsEventClient.d.ts +0 -13
  310. package/cjs/node/WsEventClient.js +0 -22
  311. package/cjs/types/CamOverlayAPI.d.ts +0 -328
  312. package/cjs/types/CamOverlayAPI.js +0 -26
  313. package/cjs/types/CamStreamerAPI.js +0 -28
  314. package/esm/CamOverlayDrawingAPI.d.ts +0 -86
  315. package/esm/CamOverlayPainter/ResourceManager.d.ts +0 -14
  316. package/esm/CamScripterAPI.d.ts +0 -19
  317. package/esm/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  318. package/esm/CamStreamerAPI.d.ts +0 -16
  319. package/esm/CamSwitcherAPI.d.ts +0 -52
  320. package/esm/CamSwitcherEvents.d.ts +0 -18
  321. package/esm/PlaneTrackerAPI.d.ts +0 -30
  322. package/esm/VapixAPI.d.ts +0 -78
  323. package/esm/VapixEvents.d.ts +0 -43
  324. package/esm/errors/errors.d.ts +0 -37
  325. package/esm/events/AxisCameraStationEvents.d.ts +0 -10
  326. package/esm/events/GenetecAgent.js +0 -119
  327. package/esm/index.d.ts +0 -17
  328. package/esm/internal/ProxyClient.d.ts +0 -11
  329. package/esm/internal/types.d.ts +0 -35
  330. package/esm/models/CamOverlayAPI/constants.d.ts +0 -11
  331. package/esm/models/CamOverlayAPI/constants.js +0 -11
  332. package/esm/models/CamOverlayAPI/fileSchema.d.ts +0 -28
  333. package/esm/models/CamOverlayAPI/fileSchema.js +0 -14
  334. package/esm/models/CamOverlayAPI/imagesSchema.js +0 -7
  335. package/esm/models/CamOverlayAPI/ptzSchema.js +0 -10
  336. package/esm/models/CamOverlayAPI/screenSharingSchema.js +0 -6
  337. package/esm/models/CamOverlayAPI/webCameraSharingSchema.js +0 -6
  338. package/esm/models/CamOverlayAPI/widgetsSchema.js +0 -24
  339. package/esm/node/DefaultClient.d.ts +0 -16
  340. package/esm/node/WsClient.d.ts +0 -39
  341. package/esm/node/WsEventClient.d.ts +0 -13
  342. package/esm/node/WsEventClient.js +0 -18
  343. package/esm/types/CamOverlayAPI.d.ts +0 -328
  344. package/esm/types/CamOverlayAPI.js +0 -14
  345. package/esm/types/CamScripterAPI.d.ts +0 -67
  346. package/esm/types/CamStreamerAPI.js +0 -25
  347. package/esm/types/common.d.ts +0 -37
  348. package/esm/web/DefaultClient.d.ts +0 -6
  349. package/esm/web/WsClient.d.ts +0 -13
  350. package/esm/web/index.d.ts +0 -2
  351. package/cjs/{CreatePackage.d.ts → bin/CreatePackage.d.ts} +0 -0
  352. package/cjs/{internal → node}/Digest.d.ts +0 -0
  353. package/{esm/CreatePackage.d.ts → cjs/node/Digest.test.d.ts} +0 -0
  354. package/{esm/types → cjs/types/ws}/CamSwitcherEvents.d.ts +8 -8
  355. package/cjs/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  356. package/esm/{internal → node}/Digest.js +0 -0
  357. package/esm/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  358. package/{esm → types}/internal/transformers.d.ts +0 -0
  359. package/{esm/internal → types/node}/Digest.d.ts +0 -0
  360. package/{cjs/types → types/types/ws}/CamSwitcherEvents.d.ts +8 -8
  361. /package/{esm/node → types/web}/index.d.ts +0 -0
@@ -1,125 +1,146 @@
1
1
  import { z } from 'zod';
2
- import { AddNewClipError } from './errors/errors';
3
- import { isClip, isNullish, responseStringify } from './internal/utils';
4
- import { storageInfoListSchema, outputInfoSchema, audioPushInfoSchema, clipListSchema, playlistQueueSchema, streamSaveLoadSchema, clipSaveLoadSchema, playlistSaveLoadSchema, trackerSaveLoadSchema, } from './types/CamSwitcherAPI';
5
- import { networkCameraListSchema } from './types/common';
2
+ import { AddNewClipError, JsonParseError, ParameterNotFoundError } from './errors/errors';
3
+ import { parseBitrateOptionsToVapixParams, parseVapixParamsToBitrateOptions } from './internal/convertors';
4
+ import { isClip, isNullish } from './internal/utils';
5
+ import { storageInfoListSchema, outputInfoSchema, audioPushInfoSchema, clipListSchema, playlistQueueSchema, streamSaveLoadSchema, clipSaveLoadSchema, playlistSaveLoadSchema, trackerSaveLoadSchema, secondaryAudioSettingsSchema, globalAudioSettingsSchema, clipFilesListSchema, } from './types/CamSwitcherAPI';
6
+ import { networkCameraListSchema, } from './types/common';
6
7
  import { VapixAPI } from './VapixAPI';
7
- import { isFirmwareVersionAtLeast } from './internal/versionCompare';
8
- import { FIRMWARE_WITH_BITRATE_MODES_SUPPORT } from './internal/constants';
9
- const baseUrl = '/local/camswitcher/api';
10
- export class CamSwitcherAPI {
11
- client;
8
+ import { BasicAPI } from './internal/BasicAPI';
9
+ const BASE_PATH = '/local/camswitcher/api';
10
+ export class CamSwitcherAPI extends BasicAPI {
12
11
  CustomFormData;
13
12
  vapixAgent;
14
13
  constructor(client, CustomFormData = FormData) {
15
- this.client = client;
14
+ super(client);
16
15
  this.CustomFormData = CustomFormData;
17
- this.vapixAgent = new VapixAPI(client, () => '');
18
- }
19
- static getProxyUrlPath = () => `${baseUrl}/proxy.cgi`;
20
- static getWsEventsUrlPath = () => `/local/camswitcher/events`;
21
- static getClipPreviewUrlPath = (id, storage) => `${baseUrl}/clip_preview.cgi?clip_name=${id}&storage=${storage}`;
22
- async generateSilence(sampleRate, channels) {
23
- await this.client.get(`${baseUrl}/generate_silence.cgi`, {
24
- sample_rate: sampleRate.toString(),
25
- channels,
16
+ this.vapixAgent = new VapixAPI(client);
17
+ }
18
+ static getProxyPath = () => `${BASE_PATH}/proxy.cgi`;
19
+ static getWsEventsPath = () => `/local/camswitcher/events`;
20
+ static getClipPreviewPath = (clipId, storage) => `${BASE_PATH}/clip_preview.cgi?clip_name=${clipId}&storage=${storage}`;
21
+ async checkAPIAvailable(options) {
22
+ await this._getJson(`${BASE_PATH}/api_check.cgi`, undefined, options);
23
+ }
24
+ async checkCameraTime(options) {
25
+ const res = await this._getJson(`${BASE_PATH}/camera_time.cgi`, undefined, options);
26
+ return z.boolean().parse(res.data);
27
+ }
28
+ async getNetworkCameraList(options) {
29
+ const res = await this._getJson(`${BASE_PATH}/network_camera_list.cgi`, undefined, options);
30
+ return networkCameraListSchema.parse(res.data);
31
+ }
32
+ async generateSilence(sampleRate, channels, options) {
33
+ const agent = this.getClient(options?.proxyParams);
34
+ await agent.get({
35
+ path: `${BASE_PATH}/generate_silence.cgi`,
36
+ parameters: {
37
+ sample_rate: sampleRate.toString(),
38
+ channels,
39
+ },
40
+ timeout: options?.timeout,
26
41
  });
27
42
  }
28
- async checkCameraTime() {
29
- const data = await this.get(`${baseUrl}/camera_time.cgi`);
30
- return z.boolean().parse(data);
31
- }
32
- async getIpListFromNetworkCheck() {
33
- const data = await this.get(`${baseUrl}/network_camera_list.cgi`);
34
- return networkCameraListSchema.parse(data);
35
- }
36
- async getMaxFps(source) {
37
- const data = await this.get(`${baseUrl}/get_max_framerate.cgi`, {
38
- video_source: source.toString(),
39
- });
40
- return z.number().parse(data);
43
+ async getMaxFps(source, options) {
44
+ const res = await this._getJson(`${BASE_PATH}/get_max_framerate.cgi`, {
45
+ video_source: source,
46
+ }, options);
47
+ return z.number().parse(res.data);
41
48
  }
42
- async getStorageInfo() {
43
- const data = await this.get(`${baseUrl}/get_storage.cgi`);
44
- return storageInfoListSchema.parse(data);
49
+ async getStorageInfo(options) {
50
+ const res = await this._getJson(`${BASE_PATH}/get_storage.cgi`, undefined, options);
51
+ return storageInfoListSchema.parse(res.data);
45
52
  }
46
- async wsAuthorization() {
47
- const data = await this.get(`${baseUrl}/ws_authorization.cgi`);
48
- return z.string().parse(data);
53
+ async wsAuthorization(options) {
54
+ const res = await this._getJson(`${BASE_PATH}/ws_authorization.cgi`, undefined, options);
55
+ return z.string().parse(res.data);
49
56
  }
50
- async getOutputInfo() {
51
- const data = await this.get(`${baseUrl}/output_info.cgi`);
52
- return outputInfoSchema.parse(data);
57
+ async getOutputInfo(options) {
58
+ const res = await this._getJson(`${BASE_PATH}/output_info.cgi`, undefined, options);
59
+ return outputInfoSchema.parse(res.data);
53
60
  }
54
- async getAudioPushInfo() {
55
- const data = await this.get(`${baseUrl}/audio_push_info.cgi`);
56
- return audioPushInfoSchema.parse(data);
61
+ async getAudioPushInfo(options) {
62
+ const res = await this._getJson(`${BASE_PATH}/audio_push_info.cgi`, undefined, options);
63
+ return audioPushInfoSchema.parse(res.data);
57
64
  }
58
- async getStreamSaveList() {
59
- const data = await this.get(`${baseUrl}/streams.cgi`, { action: 'get' });
60
- return streamSaveLoadSchema.parse(data);
65
+ async getStreamSaveList(options) {
66
+ const res = await this._getJson(`${BASE_PATH}/streams.cgi`, { action: 'get' }, options);
67
+ return streamSaveLoadSchema.parse(res.data);
61
68
  }
62
- async getClipSaveList() {
63
- const data = await this.get(`${baseUrl}/clips.cgi`, { action: 'get' });
64
- return clipSaveLoadSchema.parse(data);
69
+ async getClipSaveList(options) {
70
+ const res = await this._getJson(`${BASE_PATH}/clips.cgi`, { action: 'get' }, options);
71
+ return clipSaveLoadSchema.parse(res.data);
65
72
  }
66
- async getPlaylistSaveList() {
67
- const data = await this.get(`${baseUrl}/playlists.cgi`, { action: 'get' });
68
- return playlistSaveLoadSchema.parse(data);
73
+ async getPlaylistSaveList(options) {
74
+ const res = await this._getJson(`${BASE_PATH}/playlists.cgi`, { action: 'get' }, options);
75
+ return playlistSaveLoadSchema.parse(res.data);
69
76
  }
70
- async getTrackerSaveList() {
71
- const data = await this.get(`${baseUrl}/trackers.cgi`, { action: 'get' });
72
- return trackerSaveLoadSchema.parse(data);
77
+ async getTrackerSaveList(options) {
78
+ const res = await this._getJson(`${BASE_PATH}/trackers.cgi`, { action: 'get' }, options);
79
+ return trackerSaveLoadSchema.parse(res.data);
73
80
  }
74
- async setStreamSaveList(data) {
75
- return await this.set(`${baseUrl}/streams.cgi`, data, { action: 'set' });
81
+ async setStreamSaveList(data, options) {
82
+ await this._post(`${BASE_PATH}/streams.cgi`, JSON.stringify(data), { action: 'set' }, options);
76
83
  }
77
- async setClipSaveList(data) {
78
- return await this.set(`${baseUrl}/clips.cgi`, data, { action: 'set' });
84
+ async setClipSaveList(data, options) {
85
+ await this._post(`${BASE_PATH}/clips.cgi`, JSON.stringify(data), { action: 'set' }, options);
79
86
  }
80
- async setPlaylistSaveList(data) {
81
- return await this.set(`${baseUrl}/playlists.cgi`, data, { action: 'set' });
87
+ async setPlaylistSaveList(data, options) {
88
+ await this._post(`${BASE_PATH}/playlists.cgi`, JSON.stringify(data), { action: 'set' }, options);
82
89
  }
83
- async setTrackerSaveList(data) {
84
- return await this.set(`${baseUrl}/trackers.cgi`, data, { action: 'set' });
90
+ async setTrackerSaveList(data, options) {
91
+ await this._post(`${BASE_PATH}/trackers.cgi`, JSON.stringify(data), { action: 'set' }, options);
85
92
  }
86
- async playlistSwitch(playlistName) {
87
- await this.get(`${baseUrl}/playlist_switch.cgi?playlist_name=${playlistName}`);
93
+ async playlistSwitch(playlistName, options) {
94
+ await this._getJson(`${BASE_PATH}/playlist_switch.cgi`, { playlist_name: playlistName }, options);
88
95
  }
89
- async playlistQueuePush(playlistName) {
90
- await this.get(`${baseUrl}/playlist_queue_push.cgi?playlist_name=${playlistName}`);
96
+ async playlistQueuePush(playlistName, options) {
97
+ await this._getJson(`${BASE_PATH}/playlist_queue_push.cgi`, { playlist_name: playlistName }, options);
91
98
  }
92
- async playlistQueueClear() {
93
- await this.get(`${baseUrl}/playlist_queue_clear.cgi`);
99
+ async playlistQueueClear(options) {
100
+ await this._getJson(`${BASE_PATH}/playlist_queue_clear.cgi`, undefined, options);
94
101
  }
95
- async playlistQueueList() {
96
- const data = await this.get(`${baseUrl}/playlist_queue_list.cgi`);
97
- return playlistQueueSchema.parse(data).playlistQueueList;
102
+ async playlistQueueList(options) {
103
+ const res = await this._getJson(`${BASE_PATH}/playlist_queue_list.cgi`, undefined, options);
104
+ return playlistQueueSchema.parse(res.data).playlistQueueList;
98
105
  }
99
- async playlistQueuePlayNext() {
100
- await this.get(`${baseUrl}/playlist_queue_play_next.cgi`);
106
+ async playlistQueuePlayNext(options) {
107
+ await this._getJson(`${BASE_PATH}/playlist_queue_play_next.cgi`, undefined, options);
101
108
  }
102
- async addNewClip(file, clipType, storage, id, fileName) {
109
+ async addNewClip(file, clipType, storage, clipId, fileName, options) {
110
+ const path = `${BASE_PATH}/clip_upload.cgi`;
103
111
  const formData = new this.CustomFormData();
104
- formData.append('clip_name', id);
112
+ formData.append('clip_name', clipId);
105
113
  formData.append('clip_type', clipType);
106
114
  formData.append('file', file, fileName);
107
- const path = `${baseUrl}/clip_upload.cgi?storage=${storage}`;
108
- const res = await this.client.post(path, formData);
115
+ const agent = this.getClient(options?.proxyParams);
116
+ const res = await agent.post({
117
+ path,
118
+ data: formData,
119
+ parameters: {
120
+ storage: storage,
121
+ },
122
+ timeout: options?.timeout,
123
+ });
109
124
  const output = (await res.json());
110
125
  if (output.status !== 200) {
111
126
  throw new AddNewClipError(output.message);
112
127
  }
113
128
  }
114
- removeClip(id, storage) {
115
- return this.get(`${baseUrl}/clip_remove.cgi`, { clip_name: id, storage });
129
+ async removeClip(clipId, storage, options) {
130
+ await this._getJson(`${BASE_PATH}/clip_remove.cgi`, { clip_name: clipId, storage }, options);
116
131
  }
117
- async getClipList() {
118
- const data = await this.get(`${baseUrl}/clip_list.cgi`);
119
- return clipListSchema.parse(data).clip_list;
132
+ async getClipList(options) {
133
+ const res = await this._getJson(`${BASE_PATH}/clip_list.cgi`, undefined, options);
134
+ return clipListSchema.parse(res.data).clip_list;
120
135
  }
121
- setCamSwitchOptions(data, cameraFWVersion) {
122
- const bitrateVapixParams = parseBitrateOptionsToBitrateVapixParams(cameraFWVersion, data.bitrateMode, data);
136
+ setCamSwitchOptions(data, cameraFWVersion, options) {
137
+ const bitrateData = {
138
+ bitrateMode: data.bitrateMode,
139
+ maximumBitRate: data.maximumBitRate,
140
+ retentionTime: data.retentionTime,
141
+ bitRateLimit: data.bitRateLimit,
142
+ };
143
+ const bitrateVapixParams = parseBitrateOptionsToVapixParams(cameraFWVersion, data.bitrateMode, bitrateData);
123
144
  const saveData = {
124
145
  video: {
125
146
  resolution: data.resolution,
@@ -136,9 +157,9 @@ export class CamSwitcherAPI {
136
157
  },
137
158
  keyboard: data.keyboard,
138
159
  };
139
- return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SETTINGS, saveData);
160
+ return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SETTINGS, saveData, options);
140
161
  }
141
- setGlobalAudioSettings(settings) {
162
+ setGlobalAudioSettings(settings, options) {
142
163
  let acceptedType = 'NONE';
143
164
  if (settings.type === 'source' && settings.source) {
144
165
  if (isClip(settings.source)) {
@@ -154,9 +175,9 @@ export class CamSwitcherAPI {
154
175
  clip_name: settings.source,
155
176
  storage: settings.storage,
156
177
  };
157
- return this.setParamFromCameraJSON(CSW_PARAM_NAMES.MASTER_AUDIO, data);
178
+ return this.setParamFromCameraJSON(CSW_PARAM_NAMES.MASTER_AUDIO, data, options);
158
179
  }
159
- setSecondaryAudioSettings(settings) {
180
+ setSecondaryAudioSettings(settings, options) {
160
181
  const data = {
161
182
  type: settings.type,
162
183
  stream_name: settings.streamName ?? '',
@@ -165,19 +186,19 @@ export class CamSwitcherAPI {
165
186
  secondary_audio_level: settings.secondaryAudioLevel,
166
187
  master_audio_level: settings.masterAudioLevel,
167
188
  };
168
- return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SECONDARY_AUDIO, data);
189
+ return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SECONDARY_AUDIO, data, options);
169
190
  }
170
- setDefaultPlaylist(id) {
171
- const value = JSON.stringify({ default_playlist_id: id });
191
+ setDefaultPlaylist(playlistId, options) {
192
+ const value = JSON.stringify({ default_playlist_id: playlistId });
172
193
  return this.vapixAgent.setParameter({
173
194
  [CSW_PARAM_NAMES.DEFAULT_PLAYLIST]: value,
174
- }, null);
195
+ }, options);
175
196
  }
176
- setPermanentRtspUrlToken(token) {
177
- return this.vapixAgent.setParameter({ [CSW_PARAM_NAMES.RTSP_TOKEN]: token }, null);
197
+ setPermanentRtspUrlToken(token, options) {
198
+ return this.vapixAgent.setParameter({ [CSW_PARAM_NAMES.RTSP_TOKEN]: token }, options);
178
199
  }
179
- async getCamSwitchOptions() {
180
- const saveData = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SETTINGS);
200
+ async getCamSwitchOptions(options) {
201
+ const saveData = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SETTINGS, options);
181
202
  if (isNullish(saveData.video)) {
182
203
  return saveData;
183
204
  }
@@ -202,12 +223,12 @@ export class CamSwitcherAPI {
202
223
  keyboard: saveData.keyboard,
203
224
  };
204
225
  }
205
- async getGlobalAudioSettings() {
226
+ async getGlobalAudioSettings(options) {
206
227
  const settings = {
207
228
  type: 'fromSource',
208
229
  source: 'fromSource',
209
230
  };
210
- const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.MASTER_AUDIO);
231
+ const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.MASTER_AUDIO, options);
211
232
  if (res.type === 'STREAM') {
212
233
  settings.type = 'source';
213
234
  settings.source = res.stream_name;
@@ -217,52 +238,35 @@ export class CamSwitcherAPI {
217
238
  settings.source = res.clip_name;
218
239
  settings.storage = res.storage;
219
240
  }
220
- return settings;
241
+ return globalAudioSettingsSchema.parse(settings);
221
242
  }
222
- async getSecondaryAudioSettings() {
223
- const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SECONDARY_AUDIO);
243
+ async getSecondaryAudioSettings(options) {
244
+ const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SECONDARY_AUDIO, options);
224
245
  const settings = {
225
246
  type: res.type ?? 'NONE',
226
247
  streamName: res.stream_name,
227
248
  clipName: res.clip_name,
228
- storage: res.storage,
249
+ storage: res.storage ?? 'SD_DISK',
229
250
  secondaryAudioLevel: res.secondary_audio_level ?? 1,
230
251
  masterAudioLevel: res.master_audio_level ?? 1,
231
252
  };
232
- return settings;
253
+ return secondaryAudioSettingsSchema.parse(settings);
233
254
  }
234
- async getPermanentRtspUrlToken() {
255
+ async getPermanentRtspUrlToken(options) {
235
256
  const paramName = CSW_PARAM_NAMES.RTSP_TOKEN;
236
- const res = await this.vapixAgent.getParameter([paramName], null);
237
- return res[paramName] ?? '';
238
- }
239
- async get(path, parameters = {}) {
240
- const res = await this.client.get(path, parameters);
241
- if (res.ok) {
242
- const d = (await res.json());
243
- return d.data;
244
- }
245
- else {
246
- throw new Error(await responseStringify(res));
247
- }
257
+ const res = await this.vapixAgent.getParameter([paramName], options);
258
+ return z.string().parse(res[paramName] ?? '');
248
259
  }
249
- async set(path, data, parameters = {}) {
250
- const res = await this.client.post(path, JSON.stringify(data), parameters);
251
- if (res.ok) {
252
- const parsed = await res.json();
253
- return parsed.message === 'OK';
254
- }
255
- else {
256
- throw new Error(await responseStringify(res));
257
- }
260
+ downloadReport(options) {
261
+ return this._getText(`${BASE_PATH}/report.cgi`, undefined, options);
258
262
  }
259
- setParamFromCameraJSON(paramName, data) {
263
+ setParamFromCameraJSON(paramName, data, options) {
260
264
  const params = {};
261
265
  params[paramName] = JSON.stringify(data);
262
- return this.vapixAgent.setParameter(params, null);
266
+ return this.vapixAgent.setParameter(params, options);
263
267
  }
264
- async getParamFromCameraAndJSONParse(paramName) {
265
- const data = await this.vapixAgent.getParameter([paramName], null);
268
+ async getParamFromCameraAndJSONParse(paramName, options) {
269
+ const data = await this.vapixAgent.getParameter([paramName], options);
266
270
  if (data[paramName] !== undefined) {
267
271
  try {
268
272
  if (data[paramName] === '') {
@@ -273,10 +277,24 @@ export class CamSwitcherAPI {
273
277
  }
274
278
  }
275
279
  catch {
276
- throw new Error('Error: in JSON parsing of ' + paramName + '. Cannot parse: ' + data[paramName]);
280
+ throw new JsonParseError(paramName, data[paramName]);
277
281
  }
278
282
  }
279
- throw new Error("Error: no parametr '" + paramName + "' was found");
283
+ throw new ParameterNotFoundError(paramName);
284
+ }
285
+ async getUploadedFileList(clipName, storage, options) {
286
+ const res = await this._getJson(`${BASE_PATH}/clip_files.cgi`, { clip_name: clipName, storage }, options);
287
+ return clipFilesListSchema.parse(res).data.files;
288
+ }
289
+ async downloadClipFile(fileName, storage, options) {
290
+ return await this._getBlob(`${BASE_PATH}/clip_download_file.cgi`, { file_name: fileName, storage }, options);
291
+ }
292
+ async uploadClipFiles(files, storage, options) {
293
+ const formData = new FormData();
294
+ for (const file of files) {
295
+ formData.append(file.name, file);
296
+ }
297
+ await this._post(`${BASE_PATH}/clip_upload_file.cgi`, formData, { storage }, options);
280
298
  }
281
299
  }
282
300
  const CSW_PARAM_NAMES = {
@@ -286,62 +304,3 @@ const CSW_PARAM_NAMES = {
286
304
  RTSP_TOKEN: 'Camswitcher.RTSPAccessToken',
287
305
  DEFAULT_PLAYLIST: 'Camswitcher.DefaultPlaylist',
288
306
  };
289
- const parseBitrateOptionsToBitrateVapixParams = (firmWareVersion, bitrateMode, cameraOptions) => {
290
- if (!isFirmwareVersionAtLeast(firmWareVersion, FIRMWARE_WITH_BITRATE_MODES_SUPPORT)) {
291
- return `videomaxbitrate=${cameraOptions.maximumBitRate}`;
292
- }
293
- if (bitrateMode === null) {
294
- return '';
295
- }
296
- const data = {
297
- VBR: 'videobitratemode=vbr',
298
- MBR: `videobitratemode=mbr&videomaxbitrate=${cameraOptions.maximumBitRate}`,
299
- ABR: `videobitratemode=abr&videoabrtargetbitrate=${cameraOptions.maximumBitRate}&videoabrretentiontime=${cameraOptions.retentionTime}&videoabrmaxbitrate=${cameraOptions.bitRateLimit}`,
300
- };
301
- return data[bitrateMode];
302
- };
303
- const parseVapixParamsToBitrateOptions = (bitrateVapixParams) => {
304
- const params = {};
305
- const searchParams = new URLSearchParams(bitrateVapixParams);
306
- searchParams.forEach((value, key) => {
307
- params[key] = value;
308
- });
309
- const bitrateMode = params['videobitratemode'] !== undefined ? params['videobitratemode'].toUpperCase() : undefined;
310
- const hasLowerFw = bitrateMode === undefined && params['videomaxbitrate'] !== undefined;
311
- if (hasLowerFw) {
312
- const maximumBitRate = parseInt(params['videomaxbitrate'] ?? '0', 10);
313
- return {
314
- bitrateMode: 'MBR',
315
- maximumBitRate: maximumBitRate,
316
- retentionTime: 1,
317
- bitRateLimit: Math.floor(maximumBitRate * 1.1),
318
- };
319
- }
320
- if (bitrateMode === 'ABR') {
321
- const maximumBitRate = parseInt(params['videoabrtargetbitrate'] ?? '0', 10);
322
- const retentionTime = parseInt(params['videoabrretentiontime'] ?? '0', 10);
323
- const bitRateLimit = parseInt(params['videoabrmaxbitrate'] ?? '0', 10);
324
- return {
325
- bitrateMode,
326
- maximumBitRate,
327
- retentionTime,
328
- bitRateLimit,
329
- };
330
- }
331
- else if (bitrateMode === 'MBR') {
332
- const maximumBitRate = params['videomaxbitrate'] !== undefined ? parseInt(params['videomaxbitrate'], 10) : null;
333
- const oldMaximumBitrateParamValue = parseInt(params['videombrmaxbitrate'] ?? '0', 10);
334
- return {
335
- bitrateMode: bitrateMode,
336
- maximumBitRate: maximumBitRate ?? oldMaximumBitrateParamValue,
337
- retentionTime: 1,
338
- bitRateLimit: Math.floor(maximumBitRate ?? oldMaximumBitrateParamValue * 1.1),
339
- };
340
- }
341
- return {
342
- bitrateMode: bitrateMode,
343
- retentionTime: 1,
344
- maximumBitRate: 0,
345
- bitRateLimit: 0,
346
- };
347
- };