camstreamerlib 4.0.0-beta.7 → 4.0.0-beta.71

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} +28 -20
  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} +26 -18
  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
@@ -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
  }
@@ -64,3 +94,83 @@ export class AddNewClipError extends Error {
64
94
  this.name = 'AddNewClipError';
65
95
  }
66
96
  }
97
+ export class PtzNotSupportedError extends Error {
98
+ constructor() {
99
+ super('Ptz not supported.');
100
+ this.name = 'PtzNotSupportedError';
101
+ }
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
+ }
package/esm/index.js CHANGED
@@ -1,11 +1,27 @@
1
- export * from './internal/common';
1
+ export * from './errors/errors';
2
+ export * from './internal/types';
2
3
  export * from './internal/constants';
3
4
  export * from './internal/utils';
4
5
  export * from './internal/versionCompare';
6
+ export * from './internal/ProxyClient';
5
7
  export * from './types/common';
8
+ export { CamStreamerAPI } from './CamStreamerAPI';
9
+ export * from './types/CamStreamerAPI';
10
+ export { CamStreamerEvents } from './ws/CamStreamerEvents';
11
+ export * from './types/ws/CamStreamerEvents';
12
+ export { CamOverlayAPI } from './CamOverlayAPI';
13
+ export * from './types/CamOverlayAPI';
14
+ export { CamOverlayEvents } from './ws/CamOverlayEvents';
15
+ export * from './types/ws/CamOverlayEvents';
6
16
  export { CamSwitcherAPI } from './CamSwitcherAPI';
7
- export { CamSwitcherEvents } from './CamSwitcherEvents';
8
- export { VapixAPI } from './VapixAPI';
9
- export * from './types/CamSwitcherEvents';
10
17
  export * from './types/CamSwitcherAPI';
18
+ export { CamSwitcherEvents } from './ws/CamSwitcherEvents';
19
+ export * from './types/ws/CamSwitcherEvents';
20
+ export { PlaneTrackerAPI } from './PlaneTrackerAPI';
21
+ export * from './types/PlaneTrackerAPI';
22
+ export { PlaneTrackerEvents } from './ws/PlaneTrackerEvents';
23
+ export * from './types/ws/PlaneTrackerEvents';
24
+ export { CamScripterAPI } from './CamScripterAPI';
25
+ export * from './types/CamScripterAPI';
26
+ export { VapixAPI } from './VapixAPI';
11
27
  export * from './types/VapixAPI';
@@ -1,40 +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, path, parameters, headers = {}) => {
10
- const url = addParametersToPath(path, parameters);
11
- const { realUrl, realHeaders } = this.getReal(proxy, url, headers);
12
- return this.client.get(realUrl, {}, realHeaders);
13
- };
14
- post = (proxy, path, data, parameters, headers) => {
15
- const url = addParametersToPath(path, parameters);
16
- const { realUrl, realHeaders } = this.getReal(proxy, url, headers);
17
- return this.client.post(realUrl, data, {}, realHeaders);
18
- };
19
- getReal = (proxy, url, headers) => {
20
- if (proxy !== null) {
21
- return {
22
- realUrl: this.getProxyUrl(),
23
- realHeaders: {
24
- ...(headers ?? {}),
25
- 'x-target-camera-protocol': proxy.port === 443 ? 'https' : 'http',
26
- 'x-target-camera-path': url,
27
- 'x-target-camera-ip': proxy.ip,
28
- 'x-target-camera-mdns': proxy.mdnsName,
29
- 'x-target-camera-port': String(proxy.port),
30
- 'x-target-camera-pass': encodeURIComponent(proxy.pass),
31
- 'x-target-camera-user': encodeURIComponent(proxy.user),
32
- },
33
- };
34
- }
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) {
35
22
  return {
36
- realUrl: url,
37
- 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
+ },
38
34
  };
