@signalwire/js 3.7.1-dev.202201131750.6d234cc.0 → 3.8.0

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.
Files changed (125) hide show
  1. package/dist/core/src/BaseComponent.d.ts +29 -31
  2. package/dist/core/src/BaseComponent.d.ts.map +1 -1
  3. package/dist/core/src/BaseJWTSession.d.ts +1 -0
  4. package/dist/core/src/BaseJWTSession.d.ts.map +1 -1
  5. package/dist/core/src/BaseSession.d.ts +1 -1
  6. package/dist/core/src/BaseSession.d.ts.map +1 -1
  7. package/dist/core/src/chat/BaseChat.d.ts +4 -3
  8. package/dist/core/src/chat/BaseChat.d.ts.map +1 -1
  9. package/dist/core/src/chat/ChatMember.d.ts +6 -0
  10. package/dist/core/src/chat/ChatMember.d.ts.map +1 -1
  11. package/dist/core/src/chat/ChatMessage.d.ts +9 -0
  12. package/dist/core/src/chat/ChatMessage.d.ts.map +1 -1
  13. package/dist/core/src/chat/index.d.ts +1 -0
  14. package/dist/core/src/chat/index.d.ts.map +1 -1
  15. package/dist/core/src/chat/methods.d.ts +18 -15
  16. package/dist/core/src/chat/methods.d.ts.map +1 -1
  17. package/dist/core/src/chat/workers.d.ts +2 -1
  18. package/dist/core/src/chat/workers.d.ts.map +1 -1
  19. package/dist/core/src/index.d.ts +3 -3
  20. package/dist/core/src/index.d.ts.map +1 -1
  21. package/dist/core/src/internal/BaseBackendSession.d.ts.map +1 -1
  22. package/dist/core/src/redux/actions.d.ts +17 -14
  23. package/dist/core/src/redux/actions.d.ts.map +1 -1
  24. package/dist/core/src/redux/features/component/componentSlice.d.ts +3952 -10
  25. package/dist/core/src/redux/features/component/componentSlice.d.ts.map +1 -1
  26. package/dist/core/src/redux/features/executeQueue/executeQueueSlice.d.ts +44 -7
  27. package/dist/core/src/redux/features/executeQueue/executeQueueSlice.d.ts.map +1 -1
  28. package/dist/core/src/redux/features/pubSub/pubSubSaga.d.ts.map +1 -1
  29. package/dist/core/src/redux/features/session/sessionSlice.d.ts +74 -8
  30. package/dist/core/src/redux/features/session/sessionSlice.d.ts.map +1 -1
  31. package/dist/core/src/redux/index.d.ts +9 -25
  32. package/dist/core/src/redux/index.d.ts.map +1 -1
  33. package/dist/core/src/redux/interfaces.d.ts +5 -4
  34. package/dist/core/src/redux/interfaces.d.ts.map +1 -1
  35. package/dist/core/src/redux/rootReducer.d.ts +417 -3
  36. package/dist/core/src/redux/rootReducer.d.ts.map +1 -1
  37. package/dist/core/src/redux/rootSaga.d.ts +23 -5
  38. package/dist/core/src/redux/rootSaga.d.ts.map +1 -1
  39. package/dist/core/src/redux/toolkit/configureStore.d.ts +77 -0
  40. package/dist/core/src/redux/toolkit/configureStore.d.ts.map +1 -0
  41. package/dist/core/src/redux/toolkit/createAction.d.ts +180 -0
  42. package/dist/core/src/redux/toolkit/createAction.d.ts.map +1 -0
  43. package/dist/core/src/redux/toolkit/createReducer.d.ts +42 -0
  44. package/dist/core/src/redux/toolkit/createReducer.d.ts.map +1 -0
  45. package/dist/core/src/redux/toolkit/createSlice.d.ts +142 -0
  46. package/dist/core/src/redux/toolkit/createSlice.d.ts.map +1 -0
  47. package/dist/core/src/redux/toolkit/devtoolsExtension.d.ts +185 -0
  48. package/dist/core/src/redux/toolkit/devtoolsExtension.d.ts.map +1 -0
  49. package/dist/core/src/redux/toolkit/getDefaultMiddleware.d.ts +12 -0
  50. package/dist/core/src/redux/toolkit/getDefaultMiddleware.d.ts.map +1 -0
  51. package/dist/core/src/redux/toolkit/index.d.ts +13 -0
  52. package/dist/core/src/redux/toolkit/index.d.ts.map +1 -0
  53. package/dist/core/src/redux/toolkit/isPlainObject.d.ts +12 -0
  54. package/dist/core/src/redux/toolkit/isPlainObject.d.ts.map +1 -0
  55. package/dist/core/src/redux/toolkit/mapBuilders.d.ts +38 -0
  56. package/dist/core/src/redux/toolkit/mapBuilders.d.ts.map +1 -0
  57. package/dist/core/src/redux/toolkit/tsHelpers.d.ts +51 -0
  58. package/dist/core/src/redux/toolkit/tsHelpers.d.ts.map +1 -0
  59. package/dist/core/src/redux/toolkit/utils.d.ts +11 -0
  60. package/dist/core/src/redux/toolkit/utils.d.ts.map +1 -0
  61. package/dist/core/src/redux/utils/createDestroyableSlice.d.ts +3 -2
  62. package/dist/core/src/redux/utils/createDestroyableSlice.d.ts.map +1 -1
  63. package/dist/core/src/rooms/methods.d.ts +31 -21
  64. package/dist/core/src/rooms/methods.d.ts.map +1 -1
  65. package/dist/core/src/testUtils.d.ts +8 -25
  66. package/dist/core/src/testUtils.d.ts.map +1 -1
  67. package/dist/core/src/types/chat.d.ts +12 -12
  68. package/dist/core/src/types/chat.d.ts.map +1 -1
  69. package/dist/core/src/types/utils.d.ts +7 -0
  70. package/dist/core/src/types/utils.d.ts.map +1 -1
  71. package/dist/core/src/types/videoMember.d.ts +10 -1
  72. package/dist/core/src/types/videoMember.d.ts.map +1 -1
  73. package/dist/core/src/utils/constants.d.ts +1 -0
  74. package/dist/core/src/utils/constants.d.ts.map +1 -1
  75. package/dist/core/src/utils/index.d.ts +4 -1
  76. package/dist/core/src/utils/index.d.ts.map +1 -1
  77. package/dist/core/src/utils/interfaces.d.ts +19 -6
  78. package/dist/core/src/utils/interfaces.d.ts.map +1 -1
  79. package/dist/index.esm.js +179 -49
  80. package/dist/index.esm.js.map +3 -3
  81. package/dist/index.js +223 -100
  82. package/dist/index.js.map +3 -3
  83. package/dist/index.umd.js +2 -2
  84. package/dist/index.umd.js.map +1 -1
  85. package/dist/js/src/BaseRoomSession.d.ts +7 -0
  86. package/dist/js/src/BaseRoomSession.d.ts.map +1 -1
  87. package/dist/js/src/JWTSession.d.ts.map +1 -1
  88. package/dist/js/src/RoomSession.d.ts.map +1 -1
  89. package/dist/js/src/RoomSession.docs.d.ts +9 -1
  90. package/dist/js/src/RoomSession.docs.d.ts.map +1 -1
  91. package/dist/js/src/chat/Client.d.ts +37 -3
  92. package/dist/js/src/chat/Client.d.ts.map +1 -1
  93. package/dist/js/src/chat/Client.docs.d.ts +238 -0
  94. package/dist/js/src/chat/Client.docs.d.ts.map +1 -0
  95. package/dist/js/src/chat/index.d.ts +5 -0
  96. package/dist/js/src/chat/index.d.ts.map +1 -1
  97. package/dist/js/src/features/actions.d.ts +1 -1
  98. package/dist/js/src/features/actions.d.ts.map +1 -1
  99. package/dist/js/src/index.d.ts +5 -2
  100. package/dist/js/src/index.d.ts.map +1 -1
  101. package/dist/js/src/testUtils.d.ts +16 -50
  102. package/dist/js/src/testUtils.d.ts.map +1 -1
  103. package/dist/js/src/utils/interfaces.d.ts +16 -2
  104. package/dist/js/src/utils/interfaces.d.ts.map +1 -1
  105. package/dist/js/src/video/memberListUpdatedWorker.d.ts +14 -0
  106. package/dist/js/src/video/memberListUpdatedWorker.d.ts.map +1 -0
  107. package/dist/js/src/video/workers.d.ts +2 -0
  108. package/dist/js/src/video/workers.d.ts.map +1 -0
  109. package/dist/js/tsconfig.build.tsbuildinfo +1 -1
  110. package/dist/webrtc/src/BaseConnection.d.ts +7 -0
  111. package/dist/webrtc/src/BaseConnection.d.ts.map +1 -1
  112. package/dist/webrtc/src/RTCPeer.d.ts.map +1 -1
  113. package/package.json +3 -3
  114. package/src/BaseRoomSession.test.ts +2 -2
  115. package/src/BaseRoomSession.ts +15 -0
  116. package/src/RoomSession.docs.ts +10 -1
  117. package/src/RoomSession.ts +16 -4
  118. package/src/chat/Client.docs.ts +259 -0
  119. package/src/chat/Client.test.ts +4 -4
  120. package/src/chat/Client.ts +39 -3
  121. package/src/chat/index.ts +10 -0
  122. package/src/index.ts +6 -3
  123. package/src/utils/interfaces.ts +22 -2
  124. package/src/video/memberListUpdatedWorker.ts +217 -0
  125. package/src/video/workers.ts +1 -0
