camstreamerlib 4.0.0-beta.11 → 4.0.0-beta.111
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 +543 -311
- package/cjs/CamOverlayAPI.js +112 -145
- package/cjs/CamScripterAPI.d.ts +44 -16
- package/cjs/CamScripterAPI.js +52 -33
- package/cjs/CamStreamerAPI.d.ts +2285 -14
- package/cjs/CamStreamerAPI.js +184 -37
- package/cjs/CamSwitcherAPI.d.ts +158 -42
- package/cjs/CamSwitcherAPI.js +143 -177
- package/cjs/PlaneTrackerAPI.d.ts +242 -0
- package/cjs/PlaneTrackerAPI.js +257 -0
- package/cjs/VapixAPI.d.ts +82 -42
- package/cjs/VapixAPI.js +283 -210
- package/cjs/{CreatePackage.js → bin/CreatePackage.js} +44 -18
- package/cjs/errors/errors.d.ts +70 -4
- package/cjs/errors/errors.js +140 -7
- package/cjs/index.d.ts +20 -6
- package/cjs/index.js +28 -8
- package/cjs/internal/ProxyClient.d.ts +8 -9
- package/cjs/internal/ProxyClient.js +28 -34
- package/cjs/internal/WsEvents.d.ts +38 -0
- package/cjs/{CamSwitcherEvents.js → internal/WsEvents.js} +33 -22
- package/cjs/internal/constants.d.ts +1 -0
- package/cjs/internal/constants.js +2 -1
- package/cjs/internal/convertors.d.ts +6 -0
- package/cjs/internal/convertors.js +115 -0
- package/cjs/internal/types.d.ts +32 -20
- package/cjs/internal/utils.d.ts +1 -3
- package/cjs/internal/utils.js +1 -12
- package/cjs/node/CamOverlayDrawingAPI.d.ts +41 -0
- package/cjs/{CamOverlayDrawingAPI.js → node/CamOverlayDrawingAPI.js} +28 -20
- package/{esm → cjs/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 -6
- package/cjs/node/DefaultClient.js +12 -16
- 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/{events → node/events}/AxisCameraStationEvents.js +18 -13
- 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/{models/CamOverlayAPI/widgetsSchema.d.ts → types/CamOverlayAPI/CamOverlayAPI.d.ts} +2387 -599
- package/cjs/types/CamOverlayAPI/CamOverlayAPI.js +131 -0
- package/cjs/{models → types}/CamOverlayAPI/accuweatherSchema.d.ts +12 -12
- package/cjs/{models → types}/CamOverlayAPI/accuweatherSchema.js +7 -8
- package/cjs/{models → types}/CamOverlayAPI/customGraphicsSchema.d.ts +83 -82
- package/cjs/{models → types}/CamOverlayAPI/customGraphicsSchema.js +5 -6
- package/{esm/models → cjs/types}/CamOverlayAPI/imagesSchema.d.ts +10 -10
- package/cjs/types/CamOverlayAPI/imagesSchema.js +9 -0
- package/cjs/{models → types}/CamOverlayAPI/index.d.ts +2 -4
- package/cjs/{models → types}/CamOverlayAPI/index.js +2 -4
- package/cjs/{models → types}/CamOverlayAPI/infotickerSchema.d.ts +20 -20
- package/cjs/{models → types}/CamOverlayAPI/infotickerSchema.js +6 -7
- package/{esm/models → cjs/types}/CamOverlayAPI/pipSchema.d.ts +14 -14
- package/cjs/{models → types}/CamOverlayAPI/pipSchema.js +5 -6
- package/{esm/models → cjs/types}/CamOverlayAPI/ptzCompassSchema.d.ts +13 -10
- package/cjs/{models → types}/CamOverlayAPI/ptzCompassSchema.js +5 -5
- package/{esm/models → cjs/types}/CamOverlayAPI/ptzSchema.d.ts +16 -16
- 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/{models → types}/CamOverlayAPI/screenSharingSchema.d.ts +8 -8
- package/cjs/types/CamOverlayAPI/screenSharingSchema.js +8 -0
- package/{esm/models/CamOverlayAPI/widgetCommonSchema.d.ts → cjs/types/CamOverlayAPI/serviceCommonTypes.d.ts} +67 -48
- package/cjs/{models/CamOverlayAPI/widgetCommonSchema.js → types/CamOverlayAPI/serviceCommonTypes.js} +33 -18
- package/{esm/models → cjs/types}/CamOverlayAPI/webCameraSharingSchema.d.ts +8 -8
- 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/CamStreamerAPI.d.ts +15361 -0
- package/cjs/types/CamStreamerAPI/CamStreamerAPI.js +160 -0
- package/cjs/types/CamStreamerAPI/churchSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/churchSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/daCastSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/daCastSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/dailymotionSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/dailymotionSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/facebookSchema.d.ts +340 -0
- package/cjs/types/CamStreamerAPI/facebookSchema.js +27 -0
- package/cjs/types/CamStreamerAPI/gameChangerSchema.d.ts +307 -0
- package/cjs/types/CamStreamerAPI/gameChangerSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/hlsPullSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/hlsPullSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/hlsPushSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/hlsPushSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/ibmSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/ibmSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/index.d.ts +10 -0
- package/cjs/types/CamStreamerAPI/index.js +26 -0
- package/cjs/types/CamStreamerAPI/microsoftAzureSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/microsoftAzureSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/microsoftStreamSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/microsoftStreamSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/mpegDvbSchema.d.ts +336 -0
- package/cjs/types/CamStreamerAPI/mpegDvbSchema.js +27 -0
- package/cjs/types/{CamStreamerAPI.d.ts → CamStreamerAPI/oldStreamSchema.d.ts} +108 -39
- package/cjs/types/CamStreamerAPI/oldStreamSchema.js +53 -0
- package/cjs/types/CamStreamerAPI/rtmpSchema.d.ts +609 -0
- package/cjs/types/CamStreamerAPI/rtmpSchema.js +19 -0
- package/cjs/types/CamStreamerAPI/sdCardSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/sdCardSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/srtSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/srtSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/streamCommonTypes.d.ts +581 -0
- package/cjs/types/CamStreamerAPI/streamCommonTypes.js +97 -0
- package/cjs/types/CamStreamerAPI/twitchSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/twitchSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/vimeoSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/vimeoSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/windySchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/windySchema.js +11 -0
- package/cjs/types/CamStreamerAPI/wowzaSchema.d.ts +288 -0
- package/cjs/types/CamStreamerAPI/wowzaSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/youtubeRtmpSchema.d.ts +307 -0
- package/cjs/types/CamStreamerAPI/youtubeRtmpSchema.js +11 -0
- package/cjs/types/CamStreamerAPI/youtubeSchema.d.ts +330 -0
- package/cjs/types/CamStreamerAPI/youtubeSchema.js +25 -0
- package/cjs/types/CamSwitcherAPI.d.ts +127 -67
- package/cjs/types/CamSwitcherAPI.js +31 -1
- package/cjs/{events → types}/GenetecAgent.d.ts +47 -47
- package/cjs/types/GenetecAgent.js +31 -0
- package/cjs/types/PlaneTrackerAPI.d.ts +980 -0
- package/cjs/types/PlaneTrackerAPI.js +333 -0
- package/cjs/types/VapixAPI.d.ts +255 -15
- package/cjs/types/VapixAPI.js +66 -3
- package/cjs/types/VapixEvents.d.ts +15 -0
- package/cjs/types/VapixEvents.js +2 -0
- package/cjs/types/common.d.ts +43 -3
- package/cjs/types/common.js +17 -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 +282 -0
- package/cjs/types/ws/CamStreamerEvents.js +36 -0
- package/cjs/types/ws/PlaneTrackerEvents.d.ts +1703 -0
- package/cjs/types/ws/PlaneTrackerEvents.js +207 -0
- package/cjs/web/DefaultClient.d.ts +7 -5
- package/cjs/web/DefaultClient.js +25 -11
- 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 +113 -146
- package/esm/CamScripterAPI.js +51 -32
- package/esm/CamStreamerAPI.js +183 -37
- package/esm/CamSwitcherAPI.js +146 -180
- package/esm/PlaneTrackerAPI.js +253 -0
- package/esm/VapixAPI.js +285 -212
- package/esm/{CreatePackage.js → bin/CreatePackage.js} +16 -16
- package/esm/errors/errors.js +122 -6
- package/esm/index.js +20 -6
- package/esm/internal/ProxyClient.js +28 -34
- package/esm/{CamSwitcherEvents.js → internal/WsEvents.js} +31 -20
- package/esm/internal/constants.js +1 -0
- package/esm/internal/convertors.js +108 -0
- package/esm/internal/utils.js +0 -9
- 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 +12 -16
- 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 +110 -0
- package/esm/{models → types}/CamOverlayAPI/accuweatherSchema.js +3 -4
- package/esm/{models → types}/CamOverlayAPI/customGraphicsSchema.js +3 -4
- package/esm/types/CamOverlayAPI/imagesSchema.js +6 -0
- package/esm/{models → types}/CamOverlayAPI/index.js +2 -4
- package/esm/{models → types}/CamOverlayAPI/infotickerSchema.js +3 -4
- package/esm/{models → types}/CamOverlayAPI/pipSchema.js +4 -5
- package/esm/{models → types}/CamOverlayAPI/ptzCompassSchema.js +4 -4
- 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/{models/CamOverlayAPI/widgetCommonSchema.js → types/CamOverlayAPI/serviceCommonTypes.js} +32 -17
- 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/CamStreamerAPI.js +137 -0
- package/esm/types/CamStreamerAPI/churchSchema.js +5 -0
- package/esm/types/CamStreamerAPI/daCastSchema.js +5 -0
- package/esm/types/CamStreamerAPI/dailymotionSchema.js +5 -0
- package/esm/types/CamStreamerAPI/facebookSchema.js +21 -0
- package/esm/types/CamStreamerAPI/gameChangerSchema.js +5 -0
- package/esm/types/CamStreamerAPI/hlsPullSchema.js +5 -0
- package/esm/types/CamStreamerAPI/hlsPushSchema.js +5 -0
- package/esm/types/CamStreamerAPI/ibmSchema.js +5 -0
- package/esm/types/CamStreamerAPI/index.js +10 -0
- package/esm/types/CamStreamerAPI/microsoftAzureSchema.js +5 -0
- package/esm/types/CamStreamerAPI/microsoftStreamSchema.js +5 -0
- package/esm/types/CamStreamerAPI/mpegDvbSchema.js +21 -0
- package/esm/types/CamStreamerAPI/oldStreamSchema.js +50 -0
- package/esm/types/CamStreamerAPI/rtmpSchema.js +13 -0
- package/esm/types/CamStreamerAPI/sdCardSchema.js +5 -0
- package/esm/types/CamStreamerAPI/srtSchema.js +5 -0
- package/esm/types/CamStreamerAPI/streamCommonTypes.js +94 -0
- package/esm/types/CamStreamerAPI/twitchSchema.js +5 -0
- package/esm/types/CamStreamerAPI/vimeoSchema.js +5 -0
- package/esm/types/CamStreamerAPI/windySchema.js +5 -0
- package/esm/types/CamStreamerAPI/wowzaSchema.js +5 -0
- package/esm/types/CamStreamerAPI/youtubeRtmpSchema.js +5 -0
- package/esm/types/CamStreamerAPI/youtubeSchema.js +19 -0
- package/esm/types/CamSwitcherAPI.js +31 -1
- package/esm/types/GenetecAgent.js +28 -0
- package/esm/types/PlaneTrackerAPI.js +330 -0
- package/esm/types/VapixAPI.js +65 -2
- package/esm/types/VapixEvents.js +1 -0
- package/esm/types/common.js +16 -1
- package/esm/types/ws/CamOverlayEvents.js +16 -0
- package/esm/types/ws/CamStreamerEvents.js +33 -0
- package/esm/types/ws/PlaneTrackerEvents.js +204 -0
- package/esm/web/DefaultClient.js +25 -11
- 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 +43 -9
- package/{esm → types}/CamOverlayAPI.d.ts +543 -311
- package/types/CamScripterAPI.d.ts +47 -0
- package/types/CamStreamerAPI.d.ts +2287 -0
- package/types/CamSwitcherAPI.d.ts +168 -0
- package/types/PlaneTrackerAPI.d.ts +242 -0
- package/types/VapixAPI.d.ts +118 -0
- package/types/bin/CreatePackage.d.ts +1 -0
- package/types/errors/errors.d.ts +103 -0
- package/types/index.d.ts +28 -0
- package/types/internal/ProxyClient.d.ts +10 -0
- package/types/internal/WsEvents.d.ts +38 -0
- package/{esm → types}/internal/constants.d.ts +1 -0
- package/types/internal/convertors.d.ts +6 -0
- package/types/internal/types.d.ts +47 -0
- package/{esm → types}/internal/utils.d.ts +1 -3
- package/types/node/CamOverlayDrawingAPI.d.ts +41 -0
- package/{cjs → 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/{esm/models/CamOverlayAPI/widgetsSchema.d.ts → types/types/CamOverlayAPI/CamOverlayAPI.d.ts} +2387 -599
- package/{esm/models → types/types}/CamOverlayAPI/accuweatherSchema.d.ts +12 -12
- package/{esm/models → types/types}/CamOverlayAPI/customGraphicsSchema.d.ts +83 -82
- package/{cjs/models → types/types}/CamOverlayAPI/imagesSchema.d.ts +10 -10
- package/{esm/models → types/types}/CamOverlayAPI/index.d.ts +2 -4
- package/{esm/models → types/types}/CamOverlayAPI/infotickerSchema.d.ts +20 -20
- package/{cjs/models → types/types}/CamOverlayAPI/pipSchema.d.ts +14 -14
- package/{cjs/models → types/types}/CamOverlayAPI/ptzCompassSchema.d.ts +13 -10
- package/{cjs/models → types/types}/CamOverlayAPI/ptzSchema.d.ts +16 -16
- package/types/types/CamOverlayAPI/scoreBoardSchema.d.ts +357 -0
- package/{esm/models → types/types}/CamOverlayAPI/screenSharingSchema.d.ts +8 -8
- package/{cjs/models/CamOverlayAPI/widgetCommonSchema.d.ts → types/types/CamOverlayAPI/serviceCommonTypes.d.ts} +67 -48
- package/{cjs/models → types/types}/CamOverlayAPI/webCameraSharingSchema.d.ts +8 -8
- 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/CamStreamerAPI.d.ts +15361 -0
- package/types/types/CamStreamerAPI/churchSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/daCastSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/dailymotionSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/facebookSchema.d.ts +340 -0
- package/types/types/CamStreamerAPI/gameChangerSchema.d.ts +307 -0
- package/types/types/CamStreamerAPI/hlsPullSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/hlsPushSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/ibmSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/index.d.ts +10 -0
- package/types/types/CamStreamerAPI/microsoftAzureSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/microsoftStreamSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/mpegDvbSchema.d.ts +336 -0
- package/{esm/types/CamStreamerAPI.d.ts → types/types/CamStreamerAPI/oldStreamSchema.d.ts} +108 -39
- package/types/types/CamStreamerAPI/rtmpSchema.d.ts +609 -0
- package/types/types/CamStreamerAPI/sdCardSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/srtSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/streamCommonTypes.d.ts +581 -0
- package/types/types/CamStreamerAPI/twitchSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/vimeoSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/windySchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/wowzaSchema.d.ts +288 -0
- package/types/types/CamStreamerAPI/youtubeRtmpSchema.d.ts +307 -0
- package/types/types/CamStreamerAPI/youtubeSchema.d.ts +330 -0
- package/{esm → types}/types/CamSwitcherAPI.d.ts +127 -67
- package/{esm/events → types/types}/GenetecAgent.d.ts +47 -47
- package/types/types/PlaneTrackerAPI.d.ts +980 -0
- package/{esm → types}/types/VapixAPI.d.ts +255 -15
- package/types/types/VapixEvents.d.ts +15 -0
- package/types/types/common.d.ts +77 -0
- package/types/types/ws/CamOverlayEvents.d.ts +88 -0
- package/types/types/ws/CamStreamerEvents.d.ts +282 -0
- package/types/types/ws/PlaneTrackerEvents.d.ts +1703 -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 -10
- package/cjs/events/GenetecAgent.js +0 -123
- package/cjs/models/CamOverlayAPI/constants.d.ts +0 -11
- package/cjs/models/CamOverlayAPI/constants.js +0 -14
- package/cjs/models/CamOverlayAPI/fileSchema.d.ts +0 -28
- package/cjs/models/CamOverlayAPI/fileSchema.js +0 -17
- package/cjs/models/CamOverlayAPI/imagesSchema.js +0 -10
- package/cjs/models/CamOverlayAPI/ptzSchema.js +0 -13
- package/cjs/models/CamOverlayAPI/screenSharingSchema.js +0 -9
- package/cjs/models/CamOverlayAPI/webCameraSharingSchema.js +0 -9
- package/cjs/models/CamOverlayAPI/widgetsSchema.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 -328
- package/cjs/types/CamOverlayAPI.js +0 -26
- package/cjs/types/CamStreamerAPI.js +0 -28
- 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 -78
- package/esm/VapixEvents.d.ts +0 -43
- package/esm/errors/errors.d.ts +0 -37
- package/esm/events/AxisCameraStationEvents.d.ts +0 -10
- package/esm/events/GenetecAgent.js +0 -119
- package/esm/index.d.ts +0 -14
- package/esm/internal/ProxyClient.d.ts +0 -11
- package/esm/internal/types.d.ts +0 -35
- package/esm/models/CamOverlayAPI/constants.d.ts +0 -11
- package/esm/models/CamOverlayAPI/constants.js +0 -11
- package/esm/models/CamOverlayAPI/fileSchema.d.ts +0 -28
- package/esm/models/CamOverlayAPI/fileSchema.js +0 -14
- package/esm/models/CamOverlayAPI/imagesSchema.js +0 -7
- package/esm/models/CamOverlayAPI/ptzSchema.js +0 -10
- package/esm/models/CamOverlayAPI/screenSharingSchema.js +0 -6
- package/esm/models/CamOverlayAPI/webCameraSharingSchema.js +0 -6
- package/esm/models/CamOverlayAPI/widgetsSchema.js +0 -24
- package/esm/node/DefaultClient.d.ts +0 -16
- 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 -328
- package/esm/types/CamOverlayAPI.js +0 -14
- package/esm/types/CamScripterAPI.d.ts +0 -67
- package/esm/types/CamStreamerAPI.js +0 -25
- package/esm/types/common.d.ts +0 -37
- 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/transformers.d.ts +0 -0
- /package/{esm → types}/internal/versionCompare.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
|
}
|
|
@@ -70,3 +100,89 @@ export class PtzNotSupportedError extends Error {
|
|
|
70
100
|
this.name = 'PtzNotSupportedError';
|
|
71
101
|
}
|
|
72
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
|
+
}
|
|
177
|
+
export class MigrationError extends Error {
|
|
178
|
+
valid;
|
|
179
|
+
old;
|
|
180
|
+
invalid;
|
|
181
|
+
constructor(valid, old, invalid = []) {
|
|
182
|
+
super('Migration to newer version is needed: some stream entries failed to parse.');
|
|
183
|
+
this.name = 'MigrationError';
|
|
184
|
+
this.valid = valid;
|
|
185
|
+
this.old = old;
|
|
186
|
+
this.invalid = invalid;
|
|
187
|
+
}
|
|
188
|
+
}
|
package/esm/index.js
CHANGED
|
@@ -1,14 +1,28 @@
|
|
|
1
|
+
export * from './errors/errors';
|
|
1
2
|
export * from './internal/types';
|
|
2
3
|
export * from './internal/constants';
|
|
4
|
+
export * from './internal/convertors';
|
|
3
5
|
export * from './internal/utils';
|
|
4
6
|
export * from './internal/versionCompare';
|
|
7
|
+
export * from './internal/ProxyClient';
|
|
5
8
|
export * from './types/common';
|
|
6
|
-
export {
|
|
7
|
-
export
|
|
8
|
-
export {
|
|
9
|
+
export { CamStreamerAPI } from './CamStreamerAPI';
|
|
10
|
+
export * from './types/CamStreamerAPI';
|
|
11
|
+
export { CamStreamerEvents } from './ws/CamStreamerEvents';
|
|
12
|
+
export * from './types/ws/CamStreamerEvents';
|
|
9
13
|
export { CamOverlayAPI } from './CamOverlayAPI';
|
|
10
|
-
export * from './types/
|
|
14
|
+
export * from './types/CamOverlayAPI';
|
|
15
|
+
export { CamOverlayEvents } from './ws/CamOverlayEvents';
|
|
16
|
+
export * from './types/ws/CamOverlayEvents';
|
|
17
|
+
export { CamSwitcherAPI } from './CamSwitcherAPI';
|
|
11
18
|
export * from './types/CamSwitcherAPI';
|
|
19
|
+
export { CamSwitcherEvents } from './ws/CamSwitcherEvents';
|
|
20
|
+
export * from './types/ws/CamSwitcherEvents';
|
|
21
|
+
export { PlaneTrackerAPI } from './PlaneTrackerAPI';
|
|
22
|
+
export * from './types/PlaneTrackerAPI';
|
|
23
|
+
export { PlaneTrackerEvents } from './ws/PlaneTrackerEvents';
|
|
24
|
+
export * from './types/ws/PlaneTrackerEvents';
|
|
25
|
+
export { CamScripterAPI } from './CamScripterAPI';
|
|
26
|
+
export * from './types/CamScripterAPI';
|
|
27
|
+
export { VapixAPI } from './VapixAPI';
|
|
12
28
|
export * from './types/VapixAPI';
|
|
13
|
-
export * from './types/CamOverlayAPI';
|
|
14
|
-
export * from './models/CamOverlayAPI';
|
|
@@ -1,42 +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
|
-
const {
|
|
13
|
-
return this.client.get(
|
|
14
|
-
}
|
|
15
|
-
post
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const {
|
|
19
|
-
return this.client.post(
|
|
20
|
-
}
|
|
21
|
-
getReal
|
|
22
|
-
if (proxy !== null) {
|
|
23
|
-
return {
|
|
24
|
-
realUrl: this.getProxyUrl(),
|
|
25
|
-
realHeaders: {
|
|
26
|
-
...(headers ?? {}),
|
|
27
|
-
'x-target-camera-protocol': proxy.port === 443 ? 'https' : 'http',
|
|
28
|
-
'x-target-camera-path': url,
|
|
29
|
-
'x-target-camera-ip': proxy.ip,
|
|
30
|
-
'x-target-camera-mdns': proxy.mdnsName,
|
|
31
|
-
'x-target-camera-port': String(proxy.port),
|
|
32
|
-
'x-target-camera-pass': encodeURIComponent(proxy.pass),
|
|
33
|
-
'x-target-camera-user': encodeURIComponent(proxy.user),
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
}
|
|
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) {
|
|
37
22
|
return {
|
|
38
|
-
|
|
39
|
-
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
|
+
},
|
|
40
34
|
};
|
|
41
|
-
}
|
|
35
|
+
}
|
|
42
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,31 @@ 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
|
-
|
|
37
|
+
removeAllListenersForId(id) {
|
|
38
|
+
for (const type in this.listeners) {
|
|
39
|
+
this.removeListener(type, id);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
onMessage(incomeData) {
|
|
34
43
|
if (this.isDestroyed) {
|
|
35
44
|
return;
|
|
36
45
|
}
|
|
37
46
|
try {
|
|
38
|
-
const eventData = JSON.parse(
|
|
39
|
-
const data =
|
|
40
|
-
if (data
|
|
47
|
+
const eventData = JSON.parse(incomeData.toString());
|
|
48
|
+
const data = this.validate(eventData);
|
|
49
|
+
if (isInitEvent(data)) {
|
|
41
50
|
this.processMessage(data.data, true);
|
|
42
51
|
return;
|
|
43
52
|
}
|
|
44
53
|
this.processMessage(data, false);
|
|
45
54
|
}
|
|
46
55
|
catch (error) {
|
|
47
|
-
console.error('Error parsing event data:',
|
|
56
|
+
console.error('Error parsing event data:', incomeData.toString(), error);
|
|
48
57
|
}
|
|
49
58
|
}
|
|
50
59
|
processMessage(event, isInit) {
|
|
@@ -53,11 +62,13 @@ export class CamSwitcherEvents {
|
|
|
53
62
|
list.forEach((listener) => listener(event, isInit));
|
|
54
63
|
}
|
|
55
64
|
destroy() {
|
|
56
|
-
this.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
65
|
+
this._isDestroyed = true;
|
|
66
|
+
this.ws.onMessage = () => { };
|
|
67
|
+
this.ws.onOpen = () => Promise.reject(new Error('Websocket is destroyed'));
|
|
68
|
+
this.ws.destroy();
|
|
61
69
|
this.listeners = {};
|
|
62
70
|
}
|
|
63
71
|
}
|
|
72
|
+
const isInitEvent = (event) => {
|
|
73
|
+
return event.type === 'init';
|
|
74
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { FIRMWARE_WITH_BITRATE_MODES_SUPPORT, FIRMWARE_WITH_OVERLAYS_SUPPORT } from './constants';
|
|
2
|
+
import { isFirmwareVersionAtLeast } from './versionCompare';
|
|
3
|
+
export const parseBitrateOptionsToVapixParams = (firmWareVersion, bitrateMode, cameraOptions) => {
|
|
4
|
+
if (!isFirmwareVersionAtLeast(firmWareVersion, FIRMWARE_WITH_BITRATE_MODES_SUPPORT)) {
|
|
5
|
+
return `videomaxbitrate=${cameraOptions.maximumBitRate}`;
|
|
6
|
+
}
|
|
7
|
+
if (bitrateMode === undefined) {
|
|
8
|
+
return '';
|
|
9
|
+
}
|
|
10
|
+
const data = {
|
|
11
|
+
VBR: 'videobitratemode=vbr',
|
|
12
|
+
MBR: `videobitratemode=mbr&videomaxbitrate=${cameraOptions.maximumBitRate}&videobitratepriority=framerate`,
|
|
13
|
+
ABR: `videobitratemode=abr&videoabrtargetbitrate=${cameraOptions.maximumBitRate}&videoabrretentiontime=${cameraOptions.retentionTime}&videoabrmaxbitrate=${cameraOptions.bitRateLimit}`,
|
|
14
|
+
};
|
|
15
|
+
return data[bitrateMode];
|
|
16
|
+
};
|
|
17
|
+
export const parseVapixParamsToBitrateOptions = (bitrateVapixParams) => {
|
|
18
|
+
const params = {};
|
|
19
|
+
const searchParams = new URLSearchParams(bitrateVapixParams);
|
|
20
|
+
searchParams.forEach((value, key) => {
|
|
21
|
+
params[key] = value;
|
|
22
|
+
});
|
|
23
|
+
const bitrateMode = params['videobitratemode'] !== undefined ? params['videobitratemode'].toUpperCase() : undefined;
|
|
24
|
+
const hasLowerFw = bitrateMode === undefined && params['videomaxbitrate'] !== undefined;
|
|
25
|
+
if (hasLowerFw) {
|
|
26
|
+
const maximumBitRate = parseInt(params['videomaxbitrate'] ?? '0', 10);
|
|
27
|
+
return {
|
|
28
|
+
bitrateMode: 'MBR',
|
|
29
|
+
maximumBitRate: maximumBitRate,
|
|
30
|
+
retentionTime: 1,
|
|
31
|
+
bitRateLimit: Math.floor(maximumBitRate * 1.1),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (bitrateMode === 'ABR') {
|
|
35
|
+
const maximumBitRate = parseInt(params['videoabrtargetbitrate'] ?? '0', 10);
|
|
36
|
+
const retentionTime = parseInt(params['videoabrretentiontime'] ?? '0', 10);
|
|
37
|
+
const bitRateLimit = parseInt(params['videoabrmaxbitrate'] ?? '0', 10);
|
|
38
|
+
return {
|
|
39
|
+
bitrateMode,
|
|
40
|
+
maximumBitRate,
|
|
41
|
+
retentionTime,
|
|
42
|
+
bitRateLimit,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
else if (bitrateMode === 'MBR') {
|
|
46
|
+
const maximumBitRate = params['videomaxbitrate'] !== undefined ? parseInt(params['videomaxbitrate'], 10) : null;
|
|
47
|
+
const oldMaximumBitrateParamValue = parseInt(params['videombrmaxbitrate'] ?? '0', 10);
|
|
48
|
+
return {
|
|
49
|
+
bitrateMode: bitrateMode,
|
|
50
|
+
maximumBitRate: maximumBitRate ?? oldMaximumBitrateParamValue,
|
|
51
|
+
retentionTime: 1,
|
|
52
|
+
bitRateLimit: Math.floor(maximumBitRate ?? oldMaximumBitrateParamValue * 1.1),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
bitrateMode: bitrateMode,
|
|
57
|
+
retentionTime: 1,
|
|
58
|
+
maximumBitRate: 0,
|
|
59
|
+
bitRateLimit: 0,
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export const parseVideoOptionsToVapixParams = (firmWareVersion, video) => {
|
|
63
|
+
const bitrateParams = parseBitrateOptionsToVapixParams(firmWareVersion, video.bitrateMode, {
|
|
64
|
+
maximumBitRate: video.maximumBitRate,
|
|
65
|
+
retentionTime: video.retentionTime,
|
|
66
|
+
bitRateLimit: video.bitRateLimit,
|
|
67
|
+
});
|
|
68
|
+
let overlaysParams = '';
|
|
69
|
+
if (isFirmwareVersionAtLeast(firmWareVersion, FIRMWARE_WITH_OVERLAYS_SUPPORT)) {
|
|
70
|
+
overlaysParams = `&overlays=${video.overlays}`;
|
|
71
|
+
}
|
|
72
|
+
const nbrOfChannels = video.audio === 1 ? `&nbrOfChannels=${video.nbrOfChannels}` : '';
|
|
73
|
+
const audioParams = `audio=${video.audio}${nbrOfChannels}`;
|
|
74
|
+
const videoCodecParams = video.videoCodec === 'h264'
|
|
75
|
+
? `videoCodec=${video.videoCodec}&h264Profile=${video.h264Profile}`
|
|
76
|
+
: `videoCodec=${video.videoCodec}`;
|
|
77
|
+
const videoParams = `camera=${video.camera}&resolution=${video.resolution}&fps=${video.fps}&compression=${video.compression}&videokeyframeinterval=${video.govLength}&${videoCodecParams}${overlaysParams}`;
|
|
78
|
+
return [videoParams, bitrateParams, audioParams].join('&');
|
|
79
|
+
};
|
|
80
|
+
export const parseVapixParamsToVideoOptions = (internalVapixParams) => {
|
|
81
|
+
const bitrateOptions = parseVapixParamsToBitrateOptions(internalVapixParams);
|
|
82
|
+
const params = {};
|
|
83
|
+
const searchParams = new URLSearchParams(internalVapixParams);
|
|
84
|
+
searchParams.forEach((value, key) => {
|
|
85
|
+
params[key] = value;
|
|
86
|
+
});
|
|
87
|
+
let h264Profile = undefined;
|
|
88
|
+
if (params['videoCodec'] === 'h264') {
|
|
89
|
+
h264Profile = (params['h264Profile'] ?? 'high');
|
|
90
|
+
}
|
|
91
|
+
let nbrOfChannels = undefined;
|
|
92
|
+
if (params['audio'] === '1') {
|
|
93
|
+
nbrOfChannels = parseInt(params['nbrOfChannels'] ?? '1');
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
...bitrateOptions,
|
|
97
|
+
camera: params['camera'] ?? '1',
|
|
98
|
+
resolution: params['resolution'] ?? '',
|
|
99
|
+
fps: parseInt(params['fps'] ?? '0', 10),
|
|
100
|
+
compression: parseInt(params['compression'] ?? '0', 10),
|
|
101
|
+
govLength: parseInt(params['videokeyframeinterval'] ?? '0', 10),
|
|
102
|
+
videoCodec: (params['videoCodec'] ?? 'h264'),
|
|
103
|
+
h264Profile,
|
|
104
|
+
audio: parseInt(params['audio'] ?? '0'),
|
|
105
|
+
nbrOfChannels,
|
|
106
|
+
overlays: params['overlays'],
|
|
107
|
+
};
|
|
108
|
+
};
|
package/esm/internal/utils.js
CHANGED
|
@@ -31,15 +31,6 @@ export const isClip = (id) => id?.charAt(0) === 's';
|
|
|
31
31
|
export const isTracker = (id) => id?.charAt(0) === 't';
|
|
32
32
|
export const isPlaylist = (id) => id?.charAt(0) === 'p';
|
|
33
33
|
export const isLoopPlayType = (playType) => playType.includes('LOOP');
|
|
34
|
-
export function isClient(arg = {}) {
|
|
35
|
-
return 'get' in arg && 'post' in arg;
|
|
36
|
-
}
|
|
37
|
-
export async function responseStringify(res) {
|
|
38
|
-
return JSON.stringify({
|
|
39
|
-
status: res.status,
|
|
40
|
-
body: await res.text(),
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
34
|
export function pad(num, size) {
|
|
44
35
|
const sign = Math.sign(num) === -1 ? '-' : '';
|
|
45
36
|
return (sign +
|
|
@@ -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) {
|