camstreamerlib 4.0.0-beta.11 → 4.0.0-beta.110
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 +2167 -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 +14570 -0
- package/cjs/types/CamStreamerAPI/CamStreamerAPI.js +154 -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 +9 -0
- package/cjs/types/CamStreamerAPI/index.js +25 -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 +583 -0
- package/cjs/types/CamStreamerAPI/streamCommonTypes.js +118 -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/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 +132 -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 +9 -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 +115 -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/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 +2169 -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 +14570 -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 +9 -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 +583 -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/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
package/esm/CamSwitcherAPI.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { AddNewClipError } from './errors/errors';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { AddNewClipError, JsonParseError, ParameterNotFoundError, ErrorWithResponse } from './errors/errors';
|
|
3
|
+
import { parseBitrateOptionsToVapixParams, parseVapixParamsToBitrateOptions } from './internal/convertors';
|
|
4
|
+
import { isClip, isNullish } from './internal/utils';
|
|
5
|
+
import { storageInfoListSchema, outputInfoSchema, audioPushInfoSchema, clipListSchema, playlistQueueSchema, streamSaveLoadSchema, clipSaveLoadSchema, playlistSaveLoadSchema, trackerSaveLoadSchema, secondaryAudioSettingsSchema, globalAudioSettingsSchema, } from './types/CamSwitcherAPI';
|
|
6
|
+
import { networkCameraListSchema, } from './types/common';
|
|
6
7
|
import { VapixAPI } from './VapixAPI';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
const baseUrl = '/local/camswitcher/api';
|
|
8
|
+
import { ProxyClient } from './internal/ProxyClient';
|
|
9
|
+
const BASE_PATH = '/local/camswitcher/api';
|
|
10
10
|
export class CamSwitcherAPI {
|
|
11
11
|
client;
|
|
12
12
|
CustomFormData;
|
|
@@ -14,112 +14,137 @@ export class CamSwitcherAPI {
|
|
|
14
14
|
constructor(client, CustomFormData = FormData) {
|
|
15
15
|
this.client = client;
|
|
16
16
|
this.CustomFormData = CustomFormData;
|
|
17
|
-
this.vapixAgent = new VapixAPI(client
|
|
18
|
-
}
|
|
19
|
-
static
|
|
20
|
-
static
|
|
21
|
-
static
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
this.vapixAgent = new VapixAPI(client);
|
|
18
|
+
}
|
|
19
|
+
static getProxyPath = () => `${BASE_PATH}/proxy.cgi`;
|
|
20
|
+
static getWsEventsPath = () => `/local/camswitcher/events`;
|
|
21
|
+
static getClipPreviewPath = (clipId, storage) => `${BASE_PATH}/clip_preview.cgi?clip_name=${clipId}&storage=${storage}`;
|
|
22
|
+
getClient(proxyParams) {
|
|
23
|
+
return proxyParams ? new ProxyClient(this.client, proxyParams) : this.client;
|
|
24
|
+
}
|
|
25
|
+
async checkAPIAvailable(options) {
|
|
26
|
+
await this._getJson(`${BASE_PATH}/api_check.cgi`, undefined, options);
|
|
27
|
+
}
|
|
28
|
+
async checkCameraTime(options) {
|
|
29
|
+
const res = await this._getJson(`${BASE_PATH}/camera_time.cgi`, undefined, options);
|
|
30
|
+
return z.boolean().parse(res.data);
|
|
31
|
+
}
|
|
32
|
+
async getNetworkCameraList(options) {
|
|
33
|
+
const res = await this._getJson(`${BASE_PATH}/network_camera_list.cgi`, undefined, options);
|
|
34
|
+
return networkCameraListSchema.parse(res.data);
|
|
35
|
+
}
|
|
36
|
+
async generateSilence(sampleRate, channels, options) {
|
|
37
|
+
const agent = this.getClient(options?.proxyParams);
|
|
38
|
+
await agent.get({
|
|
39
|
+
path: `${BASE_PATH}/generate_silence.cgi`,
|
|
40
|
+
parameters: {
|
|
41
|
+
sample_rate: sampleRate.toString(),
|
|
42
|
+
channels,
|
|
43
|
+
},
|
|
44
|
+
timeout: options?.timeout,
|
|
26
45
|
});
|
|
27
46
|
}
|
|
28
|
-
async
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const data = await this.get(`${baseUrl}/network_camera_list.cgi`);
|
|
34
|
-
return networkCameraListSchema.parse(data);
|
|
47
|
+
async getMaxFps(source, options) {
|
|
48
|
+
const res = await this._getJson(`${BASE_PATH}/get_max_framerate.cgi`, {
|
|
49
|
+
video_source: source,
|
|
50
|
+
}, options);
|
|
51
|
+
return z.number().parse(res.data);
|
|
35
52
|
}
|
|
36
|
-
async
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
return z.number().parse(data);
|
|
53
|
+
async getStorageInfo(options) {
|
|
54
|
+
const res = await this._getJson(`${BASE_PATH}/get_storage.cgi`, undefined, options);
|
|
55
|
+
return storageInfoListSchema.parse(res.data);
|
|
41
56
|
}
|
|
42
|
-
async
|
|
43
|
-
const
|
|
44
|
-
return
|
|
57
|
+
async wsAuthorization(options) {
|
|
58
|
+
const res = await this._getJson(`${BASE_PATH}/ws_authorization.cgi`, undefined, options);
|
|
59
|
+
return z.string().parse(res.data);
|
|
45
60
|
}
|
|
46
|
-
async
|
|
47
|
-
const
|
|
48
|
-
return
|
|
61
|
+
async getOutputInfo(options) {
|
|
62
|
+
const res = await this._getJson(`${BASE_PATH}/output_info.cgi`, undefined, options);
|
|
63
|
+
return outputInfoSchema.parse(res.data);
|
|
49
64
|
}
|
|
50
|
-
async
|
|
51
|
-
const
|
|
52
|
-
return
|
|
65
|
+
async getAudioPushInfo(options) {
|
|
66
|
+
const res = await this._getJson(`${BASE_PATH}/audio_push_info.cgi`, undefined, options);
|
|
67
|
+
return audioPushInfoSchema.parse(res.data);
|
|
53
68
|
}
|
|
54
|
-
async
|
|
55
|
-
const
|
|
56
|
-
return
|
|
69
|
+
async getStreamSaveList(options) {
|
|
70
|
+
const res = await this._getJson(`${BASE_PATH}/streams.cgi`, { action: 'get' }, options);
|
|
71
|
+
return streamSaveLoadSchema.parse(res.data);
|
|
57
72
|
}
|
|
58
|
-
async
|
|
59
|
-
const
|
|
60
|
-
return
|
|
73
|
+
async getClipSaveList(options) {
|
|
74
|
+
const res = await this._getJson(`${BASE_PATH}/clips.cgi`, { action: 'get' }, options);
|
|
75
|
+
return clipSaveLoadSchema.parse(res.data);
|
|
61
76
|
}
|
|
62
|
-
async
|
|
63
|
-
const
|
|
64
|
-
return
|
|
77
|
+
async getPlaylistSaveList(options) {
|
|
78
|
+
const res = await this._getJson(`${BASE_PATH}/playlists.cgi`, { action: 'get' }, options);
|
|
79
|
+
return playlistSaveLoadSchema.parse(res.data);
|
|
65
80
|
}
|
|
66
|
-
async
|
|
67
|
-
const
|
|
68
|
-
return
|
|
81
|
+
async getTrackerSaveList(options) {
|
|
82
|
+
const res = await this._getJson(`${BASE_PATH}/trackers.cgi`, { action: 'get' }, options);
|
|
83
|
+
return trackerSaveLoadSchema.parse(res.data);
|
|
69
84
|
}
|
|
70
|
-
async
|
|
71
|
-
|
|
72
|
-
return trackerSaveLoadSchema.parse(data);
|
|
85
|
+
async setStreamSaveList(data, options) {
|
|
86
|
+
await this._post(`${BASE_PATH}/streams.cgi`, JSON.stringify(data), { action: 'set' }, options);
|
|
73
87
|
}
|
|
74
|
-
async
|
|
75
|
-
|
|
88
|
+
async setClipSaveList(data, options) {
|
|
89
|
+
await this._post(`${BASE_PATH}/clips.cgi`, JSON.stringify(data), { action: 'set' }, options);
|
|
76
90
|
}
|
|
77
|
-
async
|
|
78
|
-
|
|
91
|
+
async setPlaylistSaveList(data, options) {
|
|
92
|
+
await this._post(`${BASE_PATH}/playlists.cgi`, JSON.stringify(data), { action: 'set' }, options);
|
|
79
93
|
}
|
|
80
|
-
async
|
|
81
|
-
|
|
94
|
+
async setTrackerSaveList(data, options) {
|
|
95
|
+
await this._post(`${BASE_PATH}/trackers.cgi`, JSON.stringify(data), { action: 'set' }, options);
|
|
82
96
|
}
|
|
83
|
-
async
|
|
84
|
-
|
|
97
|
+
async playlistSwitch(playlistName, options) {
|
|
98
|
+
await this._getJson(`${BASE_PATH}/playlist_switch.cgi`, { playlist_name: playlistName }, options);
|
|
85
99
|
}
|
|
86
|
-
async
|
|
87
|
-
await this.
|
|
100
|
+
async playlistQueuePush(playlistName, options) {
|
|
101
|
+
await this._getJson(`${BASE_PATH}/playlist_queue_push.cgi`, { playlist_name: playlistName }, options);
|
|
88
102
|
}
|
|
89
|
-
async
|
|
90
|
-
await this.
|
|
103
|
+
async playlistQueueClear(options) {
|
|
104
|
+
await this._getJson(`${BASE_PATH}/playlist_queue_clear.cgi`, undefined, options);
|
|
91
105
|
}
|
|
92
|
-
async
|
|
93
|
-
await this.
|
|
106
|
+
async playlistQueueList(options) {
|
|
107
|
+
const res = await this._getJson(`${BASE_PATH}/playlist_queue_list.cgi`, undefined, options);
|
|
108
|
+
return playlistQueueSchema.parse(res.data).playlistQueueList;
|
|
94
109
|
}
|
|
95
|
-
async
|
|
96
|
-
|
|
97
|
-
return playlistQueueSchema.parse(data).playlistQueueList;
|
|
110
|
+
async playlistQueuePlayNext(options) {
|
|
111
|
+
await this._getJson(`${BASE_PATH}/playlist_queue_play_next.cgi`, undefined, options);
|
|
98
112
|
}
|
|
99
|
-
async
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
async addNewClip(file, clipType, storage, id, fileName) {
|
|
113
|
+
async addNewClip(file, clipType, storage, clipId, fileName, options) {
|
|
114
|
+
const path = `${BASE_PATH}/clip_upload.cgi`;
|
|
103
115
|
const formData = new this.CustomFormData();
|
|
104
|
-
formData.append('clip_name',
|
|
116
|
+
formData.append('clip_name', clipId);
|
|
105
117
|
formData.append('clip_type', clipType);
|
|
106
118
|
formData.append('file', file, fileName);
|
|
107
|
-
const
|
|
108
|
-
const res = await
|
|
119
|
+
const agent = this.getClient(options?.proxyParams);
|
|
120
|
+
const res = await agent.post({
|
|
121
|
+
path,
|
|
122
|
+
data: formData,
|
|
123
|
+
parameters: {
|
|
124
|
+
storage: storage,
|
|
125
|
+
},
|
|
126
|
+
timeout: options?.timeout,
|
|
127
|
+
});
|
|
109
128
|
const output = (await res.json());
|
|
110
129
|
if (output.status !== 200) {
|
|
111
130
|
throw new AddNewClipError(output.message);
|
|
112
131
|
}
|
|
113
132
|
}
|
|
114
|
-
removeClip(
|
|
115
|
-
|
|
133
|
+
async removeClip(clipId, storage, options) {
|
|
134
|
+
await this._getJson(`${BASE_PATH}/clip_remove.cgi`, { clip_name: clipId, storage }, options);
|
|
116
135
|
}
|
|
117
|
-
async getClipList() {
|
|
118
|
-
const
|
|
119
|
-
return clipListSchema.parse(data).clip_list;
|
|
136
|
+
async getClipList(options) {
|
|
137
|
+
const res = await this._getJson(`${BASE_PATH}/clip_list.cgi`, undefined, options);
|
|
138
|
+
return clipListSchema.parse(res.data).clip_list;
|
|
120
139
|
}
|
|
121
|
-
setCamSwitchOptions(data, cameraFWVersion) {
|
|
122
|
-
const
|
|
140
|
+
setCamSwitchOptions(data, cameraFWVersion, options) {
|
|
141
|
+
const bitrateData = {
|
|
142
|
+
bitrateMode: data.bitrateMode,
|
|
143
|
+
maximumBitRate: data.maximumBitRate,
|
|
144
|
+
retentionTime: data.retentionTime,
|
|
145
|
+
bitRateLimit: data.bitRateLimit,
|
|
146
|
+
};
|
|
147
|
+
const bitrateVapixParams = parseBitrateOptionsToVapixParams(cameraFWVersion, data.bitrateMode, bitrateData);
|
|
123
148
|
const saveData = {
|
|
124
149
|
video: {
|
|
125
150
|
resolution: data.resolution,
|
|
@@ -136,9 +161,9 @@ export class CamSwitcherAPI {
|
|
|
136
161
|
},
|
|
137
162
|
keyboard: data.keyboard,
|
|
138
163
|
};
|
|
139
|
-
return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SETTINGS, saveData);
|
|
164
|
+
return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SETTINGS, saveData, options);
|
|
140
165
|
}
|
|
141
|
-
setGlobalAudioSettings(settings) {
|
|
166
|
+
setGlobalAudioSettings(settings, options) {
|
|
142
167
|
let acceptedType = 'NONE';
|
|
143
168
|
if (settings.type === 'source' && settings.source) {
|
|
144
169
|
if (isClip(settings.source)) {
|
|
@@ -154,9 +179,9 @@ export class CamSwitcherAPI {
|
|
|
154
179
|
clip_name: settings.source,
|
|
155
180
|
storage: settings.storage,
|
|
156
181
|
};
|
|
157
|
-
return this.setParamFromCameraJSON(CSW_PARAM_NAMES.MASTER_AUDIO, data);
|
|
182
|
+
return this.setParamFromCameraJSON(CSW_PARAM_NAMES.MASTER_AUDIO, data, options);
|
|
158
183
|
}
|
|
159
|
-
setSecondaryAudioSettings(settings) {
|
|
184
|
+
setSecondaryAudioSettings(settings, options) {
|
|
160
185
|
const data = {
|
|
161
186
|
type: settings.type,
|
|
162
187
|
stream_name: settings.streamName ?? '',
|
|
@@ -165,19 +190,19 @@ export class CamSwitcherAPI {
|
|
|
165
190
|
secondary_audio_level: settings.secondaryAudioLevel,
|
|
166
191
|
master_audio_level: settings.masterAudioLevel,
|
|
167
192
|
};
|
|
168
|
-
return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SECONDARY_AUDIO, data);
|
|
193
|
+
return this.setParamFromCameraJSON(CSW_PARAM_NAMES.SECONDARY_AUDIO, data, options);
|
|
169
194
|
}
|
|
170
|
-
setDefaultPlaylist(
|
|
171
|
-
const value = JSON.stringify({ default_playlist_id:
|
|
195
|
+
setDefaultPlaylist(playlistId, options) {
|
|
196
|
+
const value = JSON.stringify({ default_playlist_id: playlistId });
|
|
172
197
|
return this.vapixAgent.setParameter({
|
|
173
198
|
[CSW_PARAM_NAMES.DEFAULT_PLAYLIST]: value,
|
|
174
|
-
},
|
|
199
|
+
}, options);
|
|
175
200
|
}
|
|
176
|
-
setPermanentRtspUrlToken(token) {
|
|
177
|
-
return this.vapixAgent.setParameter({ [CSW_PARAM_NAMES.RTSP_TOKEN]: token },
|
|
201
|
+
setPermanentRtspUrlToken(token, options) {
|
|
202
|
+
return this.vapixAgent.setParameter({ [CSW_PARAM_NAMES.RTSP_TOKEN]: token }, options);
|
|
178
203
|
}
|
|
179
|
-
async getCamSwitchOptions() {
|
|
180
|
-
const saveData = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SETTINGS);
|
|
204
|
+
async getCamSwitchOptions(options) {
|
|
205
|
+
const saveData = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SETTINGS, options);
|
|
181
206
|
if (isNullish(saveData.video)) {
|
|
182
207
|
return saveData;
|
|
183
208
|
}
|
|
@@ -202,12 +227,12 @@ export class CamSwitcherAPI {
|
|
|
202
227
|
keyboard: saveData.keyboard,
|
|
203
228
|
};
|
|
204
229
|
}
|
|
205
|
-
async getGlobalAudioSettings() {
|
|
230
|
+
async getGlobalAudioSettings(options) {
|
|
206
231
|
const settings = {
|
|
207
232
|
type: 'fromSource',
|
|
208
233
|
source: 'fromSource',
|
|
209
234
|
};
|
|
210
|
-
const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.MASTER_AUDIO);
|
|
235
|
+
const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.MASTER_AUDIO, options);
|
|
211
236
|
if (res.type === 'STREAM') {
|
|
212
237
|
settings.type = 'source';
|
|
213
238
|
settings.source = res.stream_name;
|
|
@@ -217,52 +242,52 @@ export class CamSwitcherAPI {
|
|
|
217
242
|
settings.source = res.clip_name;
|
|
218
243
|
settings.storage = res.storage;
|
|
219
244
|
}
|
|
220
|
-
return settings;
|
|
245
|
+
return globalAudioSettingsSchema.parse(settings);
|
|
221
246
|
}
|
|
222
|
-
async getSecondaryAudioSettings() {
|
|
223
|
-
const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SECONDARY_AUDIO);
|
|
247
|
+
async getSecondaryAudioSettings(options) {
|
|
248
|
+
const res = await this.getParamFromCameraAndJSONParse(CSW_PARAM_NAMES.SECONDARY_AUDIO, options);
|
|
224
249
|
const settings = {
|
|
225
250
|
type: res.type ?? 'NONE',
|
|
226
251
|
streamName: res.stream_name,
|
|
227
252
|
clipName: res.clip_name,
|
|
228
|
-
storage: res.storage,
|
|
253
|
+
storage: res.storage ?? 'SD_DISK',
|
|
229
254
|
secondaryAudioLevel: res.secondary_audio_level ?? 1,
|
|
230
255
|
masterAudioLevel: res.master_audio_level ?? 1,
|
|
231
256
|
};
|
|
232
|
-
return settings;
|
|
257
|
+
return secondaryAudioSettingsSchema.parse(settings);
|
|
233
258
|
}
|
|
234
|
-
async getPermanentRtspUrlToken() {
|
|
259
|
+
async getPermanentRtspUrlToken(options) {
|
|
235
260
|
const paramName = CSW_PARAM_NAMES.RTSP_TOKEN;
|
|
236
|
-
const res = await this.vapixAgent.getParameter([paramName],
|
|
237
|
-
return res[paramName] ?? '';
|
|
261
|
+
const res = await this.vapixAgent.getParameter([paramName], options);
|
|
262
|
+
return z.string().parse(res[paramName] ?? '');
|
|
238
263
|
}
|
|
239
|
-
async
|
|
240
|
-
const
|
|
264
|
+
async _getJson(path, parameters, options) {
|
|
265
|
+
const agent = this.getClient(options?.proxyParams);
|
|
266
|
+
const res = await agent.get({ path, parameters, timeout: options?.timeout });
|
|
241
267
|
if (res.ok) {
|
|
242
|
-
|
|
243
|
-
return d.data;
|
|
268
|
+
return await res.json();
|
|
244
269
|
}
|
|
245
270
|
else {
|
|
246
|
-
throw new
|
|
271
|
+
throw new ErrorWithResponse(res);
|
|
247
272
|
}
|
|
248
273
|
}
|
|
249
|
-
async
|
|
250
|
-
const
|
|
274
|
+
async _post(path, data, parameters, options, headers) {
|
|
275
|
+
const agent = this.getClient(options?.proxyParams);
|
|
276
|
+
const res = await agent.post({ path, data, parameters, timeout: options?.timeout, headers });
|
|
251
277
|
if (res.ok) {
|
|
252
|
-
|
|
253
|
-
return parsed.message === 'OK';
|
|
278
|
+
return await res.json();
|
|
254
279
|
}
|
|
255
280
|
else {
|
|
256
|
-
throw new
|
|
281
|
+
throw new ErrorWithResponse(res);
|
|
257
282
|
}
|
|
258
283
|
}
|
|
259
|
-
setParamFromCameraJSON(paramName, data) {
|
|
284
|
+
setParamFromCameraJSON(paramName, data, options) {
|
|
260
285
|
const params = {};
|
|
261
286
|
params[paramName] = JSON.stringify(data);
|
|
262
|
-
return this.vapixAgent.setParameter(params,
|
|
287
|
+
return this.vapixAgent.setParameter(params, options);
|
|
263
288
|
}
|
|
264
|
-
async getParamFromCameraAndJSONParse(paramName) {
|
|
265
|
-
const data = await this.vapixAgent.getParameter([paramName],
|
|
289
|
+
async getParamFromCameraAndJSONParse(paramName, options) {
|
|
290
|
+
const data = await this.vapixAgent.getParameter([paramName], options);
|
|
266
291
|
if (data[paramName] !== undefined) {
|
|
267
292
|
try {
|
|
268
293
|
if (data[paramName] === '') {
|
|
@@ -273,10 +298,10 @@ export class CamSwitcherAPI {
|
|
|
273
298
|
}
|
|
274
299
|
}
|
|
275
300
|
catch {
|
|
276
|
-
throw new
|
|
301
|
+
throw new JsonParseError(paramName, data[paramName]);
|
|
277
302
|
}
|
|
278
303
|
}
|
|
279
|
-
throw new
|
|
304
|
+
throw new ParameterNotFoundError(paramName);
|
|
280
305
|
}
|
|
281
306
|
}
|
|
282
307
|
const CSW_PARAM_NAMES = {
|
|
@@ -286,62 +311,3 @@ const CSW_PARAM_NAMES = {
|
|
|
286
311
|
RTSP_TOKEN: 'Camswitcher.RTSPAccessToken',
|
|
287
312
|
DEFAULT_PLAYLIST: 'Camswitcher.DefaultPlaylist',
|
|
288
313
|
};
|
|
289
|
-
const parseBitrateOptionsToBitrateVapixParams = (firmWareVersion, bitrateMode, cameraOptions) => {
|
|
290
|
-
if (!isFirmwareVersionAtLeast(firmWareVersion, FIRMWARE_WITH_BITRATE_MODES_SUPPORT)) {
|
|
291
|
-
return `videomaxbitrate=${cameraOptions.maximumBitRate}`;
|
|
292
|
-
}
|
|
293
|
-
if (bitrateMode === null) {
|
|
294
|
-
return '';
|
|
295
|
-
}
|
|
296
|
-
const data = {
|
|
297
|
-
VBR: 'videobitratemode=vbr',
|
|
298
|
-
MBR: `videobitratemode=mbr&videomaxbitrate=${cameraOptions.maximumBitRate}`,
|
|
299
|
-
ABR: `videobitratemode=abr&videoabrtargetbitrate=${cameraOptions.maximumBitRate}&videoabrretentiontime=${cameraOptions.retentionTime}&videoabrmaxbitrate=${cameraOptions.bitRateLimit}`,
|
|
300
|
-
};
|
|
301
|
-
return data[bitrateMode];
|
|
302
|
-
};
|
|
303
|
-
const parseVapixParamsToBitrateOptions = (bitrateVapixParams) => {
|
|
304
|
-
const params = {};
|
|
305
|
-
const searchParams = new URLSearchParams(bitrateVapixParams);
|
|
306
|
-
searchParams.forEach((value, key) => {
|
|
307
|
-
params[key] = value;
|
|
308
|
-
});
|
|
309
|
-
const bitrateMode = params['videobitratemode'] !== undefined ? params['videobitratemode'].toUpperCase() : undefined;
|
|
310
|
-
const hasLowerFw = bitrateMode === undefined && params['videomaxbitrate'] !== undefined;
|
|
311
|
-
if (hasLowerFw) {
|
|
312
|
-
const maximumBitRate = parseInt(params['videomaxbitrate'] ?? '0', 10);
|
|
313
|
-
return {
|
|
314
|
-
bitrateMode: 'MBR',
|
|
315
|
-
maximumBitRate: maximumBitRate,
|
|
316
|
-
retentionTime: 1,
|
|
317
|
-
bitRateLimit: Math.floor(maximumBitRate * 1.1),
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
if (bitrateMode === 'ABR') {
|
|
321
|
-
const maximumBitRate = parseInt(params['videoabrtargetbitrate'] ?? '0', 10);
|
|
322
|
-
const retentionTime = parseInt(params['videoabrretentiontime'] ?? '0', 10);
|
|
323
|
-
const bitRateLimit = parseInt(params['videoabrmaxbitrate'] ?? '0', 10);
|
|
324
|
-
return {
|
|
325
|
-
bitrateMode,
|
|
326
|
-
maximumBitRate,
|
|
327
|
-
retentionTime,
|
|
328
|
-
bitRateLimit,
|
|
329
|
-
};
|
|
330
|
-
}
|
|
331
|
-
else if (bitrateMode === 'MBR') {
|
|
332
|
-
const maximumBitRate = params['videomaxbitrate'] !== undefined ? parseInt(params['videomaxbitrate'], 10) : null;
|
|
333
|
-
const oldMaximumBitrateParamValue = parseInt(params['videombrmaxbitrate'] ?? '0', 10);
|
|
334
|
-
return {
|
|
335
|
-
bitrateMode: bitrateMode,
|
|
336
|
-
maximumBitRate: maximumBitRate ?? oldMaximumBitrateParamValue,
|
|
337
|
-
retentionTime: 1,
|
|
338
|
-
bitRateLimit: Math.floor(maximumBitRate ?? oldMaximumBitrateParamValue * 1.1),
|
|
339
|
-
};
|
|
340
|
-
}
|
|
341
|
-
return {
|
|
342
|
-
bitrateMode: bitrateMode,
|
|
343
|
-
retentionTime: 1,
|
|
344
|
-
maximumBitRate: 0,
|
|
345
|
-
bitRateLimit: 0,
|
|
346
|
-
};
|
|
347
|
-
};
|