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
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
1
|
+
import AdmZip from 'adm-zip';
|
|
2
|
+
import * as path from 'path';
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
const productionModulesFolder = 'production_modules';
|
|
6
|
-
function isDirectory(
|
|
7
|
-
const stat = fs.statSync(
|
|
6
|
+
function isDirectory(filePath) {
|
|
7
|
+
const stat = fs.statSync(filePath);
|
|
8
8
|
return stat.isDirectory();
|
|
9
9
|
}
|
|
10
10
|
function getPackageInfo(folder) {
|
|
11
11
|
try {
|
|
12
|
-
const manifest = fs.readFileSync(
|
|
12
|
+
const manifest = fs.readFileSync(path.join(folder, 'manifest.json'));
|
|
13
13
|
const manifestParsed = JSON.parse(manifest.toString());
|
|
14
14
|
return {
|
|
15
15
|
packageName: manifestParsed.package_name,
|
|
@@ -21,11 +21,11 @@ function getPackageInfo(folder) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
function createZipArchive(zip, folder, options) {
|
|
24
|
-
const zipFileRegex = new RegExp(`${
|
|
24
|
+
const zipFileRegex = new RegExp(`${path.basename(folder)}(_[0-9]){3}\\.zip`);
|
|
25
25
|
const files = fs.readdirSync(folder);
|
|
26
26
|
for (const file of files) {
|
|
27
|
-
const
|
|
28
|
-
const isDir = isDirectory(
|
|
27
|
+
const filePath = path.join(folder, file);
|
|
28
|
+
const isDir = isDirectory(filePath);
|
|
29
29
|
if (file[0] === '.' ||
|
|
30
30
|
zipFileRegex.test(file) ||
|
|
31
31
|
file === 'node_modules' ||
|
|
@@ -34,16 +34,16 @@ function createZipArchive(zip, folder, options) {
|
|
|
34
34
|
continue;
|
|
35
35
|
}
|
|
36
36
|
else if (file === 'dist' && options.typeScriptPackage) {
|
|
37
|
-
zip.addLocalFolder(
|
|
37
|
+
zip.addLocalFolder(filePath);
|
|
38
38
|
}
|
|
39
39
|
else if (file === productionModulesFolder && options.includeNodeModules) {
|
|
40
|
-
zip.addLocalFolder(
|
|
40
|
+
zip.addLocalFolder(path.join(productionModulesFolder, 'node_modules'), 'node_modules');
|
|
41
41
|
}
|
|
42
42
|
else if (isDir) {
|
|
43
|
-
zip.addLocalFolder(
|
|
43
|
+
zip.addLocalFolder(filePath, file);
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
|
-
zip.addLocalFile(
|
|
46
|
+
zip.addLocalFile(filePath);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
}
|
|
@@ -51,10 +51,10 @@ function installDependencies() {
|
|
|
51
51
|
if (!fs.existsSync(productionModulesFolder)) {
|
|
52
52
|
fs.mkdirSync(productionModulesFolder, {});
|
|
53
53
|
}
|
|
54
|
-
fs.cpSync('package.json',
|
|
55
|
-
fs.cpSync('package-lock.json',
|
|
54
|
+
fs.cpSync('package.json', path.join(productionModulesFolder, 'package.json'));
|
|
55
|
+
fs.cpSync('package-lock.json', path.join(productionModulesFolder, 'package-lock.json'));
|
|
56
56
|
execSync(`npm ci --omit=dev`, {
|
|
57
|
-
cwd:
|
|
57
|
+
cwd: path.join(process.cwd(), productionModulesFolder),
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
function main(args) {
|
|
@@ -81,7 +81,7 @@ function main(args) {
|
|
|
81
81
|
if (fs.existsSync('dist')) {
|
|
82
82
|
options.typeScriptPackage = true;
|
|
83
83
|
}
|
|
84
|
-
const folder =
|
|
84
|
+
const folder = path.resolve('.');
|
|
85
85
|
const packageInfo = getPackageInfo(folder);
|
|
86
86
|
if (packageInfo === undefined) {
|
|
87
87
|
console.error('Package info not found');
|
package/esm/errors/errors.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
export class ErrorWithResponse extends Error {
|
|
2
|
+
res;
|
|
3
|
+
constructor(res) {
|
|
4
|
+
super(res.statusText);
|
|
5
|
+
this.res = res;
|
|
6
|
+
this.name = 'ErrorWithResponse';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
1
9
|
export class ServiceUnavailableError extends Error {
|
|
2
10
|
constructor() {
|
|
3
11
|
super('Service is unavailable.');
|
|
@@ -16,21 +24,43 @@ export class ParsingBlobError extends Error {
|
|
|
16
24
|
this.name = 'ParsingBlobError';
|
|
17
25
|
}
|
|
18
26
|
}
|
|
27
|
+
export class JsonParseError extends Error {
|
|
28
|
+
constructor(paramName, data) {
|
|
29
|
+
super(`Error: in JSON parsing of ${paramName}. Cannot parse: ${data}`);
|
|
30
|
+
this.name = 'JsonParseError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class ParameterNotFoundError extends Error {
|
|
34
|
+
constructor(paramName) {
|
|
35
|
+
super(`Error: no parameter '${paramName}' was found`);
|
|
36
|
+
this.name = 'ParameterNotFoundError';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class SettingParameterError extends Error {
|
|
40
|
+
constructor(message) {
|
|
41
|
+
super(`Error setting parameter to camera: ${message}`);
|
|
42
|
+
this.name = 'SettingParameterError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
19
45
|
export class ApplicationAPIError extends Error {
|
|
20
|
-
|
|
21
|
-
|
|
46
|
+
action;
|
|
47
|
+
constructor(action, reason) {
|
|
48
|
+
super(`Error performing application action '${action}': ${reason}`);
|
|
49
|
+
this.action = action;
|
|
22
50
|
this.name = 'ApplicationAPIError';
|
|
23
51
|
}
|
|
24
52
|
}
|
|
25
53
|
export class SDCardActionError extends Error {
|
|
26
|
-
|
|
27
|
-
|
|
54
|
+
action;
|
|
55
|
+
constructor(action, reason) {
|
|
56
|
+
super(`Error performing SD card action '${action}': ${reason}`);
|
|
57
|
+
this.action = action;
|
|
28
58
|
this.name = 'SDCardActionError';
|
|
29
59
|
}
|
|
30
60
|
}
|
|
31
61
|
export class SDCardJobError extends Error {
|
|
32
|
-
constructor() {
|
|
33
|
-
super(
|
|
62
|
+
constructor(reason) {
|
|
63
|
+
super(`Error while fetching SD card job progress: ${reason}`);
|
|
34
64
|
this.name = 'SDCardJobError';
|
|
35
65
|
}
|
|
36
66
|
}
|
|
@@ -64,3 +94,83 @@ export class AddNewClipError extends Error {
|
|
|
64
94
|
this.name = 'AddNewClipError';
|
|
65
95
|
}
|
|
66
96
|
}
|
|
97
|
+
export class PtzNotSupportedError extends Error {
|
|
98
|
+
constructor() {
|
|
99
|
+
super('Ptz not supported.');
|
|
100
|
+
this.name = 'PtzNotSupportedError';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
export class StorageDataFetchError extends Error {
|
|
104
|
+
constructor(err) {
|
|
105
|
+
super('Error fetching storage data: ' + err);
|
|
106
|
+
this.name = 'StorageDataFetchError';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
export class WsAuthorizationError extends Error {
|
|
110
|
+
constructor(message) {
|
|
111
|
+
super('Server error on ws authorization: ' + message);
|
|
112
|
+
this.name = 'WsAuthorizationError';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export class UtcTimeFetchError extends Error {
|
|
116
|
+
constructor(message) {
|
|
117
|
+
super('Server error on get UTC time: ' + message);
|
|
118
|
+
this.name = 'UtcTimeFetchError';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export class TimezoneNotSetupError extends Error {
|
|
122
|
+
constructor() {
|
|
123
|
+
super('Time zone not setup on the device');
|
|
124
|
+
this.name = 'TimezoneNotSetupError';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export class TimezoneFetchError extends Error {
|
|
128
|
+
constructor(err) {
|
|
129
|
+
super('Error fetching time zone information: ' + err);
|
|
130
|
+
this.name = 'TimezoneFetchError';
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
export class ResetCalibrationError extends ErrorWithResponse {
|
|
134
|
+
type;
|
|
135
|
+
constructor(type, res) {
|
|
136
|
+
super(res);
|
|
137
|
+
this.type = type;
|
|
138
|
+
this.name = 'ResetCalibrationError';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export class ImportSettingsError extends ErrorWithResponse {
|
|
142
|
+
constructor(res) {
|
|
143
|
+
super(res);
|
|
144
|
+
this.name = 'ImportSettingsError';
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
export class CannotSetCoordsInAutoModeError extends Error {
|
|
148
|
+
constructor() {
|
|
149
|
+
super("The automatic mode doesn't allow control of the camera.");
|
|
150
|
+
this.name = 'CannotSetCoordsInAutoModeError';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
export class InvalidLatLngError extends Error {
|
|
154
|
+
constructor() {
|
|
155
|
+
super('The provided latitude or longitude parameters are invalid.');
|
|
156
|
+
this.name = 'InvalidLatLngError';
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export class InvalidAltitudeError extends Error {
|
|
160
|
+
constructor() {
|
|
161
|
+
super('The provided altitude parameter is invalid.');
|
|
162
|
+
this.name = 'InvalidAltitudeError';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export class ServerError extends Error {
|
|
166
|
+
constructor() {
|
|
167
|
+
super('An internal server error occurred.');
|
|
168
|
+
this.name = 'ServerError';
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export class BadRequestError extends ErrorWithResponse {
|
|
172
|
+
constructor(res) {
|
|
173
|
+
super(res);
|
|
174
|
+
this.name = 'BadRequestError';
|
|
175
|
+
}
|
|
176
|
+
}
|
package/esm/index.js
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './errors/errors';
|
|
2
|
+
export * from './internal/types';
|
|
2
3
|
export * from './internal/constants';
|
|
3
4
|
export * from './internal/utils';
|
|
4
5
|
export * from './internal/versionCompare';
|
|
6
|
+
export * from './internal/ProxyClient';
|
|
5
7
|
export * from './types/common';
|
|
8
|
+
export { CamStreamerAPI } from './CamStreamerAPI';
|
|
9
|
+
export * from './types/CamStreamerAPI';
|
|
10
|
+
export { CamStreamerEvents } from './ws/CamStreamerEvents';
|
|
11
|
+
export * from './types/ws/CamStreamerEvents';
|
|
12
|
+
export { CamOverlayAPI } from './CamOverlayAPI';
|
|
13
|
+
export * from './types/CamOverlayAPI';
|
|
14
|
+
export { CamOverlayEvents } from './ws/CamOverlayEvents';
|
|
15
|
+
export * from './types/ws/CamOverlayEvents';
|
|
6
16
|
export { CamSwitcherAPI } from './CamSwitcherAPI';
|
|
7
|
-
export { CamSwitcherEvents } from './CamSwitcherEvents';
|
|
8
|
-
export { VapixAPI } from './VapixAPI';
|
|
9
|
-
export * from './types/CamSwitcherEvents';
|
|
10
17
|
export * from './types/CamSwitcherAPI';
|
|
18
|
+
export { CamSwitcherEvents } from './ws/CamSwitcherEvents';
|
|
19
|
+
export * from './types/ws/CamSwitcherEvents';
|
|
20
|
+
export { PlaneTrackerAPI } from './PlaneTrackerAPI';
|
|
21
|
+
export * from './types/PlaneTrackerAPI';
|
|
22
|
+
export { PlaneTrackerEvents } from './ws/PlaneTrackerEvents';
|
|
23
|
+
export * from './types/ws/PlaneTrackerEvents';
|
|
24
|
+
export { CamScripterAPI } from './CamScripterAPI';
|
|
25
|
+
export * from './types/CamScripterAPI';
|
|
26
|
+
export { VapixAPI } from './VapixAPI';
|
|
11
27
|
export * from './types/VapixAPI';
|
|
@@ -1,40 +1,36 @@
|
|
|
1
1
|
import { addParametersToPath } from './utils';
|
|
2
2
|
export class ProxyClient {
|
|
3
3
|
client;
|
|
4
|
-
|
|
5
|
-
constructor(client,
|
|
4
|
+
proxyParams;
|
|
5
|
+
constructor(client, proxyParams) {
|
|
6
6
|
this.client = client;
|
|
7
|
-
this.
|
|
7
|
+
this.proxyParams = proxyParams;
|
|
8
8
|
}
|
|
9
|
-
get
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
realUrl: this.getProxyUrl(),
|
|
23
|
-
realHeaders: {
|
|
24
|
-
...(headers ?? {}),
|
|
25
|
-
'x-target-camera-protocol': proxy.port === 443 ? 'https' : 'http',
|
|
26
|
-
'x-target-camera-path': url,
|
|
27
|
-
'x-target-camera-ip': proxy.ip,
|
|
28
|
-
'x-target-camera-mdns': proxy.mdnsName,
|
|
29
|
-
'x-target-camera-port': String(proxy.port),
|
|
30
|
-
'x-target-camera-pass': encodeURIComponent(proxy.pass),
|
|
31
|
-
'x-target-camera-user': encodeURIComponent(proxy.user),
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
9
|
+
get(params) {
|
|
10
|
+
const { path, parameters, headers, timeout } = params;
|
|
11
|
+
const targetPath = addParametersToPath(path, parameters);
|
|
12
|
+
const { realPath, realHeaders } = this.getReal(targetPath, headers);
|
|
13
|
+
return this.client.get({ path: realPath, headers: realHeaders, timeout });
|
|
14
|
+
}
|
|
15
|
+
post(params) {
|
|
16
|
+
const { path, data, parameters, headers, timeout } = params;
|
|
17
|
+
const targetPath = addParametersToPath(path, parameters);
|
|
18
|
+
const { realPath, realHeaders } = this.getReal(targetPath, headers);
|
|
19
|
+
return this.client.post({ path: realPath, data, headers: realHeaders, timeout });
|
|
20
|
+
}
|
|
21
|
+
getReal(targetPath, headers) {
|
|
35
22
|
return {
|
|
36
|
-
|
|
37
|
-
realHeaders:
|
|
23
|
+
realPath: this.proxyParams.path,
|
|
24
|
+
realHeaders: {
|
|
25
|
+
...(headers ?? {}),
|
|
26
|
+
'x-target-camera-protocol': this.proxyParams.target.port === 443 ? 'https' : 'http',
|
|
27
|
+
'x-target-camera-path': targetPath,
|
|
28
|
+
'x-target-camera-ip': this.proxyParams.target.ip,
|
|
29
|
+
'x-target-camera-mdns': this.proxyParams.target.mdnsName,
|
|
30
|
+
'x-target-camera-port': String(this.proxyParams.target.port),
|
|
31
|
+
'x-target-camera-pass': this.proxyParams.target.pass,
|
|
32
|
+
'x-target-camera-user': this.proxyParams.target.user,
|
|
33
|
+
},
|
|
38
34
|
};
|
|
39
|
-
}
|
|
35
|
+
}
|
|
40
36
|
}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export class WsEvents {
|
|
2
|
+
validate;
|
|
3
|
+
ws;
|
|
4
|
+
_isDestroyed = false;
|
|
5
5
|
listeners = {};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
this.ws.destroy();
|
|
9
|
-
}
|
|
6
|
+
constructor(validate, ws) {
|
|
7
|
+
this.validate = validate;
|
|
10
8
|
this.ws = ws;
|
|
11
|
-
this.ws.
|
|
9
|
+
this.ws.onMessage = (e) => this.onMessage(e);
|
|
10
|
+
}
|
|
11
|
+
get isDestroyed() {
|
|
12
|
+
return this._isDestroyed;
|
|
12
13
|
}
|
|
13
14
|
resendInitData() {
|
|
14
15
|
const request = {
|
|
15
16
|
command: 'sendInitData',
|
|
16
17
|
};
|
|
17
|
-
this.ws
|
|
18
|
+
this.ws.send(JSON.stringify(request));
|
|
18
19
|
}
|
|
19
20
|
addListener(type, listener, id) {
|
|
20
21
|
const typeList = this.listeners[type];
|
|
@@ -28,23 +29,26 @@ export class CamSwitcherEvents {
|
|
|
28
29
|
const typeList = this.listeners[type];
|
|
29
30
|
if (typeList) {
|
|
30
31
|
delete typeList[id];
|
|
32
|
+
if (Object.keys(typeList).length === 0) {
|
|
33
|
+
delete this.listeners[type];
|
|
34
|
+
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
|
-
onMessage(
|
|
37
|
+
onMessage(incomeData) {
|
|
34
38
|
if (this.isDestroyed) {
|
|
35
39
|
return;
|
|
36
40
|
}
|
|
37
41
|
try {
|
|
38
|
-
const eventData = JSON.parse(
|
|
39
|
-
const data =
|
|
40
|
-
if (data
|
|
42
|
+
const eventData = JSON.parse(incomeData.toString());
|
|
43
|
+
const data = this.validate(eventData);
|
|
44
|
+
if (isInitEvent(data)) {
|
|
41
45
|
this.processMessage(data.data, true);
|
|
42
46
|
return;
|
|
43
47
|
}
|
|
44
48
|
this.processMessage(data, false);
|
|
45
49
|
}
|
|
46
50
|
catch (error) {
|
|
47
|
-
console.error('Error parsing event data:',
|
|
51
|
+
console.error('Error parsing event data:', incomeData.toString(), error);
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
processMessage(event, isInit) {
|
|
@@ -53,11 +57,13 @@ export class CamSwitcherEvents {
|
|
|
53
57
|
list.forEach((listener) => listener(event, isInit));
|
|
54
58
|
}
|
|
55
59
|
destroy() {
|
|
56
|
-
this.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
60
|
+
this._isDestroyed = true;
|
|
61
|
+
this.ws.onMessage = () => { };
|
|
62
|
+
this.ws.onOpen = () => Promise.reject(new Error('Websocket is destroyed'));
|
|
63
|
+
this.ws.destroy();
|
|
61
64
|
this.listeners = {};
|
|
62
65
|
}
|
|
63
66
|
}
|
|
67
|
+
const isInitEvent = (event) => {
|
|
68
|
+
return event.type === 'init';
|
|
69
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/internal/utils.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isNullish } from './common';
|
|
2
1
|
export const addParametersToPath = (path, params) => {
|
|
3
2
|
if (params === undefined || Object.keys(params).length === 0) {
|
|
4
3
|
return path;
|
|
@@ -32,3 +31,14 @@ export const isClip = (id) => id?.charAt(0) === 's';
|
|
|
32
31
|
export const isTracker = (id) => id?.charAt(0) === 't';
|
|
33
32
|
export const isPlaylist = (id) => id?.charAt(0) === 'p';
|
|
34
33
|
export const isLoopPlayType = (playType) => playType.includes('LOOP');
|
|
34
|
+
export function pad(num, size) {
|
|
35
|
+
const sign = Math.sign(num) === -1 ? '-' : '';
|
|
36
|
+
return (sign +
|
|
37
|
+
new Array(size)
|
|
38
|
+
.concat([Math.abs(num)])
|
|
39
|
+
.join('0')
|
|
40
|
+
.slice(-size));
|
|
41
|
+
}
|
|
42
|
+
export function isNullish(value) {
|
|
43
|
+
return value === null || value === undefined;
|
|
44
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { WsClient } from './
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { WsClient } from './WsClient';
|
|
3
3
|
export class CamOverlayDrawingAPI extends EventEmitter {
|
|
4
4
|
tls;
|
|
5
5
|
tlsInsecure;
|
|
@@ -41,7 +41,7 @@ export class CamOverlayDrawingAPI extends EventEmitter {
|
|
|
41
41
|
this.startMsgsTimeoutCheck();
|
|
42
42
|
}
|
|
43
43
|
disconnect() {
|
|
44
|
-
this.ws.
|
|
44
|
+
this.ws.destroy();
|
|
45
45
|
this.stopMsgsTimeoutCheck();
|
|
46
46
|
}
|
|
47
47
|
isConnected() {
|
|
@@ -98,23 +98,23 @@ export class CamOverlayDrawingAPI extends EventEmitter {
|
|
|
98
98
|
tlsInsecure: this.tlsInsecure,
|
|
99
99
|
};
|
|
100
100
|
this.ws = new WsClient(options);
|
|
101
|
-
this.ws.
|
|
101
|
+
this.ws.onOpen = () => {
|
|
102
102
|
console.log('CamOverlay connection opened');
|
|
103
103
|
this.wsConnected = true;
|
|
104
104
|
this.emit('open');
|
|
105
|
-
}
|
|
106
|
-
this.ws.
|
|
107
|
-
this.ws.
|
|
105
|
+
};
|
|
106
|
+
this.ws.onMessage = (data) => this.incomingWsMessageHandler(data.toString());
|
|
107
|
+
this.ws.onError = (error) => {
|
|
108
108
|
this.reportError(error);
|
|
109
|
-
}
|
|
110
|
-
this.ws.
|
|
109
|
+
};
|
|
110
|
+
this.ws.onClose = () => {
|
|
111
111
|
console.log('CamOverlay connection closed');
|
|
112
112
|
this.wsConnected = false;
|
|
113
113
|
this.reportClose();
|
|
114
|
-
}
|
|
114
|
+
};
|
|
115
115
|
}
|
|
116
116
|
incomingWsMessageHandler(msgData) {
|
|
117
|
-
const dataJSON = JSON.parse(msgData
|
|
117
|
+
const dataJSON = JSON.parse(msgData);
|
|
118
118
|
let errorResponse;
|
|
119
119
|
if ('error' in dataJSON) {
|
|
120
120
|
errorResponse = dataJSON;
|
|
@@ -165,13 +165,21 @@ export class CamOverlayDrawingAPI extends EventEmitter {
|
|
|
165
165
|
throw new Error('No CamOverlay connection');
|
|
166
166
|
}
|
|
167
167
|
msgJson.call_id = ++this.callId;
|
|
168
|
-
const
|
|
169
|
-
const
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const
|
|
174
|
-
|
|
168
|
+
const jsonString = JSON.stringify(msgJson);
|
|
169
|
+
const jsonByteLength = Buffer.byteLength(jsonString);
|
|
170
|
+
const headerLength = 5;
|
|
171
|
+
const totalLength = headerLength + jsonByteLength + data.byteLength;
|
|
172
|
+
const arrayBuffer = new ArrayBuffer(totalLength);
|
|
173
|
+
const view = new DataView(arrayBuffer);
|
|
174
|
+
view.setInt8(0, 1);
|
|
175
|
+
view.setInt32(1, jsonByteLength);
|
|
176
|
+
const jsonBuffer = new Uint8Array(arrayBuffer, 5, jsonByteLength);
|
|
177
|
+
for (let i = 0; i < jsonString.length; i++) {
|
|
178
|
+
jsonBuffer[i] = jsonString.charCodeAt(i);
|
|
179
|
+
}
|
|
180
|
+
const dataBuffer = new Uint8Array(arrayBuffer, 5 + jsonByteLength, data.byteLength);
|
|
181
|
+
data.copy(dataBuffer);
|
|
182
|
+
this.ws.send(arrayBuffer);
|
|
175
183
|
this.sendMessages[this.callId] = { resolve, reject, sentTimestamp: Date.now() };
|
|
176
184
|
}
|
|
177
185
|
catch (err) {
|
|
@@ -54,6 +54,14 @@ export class Frame extends EventEmitter {
|
|
|
54
54
|
this.width = width;
|
|
55
55
|
this.height = height;
|
|
56
56
|
}
|
|
57
|
+
getFrameInfo() {
|
|
58
|
+
return {
|
|
59
|
+
x: this.posX,
|
|
60
|
+
y: this.posY,
|
|
61
|
+
width: this.width,
|
|
62
|
+
height: this.height,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
57
65
|
setText(text, align, textType = 'TFM_OVERFLOW', fontColor) {
|
|
58
66
|
this.text = text;
|
|
59
67
|
this.align = align;
|
|
@@ -73,6 +81,16 @@ export class Frame extends EventEmitter {
|
|
|
73
81
|
this.fontName = undefined;
|
|
74
82
|
this.font = fontData;
|
|
75
83
|
}
|
|
84
|
+
getTextInfo() {
|
|
85
|
+
return {
|
|
86
|
+
text: this.text,
|
|
87
|
+
textAlign: this.align,
|
|
88
|
+
textType: this.textType,
|
|
89
|
+
fontColor: this.fontColor,
|
|
90
|
+
font: this.font,
|
|
91
|
+
fontName: this.fontName,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
76
94
|
setBgColor(color) {
|
|
77
95
|
this.bgColor = color;
|
|
78
96
|
}
|
|
@@ -89,6 +107,14 @@ export class Frame extends EventEmitter {
|
|
|
89
107
|
setBgType(type) {
|
|
90
108
|
this.bgType = type;
|
|
91
109
|
}
|
|
110
|
+
getBgInfo() {
|
|
111
|
+
return {
|
|
112
|
+
bgColor: this.bgColor,
|
|
113
|
+
bgImage: this.bgImage,
|
|
114
|
+
bgImageName: this.bgImageName,
|
|
115
|
+
bgType: this.bgType,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
92
118
|
setBorderRadius(radius) {
|
|
93
119
|
this.borderRadius = radius;
|
|
94
120
|
}
|
|
@@ -98,6 +124,13 @@ export class Frame extends EventEmitter {
|
|
|
98
124
|
setBorderColor(color) {
|
|
99
125
|
this.borderColor = color;
|
|
100
126
|
}
|
|
127
|
+
getBorderInfo() {
|
|
128
|
+
return {
|
|
129
|
+
borderRadius: this.borderRadius,
|
|
130
|
+
borderWidth: this.borderWidth,
|
|
131
|
+
borderColor: this.borderColor,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
101
134
|
setCustomDraw(customDraw) {
|
|
102
135
|
this.customDraw = customDraw;
|
|
103
136
|
}
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import { CamOverlayDrawingAPI } from '../CamOverlayDrawingAPI';
|
|
2
|
-
import ResourceManager from './ResourceManager';
|
|
2
|
+
import { ResourceManager } from './ResourceManager';
|
|
3
3
|
import { Frame } from './Frame';
|
|
4
|
-
|
|
5
|
-
top_left: [-1, -1],
|
|
6
|
-
center_left: [-1, 0],
|
|
7
|
-
bottom_left: [-1, 1],
|
|
8
|
-
top_center: [0, -1],
|
|
9
|
-
center: [0, 0],
|
|
10
|
-
bottom_center: [0, 1],
|
|
11
|
-
top_right: [1, -1],
|
|
12
|
-
center_right: [1, 0],
|
|
13
|
-
bottom_right: [1, 1],
|
|
14
|
-
};
|
|
4
|
+
import { COORD } from '../../types/CamOverlayPainter';
|
|
15
5
|
export class Painter extends Frame {
|
|
16
6
|
screenWidth;
|
|
17
7
|
screenHeight;
|
|
@@ -163,4 +153,3 @@ export class Painter extends Frame {
|
|
|
163
153
|
}
|
|
164
154
|
}
|
|
165
155
|
}
|
|
166
|
-
export { Frame, ResourceManager };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as fs from 'fs/promises';
|
|
2
|
-
export
|
|
2
|
+
export class ResourceManager {
|
|
3
3
|
co;
|
|
4
4
|
imgFileNames = {};
|
|
5
5
|
fontFileNames = {};
|
|
@@ -18,8 +18,9 @@ export default class ResourceManager {
|
|
|
18
18
|
if (this.images[moniker] !== undefined) {
|
|
19
19
|
return this.images[moniker];
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const path = this.imgFileNames[moniker];
|
|
22
|
+
if (path !== undefined) {
|
|
23
|
+
const imgData = await fs.readFile(path);
|
|
23
24
|
this.images[moniker] = await this.co.uploadImageData(imgData);
|
|
24
25
|
return this.images[moniker];
|
|
25
26
|
}
|
|
@@ -29,8 +30,9 @@ export default class ResourceManager {
|
|
|
29
30
|
if (this.fonts[moniker] !== undefined) {
|
|
30
31
|
return this.fonts[moniker];
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
const path = this.fontFileNames[moniker];
|
|
34
|
+
if (path !== undefined) {
|
|
35
|
+
const fontData = await fs.readFile(path);
|
|
34
36
|
this.fonts[moniker] = await this.co.uploadFontData(fontData);
|
|
35
37
|
return this.fonts[moniker];
|
|
36
38
|
}
|
package/esm/{CamScripterAPICameraEventsGenerator.js → node/CamScripterAPICameraEventsGenerator.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { WsClient } from './
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { WsClient } from './WsClient';
|
|
3
3
|
export class CamScripterAPICameraEventsGenerator extends EventEmitter {
|
|
4
4
|
tls;
|
|
5
5
|
tlsInsecure;
|
|
@@ -31,7 +31,7 @@ export class CamScripterAPICameraEventsGenerator extends EventEmitter {
|
|
|
31
31
|
this.startMsgsTimeoutCheck();
|
|
32
32
|
}
|
|
33
33
|
disconnect() {
|
|
34
|
-
this.ws.
|
|
34
|
+
this.ws.destroy();
|
|
35
35
|
this.stopMsgsTimeoutCheck();
|
|
36
36
|
}
|
|
37
37
|
declareEvent(eventDeclaration) {
|
|
@@ -67,21 +67,21 @@ export class CamScripterAPICameraEventsGenerator extends EventEmitter {
|
|
|
67
67
|
protocol: 'camera-events',
|
|
68
68
|
};
|
|
69
69
|
this.ws = new WsClient(options);
|
|
70
|
-
this.ws.
|
|
70
|
+
this.ws.onOpen = () => {
|
|
71
71
|
this.wsConnected = true;
|
|
72
72
|
this.emit('open');
|
|
73
|
-
}
|
|
74
|
-
this.ws.
|
|
75
|
-
this.ws.
|
|
73
|
+
};
|
|
74
|
+
this.ws.onMessage = (data) => this.incomingWsMessageHandler(data.toString());
|
|
75
|
+
this.ws.onError = (error) => {
|
|
76
76
|
this.reportErr(error);
|
|
77
|
-
}
|
|
78
|
-
this.ws.
|
|
77
|
+
};
|
|
78
|
+
this.ws.onClose = () => {
|
|
79
79
|
this.wsConnected = false;
|
|
80
80
|
this.reportClose();
|
|
81
|
-
}
|
|
81
|
+
};
|
|
82
82
|
}
|
|
83
83
|
incomingWsMessageHandler(msgData) {
|
|
84
|
-
const dataJSON = JSON.parse(msgData
|
|
84
|
+
const dataJSON = JSON.parse(msgData);
|
|
85
85
|
let errorResponse;
|
|
86
86
|
if ('error' in dataJSON) {
|
|
87
87
|
errorResponse = dataJSON;
|