package/dist/index.js CHANGED
@@ -77,28 +77,28 @@ var __async = (__this, __arguments, generator) => {
77
77
  // src/index.ts
78
78
  var src_exports = {};
79
79
  __export(src_exports, {
80
+ Chat: () => chat_exports,
80
81
  Video: () => video_exports,
81
- WebRTC: () => webrtc_exports,
82
- __sw__Chat: () => chat_exports
82
+ WebRTC: () => webrtc_exports
83
83
  });
84
84
 
85
- // src/video.ts
86
- var video_exports = {};
87
- __export(video_exports, {
88
- RoomSession: () => RoomSession,
89
- createClient: () => createClient,
90
- createRoomObject: () => createRoomObject,
91
- joinRoom: () => joinRoom
85
+ // src/chat/index.ts
86
+ var chat_exports = {};
87
+ __export(chat_exports, {
88
+ ChatMember: () => ChatMember,
89
+ ChatMessage: () => ChatMessage,
90
+ Client: () => Client2
92
91
  });
92
+ var import_core13 = require("@signalwire/core");
93
93
 
94
- // src/createRoomObject.ts
95
- var import_core11 = require("@signalwire/core");
94
+ // src/chat/Client.ts
95
+ var import_core12 = require("@signalwire/core");
96
96
 
97
97
  // src/createClient.ts
98
- var import_core10 = require("@signalwire/core");
98
+ var import_core11 = require("@signalwire/core");
99
99
 
100
100
  // src/Client.ts
101
- var import_core8 = require("@signalwire/core");
101
+ var import_core9 = require("@signalwire/core");
102
102
 
103
103
  // src/features/mediaElements/mediaElementsSagas.ts
104
104
  var import_core3 = require("@signalwire/core");
@@ -423,7 +423,7 @@ function* videoElementSetupWorker({
423
423
  }
424
424
 
425
425
  // src/BaseRoomSession.ts
426
- var import_core6 = require("@signalwire/core");
426
+ var import_core7 = require("@signalwire/core");
427
427
  var import_webrtc4 = require("@signalwire/webrtc");
428
428
 
429
429
  // src/utils/constants.ts
@@ -485,6 +485,112 @@ var RoomSessionDeviceAPI = (0, import_core5.extendComponent)(RoomSessionDeviceCo
485
485
  setInputSensitivity: import_core5.Rooms.setInputSensitivityMember
486
486
  });
487
487
 
488
+ // src/video/memberListUpdatedWorker.ts
489
+ var import_core6 = require("@signalwire/core");
490
+ var noop = () => {
491
+ };
492
+ var EXTERNAL_MEMBER_LIST_UPDATED_EVENT = "video.memberList.updated";
493
+ var INTERNAL_MEMBER_LIST_UPDATED_EVENT = (0, import_core6.toInternalEventName)({
494
+ event: EXTERNAL_MEMBER_LIST_UPDATED_EVENT
495
+ });
496
+ var SYNTHETIC_MEMBER_LIST_UPDATED_EVENT = (0, import_core6.toSyntheticEvent)(INTERNAL_MEMBER_LIST_UPDATED_EVENT);
497
+ var MEMBER_LIST_EVENTS = [
498
+ "video.room.joined",
499
+ "video.member.joined",
500
+ "video.member.left",
501
+ "video.member.updated"
502
+ ];
503
+ var isMemberListEvent = (event) => {
504
+ return MEMBER_LIST_EVENTS.includes(event);
505
+ };
506
+ var getMemberListEventsToSubscribe = (subscriptions) => {
507
+ return (0, import_core6.validateEventsToSubscribe)(MEMBER_LIST_EVENTS).filter((event) => {
508
+ return !subscriptions.includes(event);
509
+ });
510
+ };
511
+ var shouldHandleMemberList = (subscriptions) => {
512
+ return subscriptions.some((event) => event.includes(INTERNAL_MEMBER_LIST_UPDATED_EVENT));
513
+ };
514
+ var getMembersFromAction = (action) => {
515
+ if (action.type === "video.room.joined") {
516
+ return action.payload.room_session.members;
517
+ }
518
+ return [action.payload.member];
519
+ };
520
+ var getUpdatedMembers = ({
521
+ action,
522
+ memberList
523
+ }) => {
524
+ const actionMembers = getMembersFromAction(action);
525
+ switch (action.type) {
526
+ case "video.member.left":
527
+ actionMembers.forEach((member) => {
528
+ memberList.delete(member.id);
529
+ });
530
+ break;
531
+ default:
532
+ actionMembers.forEach((member) => {
533
+ memberList.set(member.id, member);
534
+ });
535
+ }
536
+ return Array.from(memberList.values());
537
+ };
538
+ var initMemberListSubscriptions = (room, subscriptions) => {
539
+ const events = getMemberListEventsToSubscribe(subscriptions);
540
+ events.forEach((event) => {
541
+ room.once(event, noop);
542
+ });
543
+ const eventBridgeHandler = ({ members }) => {
544
+ room.emit(EXTERNAL_MEMBER_LIST_UPDATED_EVENT, { members });
545
+ };
546
+ room.on(SYNTHETIC_MEMBER_LIST_UPDATED_EVENT, eventBridgeHandler);
547
+ const cleanup = () => {
548
+ room.off(SYNTHETIC_MEMBER_LIST_UPDATED_EVENT, eventBridgeHandler);
549
+ };
550
+ return {
551
+ cleanup
552
+ };
553
+ };
554
+ function* membersListUpdatedWatcher({
555
+ pubSubChannel
556
+ }) {
557
+ const memberList = /* @__PURE__ */ new Map();
558
+ function* worker(pubSubAction) {
559
+ const roomSessionId = pubSubAction.type === "video.room.joined" ? pubSubAction.payload.room_session.id : pubSubAction.payload.room_session_id;
560
+ const members = getUpdatedMembers({ action: pubSubAction, memberList });
561
+ const memberListPayload = {
562
+ room_session_id: roomSessionId,
563
+ members
564
+ };
565
+ yield import_core6.sagaEffects.put(pubSubChannel, {
566
+ type: SYNTHETIC_MEMBER_LIST_UPDATED_EVENT,
567
+ payload: memberListPayload
568
+ });
569
+ }
570
+ while (true) {
571
+ const pubSubAction = yield import_core6.sagaEffects.take(pubSubChannel, ({ type }) => {
572
+ return isMemberListEvent(type);
573
+ });
574
+ yield import_core6.sagaEffects.fork(worker, pubSubAction);
575
+ }
576
+ }
577
+ var memberListUpdatedWorker = function* membersChangedWorker({
578
+ channels: { pubSubChannel },
579
+ instance
580
+ }) {
581
+ const subscriptions = instance.getSubscriptions();
582
+ if (!shouldHandleMemberList(subscriptions)) {
583
+ return;
584
+ }
585
+ const { cleanup } = initMemberListSubscriptions(instance, subscriptions);
586
+ yield import_core6.sagaEffects.fork(membersListUpdatedWatcher, {
587
+ pubSubChannel
588
+ });
589
+ instance.once("destroy", () => {
590
+ cleanup();
591
+ });
592
+ };
593
+
488
594
  // src/BaseRoomSession.ts
489
595
  var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
490
596
  constructor() {
@@ -502,7 +608,7 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
502
608
  return /* @__PURE__ */ new Map([
503
609
  [
504
610
  [
505
- (0, import_core6.toLocalEvent)("video.recording.start"),
611
+ (0, import_core7.toLocalEvent)("video.recording.start"),
506
612
  "video.recording.started",
507
613
  "video.recording.updated",
508
614
  "video.recording.ended"
@@ -510,13 +616,13 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
510
616
  {
511
617
  type: "roomSessionRecording",
512
618
  instanceFactory: (_payload) => {
513
- return import_core6.Rooms.createRoomSessionRecordingObject({
619
+ return import_core7.Rooms.createRoomSessionRecordingObject({
514
620
  store: this.store,
515
621
  emitter: this.emitter
516
622
  });
517
623
  },
518
624
  payloadTransform: (payload) => {
519
- return (0, import_core6.toExternalJSON)(__spreadProps(__spreadValues({}, payload.recording), {
625
+ return (0, import_core7.toExternalJSON)(__spreadProps(__spreadValues({}, payload.recording), {
520
626
  room_session_id: this.roomSessionId
521
627
  }));
522
628
  }
@@ -524,7 +630,7 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
524
630
  ],
525
631
  [
526
632
  [
527
- (0, import_core6.toLocalEvent)("video.playback.start"),
633
+ (0, import_core7.toLocalEvent)("video.playback.start"),
528
634
  "video.playback.started",
529
635
  "video.playback.updated",
530
636
  "video.playback.ended"
@@ -532,13 +638,13 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
532
638
  {
533
639
  type: "roomSessionPlayback",
534
640
  instanceFactory: (_payload) => {
535
- return import_core6.Rooms.createRoomSessionPlaybackObject({
641
+ return import_core7.Rooms.createRoomSessionPlaybackObject({
536
642
  store: this.store,
537
643
  emitter: this.emitter
538
644
  });
539
645
  },
540
646
  payloadTransform: (payload) => {
541
- return (0, import_core6.toExternalJSON)(__spreadProps(__spreadValues({}, payload.playback), {
647
+ return (0, import_core7.toExternalJSON)(__spreadProps(__spreadValues({}, payload.playback), {
542
648
  room_session_id: this.roomSessionId
543
649
  }));
544
650
  }
@@ -546,6 +652,12 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
546
652
  ]
547
653
  ]);
548
654
  }
655
+ attachPreConnectWorkers() {
656
+ this.setWorker("memberListUpdated", {
657
+ worker: memberListUpdatedWorker
658
+ });
659
+ this.attachWorkers();
660
+ }
549
661
  createScreenShareObject() {
550
662
  return __async(this, arguments, function* (opts = {}) {
551
663
  return this.startScreenShare(opts);
@@ -569,7 +681,7 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
569
681
  memberId: this.memberId
570
682
  })
571
683
  });
572
- const screenShare = (0, import_core6.connect)({
684
+ const screenShare = (0, import_core7.connect)({
573
685
  store: this.store,
574
686
  Component: RoomSessionScreenShareAPI,
575
687
  componentListeners: ROOM_COMPONENT_LISTENERS
@@ -629,7 +741,7 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
629
741
  memberId: this.memberId
630
742
  })
631
743
  });
632
- const roomDevice = (0, import_core6.connect)({
744
+ const roomDevice = (0, import_core7.connect)({
633
745
  store: this.store,
634
746
  Component: RoomSessionDeviceAPI,
635
747
  componentListeners: ROOM_COMPONENT_LISTENERS
@@ -682,32 +794,32 @@ var RoomSessionConnection = class extends import_webrtc4.BaseConnection {
682
794
  return this.getMembers();
683
795
  }
684
796
  };
685
- var RoomSessionAPI = (0, import_core6.extendComponent)(RoomSessionConnection, {
686
- audioMute: import_core6.Rooms.audioMuteMember,
687
- audioUnmute: import_core6.Rooms.audioUnmuteMember,
688
- videoMute: import_core6.Rooms.videoMuteMember,
689
- videoUnmute: import_core6.Rooms.videoUnmuteMember,
690
- deaf: import_core6.Rooms.deafMember,
691
- undeaf: import_core6.Rooms.undeafMember,
692
- setInputVolume: import_core6.Rooms.setInputVolumeMember,
693
- setOutputVolume: import_core6.Rooms.setOutputVolumeMember,
694
- setMicrophoneVolume: import_core6.Rooms.setInputVolumeMember,
695
- setSpeakerVolume: import_core6.Rooms.setOutputVolumeMember,
696
- setInputSensitivity: import_core6.Rooms.setInputSensitivityMember,
697
- removeMember: import_core6.Rooms.removeMember,
698
- getMembers: import_core6.Rooms.getMembers,
699
- getLayouts: import_core6.Rooms.getLayouts,
700
- setLayout: import_core6.Rooms.setLayout,
701
- hideVideoMuted: import_core6.Rooms.hideVideoMuted,
702
- showVideoMuted: import_core6.Rooms.showVideoMuted,
703
- getRecordings: import_core6.Rooms.getRecordings,
704
- startRecording: import_core6.Rooms.startRecording,
705
- getPlaybacks: import_core6.Rooms.getPlaybacks,
706
- play: import_core6.Rooms.play,
707
- setHideVideoMuted: import_core6.Rooms.setHideVideoMuted
797
+ var RoomSessionAPI = (0, import_core7.extendComponent)(RoomSessionConnection, {
798
+ audioMute: import_core7.Rooms.audioMuteMember,
799
+ audioUnmute: import_core7.Rooms.audioUnmuteMember,
800
+ videoMute: import_core7.Rooms.videoMuteMember,
801
+ videoUnmute: import_core7.Rooms.videoUnmuteMember,
802
+ deaf: import_core7.Rooms.deafMember,
803
+ undeaf: import_core7.Rooms.undeafMember,
804
+ setInputVolume: import_core7.Rooms.setInputVolumeMember,
805
+ setOutputVolume: import_core7.Rooms.setOutputVolumeMember,
806
+ setMicrophoneVolume: import_core7.Rooms.setInputVolumeMember,
807
+ setSpeakerVolume: import_core7.Rooms.setOutputVolumeMember,
808
+ setInputSensitivity: import_core7.Rooms.setInputSensitivityMember,
809
+ removeMember: import_core7.Rooms.removeMember,
810
+ getMembers: import_core7.Rooms.getMembers,
811
+ getLayouts: import_core7.Rooms.getLayouts,
812
+ setLayout: import_core7.Rooms.setLayout,
813
+ hideVideoMuted: import_core7.Rooms.hideVideoMuted,
814
+ showVideoMuted: import_core7.Rooms.showVideoMuted,
815
+ getRecordings: import_core7.Rooms.getRecordings,
816
+ startRecording: import_core7.Rooms.startRecording,
817
+ getPlaybacks: import_core7.Rooms.getPlaybacks,
818
+ play: import_core7.Rooms.play,
819
+ setHideVideoMuted: import_core7.Rooms.setHideVideoMuted
708
820
  });
709
821
  var createBaseRoomSessionObject = (params) => {
710
- const room = (0, import_core6.connect)({
822
+ const room = (0, import_core7.connect)({
711
823
  store: params.store,
712
824
  customSagas: params.customSagas,
713
825
  Component: RoomSessionAPI,
@@ -717,8 +829,8 @@ var createBaseRoomSessionObject = (params) => {
717
829
  };
718
830
 
719
831
  // src/cantina/Cantina.ts
720
- var import_core7 = require("@signalwire/core");
721
- var CantinaAPI = class extends import_core7.BaseConsumer {
832
+ var import_core8 = require("@signalwire/core");
833
+ var CantinaAPI = class extends import_core8.BaseConsumer {
722
834
  constructor() {
723
835
  super(...arguments);
724
836
  __publicField(this, "_eventsPrefix", "cantina-manager");
@@ -730,10 +842,10 @@ var CantinaAPI = class extends import_core7.BaseConsumer {
730
842
  {
731
843
  type: "roomSession",
732
844
  instanceFactory: ({ rooms }) => ({
733
- rooms: rooms.map((row) => (0, import_core7.toExternalJSON)(row))
845
+ rooms: rooms.map((row) => (0, import_core8.toExternalJSON)(row))
734
846
  }),
735
847
  payloadTransform: ({ rooms }) => ({
736
- rooms: rooms.map((row) => (0, import_core7.toExternalJSON)(row))
848
+ rooms: rooms.map((row) => (0, import_core8.toExternalJSON)(row))
737
849
  })
738
850
  }
739
851
  ],
@@ -747,15 +859,15 @@ var CantinaAPI = class extends import_core7.BaseConsumer {
747
859
  ],
748
860
  {
749
861
  type: "roomSession",
750
- instanceFactory: (payload) => (0, import_core7.toExternalJSON)(payload),
751
- payloadTransform: (payload) => (0, import_core7.toExternalJSON)(payload)
862
+ instanceFactory: (payload) => (0, import_core8.toExternalJSON)(payload),
863
+ payloadTransform: (payload) => (0, import_core8.toExternalJSON)(payload)
752
864
  }
753
865
  ]
754
866
  ]);
755
867
  }
756
868
  };
757
869
  var createCantinaObject = (params) => {
758
- const cantina = (0, import_core7.connect)({
870
+ const cantina = (0, import_core8.connect)({
759
871
  store: params.store,
760
872
  Component: CantinaAPI,
761
873
  componentListeners: {
@@ -777,7 +889,7 @@ var createCantinaObject = (params) => {
777
889
  };
778
890
 
779
891
  // src/Client.ts
780
- var ClientAPI = class extends import_core8.BaseClient {
892
+ var ClientAPI = class extends import_core9.BaseClient {
781
893
  constructor() {
782
894
  super(...arguments);
783
895
  __publicField(this, "_cantina");
@@ -840,7 +952,7 @@ var ClientAPI = class extends import_core8.BaseClient {
840
952
  }
841
953
  get chat() {
842
954
  if (!this._chat) {
843
- this._chat = import_core8.Chat.createBaseChatObject({
955
+ this._chat = import_core9.Chat.createBaseChatObject({
844
956
  store: this.store,
845
957
  emitter: this.options.emitter
846
958
  });
@@ -854,30 +966,30 @@ var ClientAPI = class extends import_core8.BaseClient {
854
966
  return this._cantina;
855
967
  }
856
968
  reauthenticate(token) {
857
- this.store.dispatch(import_core8.actions.reauthAction({ token }));
969
+ this.store.dispatch(import_core9.actions.reauthAction({ token }));
858
970
  }
859
971
  };
860
972
 
861
973
  // src/JWTSession.ts
862
- var import_core9 = require("@signalwire/core");
863
- var JWTSession = class extends import_core9.BaseJWTSession {
974
+ var import_core10 = require("@signalwire/core");
975
+ var JWTSession = class extends import_core10.BaseJWTSession {
864
976
  constructor() {
865
977
  super(...arguments);
866
978
  __publicField(this, "WebSocketConstructor", WebSocket);
867
- __publicField(this, "agent", "@signalwire/js/3.7.1-dev.202201131750.6d234cc.0");
979
+ __publicField(this, "agent", "@signalwire/js/3.8.0");
868
980
  }
869
981
  };
870
982
 
871
983
  // src/createClient.ts
872
984
  var createClient = (userOptions) => {
873
985
  const baseUserOptions = __spreadProps(__spreadValues({}, userOptions), {
874
- emitter: (0, import_core10.getEventEmitter)()
986
+ emitter: (0, import_core11.getEventEmitter)()
875
987
  });
876
- const store = (0, import_core10.configureStore)({
988
+ const store = (0, import_core11.configureStore)({
877
989
  userOptions: baseUserOptions,
878
990
  SessionConstructor: JWTSession
879
991
  });
880
- const client = (0, import_core10.connect)({
992
+ const client = (0, import_core11.connect)({
881
993
  store,
882
994
  Component: ClientAPI,
883
995
  componentListeners: {
@@ -888,7 +1000,47 @@ var createClient = (userOptions) => {
888
1000
  return client;
889
1001
  };
890
1002
 
1003
+ // src/chat/Client.ts
1004
+ var Client2 = function(chatOptions) {
1005
+ if (process.env.NODE_ENV === "production") {
1006
+ (0, import_core12.getLogger)().warn("`Chat` is still under development and may change in the future without prior notice.");
1007
+ }
1008
+ const client = createClient(chatOptions);
1009
+ const subscribe = (channels) => __async(this, null, function* () {
1010
+ yield client.connect();
1011
+ return client.chat.subscribe(channels);
1012
+ });
1013
+ const publish = (params) => __async(this, null, function* () {
1014
+ yield client.connect();
1015
+ return client.chat.publish(params);
1016
+ });
1017
+ return new Proxy(client.chat, {
1018
+ get(target, prop, receiver) {
1019
+ if (prop === "subscribe") {
1020
+ return subscribe;
1021
+ } else if (prop === "publish") {
1022
+ return publish;
1023
+ }
1024
+ return Reflect.get(target, prop, receiver);
1025
+ }
1026
+ });
1027
+ };
1028
+
1029
+ // src/chat/index.ts
1030
+ var ChatMember = import_core13.Chat.ChatMember;
1031
+ var ChatMessage = import_core13.Chat.ChatMessage;
1032
+
1033
+ // src/video.ts
1034
+ var video_exports = {};
1035
+ __export(video_exports, {
1036
+ RoomSession: () => RoomSession,
1037
+ createClient: () => createClient,
1038
+ createRoomObject: () => createRoomObject,
1039
+ joinRoom: () => joinRoom
1040
+ });
1041
+
891
1042
  // src/createRoomObject.ts
1043
+ var import_core14 = require("@signalwire/core");
892
1044
  var VIDEO_CONSTRAINTS = {
893
1045
  aspectRatio: { ideal: 16 / 9 }
894
1046
  };
@@ -927,7 +1079,7 @@ var createRoomObject = (roomOptions) => {
927
1079
  rootElement = el;
928
1080
  } else {
929
1081
  rootElement = document.body;
930
- (0, import_core11.getLogger)().warn(`We couldn't find an element with id: ${rootElementId}: using 'document.body' instead.`);
1082
+ (0, import_core14.getLogger)().warn(`We couldn't find an element with id: ${rootElementId}: using 'document.body' instead.`);
931
1083
  }
932
1084
  }
933
1085
  const room = client.rooms.makeRoomObject({
@@ -966,7 +1118,7 @@ var joinRoom = (roomOptions) => {
966
1118
  };
967
1119
 
968
1120
  // src/RoomSession.ts
969
- var import_core12 = require("@signalwire/core");
1121
+ var import_core15 = require("@signalwire/core");
970
1122
  var VIDEO_CONSTRAINTS2 = {
971
1123
  aspectRatio: { ideal: 16 / 9 }
972
1124
  };
@@ -1035,21 +1187,25 @@ var RoomSession = function(roomOptions) {
1035
1187
  const join = () => {
1036
1188
  return new Promise((resolve, reject) => __async(this, null, function* () {
1037
1189
  try {
1190
+ room.attachPreConnectWorkers();
1038
1191
  yield client.connect();
1039
1192
  room.once("room.subscribed", () => {
1040
1193
  resolve(room);
1041
1194
  });
1042
1195
  yield room.join();
1043
1196
  } catch (error) {
1044
- (0, import_core12.getLogger)().error("RoomSession Join", error);
1197
+ (0, import_core15.getLogger)().error("RoomSession Join", error);
1045
1198
  reject(error);
1046
1199
  }
1047
1200
  }));
1048
1201
  };
1202
+ const interceptors = {
1203
+ join
1204
+ };
1049
1205
  return new Proxy(room, {
1050
1206
  get(target, prop, receiver) {
1051
- if (prop === "join") {
1052
- return join;
1207
+ if (prop in interceptors) {
1208
+ return interceptors[prop];
1053
1209
  }
1054
1210
  if (!target.active && UNSAFE_PROP_ACCESS.includes(prop)) {
1055
1211
  throw new Error(`Tried to access the property/method "${prop}" before the room was connected. Please call roomSession.join() first.`);
@@ -1092,38 +1248,5 @@ __export(webrtc_exports, {
1092
1248
  supportsMediaOutput: () => import_webrtc5.supportsMediaOutput
1093
1249
  });
1094
1250
  var import_webrtc5 = require("@signalwire/webrtc");
1095
-
1096
- // src/chat/index.ts
1097
- var chat_exports = {};
1098
- __export(chat_exports, {
1099
- Client: () => Client2
1100
- });
1101
-
1102
- // src/chat/Client.ts
1103
- var import_core13 = require("@signalwire/core");
1104
- var Client2 = function(chatOptions) {
1105
- if (process.env.NODE_ENV === "production") {
1106
- (0, import_core13.getLogger)().warn("`Chat` is still under development and may change in the future without prior notice.");
1107
- }
1108
- const client = createClient(chatOptions);
1109
- const subscribe = (channels) => __async(this, null, function* () {
1110
- yield client.connect();
1111
- return client.chat.subscribe(channels);
1112
- });
1113
- const publish = (params) => __async(this, null, function* () {
1114
- yield client.connect();
1115
- return client.chat.publish(params);
1116
- });
1117
- return new Proxy(client.chat, {
1118
- get(target, prop, receiver) {
1119
- if (prop === "subscribe") {
1120
- return subscribe;
1121
- } else if (prop === "publish") {
1122
- return publish;
1123
- }
1124
- return Reflect.get(target, prop, receiver);
1125
- }
1126
- });
1127
- };
1128
1251
  module.exports = __toCommonJS(src_exports);
1129
1252
  //# sourceMappingURL=index.js.map