39
- };
35
+ }
40
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,26 @@ 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
+ onMessage(incomeData) {
34
38
  if (this.isDestroyed) {
35
39
  return;
36
40
  }
37
41
  try {
38
- const eventData = JSON.parse(evt.data);
39
- const data = cswEventsSchema.parse(eventData);
40
- if (data.type === 'init') {
42
+ const eventData = JSON.parse(incomeData.toString());
43
+ const data = this.validate(eventData);
44
+ if (isInitEvent(data)) {
41
45
  this.processMessage(data.data, true);
42
46
  return;
43
47
  }
44
48
  this.processMessage(data, false);
45
49
  }
46
50
  catch (error) {
47
- console.error('Error parsing event data:', evt.data, error);
51
+ console.error('Error parsing event data:', incomeData.toString(), error);
48
52
  }
49
53
  }
50
54
  processMessage(event, isInit) {
@@ -53,11 +57,13 @@ export class CamSwitcherEvents {
53
57
  list.forEach((listener) => listener(event, isInit));
54
58
  }
55
59
  destroy() {
56
- this.isDestroyed = true;
57
- if (this.ws) {
58
- this.ws.destroy();
59
- this.ws = null;
60
- }
60
+ this._isDestroyed = true;
61
+ this.ws.onMessage = () => { };
62
+ this.ws.onOpen = () => Promise.reject(new Error('Websocket is destroyed'));
63
+ this.ws.destroy();
61
64
  this.listeners = {};
62
65
  }
63
66
  }
67
+ const isInitEvent = (event) => {
68
+ return event.type === 'init';
69
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,3 @@
1
- import { isNullish } from './common';
2
1
  export const addParametersToPath = (path, params) => {
3
2
  if (params === undefined || Object.keys(params).length === 0) {
4
3
  return path;
@@ -32,3 +31,14 @@ export const isClip = (id) => id?.charAt(0) === 's';
32
31
  export const isTracker = (id) => id?.charAt(0) === 't';
33
32
  export const isPlaylist = (id) => id?.charAt(0) === 'p';
34
33
  export const isLoopPlayType = (playType) => playType.includes('LOOP');
34
+ export function pad(num, size) {
35
+ const sign = Math.sign(num) === -1 ? '-' : '';
36
+ return (sign +
37
+ new Array(size)
38
+ .concat([Math.abs(num)])
39
+ .join('0')
40
+ .slice(-size));
41
+ }
42
+ export function isNullish(value) {
43
+ return value === null || value === undefined;
44
+ }
@@ -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) {
@@ -54,6 +54,14 @@ export class Frame extends EventEmitter {
54
54
  this.width = width;
55
55
  this.height = height;
56
56
  }
57
+ getFrameInfo() {
58
+ return {
59
+ x: this.posX,
60
+ y: this.posY,
61
+ width: this.width,
62
+ height: this.height,
63
+ };
64
+ }
57
65
  setText(text, align, textType = 'TFM_OVERFLOW', fontColor) {
58
66
  this.text = text;
59
67
  this.align = align;
@@ -73,6 +81,16 @@ export class Frame extends EventEmitter {
73
81
  this.fontName = undefined;
74
82
  this.font = fontData;
75
83
  }
84
+ getTextInfo() {
85
+ return {
86
+ text: this.text,
87
+ textAlign: this.align,
88
+ textType: this.textType,
89
+ fontColor: this.fontColor,
90
+ font: this.font,
91
+ fontName: this.fontName,
92
+ };
93
+ }
76
94
  setBgColor(color) {
77
95
  this.bgColor = color;
78
96
  }
@@ -89,6 +107,14 @@ export class Frame extends EventEmitter {
89
107
  setBgType(type) {
90
108
  this.bgType = type;
91
109
  }
110
+ getBgInfo() {
111
+ return {
112
+ bgColor: this.bgColor,
113
+ bgImage: this.bgImage,
114
+ bgImageName: this.bgImageName,
115
+ bgType: this.bgType,
116
+ };
117
+ }
92
118
  setBorderRadius(radius) {
93
119
  this.borderRadius = radius;
94
120
  }
@@ -98,6 +124,13 @@ export class Frame extends EventEmitter {
98
124
  setBorderColor(color) {
99
125
  this.borderColor = color;
100
126
  }
127
+ getBorderInfo() {
128
+ return {
129
+ borderRadius: this.borderRadius,
130
+ borderWidth: this.borderWidth,
131
+ borderColor: this.borderColor,
132
+ };
133
+ }
101
134
  setCustomDraw(customDraw) {
102
135
  this.customDraw = customDraw;
103
136
  }
@@ -1,17 +1,7 @@
1
1
  import { CamOverlayDrawingAPI } from '../CamOverlayDrawingAPI';
2
- import ResourceManager from './ResourceManager';
2
+ import { ResourceManager } from './ResourceManager';
3
3
  import { Frame } from './Frame';
4
- export const COORD = {
5
- top_left: [-1, -1],
6
- center_left: [-1, 0],
7
- bottom_left: [-1, 1],
8
- top_center: [0, -1],
9
- center: [0, 0],
10
- bottom_center: [0, 1],
11
- top_right: [1, -1],
12
- center_right: [1, 0],
13
- bottom_right: [1, 1],
14
- };
4
+ import { COORD } from '../../types/CamOverlayPainter';
15
5
  export class Painter extends Frame {
16
6
  screenWidth;
17
7
  screenHeight;
@@ -163,4 +153,3 @@ export class Painter extends Frame {
163
153
  }
164
154
  }
165
155
  }
166
- export { Frame, ResourceManager };
@@ -1,5 +1,5 @@
1
1
  import * as fs from 'fs/promises';
2
- export default class ResourceManager {
2
+ export class ResourceManager {
3
3
  co;
4
4
  imgFileNames = {};
5
5
  fontFileNames = {};
@@ -18,8 +18,9 @@ export default class ResourceManager {
18
18
  if (this.images[moniker] !== undefined) {
19
19
  return this.images[moniker];
20
20
  }
21
- if (this.imgFileNames[moniker] !== undefined) {
22
- const imgData = await fs.readFile(this.imgFileNames[moniker]);
21
+ const path = this.imgFileNames[moniker];
22
+ if (path !== undefined) {
23
+ const imgData = await fs.readFile(path);
23
24
  this.images[moniker] = await this.co.uploadImageData(imgData);
24
25
  return this.images[moniker];
25
26
  }
@@ -29,8 +30,9 @@ export default class ResourceManager {
29
30
  if (this.fonts[moniker] !== undefined) {
30
31
  return this.fonts[moniker];
31
32
  }
32
- if (this.fontFileNames[moniker] !== undefined) {
33
- const fontData = await fs.readFile(this.fontFileNames[moniker]);
33
+ const path = this.fontFileNames[moniker];
34
+ if (path !== undefined) {
35
+ const fontData = await fs.readFile(path);
34
36
  this.fonts[moniker] = await this.co.uploadFontData(fontData);
35
37
  return this.fonts[moniker];
36
38
  }
@@ -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 CamScripterAPICameraEventsGenerator extends EventEmitter {
4
4
  tls;
5
5
  tlsInsecure;
@@ -31,7 +31,7 @@ export class CamScripterAPICameraEventsGenerator extends EventEmitter {
31
31
  this.startMsgsTimeoutCheck();
32
32
  }
33
33
  disconnect() {
34
- this.ws.close();
34
+ this.ws.destroy();
35
35
  this.stopMsgsTimeoutCheck();
36
36
  }
37
37
  declareEvent(eventDeclaration) {
@@ -67,21 +67,21 @@ export class CamScripterAPICameraEventsGenerator extends EventEmitter {
67
67
  protocol: 'camera-events',
68
68
  };
69
69
  this.ws = new WsClient(options);
70
- this.ws.on('open', () => {
70
+ this.ws.onOpen = () => {
71
71
  this.wsConnected = true;
72
72
  this.emit('open');
73
- });
74
- this.ws.on('message', (msgData) => this.incomingWsMessageHandler(msgData));
75
- this.ws.on('error', (error) => {
73
+ };
74
+ this.ws.onMessage = (data) => this.incomingWsMessageHandler(data.toString());
75
+ this.ws.onError = (error) => {
76
76
  this.reportErr(error);
77
- });
78
- this.ws.on('close', () => {
77
+ };
78
+ this.ws.onClose = () => {
79
79
  this.wsConnected = false;
80
80
  this.reportClose();
81
- });
81
+ };
82
82
  }
83
83
  incomingWsMessageHandler(msgData) {
84
- const dataJSON = JSON.parse(msgData.toString());
84
+ const dataJSON = JSON.parse(msgData);
85
85
  let errorResponse;
86
86
  if ('error' in dataJSON) {
87
87
  errorResponse = dataJSON;