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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/README.md +143 -38
  2. package/cjs/CamOverlayAPI.d.ts +863 -27
  3. package/cjs/CamOverlayAPI.js +135 -92
  4. package/cjs/CamScripterAPI.d.ts +44 -17
  5. package/cjs/CamScripterAPI.js +52 -42
  6. package/cjs/CamStreamerAPI.d.ts +62 -14
  7. package/cjs/CamStreamerAPI.js +82 -39
  8. package/cjs/CamSwitcherAPI.d.ts +158 -43
  9. package/cjs/CamSwitcherAPI.js +138 -122
  10. package/cjs/PlaneTrackerAPI.d.ts +233 -0
  11. package/cjs/PlaneTrackerAPI.js +247 -0
  12. package/cjs/VapixAPI.d.ts +94 -42
  13. package/cjs/VapixAPI.js +323 -233
  14. package/cjs/{CreatePackage.js → bin/CreatePackage.js} +44 -18
  15. package/cjs/errors/errors.d.ts +61 -4
  16. package/cjs/errors/errors.js +134 -7
  17. package/cjs/index.d.ts +20 -4
  18. package/cjs/index.js +28 -5
  19. package/cjs/internal/ProxyClient.d.ts +8 -9
  20. package/cjs/internal/ProxyClient.js +28 -32
  21. package/cjs/internal/WsEvents.d.ts +37 -0
  22. package/cjs/{CamSwitcherEvents.js → internal/WsEvents.js} +28 -22
  23. package/cjs/internal/types.d.ts +47 -0
  24. package/cjs/internal/types.js +2 -0
  25. package/cjs/internal/utils.d.ts +3 -1
  26. package/cjs/internal/utils.js +15 -3
  27. package/cjs/internal/versionCompare.d.ts +2 -2
  28. package/cjs/node/CamOverlayDrawingAPI.d.ts +41 -0
  29. package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +15 -14
  30. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.d.ts +8 -37
  31. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  32. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.d.ts +5 -21
  33. package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +5 -17
  34. package/cjs/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  35. package/cjs/node/CamOverlayPainter/ResourceManager.js +72 -0
  36. package/cjs/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  37. package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +13 -13
  38. package/cjs/node/DefaultClient.d.ts +6 -5
  39. package/cjs/node/DefaultClient.js +10 -12
  40. package/cjs/{internal → node}/Digest.js +24 -1
  41. package/cjs/node/Digest.test.js +13 -0
  42. package/cjs/node/HttpRequestSender.d.ts +1 -0
  43. package/cjs/node/HttpRequestSender.js +14 -4
  44. package/cjs/node/HttpServer.d.ts +1 -1
  45. package/cjs/node/HttpServer.js +29 -6
  46. package/cjs/node/TimeZoneDaemon.d.ts +6 -0
  47. package/cjs/node/TimeZoneDaemon.js +29 -0
  48. package/cjs/node/VapixEvents.d.ts +16 -0
  49. package/cjs/{VapixEvents.js → node/VapixEvents.js} +10 -10
  50. package/cjs/node/WsClient.d.ts +9 -18
  51. package/cjs/node/WsClient.js +27 -20
  52. package/cjs/node/events/AxisCameraStationEvents.d.ts +12 -0
  53. package/cjs/node/events/AxisCameraStationEvents.js +53 -0
  54. package/cjs/node/events/GenetecAgent.d.ts +16 -0
  55. package/cjs/node/events/GenetecAgent.js +124 -0
  56. package/cjs/node/index.d.ts +18 -2
  57. package/cjs/node/index.js +39 -5
  58. package/cjs/types/CamOverlayAPI/CamOverlayAPI.d.ts +4330 -0
  59. package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +92 -0
  60. package/cjs/types/CamOverlayAPI/accuweatherSchema.d.ts +84 -0
  61. package/cjs/types/CamOverlayAPI/accuweatherSchema.js +47 -0
  62. package/cjs/types/CamOverlayAPI/customGraphicsSchema.d.ts +700 -0
  63. package/cjs/types/CamOverlayAPI/customGraphicsSchema.js +72 -0
  64. package/cjs/types/CamOverlayAPI/imagesSchema.d.ts +95 -0
  65. package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
  66. package/cjs/types/CamOverlayAPI/index.d.ts +11 -0
  67. package/cjs/types/CamOverlayAPI/index.js +27 -0
  68. package/cjs/types/CamOverlayAPI/infotickerSchema.d.ts +96 -0
  69. package/cjs/types/CamOverlayAPI/infotickerSchema.js +26 -0
  70. package/cjs/types/CamOverlayAPI/pipSchema.d.ts +125 -0
  71. package/cjs/types/CamOverlayAPI/pipSchema.js +39 -0
  72. package/cjs/types/CamOverlayAPI/ptzCompassSchema.d.ts +96 -0
  73. package/cjs/types/CamOverlayAPI/ptzCompassSchema.js +26 -0
  74. package/cjs/types/CamOverlayAPI/ptzSchema.d.ts +118 -0
  75. package/cjs/types/CamOverlayAPI/ptzSchema.js +12 -0
  76. package/cjs/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  77. package/cjs/types/CamOverlayAPI/scoreBoardSchema.js +132 -0
  78. package/cjs/types/CamOverlayAPI/screenSharingSchema.d.ts +58 -0
  79. package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
  80. package/cjs/types/CamOverlayAPI/serviceCommonTypes.d.ts +145 -0
  81. package/cjs/types/CamOverlayAPI/serviceCommonTypes.js +91 -0
  82. package/cjs/types/CamOverlayAPI/webCameraSharingSchema.d.ts +58 -0
  83. package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +8 -0
  84. package/cjs/types/CamOverlayDrawingAPI.d.ts +48 -0
  85. package/cjs/types/CamOverlayDrawingAPI.js +2 -0
  86. package/cjs/types/CamOverlayPainter.d.ts +76 -0
  87. package/cjs/types/CamOverlayPainter.js +14 -0
  88. package/cjs/types/CamScripterAPI.d.ts +86 -23
  89. package/cjs/types/CamScripterAPI.js +24 -8
  90. package/cjs/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  91. package/cjs/types/CamScripterAPICameraEventsGenerator.js +2 -0
  92. package/cjs/types/CamStreamerAPI.d.ts +180 -47
  93. package/cjs/types/CamStreamerAPI.js +34 -3
  94. package/cjs/types/CamSwitcherAPI.d.ts +145 -66
  95. package/cjs/types/CamSwitcherAPI.js +38 -1
  96. package/cjs/{events → types}/GenetecAgent.d.ts +47 -47
  97. package/cjs/types/GenetecAgent.js +31 -0
  98. package/cjs/types/PlaneTrackerAPI.d.ts +952 -0
  99. package/cjs/types/PlaneTrackerAPI.js +320 -0
  100. package/cjs/types/VapixAPI.d.ts +254 -164
  101. package/cjs/types/VapixAPI.js +66 -11
  102. package/cjs/types/VapixEvents.d.ts +15 -0
  103. package/cjs/types/VapixEvents.js +2 -0
  104. package/cjs/types/common.d.ts +17 -5
  105. package/cjs/types/common.js +4 -2
  106. package/cjs/types/ws/CamOverlayEvents.d.ts +88 -0
  107. package/cjs/types/ws/CamOverlayEvents.js +19 -0
  108. package/cjs/types/ws/CamStreamerEvents.d.ts +249 -0
  109. package/cjs/types/ws/CamStreamerEvents.js +32 -0
  110. package/cjs/types/ws/PlaneTrackerEvents.d.ts +1637 -0
  111. package/cjs/types/ws/PlaneTrackerEvents.js +196 -0
  112. package/cjs/web/DefaultClient.d.ts +7 -5
  113. package/cjs/web/DefaultClient.js +26 -10
  114. package/cjs/web/WsClient.d.ts +9 -5
  115. package/cjs/web/WsClient.js +16 -18
  116. package/cjs/ws/CamOverlayEvents.d.ts +8 -0
  117. package/cjs/ws/CamOverlayEvents.js +24 -0
  118. package/cjs/ws/CamStreamerEvents.d.ts +8 -0
  119. package/cjs/ws/CamStreamerEvents.js +24 -0
  120. package/cjs/ws/CamSwitcherEvents.d.ts +8 -0
  121. package/cjs/ws/CamSwitcherEvents.js +24 -0
  122. package/cjs/ws/PlaneTrackerEvents.d.ts +9 -0
  123. package/cjs/ws/PlaneTrackerEvents.js +30 -0
  124. package/esm/CamOverlayAPI.js +135 -92
  125. package/esm/CamScripterAPI.js +50 -40
  126. package/esm/CamStreamerAPI.js +81 -39
  127. package/esm/CamSwitcherAPI.js +136 -120
  128. package/esm/PlaneTrackerAPI.js +243 -0
  129. package/esm/VapixAPI.js +323 -233
  130. package/esm/{CreatePackage.js → bin/CreatePackage.js} +16 -16
  131. package/esm/errors/errors.js +116 -6
  132. package/esm/index.js +20 -4
  133. package/esm/internal/ProxyClient.js +28 -32
  134. package/esm/{CamSwitcherEvents.js → internal/WsEvents.js} +26 -20
  135. package/esm/internal/types.js +1 -0
  136. package/esm/internal/utils.js +11 -1
  137. package/esm/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +13 -12
  138. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
  139. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +2 -13
  140. package/esm/{CamOverlayPainter → node/CamOverlayPainter}/ResourceManager.js +7 -5
  141. package/esm/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +11 -11
  142. package/esm/node/DefaultClient.js +10 -12
  143. package/esm/node/Digest.test.js +11 -0
  144. package/esm/node/HttpRequestSender.js +14 -4
  145. package/esm/node/HttpServer.js +1 -1
  146. package/esm/node/TimeZoneDaemon.js +25 -0
  147. package/esm/{VapixEvents.js → node/VapixEvents.js} +10 -10
  148. package/esm/node/WsClient.js +22 -15
  149. package/esm/{events → node/events}/AxisCameraStationEvents.js +18 -13
  150. package/esm/node/events/GenetecAgent.js +120 -0
  151. package/esm/node/index.js +18 -2
  152. package/esm/types/CamOverlayAPI/CamOverlayAPI.js +76 -0
  153. package/esm/types/CamOverlayAPI/accuweatherSchema.js +44 -0
  154. package/esm/types/CamOverlayAPI/customGraphicsSchema.js +69 -0
  155. package/esm/types/CamOverlayAPI/imagesSchema.js +6 -0
  156. package/esm/types/CamOverlayAPI/index.js +11 -0
  157. package/esm/types/CamOverlayAPI/infotickerSchema.js +23 -0
  158. package/esm/types/CamOverlayAPI/pipSchema.js +36 -0
  159. package/esm/types/CamOverlayAPI/ptzCompassSchema.js +23 -0
  160. package/esm/types/CamOverlayAPI/ptzSchema.js +9 -0
  161. package/esm/types/CamOverlayAPI/scoreBoardSchema.js +129 -0
  162. package/esm/types/CamOverlayAPI/screenSharingSchema.js +5 -0
  163. package/esm/types/CamOverlayAPI/serviceCommonTypes.js +88 -0
  164. package/esm/types/CamOverlayAPI/webCameraSharingSchema.js +5 -0
  165. package/esm/types/CamOverlayDrawingAPI.js +1 -0
  166. package/esm/types/CamOverlayPainter.js +11 -0
  167. package/esm/types/CamScripterAPI.js +23 -7
  168. package/esm/types/CamScripterAPICameraEventsGenerator.js +1 -0
  169. package/esm/types/CamStreamerAPI.js +33 -2
  170. package/esm/types/CamSwitcherAPI.js +38 -1
  171. package/esm/types/GenetecAgent.js +28 -0
  172. package/esm/types/PlaneTrackerAPI.js +317 -0
  173. package/esm/types/VapixAPI.js +65 -10
  174. package/esm/types/VapixEvents.js +1 -0
  175. package/esm/types/common.js +3 -1
  176. package/esm/types/ws/CamOverlayEvents.js +16 -0
  177. package/esm/types/ws/CamStreamerEvents.js +29 -0
  178. package/esm/types/ws/PlaneTrackerEvents.js +193 -0
  179. package/esm/web/DefaultClient.js +26 -10
  180. package/esm/web/WsClient.js +16 -18
  181. package/esm/ws/CamOverlayEvents.js +20 -0
  182. package/esm/ws/CamStreamerEvents.js +20 -0
  183. package/esm/ws/CamSwitcherEvents.js +20 -0
  184. package/esm/ws/PlaneTrackerEvents.js +26 -0
  185. package/package.json +44 -11
  186. package/types/CamOverlayAPI.d.ts +867 -0
  187. package/types/CamScripterAPI.d.ts +46 -0
  188. package/types/CamStreamerAPI.d.ts +64 -0
  189. package/types/CamSwitcherAPI.d.ts +167 -0
  190. package/types/PlaneTrackerAPI.d.ts +233 -0
  191. package/types/VapixAPI.d.ts +118 -0
  192. package/types/bin/CreatePackage.d.ts +1 -0
  193. package/types/errors/errors.d.ts +91 -0
  194. package/types/index.d.ts +27 -0
  195. package/types/internal/ProxyClient.d.ts +10 -0
  196. package/types/internal/WsEvents.d.ts +37 -0
  197. package/types/internal/types.d.ts +47 -0
  198. package/{esm → types}/internal/utils.d.ts +3 -1
  199. package/{esm → types}/internal/versionCompare.d.ts +2 -2
  200. package/types/node/CamOverlayDrawingAPI.d.ts +41 -0
  201. package/{esm → types/node}/CamOverlayPainter/Frame.d.ts +8 -37
  202. package/{esm → types/node}/CamOverlayPainter/Painter.d.ts +5 -21
  203. package/types/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
  204. package/types/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
  205. package/types/node/DefaultClient.d.ts +16 -0
  206. package/types/node/Digest.test.d.ts +1 -0
  207. package/{esm → types}/node/HttpRequestSender.d.ts +1 -0
  208. package/{esm → types}/node/HttpServer.d.ts +1 -1
  209. package/types/node/TimeZoneDaemon.d.ts +6 -0
  210. package/types/node/VapixEvents.d.ts +16 -0
  211. package/types/node/WsClient.d.ts +30 -0
  212. package/types/node/events/AxisCameraStationEvents.d.ts +12 -0
  213. package/types/node/events/GenetecAgent.d.ts +16 -0
  214. package/types/node/index.d.ts +18 -0
  215. package/types/types/CamOverlayAPI/CamOverlayAPI.d.ts +4330 -0
  216. package/types/types/CamOverlayAPI/accuweatherSchema.d.ts +84 -0
  217. package/types/types/CamOverlayAPI/customGraphicsSchema.d.ts +700 -0
  218. package/types/types/CamOverlayAPI/imagesSchema.d.ts +95 -0
  219. package/types/types/CamOverlayAPI/index.d.ts +11 -0
  220. package/types/types/CamOverlayAPI/infotickerSchema.d.ts +96 -0
  221. package/types/types/CamOverlayAPI/pipSchema.d.ts +125 -0
  222. package/types/types/CamOverlayAPI/ptzCompassSchema.d.ts +96 -0
  223. package/types/types/CamOverlayAPI/ptzSchema.d.ts +118 -0
  224. package/types/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
  225. package/types/types/CamOverlayAPI/screenSharingSchema.d.ts +58 -0
  226. package/types/types/CamOverlayAPI/serviceCommonTypes.d.ts +145 -0
  227. package/types/types/CamOverlayAPI/webCameraSharingSchema.d.ts +58 -0
  228. package/types/types/CamOverlayDrawingAPI.d.ts +48 -0
  229. package/types/types/CamOverlayPainter.d.ts +76 -0
  230. package/types/types/CamScripterAPI.d.ts +130 -0
  231. package/types/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
  232. package/types/types/CamStreamerAPI.d.ts +272 -0
  233. package/{esm → types}/types/CamSwitcherAPI.d.ts +145 -66
  234. package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
  235. package/types/types/PlaneTrackerAPI.d.ts +952 -0
  236. package/{esm → types}/types/VapixAPI.d.ts +254 -164
  237. package/types/types/VapixEvents.d.ts +15 -0
  238. package/{esm → types}/types/common.d.ts +17 -5
  239. package/types/types/ws/CamOverlayEvents.d.ts +88 -0
  240. package/types/types/ws/CamStreamerEvents.d.ts +249 -0
  241. package/types/types/ws/PlaneTrackerEvents.d.ts +1637 -0
  242. package/types/web/DefaultClient.d.ts +8 -0
  243. package/types/web/WsClient.d.ts +17 -0
  244. package/types/ws/CamOverlayEvents.d.ts +8 -0
  245. package/types/ws/CamStreamerEvents.d.ts +8 -0
  246. package/types/ws/CamSwitcherEvents.d.ts +8 -0
  247. package/types/ws/PlaneTrackerEvents.d.ts +9 -0
  248. package/cjs/CamOverlayDrawingAPI.d.ts +0 -86
  249. package/cjs/CamOverlayPainter/ResourceManager.d.ts +0 -14
  250. package/cjs/CamOverlayPainter/ResourceManager.js +0 -46
  251. package/cjs/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  252. package/cjs/CamSwitcherEvents.d.ts +0 -18
  253. package/cjs/VapixEvents.d.ts +0 -43
  254. package/cjs/events/AxisCameraStationEvents.d.ts +0 -9
  255. package/cjs/events/AxisCameraStationEvents.js +0 -48
  256. package/cjs/events/GenetecAgent.js +0 -123
  257. package/cjs/internal/common.d.ts +0 -39
  258. package/cjs/internal/common.js +0 -27
  259. package/cjs/node/WsEventClient.d.ts +0 -13
  260. package/cjs/node/WsEventClient.js +0 -22
  261. package/cjs/types/CamOverlayAPI.d.ts +0 -188
  262. package/cjs/types/CamOverlayAPI.js +0 -47
  263. package/esm/CamOverlayAPI.d.ts +0 -31
  264. package/esm/CamOverlayDrawingAPI.d.ts +0 -86
  265. package/esm/CamOverlayPainter/ResourceManager.d.ts +0 -14
  266. package/esm/CamScripterAPI.d.ts +0 -19
  267. package/esm/CamScripterAPICameraEventsGenerator.d.ts +0 -74
  268. package/esm/CamStreamerAPI.d.ts +0 -16
  269. package/esm/CamSwitcherAPI.d.ts +0 -52
  270. package/esm/CamSwitcherEvents.d.ts +0 -18
  271. package/esm/VapixAPI.d.ts +0 -66
  272. package/esm/VapixEvents.d.ts +0 -43
  273. package/esm/errors/errors.d.ts +0 -34
  274. package/esm/events/AxisCameraStationEvents.d.ts +0 -9
  275. package/esm/events/GenetecAgent.js +0 -119
  276. package/esm/index.d.ts +0 -11
  277. package/esm/internal/ProxyClient.d.ts +0 -11
  278. package/esm/internal/common.d.ts +0 -39
  279. package/esm/internal/common.js +0 -20
  280. package/esm/node/DefaultClient.d.ts +0 -15
  281. package/esm/node/WsClient.d.ts +0 -39
  282. package/esm/node/WsEventClient.d.ts +0 -13
  283. package/esm/node/WsEventClient.js +0 -18
  284. package/esm/types/CamOverlayAPI.d.ts +0 -188
  285. package/esm/types/CamOverlayAPI.js +0 -44
  286. package/esm/types/CamScripterAPI.d.ts +0 -67
  287. package/esm/types/CamStreamerAPI.d.ts +0 -139
  288. package/esm/web/DefaultClient.d.ts +0 -6
  289. package/esm/web/WsClient.d.ts +0 -13
  290. package/esm/web/index.d.ts +0 -2
  291. /package/cjs/{CreatePackage.d.ts → bin/CreatePackage.d.ts} +0 -0
  292. /package/cjs/{internal → node}/Digest.d.ts +0 -0
  293. /package/{esm/CreatePackage.d.ts → cjs/node/Digest.test.d.ts} +0 -0
  294. /package/cjs/types/{CamSwitcherEvents.d.ts → ws/CamSwitcherEvents.d.ts} +0 -0
  295. /package/cjs/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  296. /package/esm/{internal → node}/Digest.js +0 -0
  297. /package/esm/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
  298. /package/{esm → types}/internal/constants.d.ts +0 -0
  299. /package/{esm → types}/internal/transformers.d.ts +0 -0
  300. /package/{esm/internal → types/node}/Digest.d.ts +0 -0
  301. /package/{esm/types → types/types/ws}/CamSwitcherEvents.d.ts +0 -0
  302. /package/{esm/node → types/web}/index.d.ts +0 -0
