@signalwire/js 3.23.3 → 3.23.4
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/dist/core/src/BaseClient.d.ts.map +1 -1
- package/dist/core/src/BaseComponent.d.ts +8 -114
- package/dist/core/src/BaseComponent.d.ts.map +1 -1
- package/dist/core/src/BaseConsumer.d.ts +2 -2
- package/dist/core/src/BaseConsumer.d.ts.map +1 -1
- package/dist/core/src/BaseSession.d.ts.map +1 -1
- package/dist/core/src/RPCMessages/RPCConnect.d.ts +1 -0
- package/dist/core/src/RPCMessages/RPCConnect.d.ts.map +1 -1
- package/dist/core/src/chat/BaseChat.d.ts +5 -6
- package/dist/core/src/chat/BaseChat.d.ts.map +1 -1
- package/dist/core/src/chat/workers/chatWorker.d.ts.map +1 -1
- package/dist/core/src/index.d.ts +4 -5
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/memberPosition/workers.d.ts +1 -1
- package/dist/core/src/memberPosition/workers.d.ts.map +1 -1
- package/dist/core/src/pubSub/BasePubSub.d.ts +8 -9
- package/dist/core/src/pubSub/BasePubSub.d.ts.map +1 -1
- package/dist/core/src/pubSub/workers/pubSubWorker.d.ts.map +1 -1
- package/dist/core/src/redux/actions.d.ts +0 -9
- package/dist/core/src/redux/actions.d.ts.map +1 -1
- package/dist/core/src/redux/features/session/sessionSaga.d.ts +2 -3
- package/dist/core/src/redux/features/session/sessionSaga.d.ts.map +1 -1
- package/dist/core/src/redux/index.d.ts +1 -0
- package/dist/core/src/redux/index.d.ts.map +1 -1
- package/dist/core/src/redux/interfaces.d.ts +0 -1
- package/dist/core/src/redux/interfaces.d.ts.map +1 -1
- package/dist/core/src/redux/rootSaga.d.ts +10 -10
- package/dist/core/src/redux/rootSaga.d.ts.map +1 -1
- package/dist/core/src/redux/utils/useInstanceMap.d.ts +6 -0
- package/dist/core/src/redux/utils/useInstanceMap.d.ts.map +1 -0
- package/dist/core/src/redux/utils/useSession.d.ts +16 -0
- package/dist/core/src/redux/utils/useSession.d.ts.map +1 -0
- package/dist/core/src/rooms/RoomSessionPlayback.d.ts +20 -3
- package/dist/core/src/rooms/RoomSessionPlayback.d.ts.map +1 -1
- package/dist/core/src/rooms/RoomSessionRecording.d.ts +18 -5
- package/dist/core/src/rooms/RoomSessionRecording.d.ts.map +1 -1
- package/dist/core/src/rooms/RoomSessionStream.d.ts +19 -5
- package/dist/core/src/rooms/RoomSessionStream.d.ts.map +1 -1
- package/dist/core/src/rooms/index.d.ts +0 -4
- package/dist/core/src/rooms/index.d.ts.map +1 -1
- package/dist/core/src/rooms/methods.d.ts +6 -2
- package/dist/core/src/rooms/methods.d.ts.map +1 -1
- package/dist/core/src/testUtils.d.ts +3 -2
- package/dist/core/src/testUtils.d.ts.map +1 -1
- package/dist/core/src/types/chat.d.ts +0 -1
- package/dist/core/src/types/chat.d.ts.map +1 -1
- package/dist/core/src/types/index.d.ts +2 -0
- package/dist/core/src/types/index.d.ts.map +1 -1
- package/dist/core/src/types/messaging.d.ts +0 -1
- package/dist/core/src/types/messaging.d.ts.map +1 -1
- package/dist/core/src/types/pubSub.d.ts +0 -1
- package/dist/core/src/types/pubSub.d.ts.map +1 -1
- package/dist/core/src/types/video.d.ts +8 -7
- package/dist/core/src/types/video.d.ts.map +1 -1
- package/dist/core/src/types/videoRoomDevice.d.ts +6 -4
- package/dist/core/src/types/videoRoomDevice.d.ts.map +1 -1
- package/dist/core/src/types/videoRoomSession.d.ts +9 -0
- package/dist/core/src/types/videoRoomSession.d.ts.map +1 -1
- package/dist/core/src/types/voiceCall.d.ts +16 -5
- package/dist/core/src/types/voiceCall.d.ts.map +1 -1
- package/dist/core/src/utils/eventUtils.d.ts +2 -0
- package/dist/core/src/utils/eventUtils.d.ts.map +1 -0
- package/dist/core/src/utils/eventUtils.test.d.ts +2 -0
- package/dist/core/src/utils/eventUtils.test.d.ts.map +1 -0
- package/dist/core/src/utils/index.d.ts +3 -2
- package/dist/core/src/utils/index.d.ts.map +1 -1
- package/dist/core/src/utils/interfaces.d.ts +9 -117
- package/dist/core/src/utils/interfaces.d.ts.map +1 -1
- package/dist/index.esm.js +365 -320
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +366 -342
- package/dist/index.js.map +3 -3
- package/dist/index.umd.js +3 -3
- package/dist/index.umd.js.map +1 -1
- package/dist/js/src/BaseRoomSession.d.ts +5 -15
- package/dist/js/src/BaseRoomSession.d.ts.map +1 -1
- package/dist/js/src/Client.d.ts.map +1 -1
- package/dist/js/src/RoomSession.d.ts.map +1 -1
- package/dist/js/src/cantina/VideoManager.d.ts +4 -5
- package/dist/js/src/cantina/VideoManager.d.ts.map +1 -1
- package/dist/js/src/cantina/workers/index.d.ts +2 -0
- package/dist/js/src/cantina/workers/index.d.ts.map +1 -0
- package/dist/js/src/cantina/workers/videoManagerRoomWorker.d.ts +4 -0
- package/dist/js/src/cantina/workers/videoManagerRoomWorker.d.ts.map +1 -0
- package/dist/js/src/cantina/workers/videoManagerRoomsWorker.d.ts +4 -0
- package/dist/js/src/cantina/workers/videoManagerRoomsWorker.d.ts.map +1 -0
- package/dist/js/src/cantina/workers/videoManagerWorker.d.ts +7 -0
- package/dist/js/src/cantina/workers/videoManagerWorker.d.ts.map +1 -0
- package/dist/js/src/createRoomObject.d.ts.map +1 -1
- package/dist/js/src/fabric/WSClient.d.ts.map +1 -1
- package/dist/js/src/features/mediaElements/mediaElementsSagas.d.ts.map +1 -1
- package/dist/js/src/testUtils.d.ts +2 -0
- package/dist/js/src/testUtils.d.ts.map +1 -1
- package/dist/js/src/utils/interfaces.d.ts +2 -2
- package/dist/js/src/utils/interfaces.d.ts.map +1 -1
- package/dist/js/src/utils/videoElement.d.ts.map +1 -1
- package/dist/js/src/video/childMemberJoinedWorker.d.ts.map +1 -1
- package/dist/js/src/video/memberListUpdatedWorker.d.ts.map +1 -1
- package/dist/js/src/video/videoPlaybackWorker.d.ts +4 -0
- package/dist/js/src/video/videoPlaybackWorker.d.ts.map +1 -0
- package/dist/js/src/video/videoRecordWorker.d.ts +4 -0
- package/dist/js/src/video/videoRecordWorker.d.ts.map +1 -0
- package/dist/js/src/video/videoStreamWorker.d.ts +4 -0
- package/dist/js/src/video/videoStreamWorker.d.ts.map +1 -0
- package/dist/js/src/video/videoWorker.d.ts +7 -0
- package/dist/js/src/video/videoWorker.d.ts.map +1 -0
- package/dist/js/src/video/workers.d.ts +1 -1
- package/dist/js/src/video/workers.d.ts.map +1 -1
- package/dist/js/tsconfig.build.tsbuildinfo +1 -1
- package/dist/webrtc/src/BaseConnection.d.ts +4 -5
- package/dist/webrtc/src/BaseConnection.d.ts.map +1 -1
- package/dist/webrtc/src/RTCPeer.d.ts +1 -1
- package/dist/webrtc/src/RTCPeer.d.ts.map +1 -1
- package/dist/webrtc/src/workers/roomSubscribedWorker.d.ts.map +1 -1
- package/dist/webrtc/src/workers/vertoEventWorker.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/BaseRoomSession.test.ts +4 -6
- package/src/BaseRoomSession.ts +47 -211
- package/src/Client.ts +1 -11
- package/src/RoomSession.ts +5 -5
- package/src/RoomSessionDevice.test.ts +0 -1
- package/src/RoomSessionScreenShare.test.ts +0 -1
- package/src/cantina/VideoManager.test.ts +0 -2
- package/src/cantina/VideoManager.ts +10 -51
- package/src/cantina/workers/index.ts +1 -0
- package/src/cantina/workers/videoManagerRoomWorker.ts +28 -0
- package/src/cantina/workers/videoManagerRoomsWorker.ts +33 -0
- package/src/cantina/workers/videoManagerWorker.ts +64 -0
- package/src/createRoomObject.ts +0 -1
- package/src/fabric/WSClient.ts +1 -2
- package/src/features/mediaElements/mediaElementsSagas.ts +7 -3
- package/src/utils/interfaces.ts +4 -2
- package/src/utils/videoElement.ts +1 -0
- package/src/video/childMemberJoinedWorker.test.ts +11 -12
- package/src/video/childMemberJoinedWorker.ts +0 -9
- package/src/video/memberListUpdatedWorker.ts +15 -15
- package/src/video/videoPlaybackWorker.ts +54 -0
- package/src/video/videoRecordWorker.ts +54 -0
- package/src/video/videoStreamWorker.ts +48 -0
- package/src/video/videoWorker.ts +96 -0
- package/src/video/workers.ts +1 -1
- package/dist/core/src/ApplyEventListeners.d.ts +0 -11
- package/dist/core/src/ApplyEventListeners.d.ts.map +0 -1
- package/dist/core/src/redux/features/pubSub/pubSubSaga.d.ts +0 -10
- package/dist/core/src/redux/features/pubSub/pubSubSaga.d.ts.map +0 -1
- package/dist/core/src/redux/features/pubSub/pubSubSaga.test.d.ts +0 -2
- package/dist/core/src/redux/features/pubSub/pubSubSaga.test.d.ts.map +0 -1
- package/dist/core/src/redux/features/session/sessionSaga.test.d.ts +0 -2
- package/dist/core/src/redux/features/session/sessionSaga.test.d.ts.map +0 -1
- package/dist/core/src/rooms/RoomSessionRTPlayback.d.ts +0 -47
- package/dist/core/src/rooms/RoomSessionRTPlayback.d.ts.map +0 -1
- package/dist/core/src/rooms/RoomSessionRTPlayback.test.d.ts +0 -2
- package/dist/core/src/rooms/RoomSessionRTPlayback.test.d.ts.map +0 -1
- package/dist/core/src/rooms/RoomSessionRTRecording.d.ts +0 -37
- package/dist/core/src/rooms/RoomSessionRTRecording.d.ts.map +0 -1
- package/dist/core/src/rooms/RoomSessionRTRecording.test.d.ts +0 -2
- package/dist/core/src/rooms/RoomSessionRTRecording.test.d.ts.map +0 -1
- package/dist/core/src/rooms/RoomSessionRTStream.d.ts +0 -36
- package/dist/core/src/rooms/RoomSessionRTStream.d.ts.map +0 -1
- package/dist/core/src/rooms/RoomSessionRTStream.test.d.ts +0 -2
- package/dist/core/src/rooms/RoomSessionRTStream.test.d.ts.map +0 -1
- package/dist/core/src/rooms/methodsRT.d.ts +0 -65
- package/dist/core/src/rooms/methodsRT.d.ts.map +0 -1
- package/dist/core/src/utils/eventTransformUtils.d.ts +0 -16
- package/dist/core/src/utils/eventTransformUtils.d.ts.map +0 -1
- package/dist/core/src/utils/eventTransformUtils.test.d.ts +0 -2
- package/dist/core/src/utils/eventTransformUtils.test.d.ts.map +0 -1
- package/dist/core/src/utils/proxyUtils.d.ts +0 -17
- package/dist/core/src/utils/proxyUtils.d.ts.map +0 -1
- package/dist/js/src/cantina/workers.d.ts +0 -4
- package/dist/js/src/cantina/workers.d.ts.map +0 -1
- package/dist/js/src/video/memberPositionWorker.d.ts +0 -3
- package/dist/js/src/video/memberPositionWorker.d.ts.map +0 -1
- package/src/cantina/workers.ts +0 -28
- package/src/video/memberPositionWorker.ts +0 -15
package/dist/index.esm.js
CHANGED
|
@@ -143,7 +143,7 @@ __export(video_exports, {
|
|
|
143
143
|
});
|
|
144
144
|
|
|
145
145
|
// src/createRoomObject.ts
|
|
146
|
-
import { getLogger as
|
|
146
|
+
import { getLogger as getLogger13 } from "@signalwire/core";
|
|
147
147
|
|
|
148
148
|
// src/createClient.ts
|
|
149
149
|
import {
|
|
@@ -164,7 +164,8 @@ import {
|
|
|
164
164
|
import {
|
|
165
165
|
getLogger as getLogger2,
|
|
166
166
|
actions as actions2,
|
|
167
|
-
sagaEffects
|
|
167
|
+
sagaEffects,
|
|
168
|
+
LOCAL_EVENT_PREFIX
|
|
168
169
|
} from "@signalwire/core";
|
|
169
170
|
import { setMediaElementSinkId } from "@signalwire/webrtc";
|
|
170
171
|
|
|
@@ -249,6 +250,7 @@ var makeLayoutChangedHandler = ({ localOverlay, rootElement }) => async ({ layou
|
|
|
249
250
|
localVideo.style.width = "100%";
|
|
250
251
|
localVideo.style.height = "100%";
|
|
251
252
|
localVideo.style.pointerEvents = "none";
|
|
253
|
+
localVideo.style.objectFit = "cover";
|
|
252
254
|
myLayer.appendChild(localVideo);
|
|
253
255
|
const mcuLayers = rootElement.querySelector(".mcuLayers");
|
|
254
256
|
const exists = mcuLayers == null ? void 0 : mcuLayers.querySelector(`#${myLayer.id}`);
|
|
@@ -437,7 +439,7 @@ var makeVideoElementSaga = ({
|
|
|
437
439
|
localOverlay.hide();
|
|
438
440
|
}
|
|
439
441
|
};
|
|
440
|
-
room.on(
|
|
442
|
+
room.on(`${LOCAL_EVENT_PREFIX}.mirror.video`, (value) => {
|
|
441
443
|
localOverlay.setLocalOverlayMirror(value);
|
|
442
444
|
});
|
|
443
445
|
room.on("layout.changed", (params) => {
|
|
@@ -553,7 +555,7 @@ function* audioElementActionsWatcher({
|
|
|
553
555
|
switch (action.type) {
|
|
554
556
|
case setSpeakerActionType:
|
|
555
557
|
const response = yield sagaEffects.call(setMediaElementSinkId, element, action.payload);
|
|
556
|
-
room.emit(
|
|
558
|
+
room.emit(`${LOCAL_EVENT_PREFIX}.speaker.updated`, action.payload);
|
|
557
559
|
room.settleCustomSagaTrigger({
|
|
558
560
|
dispatchId: action.dispatchId,
|
|
559
561
|
payload: response,
|
|
@@ -661,11 +663,10 @@ function* videoElementSetupWorker({
|
|
|
661
663
|
// src/BaseRoomSession.ts
|
|
662
664
|
import {
|
|
663
665
|
connect,
|
|
664
|
-
Rooms as
|
|
666
|
+
Rooms as Rooms6,
|
|
665
667
|
extendComponent as extendComponent3,
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
MemberPosition as MemberPosition2
|
|
668
|
+
LOCAL_EVENT_PREFIX as LOCAL_EVENT_PREFIX2,
|
|
669
|
+
validateEventsToSubscribe as validateEventsToSubscribe2
|
|
669
670
|
} from "@signalwire/core";
|
|
670
671
|
import {
|
|
671
672
|
getDisplayMedia,
|
|
@@ -740,7 +741,7 @@ import {
|
|
|
740
741
|
} from "@signalwire/core";
|
|
741
742
|
var noop = () => {
|
|
742
743
|
};
|
|
743
|
-
var EXTERNAL_MEMBER_LIST_UPDATED_EVENT = "
|
|
744
|
+
var EXTERNAL_MEMBER_LIST_UPDATED_EVENT = "memberList.updated";
|
|
744
745
|
var INTERNAL_MEMBER_LIST_UPDATED_EVENT = toInternalEventName({
|
|
745
746
|
event: EXTERNAL_MEMBER_LIST_UPDATED_EVENT
|
|
746
747
|
});
|
|
@@ -760,7 +761,7 @@ var getMemberListEventsToSubscribe = (subscriptions) => {
|
|
|
760
761
|
});
|
|
761
762
|
};
|
|
762
763
|
var shouldHandleMemberList = (subscriptions) => {
|
|
763
|
-
return subscriptions.some((event) => event.includes(
|
|
764
|
+
return subscriptions.some((event) => event.includes(EXTERNAL_MEMBER_LIST_UPDATED_EVENT));
|
|
764
765
|
};
|
|
765
766
|
var getMembersFromAction = (action) => {
|
|
766
767
|
if (action.type === "video.room.joined") {
|
|
@@ -803,7 +804,8 @@ var initMemberListSubscriptions = (room, subscriptions) => {
|
|
|
803
804
|
};
|
|
804
805
|
};
|
|
805
806
|
function* membersListUpdatedWatcher({
|
|
806
|
-
|
|
807
|
+
swEventChannel,
|
|
808
|
+
instance
|
|
807
809
|
}) {
|
|
808
810
|
const memberList = /* @__PURE__ */ new Map();
|
|
809
811
|
function* worker(pubSubAction) {
|
|
@@ -813,20 +815,17 @@ function* membersListUpdatedWatcher({
|
|
|
813
815
|
room_session_id: roomSessionId,
|
|
814
816
|
members
|
|
815
817
|
};
|
|
816
|
-
|
|
817
|
-
type: SYNTHETIC_MEMBER_LIST_UPDATED_EVENT,
|
|
818
|
-
payload: memberListPayload
|
|
819
|
-
});
|
|
818
|
+
instance.emit(SYNTHETIC_MEMBER_LIST_UPDATED_EVENT, memberListPayload);
|
|
820
819
|
}
|
|
821
820
|
while (true) {
|
|
822
|
-
const pubSubAction = yield sagaEffects2.take(
|
|
821
|
+
const pubSubAction = yield sagaEffects2.take(swEventChannel, ({ type }) => {
|
|
823
822
|
return isMemberListEvent(type);
|
|
824
823
|
});
|
|
825
824
|
yield sagaEffects2.fork(worker, pubSubAction);
|
|
826
825
|
}
|
|
827
826
|
}
|
|
828
827
|
var memberListUpdatedWorker = function* membersChangedWorker({
|
|
829
|
-
channels: {
|
|
828
|
+
channels: { swEventChannel },
|
|
830
829
|
instance
|
|
831
830
|
}) {
|
|
832
831
|
const subscriptions = instance.getSubscriptions();
|
|
@@ -835,29 +834,18 @@ var memberListUpdatedWorker = function* membersChangedWorker({
|
|
|
835
834
|
}
|
|
836
835
|
const { cleanup } = initMemberListSubscriptions(instance, subscriptions);
|
|
837
836
|
yield sagaEffects2.fork(membersListUpdatedWatcher, {
|
|
838
|
-
|
|
837
|
+
swEventChannel,
|
|
838
|
+
instance
|
|
839
839
|
});
|
|
840
840
|
instance.once("destroy", () => {
|
|
841
841
|
cleanup();
|
|
842
842
|
});
|
|
843
843
|
};
|
|
844
844
|
|
|
845
|
-
// src/video/memberPositionWorker.ts
|
|
846
|
-
import {
|
|
847
|
-
MemberPosition,
|
|
848
|
-
sagaEffects as sagaEffects3
|
|
849
|
-
} from "@signalwire/core";
|
|
850
|
-
var memberPositionWorker = function* memberPositionWorker2(options) {
|
|
851
|
-
if (!options.initialState) {
|
|
852
|
-
throw new Error("[memberPositionWorker] Missing initialState");
|
|
853
|
-
}
|
|
854
|
-
yield sagaEffects3.fork(MemberPosition.memberPositionWorker, options);
|
|
855
|
-
};
|
|
856
|
-
|
|
857
845
|
// src/video/childMemberJoinedWorker.ts
|
|
858
846
|
import {
|
|
859
847
|
getLogger as getLogger3,
|
|
860
|
-
sagaEffects as
|
|
848
|
+
sagaEffects as sagaEffects3,
|
|
861
849
|
componentSelectors,
|
|
862
850
|
componentActions
|
|
863
851
|
} from "@signalwire/core";
|
|
@@ -869,7 +857,7 @@ var childMemberJoinedWorker = function* (options) {
|
|
|
869
857
|
if (!parentId) {
|
|
870
858
|
throw new Error("Missing parentId for childMemberJoinedWorker");
|
|
871
859
|
}
|
|
872
|
-
const action = yield
|
|
860
|
+
const action = yield sagaEffects3.take(swEventChannel, (action2) => {
|
|
873
861
|
if (action2.type === "video.member.joined") {
|
|
874
862
|
return action2.payload.member.parent_id === parentId;
|
|
875
863
|
}
|
|
@@ -877,14 +865,12 @@ var childMemberJoinedWorker = function* (options) {
|
|
|
877
865
|
});
|
|
878
866
|
const { member } = action.payload;
|
|
879
867
|
if (member == null ? void 0 : member.parent_id) {
|
|
880
|
-
const byId = yield
|
|
868
|
+
const byId = yield sagaEffects3.select(componentSelectors.getComponentsById);
|
|
881
869
|
const parent = Object.values(byId).find((row) => {
|
|
882
870
|
return "memberId" in row && row.memberId === member.parent_id;
|
|
883
871
|
});
|
|
884
872
|
if (parent) {
|
|
885
|
-
|
|
886
|
-
instance.applyEmitterTransforms();
|
|
887
|
-
yield sagaEffects4.put(componentActions.upsert({
|
|
873
|
+
yield sagaEffects3.put(componentActions.upsert({
|
|
888
874
|
id: instance.callId,
|
|
889
875
|
roomId: action.payload.room_id,
|
|
890
876
|
roomSessionId: action.payload.room_session_id,
|
|
@@ -898,6 +884,193 @@ var childMemberJoinedWorker = function* (options) {
|
|
|
898
884
|
getLogger3().trace("childMemberJoinedWorker ended");
|
|
899
885
|
};
|
|
900
886
|
|
|
887
|
+
// src/video/videoWorker.ts
|
|
888
|
+
import {
|
|
889
|
+
getLogger as getLogger7,
|
|
890
|
+
sagaEffects as sagaEffects4,
|
|
891
|
+
MemberPosition,
|
|
892
|
+
stripNamespacePrefix as stripNamespacePrefix3
|
|
893
|
+
} from "@signalwire/core";
|
|
894
|
+
|
|
895
|
+
// src/video/videoStreamWorker.ts
|
|
896
|
+
import {
|
|
897
|
+
getLogger as getLogger4,
|
|
898
|
+
Rooms as Rooms3
|
|
899
|
+
} from "@signalwire/core";
|
|
900
|
+
var videoStreamWorker = function* (options) {
|
|
901
|
+
getLogger4().trace("videoStreamWorker started");
|
|
902
|
+
const {
|
|
903
|
+
instance: roomSession,
|
|
904
|
+
action: { type, payload },
|
|
905
|
+
instanceMap: { get, set, remove }
|
|
906
|
+
} = options;
|
|
907
|
+
let streamInstance = get(payload.stream.id);
|
|
908
|
+
if (!streamInstance) {
|
|
909
|
+
streamInstance = Rooms3.createRoomSessionStreamObject({
|
|
910
|
+
store: roomSession.store,
|
|
911
|
+
payload
|
|
912
|
+
});
|
|
913
|
+
} else {
|
|
914
|
+
streamInstance.setPayload(payload);
|
|
915
|
+
}
|
|
916
|
+
set(payload.stream.id, streamInstance);
|
|
917
|
+
switch (type) {
|
|
918
|
+
case "video.stream.started":
|
|
919
|
+
roomSession.emit("stream.started", streamInstance);
|
|
920
|
+
break;
|
|
921
|
+
case "video.stream.ended":
|
|
922
|
+
roomSession.emit("stream.ended", streamInstance);
|
|
923
|
+
remove(payload.stream.id);
|
|
924
|
+
break;
|
|
925
|
+
default:
|
|
926
|
+
getLogger4().warn(`Unknown video.stream event: "${type}"`);
|
|
927
|
+
break;
|
|
928
|
+
}
|
|
929
|
+
getLogger4().trace("videoStreamWorker ended");
|
|
930
|
+
};
|
|
931
|
+
|
|
932
|
+
// src/video/videoRecordWorker.ts
|
|
933
|
+
import {
|
|
934
|
+
getLogger as getLogger5,
|
|
935
|
+
Rooms as Rooms4,
|
|
936
|
+
stripNamespacePrefix
|
|
937
|
+
} from "@signalwire/core";
|
|
938
|
+
var videoRecordWorker = function* (options) {
|
|
939
|
+
getLogger5().trace("videoRecordWorker started");
|
|
940
|
+
const {
|
|
941
|
+
instance: roomSession,
|
|
942
|
+
action: { type, payload },
|
|
943
|
+
instanceMap: { get, set, remove }
|
|
944
|
+
} = options;
|
|
945
|
+
let recordingInstance = get(payload.recording.id);
|
|
946
|
+
if (!recordingInstance) {
|
|
947
|
+
recordingInstance = Rooms4.createRoomSessionRecordingObject({
|
|
948
|
+
store: roomSession.store,
|
|
949
|
+
payload
|
|
950
|
+
});
|
|
951
|
+
} else {
|
|
952
|
+
recordingInstance.setPayload(payload);
|
|
953
|
+
}
|
|
954
|
+
set(payload.recording.id, recordingInstance);
|
|
955
|
+
const event = stripNamespacePrefix(type);
|
|
956
|
+
switch (type) {
|
|
957
|
+
case "video.recording.started":
|
|
958
|
+
case "video.recording.updated": {
|
|
959
|
+
roomSession.emit(event, recordingInstance);
|
|
960
|
+
break;
|
|
961
|
+
}
|
|
962
|
+
case "video.recording.ended":
|
|
963
|
+
roomSession.emit(event, recordingInstance);
|
|
964
|
+
remove(payload.recording.id);
|
|
965
|
+
break;
|
|
966
|
+
default:
|
|
967
|
+
getLogger5().warn(`Unknown video.stream event: "${type}"`);
|
|
968
|
+
break;
|
|
969
|
+
}
|
|
970
|
+
getLogger5().trace("videoRecordWorker ended");
|
|
971
|
+
};
|
|
972
|
+
|
|
973
|
+
// src/video/videoPlaybackWorker.ts
|
|
974
|
+
import {
|
|
975
|
+
getLogger as getLogger6,
|
|
976
|
+
Rooms as Rooms5,
|
|
977
|
+
stripNamespacePrefix as stripNamespacePrefix2
|
|
978
|
+
} from "@signalwire/core";
|
|
979
|
+
var videoPlaybackWorker = function* (options) {
|
|
980
|
+
getLogger6().trace("videoPlaybackWorker started");
|
|
981
|
+
const {
|
|
982
|
+
instance: roomSession,
|
|
983
|
+
action: { type, payload },
|
|
984
|
+
instanceMap: { get, set, remove }
|
|
985
|
+
} = options;
|
|
986
|
+
let playbackInstance = get(payload.playback.id);
|
|
987
|
+
if (!playbackInstance) {
|
|
988
|
+
playbackInstance = Rooms5.createRoomSessionPlaybackObject({
|
|
989
|
+
store: roomSession.store,
|
|
990
|
+
payload
|
|
991
|
+
});
|
|
992
|
+
} else {
|
|
993
|
+
playbackInstance.setPayload(payload);
|
|
994
|
+
}
|
|
995
|
+
set(payload.playback.id, playbackInstance);
|
|
996
|
+
const event = stripNamespacePrefix2(type);
|
|
997
|
+
switch (type) {
|
|
998
|
+
case "video.playback.started":
|
|
999
|
+
case "video.playback.updated": {
|
|
1000
|
+
roomSession.emit(event, playbackInstance);
|
|
1001
|
+
break;
|
|
1002
|
+
}
|
|
1003
|
+
case "video.playback.ended":
|
|
1004
|
+
roomSession.emit(event, playbackInstance);
|
|
1005
|
+
remove(payload.playback.id);
|
|
1006
|
+
break;
|
|
1007
|
+
default:
|
|
1008
|
+
getLogger6().warn(`Unknown video.stream event: "${type}"`);
|
|
1009
|
+
break;
|
|
1010
|
+
}
|
|
1011
|
+
getLogger6().trace("videoPlaybackWorker ended");
|
|
1012
|
+
};
|
|
1013
|
+
|
|
1014
|
+
// src/video/videoWorker.ts
|
|
1015
|
+
var videoWorker = function* (options) {
|
|
1016
|
+
const { channels, instance: roomSession } = options;
|
|
1017
|
+
const { swEventChannel } = channels;
|
|
1018
|
+
function* worker(action) {
|
|
1019
|
+
const { type, payload } = action;
|
|
1020
|
+
switch (type) {
|
|
1021
|
+
case "video.room.subscribed":
|
|
1022
|
+
yield sagaEffects4.spawn(MemberPosition.memberPositionWorker, __spreadProps(__spreadValues({}, options), {
|
|
1023
|
+
instance: roomSession,
|
|
1024
|
+
initialState: payload
|
|
1025
|
+
}));
|
|
1026
|
+
break;
|
|
1027
|
+
case "video.playback.started":
|
|
1028
|
+
case "video.playback.updated":
|
|
1029
|
+
case "video.playback.ended":
|
|
1030
|
+
yield sagaEffects4.fork(videoPlaybackWorker, __spreadValues({
|
|
1031
|
+
action
|
|
1032
|
+
}, options));
|
|
1033
|
+
return;
|
|
1034
|
+
case "video.recording.started":
|
|
1035
|
+
case "video.recording.updated":
|
|
1036
|
+
case "video.recording.ended":
|
|
1037
|
+
yield sagaEffects4.fork(videoRecordWorker, __spreadValues({
|
|
1038
|
+
action
|
|
1039
|
+
}, options));
|
|
1040
|
+
return;
|
|
1041
|
+
case "video.stream.ended":
|
|
1042
|
+
case "video.stream.started":
|
|
1043
|
+
yield sagaEffects4.fork(videoStreamWorker, __spreadValues({
|
|
1044
|
+
action
|
|
1045
|
+
}, options));
|
|
1046
|
+
return;
|
|
1047
|
+
case "video.room.audience_count": {
|
|
1048
|
+
roomSession.emit("room.audienceCount", payload);
|
|
1049
|
+
return;
|
|
1050
|
+
}
|
|
1051
|
+
case "video.member.talking": {
|
|
1052
|
+
const { member } = payload;
|
|
1053
|
+
if ("talking" in member) {
|
|
1054
|
+
const suffix = member.talking ? "started" : "ended";
|
|
1055
|
+
roomSession.emit(`member.talking.${suffix}`, payload);
|
|
1056
|
+
const deprecatedSuffix = member.talking ? "start" : "stop";
|
|
1057
|
+
roomSession.emit(`member.talking.${deprecatedSuffix}`, payload);
|
|
1058
|
+
}
|
|
1059
|
+
break;
|
|
1060
|
+
}
|
|
1061
|
+
default:
|
|
1062
|
+
break;
|
|
1063
|
+
}
|
|
1064
|
+
roomSession.emit(stripNamespacePrefix3(type), payload);
|
|
1065
|
+
}
|
|
1066
|
+
const isVideoEvent = (action) => action.type.startsWith("video.");
|
|
1067
|
+
while (true) {
|
|
1068
|
+
const action = yield sagaEffects4.take(swEventChannel, isVideoEvent);
|
|
1069
|
+
yield sagaEffects4.fork(worker, action);
|
|
1070
|
+
}
|
|
1071
|
+
getLogger7().trace("videoWorker ended");
|
|
1072
|
+
};
|
|
1073
|
+
|
|
901
1074
|
// src/BaseRoomSession.ts
|
|
902
1075
|
var RoomSessionConnection = class extends BaseConnection3 {
|
|
903
1076
|
constructor(options) {
|
|
@@ -907,6 +1080,9 @@ var RoomSessionConnection = class extends BaseConnection3 {
|
|
|
907
1080
|
__publicField(this, "_mirrored");
|
|
908
1081
|
__publicField(this, "_audioEl");
|
|
909
1082
|
this._mirrored = options.mirrorLocalVideoOverlay;
|
|
1083
|
+
this.runWorker("videoWorker", {
|
|
1084
|
+
worker: videoWorker
|
|
1085
|
+
});
|
|
910
1086
|
}
|
|
911
1087
|
get screenShareList() {
|
|
912
1088
|
return Array.from(this._screenShareList);
|
|
@@ -928,173 +1104,11 @@ var RoomSessionConnection = class extends BaseConnection3 {
|
|
|
928
1104
|
return (_b = (_a = authState == null ? void 0 : authState.room) == null ? void 0 : _a.scopes) != null ? _b : [];
|
|
929
1105
|
});
|
|
930
1106
|
}
|
|
931
|
-
getEmitterTransforms() {
|
|
932
|
-
return /* @__PURE__ */ new Map([
|
|
933
|
-
[
|
|
934
|
-
["video.room.joined"],
|
|
935
|
-
{
|
|
936
|
-
type: "roomSession",
|
|
937
|
-
instanceFactory: () => {
|
|
938
|
-
return {};
|
|
939
|
-
},
|
|
940
|
-
payloadTransform: (payload) => {
|
|
941
|
-
return payload;
|
|
942
|
-
},
|
|
943
|
-
nestedFieldsToProcess: {
|
|
944
|
-
recordings: {
|
|
945
|
-
eventTransformType: "roomSessionRecording",
|
|
946
|
-
processInstancePayload: (payload) => ({ recording: payload })
|
|
947
|
-
},
|
|
948
|
-
playbacks: {
|
|
949
|
-
eventTransformType: "roomSessionPlayback",
|
|
950
|
-
processInstancePayload: (payload) => ({ playback: payload })
|
|
951
|
-
},
|
|
952
|
-
streams: {
|
|
953
|
-
eventTransformType: "roomSessionStream",
|
|
954
|
-
processInstancePayload: (payload) => ({ stream: payload })
|
|
955
|
-
}
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
],
|
|
959
|
-
[
|
|
960
|
-
[toLocalEvent("video.recording.list")],
|
|
961
|
-
{
|
|
962
|
-
type: "roomSessionRecordingList",
|
|
963
|
-
instanceFactory: (_payload) => {
|
|
964
|
-
return {};
|
|
965
|
-
},
|
|
966
|
-
payloadTransform: (payload) => {
|
|
967
|
-
return payload;
|
|
968
|
-
},
|
|
969
|
-
nestedFieldsToProcess: {
|
|
970
|
-
recordings: {
|
|
971
|
-
eventTransformType: "roomSessionRecording",
|
|
972
|
-
processInstancePayload: (payload) => ({ recording: payload })
|
|
973
|
-
}
|
|
974
|
-
}
|
|
975
|
-
}
|
|
976
|
-
],
|
|
977
|
-
[
|
|
978
|
-
[toLocalEvent("video.playback.list")],
|
|
979
|
-
{
|
|
980
|
-
type: "roomSessionPlaybackList",
|
|
981
|
-
instanceFactory: (_payload) => {
|
|
982
|
-
return {};
|
|
983
|
-
},
|
|
984
|
-
payloadTransform: (payload) => {
|
|
985
|
-
return payload;
|
|
986
|
-
},
|
|
987
|
-
nestedFieldsToProcess: {
|
|
988
|
-
playbacks: {
|
|
989
|
-
eventTransformType: "roomSessionPlayback",
|
|
990
|
-
processInstancePayload: (payload) => ({ playback: payload })
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
}
|
|
994
|
-
],
|
|
995
|
-
[
|
|
996
|
-
[
|
|
997
|
-
toLocalEvent("video.recording.start"),
|
|
998
|
-
"video.recording.started",
|
|
999
|
-
"video.recording.updated",
|
|
1000
|
-
"video.recording.ended"
|
|
1001
|
-
],
|
|
1002
|
-
{
|
|
1003
|
-
type: "roomSessionRecording",
|
|
1004
|
-
instanceFactory: (_payload) => {
|
|
1005
|
-
return Rooms3.createRoomSessionRecordingObject({
|
|
1006
|
-
store: this.store,
|
|
1007
|
-
emitter: this.emitter
|
|
1008
|
-
});
|
|
1009
|
-
},
|
|
1010
|
-
payloadTransform: (payload) => {
|
|
1011
|
-
return toExternalJSON(__spreadProps(__spreadValues({}, payload.recording), {
|
|
1012
|
-
room_session_id: this.roomSessionId
|
|
1013
|
-
}));
|
|
1014
|
-
}
|
|
1015
|
-
}
|
|
1016
|
-
],
|
|
1017
|
-
[
|
|
1018
|
-
[
|
|
1019
|
-
toLocalEvent("video.playback.start"),
|
|
1020
|
-
"video.playback.started",
|
|
1021
|
-
"video.playback.updated",
|
|
1022
|
-
"video.playback.ended"
|
|
1023
|
-
],
|
|
1024
|
-
{
|
|
1025
|
-
type: "roomSessionPlayback",
|
|
1026
|
-
instanceFactory: (_payload) => {
|
|
1027
|
-
return Rooms3.createRoomSessionPlaybackObject({
|
|
1028
|
-
store: this.store,
|
|
1029
|
-
emitter: this.emitter
|
|
1030
|
-
});
|
|
1031
|
-
},
|
|
1032
|
-
payloadTransform: (payload) => {
|
|
1033
|
-
return toExternalJSON(__spreadProps(__spreadValues({}, payload.playback), {
|
|
1034
|
-
room_session_id: this.roomSessionId
|
|
1035
|
-
}));
|
|
1036
|
-
}
|
|
1037
|
-
}
|
|
1038
|
-
],
|
|
1039
|
-
[
|
|
1040
|
-
[toLocalEvent("video.stream.list")],
|
|
1041
|
-
{
|
|
1042
|
-
type: "roomSessionStreamList",
|
|
1043
|
-
instanceFactory: (_payload) => {
|
|
1044
|
-
return {};
|
|
1045
|
-
},
|
|
1046
|
-
payloadTransform: (payload) => {
|
|
1047
|
-
return payload;
|
|
1048
|
-
},
|
|
1049
|
-
nestedFieldsToProcess: {
|
|
1050
|
-
streams: {
|
|
1051
|
-
eventTransformType: "roomSessionStream",
|
|
1052
|
-
processInstancePayload: (payload) => {
|
|
1053
|
-
return { stream: payload };
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
}
|
|
1057
|
-
}
|
|
1058
|
-
],
|
|
1059
|
-
[
|
|
1060
|
-
[
|
|
1061
|
-
toLocalEvent("video.stream.start"),
|
|
1062
|
-
"video.stream.started",
|
|
1063
|
-
"video.stream.ended"
|
|
1064
|
-
],
|
|
1065
|
-
{
|
|
1066
|
-
type: "roomSessionStream",
|
|
1067
|
-
instanceFactory: (_payload) => {
|
|
1068
|
-
return Rooms3.createRoomSessionStreamObject({
|
|
1069
|
-
store: this.store,
|
|
1070
|
-
emitter: this.emitter
|
|
1071
|
-
});
|
|
1072
|
-
},
|
|
1073
|
-
payloadTransform: (payload) => {
|
|
1074
|
-
return toExternalJSON(__spreadProps(__spreadValues({}, payload.stream), {
|
|
1075
|
-
room_session_id: this.roomSessionId
|
|
1076
|
-
}));
|
|
1077
|
-
}
|
|
1078
|
-
}
|
|
1079
|
-
]
|
|
1080
|
-
]);
|
|
1081
|
-
}
|
|
1082
|
-
getCompoundEvents() {
|
|
1083
|
-
return new Map([
|
|
1084
|
-
...MemberPosition2.MEMBER_POSITION_COMPOUND_EVENTS
|
|
1085
|
-
]);
|
|
1086
|
-
}
|
|
1087
1107
|
attachPreConnectWorkers() {
|
|
1088
1108
|
this.runWorker("memberListUpdated", {
|
|
1089
1109
|
worker: memberListUpdatedWorker
|
|
1090
1110
|
});
|
|
1091
1111
|
}
|
|
1092
|
-
attachOnSubscribedWorkers(payload) {
|
|
1093
|
-
this.runWorker("memberPositionWorker", {
|
|
1094
|
-
worker: memberPositionWorker,
|
|
1095
|
-
initialState: payload
|
|
1096
|
-
});
|
|
1097
|
-
}
|
|
1098
1112
|
async createScreenShareObject(opts = {}) {
|
|
1099
1113
|
return this.startScreenShare(opts);
|
|
1100
1114
|
}
|
|
@@ -1228,7 +1242,7 @@ var RoomSessionConnection = class extends BaseConnection3 {
|
|
|
1228
1242
|
}
|
|
1229
1243
|
updateSpeaker({ deviceId }) {
|
|
1230
1244
|
const prevId = this._audioEl.sinkId;
|
|
1231
|
-
this.once(
|
|
1245
|
+
this.once(`${LOCAL_EVENT_PREFIX2}.speaker.updated`, async (newId) => {
|
|
1232
1246
|
const prevSpeaker = await getSpeakerById(prevId);
|
|
1233
1247
|
const newSpeaker = await getSpeakerById(newId);
|
|
1234
1248
|
const isSame = (newSpeaker == null ? void 0 : newSpeaker.deviceId) === (prevSpeaker == null ? void 0 : prevSpeaker.deviceId);
|
|
@@ -1285,7 +1299,6 @@ var RoomSessionConnection = class extends BaseConnection3 {
|
|
|
1285
1299
|
if (this._audioEl)
|
|
1286
1300
|
return this._audioEl;
|
|
1287
1301
|
this._audioEl = new Audio();
|
|
1288
|
-
console.log("listener attached!");
|
|
1289
1302
|
this._attachSpeakerTrackListener();
|
|
1290
1303
|
return this._audioEl;
|
|
1291
1304
|
}
|
|
@@ -1314,49 +1327,53 @@ var RoomSessionConnection = class extends BaseConnection3 {
|
|
|
1314
1327
|
mirrored: this._mirrored,
|
|
1315
1328
|
setMirrored: (value) => {
|
|
1316
1329
|
this._mirrored = value;
|
|
1317
|
-
this.emit(
|
|
1330
|
+
this.emit(`${LOCAL_EVENT_PREFIX2}.mirror.video`, this._mirrored);
|
|
1318
1331
|
}
|
|
1319
1332
|
};
|
|
1320
1333
|
}
|
|
1334
|
+
getSubscriptions() {
|
|
1335
|
+
const eventNamesWithPrefix = this.eventNames().map((event) => `video.${event}`);
|
|
1336
|
+
return validateEventsToSubscribe2(eventNamesWithPrefix);
|
|
1337
|
+
}
|
|
1321
1338
|
};
|
|
1322
1339
|
var RoomSessionAPI = extendComponent3(RoomSessionConnection, {
|
|
1323
|
-
audioMute:
|
|
1324
|
-
audioUnmute:
|
|
1325
|
-
videoMute:
|
|
1326
|
-
videoUnmute:
|
|
1327
|
-
deaf:
|
|
1328
|
-
undeaf:
|
|
1329
|
-
setInputVolume:
|
|
1330
|
-
setOutputVolume:
|
|
1331
|
-
setMicrophoneVolume:
|
|
1332
|
-
setSpeakerVolume:
|
|
1333
|
-
setInputSensitivity:
|
|
1334
|
-
removeMember:
|
|
1335
|
-
removeAllMembers:
|
|
1336
|
-
getMembers:
|
|
1337
|
-
getLayouts:
|
|
1338
|
-
setLayout:
|
|
1339
|
-
setPositions:
|
|
1340
|
-
setMemberPosition:
|
|
1341
|
-
hideVideoMuted:
|
|
1342
|
-
showVideoMuted:
|
|
1343
|
-
getRecordings:
|
|
1344
|
-
startRecording:
|
|
1345
|
-
getPlaybacks:
|
|
1346
|
-
play:
|
|
1347
|
-
setHideVideoMuted:
|
|
1348
|
-
getMeta:
|
|
1349
|
-
setMeta:
|
|
1350
|
-
updateMeta:
|
|
1351
|
-
deleteMeta:
|
|
1352
|
-
getMemberMeta:
|
|
1353
|
-
setMemberMeta:
|
|
1354
|
-
updateMemberMeta:
|
|
1355
|
-
deleteMemberMeta:
|
|
1356
|
-
promote:
|
|
1357
|
-
demote:
|
|
1358
|
-
getStreams:
|
|
1359
|
-
startStream:
|
|
1340
|
+
audioMute: Rooms6.audioMuteMember,
|
|
1341
|
+
audioUnmute: Rooms6.audioUnmuteMember,
|
|
1342
|
+
videoMute: Rooms6.videoMuteMember,
|
|
1343
|
+
videoUnmute: Rooms6.videoUnmuteMember,
|
|
1344
|
+
deaf: Rooms6.deafMember,
|
|
1345
|
+
undeaf: Rooms6.undeafMember,
|
|
1346
|
+
setInputVolume: Rooms6.setInputVolumeMember,
|
|
1347
|
+
setOutputVolume: Rooms6.setOutputVolumeMember,
|
|
1348
|
+
setMicrophoneVolume: Rooms6.setInputVolumeMember,
|
|
1349
|
+
setSpeakerVolume: Rooms6.setOutputVolumeMember,
|
|
1350
|
+
setInputSensitivity: Rooms6.setInputSensitivityMember,
|
|
1351
|
+
removeMember: Rooms6.removeMember,
|
|
1352
|
+
removeAllMembers: Rooms6.removeAllMembers,
|
|
1353
|
+
getMembers: Rooms6.getMembers,
|
|
1354
|
+
getLayouts: Rooms6.getLayouts,
|
|
1355
|
+
setLayout: Rooms6.setLayout,
|
|
1356
|
+
setPositions: Rooms6.setPositions,
|
|
1357
|
+
setMemberPosition: Rooms6.setMemberPosition,
|
|
1358
|
+
hideVideoMuted: Rooms6.hideVideoMuted,
|
|
1359
|
+
showVideoMuted: Rooms6.showVideoMuted,
|
|
1360
|
+
getRecordings: Rooms6.getRecordings,
|
|
1361
|
+
startRecording: Rooms6.startRecording,
|
|
1362
|
+
getPlaybacks: Rooms6.getPlaybacks,
|
|
1363
|
+
play: Rooms6.play,
|
|
1364
|
+
setHideVideoMuted: Rooms6.setHideVideoMuted,
|
|
1365
|
+
getMeta: Rooms6.getMeta,
|
|
1366
|
+
setMeta: Rooms6.setMeta,
|
|
1367
|
+
updateMeta: Rooms6.updateMeta,
|
|
1368
|
+
deleteMeta: Rooms6.deleteMeta,
|
|
1369
|
+
getMemberMeta: Rooms6.getMemberMeta,
|
|
1370
|
+
setMemberMeta: Rooms6.setMemberMeta,
|
|
1371
|
+
updateMemberMeta: Rooms6.updateMemberMeta,
|
|
1372
|
+
deleteMemberMeta: Rooms6.deleteMemberMeta,
|
|
1373
|
+
promote: Rooms6.promote,
|
|
1374
|
+
demote: Rooms6.demote,
|
|
1375
|
+
getStreams: Rooms6.getStreams,
|
|
1376
|
+
startStream: Rooms6.startStream
|
|
1360
1377
|
});
|
|
1361
1378
|
var createBaseRoomSessionObject = (params) => {
|
|
1362
1379
|
const room = connect({
|
|
@@ -1369,67 +1386,97 @@ var createBaseRoomSessionObject = (params) => {
|
|
|
1369
1386
|
|
|
1370
1387
|
// src/cantina/VideoManager.ts
|
|
1371
1388
|
import {
|
|
1372
|
-
BaseConsumer,
|
|
1373
1389
|
connect as connect2,
|
|
1374
|
-
|
|
1390
|
+
validateEventsToSubscribe as validateEventsToSubscribe3,
|
|
1391
|
+
BaseConsumer
|
|
1392
|
+
} from "@signalwire/core";
|
|
1393
|
+
|
|
1394
|
+
// src/cantina/workers/videoManagerWorker.ts
|
|
1395
|
+
import { getLogger as getLogger10, sagaEffects as sagaEffects5 } from "@signalwire/core";
|
|
1396
|
+
|
|
1397
|
+
// src/cantina/workers/videoManagerRoomsWorker.ts
|
|
1398
|
+
import {
|
|
1399
|
+
getLogger as getLogger8,
|
|
1400
|
+
toExternalJSON,
|
|
1401
|
+
stripNamespacePrefix as stripNamespacePrefix4
|
|
1375
1402
|
} from "@signalwire/core";
|
|
1403
|
+
var videoManagerRoomsWorker = function* (options) {
|
|
1404
|
+
getLogger8().trace("videoManagerRoomsWorker started");
|
|
1405
|
+
const {
|
|
1406
|
+
instance: client,
|
|
1407
|
+
action: { type, payload }
|
|
1408
|
+
} = options;
|
|
1409
|
+
const modPayload = {
|
|
1410
|
+
rooms: payload.rooms.map((row) => toExternalJSON(row))
|
|
1411
|
+
};
|
|
1412
|
+
client.emit(stripNamespacePrefix4(type), modPayload);
|
|
1413
|
+
getLogger8().trace("videoManagerRoomsWorker ended");
|
|
1414
|
+
};
|
|
1376
1415
|
|
|
1377
|
-
// src/cantina/workers.ts
|
|
1378
|
-
import {
|
|
1416
|
+
// src/cantina/workers/videoManagerRoomWorker.ts
|
|
1417
|
+
import {
|
|
1418
|
+
getLogger as getLogger9,
|
|
1419
|
+
toExternalJSON as toExternalJSON2,
|
|
1420
|
+
stripNamespacePrefix as stripNamespacePrefix5
|
|
1421
|
+
} from "@signalwire/core";
|
|
1422
|
+
var videoManagerRoomWorker = function* (options) {
|
|
1423
|
+
getLogger9().trace("videoManagerRoomWorker started");
|
|
1424
|
+
const {
|
|
1425
|
+
instance: client,
|
|
1426
|
+
action: { type, payload }
|
|
1427
|
+
} = options;
|
|
1428
|
+
client.emit(stripNamespacePrefix5(type), toExternalJSON2(payload));
|
|
1429
|
+
getLogger9().trace("videoManagerRoomWorker ended");
|
|
1430
|
+
};
|
|
1431
|
+
|
|
1432
|
+
// src/cantina/workers/videoManagerWorker.ts
|
|
1379
1433
|
var videoManagerWorker = function* (options) {
|
|
1380
|
-
|
|
1381
|
-
const {
|
|
1382
|
-
|
|
1434
|
+
getLogger10().trace("videoManagerWorker started");
|
|
1435
|
+
const {
|
|
1436
|
+
channels: { swEventChannel }
|
|
1437
|
+
} = options;
|
|
1438
|
+
function* worker(action) {
|
|
1439
|
+
const { type } = action;
|
|
1440
|
+
switch (type) {
|
|
1441
|
+
case "video-manager.rooms.subscribed":
|
|
1442
|
+
yield sagaEffects5.fork(videoManagerRoomsWorker, __spreadValues({
|
|
1443
|
+
action
|
|
1444
|
+
}, options));
|
|
1445
|
+
break;
|
|
1446
|
+
case "video-manager.room.added":
|
|
1447
|
+
case "video-manager.room.deleted":
|
|
1448
|
+
case "video-manager.room.ended":
|
|
1449
|
+
case "video-manager.room.started":
|
|
1450
|
+
case "video-manager.room.updated":
|
|
1451
|
+
yield sagaEffects5.fork(videoManagerRoomWorker, __spreadValues({
|
|
1452
|
+
action
|
|
1453
|
+
}, options));
|
|
1454
|
+
break;
|
|
1455
|
+
default:
|
|
1456
|
+
getLogger10().warn(`Unknown video-manager event: "${type}"`);
|
|
1457
|
+
break;
|
|
1458
|
+
}
|
|
1459
|
+
}
|
|
1383
1460
|
while (true) {
|
|
1384
1461
|
const action = yield sagaEffects5.take(swEventChannel, (action2) => {
|
|
1385
1462
|
return action2.type.startsWith("video-manager.");
|
|
1386
1463
|
});
|
|
1387
|
-
yield sagaEffects5.
|
|
1464
|
+
yield sagaEffects5.fork(worker, action);
|
|
1388
1465
|
}
|
|
1466
|
+
getLogger10().trace("videoManagerWorker ended");
|
|
1389
1467
|
};
|
|
1390
1468
|
|
|
1391
1469
|
// src/cantina/VideoManager.ts
|
|
1392
1470
|
var VideoManagerAPI = class extends BaseConsumer {
|
|
1393
1471
|
constructor(options) {
|
|
1394
1472
|
super(options);
|
|
1395
|
-
__publicField(this, "_eventsPrefix", "video-manager");
|
|
1396
1473
|
this.runWorker("videoManagerWorker", {
|
|
1397
1474
|
worker: videoManagerWorker
|
|
1398
1475
|
});
|
|
1399
1476
|
}
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
["video-manager.rooms.subscribed"],
|
|
1404
|
-
{
|
|
1405
|
-
type: "roomSession",
|
|
1406
|
-
instanceFactory: ({
|
|
1407
|
-
rooms
|
|
1408
|
-
}) => ({
|
|
1409
|
-
rooms: rooms.map((row) => toExternalJSON2(row))
|
|
1410
|
-
}),
|
|
1411
|
-
payloadTransform: ({
|
|
1412
|
-
rooms
|
|
1413
|
-
}) => ({
|
|
1414
|
-
rooms: rooms.map((row) => toExternalJSON2(row))
|
|
1415
|
-
})
|
|
1416
|
-
}
|
|
1417
|
-
],
|
|
1418
|
-
[
|
|
1419
|
-
[
|
|
1420
|
-
"video-manager.room.started",
|
|
1421
|
-
"video-manager.room.added",
|
|
1422
|
-
"video-manager.room.updated",
|
|
1423
|
-
"video-manager.room.ended",
|
|
1424
|
-
"video-manager.room.deleted"
|
|
1425
|
-
],
|
|
1426
|
-
{
|
|
1427
|
-
type: "roomSession",
|
|
1428
|
-
instanceFactory: (payload) => toExternalJSON2(payload),
|
|
1429
|
-
payloadTransform: (payload) => toExternalJSON2(payload)
|
|
1430
|
-
}
|
|
1431
|
-
]
|
|
1432
|
-
]);
|
|
1477
|
+
getSubscriptions() {
|
|
1478
|
+
const eventNamesWithPrefix = this.eventNames().map((event) => `video-manager.${event}`);
|
|
1479
|
+
return validateEventsToSubscribe3(eventNamesWithPrefix);
|
|
1433
1480
|
}
|
|
1434
1481
|
};
|
|
1435
1482
|
var createVideoManagerObject = (params) => {
|
|
@@ -1484,7 +1531,6 @@ var ClientAPI = class extends BaseClient {
|
|
|
1484
1531
|
}
|
|
1485
1532
|
const room = createBaseRoomSessionObject(__spreadProps(__spreadValues({}, options), {
|
|
1486
1533
|
store: this.store,
|
|
1487
|
-
emitter: this.emitter,
|
|
1488
1534
|
customSagas
|
|
1489
1535
|
}));
|
|
1490
1536
|
if (stopMicrophoneWhileMuted) {
|
|
@@ -1516,8 +1562,7 @@ var ClientAPI = class extends BaseClient {
|
|
|
1516
1562
|
get chat() {
|
|
1517
1563
|
if (!this._chat) {
|
|
1518
1564
|
this._chat = ChatNamespace.createBaseChatObject({
|
|
1519
|
-
store: this.store
|
|
1520
|
-
emitter: this.options.emitter
|
|
1565
|
+
store: this.store
|
|
1521
1566
|
});
|
|
1522
1567
|
}
|
|
1523
1568
|
return this._chat;
|
|
@@ -1525,8 +1570,7 @@ var ClientAPI = class extends BaseClient {
|
|
|
1525
1570
|
get pubSub() {
|
|
1526
1571
|
if (!this._pubSub) {
|
|
1527
1572
|
this._pubSub = PubSubNamespace.createBasePubSubObject({
|
|
1528
|
-
store: this.store
|
|
1529
|
-
emitter: this.options.emitter
|
|
1573
|
+
store: this.store
|
|
1530
1574
|
});
|
|
1531
1575
|
}
|
|
1532
1576
|
return this._pubSub;
|
|
@@ -1546,12 +1590,12 @@ var ClientAPI = class extends BaseClient {
|
|
|
1546
1590
|
import jwtDecode2 from "jwt-decode";
|
|
1547
1591
|
import {
|
|
1548
1592
|
BaseJWTSession,
|
|
1549
|
-
getLogger as
|
|
1593
|
+
getLogger as getLogger12
|
|
1550
1594
|
} from "@signalwire/core";
|
|
1551
1595
|
|
|
1552
1596
|
// src/utils/storage.ts
|
|
1553
1597
|
import jwtDecode from "jwt-decode";
|
|
1554
|
-
import { getLogger as
|
|
1598
|
+
import { getLogger as getLogger11 } from "@signalwire/core";
|
|
1555
1599
|
var getStorage = () => {
|
|
1556
1600
|
if (window && window.sessionStorage) {
|
|
1557
1601
|
return window.sessionStorage;
|
|
@@ -1566,7 +1610,7 @@ var sessionStorageManager = (token) => {
|
|
|
1566
1610
|
roomName = (_a = jwtPayload == null ? void 0 : jwtPayload.r) != null ? _a : "";
|
|
1567
1611
|
} catch (e) {
|
|
1568
1612
|
if (process.env.NODE_ENV !== "production") {
|
|
1569
|
-
|
|
1613
|
+
getLogger11().error("[sessionStorageManager] error decoding JWT", token);
|
|
1570
1614
|
}
|
|
1571
1615
|
roomName = "";
|
|
1572
1616
|
}
|
|
@@ -1593,7 +1637,7 @@ var JWTSession = class extends BaseJWTSession {
|
|
|
1593
1637
|
});
|
|
1594
1638
|
} catch (e) {
|
|
1595
1639
|
if (process.env.NODE_ENV !== "production") {
|
|
1596
|
-
|
|
1640
|
+
getLogger12().debug("[JWTSession] error decoding the JWT");
|
|
1597
1641
|
}
|
|
1598
1642
|
}
|
|
1599
1643
|
super(__spreadProps(__spreadValues({}, options), {
|
|
@@ -1602,7 +1646,7 @@ var JWTSession = class extends BaseJWTSession {
|
|
|
1602
1646
|
this.options = options;
|
|
1603
1647
|
__publicField(this, "WebSocketConstructor", WebSocket);
|
|
1604
1648
|
__publicField(this, "CloseEventConstructor", SwCloseEvent);
|
|
1605
|
-
__publicField(this, "agent", "@signalwire/js/browser/3.23.
|
|
1649
|
+
__publicField(this, "agent", "@signalwire/js/browser/3.23.4");
|
|
1606
1650
|
__publicField(this, "tokenTyp");
|
|
1607
1651
|
this.tokenTyp = (_a = decodedJwt.typ) != null ? _a : "VRT";
|
|
1608
1652
|
}
|
|
@@ -1732,7 +1776,7 @@ var createRoomObject = (roomOptions) => {
|
|
|
1732
1776
|
rootElement = el;
|
|
1733
1777
|
} else {
|
|
1734
1778
|
rootElement = document.body;
|
|
1735
|
-
|
|
1779
|
+
getLogger13().warn(`We couldn't find an element with id: ${rootElementId}: using 'document.body' instead.`);
|
|
1736
1780
|
}
|
|
1737
1781
|
}
|
|
1738
1782
|
const roomObject = client.rooms.makeRoomObject({
|
|
@@ -1759,7 +1803,7 @@ var createRoomObject = (roomOptions) => {
|
|
|
1759
1803
|
});
|
|
1760
1804
|
await roomObject.join();
|
|
1761
1805
|
} catch (error) {
|
|
1762
|
-
|
|
1806
|
+
getLogger13().error("Join", error);
|
|
1763
1807
|
client.disconnect();
|
|
1764
1808
|
reject2(error);
|
|
1765
1809
|
}
|
|
@@ -1795,11 +1839,11 @@ var joinRoom = (roomOptions) => {
|
|
|
1795
1839
|
|
|
1796
1840
|
// src/RoomSession.ts
|
|
1797
1841
|
import {
|
|
1798
|
-
getLogger as
|
|
1842
|
+
getLogger as getLogger15
|
|
1799
1843
|
} from "@signalwire/core";
|
|
1800
1844
|
|
|
1801
1845
|
// src/utils/roomSession.ts
|
|
1802
|
-
import { getLogger as
|
|
1846
|
+
import { getLogger as getLogger14 } from "@signalwire/core";
|
|
1803
1847
|
var getJoinMediaParams = (options) => {
|
|
1804
1848
|
const {
|
|
1805
1849
|
authState,
|
|
@@ -1810,7 +1854,7 @@ var getJoinMediaParams = (options) => {
|
|
|
1810
1854
|
receiveAudio,
|
|
1811
1855
|
receiveVideo
|
|
1812
1856
|
} = options;
|
|
1813
|
-
|
|
1857
|
+
getLogger14().debug("getJoinMediaParams options", __spreadValues({}, options));
|
|
1814
1858
|
const { audio_allowed, video_allowed, join_as } = authState;
|
|
1815
1859
|
const joinAs = join_as != null ? join_as : "member";
|
|
1816
1860
|
const canSend = joinAs === "member";
|
|
@@ -1823,16 +1867,16 @@ var getJoinMediaParams = (options) => {
|
|
|
1823
1867
|
const reqToReceiveAudio = Boolean(receiveAudio != null ? receiveAudio : audio);
|
|
1824
1868
|
const reqToReceiveVideo = Boolean(receiveVideo != null ? receiveVideo : video);
|
|
1825
1869
|
if (!canSendAudio && reqToSendAudio) {
|
|
1826
|
-
|
|
1870
|
+
getLogger14().info("Not allowed to send audio on this room. Default values will be used.");
|
|
1827
1871
|
}
|
|
1828
1872
|
if (!canSendVideo && reqToSendVideo) {
|
|
1829
|
-
|
|
1873
|
+
getLogger14().info("Not allowed to send video on this room. Default values will be used.");
|
|
1830
1874
|
}
|
|
1831
1875
|
if (!canReceiveAudio && reqToReceiveAudio) {
|
|
1832
|
-
|
|
1876
|
+
getLogger14().info("Not allowed to receive video from the room. Default values will be used.");
|
|
1833
1877
|
}
|
|
1834
1878
|
if (!canReceiveVideo && reqToReceiveVideo) {
|
|
1835
|
-
|
|
1879
|
+
getLogger14().info("Not allowed to receive video from the room. Default values will be used.");
|
|
1836
1880
|
}
|
|
1837
1881
|
return {
|
|
1838
1882
|
mustSendAudio: canSendAudio && reqToSendAudio,
|
|
@@ -1882,7 +1926,9 @@ var UNSAFE_PROP_ACCESS = [
|
|
|
1882
1926
|
"updateMemberMeta",
|
|
1883
1927
|
"deleteMemberMeta",
|
|
1884
1928
|
"promote",
|
|
1885
|
-
"demote"
|
|
1929
|
+
"demote",
|
|
1930
|
+
"lock",
|
|
1931
|
+
"unlock"
|
|
1886
1932
|
];
|
|
1887
1933
|
var REQUIRED_EVENTS = [
|
|
1888
1934
|
"member.joined",
|
|
@@ -1923,7 +1969,7 @@ var RoomSession = function(roomOptions) {
|
|
|
1923
1969
|
const deprecatedParams = ["audio", "video"];
|
|
1924
1970
|
deprecatedParams.forEach((param) => {
|
|
1925
1971
|
if (param in roomOptions) {
|
|
1926
|
-
|
|
1972
|
+
getLogger15().warn(`The '${param}' parameter on the RoomSession constructor is deprecated. Set it on the '.join()' function instead.`);
|
|
1927
1973
|
}
|
|
1928
1974
|
});
|
|
1929
1975
|
const allowReattach = (roomOptions == null ? void 0 : roomOptions.reattach) !== false;
|
|
@@ -1981,7 +2027,7 @@ var RoomSession = function(roomOptions) {
|
|
|
1981
2027
|
reattachManager.destroy();
|
|
1982
2028
|
client.disconnect();
|
|
1983
2029
|
});
|
|
1984
|
-
client.once("session.disconnected", () => {
|
|
2030
|
+
client.session.once("session.disconnected", () => {
|
|
1985
2031
|
room.destroy();
|
|
1986
2032
|
});
|
|
1987
2033
|
const join = (params) => {
|
|
@@ -1993,7 +2039,7 @@ var RoomSession = function(roomOptions) {
|
|
|
1993
2039
|
const audio = (_a2 = params == null ? void 0 : params.audio) != null ? _a2 : audioFromConstructor;
|
|
1994
2040
|
const video = (_b = params == null ? void 0 : params.video) != null ? _b : videoFromConstructor;
|
|
1995
2041
|
const authState = client._sessionAuthState;
|
|
1996
|
-
|
|
2042
|
+
getLogger15().debug("getJoinMediaParams authState?", authState);
|
|
1997
2043
|
if (authState && authState.type === "video") {
|
|
1998
2044
|
const mediaOptions = getJoinMediaParams(__spreadValues({
|
|
1999
2045
|
authState,
|
|
@@ -2006,7 +2052,7 @@ var RoomSession = function(roomOptions) {
|
|
|
2006
2052
|
${JSON.stringify(params, null, 2)}
|
|
2007
2053
|
`));
|
|
2008
2054
|
}
|
|
2009
|
-
|
|
2055
|
+
getLogger15().debug("Set mediaOptions", mediaOptions);
|
|
2010
2056
|
room.updateMediaOptions({
|
|
2011
2057
|
audio: mediaOptions.mustSendAudio ? audio || true : false,
|
|
2012
2058
|
video: mediaOptions.mustSendVideo ? video || true : false,
|
|
@@ -2014,15 +2060,14 @@ ${JSON.stringify(params, null, 2)}
|
|
|
2014
2060
|
negotiateVideo: mediaOptions.mustRecvVideo
|
|
2015
2061
|
});
|
|
2016
2062
|
}
|
|
2017
|
-
room.once("room.subscribed", (
|
|
2018
|
-
room.attachOnSubscribedWorkers(payload);
|
|
2063
|
+
room.once("room.subscribed", () => {
|
|
2019
2064
|
resolve(room);
|
|
2020
2065
|
});
|
|
2021
2066
|
reattachManager.init();
|
|
2022
2067
|
REQUIRED_EVENTS.forEach((event) => room.once(event, noop2));
|
|
2023
2068
|
await room.join();
|
|
2024
2069
|
} catch (error) {
|
|
2025
|
-
|
|
2070
|
+
getLogger15().error("RoomSession Join", error);
|
|
2026
2071
|
client.disconnect();
|
|
2027
2072
|
reject(error);
|
|
2028
2073
|
}
|
|
@@ -2204,29 +2249,29 @@ var SWClient = class {
|
|
|
2204
2249
|
};
|
|
2205
2250
|
|
|
2206
2251
|
// src/fabric/WSClient.ts
|
|
2207
|
-
import { getLogger as
|
|
2252
|
+
import { getLogger as getLogger17, VertoSubscribe } from "@signalwire/core";
|
|
2208
2253
|
|
|
2209
2254
|
// src/fabric/WSClientWorker.ts
|
|
2210
2255
|
import {
|
|
2211
|
-
getLogger as
|
|
2256
|
+
getLogger as getLogger16,
|
|
2212
2257
|
sagaEffects as sagaEffects6
|
|
2213
2258
|
} from "@signalwire/core";
|
|
2214
2259
|
var WSClientWorker = function* (options) {
|
|
2215
|
-
|
|
2260
|
+
getLogger16().debug("WSClientWorker started");
|
|
2216
2261
|
const { channels, instance } = options;
|
|
2217
2262
|
const { swEventChannel } = channels;
|
|
2218
|
-
|
|
2263
|
+
getLogger16().debug("WSClientWorker instance", instance);
|
|
2219
2264
|
while (true) {
|
|
2220
2265
|
const action = yield sagaEffects6.take(swEventChannel, (action2) => {
|
|
2221
|
-
|
|
2266
|
+
getLogger16().debug("WSClientWorker action", action2);
|
|
2222
2267
|
if (action2.type === "webrtc.message") {
|
|
2223
2268
|
return action2.payload.method === "verto.invite";
|
|
2224
2269
|
}
|
|
2225
2270
|
return false;
|
|
2226
2271
|
});
|
|
2227
|
-
|
|
2272
|
+
getLogger16().debug("Build new call to answer", action);
|
|
2228
2273
|
}
|
|
2229
|
-
|
|
2274
|
+
getLogger16().trace("WSClientWorker ended");
|
|
2230
2275
|
};
|
|
2231
2276
|
|
|
2232
2277
|
// src/fabric/WSClient.ts
|
|
@@ -2234,7 +2279,7 @@ var WSClient = class {
|
|
|
2234
2279
|
constructor(options) {
|
|
2235
2280
|
this.options = options;
|
|
2236
2281
|
__publicField(this, "wsClient");
|
|
2237
|
-
__publicField(this, "logger",
|
|
2282
|
+
__publicField(this, "logger", getLogger17());
|
|
2238
2283
|
this.wsClient = createClient({
|
|
2239
2284
|
host: this.options.host,
|
|
2240
2285
|
token: this.options.token,
|
|
@@ -2279,18 +2324,18 @@ var WSClient = class {
|
|
|
2279
2324
|
call.start = () => {
|
|
2280
2325
|
return new Promise(async (resolve2, reject2) => {
|
|
2281
2326
|
try {
|
|
2282
|
-
call.
|
|
2327
|
+
call.once("verto.display", () => resolve2(call));
|
|
2283
2328
|
call.once("room.subscribed", () => resolve2(call));
|
|
2284
2329
|
await call.join();
|
|
2285
2330
|
} catch (error) {
|
|
2286
|
-
|
|
2331
|
+
getLogger17().error("WSClient call start", error);
|
|
2287
2332
|
reject2(error);
|
|
2288
2333
|
}
|
|
2289
2334
|
});
|
|
2290
2335
|
};
|
|
2291
2336
|
resolve(call);
|
|
2292
2337
|
} catch (error) {
|
|
2293
|
-
|
|
2338
|
+
getLogger17().error("WSClient dial", error);
|
|
2294
2339
|
reject(error);
|
|
2295
2340
|
}
|
|
2296
2341
|
});
|
|
@@ -2344,10 +2389,10 @@ var WSClient = class {
|
|
|
2344
2389
|
nodeId
|
|
2345
2390
|
});
|
|
2346
2391
|
call.once("destroy", () => {
|
|
2347
|
-
|
|
2392
|
+
getLogger17().debug("RTC Connection Destroyed");
|
|
2348
2393
|
});
|
|
2349
2394
|
call.attachPreConnectWorkers();
|
|
2350
|
-
|
|
2395
|
+
getLogger17().debug("Resolving Call", call);
|
|
2351
2396
|
resolve({ resultType: "inboundCall", resultObject: call });
|
|
2352
2397
|
} catch (error) {
|
|
2353
2398
|
reject(error);
|