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.
- package/README.md +143 -38
- package/cjs/CamOverlayAPI.d.ts +863 -27
- package/cjs/CamOverlayAPI.js +135 -92
- package/cjs/CamScripterAPI.d.ts +44 -17
- package/cjs/CamScripterAPI.js +52 -42
- package/cjs/CamStreamerAPI.d.ts +62 -14
- package/cjs/CamStreamerAPI.js +82 -39
- package/cjs/CamSwitcherAPI.d.ts +158 -43
- package/cjs/CamSwitcherAPI.js +138 -122
- package/cjs/PlaneTrackerAPI.d.ts +233 -0
- package/cjs/PlaneTrackerAPI.js +247 -0
- package/cjs/VapixAPI.d.ts +94 -42
- package/cjs/VapixAPI.js +323 -233
- package/cjs/{CreatePackage.js → bin/CreatePackage.js} +44 -18
- package/cjs/errors/errors.d.ts +61 -4
- package/cjs/errors/errors.js +134 -7
- package/cjs/index.d.ts +20 -4
- package/cjs/index.js +28 -5
- package/cjs/internal/ProxyClient.d.ts +8 -9
- package/cjs/internal/ProxyClient.js +28 -32
- package/cjs/internal/WsEvents.d.ts +37 -0
- package/cjs/{CamSwitcherEvents.js → internal/WsEvents.js} +28 -22
- package/cjs/internal/types.d.ts +47 -0
- package/cjs/internal/types.js +2 -0
- package/cjs/internal/utils.d.ts +3 -1
- package/cjs/internal/utils.js +15 -3
- package/cjs/internal/versionCompare.d.ts +2 -2
- package/cjs/node/CamOverlayDrawingAPI.d.ts +41 -0
- package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +28 -20
- package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.d.ts +8 -37
- package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
- package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.d.ts +5 -21
- package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +5 -17
- package/cjs/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
- package/cjs/node/CamOverlayPainter/ResourceManager.js +72 -0
- package/cjs/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
- package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +13 -13
- package/cjs/node/DefaultClient.d.ts +6 -5
- package/cjs/node/DefaultClient.js +10 -12
- package/cjs/{internal → node}/Digest.js +24 -1
- package/cjs/node/Digest.test.js +13 -0
- package/cjs/node/HttpRequestSender.d.ts +1 -0
- package/cjs/node/HttpRequestSender.js +14 -4
- package/cjs/node/HttpServer.d.ts +1 -1
- package/cjs/node/HttpServer.js +29 -6
- package/cjs/node/TimeZoneDaemon.d.ts +6 -0
- package/cjs/node/TimeZoneDaemon.js +29 -0
- package/cjs/node/VapixEvents.d.ts +16 -0
- package/cjs/{VapixEvents.js → node/VapixEvents.js} +10 -10
- package/cjs/node/WsClient.d.ts +9 -18
- package/cjs/node/WsClient.js +27 -20
- package/cjs/node/events/AxisCameraStationEvents.d.ts +12 -0
- package/cjs/node/events/AxisCameraStationEvents.js +53 -0
- package/cjs/node/events/GenetecAgent.d.ts +16 -0
- package/cjs/node/events/GenetecAgent.js +124 -0
- package/cjs/node/index.d.ts +18 -2
- package/cjs/node/index.js +39 -5
- package/cjs/types/CamOverlayAPI/CamOverlayAPI.d.ts +4330 -0
- package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +92 -0
- package/cjs/types/CamOverlayAPI/accuweatherSchema.d.ts +84 -0
- package/cjs/types/CamOverlayAPI/accuweatherSchema.js +47 -0
- package/cjs/types/CamOverlayAPI/customGraphicsSchema.d.ts +700 -0
- package/cjs/types/CamOverlayAPI/customGraphicsSchema.js +72 -0
- package/cjs/types/CamOverlayAPI/imagesSchema.d.ts +95 -0
- package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
- package/cjs/types/CamOverlayAPI/index.d.ts +11 -0
- package/cjs/types/CamOverlayAPI/index.js +27 -0
- package/cjs/types/CamOverlayAPI/infotickerSchema.d.ts +96 -0
- package/cjs/types/CamOverlayAPI/infotickerSchema.js +26 -0
- package/cjs/types/CamOverlayAPI/pipSchema.d.ts +125 -0
- package/cjs/types/CamOverlayAPI/pipSchema.js +39 -0
- package/cjs/types/CamOverlayAPI/ptzCompassSchema.d.ts +96 -0
- package/cjs/types/CamOverlayAPI/ptzCompassSchema.js +26 -0
- package/cjs/types/CamOverlayAPI/ptzSchema.d.ts +118 -0
- package/cjs/types/CamOverlayAPI/ptzSchema.js +12 -0
- package/cjs/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
- package/cjs/types/CamOverlayAPI/scoreBoardSchema.js +132 -0
- package/cjs/types/CamOverlayAPI/screenSharingSchema.d.ts +58 -0
- package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
- package/cjs/types/CamOverlayAPI/serviceCommonTypes.d.ts +145 -0
- package/cjs/types/CamOverlayAPI/serviceCommonTypes.js +91 -0
- package/cjs/types/CamOverlayAPI/webCameraSharingSchema.d.ts +58 -0
- package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +8 -0
- package/cjs/types/CamOverlayDrawingAPI.d.ts +48 -0
- package/cjs/types/CamOverlayDrawingAPI.js +2 -0
- package/cjs/types/CamOverlayPainter.d.ts +76 -0
- package/cjs/types/CamOverlayPainter.js +14 -0
- package/cjs/types/CamScripterAPI.d.ts +86 -23
- package/cjs/types/CamScripterAPI.js +24 -8
- package/cjs/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
- package/cjs/types/CamScripterAPICameraEventsGenerator.js +2 -0
- package/cjs/types/CamStreamerAPI.d.ts +180 -47
- package/cjs/types/CamStreamerAPI.js +34 -3
- package/cjs/types/CamSwitcherAPI.d.ts +145 -66
- package/cjs/types/CamSwitcherAPI.js +38 -1
- package/cjs/{events → types}/GenetecAgent.d.ts +47 -47
- package/cjs/types/GenetecAgent.js +31 -0
- package/cjs/types/PlaneTrackerAPI.d.ts +952 -0
- package/cjs/types/PlaneTrackerAPI.js +320 -0
- package/cjs/types/VapixAPI.d.ts +254 -164
- package/cjs/types/VapixAPI.js +66 -11
- package/cjs/types/VapixEvents.d.ts +15 -0
- package/cjs/types/VapixEvents.js +2 -0
- package/cjs/types/common.d.ts +17 -5
- package/cjs/types/common.js +4 -2
- package/cjs/types/ws/CamOverlayEvents.d.ts +88 -0
- package/cjs/types/ws/CamOverlayEvents.js +19 -0
- package/cjs/types/ws/CamStreamerEvents.d.ts +249 -0
- package/cjs/types/ws/CamStreamerEvents.js +32 -0
- package/cjs/types/ws/PlaneTrackerEvents.d.ts +1637 -0
- package/cjs/types/ws/PlaneTrackerEvents.js +196 -0
- package/cjs/web/DefaultClient.d.ts +7 -5
- package/cjs/web/DefaultClient.js +26 -10
- package/cjs/web/WsClient.d.ts +9 -5
- package/cjs/web/WsClient.js +16 -18
- package/cjs/ws/CamOverlayEvents.d.ts +8 -0
- package/cjs/ws/CamOverlayEvents.js +24 -0
- package/cjs/ws/CamStreamerEvents.d.ts +8 -0
- package/cjs/ws/CamStreamerEvents.js +24 -0
- package/cjs/ws/CamSwitcherEvents.d.ts +8 -0
- package/cjs/ws/CamSwitcherEvents.js +24 -0
- package/cjs/ws/PlaneTrackerEvents.d.ts +9 -0
- package/cjs/ws/PlaneTrackerEvents.js +30 -0
- package/esm/CamOverlayAPI.js +135 -92
- package/esm/CamScripterAPI.js +50 -40
- package/esm/CamStreamerAPI.js +81 -39
- package/esm/CamSwitcherAPI.js +136 -120
- package/esm/PlaneTrackerAPI.js +243 -0
- package/esm/VapixAPI.js +323 -233
- package/esm/{CreatePackage.js → bin/CreatePackage.js} +16 -16
- package/esm/errors/errors.js +116 -6
- package/esm/index.js +20 -4
- package/esm/internal/ProxyClient.js +28 -32
- package/esm/{CamSwitcherEvents.js → internal/WsEvents.js} +26 -20
- package/esm/internal/types.js +1 -0
- package/esm/internal/utils.js +11 -1
- package/esm/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +26 -18
- package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
- package/esm/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +2 -13
- package/esm/{CamOverlayPainter → node/CamOverlayPainter}/ResourceManager.js +7 -5
- package/esm/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +11 -11
- package/esm/node/DefaultClient.js +10 -12
- package/esm/node/Digest.test.js +11 -0
- package/esm/node/HttpRequestSender.js +14 -4
- package/esm/node/HttpServer.js +1 -1
- package/esm/node/TimeZoneDaemon.js +25 -0
- package/esm/{VapixEvents.js → node/VapixEvents.js} +10 -10
- package/esm/node/WsClient.js +22 -15
- package/esm/{events → node/events}/AxisCameraStationEvents.js +18 -13
- package/esm/node/events/GenetecAgent.js +120 -0
- package/esm/node/index.js +18 -2
- package/esm/types/CamOverlayAPI/CamOverlayAPI.js +76 -0
- package/esm/types/CamOverlayAPI/accuweatherSchema.js +44 -0
- package/esm/types/CamOverlayAPI/customGraphicsSchema.js +69 -0
- package/esm/types/CamOverlayAPI/imagesSchema.js +6 -0
- package/esm/types/CamOverlayAPI/index.js +11 -0
- package/esm/types/CamOverlayAPI/infotickerSchema.js +23 -0
- package/esm/types/CamOverlayAPI/pipSchema.js +36 -0
- package/esm/types/CamOverlayAPI/ptzCompassSchema.js +23 -0
- package/esm/types/CamOverlayAPI/ptzSchema.js +9 -0
- package/esm/types/CamOverlayAPI/scoreBoardSchema.js +129 -0
- package/esm/types/CamOverlayAPI/screenSharingSchema.js +5 -0
- package/esm/types/CamOverlayAPI/serviceCommonTypes.js +88 -0
- package/esm/types/CamOverlayAPI/webCameraSharingSchema.js +5 -0
- package/esm/types/CamOverlayDrawingAPI.js +1 -0
- package/esm/types/CamOverlayPainter.js +11 -0
- package/esm/types/CamScripterAPI.js +23 -7
- package/esm/types/CamScripterAPICameraEventsGenerator.js +1 -0
- package/esm/types/CamStreamerAPI.js +33 -2
- package/esm/types/CamSwitcherAPI.js +38 -1
- package/esm/types/GenetecAgent.js +28 -0
- package/esm/types/PlaneTrackerAPI.js +317 -0
- package/esm/types/VapixAPI.js +65 -10
- package/esm/types/VapixEvents.js +1 -0
- package/esm/types/common.js +3 -1
- package/esm/types/ws/CamOverlayEvents.js +16 -0
- package/esm/types/ws/CamStreamerEvents.js +29 -0
- package/esm/types/ws/PlaneTrackerEvents.js +193 -0
- package/esm/web/DefaultClient.js +26 -10
- package/esm/web/WsClient.js +16 -18
- package/esm/ws/CamOverlayEvents.js +20 -0
- package/esm/ws/CamStreamerEvents.js +20 -0
- package/esm/ws/CamSwitcherEvents.js +20 -0
- package/esm/ws/PlaneTrackerEvents.js +26 -0
- package/package.json +44 -11
- package/types/CamOverlayAPI.d.ts +867 -0
- package/types/CamScripterAPI.d.ts +46 -0
- package/types/CamStreamerAPI.d.ts +64 -0
- package/types/CamSwitcherAPI.d.ts +167 -0
- package/types/PlaneTrackerAPI.d.ts +233 -0
- package/types/VapixAPI.d.ts +118 -0
- package/types/bin/CreatePackage.d.ts +1 -0
- package/types/errors/errors.d.ts +91 -0
- package/types/index.d.ts +27 -0
- package/types/internal/ProxyClient.d.ts +10 -0
- package/types/internal/WsEvents.d.ts +37 -0
- package/types/internal/types.d.ts +47 -0
- package/{esm → types}/internal/utils.d.ts +3 -1
- package/{esm → types}/internal/versionCompare.d.ts +2 -2
- package/types/node/CamOverlayDrawingAPI.d.ts +41 -0
- package/{esm → types/node}/CamOverlayPainter/Frame.d.ts +8 -37
- package/{esm → types/node}/CamOverlayPainter/Painter.d.ts +5 -21
- package/types/node/CamOverlayPainter/ResourceManager.d.ts +15 -0
- package/types/node/CamScripterAPICameraEventsGenerator.d.ts +31 -0
- package/types/node/DefaultClient.d.ts +16 -0
- package/types/node/Digest.test.d.ts +1 -0
- package/{esm → types}/node/HttpRequestSender.d.ts +1 -0
- package/{esm → types}/node/HttpServer.d.ts +1 -1
- package/types/node/TimeZoneDaemon.d.ts +6 -0
- package/types/node/VapixEvents.d.ts +16 -0
- package/types/node/WsClient.d.ts +30 -0
- package/types/node/events/AxisCameraStationEvents.d.ts +12 -0
- package/types/node/events/GenetecAgent.d.ts +16 -0
- package/types/node/index.d.ts +18 -0
- package/types/types/CamOverlayAPI/CamOverlayAPI.d.ts +4330 -0
- package/types/types/CamOverlayAPI/accuweatherSchema.d.ts +84 -0
- package/types/types/CamOverlayAPI/customGraphicsSchema.d.ts +700 -0
- package/types/types/CamOverlayAPI/imagesSchema.d.ts +95 -0
- package/types/types/CamOverlayAPI/index.d.ts +11 -0
- package/types/types/CamOverlayAPI/infotickerSchema.d.ts +96 -0
- package/types/types/CamOverlayAPI/pipSchema.d.ts +125 -0
- package/types/types/CamOverlayAPI/ptzCompassSchema.d.ts +96 -0
- package/types/types/CamOverlayAPI/ptzSchema.d.ts +118 -0
- package/types/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
- package/types/types/CamOverlayAPI/screenSharingSchema.d.ts +58 -0
- package/types/types/CamOverlayAPI/serviceCommonTypes.d.ts +145 -0
- package/types/types/CamOverlayAPI/webCameraSharingSchema.d.ts +58 -0
- package/types/types/CamOverlayDrawingAPI.d.ts +48 -0
- package/types/types/CamOverlayPainter.d.ts +76 -0
- package/types/types/CamScripterAPI.d.ts +130 -0
- package/types/types/CamScripterAPICameraEventsGenerator.d.ts +45 -0
- package/types/types/CamStreamerAPI.d.ts +272 -0
- package/{esm → types}/types/CamSwitcherAPI.d.ts +145 -66
- package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
- package/types/types/PlaneTrackerAPI.d.ts +952 -0
- package/{esm → types}/types/VapixAPI.d.ts +254 -164
- package/types/types/VapixEvents.d.ts +15 -0
- package/{esm → types}/types/common.d.ts +17 -5
- package/types/types/ws/CamOverlayEvents.d.ts +88 -0
- package/types/types/ws/CamStreamerEvents.d.ts +249 -0
- package/types/types/ws/PlaneTrackerEvents.d.ts +1637 -0
- package/types/web/DefaultClient.d.ts +8 -0
- package/types/web/WsClient.d.ts +17 -0
- package/types/ws/CamOverlayEvents.d.ts +8 -0
- package/types/ws/CamStreamerEvents.d.ts +8 -0
- package/types/ws/CamSwitcherEvents.d.ts +8 -0
- package/types/ws/PlaneTrackerEvents.d.ts +9 -0
- package/cjs/CamOverlayDrawingAPI.d.ts +0 -86
- package/cjs/CamOverlayPainter/ResourceManager.d.ts +0 -14
- package/cjs/CamOverlayPainter/ResourceManager.js +0 -46
- package/cjs/CamScripterAPICameraEventsGenerator.d.ts +0 -74
- package/cjs/CamSwitcherEvents.d.ts +0 -18
- package/cjs/VapixEvents.d.ts +0 -43
- package/cjs/events/AxisCameraStationEvents.d.ts +0 -9
- package/cjs/events/AxisCameraStationEvents.js +0 -48
- package/cjs/events/GenetecAgent.js +0 -123
- package/cjs/internal/common.d.ts +0 -39
- package/cjs/internal/common.js +0 -27
- package/cjs/node/WsEventClient.d.ts +0 -13
- package/cjs/node/WsEventClient.js +0 -22
- package/cjs/types/CamOverlayAPI.d.ts +0 -188
- package/cjs/types/CamOverlayAPI.js +0 -47
- package/esm/CamOverlayAPI.d.ts +0 -31
- package/esm/CamOverlayDrawingAPI.d.ts +0 -86
- package/esm/CamOverlayPainter/ResourceManager.d.ts +0 -14
- package/esm/CamScripterAPI.d.ts +0 -19
- package/esm/CamScripterAPICameraEventsGenerator.d.ts +0 -74
- package/esm/CamStreamerAPI.d.ts +0 -16
- package/esm/CamSwitcherAPI.d.ts +0 -52
- package/esm/CamSwitcherEvents.d.ts +0 -18
- package/esm/VapixAPI.d.ts +0 -66
- package/esm/VapixEvents.d.ts +0 -43
- package/esm/errors/errors.d.ts +0 -34
- package/esm/events/AxisCameraStationEvents.d.ts +0 -9
- package/esm/events/GenetecAgent.js +0 -119
- package/esm/index.d.ts +0 -11
- package/esm/internal/ProxyClient.d.ts +0 -11
- package/esm/internal/common.d.ts +0 -39
- package/esm/internal/common.js +0 -20
- package/esm/node/DefaultClient.d.ts +0 -15
- package/esm/node/WsClient.d.ts +0 -39
- package/esm/node/WsEventClient.d.ts +0 -13
- package/esm/node/WsEventClient.js +0 -18
- package/esm/types/CamOverlayAPI.d.ts +0 -188
- package/esm/types/CamOverlayAPI.js +0 -44
- package/esm/types/CamScripterAPI.d.ts +0 -67
- package/esm/types/CamStreamerAPI.d.ts +0 -139
- package/esm/web/DefaultClient.d.ts +0 -6
- package/esm/web/WsClient.d.ts +0 -13
- package/esm/web/index.d.ts +0 -2
- /package/cjs/{CreatePackage.d.ts → bin/CreatePackage.d.ts} +0 -0
- /package/cjs/{internal → node}/Digest.d.ts +0 -0
- /package/{esm/CreatePackage.d.ts → cjs/node/Digest.test.d.ts} +0 -0
- /package/cjs/types/{CamSwitcherEvents.d.ts → ws/CamSwitcherEvents.d.ts} +0 -0
- /package/cjs/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
- /package/esm/{internal → node}/Digest.js +0 -0
- /package/esm/types/{CamSwitcherEvents.js → ws/CamSwitcherEvents.js} +0 -0
- /package/{esm → types}/internal/constants.d.ts +0 -0
- /package/{esm → types}/internal/transformers.d.ts +0 -0
- /package/{esm/internal → types/node}/Digest.d.ts +0 -0
- /package/{esm/types → types/types/ws}/CamSwitcherEvents.d.ts +0 -0
- /package/{esm/node → types/web}/index.d.ts +0 -0
package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CamScripterAPICameraEventsGenerator = void 0;
|
|
4
|
-
const
|
|
5
|
-
const WsClient_1 = require("./
|
|
6
|
-
class CamScripterAPICameraEventsGenerator extends EventEmitter {
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
const WsClient_1 = require("./WsClient");
|
|
6
|
+
class CamScripterAPICameraEventsGenerator extends events_1.EventEmitter {
|
|
7
7
|
tls;
|
|
8
8
|
tlsInsecure;
|
|
9
9
|
ip;
|
|
@@ -27,14 +27,14 @@ class CamScripterAPICameraEventsGenerator extends EventEmitter {
|
|
|
27
27
|
this.sendMessages = {};
|
|
28
28
|
this.wsConnected = false;
|
|
29
29
|
this.createWsClient();
|
|
30
|
-
EventEmitter.call(this);
|
|
30
|
+
events_1.EventEmitter.call(this);
|
|
31
31
|
}
|
|
32
32
|
connect() {
|
|
33
33
|
this.ws.open();
|
|
34
34
|
this.startMsgsTimeoutCheck();
|
|
35
35
|
}
|
|
36
36
|
disconnect() {
|
|
37
|
-
this.ws.
|
|
37
|
+
this.ws.destroy();
|
|
38
38
|
this.stopMsgsTimeoutCheck();
|
|
39
39
|
}
|
|
40
40
|
declareEvent(eventDeclaration) {
|
|
@@ -70,21 +70,21 @@ class CamScripterAPICameraEventsGenerator extends EventEmitter {
|
|
|
70
70
|
protocol: 'camera-events',
|
|
71
71
|
};
|
|
72
72
|
this.ws = new WsClient_1.WsClient(options);
|
|
73
|
-
this.ws.
|
|
73
|
+
this.ws.onOpen = () => {
|
|
74
74
|
this.wsConnected = true;
|
|
75
75
|
this.emit('open');
|
|
76
|
-
}
|
|
77
|
-
this.ws.
|
|
78
|
-
this.ws.
|
|
76
|
+
};
|
|
77
|
+
this.ws.onMessage = (data) => this.incomingWsMessageHandler(data.toString());
|
|
78
|
+
this.ws.onError = (error) => {
|
|
79
79
|
this.reportErr(error);
|
|
80
|
-
}
|
|
81
|
-
this.ws.
|
|
80
|
+
};
|
|
81
|
+
this.ws.onClose = () => {
|
|
82
82
|
this.wsConnected = false;
|
|
83
83
|
this.reportClose();
|
|
84
|
-
}
|
|
84
|
+
};
|
|
85
85
|
}
|
|
86
86
|
incomingWsMessageHandler(msgData) {
|
|
87
|
-
const dataJSON = JSON.parse(msgData
|
|
87
|
+
const dataJSON = JSON.parse(msgData);
|
|
88
88
|
let errorResponse;
|
|
89
89
|
if ('error' in dataJSON) {
|
|
90
90
|
errorResponse = dataJSON;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { IClient, HttpOptions, TGetParams, TPostParams } from '../internal/types';
|
|
4
|
+
import { FormData as UndiciFormData, Response as UndiciResponse } from 'undici';
|
|
5
|
+
export declare class DefaultClient implements IClient<UndiciResponse, UndiciFormData | Buffer> {
|
|
4
6
|
private tls;
|
|
5
7
|
private ip;
|
|
6
8
|
private port;
|
|
@@ -8,8 +10,7 @@ export declare class DefaultClient implements IClient {
|
|
|
8
10
|
private pass;
|
|
9
11
|
private httpRequestSender;
|
|
10
12
|
constructor(opt?: HttpOptions);
|
|
11
|
-
get
|
|
12
|
-
|
|
13
|
-
post(path: string, data: string | FormData | Buffer, parameters?: TParameters, headers?: Record<string, string>): Promise<import("undici").Response>;
|
|
13
|
+
get(params: TGetParams): Promise<UndiciResponse>;
|
|
14
|
+
post(params: TPostParams<UndiciFormData | Buffer>): Promise<UndiciResponse>;
|
|
14
15
|
private getBaseConnectionParams;
|
|
15
16
|
}
|
|
@@ -25,29 +25,27 @@ class DefaultClient {
|
|
|
25
25
|
}
|
|
26
26
|
this.httpRequestSender = new HttpRequestSender_1.HttpRequestSender(agentOptions);
|
|
27
27
|
}
|
|
28
|
-
get
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
async get(path, parameters = {}, headers) {
|
|
32
|
-
const options = this.getBaseConnectionParams('GET', path, parameters);
|
|
33
|
-
options.headers = headers;
|
|
28
|
+
get(params) {
|
|
29
|
+
const { path, parameters, headers, timeout } = params;
|
|
30
|
+
const options = this.getBaseConnectionParams('GET', path, parameters, headers, timeout);
|
|
34
31
|
return this.httpRequestSender.sendRequest(options);
|
|
35
32
|
}
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
options
|
|
33
|
+
post(params) {
|
|
34
|
+
const { path, data, parameters, headers, timeout } = params;
|
|
35
|
+
const options = this.getBaseConnectionParams('POST', path, parameters, headers, timeout);
|
|
39
36
|
return this.httpRequestSender.sendRequest(options, data);
|
|
40
37
|
}
|
|
41
|
-
getBaseConnectionParams(method, path, params) {
|
|
42
|
-
const pathName = (0, utils_1.addParametersToPath)(path, params);
|
|
38
|
+
getBaseConnectionParams(method, path, params, headers, timeout) {
|
|
43
39
|
return {
|
|
44
40
|
method: method,
|
|
45
41
|
protocol: this.tls ? 'https:' : 'http:',
|
|
46
42
|
host: this.ip,
|
|
47
43
|
port: this.port,
|
|
48
|
-
path:
|
|
44
|
+
path: (0, utils_1.addParametersToPath)(path, params),
|
|
49
45
|
user: this.user,
|
|
50
46
|
pass: this.pass,
|
|
47
|
+
headers,
|
|
48
|
+
timeout,
|
|
51
49
|
};
|
|
52
50
|
}
|
|
53
51
|
}
|
|
@@ -1,7 +1,30 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.Digest = void 0;
|
|
4
|
-
const crypto = require("crypto");
|
|
27
|
+
const crypto = __importStar(require("crypto"));
|
|
5
28
|
class Digest {
|
|
6
29
|
nonceCount = 1;
|
|
7
30
|
getAuthHeader(user, pass, method, uri, wwwAuthenticateHeader) {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Digest_1 = require("./Digest");
|
|
4
|
+
const globals_1 = require("@jest/globals");
|
|
5
|
+
(0, globals_1.describe)('Digest', () => {
|
|
6
|
+
(0, globals_1.describe)('getAuthHeader', () => {
|
|
7
|
+
(0, globals_1.test)('Checks, that Digest.getAuthHeader() returns correct value.', () => {
|
|
8
|
+
const testString = 'Digest realm="testrealm@host.com", qop="auth,auth-int", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41"';
|
|
9
|
+
const value = 'Digest username="root",realm="testrealm@host.com",nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",uri="www.cz",response="63f54af3ce5cf193a7435d5c68625472",qop=auth,nc=00000001,cnonce="162d50aa594e9648"';
|
|
10
|
+
(0, globals_1.expect)(new Digest_1.Digest().getAuthHeader('root', 'pass', 'GET', 'www.cz', testString)).toBe(value);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HttpRequestSender = void 0;
|
|
4
|
-
const Digest_1 = require("
|
|
4
|
+
const Digest_1 = require("./Digest");
|
|
5
5
|
const undici_1 = require("undici");
|
|
6
6
|
class HttpRequestSender {
|
|
7
7
|
agent;
|
|
@@ -11,8 +11,18 @@ class HttpRequestSender {
|
|
|
11
11
|
connect: { rejectUnauthorized: agentOptions?.rejectUnaurhorized, keepAlive: agentOptions?.keepAlive },
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
sendRequest(options, postData) {
|
|
15
|
-
|
|
14
|
+
async sendRequest(options, postData) {
|
|
15
|
+
const stackHolder = { stack: '' };
|
|
16
|
+
Error.captureStackTrace(stackHolder, this.sendRequest);
|
|
17
|
+
try {
|
|
18
|
+
return await this.sendRequestWithAuth(options, postData);
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
if (err instanceof Error) {
|
|
22
|
+
err.stack = `${err.stack}\nCaptured at:\n${stackHolder.stack}`;
|
|
23
|
+
}
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
16
26
|
}
|
|
17
27
|
async sendRequestWithAuth(options, postData, wwwAuthenticateHeader) {
|
|
18
28
|
options.timeout ??= 10000;
|
|
@@ -82,7 +92,7 @@ class HttpRequestSender {
|
|
|
82
92
|
return authData.digest.getAuthHeader(options.user, options.pass, options.method ?? 'GET', options.path, authData.wwwAuthenticateHeader);
|
|
83
93
|
}
|
|
84
94
|
else {
|
|
85
|
-
return `Basic ${
|
|
95
|
+
return `Basic ${Buffer.from(`${options.user}:${options.pass}`).toString('base64')}`;
|
|
86
96
|
}
|
|
87
97
|
}
|
|
88
98
|
}
|
package/cjs/node/HttpServer.d.ts
CHANGED
package/cjs/node/HttpServer.js
CHANGED
|
@@ -1,12 +1,35 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
exports.HttpServer = void 0;
|
|
4
|
-
const http = require("http");
|
|
5
|
-
const url = require("url");
|
|
6
|
-
const fs = require("fs");
|
|
7
|
-
const path = require("path");
|
|
8
|
-
const
|
|
9
|
-
class HttpServer extends EventEmitter {
|
|
27
|
+
const http = __importStar(require("http"));
|
|
28
|
+
const url = __importStar(require("url"));
|
|
29
|
+
const fs = __importStar(require("fs"));
|
|
30
|
+
const path = __importStar(require("path"));
|
|
31
|
+
const events_1 = require("events");
|
|
32
|
+
class HttpServer extends events_1.EventEmitter {
|
|
10
33
|
host;
|
|
11
34
|
port;
|
|
12
35
|
registeredPaths;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeZoneDaemon = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const util_1 = require("util");
|
|
6
|
+
const execPromise = (0, util_1.promisify)(child_process_1.exec);
|
|
7
|
+
class TimeZoneDaemon {
|
|
8
|
+
checkTimer;
|
|
9
|
+
constructor(checkInterval = 60000) {
|
|
10
|
+
this.checkTimer = setInterval(() => this.checkAndUpdateTimeZone(), checkInterval);
|
|
11
|
+
}
|
|
12
|
+
stop() {
|
|
13
|
+
clearInterval(this.checkTimer);
|
|
14
|
+
}
|
|
15
|
+
async checkAndUpdateTimeZone() {
|
|
16
|
+
try {
|
|
17
|
+
const { stdout } = await execPromise('timedatectl show -p Timezone --value');
|
|
18
|
+
const systemTimezone = stdout.toString().trim();
|
|
19
|
+
const nodeTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
20
|
+
if (systemTimezone !== nodeTimezone) {
|
|
21
|
+
process.env.TZ = systemTimezone;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.error('Error checking/updating timezone:', error);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.TimeZoneDaemon = TimeZoneDaemon;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EventEmitter2 as EventEmitter } from 'eventemitter2';
|
|
2
|
+
import { Options } from '../internal/types';
|
|
3
|
+
export declare class VapixEvents extends EventEmitter {
|
|
4
|
+
private tls;
|
|
5
|
+
private tlsInsecure;
|
|
6
|
+
private ip;
|
|
7
|
+
private port;
|
|
8
|
+
private user;
|
|
9
|
+
private pass;
|
|
10
|
+
private ws;
|
|
11
|
+
constructor(options?: Options);
|
|
12
|
+
connect(): void;
|
|
13
|
+
disconnect(): void;
|
|
14
|
+
private createWsClient;
|
|
15
|
+
private isReservedEventName;
|
|
16
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.VapixEvents = void 0;
|
|
4
4
|
const eventemitter2_1 = require("eventemitter2");
|
|
5
|
-
const WsClient_1 = require("./
|
|
5
|
+
const WsClient_1 = require("./WsClient");
|
|
6
6
|
class VapixEvents extends eventemitter2_1.EventEmitter2 {
|
|
7
7
|
tls;
|
|
8
8
|
tlsInsecure;
|
|
@@ -26,7 +26,7 @@ class VapixEvents extends eventemitter2_1.EventEmitter2 {
|
|
|
26
26
|
this.ws.open();
|
|
27
27
|
}
|
|
28
28
|
disconnect() {
|
|
29
|
-
this.ws.
|
|
29
|
+
this.ws.destroy();
|
|
30
30
|
}
|
|
31
31
|
createWsClient() {
|
|
32
32
|
const options = {
|
|
@@ -39,7 +39,7 @@ class VapixEvents extends eventemitter2_1.EventEmitter2 {
|
|
|
39
39
|
address: '/vapix/ws-data-stream?sources=events',
|
|
40
40
|
};
|
|
41
41
|
this.ws = new WsClient_1.WsClient(options);
|
|
42
|
-
this.ws.
|
|
42
|
+
this.ws.onOpen = () => {
|
|
43
43
|
const topics = [];
|
|
44
44
|
const eventNames = this.eventNames();
|
|
45
45
|
for (const eventName of eventNames) {
|
|
@@ -58,8 +58,8 @@ class VapixEvents extends eventemitter2_1.EventEmitter2 {
|
|
|
58
58
|
},
|
|
59
59
|
};
|
|
60
60
|
this.ws.send(JSON.stringify(topicFilter));
|
|
61
|
-
}
|
|
62
|
-
this.ws.
|
|
61
|
+
};
|
|
62
|
+
this.ws.onMessage = (data) => {
|
|
63
63
|
const dataJSON = JSON.parse(data.toString());
|
|
64
64
|
if (dataJSON.method === 'events:configure') {
|
|
65
65
|
if (dataJSON.error === undefined) {
|
|
@@ -73,13 +73,13 @@ class VapixEvents extends eventemitter2_1.EventEmitter2 {
|
|
|
73
73
|
}
|
|
74
74
|
const eventName = dataJSON.params.notification.topic;
|
|
75
75
|
this.emit(eventName, dataJSON);
|
|
76
|
-
}
|
|
77
|
-
this.ws.
|
|
76
|
+
};
|
|
77
|
+
this.ws.onError = (error) => {
|
|
78
78
|
this.emit('error', error);
|
|
79
|
-
}
|
|
80
|
-
this.ws.
|
|
79
|
+
};
|
|
80
|
+
this.ws.onClose = () => {
|
|
81
81
|
this.emit('close');
|
|
82
|
-
}
|
|
82
|
+
};
|
|
83
83
|
}
|
|
84
84
|
isReservedEventName(eventName) {
|
|
85
85
|
return eventName === 'open' || eventName === 'close' || eventName === 'error';
|
package/cjs/node/WsClient.d.ts
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import * as EventEmitter from 'events';
|
|
4
|
-
import { WsOptions } from '../internal/common';
|
|
5
|
-
export type WsClientOptions = WsOptions & {
|
|
1
|
+
import { IWsClient, Options } from '../internal/types';
|
|
2
|
+
export type WsClientOptions = Options & {
|
|
6
3
|
address: string;
|
|
7
4
|
headers?: Record<string, string>;
|
|
8
5
|
pingInterval?: number;
|
|
9
6
|
protocol?: string;
|
|
10
7
|
};
|
|
11
|
-
export
|
|
12
|
-
on(event: 'open', listener: () => void): this;
|
|
13
|
-
on(event: 'close', listener: () => void): this;
|
|
14
|
-
on(event: 'message', listener: (data: Buffer) => void): this;
|
|
15
|
-
on(event: 'error', listener: (err: Error) => void): this;
|
|
16
|
-
emit(event: 'open'): boolean;
|
|
17
|
-
emit(event: 'close'): boolean;
|
|
18
|
-
emit(event: 'message', data: Buffer): boolean;
|
|
19
|
-
emit(event: 'error', err: Error): boolean;
|
|
20
|
-
}
|
|
21
|
-
export declare class WsClient extends EventEmitter {
|
|
8
|
+
export declare class WsClient implements IWsClient {
|
|
22
9
|
private user;
|
|
23
10
|
private pass;
|
|
24
11
|
private address;
|
|
@@ -32,8 +19,12 @@ export declare class WsClient extends EventEmitter {
|
|
|
32
19
|
private isClosed;
|
|
33
20
|
constructor(options: WsClientOptions);
|
|
34
21
|
open(wwwAuthenticateHeader?: string): void;
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
onMessage: (_: ArrayBuffer | string) => void;
|
|
23
|
+
onOpen: () => void;
|
|
24
|
+
onClose: () => void;
|
|
25
|
+
onError: (error: Error) => void;
|
|
26
|
+
send(data: ArrayBuffer | string): void;
|
|
27
|
+
destroy(): void;
|
|
37
28
|
reconnect(): void;
|
|
38
29
|
private closeWsConnection;
|
|
39
30
|
}
|
package/cjs/node/WsClient.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WsClient = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
class WsClient extends EventEmitter {
|
|
4
|
+
const ws_1 = require("ws");
|
|
5
|
+
const Digest_1 = require("./Digest");
|
|
6
|
+
class WsClient {
|
|
8
7
|
user;
|
|
9
8
|
pass;
|
|
10
9
|
address;
|
|
@@ -17,7 +16,6 @@ class WsClient extends EventEmitter {
|
|
|
17
16
|
ws;
|
|
18
17
|
isClosed = false;
|
|
19
18
|
constructor(options) {
|
|
20
|
-
super();
|
|
21
19
|
const tls = options.tls ?? false;
|
|
22
20
|
const tlsInsecure = options.tlsInsecure ?? false;
|
|
23
21
|
const ip = options.ip ?? '127.0.0.1';
|
|
@@ -42,17 +40,17 @@ class WsClient extends EventEmitter {
|
|
|
42
40
|
}
|
|
43
41
|
this.isClosed = false;
|
|
44
42
|
if (this.protocol === undefined) {
|
|
45
|
-
this.ws = new WebSocket(this.address, this.wsOptions);
|
|
43
|
+
this.ws = new ws_1.WebSocket(this.address, this.wsOptions);
|
|
46
44
|
}
|
|
47
45
|
else {
|
|
48
|
-
this.ws = new WebSocket(this.address, this.protocol, this.wsOptions);
|
|
46
|
+
this.ws = new ws_1.WebSocket(this.address, this.protocol, this.wsOptions);
|
|
49
47
|
}
|
|
50
48
|
this.ws.binaryType = 'arraybuffer';
|
|
51
49
|
this.isAlive = true;
|
|
52
|
-
this.pingTimer = setInterval(
|
|
53
|
-
if ((this.ws && this.ws.readyState !== WebSocket.OPEN) || this.isAlive === false) {
|
|
54
|
-
this.
|
|
55
|
-
|
|
50
|
+
this.pingTimer = setInterval(() => {
|
|
51
|
+
if ((this.ws && this.ws.readyState !== ws_1.WebSocket.OPEN) || this.isAlive === false) {
|
|
52
|
+
this.onError(new Error('Connection timeout'));
|
|
53
|
+
this.closeWsConnection();
|
|
56
54
|
}
|
|
57
55
|
else {
|
|
58
56
|
this.isAlive = false;
|
|
@@ -75,23 +73,32 @@ class WsClient extends EventEmitter {
|
|
|
75
73
|
this.open(res.headers['www-authenticate']);
|
|
76
74
|
}
|
|
77
75
|
else {
|
|
78
|
-
this.
|
|
76
|
+
this.onError(new Error('Status code: ' + res.statusCode));
|
|
79
77
|
this.closeWsConnection();
|
|
80
78
|
}
|
|
81
79
|
});
|
|
82
|
-
this.ws.on('open', () => this.
|
|
83
|
-
this.ws.on('message', (data) =>
|
|
80
|
+
this.ws.on('open', () => this.onOpen());
|
|
81
|
+
this.ws.on('message', (data, isBinary) => {
|
|
82
|
+
const message = isBinary ? data : data.toString();
|
|
83
|
+
this.onMessage(message);
|
|
84
|
+
});
|
|
84
85
|
this.ws.on('error', (error) => {
|
|
85
|
-
this.
|
|
86
|
+
this.onError(error);
|
|
86
87
|
this.closeWsConnection();
|
|
87
88
|
});
|
|
88
89
|
this.ws.on('close', () => this.closeWsConnection());
|
|
89
90
|
}
|
|
90
91
|
catch (error) {
|
|
91
|
-
this.
|
|
92
|
+
this.onError(error instanceof Error ? error : new Error('Unknown error'));
|
|
92
93
|
this.closeWsConnection();
|
|
93
94
|
}
|
|
94
95
|
}
|
|
96
|
+
onMessage = (_) => { };
|
|
97
|
+
onOpen = () => { };
|
|
98
|
+
onClose = () => { };
|
|
99
|
+
onError = (error) => {
|
|
100
|
+
console.error(error);
|
|
101
|
+
};
|
|
95
102
|
send(data) {
|
|
96
103
|
if (this.ws === undefined) {
|
|
97
104
|
throw new Error("This websocket hasn't been opened yet.");
|
|
@@ -100,7 +107,7 @@ class WsClient extends EventEmitter {
|
|
|
100
107
|
this.ws.send(data);
|
|
101
108
|
}
|
|
102
109
|
}
|
|
103
|
-
|
|
110
|
+
destroy() {
|
|
104
111
|
if (this.isClosed) {
|
|
105
112
|
return;
|
|
106
113
|
}
|
|
@@ -122,15 +129,15 @@ class WsClient extends EventEmitter {
|
|
|
122
129
|
}
|
|
123
130
|
wsCopy.removeAllListeners();
|
|
124
131
|
wsCopy.on('error', () => { });
|
|
125
|
-
if (wsCopy.readyState !== WebSocket.CLOSING && wsCopy.readyState !== WebSocket.CLOSED) {
|
|
132
|
+
if (wsCopy.readyState !== ws_1.WebSocket.CLOSING && wsCopy.readyState !== ws_1.WebSocket.CLOSED) {
|
|
126
133
|
wsCopy.close();
|
|
127
134
|
}
|
|
128
135
|
setTimeout(() => {
|
|
129
|
-
if (wsCopy.readyState !== WebSocket.CLOSED) {
|
|
136
|
+
if (wsCopy.readyState !== ws_1.WebSocket.CLOSED) {
|
|
130
137
|
wsCopy.terminate();
|
|
131
138
|
}
|
|
132
139
|
}, 5000);
|
|
133
|
-
this.
|
|
140
|
+
this.onClose();
|
|
134
141
|
}
|
|
135
142
|
catch (err) {
|
|
136
143
|
console.error(err);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HttpOptions } from '../../internal/types';
|
|
2
|
+
import { ProxyClient } from '../../internal/ProxyClient';
|
|
3
|
+
import { THttpRequestOptions, TProxyParams } from '../../types/common';
|
|
4
|
+
import { DefaultClient } from '../DefaultClient';
|
|
5
|
+
export declare class AxisCameraStationEvents {
|
|
6
|
+
private sourceKey;
|
|
7
|
+
private client;
|
|
8
|
+
constructor(clientOptions: HttpOptions, sourceKey: string);
|
|
9
|
+
getClient(proxyParams?: TProxyParams): DefaultClient | ProxyClient<DefaultClient>;
|
|
10
|
+
sendEvent(data: Record<string, string>, eventType: string, options?: THttpRequestOptions): Promise<void>;
|
|
11
|
+
private getDate;
|
|
12
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AxisCameraStationEvents = void 0;
|
|
4
|
+
const utils_1 = require("../../internal/utils");
|
|
5
|
+
const ProxyClient_1 = require("../../internal/ProxyClient");
|
|
6
|
+
const DefaultClient_1 = require("../DefaultClient");
|
|
7
|
+
class AxisCameraStationEvents {
|
|
8
|
+
sourceKey;
|
|
9
|
+
client;
|
|
10
|
+
constructor(clientOptions, sourceKey) {
|
|
11
|
+
this.sourceKey = sourceKey;
|
|
12
|
+
this.client = new DefaultClient_1.DefaultClient(clientOptions);
|
|
13
|
+
}
|
|
14
|
+
getClient(proxyParams) {
|
|
15
|
+
return proxyParams ? new ProxyClient_1.ProxyClient(this.client, proxyParams) : this.client;
|
|
16
|
+
}
|
|
17
|
+
async sendEvent(data, eventType, options) {
|
|
18
|
+
const dateString = this.getDate();
|
|
19
|
+
const event = {
|
|
20
|
+
addExternalDataRequest: {
|
|
21
|
+
occurrenceTime: dateString,
|
|
22
|
+
source: this.sourceKey,
|
|
23
|
+
externalDataType: eventType,
|
|
24
|
+
data: data,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
const eventData = JSON.stringify(event);
|
|
28
|
+
const agent = this.getClient(options?.proxyParams);
|
|
29
|
+
const res = await agent.post({
|
|
30
|
+
path: '/Acs/Api/ExternalDataFacade/AddExternalData',
|
|
31
|
+
data: eventData,
|
|
32
|
+
headers: {
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
'Content-Length': eventData.length.toString(),
|
|
35
|
+
},
|
|
36
|
+
timeout: options?.timeout,
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
throw new Error(`ACS status code: ${res.status}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getDate() {
|
|
43
|
+
const date = new Date();
|
|
44
|
+
const year = date.getUTCFullYear();
|
|
45
|
+
const month = (0, utils_1.pad)(date.getUTCMonth() + 1, 2);
|
|
46
|
+
const day = (0, utils_1.pad)(date.getUTCDate(), 2);
|
|
47
|
+
const hours = (0, utils_1.pad)(date.getUTCHours(), 2);
|
|
48
|
+
const minutes = (0, utils_1.pad)(date.getUTCMinutes(), 2);
|
|
49
|
+
const seconds = (0, utils_1.pad)(date.getUTCSeconds(), 2);
|
|
50
|
+
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.AxisCameraStationEvents = AxisCameraStationEvents;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GenetecAgentOptions, TCameraDetail, TCameraGuidsResponse, TParams } from '../../types/GenetecAgent';
|
|
2
|
+
export declare class GenetecAgent {
|
|
3
|
+
private settings;
|
|
4
|
+
private baseUrl;
|
|
5
|
+
private credentials;
|
|
6
|
+
constructor(options?: GenetecAgentOptions);
|
|
7
|
+
checkConnection(): Promise<void>;
|
|
8
|
+
getAllCameraGuids(): Promise<TCameraGuidsResponse>;
|
|
9
|
+
getCameraDetails(guids: {
|
|
10
|
+
Guid: string;
|
|
11
|
+
}[], parameters: TParams): Promise<TCameraDetail[]>;
|
|
12
|
+
sendBookmark(guids: string[], bookmarkText: string): Promise<void>;
|
|
13
|
+
private getRequestOptions;
|
|
14
|
+
private getTimeStamp;
|
|
15
|
+
private fetchWithTimeout;
|
|
16
|
+
}
|