@@ -1,23 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CamSwitcherEvents = void 0;
4
- const CamSwitcherEvents_1 = require("./types/CamSwitcherEvents");
5
- class CamSwitcherEvents {
6
- isDestroyed = false;
7
- ws = null;
3
+ exports.WsEvents = void 0;
4
+ class WsEvents {
5
+ validate;
6
+ ws;
7
+ _isDestroyed = false;
8
8
  listeners = {};
9
- setWebsocket(ws) {
10
- if (this.ws) {
11
- this.ws.destroy();
12
- }
9
+ constructor(validate, ws) {
10
+ this.validate = validate;
13
11
  this.ws = ws;
14
- this.ws.onmessage = (e) => this.onMessage(e);
12
+ this.ws.onMessage = (e) => this.onMessage(e);
13
+ }
14
+ get isDestroyed() {
15
+ return this._isDestroyed;
15
16
  }
16
17
  resendInitData() {
17
18
  const request = {
18
19
  command: 'sendInitData',
19
20
  };
20
- this.ws?.send(JSON.stringify(request));
21
+ this.ws.send(JSON.stringify(request));
21
22
  }
22
23
  addListener(type, listener, id) {
23
24
  const typeList = this.listeners[type];
@@ -31,23 +32,26 @@ class CamSwitcherEvents {
31
32
  const typeList = this.listeners[type];
32
33
  if (typeList) {
33
34
  delete typeList[id];
35
+ if (Object.keys(typeList).length === 0) {
36
+ delete this.listeners[type];
37
+ }
34
38
  }
35
39
  }
36
- onMessage(evt) {
40
+ onMessage(incomeData) {
37
41
  if (this.isDestroyed) {
38
42
  return;
39
43
  }
40
44
  try {
41
- const eventData = JSON.parse(evt.data);
42
- const data = CamSwitcherEvents_1.cswEventsSchema.parse(eventData);
43
- if (data.type === 'init') {
45
+ const eventData = JSON.parse(incomeData.toString());
46
+ const data = this.validate(eventData);
47
+ if (isInitEvent(data)) {
44
48
  this.processMessage(data.data, true);
45
49
  return;
46
50
  }
47
51
  this.processMessage(data, false);
48
52
  }
49
53
  catch (error) {
50
- console.error('Error parsing event data:', evt.data, error);
54
+ console.error('Error parsing event data:', incomeData.toString(), error);
51
55
  }
52
56
  }
53
57
  processMessage(event, isInit) {
@@ -56,12 +60,14 @@ class CamSwitcherEvents {
56
60
  list.forEach((listener) => listener(event, isInit));
57
61
  }
58
62
  destroy() {
59
- this.isDestroyed = true;
60
- if (this.ws) {
61
- this.ws.destroy();
62
- this.ws = null;
63
- }
63
+ this._isDestroyed = true;
64
+ this.ws.onMessage = () => { };
65
+ this.ws.onOpen = () => Promise.reject(new Error('Websocket is destroyed'));
66
+ this.ws.destroy();
64
67
  this.listeners = {};
65
68
  }
66
69
  }
67
- exports.CamSwitcherEvents = CamSwitcherEvents;
70
+ exports.WsEvents = WsEvents;
71
+ const isInitEvent = (event) => {
72
+ return event.type === 'init';
73
+ };
@@ -0,0 +1,47 @@
1
+ export type Options = {
2
+ ip?: string;
3
+ port?: number;
4
+ user?: string;
5
+ pass?: string;
6
+ tls?: boolean;
7
+ tlsInsecure?: boolean;
8
+ };
9
+ export type HttpOptions = Options & {
10
+ keepAlive?: boolean;
11
+ };
12
+ export type TParameters = Record<string, string | number | boolean | null | undefined>;
13
+ export type TResponse = {
14
+ json: () => Promise<any>;
15
+ text: () => Promise<string>;
16
+ blob: () => Promise<unknown>;
17
+ status: number;
18
+ ok: boolean;
19
+ statusText: string;
20
+ };
21
+ export type TGetParams = {
22
+ path: string;
23
+ parameters?: TParameters;
24
+ headers?: Record<string, string>;
25
+ timeout?: number;
26
+ };
27
+ export type TPostParams<Data> = {
28
+ path: string;
29
+ data: string | Data;
30
+ parameters?: TParameters;
31
+ headers?: Record<string, string>;
32
+ timeout?: number;
33
+ };
34
+ export interface IClient<TRes extends TResponse, Data> {
35
+ get: (params: TGetParams) => Promise<TRes>;
36
+ post: (params: TPostParams<Data>) => Promise<TRes>;
37
+ }
38
+ export type TBlobResponse<Client extends IClient<TResponse, any>> = Awaited<ReturnType<Awaited<ReturnType<Client['get']>>['blob']>>;
39
+ export interface IWsClient {
40
+ onMessage: null | ((data: ArrayBuffer | string) => void);
41
+ onOpen: () => void;
42
+ onClose: () => void;
43
+ onError: (error: Error) => void;
44
+ send: (data: ArrayBuffer | string) => void;
45
+ reconnect: () => void;
46
+ destroy: () => void;
47
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +1,5 @@
1
1
  import { TPlaylistPlayType } from '../types/CamSwitcherAPI';
2
- import { TParameters } from './common';
2
+ import { TParameters } from './types';
3
3
  export declare const addParametersToPath: (path: string, params?: TParameters) => string;
4
4
  export declare const paramToUrl: (params?: TParameters) => string;
5
5
  export declare const arrayToUrl: (arr: string | string[]) => string;
@@ -9,3 +9,5 @@ export declare const isClip: (id?: string) => boolean;
9
9
  export declare const isTracker: (id?: string) => boolean;
10
10
  export declare const isPlaylist: (id?: string) => boolean;
11
11
  export declare const isLoopPlayType: (playType: TPlaylistPlayType) => boolean;
12
+ export declare function pad(num: number, size: number): string;
13
+ export declare function isNullish<T>(value: T | undefined | null): value is undefined | null;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLoopPlayType = exports.isPlaylist = exports.isTracker = exports.isClip = exports.isStream = exports.isCamera = exports.arrayToUrl = exports.paramToUrl = exports.addParametersToPath = void 0;
4
- const common_1 = require("./common");
3
+ exports.isNullish = exports.pad = exports.isLoopPlayType = exports.isPlaylist = exports.isTracker = exports.isClip = exports.isStream = exports.isCamera = exports.arrayToUrl = exports.paramToUrl = exports.addParametersToPath = void 0;
5
4
  const addParametersToPath = (path, params) => {
6
5
  if (params === undefined || Object.keys(params).length === 0) {
7
6
  return path;
@@ -17,7 +16,7 @@ const paramToUrl = (params) => {
17
16
  let output = '';
18
17
  for (const key in params) {
19
18
  const value = params[key];
20
- if ((0, common_1.isNullish)(value)) {
19
+ if (isNullish(value)) {
21
20
  continue;
22
21
  }
23
22
  output += `${encodeURIComponent(key)}=${encodeURIComponent(value)}&`;
@@ -44,3 +43,16 @@ const isPlaylist = (id) => id?.charAt(0) === 'p';
44
43
  exports.isPlaylist = isPlaylist;
45
44
  const isLoopPlayType = (playType) => playType.includes('LOOP');
46
45
  exports.isLoopPlayType = isLoopPlayType;
46
+ function pad(num, size) {
47
+ const sign = Math.sign(num) === -1 ? '-' : '';
48
+ return (sign +
49
+ new Array(size)
50
+ .concat([Math.abs(num)])
51
+ .join('0')
52
+ .slice(-size));
53
+ }
54
+ exports.pad = pad;
55
+ function isNullish(value) {
56
+ return value === null || value === undefined;
57
+ }
58
+ exports.isNullish = isNullish;
@@ -1,6 +1,6 @@
1
1
  export declare const assertVersionString: (s: string, msg?: string) => void;
2
2
  export declare const isFirmwareVersionAtLeast: (version: string, compareVersion: string) => boolean;
3
3
  export declare const isVersionAtLeast: (version: string, compareVersion: string) => boolean;
4
- export declare const firmwareVersionCompare: (a: string, b: string) => 1 | -1 | 0;
5
- export declare const versionCompare: (a: string, b: string) => 1 | -1 | 0;
4
+ export declare const firmwareVersionCompare: (a: string, b: string) => 0 | 1 | -1;
5
+ export declare const versionCompare: (a: string, b: string) => 0 | 1 | -1;
6
6
  export declare const fixVersionToDots: (version: string) => string;
@@ -0,0 +1,41 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ import { EventEmitter } from 'events';
5
+ import { CamOverlayDrawingOptions, TCairoCreateResponse, TCairoResponse, TUploadImageResponse, TWriteTextParams } from '../types/CamOverlayDrawingAPI';
6
+ export declare class CamOverlayDrawingAPI extends EventEmitter {
7
+ private tls;
8
+ private tlsInsecure;
9
+ private ip;
10
+ private port;
11
+ private user;
12
+ private pass;
13
+ private cameraList;
14
+ private zIndex;
15
+ private callId;
16
+ private sendMessages;
17
+ private timeoutCheckTimer;
18
+ private wsConnected;
19
+ private ws;
20
+ constructor(options?: CamOverlayDrawingOptions);
21
+ connect(): void;
22
+ disconnect(): void;
23
+ isConnected(): boolean;
24
+ cairo(command: string, ...params: unknown[]): Promise<TCairoResponse | TCairoCreateResponse>;
25
+ writeText(...params: TWriteTextParams): Promise<TCairoResponse>;
26
+ uploadImageData(imgBuffer: Buffer): Promise<TUploadImageResponse>;
27
+ uploadFontData(fontBuffer: Buffer): Promise<TCairoCreateResponse>;
28
+ showCairoImage(cairoImage: string, posX: number, posY: number): Promise<TCairoResponse>;
29
+ showCairoImageAbsolute(cairoImage: string, posX: number, posY: number, width: number, height: number): Promise<TCairoResponse>;
30
+ removeImage(): Promise<TCairoResponse>;
31
+ private createWsClient;
32
+ private incomingWsMessageHandler;
33
+ private sendMessage;
34
+ private sendBinaryMessage;
35
+ private startMsgsTimeoutCheck;
36
+ private stopMsgsTimeoutCheck;
37
+ private reconnectWithError;
38
+ private reportMessage;
39
+ private reportError;
40
+ private reportClose;
41
+ }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CamOverlayDrawingAPI = void 0;
4
- const EventEmitter = require("events");
5
- const WsClient_1 = require("./node/WsClient");
6
- class CamOverlayDrawingAPI extends EventEmitter {
4
+ const events_1 = require("events");
5
+ const WsClient_1 = require("./WsClient");
6
+ class CamOverlayDrawingAPI extends events_1.EventEmitter {
7
7
  tls;
8
8
  tlsInsecure;
9
9
  ip;
@@ -37,14 +37,14 @@ class CamOverlayDrawingAPI extends EventEmitter {
37
37
  this.sendMessages = {};
38
38
  this.wsConnected = false;
39
39
  this.createWsClient();
40
- EventEmitter.call(this);
40
+ events_1.EventEmitter.call(this);
41
41
  }
42
42
  connect() {
43
43
  this.ws.open();
44
44
  this.startMsgsTimeoutCheck();
45
45
  }
46
46
  disconnect() {
47
- this.ws.close();
47
+ this.ws.destroy();
48
48
  this.stopMsgsTimeoutCheck();
49
49
  }
50
50
  isConnected() {
@@ -101,23 +101,23 @@ class CamOverlayDrawingAPI extends EventEmitter {
101
101
  tlsInsecure: this.tlsInsecure,
102
102
  };
103
103
  this.ws = new WsClient_1.WsClient(options);
104
- this.ws.on('open', () => {
104
+ this.ws.onOpen = () => {
105
105
  console.log('CamOverlay connection opened');
106
106
  this.wsConnected = true;
107
107
  this.emit('open');
108
- });
109
- this.ws.on('message', (msgData) => this.incomingWsMessageHandler(msgData));
110
- this.ws.on('error', (error) => {
108
+ };
109
+ this.ws.onMessage = (data) => this.incomingWsMessageHandler(data.toString());
110
+ this.ws.onError = (error) => {
111
111
  this.reportError(error);
112
- });
113
- this.ws.on('close', () => {
112
+ };
113
+ this.ws.onClose = () => {
114
114
  console.log('CamOverlay connection closed');
115
115
  this.wsConnected = false;
116
116
  this.reportClose();
117
- });
117
+ };
118
118
  }
119
119
  incomingWsMessageHandler(msgData) {
120
- const dataJSON = JSON.parse(msgData.toString());
120
+ const dataJSON = JSON.parse(msgData);
121
121
  let errorResponse;
122
122
  if ('error' in dataJSON) {
123
123
  errorResponse = dataJSON;
@@ -174,7 +174,8 @@ class CamOverlayDrawingAPI extends EventEmitter {
174
174
  headerView.setInt8(0, 1);
175
175
  headerView.setInt32(1, jsonBuffer.byteLength);
176
176
  const msgBuffer = Buffer.concat([Buffer.from(header), jsonBuffer, data]);
177
- this.ws.send(msgBuffer);
177
+ const arrayBuffer = msgBuffer.buffer.slice(msgBuffer.byteOffset, msgBuffer.byteOffset + msgBuffer.byteLength);
178
+ this.ws.send(arrayBuffer);
178
179
  this.sendMessages[this.callId] = { resolve, reject, sentTimestamp: Date.now() };
179
180
  }
180
181
  catch (err) {
@@ -1,42 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import { CamOverlayDrawingAPI, TAlign, TCairoCreateResponse, TUploadImageResponse } from '../CamOverlayDrawingAPI';
4
- import ResourceManager from './ResourceManager';
5
- export type TRgb = [number, number, number];
6
- export type TRgba = [number, number, number, number];
7
- export type TTmf = 'TFM_OVERFLOW' | 'TFM_SCALE' | 'TFM_TRUNCATE';
8
- export type TObjectFitType = 'fill' | 'fit' | 'none';
9
- export type TFrameOptions = {
10
- enabled?: boolean;
11
- x: number;
12
- y: number;
13
- width: number;
14
- height: number;
15
- text?: string;
16
- fontColor?: TRgb;
17
- font?: string;
18
- bgColor?: TRgba;
19
- bgImage?: string;
20
- bgType?: TObjectFitType;
21
- borderRadius?: number;
22
- borderWidth?: number;
23
- borderColor?: TRgba;
24
- customDraw?: TDrawingCallback;
25
- layer?: number;
26
- };
27
- export type TFrameInfo = {
28
- width: number;
29
- height: number;
30
- };
31
- export type TDrawingCallback = (cod: CamOverlayDrawingAPI, cairo: string, info: TFrameInfo) => Promise<void>;
32
- export interface Frame {
33
- on(event: 'open', listener: () => void): this;
34
- on(event: 'close', listener: () => void): this;
35
- on(event: 'layoutChanged', listener: () => void): this;
36
- emit(event: 'open'): boolean;
37
- emit(event: 'close'): boolean;
38
- emit(event: 'layoutChanged'): boolean;
39
- }
3
+ import { CamOverlayDrawingAPI } from '../CamOverlayDrawingAPI';
4
+ import { TAlign, TCairoCreateResponse, TUploadImageResponse } from '../../types/CamOverlayDrawingAPI';
5
+ import { ResourceManager } from './ResourceManager';
6
+ import { TBg, TBorder, TDrawingCallback, TFrame, TFrameOptions, TObjectFitType, TRgb, TRgba, TText, TTmf } from '../../types/CamOverlayPainter';
40
7
  export declare class Frame extends EventEmitter {
41
8
  protected enabled: boolean;
42
9
  protected posX: number;
@@ -64,17 +31,21 @@ export declare class Frame extends EventEmitter {
64
31
  disable(): void;
65
32
  setFramePosition(x: number, y: number): void;
66
33
  setFrameSize(width: number, height: number): void;
34
+ getFrameInfo(): TFrame;
67
35
  setText(text: string, align: TAlign, textType?: TTmf, fontColor?: TRgb): void;
68
36
  setFontColor(fontColor: TRgb): void;
69
37
  setFont(fontName: string): void;
70
38
  setFontData(fontData: TCairoCreateResponse): void;
39
+ getTextInfo(): TText;
71
40
  setBgColor(color: TRgba): void;
72
41
  setBgImage(imageName: string, type?: TObjectFitType): void;
73
42
  setBgImageData(imageData: TUploadImageResponse, type?: TObjectFitType): void;
74
43
  setBgType(type: TObjectFitType): void;
44
+ getBgInfo(): TBg;
75
45
  setBorderRadius(radius: number): void;
76
46
  setBorderWidth(width: number): void;
77
47
  setBorderColor(color: TRgba): void;
48
+ getBorderInfo(): TBorder;
78
49
  setCustomDraw(customDraw: TDrawingCallback): void;
79
50
  resetFont(): void;
80
51
  resetBgColor(): void;
@@ -57,6 +57,14 @@ class Frame extends events_1.EventEmitter {
57
57
  this.width = width;
58
58
  this.height = height;
59
59
  }
60
+ getFrameInfo() {
61
+ return {
62
+ x: this.posX,
63
+ y: this.posY,
64
+ width: this.width,
65
+ height: this.height,
66
+ };
67
+ }
60
68
  setText(text, align, textType = 'TFM_OVERFLOW', fontColor) {
61
69
  this.text = text;
62
70
  this.align = align;
@@ -76,6 +84,16 @@ class Frame extends events_1.EventEmitter {
76
84
  this.fontName = undefined;
77
85
  this.font = fontData;
78
86
  }
87
+ getTextInfo() {
88
+ return {
89
+ text: this.text,
90
+ textAlign: this.align,
91
+ textType: this.textType,
92
+ fontColor: this.fontColor,
93
+ font: this.font,
94
+ fontName: this.fontName,
95
+ };
96
+ }
79
97
  setBgColor(color) {
80
98
  this.bgColor = color;
81
99
  }
@@ -92,6 +110,14 @@ class Frame extends events_1.EventEmitter {
92
110
  setBgType(type) {
93
111
  this.bgType = type;
94
112
  }
113
+ getBgInfo() {
114
+ return {
115
+ bgColor: this.bgColor,
116
+ bgImage: this.bgImage,
117
+ bgImageName: this.bgImageName,
118
+ bgType: this.bgType,
119
+ };
120
+ }
95
121
  setBorderRadius(radius) {
96
122
  this.borderRadius = radius;
97
123
  }
@@ -101,6 +127,13 @@ class Frame extends events_1.EventEmitter {
101
127
  setBorderColor(color) {
102
128
  this.borderColor = color;
103
129
  }
130
+ getBorderInfo() {
131
+ return {
132
+ borderRadius: this.borderRadius,
133
+ borderWidth: this.borderWidth,
134
+ borderColor: this.borderColor,
135
+ };
136
+ }
104
137
  setCustomDraw(customDraw) {
105
138
  this.customDraw = customDraw;
106
139
  }
@@ -1,23 +1,8 @@
1
- import { CamOverlayDrawingAPI, CamOverlayDrawingOptions } from '../CamOverlayDrawingAPI';
2
- import ResourceManager from './ResourceManager';
3
- import { Frame, TFrameOptions } from './Frame';
4
- export declare const COORD: {
5
- readonly top_left: readonly [-1, -1];
6
- readonly center_left: readonly [-1, 0];
7
- readonly bottom_left: readonly [-1, 1];
8
- readonly top_center: readonly [0, -1];
9
- readonly center: readonly [0, 0];
10
- readonly bottom_center: readonly [0, 1];
11
- readonly top_right: readonly [1, -1];
12
- readonly center_right: readonly [1, 0];
13
- readonly bottom_right: readonly [1, 1];
14
- };
15
- type TCoAlignment = keyof typeof COORD;
16
- export type TPainterOptions = TFrameOptions & {
17
- screenWidth: number;
18
- screenHeight: number;
19
- coAlignment: TCoAlignment;
20
- };
1
+ import { CamOverlayDrawingAPI } from '../CamOverlayDrawingAPI';
2
+ import { CamOverlayDrawingOptions } from '../../types/CamOverlayDrawingAPI';
3
+ import { ResourceManager } from './ResourceManager';
4
+ import { Frame } from './Frame';
5
+ import { TCoAlignment, TPainterOptions } from '../../types/CamOverlayPainter';
21
6
  export declare class Painter extends Frame {
22
7
  private screenWidth;
23
8
  private screenHeight;
@@ -45,4 +30,3 @@ export declare class Painter extends Frame {
45
30
  private cleanupSurface;
46
31
  private positionConvertor;
47
32
  }
48
- export { Frame, TFrameOptions as FrameOptions, ResourceManager, CamOverlayDrawingOptions };
@@ -1,22 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResourceManager = exports.Frame = exports.Painter = exports.COORD = void 0;
3
+ exports.Painter = void 0;
4
4
  const CamOverlayDrawingAPI_1 = require("../CamOverlayDrawingAPI");
5
5
  const ResourceManager_1 = require("./ResourceManager");
6
- exports.ResourceManager = ResourceManager_1.default;
7
6
  const Frame_1 = require("./Frame");
8
- Object.defineProperty(exports, "Frame", { enumerable: true, get: function () { return Frame_1.Frame; } });
9
- exports.COORD = {
10
- top_left: [-1, -1],
11
- center_left: [-1, 0],
12
- bottom_left: [-1, 1],
13
- top_center: [0, -1],
14
- center: [0, 0],
15
- bottom_center: [0, 1],
16
- top_right: [1, -1],
17
- center_right: [1, 0],
18
- bottom_right: [1, 1],
19
- };
7
+ const CamOverlayPainter_1 = require("../../types/CamOverlayPainter");
20
8
  class Painter extends Frame_1.Frame {
21
9
  screenWidth;
22
10
  screenHeight;
@@ -27,11 +15,11 @@ class Painter extends Frame_1.Frame {
27
15
  layers = [];
28
16
  constructor(opt, coopt) {
29
17
  super(opt);
30
- this.coAlignment = exports.COORD[opt.coAlignment];
18
+ this.coAlignment = CamOverlayPainter_1.COORD[opt.coAlignment];
31
19
  this.screenWidth = opt.screenWidth;
32
20
  this.screenHeight = opt.screenHeight;
33
21
  this.cod = new CamOverlayDrawingAPI_1.CamOverlayDrawingAPI(coopt);
34
- this.rm = new ResourceManager_1.default(this.cod);
22
+ this.rm = new ResourceManager_1.ResourceManager(this.cod);
35
23
  }
36
24
  get camOverlayDrawingAPI() {
37
25
  return this.cod;
@@ -71,7 +59,7 @@ class Painter extends Frame_1.Frame {
71
59
  this.screenHeight = sh;
72
60
  }
73
61
  setCoAlignment(coAlignment) {
74
- this.coAlignment = exports.COORD[coAlignment];
62
+ this.coAlignment = CamOverlayPainter_1.COORD[coAlignment];
75
63
  }
76
64
  layoutChanged() {
77
65
  this.refreshLayers = true;
@@ -0,0 +1,15 @@
1
+ import { CamOverlayDrawingAPI } from '../CamOverlayDrawingAPI';
2
+ import { TUploadImageResponse, TCairoCreateResponse } from '../../types/CamOverlayDrawingAPI';
3
+ export declare class ResourceManager {
4
+ private co;
5
+ private imgFileNames;
6
+ private fontFileNames;
7
+ private images;
8
+ private fonts;
9
+ constructor(co: CamOverlayDrawingAPI);
10
+ registerImage(moniker: string, fileName: string): void;
11
+ registerFont(moniker: string, fileName: string): void;
12
+ image(moniker: string): Promise<TUploadImageResponse | undefined>;
13
+ font(moniker: string): Promise<TCairoCreateResponse | undefined>;
14
+ clear(): void;
15
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ResourceManager = void 0;
27
+ const fs = __importStar(require("fs/promises"));
28
+ class ResourceManager {
29
+ co;
30
+ imgFileNames = {};
31
+ fontFileNames = {};
32
+ images = {};
33
+ fonts = {};
34
+ constructor(co) {
35
+ this.co = co;
36
+ }
37
+ registerImage(moniker, fileName) {
38
+ this.imgFileNames[moniker] = process.env.INSTALL_PATH + '/images/' + fileName;
39
+ }
40
+ registerFont(moniker, fileName) {
41
+ this.fontFileNames[moniker] = process.env.INSTALL_PATH + '/fonts/' + fileName;
42
+ }
43
+ async image(moniker) {
44
+ if (this.images[moniker] !== undefined) {
45
+ return this.images[moniker];
46
+ }
47
+ const path = this.imgFileNames[moniker];
48
+ if (path !== undefined) {
49
+ const imgData = await fs.readFile(path);
50
+ this.images[moniker] = await this.co.uploadImageData(imgData);
51
+ return this.images[moniker];
52
+ }
53
+ throw new Error('Error! Unknown image requested!');
54
+ }
55
+ async font(moniker) {
56
+ if (this.fonts[moniker] !== undefined) {
57
+ return this.fonts[moniker];
58
+ }
59
+ const path = this.fontFileNames[moniker];
60
+ if (path !== undefined) {
61
+ const fontData = await fs.readFile(path);
62
+ this.fonts[moniker] = await this.co.uploadFontData(fontData);
63
+ return this.fonts[moniker];
64
+ }
65
+ throw new Error('Error! Unknown font requested!');
66
+ }
67
+ clear() {
68
+ this.images = {};
69
+ this.fonts = {};
70
+ }
71
+ }
72
+ exports.ResourceManager = ResourceManager;
@@ -0,0 +1,31 @@
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { Options } from '../internal/types';
4
+ import { TCamScripterEvent, TEventDeclaration, TEventUndeclaration, TCamScripterResponse } from '../types/CamScripterAPICameraEventsGenerator';
5
+ export declare class CamScripterAPICameraEventsGenerator extends EventEmitter {
6
+ private tls;
7
+ private tlsInsecure;
8
+ private ip;
9
+ private port;
10
+ private user;
11
+ private pass;
12
+ private callId;
13
+ private sendMessages;
14
+ private timeoutCheckTimer;
15
+ private wsConnected;
16
+ private ws;
17
+ constructor(options?: Options);
18
+ connect(): void;
19
+ disconnect(): void;
20
+ declareEvent(eventDeclaration: TEventDeclaration): Promise<TCamScripterResponse>;
21
+ undeclareEvent(eventUndeclaration: TEventUndeclaration): Promise<TCamScripterResponse>;
22
+ sendEvent(event: TCamScripterEvent): Promise<TCamScripterResponse>;
23
+ private createWsClient;
24
+ private incomingWsMessageHandler;
25
+ private sendMessage;
26
+ private startMsgsTimeoutCheck;
27
+ private stopMsgsTimeoutCheck;
28
+ private reconnectWithError;
29
+ private reportErr;
30
+ private reportClose;
31
+ }