camstreamerlib 4.0.0-beta.4 → 4.0.0-beta.41
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 +112 -0
- package/cjs/CamOverlayAPI.js +135 -92
- package/cjs/CamScripterAPI.js +52 -42
- package/cjs/CamStreamerAPI.js +83 -39
- package/cjs/CamSwitcherAPI.js +141 -123
- package/cjs/CamSwitcherEvents.js +4 -60
- package/cjs/PlaneTrackerAPI.js +210 -0
- package/cjs/VapixAPI.js +323 -233
- package/cjs/{CreatePackage.js → bin/CreatePackage.js} +22 -19
- package/cjs/errors/errors.js +78 -1
- package/cjs/index.js +17 -4
- package/cjs/internal/ProxyClient.js +28 -32
- package/cjs/internal/WsEvents.js +72 -0
- package/cjs/internal/types.js +2 -0
- package/cjs/internal/utils.js +22 -3
- package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +7 -4
- package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Frame.js +33 -0
- package/cjs/{CamOverlayPainter → node/CamOverlayPainter}/Painter.js +5 -17
- package/cjs/node/CamOverlayPainter/ResourceManager.js +72 -0
- package/cjs/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js} +7 -4
- package/cjs/node/DefaultClient.js +10 -12
- package/cjs/{internal → node}/Digest.js +8 -5
- package/cjs/node/HttpRequestSender.js +14 -4
- package/cjs/node/HttpServer.js +15 -12
- package/cjs/{VapixEvents.js → node/VapixEvents.js} +1 -1
- package/cjs/node/WsClient.js +12 -9
- package/cjs/node/events/AxisCameraStationEvents.js +53 -0
- package/cjs/node/events/GenetecAgent.js +123 -0
- package/cjs/node/index.js +38 -5
- package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +92 -0
- package/cjs/types/CamOverlayAPI/accuweatherSchema.js +47 -0
- package/cjs/types/CamOverlayAPI/customGraphicsSchema.js +72 -0
- package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
- package/cjs/types/CamOverlayAPI/index.js +27 -0
- package/cjs/types/CamOverlayAPI/infotickerSchema.js +26 -0
- package/cjs/types/CamOverlayAPI/pipSchema.js +39 -0
- package/cjs/types/CamOverlayAPI/ptzCompassSchema.js +25 -0
- package/cjs/types/CamOverlayAPI/ptzSchema.js +12 -0
- package/cjs/types/CamOverlayAPI/scoreBoardSchema.js +132 -0
- package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
- package/cjs/types/CamOverlayAPI/serviceCommonTypes.js +91 -0
- package/cjs/types/CamOverlayAPI/webCameraSharingSchema.js +8 -0
- package/cjs/types/CamOverlayDrawingAPI.js +2 -0
- package/cjs/types/CamOverlayPainter.js +14 -0
- package/cjs/types/CamScripterAPI.js +22 -7
- package/cjs/types/CamScripterAPICameraEventsGenerator.js +2 -0
- package/cjs/types/CamStreamerAPI.js +34 -3
- package/cjs/types/CamSwitcherAPI.js +38 -1
- package/cjs/types/CamSwitcherEvents.js +8 -0
- package/cjs/types/GenetecAgent.js +31 -0
- package/cjs/types/PlaneTrackerAPI.js +286 -0
- package/cjs/types/VapixAPI.js +71 -13
- package/cjs/types/VapixEvents.js +2 -0
- package/cjs/web/DefaultClient.js +22 -10
- package/cjs/web/WsClient.js +3 -3
- package/esm/CamOverlayAPI.js +131 -88
- package/esm/CamScripterAPI.js +48 -38
- package/esm/CamStreamerAPI.js +81 -38
- package/esm/CamSwitcherAPI.js +137 -119
- package/esm/CamSwitcherEvents.js +5 -61
- package/esm/PlaneTrackerAPI.js +206 -0
- package/esm/VapixAPI.js +315 -225
- package/esm/{CreatePackage.js → bin/CreatePackage.js} +3 -3
- package/esm/errors/errors.js +66 -0
- package/esm/index.js +12 -3
- package/esm/internal/ProxyClient.js +28 -32
- package/esm/internal/WsEvents.js +68 -0
- package/esm/internal/utils.js +17 -1
- package/esm/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +2 -2
- 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} +2 -2
- package/esm/node/DefaultClient.js +10 -12
- package/esm/{internal → node}/Digest.js +1 -1
- package/esm/node/HttpRequestSender.js +14 -4
- package/esm/node/HttpServer.js +5 -5
- package/esm/{VapixEvents.js → node/VapixEvents.js} +1 -1
- package/esm/node/WsClient.js +3 -3
- package/esm/{events → node/events}/AxisCameraStationEvents.js +18 -13
- package/esm/node/events/GenetecAgent.js +119 -0
- package/esm/node/index.js +17 -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 +22 -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/CamOverlayPainter.js +11 -0
- package/esm/types/CamScripterAPI.js +21 -6
- package/esm/types/CamScripterAPICameraEventsGenerator.js +1 -0
- package/esm/types/CamStreamerAPI.js +33 -2
- package/esm/types/CamSwitcherAPI.js +38 -1
- package/esm/types/CamSwitcherEvents.js +8 -0
- package/esm/types/GenetecAgent.js +28 -0
- package/esm/types/PlaneTrackerAPI.js +283 -0
- package/esm/types/VapixAPI.js +70 -12
- package/esm/types/VapixEvents.js +1 -0
- package/esm/web/DefaultClient.js +22 -10
- package/esm/web/WsClient.js +3 -3
- package/package.json +30 -12
- package/types/CamOverlayAPI.d.ts +865 -0
- package/types/CamScripterAPI.d.ts +47 -0
- package/types/CamStreamerAPI.d.ts +64 -0
- package/types/CamSwitcherAPI.d.ts +167 -0
- package/types/CamSwitcherEvents.d.ts +8 -0
- package/types/PlaneTrackerAPI.d.ts +230 -0
- package/types/VapixAPI.d.ts +118 -0
- package/types/bin/CreatePackage.d.ts +1 -0
- package/types/errors/errors.d.ts +68 -0
- package/types/index.d.ts +20 -0
- package/types/internal/ProxyClient.d.ts +10 -0
- package/types/internal/WsEvents.d.ts +41 -0
- package/types/internal/types.d.ts +45 -0
- package/{cjs → types}/internal/utils.d.ts +4 -1
- package/{cjs → 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/{cjs → 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/{esm → types}/node/HttpRequestSender.d.ts +1 -0
- package/{cjs → types}/node/HttpServer.d.ts +2 -2
- package/types/node/VapixEvents.d.ts +16 -0
- package/{cjs → types}/node/WsClient.d.ts +3 -2
- package/types/node/events/AxisCameraStationEvents.d.ts +12 -0
- package/types/node/events/GenetecAgent.d.ts +16 -0
- package/types/node/index.d.ts +17 -0
- package/types/types/CamOverlayAPI/CamOverlayAPI.d.ts +4321 -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 +93 -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 +115 -36
- package/{cjs → types}/types/CamSwitcherEvents.d.ts +77 -0
- package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
- package/types/types/PlaneTrackerAPI.d.ts +890 -0
- package/{cjs → types}/types/VapixAPI.d.ts +647 -465
- package/types/types/VapixEvents.d.ts +15 -0
- package/{esm → types}/types/common.d.ts +15 -5
- package/types/web/DefaultClient.d.ts +6 -0
- package/cjs/CamOverlayAPI.d.ts +0 -31
- package/cjs/CamOverlayDrawingAPI.d.ts +0 -86
- package/cjs/CamOverlayPainter/Frame.d.ts +0 -96
- package/cjs/CamOverlayPainter/ResourceManager.d.ts +0 -14
- package/cjs/CamOverlayPainter/ResourceManager.js +0 -46
- package/cjs/CamScripterAPI.d.ts +0 -19
- package/cjs/CamScripterAPICameraEventsGenerator.d.ts +0 -74
- package/cjs/CamStreamerAPI.d.ts +0 -16
- package/cjs/CamSwitcherAPI.d.ts +0 -48
- package/cjs/CamSwitcherEvents.d.ts +0 -18
- package/cjs/VapixAPI.d.ts +0 -66
- package/cjs/VapixEvents.d.ts +0 -43
- package/cjs/errors/errors.d.ts +0 -34
- package/cjs/events/AxisCameraStationEvents.d.ts +0 -9
- package/cjs/events/AxisCameraStationEvents.js +0 -48
- package/cjs/events/GenetecAgent.d.ts +0 -174
- package/cjs/events/GenetecAgent.js +0 -123
- package/cjs/index.d.ts +0 -11
- package/cjs/internal/ProxyClient.d.ts +0 -11
- package/cjs/internal/common.d.ts +0 -39
- package/cjs/internal/common.js +0 -27
- package/cjs/node/DefaultClient.d.ts +0 -15
- package/cjs/node/HttpRequestSender.d.ts +0 -28
- 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/cjs/types/CamScripterAPI.d.ts +0 -67
- package/cjs/types/CamStreamerAPI.d.ts +0 -139
- package/cjs/types/CamSwitcherAPI.d.ts +0 -814
- package/cjs/types/common.d.ts +0 -37
- package/cjs/web/DefaultClient.d.ts +0 -6
- package/cjs/web/index.d.ts +0 -2
- package/esm/CamOverlayAPI.d.ts +0 -31
- package/esm/CamOverlayDrawingAPI.d.ts +0 -86
- package/esm/CamOverlayPainter/Painter.d.ts +0 -48
- 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 -48
- 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/Digest.d.ts +0 -4
- 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/internal/constants.d.ts +0 -1
- package/esm/internal/transformers.d.ts +0 -5
- package/esm/internal/utils.d.ts +0 -11
- package/esm/internal/versionCompare.d.ts +0 -6
- package/esm/node/DefaultClient.d.ts +0 -15
- package/esm/node/HttpServer.d.ts +0 -21
- 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/node/index.d.ts +0 -2
- 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/types/CamSwitcherEvents.d.ts +0 -491
- package/esm/types/VapixAPI.d.ts +0 -1683
- 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 → esm/internal/types.js} +0 -0
- /package/esm/{CreatePackage.d.ts → types/CamOverlayDrawingAPI.js} +0 -0
- /package/{cjs → types}/internal/constants.d.ts +0 -0
- /package/{cjs → types}/internal/transformers.d.ts +0 -0
- /package/{cjs/internal → types/node}/Digest.d.ts +0 -0
- /package/{cjs → types}/web/WsClient.d.ts +0 -0
- /package/{cjs/node → types/web}/index.d.ts +0 -0
|
@@ -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,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Digest = void 0;
|
|
4
|
-
const
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
5
8
|
class Digest {
|
|
6
9
|
nonceCount = 1;
|
|
7
10
|
getAuthHeader(user, pass, method, uri, wwwAuthenticateHeader) {
|
|
@@ -13,18 +16,18 @@ class Digest {
|
|
|
13
16
|
const value = arg.substring(pos + 1).trim();
|
|
14
17
|
digestItems[key] = value.replace(/"/g, '');
|
|
15
18
|
}
|
|
16
|
-
const HA1 =
|
|
17
|
-
const HA2 =
|
|
19
|
+
const HA1 = crypto_1.default.createHash('md5').update(`${user}:${digestItems['realm']}:${pass}`).digest('hex');
|
|
20
|
+
const HA2 = crypto_1.default.createHash('md5').update(`${method}:${uri}`).digest('hex');
|
|
18
21
|
const ncValue = ('00000000' + this.nonceCount.toString(16)).slice(-8);
|
|
19
22
|
let response;
|
|
20
23
|
if (digestItems['qop'] !== undefined) {
|
|
21
|
-
response =
|
|
24
|
+
response = crypto_1.default
|
|
22
25
|
.createHash('md5')
|
|
23
26
|
.update(`${HA1}:${digestItems['nonce']}:${ncValue}:162d50aa594e9648:auth:${HA2}`)
|
|
24
27
|
.digest('hex');
|
|
25
28
|
}
|
|
26
29
|
else {
|
|
27
|
-
response =
|
|
30
|
+
response = crypto_1.default.createHash('md5').update(`${HA1}:${digestItems['nonce']}:${HA2}`).digest('hex');
|
|
28
31
|
}
|
|
29
32
|
let header = 'Digest ' +
|
|
30
33
|
`username="${user}",` +
|
|
@@ -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.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.HttpServer = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
class HttpServer extends
|
|
7
|
+
const http_1 = __importDefault(require("http"));
|
|
8
|
+
const url_1 = __importDefault(require("url"));
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const events_1 = __importDefault(require("events"));
|
|
12
|
+
class HttpServer extends events_1.default {
|
|
10
13
|
host;
|
|
11
14
|
port;
|
|
12
15
|
registeredPaths;
|
|
@@ -17,9 +20,9 @@ class HttpServer extends EventEmitter {
|
|
|
17
20
|
this.host = options?.host ?? process.env.HTTP_HOST ?? '0.0.0.0';
|
|
18
21
|
this.port = options?.port ?? parseInt(process.env.HTTP_PORT ?? '80');
|
|
19
22
|
this.registeredPaths = new Map();
|
|
20
|
-
this.server =
|
|
23
|
+
this.server = http_1.default.createServer((req, res) => {
|
|
21
24
|
this.emit('access', req.method + ' ' + req.url);
|
|
22
|
-
const parsedUrl =
|
|
25
|
+
const parsedUrl = url_1.default.parse(req.url ?? '');
|
|
23
26
|
parsedUrl.pathname ??= '';
|
|
24
27
|
const requestCallback = this.registeredPaths.get(parsedUrl.pathname);
|
|
25
28
|
if (requestCallback) {
|
|
@@ -27,7 +30,7 @@ class HttpServer extends EventEmitter {
|
|
|
27
30
|
return;
|
|
28
31
|
}
|
|
29
32
|
let pathname = `./html${parsedUrl.pathname}`;
|
|
30
|
-
const ext =
|
|
33
|
+
const ext = path_1.default.parse(pathname).ext;
|
|
31
34
|
const map = {
|
|
32
35
|
'.ico': 'image/x-icon',
|
|
33
36
|
'.html': 'text/html',
|
|
@@ -42,17 +45,17 @@ class HttpServer extends EventEmitter {
|
|
|
42
45
|
'.pdf': 'application/pdf',
|
|
43
46
|
'.doc': 'application/msword',
|
|
44
47
|
};
|
|
45
|
-
|
|
48
|
+
fs_1.default.access(pathname, fs_1.default.constants.R_OK, (err) => {
|
|
46
49
|
if (err) {
|
|
47
50
|
res.statusCode = 404;
|
|
48
51
|
res.end(`File ${pathname} not found!`);
|
|
49
52
|
this.emit('error', `File ${pathname} not found!`);
|
|
50
53
|
return;
|
|
51
54
|
}
|
|
52
|
-
if (
|
|
55
|
+
if (fs_1.default.statSync(pathname).isDirectory()) {
|
|
53
56
|
pathname += `/index${ext}`;
|
|
54
57
|
}
|
|
55
|
-
|
|
58
|
+
fs_1.default.readFile(pathname, (error, data) => {
|
|
56
59
|
if (error) {
|
|
57
60
|
res.statusCode = 500;
|
|
58
61
|
res.end(`Error getting the file: ${error}`);
|
|
@@ -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;
|
package/cjs/node/WsClient.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.WsClient = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const Digest_1 = require("
|
|
7
|
-
class WsClient extends
|
|
7
|
+
const events_1 = __importDefault(require("events"));
|
|
8
|
+
const ws_1 = __importDefault(require("ws"));
|
|
9
|
+
const Digest_1 = require("./Digest");
|
|
10
|
+
class WsClient extends events_1.default {
|
|
8
11
|
user;
|
|
9
12
|
pass;
|
|
10
13
|
address;
|
|
@@ -42,15 +45,15 @@ class WsClient extends EventEmitter {
|
|
|
42
45
|
}
|
|
43
46
|
this.isClosed = false;
|
|
44
47
|
if (this.protocol === undefined) {
|
|
45
|
-
this.ws = new
|
|
48
|
+
this.ws = new ws_1.default(this.address, this.wsOptions);
|
|
46
49
|
}
|
|
47
50
|
else {
|
|
48
|
-
this.ws = new
|
|
51
|
+
this.ws = new ws_1.default(this.address, this.protocol, this.wsOptions);
|
|
49
52
|
}
|
|
50
53
|
this.ws.binaryType = 'arraybuffer';
|
|
51
54
|
this.isAlive = true;
|
|
52
55
|
this.pingTimer = setInterval(async () => {
|
|
53
|
-
if ((this.ws && this.ws.readyState !==
|
|
56
|
+
if ((this.ws && this.ws.readyState !== ws_1.default.OPEN) || this.isAlive === false) {
|
|
54
57
|
this.emit('error', new Error('Connection timeout'));
|
|
55
58
|
await this.closeWsConnection();
|
|
56
59
|
}
|
|
@@ -122,11 +125,11 @@ class WsClient extends EventEmitter {
|
|
|
122
125
|
}
|
|
123
126
|
wsCopy.removeAllListeners();
|
|
124
127
|
wsCopy.on('error', () => { });
|
|
125
|
-
if (wsCopy.readyState !==
|
|
128
|
+
if (wsCopy.readyState !== ws_1.default.CLOSING && wsCopy.readyState !== ws_1.default.CLOSED) {
|
|
126
129
|
wsCopy.close();
|
|
127
130
|
}
|
|
128
131
|
setTimeout(() => {
|
|
129
|
-
if (wsCopy.readyState !==
|
|
132
|
+
if (wsCopy.readyState !== ws_1.default.CLOSED) {
|
|
130
133
|
wsCopy.terminate();
|
|
131
134
|
}
|
|
132
135
|
}, 5000);
|
|
@@ -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,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenetecAgent = void 0;
|
|
4
|
+
const utils_1 = require("../../internal/utils");
|
|
5
|
+
const GenetecAgent_1 = require("../../types/GenetecAgent");
|
|
6
|
+
class GenetecAgent {
|
|
7
|
+
settings;
|
|
8
|
+
baseUrl;
|
|
9
|
+
credentials;
|
|
10
|
+
constructor(options = {}) {
|
|
11
|
+
this.settings = {
|
|
12
|
+
protocol: options.protocol ?? 'http',
|
|
13
|
+
ip: options.ip ?? '127.0.0.1',
|
|
14
|
+
port: options.port ?? 80,
|
|
15
|
+
baseUri: options.baseUri ?? 'WebSdk',
|
|
16
|
+
user: options.user ?? 'root',
|
|
17
|
+
pass: options.pass ?? '',
|
|
18
|
+
appId: options.appId ?? '',
|
|
19
|
+
timeout: options.timeout ?? 10000,
|
|
20
|
+
};
|
|
21
|
+
this.baseUrl = `${this.settings.protocol}://${this.settings.ip}:${this.settings.port}/${this.settings.baseUri}`;
|
|
22
|
+
this.credentials = btoa(`${this.settings.user};${this.settings.appId}:${this.settings.pass}`);
|
|
23
|
+
}
|
|
24
|
+
async checkConnection() {
|
|
25
|
+
const requestOptions = this.getRequestOptions('GET');
|
|
26
|
+
const res = await this.fetchWithTimeout(new URL(this.baseUrl), requestOptions);
|
|
27
|
+
if (!res.ok) {
|
|
28
|
+
throw new Error(await (0, utils_1.responseStringify)(res));
|
|
29
|
+
}
|
|
30
|
+
const responseBody = await res.text();
|
|
31
|
+
const result = await GenetecAgent_1.successResponseSchema.safeParseAsync(JSON.parse(responseBody));
|
|
32
|
+
if (!result.success) {
|
|
33
|
+
throw new Error('Genetec connection test failed: ' + JSON.stringify(result.error.issues) + '\n' + responseBody);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async getAllCameraGuids() {
|
|
37
|
+
const requestOptions = this.getRequestOptions('GET');
|
|
38
|
+
const url = new URL(`${this.baseUrl}/report/EntityConfiguration`);
|
|
39
|
+
url.searchParams.set('q', 'EntityTypes@Camera');
|
|
40
|
+
const res = await this.fetchWithTimeout(url, requestOptions);
|
|
41
|
+
if (!res.ok) {
|
|
42
|
+
throw new Error(await (0, utils_1.responseStringify)(res));
|
|
43
|
+
}
|
|
44
|
+
const responseBody = await res.text();
|
|
45
|
+
const result = await GenetecAgent_1.cameraGuidsResponseSchema.safeParseAsync(JSON.parse(responseBody));
|
|
46
|
+
if (!result.success) {
|
|
47
|
+
throw new Error('Genetec get camera guids failed: ' + JSON.stringify(result.error.issues) + '\n' + responseBody);
|
|
48
|
+
}
|
|
49
|
+
return result.data;
|
|
50
|
+
}
|
|
51
|
+
async getCameraDetails(guids, parameters) {
|
|
52
|
+
const params = parameters.join(',');
|
|
53
|
+
const requestOptions = this.getRequestOptions('GET');
|
|
54
|
+
const allCameras = [];
|
|
55
|
+
const chunkSize = 10;
|
|
56
|
+
while (guids.length > 0) {
|
|
57
|
+
const chunk = guids.slice(0, chunkSize);
|
|
58
|
+
guids.splice(0, chunkSize);
|
|
59
|
+
const url = new URL(`${this.baseUrl}/entity`);
|
|
60
|
+
url.searchParams.set('q', chunk.map((item) => `entity=${item.Guid},${params}`).join(','));
|
|
61
|
+
const res = await this.fetchWithTimeout(url, requestOptions);
|
|
62
|
+
if (!res.ok) {
|
|
63
|
+
throw new Error(await (0, utils_1.responseStringify)(res));
|
|
64
|
+
}
|
|
65
|
+
const responseBody = await res.text();
|
|
66
|
+
const result = await GenetecAgent_1.cameraDetailsResponseSchema.safeParseAsync(JSON.parse(responseBody));
|
|
67
|
+
if (!result.success) {
|
|
68
|
+
throw new Error('Genetec get camera details failed: ' + JSON.stringify(result.error.issues) + '\n' + responseBody);
|
|
69
|
+
}
|
|
70
|
+
const data = result.data;
|
|
71
|
+
const resultArray = Array.isArray(data.Rsp.Result) ? data.Rsp.Result : [data.Rsp.Result];
|
|
72
|
+
allCameras.push(...resultArray);
|
|
73
|
+
}
|
|
74
|
+
return allCameras;
|
|
75
|
+
}
|
|
76
|
+
async sendBookmark(guids, bookmarkText) {
|
|
77
|
+
const timeStamp = this.getTimeStamp();
|
|
78
|
+
const requestOptions = this.getRequestOptions('POST');
|
|
79
|
+
const url = new URL(`${this.baseUrl}/action`);
|
|
80
|
+
url.searchParams.set('q', guids.map((guid) => `AddCameraBookmark(${guid},${timeStamp},${bookmarkText})`).join(','));
|
|
81
|
+
const res = await this.fetchWithTimeout(url, requestOptions);
|
|
82
|
+
if (!res.ok) {
|
|
83
|
+
throw new Error(await (0, utils_1.responseStringify)(res));
|
|
84
|
+
}
|
|
85
|
+
const responseBody = await res.text();
|
|
86
|
+
const result = await GenetecAgent_1.successResponseSchema.safeParseAsync(JSON.parse(responseBody));
|
|
87
|
+
if (!result.success) {
|
|
88
|
+
throw new Error('Genetec send bookmark failed: ' + JSON.stringify(result.error.issues) + '\n' + responseBody);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
getRequestOptions(method) {
|
|
92
|
+
return {
|
|
93
|
+
method,
|
|
94
|
+
headers: new Headers({
|
|
95
|
+
Authorization: `Basic ${this.credentials}`,
|
|
96
|
+
Accept: 'text/json',
|
|
97
|
+
}),
|
|
98
|
+
redirect: 'follow',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
getTimeStamp() {
|
|
102
|
+
const date = new Date();
|
|
103
|
+
const year = date.getUTCFullYear();
|
|
104
|
+
const month = (0, utils_1.pad)(date.getUTCMonth() + 1, 2);
|
|
105
|
+
const day = (0, utils_1.pad)(date.getUTCDate(), 2);
|
|
106
|
+
const hours = (0, utils_1.pad)(date.getUTCHours(), 2);
|
|
107
|
+
const minutes = (0, utils_1.pad)(date.getUTCMinutes(), 2);
|
|
108
|
+
const seconds = (0, utils_1.pad)(date.getUTCSeconds(), 2);
|
|
109
|
+
const miliSeconds = (0, utils_1.pad)(date.getUTCMilliseconds(), 2);
|
|
110
|
+
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${miliSeconds}Z`;
|
|
111
|
+
}
|
|
112
|
+
async fetchWithTimeout(url, options) {
|
|
113
|
+
const controller = new AbortController();
|
|
114
|
+
const timeoutId = setTimeout(() => controller.abort(), this.settings.timeout);
|
|
115
|
+
try {
|
|
116
|
+
return await fetch(url, { ...options, signal: controller.signal });
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
clearTimeout(timeoutId);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.GenetecAgent = GenetecAgent;
|
package/cjs/node/index.js
CHANGED
|
@@ -1,7 +1,40 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
2
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
17
|
+
exports.VapixEvents = exports.CamScripterAPICameraEventsGenerator = exports.CamOverlayDrawingAPI = exports.Frame = exports.Painter = exports.ResourceManager = void 0;
|
|
18
|
+
__exportStar(require("./DefaultClient"), exports);
|
|
19
|
+
__exportStar(require("./WsClient"), exports);
|
|
20
|
+
__exportStar(require("./HttpServer"), exports);
|
|
21
|
+
__exportStar(require("./HttpRequestSender"), exports);
|
|
22
|
+
__exportStar(require("./events/AxisCameraStationEvents"), exports);
|
|
23
|
+
__exportStar(require("./events/GenetecAgent"), exports);
|
|
24
|
+
__exportStar(require("../types/GenetecAgent"), exports);
|
|
25
|
+
var ResourceManager_1 = require("./CamOverlayPainter/ResourceManager");
|
|
26
|
+
Object.defineProperty(exports, "ResourceManager", { enumerable: true, get: function () { return ResourceManager_1.ResourceManager; } });
|
|
27
|
+
var Painter_1 = require("./CamOverlayPainter/Painter");
|
|
28
|
+
Object.defineProperty(exports, "Painter", { enumerable: true, get: function () { return Painter_1.Painter; } });
|
|
29
|
+
var Frame_1 = require("./CamOverlayPainter/Frame");
|
|
30
|
+
Object.defineProperty(exports, "Frame", { enumerable: true, get: function () { return Frame_1.Frame; } });
|
|
31
|
+
__exportStar(require("../types/CamOverlayPainter"), exports);
|
|
32
|
+
var CamOverlayDrawingAPI_1 = require("./CamOverlayDrawingAPI");
|
|
33
|
+
Object.defineProperty(exports, "CamOverlayDrawingAPI", { enumerable: true, get: function () { return CamOverlayDrawingAPI_1.CamOverlayDrawingAPI; } });
|
|
34
|
+
__exportStar(require("../types/CamOverlayDrawingAPI"), exports);
|
|
35
|
+
var CamScripterAPICameraEventsGenerator_1 = require("./CamScripterAPICameraEventsGenerator");
|
|
36
|
+
Object.defineProperty(exports, "CamScripterAPICameraEventsGenerator", { enumerable: true, get: function () { return CamScripterAPICameraEventsGenerator_1.CamScripterAPICameraEventsGenerator; } });
|
|
37
|
+
__exportStar(require("../types/CamScripterAPICameraEventsGenerator"), exports);
|
|
38
|
+
var VapixEvents_1 = require("./VapixEvents");
|
|
39
|
+
Object.defineProperty(exports, "VapixEvents", { enumerable: true, get: function () { return VapixEvents_1.VapixEvents; } });
|
|
40
|
+
__exportStar(require("../types/VapixEvents"), exports);
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fileDataSchema = exports.fileListSchema = exports.fileSchema = exports.storageResponseSchema = exports.storageDataListSchema = exports.fileStorageTypeSchema = exports.ImageType = exports.isScoreOverview = exports.isBaseballScoreBoardAutomatic = exports.isBaseballScoreBoard = exports.isScoreBoard = exports.isWebCameraSharing = exports.isScreenSharing = exports.isPtz = exports.isPtzCompass = exports.isPip = exports.isInfoticker = exports.isImages = exports.isCustomGraphics = exports.isAccuweather = exports.serviceListSchema = exports.servicesSchema = exports.wsResponseSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const infotickerSchema_1 = require("./infotickerSchema");
|
|
6
|
+
const accuweatherSchema_1 = require("./accuweatherSchema");
|
|
7
|
+
const ptzCompassSchema_1 = require("./ptzCompassSchema");
|
|
8
|
+
const imagesSchema_1 = require("./imagesSchema");
|
|
9
|
+
const ptzSchema_1 = require("./ptzSchema");
|
|
10
|
+
const pipSchema_1 = require("./pipSchema");
|
|
11
|
+
const customGraphicsSchema_1 = require("./customGraphicsSchema");
|
|
12
|
+
const screenSharingSchema_1 = require("./screenSharingSchema");
|
|
13
|
+
const webCameraSharingSchema_1 = require("./webCameraSharingSchema");
|
|
14
|
+
const scoreBoardSchema_1 = require("./scoreBoardSchema");
|
|
15
|
+
exports.wsResponseSchema = zod_1.z.object({
|
|
16
|
+
status: zod_1.z.number(),
|
|
17
|
+
message: zod_1.z.string(),
|
|
18
|
+
});
|
|
19
|
+
exports.servicesSchema = zod_1.z.discriminatedUnion('name', [
|
|
20
|
+
infotickerSchema_1.infoTickerSchema,
|
|
21
|
+
accuweatherSchema_1.accuweatherSchema,
|
|
22
|
+
ptzCompassSchema_1.ptzCompassSchema,
|
|
23
|
+
imagesSchema_1.imagesSchema,
|
|
24
|
+
ptzSchema_1.ptzSchema,
|
|
25
|
+
pipSchema_1.pipSchema,
|
|
26
|
+
customGraphicsSchema_1.customGraphicsSchema,
|
|
27
|
+
screenSharingSchema_1.screenSharingSchema,
|
|
28
|
+
webCameraSharingSchema_1.webCameraSharingSchema,
|
|
29
|
+
scoreBoardSchema_1.scoreBoardSchema,
|
|
30
|
+
scoreBoardSchema_1.baseballScoreBoardSchema,
|
|
31
|
+
scoreBoardSchema_1.baseballScoreBoardAutomaticSchema,
|
|
32
|
+
scoreBoardSchema_1.scoreOverviewSchema,
|
|
33
|
+
]);
|
|
34
|
+
exports.serviceListSchema = zod_1.z.object({
|
|
35
|
+
services: zod_1.z.array(exports.servicesSchema),
|
|
36
|
+
});
|
|
37
|
+
const isAccuweather = (service) => service.name === 'accuweather';
|
|
38
|
+
exports.isAccuweather = isAccuweather;
|
|
39
|
+
const isCustomGraphics = (service) => service.name === 'customGraphics';
|
|
40
|
+
exports.isCustomGraphics = isCustomGraphics;
|
|
41
|
+
const isImages = (service) => service.name === 'images';
|
|
42
|
+
exports.isImages = isImages;
|
|
43
|
+
const isInfoticker = (service) => service.name === 'infoticker';
|
|
44
|
+
exports.isInfoticker = isInfoticker;
|
|
45
|
+
const isPip = (service) => service.name === 'pip';
|
|
46
|
+
exports.isPip = isPip;
|
|
47
|
+
const isPtzCompass = (service) => service.name === 'ptzCompass';
|
|
48
|
+
exports.isPtzCompass = isPtzCompass;
|
|
49
|
+
const isPtz = (service) => service.name === 'ptz';
|
|
50
|
+
exports.isPtz = isPtz;
|
|
51
|
+
const isScreenSharing = (service) => service.name === 'screenSharing';
|
|
52
|
+
exports.isScreenSharing = isScreenSharing;
|
|
53
|
+
const isWebCameraSharing = (service) => service.name === 'web_camera';
|
|
54
|
+
exports.isWebCameraSharing = isWebCameraSharing;
|
|
55
|
+
const isScoreBoard = (service) => service.name === 'scoreBoard';
|
|
56
|
+
exports.isScoreBoard = isScoreBoard;
|
|
57
|
+
const isBaseballScoreBoard = (service) => service.name === 'baseballScoreBoard';
|
|
58
|
+
exports.isBaseballScoreBoard = isBaseballScoreBoard;
|
|
59
|
+
const isBaseballScoreBoardAutomatic = (service) => service.name === 'myBallBaseballWidgets';
|
|
60
|
+
exports.isBaseballScoreBoardAutomatic = isBaseballScoreBoardAutomatic;
|
|
61
|
+
const isScoreOverview = (service) => service.name === 'scoreOverview';
|
|
62
|
+
exports.isScoreOverview = isScoreOverview;
|
|
63
|
+
var ImageType;
|
|
64
|
+
(function (ImageType) {
|
|
65
|
+
ImageType[ImageType["PNG"] = 0] = "PNG";
|
|
66
|
+
ImageType[ImageType["JPEG"] = 1] = "JPEG";
|
|
67
|
+
})(ImageType || (exports.ImageType = ImageType = {}));
|
|
68
|
+
exports.fileStorageTypeSchema = zod_1.z.union([
|
|
69
|
+
zod_1.z.literal('flash'),
|
|
70
|
+
zod_1.z.literal('SD0'),
|
|
71
|
+
zod_1.z.literal('ftp'),
|
|
72
|
+
zod_1.z.literal('samba'),
|
|
73
|
+
zod_1.z.literal('url'),
|
|
74
|
+
]);
|
|
75
|
+
exports.storageDataListSchema = zod_1.z.array(zod_1.z.object({
|
|
76
|
+
type: exports.fileStorageTypeSchema,
|
|
77
|
+
state: zod_1.z.string(),
|
|
78
|
+
}));
|
|
79
|
+
exports.storageResponseSchema = zod_1.z.object({
|
|
80
|
+
code: zod_1.z.number(),
|
|
81
|
+
list: exports.storageDataListSchema,
|
|
82
|
+
});
|
|
83
|
+
exports.fileSchema = zod_1.z.object({
|
|
84
|
+
name: zod_1.z.string(),
|
|
85
|
+
path: zod_1.z.string().url(),
|
|
86
|
+
storage: exports.fileStorageTypeSchema,
|
|
87
|
+
});
|
|
88
|
+
exports.fileListSchema = zod_1.z.array(exports.fileSchema);
|
|
89
|
+
exports.fileDataSchema = zod_1.z.object({
|
|
90
|
+
code: zod_1.z.number(),
|
|
91
|
+
list: exports.fileListSchema,
|
|
92
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accuweatherSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const serviceCommonTypes_1 = require("./serviceCommonTypes");
|
|
6
|
+
exports.accuweatherSchema = serviceCommonTypes_1.serviceCommonSchema.extend({
|
|
7
|
+
name: zod_1.z.literal(serviceCommonTypes_1.serviceNames.accuweather),
|
|
8
|
+
location: zod_1.z.string(),
|
|
9
|
+
locationName: zod_1.z.string(),
|
|
10
|
+
title: zod_1.z.string(),
|
|
11
|
+
bgStartColor: zod_1.z.union([
|
|
12
|
+
zod_1.z.literal('237,143,73,0.93'),
|
|
13
|
+
zod_1.z.literal('0,0,0,0.75'),
|
|
14
|
+
zod_1.z.literal('31,32,73,0.9'),
|
|
15
|
+
zod_1.z.literal('76,94,127,0.95'),
|
|
16
|
+
]),
|
|
17
|
+
bgEndColor: zod_1.z.union([
|
|
18
|
+
zod_1.z.literal('234,181,89,0.93'),
|
|
19
|
+
zod_1.z.literal('0,0,0,0.75'),
|
|
20
|
+
zod_1.z.literal('73,96,213,0.9'),
|
|
21
|
+
zod_1.z.literal('140,150,168,0.95'),
|
|
22
|
+
]),
|
|
23
|
+
clockType: zod_1.z.union([zod_1.z.literal('12h'), zod_1.z.literal('24h')]),
|
|
24
|
+
lang: serviceCommonTypes_1.languageSchema,
|
|
25
|
+
font: serviceCommonTypes_1.fontSchema,
|
|
26
|
+
units: serviceCommonTypes_1.weatherUnitSchema,
|
|
27
|
+
pos_x: zod_1.z.number(),
|
|
28
|
+
pos_y: zod_1.z.number(),
|
|
29
|
+
coordSystem: serviceCommonTypes_1.coordinateSystemSchema,
|
|
30
|
+
layout: zod_1.z.union([
|
|
31
|
+
zod_1.z.literal('0'),
|
|
32
|
+
zod_1.z.literal('1'),
|
|
33
|
+
zod_1.z.literal('2'),
|
|
34
|
+
zod_1.z.literal('3'),
|
|
35
|
+
zod_1.z.literal('4'),
|
|
36
|
+
zod_1.z.literal('5'),
|
|
37
|
+
zod_1.z.literal('6'),
|
|
38
|
+
zod_1.z.literal('7'),
|
|
39
|
+
zod_1.z.literal('8'),
|
|
40
|
+
zod_1.z.literal('9'),
|
|
41
|
+
zod_1.z.literal('10'),
|
|
42
|
+
zod_1.z.literal('11'),
|
|
43
|
+
zod_1.z.literal('12'),
|
|
44
|
+
zod_1.z.literal('13'),
|
|
45
|
+
]),
|
|
46
|
+
scale: zod_1.z.number().nonnegative(),
|
|
47
|
+
});
|