mediasfu-shared 1.2.3 → 1.2.5

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 (86) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/audioProcessing-0z5KlcmO.js +35 -0
  3. package/dist/audioProcessing-0z5KlcmO.js.map +1 -0
  4. package/dist/audioProcessing-BpbrdCk-.cjs +34 -0
  5. package/dist/audioProcessing-BpbrdCk-.cjs.map +1 -0
  6. package/dist/consumers/audioProcessing.d.ts +8 -0
  7. package/dist/consumers/audioProcessing.d.ts.map +1 -0
  8. package/dist/consumers/createSendTransport.d.ts.map +1 -1
  9. package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts +6 -0
  10. package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts.map +1 -1
  11. package/dist/consumers/index.cjs +3 -2
  12. package/dist/consumers/index.cjs.map +1 -1
  13. package/dist/consumers/index.js +14 -13
  14. package/dist/consumers/signalNewConsumerTransport.d.ts.map +1 -1
  15. package/dist/consumers/switchUserAudio.d.ts +3 -1
  16. package/dist/consumers/switchUserAudio.d.ts.map +1 -1
  17. package/dist/consumers/transportRecovery.d.ts +8 -0
  18. package/dist/consumers/transportRecovery.d.ts.map +1 -0
  19. package/dist/{getParticipantMedia-AwwtMCTz.cjs → getParticipantMedia-CP4hE5Rg.cjs} +9 -4
  20. package/dist/getParticipantMedia-CP4hE5Rg.cjs.map +1 -0
  21. package/dist/{getParticipantMedia-CyaOk2oD.js → getParticipantMedia-CvXdDj03.js} +9 -4
  22. package/dist/getParticipantMedia-CvXdDj03.js.map +1 -0
  23. package/dist/index.cjs +106 -22
  24. package/dist/index.cjs.map +1 -1
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +173 -89
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.native.cjs +8 -7
  30. package/dist/index.native.cjs.map +1 -1
  31. package/dist/index.native.js +19 -18
  32. package/dist/{joinLocalRoom-Bu3gz27d.js → joinLocalRoom-Cx1y3Ojj.js} +4 -4
  33. package/dist/{joinLocalRoom-Bu3gz27d.js.map → joinLocalRoom-Cx1y3Ojj.js.map} +1 -1
  34. package/dist/{joinLocalRoom-Cii5D5IG.cjs → joinLocalRoom-DNJ2zb8W.cjs} +10 -10
  35. package/dist/{joinLocalRoom-Cii5D5IG.cjs.map → joinLocalRoom-DNJ2zb8W.cjs.map} +1 -1
  36. package/dist/{joinRoomOnMediaSFU-y6vJ1OBo.js → joinRoomOnMediaSFU-BnAWLciF.js} +9 -3
  37. package/dist/joinRoomOnMediaSFU-BnAWLciF.js.map +1 -0
  38. package/dist/{joinRoomOnMediaSFU-CC8RVJgr.cjs → joinRoomOnMediaSFU-D2C7q1GK.cjs} +9 -3
  39. package/dist/joinRoomOnMediaSFU-D2C7q1GK.cjs.map +1 -0
  40. package/dist/methods/index.cjs +3 -3
  41. package/dist/methods/index.js +3 -3
  42. package/dist/methods/stream/clickAudio.d.ts +3 -1
  43. package/dist/methods/stream/clickAudio.d.ts.map +1 -1
  44. package/dist/methods/stream/switchAudio.d.ts +3 -1
  45. package/dist/methods/stream/switchAudio.d.ts.map +1 -1
  46. package/dist/methods/utils/headless/virtualBackground.d.ts +3 -1
  47. package/dist/methods/utils/headless/virtualBackground.d.ts.map +1 -1
  48. package/dist/methods/utils/virtualBackgroundFrameLoop.d.ts +10 -0
  49. package/dist/methods/utils/virtualBackgroundFrameLoop.d.ts.map +1 -0
  50. package/dist/{translationConsumerSwitch-C20MfNNq.cjs → translationConsumerSwitch-BAsQUpH6.cjs} +9 -1
  51. package/dist/translationConsumerSwitch-BAsQUpH6.cjs.map +1 -0
  52. package/dist/{translationConsumerSwitch-zKuS5wgH.js → translationConsumerSwitch-BUODiT6o.js} +20 -12
  53. package/dist/translationConsumerSwitch-BUODiT6o.js.map +1 -0
  54. package/dist/types/index.cjs +3 -3
  55. package/dist/types/index.js +3 -3
  56. package/dist/types/shared-base-types.d.ts +12 -0
  57. package/dist/types/shared-base-types.d.ts.map +1 -1
  58. package/dist/{updateParticipantAudioDecibels-QZyahisU.cjs → updateParticipantAudioDecibels-BJ2PxJJD.cjs} +203 -46
  59. package/dist/updateParticipantAudioDecibels-BJ2PxJJD.cjs.map +1 -0
  60. package/dist/{updateParticipantAudioDecibels-CnEXJBmc.js → updateParticipantAudioDecibels-DiJ_LFfH.js} +200 -43
  61. package/dist/updateParticipantAudioDecibels-DiJ_LFfH.js.map +1 -0
  62. package/package.json +1 -1
  63. package/src/consumers/audioProcessing.ts +26 -0
  64. package/src/consumers/createSendTransport.ts +5 -20
  65. package/src/consumers/gridLayout/addVideosGrid.engine.ts +13 -0
  66. package/src/consumers/signalNewConsumerTransport.ts +7 -25
  67. package/src/consumers/switchUserAudio.ts +18 -5
  68. package/src/consumers/transportRecovery.ts +170 -0
  69. package/src/index.ts +2 -0
  70. package/src/methods/stream/clickAudio.ts +13 -5
  71. package/src/methods/stream/switchAudio.ts +10 -1
  72. package/src/methods/utils/headless/virtualBackground.ts +21 -13
  73. package/src/methods/utils/virtualBackgroundFrameLoop.ts +69 -0
  74. package/src/types/shared-base-types.ts +3 -0
  75. package/dist/getParticipantMedia-AwwtMCTz.cjs.map +0 -1
  76. package/dist/getParticipantMedia-CyaOk2oD.js.map +0 -1
  77. package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs.map +0 -1
  78. package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js.map +0 -1
  79. package/dist/translationConsumerSwitch-C20MfNNq.cjs.map +0 -1
  80. package/dist/translationConsumerSwitch-zKuS5wgH.js.map +0 -1
  81. package/dist/updateParticipantAudioDecibels-CnEXJBmc.js.map +0 -1
  82. package/dist/updateParticipantAudioDecibels-QZyahisU.cjs.map +0 -1
  83. package/dist/validateAlphanumeric-DKn5BsUP.cjs +0 -15
  84. package/dist/validateAlphanumeric-DKn5BsUP.cjs.map +0 -1
  85. package/dist/validateAlphanumeric-Dk1JB80W.js +0 -16
  86. package/dist/validateAlphanumeric-Dk1JB80W.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const joinLocalRoom = require("./joinLocalRoom-Cii5D5IG.cjs");
4
- const updateParticipantAudioDecibels = require("./updateParticipantAudioDecibels-QZyahisU.cjs");
5
- const joinRoomOnMediaSFU = require("./joinRoomOnMediaSFU-CC8RVJgr.cjs");
6
- const translationConsumerSwitch = require("./translationConsumerSwitch-C20MfNNq.cjs");
7
- const getParticipantMedia = require("./getParticipantMedia-AwwtMCTz.cjs");
3
+ const joinLocalRoom = require("./joinLocalRoom-DNJ2zb8W.cjs");
4
+ const updateParticipantAudioDecibels = require("./updateParticipantAudioDecibels-BJ2PxJJD.cjs");
5
+ const joinRoomOnMediaSFU = require("./joinRoomOnMediaSFU-D2C7q1GK.cjs");
6
+ const translationConsumerSwitch = require("./translationConsumerSwitch-BAsQUpH6.cjs");
7
+ const getParticipantMedia = require("./getParticipantMedia-CP4hE5Rg.cjs");
8
8
  const methods_index = require("./methods/index.cjs");
9
- const validateAlphanumeric = require("./validateAlphanumeric-DKn5BsUP.cjs");
9
+ const audioProcessing = require("./audioProcessing-BpbrdCk-.cjs");
10
10
  exports.addVideosGrid = joinLocalRoom.addVideosGrid;
11
11
  exports.breakoutRoomUpdated = joinLocalRoom.breakoutRoomUpdated;
12
12
  exports.checkMediasfuURL = joinLocalRoom.checkMediasfuURL;
@@ -127,6 +127,7 @@ exports.isSpeakerInMyBreakoutRoom = translationConsumerSwitch.isSpeakerInMyBreak
127
127
  exports.pauseOriginalProducer = translationConsumerSwitch.pauseOriginalProducer;
128
128
  exports.resolveHostVideoStream = translationConsumerSwitch.resolveHostVideoStream;
129
129
  exports.resolveMainHostRenderMode = translationConsumerSwitch.resolveMainHostRenderMode;
130
+ exports.resolveSidePanelForceFullDisplay = translationConsumerSwitch.resolveSidePanelForceFullDisplay;
130
131
  exports.resumeOriginalProducer = translationConsumerSwitch.resumeOriginalProducer;
131
132
  exports.stopConsumingTranslation = translationConsumerSwitch.stopConsumingTranslation;
132
133
  exports.syncTranslationStateAfterBreakoutChange = translationConsumerSwitch.syncTranslationStateAfterBreakoutChange;
@@ -348,5 +349,5 @@ exports.updatedCoHost = methods_index.updatedCoHost;
348
349
  exports.userWaiting = methods_index.userWaiting;
349
350
  exports.validateWelcomeAlphanumeric = methods_index.validateWelcomeAlphanumeric;
350
351
  exports.validateWelcomeInputs = methods_index.validateWelcomeInputs;
351
- exports.validateAlphanumeric = validateAlphanumeric.validateAlphanumeric;
352
+ exports.validateAlphanumeric = audioProcessing.validateAlphanumeric;
352
353
  //# sourceMappingURL=index.native.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.native.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,10 @@
1
- import { a, b, d, c, e, f, j, m, p, u } from "./joinLocalRoom-Bu3gz27d.js";
2
- import { Y, Z, a as a2, _, $, b as b2, W, d as d2, e as e2, f as f2, g, h, aa, i, j as j2, k, l, m as m2, a8, c as c2, a0, n, o, p as p2, q, a9, r, s, a1, a2 as a22, a3, t, X, T, v, U, w, x, y, V, C, G, z, A, a4, B, D, E, F, a5, N, H, I, J, K, L, M, O, P, Q, R, S, u as u2, a6, a7 } from "./updateParticipantAudioDecibels-CnEXJBmc.js";
3
- import { Q as Q2, u as u3, m as m3, A as A2, f as f3, e as e3, a as a10, c as c3, b as b3, d as d3, l as l2, y as y2, p as p3, D as D2, g as g2, k as k2, x as x2, o as o2, C as C2, h as h2, j as j3, q as q2, z as z2, r as r2, E as E2, F as F2, s as s2, i as i2, w as w2, n as n2, B as B2, t as t2, v as v2 } from "./joinRoomOnMediaSFU-y6vJ1OBo.js";
4
- import { b as b4, d as d4, c as c4, f as f4, e as e4, k as k3, j as j4, h as h3, i as i3, p as p4, a as a11, r as r3, g as g3, s as s3, l as l3 } from "./translationConsumerSwitch-zKuS5wgH.js";
5
- import { aD, aR, w as w3, x as x3, f as f5, y as y3, aP, ar, aU, aS, ab, at, aI, a4 as a42, Z as Z2, au, aV, aL, _ as _2, az, X as X2, W as W2, aG, a7 as a72, N as N2, a8 as a82, b0, a2 as a23, aM, aQ, aq, aO, aw, av, ai, V as V2, U as U2, T as T2, Y as Y2, a6 as a62, aN, ax, aA, an, q as q3, t as t3, h as h4, Q as Q3, a as a12, R as R2, u as u4, l as l4, b as b5, c as c5, S as S2, g as g4, d as d5, i as i4, j as j5, k as k4, n as n3, v as v3, z as z3, H as H2, J as J2, O as O2, $ as $2, a5 as a52, a3 as a32, o as o3, m as m4, e as e5, ad, aa as aa2, p as p5, ak, aY, a_, aZ, aW, aT, aF, A as A3, B as B3, C as C3, D as D3, ae, r as r4, a$, ag, I as I2, P as P2, af, al, a1 as a13, a0 as a02, s as s4, aC, ah, a9 as a92, aB, aK, ay, E as E3, aj, ao, aE, ac, aX, F as F3, am, ap, K as K2, aH, aJ, L as L2, M as M2, G as G2, as } from "./getParticipantMedia-CyaOk2oD.js";
1
+ import { a, b, d, c, e, f, j, m, p, u } from "./joinLocalRoom-Cx1y3Ojj.js";
2
+ import { Y, Z, a as a2, _, $, b as b2, W, d as d2, e as e2, f as f2, g, h, aa, i, j as j2, k, l, m as m2, a8, c as c2, a0, n, o, p as p2, q, a9, r, s, a1, a2 as a22, a3, t, X, T, v, U, w, x, y, V, C, G, z, A, a4, B, D, E, F, a5, N, H, I, J, K, L, M, O, P, Q, R, S, u as u2, a6, a7 } from "./updateParticipantAudioDecibels-DiJ_LFfH.js";
3
+ import { Q as Q2, u as u3, m as m3, A as A2, f as f3, e as e3, a as a10, c as c3, b as b3, d as d3, l as l2, y as y2, p as p3, D as D2, g as g2, k as k2, x as x2, o as o2, C as C2, h as h2, j as j3, q as q2, z as z2, r as r2, E as E2, F as F2, s as s2, i as i2, w as w2, n as n2, B as B2, t as t2, v as v2 } from "./joinRoomOnMediaSFU-BnAWLciF.js";
4
+ import { b as b4, e as e4, d as d4, g as g3, f as f4, l as l3, k as k3, j as j4, i as i3, p as p4, c as c4, a as a11, r as r3, h as h3, s as s3, m as m4 } from "./translationConsumerSwitch-BUODiT6o.js";
5
+ import { aD, aR, w as w3, x as x3, f as f5, y as y3, aP, ar, aU, aS, ab, at, aI, a4 as a42, Z as Z2, au, aV, aL, _ as _2, az, X as X2, W as W2, aG, a7 as a72, N as N2, a8 as a82, b0, a2 as a23, aM, aQ, aq, aO, aw, av, ai, V as V2, U as U2, T as T2, Y as Y2, a6 as a62, aN, ax, aA, an, q as q3, t as t3, h as h4, Q as Q3, a as a12, R as R2, u as u4, l as l4, b as b5, c as c5, S as S2, g as g4, d as d5, i as i4, j as j5, k as k4, n as n3, v as v3, z as z3, H as H2, J as J2, O as O2, $ as $2, a5 as a52, a3 as a32, o as o3, m as m5, e as e5, ad, aa as aa2, p as p5, ak, aY, a_, aZ, aW, aT, aF, A as A3, B as B3, C as C3, D as D3, ae, r as r4, a$, ag, I as I2, P as P2, af, al, a1 as a13, a0 as a02, s as s4, aC, ah, a9 as a92, aB, aK, ay, E as E3, aj, ao, aE, ac, aX, F as F3, am, ap, K as K2, aH, aJ, L as L2, M as M2, G as G2, as } from "./getParticipantMedia-CvXdDj03.js";
6
6
  import { COMMON_LANGUAGE_CODES, MediaStream, MediaStreamTrack, RTCView, SUPPORTED_LANGUAGE_CODES, SoundPlayer, TTS_PROVIDERS, addPanelist, addedAsPanelist, allMembers, allMembersRest, allWaitingRoomMembers, banParticipant, bulkUpdateParticipantPermissions, clickChat, controlMediaHost, createLiveSubtitle, createResponseJoinRoom, createRoomOnMediaSFU, disconnect, disconnectUserSelf, fetchLanguagesViaSocket, fetchVoicesViaSocket, focusPanelists, formatNumber, generateRandomMessages, generateRandomParticipants, generateRandomPolls, generateRandomRequestList, generateRandomWaitingRoomList, getAvailableVoices, getCommonLanguages, getDomains, getLanguageMetadata, getLanguageName, getLanguageNativeName, getOverlayPosition, getSubtitleForSpeaker, getSupportedLanguages, handleCreateRoom, handleJoinRoom, handleWelcomeRequest, initialValuesState, isLanguageSupported, isSubtitleExpired, launchPanelists, launchPermissions, mediaDevices, meetingEnded, meetingStillThere, meetingTimeRemaining, normalizeLanguageCode, panelistControlMedia, panelistFocusChanged, panelistsUpdated, participantRequested, permissionConfigUpdated, permissionUpdated, personJoined, pollUpdated, producerMediaClosed, producerMediaPaused, producerMediaResumed, pruneExpiredSubtitles, reInitiateRecording, receiveMessage, recordingNotice, registerGlobals, removePanelist, removedFromPanelists, roomRecordParams, screenProducerId, sleep, startMeetingProgressTimer, startRecords, stoppedRecording, translationChannelsAvailable, translationConfigUpdated, translationError, translationLanguageSet, translationMemberState, translationProducerClosed, translationProducerReady, translationRoomConfig, translationSpeakerOutputChanged, translationSubscribed, translationTranscript, translationUnsubscribed, unfocusPanelists, updateConsumingDomains, updateLiveSubtitlesFromTranscript, updateMediaSettings, updatePanelists, updateParticipantPermission, updatePermissionConfig, updatedCoHost, userWaiting, validateWelcomeAlphanumeric, validateWelcomeInputs } from "./methods/index.js";
7
- import { v as v4 } from "./validateAlphanumeric-Dk1JB80W.js";
7
+ import { v as v4 } from "./audioProcessing-0z5KlcmO.js";
8
8
  export {
9
9
  COMMON_LANGUAGE_CODES,
10
10
  MediaStream,
@@ -30,10 +30,10 @@ export {
30
30
  banParticipant,
31
31
  b as breakoutRoomUpdated,
32
32
  b4 as buildAddVideosGridPlan,
33
- d4 as buildMainHostCardPlan,
34
- c4 as buildMainScreenState,
35
- f4 as buildPrepopulateUserMediaPlan,
36
- e4 as buildScreenShareHostCardPlan,
33
+ e4 as buildMainHostCardPlan,
34
+ d4 as buildMainScreenState,
35
+ g3 as buildPrepopulateUserMediaPlan,
36
+ f4 as buildScreenShareHostCardPlan,
37
37
  bulkUpdateParticipantPermissions,
38
38
  Z as calculateRowsAndColumns,
39
39
  e3 as captureCanvasStream,
@@ -91,7 +91,7 @@ export {
91
91
  y2 as fhdConsNeu,
92
92
  p3 as fhdConsPort,
93
93
  D2 as fhdFrameRate,
94
- k3 as findOriginalProducerForSpeaker,
94
+ l3 as findOriginalProducerForSpeaker,
95
95
  aI as flipCamera,
96
96
  focusPanelists,
97
97
  formatNumber,
@@ -102,7 +102,7 @@ export {
102
102
  generateRandomRequestList,
103
103
  generateRandomWaitingRoomList,
104
104
  a42 as getActiveSpeaker,
105
- j4 as getActiveTranslationConsumers,
105
+ k3 as getActiveTranslationConsumers,
106
106
  Z2 as getAudioGridComponents,
107
107
  getAvailableVoices,
108
108
  au as getBreakoutState,
@@ -163,7 +163,7 @@ export {
163
163
  C2 as hdFrameRate,
164
164
  h2 as hostRequestResponse,
165
165
  initialValuesState,
166
- h3 as isConsumingTranslationForSpeaker,
166
+ j4 as isConsumingTranslationForSpeaker,
167
167
  isLanguageSupported,
168
168
  i3 as isSpeakerInMyBreakoutRoom,
169
169
  isSubtitleExpired,
@@ -199,7 +199,7 @@ export {
199
199
  meetingTimeRemaining,
200
200
  o3 as messageParticipants,
201
201
  v as mixStreams,
202
- m4 as modifyCoHostSettings,
202
+ m5 as modifyCoHostSettings,
203
203
  e5 as modifyDisplaySettings,
204
204
  m as modifySettings,
205
205
  ad as muteEveryone,
@@ -256,13 +256,14 @@ export {
256
256
  B as reorderStreams,
257
257
  a$ as replaceProducerTrack,
258
258
  D as requestScreenShare,
259
- a11 as resolveHostVideoStream,
260
- r3 as resolveMainHostRenderMode,
259
+ c4 as resolveHostVideoStream,
260
+ a11 as resolveMainHostRenderMode,
261
+ r3 as resolveSidePanelForceFullDisplay,
261
262
  ag as respondToParticipantRequest,
262
263
  I2 as respondToRequests,
263
264
  P2 as respondToWaiting,
264
265
  af as respondToWaitingParticipant,
265
- g3 as resumeOriginalProducer,
266
+ h3 as resumeOriginalProducer,
266
267
  E as resumePauseAudioStreams,
267
268
  F as resumePauseStreams,
268
269
  al as resumeRoomRecording,
@@ -314,7 +315,7 @@ export {
314
315
  R as switchUserVideoAlt,
315
316
  L2 as switchVideo,
316
317
  M2 as switchVideoAlt,
317
- l3 as syncTranslationStateAfterBreakoutChange,
318
+ m4 as syncTranslationStateAfterBreakoutChange,
318
319
  t2 as timeLeftRecording,
319
320
  translationChannelsAvailable,
320
321
  translationConfigUpdated,
@@ -1,7 +1,7 @@
1
- import { ab as createFrameworkConsumerContractError, X as joinConRoom } from "./updateParticipantAudioDecibels-CnEXJBmc.js";
1
+ import { ab as createFrameworkConsumerContractError, X as joinConRoom } from "./updateParticipantAudioDecibels-DiJ_LFfH.js";
2
2
  import * as mediasoupClient from "mediasoup-client";
3
- import { v as validateAlphanumeric } from "./validateAlphanumeric-Dk1JB80W.js";
4
- import { g as hParams, v as vParams, k as hdCons, l as fhdCons, q as qhdCons, i as sdCons, Q as QnHDCons, x as hdConsNeu, y as fhdConsNeu, z as qhdConsNeu, w as sdConsNeu, u as QnHDConsNeu, o as hdConsPort, p as fhdConsPort, r as qhdConsPort, n as sdConsPort, m as QnHDConsPort, C as hdFrameRate, A as QnHDFrameRate, D as fhdFrameRate, E as qhdFrameRate, s as screenParams, f as aParams, a as checkLimitsAndMakeRequest, j as joinRoomOnMediaSFU } from "./joinRoomOnMediaSFU-y6vJ1OBo.js";
3
+ import { v as validateAlphanumeric } from "./audioProcessing-0z5KlcmO.js";
4
+ import { g as hParams, v as vParams, k as hdCons, l as fhdCons, q as qhdCons, i as sdCons, Q as QnHDCons, x as hdConsNeu, y as fhdConsNeu, z as qhdConsNeu, w as sdConsNeu, u as QnHDConsNeu, o as hdConsPort, p as fhdConsPort, r as qhdConsPort, n as sdConsPort, m as QnHDConsPort, C as hdFrameRate, A as QnHDFrameRate, D as fhdFrameRate, E as qhdFrameRate, s as screenParams, f as aParams, a as checkLimitsAndMakeRequest, j as joinRoomOnMediaSFU } from "./joinRoomOnMediaSFU-BnAWLciF.js";
5
5
  const addVideosGrid = async () => {
6
6
  throw createFrameworkConsumerContractError("addVideosGrid");
7
7
  };
@@ -654,4 +654,4 @@ export {
654
654
  prepopulateUserMedia as p,
655
655
  updateRoomParametersClient as u
656
656
  };
657
- //# sourceMappingURL=joinLocalRoom-Bu3gz27d.js.map
657
+ //# sourceMappingURL=joinLocalRoom-Cx1y3Ojj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"joinLocalRoom-Bu3gz27d.js","sources":["../src/consumers/addVideosGrid.ts","../src/consumers/prepopulateUserMedia.ts","../src/methods/breakoutRooms/breakoutRoomUpdated.ts","../src/methods/settings/modifySettings.ts","../src/ProducerClient/producerClientEmits/createDeviceClient.ts","../src/producers/producerEmits/joinRoom.ts","../src/ProducerClient/producerClientEmits/joinRoomClient.ts","../src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts","../src/producers/producerEmits/joinLocalRoom.ts"],"sourcesContent":["// Stub export for addVideosGrid\n// This is a React component in the original and not needed for the shared package\n\nimport { createFrameworkConsumerContractError } from './frameworkConsumerContract';\n\nexport interface AddVideosGridParameters {\n [key: string]: any;\n}\n\nexport interface AddVideosGridOptions {\n parameters: AddVideosGridParameters;\n [key: string]: any; // Accept any additional properties\n}\n\nexport type AddVideosGridType = (options: AddVideosGridOptions) => Promise<void>;\n\nexport const addVideosGrid: AddVideosGridType = async () => {\n throw createFrameworkConsumerContractError('addVideosGrid');\n};\n","// Stub export for prepopulateUserMedia\n// This is a React component in the original and not needed for the shared package\n\nimport { createFrameworkConsumerContractError } from './frameworkConsumerContract';\n\nexport interface PrepopulateUserMediaParameters {\n [key: string]: any;\n}\n\nexport interface PrepopulateUserMediaOptions {\n name: string;\n parameters: PrepopulateUserMediaParameters;\n}\n\nexport type PrepopulateUserMediaType = (options: PrepopulateUserMediaOptions) => Promise<void>;\n\nexport const prepopulateUserMedia: PrepopulateUserMediaType = async () => {\n throw createFrameworkConsumerContractError('prepopulateUserMedia');\n};\n","import type {\n BreakoutParticipant,\n BreakoutRoomUpdatedData,\n OnScreenChangesParameters,\n OnScreenChangesType,\n Participant,\n RePortParameters,\n RePortType,\n} from '../../types/types'\n\nexport interface BreakoutRoomUpdatedParameters extends OnScreenChangesParameters, RePortParameters {\n breakOutRoomStarted: boolean\n breakOutRoomEnded: boolean\n breakoutRooms: BreakoutParticipant[][]\n hostNewRoom: number\n islevel: string\n participantsAll: Participant[]\n participants: Participant[]\n meetingDisplayType: string\n prevMeetingDisplayType: string\n updateBreakoutRooms: (rooms: BreakoutParticipant[][]) => void\n updateBreakOutRoomStarted: (started: boolean) => void\n updateBreakOutRoomEnded: (ended: boolean) => void\n updateHostNewRoom: (room: number) => void\n updateMeetingDisplayType: (type: string) => void\n updateParticipantsAll: (participants: Participant[]) => void\n updateParticipants: (participants: Participant[]) => void\n onScreenChanges: OnScreenChangesType\n rePort: RePortType\n getUpdatedAllParams: () => BreakoutRoomUpdatedParameters\n [key: string]: any\n}\n\nexport interface BreakoutRoomUpdatedOptions {\n data: BreakoutRoomUpdatedData\n parameters: BreakoutRoomUpdatedParameters\n}\n\nexport type BreakoutRoomUpdatedType = (options: BreakoutRoomUpdatedOptions) => Promise<void>\n\n/**\n * Updates the state of breakout rooms based on the provided data and parameters.\n *\n * @param {BreakoutRoomUpdatedOptions} options - The options object.\n * @param {BreakoutRoomUpdatedData} options.data - The data object containing information about the breakout rooms.\n * @param {BreakoutRoomUpdatedParameters} options.parameters - The parameters object containing various state update functions and other parameters.\n *\n * @example\n * ```typescript\n * const breakoutOptions: BreakoutRoomUpdatedOptions = {\n * data: breakoutData,\n * parameters: {\n * breakOutRoomStarted: false,\n * breakOutRoomEnded: false,\n * breakoutRooms: [[]],\n * hostNewRoom: 1,\n * islevel: '2',\n * participantsAll: allParticipants,\n * participants: activeParticipants,\n * meetingDisplayType: 'all',\n * prevMeetingDisplayType: 'video',\n * updateBreakoutRooms: setBreakoutRooms,\n * updateBreakOutRoomStarted: setBreakOutRoomStarted,\n * updateBreakOutRoomEnded: setBreakOutRoomEnded,\n * updateHostNewRoom: setHostNewRoom,\n * updateMeetingDisplayType: setMeetingDisplayType,\n * updateParticipantsAll: setAllParticipants,\n * updateParticipants: setActiveParticipants,\n * onScreenChanges: handleScreenChanges,\n * rePort: reportFunction,\n * getUpdatedAllParams: () => breakoutOptions.parameters,\n * },\n * }\n *\n * await breakoutRoomUpdated(breakoutOptions)\n * ```\n */\nexport const breakoutRoomUpdated: BreakoutRoomUpdatedType = async ({ data, parameters }) => {\n try {\n let {\n breakOutRoomStarted,\n breakOutRoomEnded,\n breakoutRooms,\n hostNewRoom,\n islevel,\n participantsAll,\n participants,\n meetingDisplayType,\n prevMeetingDisplayType,\n updateBreakoutRooms,\n updateBreakOutRoomStarted,\n updateBreakOutRoomEnded,\n updateHostNewRoom,\n updateMeetingDisplayType,\n updateParticipantsAll,\n updateParticipants,\n onScreenChanges,\n rePort,\n } = parameters\n\n if (data.forHost) {\n hostNewRoom = data.newRoom!\n updateHostNewRoom(hostNewRoom!)\n await onScreenChanges({ changed: true, parameters })\n return\n }\n\n if (islevel === '2' && data.members) {\n participantsAll = data.members.map((participant) => ({\n isBanned: participant.isBanned,\n name: participant.name,\n audioID: participant.audioID,\n videoID: participant.videoID,\n }))\n updateParticipantsAll(participantsAll)\n\n participants = data.members.filter((participant) => !participant.isBanned)\n updateParticipants(participants)\n }\n\n breakoutRooms = data.breakoutRooms || []\n updateBreakoutRooms(breakoutRooms)\n\n if (data.status === 'started' && (!breakOutRoomStarted || breakOutRoomEnded)) {\n breakOutRoomStarted = true\n breakOutRoomEnded = false\n updateBreakOutRoomStarted(true)\n updateBreakOutRoomEnded(false)\n prevMeetingDisplayType = meetingDisplayType\n if (meetingDisplayType !== 'all') {\n meetingDisplayType = 'all'\n updateMeetingDisplayType('all')\n }\n await onScreenChanges({ changed: true, parameters })\n if (islevel === '2') {\n await rePort({ restart: true, parameters })\n }\n } else if (data.status === 'ended') {\n breakOutRoomEnded = true\n updateBreakOutRoomEnded(true)\n if (meetingDisplayType !== prevMeetingDisplayType) {\n updateMeetingDisplayType(prevMeetingDisplayType)\n }\n await onScreenChanges({ changed: true, parameters })\n if (islevel === '2') {\n await rePort({ restart: true, parameters })\n }\n } else if (data.status === 'started' && breakOutRoomStarted) {\n breakOutRoomStarted = true\n breakOutRoomEnded = false\n updateBreakOutRoomStarted(true)\n updateBreakOutRoomEnded(false)\n await onScreenChanges({ changed: true, parameters })\n if (islevel === '2') {\n await rePort({ restart: true, parameters })\n }\n }\n } catch {\n // Handle error\n }\n}\n","import { Socket } from 'socket.io-client';\nimport type { ShowAlert } from '../../types/types';\n\nexport interface ModifySettingsOptions {\n showAlert?: ShowAlert;\n roomName: string;\n audioSet: string;\n videoSet: string;\n screenshareSet: string;\n chatSet: string;\n socket: Socket;\n updateAudioSetting: (audioSet: string) => void;\n updateVideoSetting: (videoSet: string) => void;\n updateScreenshareSetting: (screenshareSet: string) => void;\n updateChatSetting: (chatSet: string) => void;\n updateIsSettingsModalVisible: (isVisible: boolean) => void;\n}\n\n// Export the type definition for the function\nexport type ModifySettingsType = (options: ModifySettingsOptions) => Promise<void>;\n\n/**\n * Modifies the settings for a given room and updates the state accordingly.\n *\n * @param {ModifySettingsOptions} options - The options for modifying settings.\n * @returns {Promise<void>} A promise that resolves when the settings have been modified.\n *\n * @throws Will show an alert if any setting is set to \"approval\" in demo mode (room name starts with \"d\").\n *\n * @example\n * ```typescript\n * modifySettings({\n * roomName: \"d123\",\n * audioSet: \"allow\",\n * videoSet: \"allow\",\n * screenshareSet: \"deny\",\n * chatSet: \"allow\",\n * socket: mySocketInstance,\n * updateAudioSetting: setAudioSetting,\n * updateVideoSetting: setVideoSetting,\n * updateScreenshareSetting: setScreenshareSetting,\n * updateChatSetting: setChatSetting,\n * updateIsSettingsModalVisible: setIsSettingsModalVisible,\n * showAlert: (options) => alertUser(options),\n * });\n * ```\n */\nexport async function modifySettings({\n // showAlert,\n roomName,\n audioSet,\n videoSet,\n screenshareSet,\n chatSet,\n socket,\n updateAudioSetting,\n updateVideoSetting,\n updateScreenshareSetting,\n updateChatSetting,\n updateIsSettingsModalVisible,\n}: ModifySettingsOptions): Promise<void> {\n // if (roomName.toLowerCase().startsWith('d')) {\n // // none should be approval\n // if (\n // audioSet === 'approval' ||\n // videoSet === 'approval' ||\n // screenshareSet === 'approval' ||\n // chatSet === 'approval'\n // ) {\n // showAlert?.({\n // message: 'You cannot set approval for demo mode.',\n // type: 'danger',\n // duration: 3000,\n // });\n\n // return;\n // }\n // }\n\n // Check and update state variables based on the provided logic\n if (audioSet) {\n updateAudioSetting(audioSet);\n }\n if (videoSet) {\n updateVideoSetting(videoSet);\n }\n if (screenshareSet) {\n updateScreenshareSetting(screenshareSet);\n }\n if (chatSet) {\n updateChatSetting(chatSet);\n }\n\n const settings = [audioSet, videoSet, screenshareSet, chatSet];\n socket.emit('updateSettingsForRequests', { settings, roomName });\n\n // Close modal\n updateIsSettingsModalVisible(false);\n}\n","import * as mediasoupClient from \"mediasoup-client\";\nimport type { RtpCapabilities, Device } from 'mediasoup-client/types';\n\nexport interface CreateDeviceClientOptions {\n rtpCapabilities: RtpCapabilities | null;\n}\n\n\n// Export the type definition for the function\nexport type CreateDeviceClientType = (options: CreateDeviceClientOptions) => Promise<Device | null>;\n\n\n/**\n * Creates a mediasoup client device with the provided RTP capabilities.\n *\n * @param {CreateDeviceClientOptions} options - The options for creating the device client.\n * @param {RTPCapabilities} options.rtpCapabilities - The RTP capabilities required for the device.\n * @returns {Promise<Device | null>} A promise that resolves to the created Device or null if creation fails.\n * @throws {Error} Throws an error if the required parameters are not provided or if device creation is not supported.\n *\n * @example\n * const device = await createDeviceClient({ rtpCapabilities });\n * if (device) {\n * console.log(\"Device created successfully\");\n * } else {\n * console.log(\"Failed to create device\");\n * }\n */\n\nexport const createDeviceClient = async ({\n rtpCapabilities\n}: CreateDeviceClientOptions): Promise<Device | null> => {\n try {\n // Validate input parameters\n if (!rtpCapabilities) {\n throw new Error(\n \"Both rtpCapabilities and mediasoupClient must be provided.\"\n );\n }\n\n // Create a mediasoup client device\n const device: (Device | null) = new mediasoupClient.Device();\n\n // Remove orientation capabilities\n rtpCapabilities.headerExtensions = rtpCapabilities!.headerExtensions!.filter(\n (ext) => ext.uri !== \"urn:3gpp:video-orientation\"\n );\n\n // Load the provided RTP capabilities into the device\n await device!.load({\n routerRtpCapabilities: rtpCapabilities,\n });\n\n return device;\n } catch ( error ) {\n // Handle specific errors, e.g., UnsupportedError\n if ( error as Error && (error as Error).name === \"UnsupportedError\" ) {\n // Handle unsupported device creation\n console.error(\"Device creation is not supported by this browser.\");\n }\n\n throw error; // Propagate other errors\n }\n\n};\n\n\n","import { Socket } from 'socket.io-client';\nimport type { RtpCapabilities } from 'mediasoup-client/types';\nimport { validateAlphanumeric } from '../../methods/utils/validateAlphanumeric';\n\nexport interface JoinRoomOptions {\n socket: Socket;\n roomName: string;\n islevel: string;\n member: string;\n sec: string;\n apiUserName: string;\n}\n\nexport interface JoinRoomResponse {\n success: boolean;\n rtpCapabilities: RtpCapabilities | null;\n reason?: string;\n banned?: boolean;\n suspended?: boolean;\n noAdmin?: boolean;\n [key: string]: any;\n}\n\nexport type JoinRoomType = (options: JoinRoomOptions) => Promise<JoinRoomResponse>;\n\n/**\n * Joins a user to a specified room via a socket connection.\n *\n * @param {JoinRoomOptions} options - The options for joining the room.\n * @param {Socket} options.socket - The socket instance to use for communication.\n * @param {string} options.roomName - The name of the room to join.\n * @param {string} options.islevel - The level of the user.\n * @param {string} options.member - The member identifier.\n * @param {string} options.sec - The security token.\n * @param {string} options.apiUserName - The API username of the user.\n *\n * @returns {Promise<JoinRoomResponse>} A promise that resolves with the data received from the 'joinRoom' event or rejects with a validation error.\n */\nexport async function joinRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n}: JoinRoomOptions): Promise<JoinRoomResponse> {\n return new Promise((resolve, reject) => {\n if (!(sec && roomName && islevel && apiUserName && member)) {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Missing required parameters',\n };\n reject(validationError);\n return;\n }\n\n try {\n validateAlphanumeric({ str: roomName });\n validateAlphanumeric({ str: apiUserName });\n validateAlphanumeric({ str: member });\n } catch {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or apiUserName or member',\n };\n reject(validationError);\n return;\n }\n\n if (!(roomName.startsWith('s') || roomName.startsWith('p') || roomName.startsWith('d'))) {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName, must start with s or p or d',\n };\n reject(validationError);\n return;\n }\n\n if (\n !(\n sec.length === 64\n && roomName.length >= 8\n && islevel.length === 1\n && apiUserName.length >= 6\n && (islevel === '0' || islevel === '1' || islevel === '2')\n )\n ) {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or islevel or apiUserName or secret',\n };\n reject(validationError);\n return;\n }\n\n socket.emit(\n 'joinRoom',\n {\n roomName, islevel, member, sec, apiUserName,\n },\n async (data: JoinRoomResponse) => {\n try {\n if (data.rtpCapabilities == null) {\n if (data.banned) {\n throw new Error('User is banned.');\n }\n if (data.suspended) {\n throw new Error('User is suspended.');\n }\n if (data.noAdmin) {\n throw new Error('Host has not joined the room yet.');\n }\n\n resolve(data);\n } else {\n resolve(data);\n }\n } catch (error) {\n console.log('Error joining room:', error);\n reject(error);\n }\n },\n );\n });\n}\n","import { Socket } from 'socket.io-client';\nimport { joinRoom, JoinRoomResponse } from '../../producers/producerEmits/joinRoom';\nimport { joinConRoom, JoinConRoomResponse } from '../../producers/producerEmits/joinConRoom';\n\nexport interface JoinRoomClientOptions {\n socket: Socket;\n roomName: string;\n islevel: string;\n member: string;\n sec: string;\n apiUserName: string;\n consume?: boolean;\n}\n\nexport type JoinRoomClientResponse = JoinRoomResponse | JoinConRoomResponse;\nexport type JoinRoomClientType = (options: JoinRoomClientOptions) => Promise<JoinRoomClientResponse>;\n\n/**\n * Joins a room by delegating to the producer or consumer join emit based on the consume flag.\n *\n * @param {JoinRoomClientOptions} options - The options for joining the room.\n * @returns {Promise<JoinRoomClientResponse>} The response returned from the server.\n */\nexport const joinRoomClient = async ({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n consume = false,\n}: JoinRoomClientOptions): Promise<JoinRoomClientResponse> => {\n try {\n if (consume) {\n return await joinConRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n });\n }\n\n return await joinRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n });\n } catch (error) {\n console.log(error);\n throw new Error('Failed to join the room. Please check your connection and try again.');\n }\n};\n","/* eslint-disable eqeqeq */\nimport { RtpCapabilities } from 'mediasoup-client/types';\nimport {\n QnHDCons,\n sdCons,\n hdCons,\n fhdCons,\n qhdCons,\n QnHDConsPort,\n sdConsPort,\n hdConsPort,\n fhdConsPort,\n qhdConsPort,\n QnHDConsNeu,\n sdConsNeu,\n hdConsNeu,\n fhdConsNeu,\n qhdConsNeu,\n QnHDFrameRate,\n hdFrameRate,\n fhdFrameRate,\n qhdFrameRate,\n} from '../../methods/utils/producer/videoCaptureConstraints';\nimport { hParams as host_Params } from '../../methods/utils/producer/hParams';\nimport { vParams as video_Params } from '../../methods/utils/producer/vParams';\nimport { screenParams as screen_Params } from '../../methods/utils/producer/screenParams';\nimport { aParams as audio_Params } from '../../methods/utils/producer/aParams';\nimport {\n HParamsType,\n VParamsType,\n ScreenParamsType,\n AParamsType,\n MeetingRoomParams,\n VidCons,\n ShowAlert,\n ResponseJoinRoom,\n EventType,\n} from '../../types/shared-base-types';\n\nexport interface UpdateRoomParametersClientParameters {\n rtpCapabilities: RtpCapabilities | null;\n roomRecvIPs: string[];\n meetingRoomParams: MeetingRoomParams | null;\n itemPageLimit: number;\n audioOnlyRoom: boolean;\n addForBasic: boolean;\n screenPageLimit: number;\n shareScreenStarted: boolean;\n shared: boolean;\n targetOrientation: string;\n vidCons: VidCons;\n recordingVideoSupport: boolean;\n frameRate: number;\n adminPasscode: string;\n eventType: EventType;\n youAreCoHost: boolean;\n autoWave: boolean;\n forceFullDisplay: boolean;\n chatSetting: string;\n meetingDisplayType: string;\n audioSetting: string;\n videoSetting: string;\n screenshareSetting: string;\n hParams: HParamsType;\n vParams: VParamsType;\n screenParams: ScreenParamsType;\n aParams: AParamsType;\n islevel: string;\n showAlert?: ShowAlert;\n data: ResponseJoinRoom;\n updateRtpCapabilities: (rtpCapabilities: RtpCapabilities | null) => void;\n updateRoomRecvIPs: (roomRecvIPs: string[]) => void;\n updateMeetingRoomParams: (meetingRoomParams: MeetingRoomParams | null) => void;\n updateItemPageLimit: (limit: number) => void;\n updateAudioOnlyRoom: (isAudioOnly: boolean) => void;\n updateAddForBasic: (addForBasic: boolean) => void;\n updateScreenPageLimit: (limit: number) => void;\n updateVidCons: (cons: VidCons) => void;\n updateFrameRate: (frameRate: number) => void;\n updateAdminPasscode: (passcode: string) => void;\n updateEventType: (eventType: EventType) => void;\n updateYouAreCoHost: (coHost: boolean) => void;\n updateAutoWave: (autoWave: boolean) => void;\n updateForceFullDisplay: (forceFull: boolean) => void;\n updateChatSetting: (setting: string) => void;\n updateMeetingDisplayType: (type: string) => void;\n updateAudioSetting: (setting: string) => void;\n updateVideoSetting: (setting: string) => void;\n updateScreenshareSetting: (setting: string) => void;\n updateHParams: (params: HParamsType) => void;\n updateVParams: (params: VParamsType) => void;\n updateScreenParams: (params: ScreenParamsType) => void;\n updateAParams: (params: AParamsType) => void;\n updateMainHeightWidth: (heightWidth: number) => void;\n updateTargetResolution: (resolution: string) => void;\n updateTargetResolutionHost: (resolution: string) => void;\n updateRecordingAudioPausesLimit: (limit: number) => void;\n updateRecordingAudioPausesCount: (count: number) => void;\n updateRecordingAudioSupport: (support: boolean) => void;\n updateRecordingAudioPeopleLimit: (limit: number) => void;\n updateRecordingAudioParticipantsTimeLimit: (limit: number) => void;\n updateRecordingVideoPausesCount: (count: number) => void;\n updateRecordingVideoPausesLimit: (limit: number) => void;\n updateRecordingVideoSupport: (support: boolean) => void;\n updateRecordingVideoPeopleLimit: (limit: number) => void;\n updateRecordingVideoParticipantsTimeLimit: (limit: number) => void;\n updateRecordingAllParticipantsSupport: (support: boolean) => void;\n updateRecordingVideoParticipantsSupport: (support: boolean) => void;\n updateRecordingAllParticipantsFullRoomSupport: (support: boolean) => void;\n updateRecordingVideoParticipantsFullRoomSupport: (support: boolean) => void;\n updateRecordingPreferredOrientation: (orientation: string) => void;\n updateRecordingSupportForOtherOrientation: (support: boolean) => void;\n updateRecordingMultiFormatsSupport: (support: boolean) => void;\n updateRecordingVideoOptions: (options: string) => void;\n updateRecordingAudioOptions: (options: string) => void;\n}\n\nexport type UpdateRoomParametersClientOptions = {\n parameters: UpdateRoomParametersClientParameters;\n};\n\nexport type UpdateRoomParametersClientType = (options: UpdateRoomParametersClientOptions) => void;\n\nexport const updateRoomParametersClient = ({ parameters }: UpdateRoomParametersClientOptions): void => {\n try {\n const {\n screenPageLimit,\n shareScreenStarted,\n shared,\n hParams = host_Params,\n vParams = video_Params,\n frameRate,\n islevel,\n showAlert,\n data,\n updateRtpCapabilities,\n updateRoomRecvIPs,\n updateMeetingRoomParams,\n updateItemPageLimit,\n updateAudioOnlyRoom,\n updateScreenPageLimit,\n updateVidCons,\n updateFrameRate,\n updateAdminPasscode,\n updateEventType,\n updateYouAreCoHost,\n updateAutoWave,\n updateForceFullDisplay,\n updateChatSetting,\n updateMeetingDisplayType,\n updateAudioSetting,\n updateVideoSetting,\n updateScreenshareSetting,\n updateHParams,\n updateVParams,\n updateScreenParams,\n updateAParams,\n updateTargetResolution,\n updateTargetResolutionHost,\n updateRecordingAudioPausesLimit,\n updateRecordingAudioPausesCount,\n updateRecordingAudioSupport,\n updateRecordingAudioPeopleLimit,\n updateRecordingAudioParticipantsTimeLimit,\n updateRecordingVideoPausesCount,\n updateRecordingVideoPausesLimit,\n updateRecordingVideoSupport,\n updateRecordingVideoPeopleLimit,\n updateRecordingVideoParticipantsTimeLimit,\n updateRecordingAllParticipantsSupport,\n updateRecordingVideoParticipantsSupport,\n updateRecordingAllParticipantsFullRoomSupport,\n updateRecordingVideoParticipantsFullRoomSupport,\n updateRecordingPreferredOrientation,\n updateRecordingSupportForOtherOrientation,\n updateRecordingMultiFormatsSupport,\n updateRecordingVideoOptions,\n updateRecordingAudioOptions,\n updateMainHeightWidth,\n } = parameters;\n\n if (data.rtpCapabilities == null) {\n const reason = data.reason || '';\n showAlert?.({\n message: `Sorry, you are not allowed to join this room. ${reason}`,\n type: 'danger',\n duration: 3000,\n });\n return;\n }\n\n updateRtpCapabilities(data.rtpCapabilities);\n updateAdminPasscode(data.secureCode);\n updateRoomRecvIPs(data.roomRecvIPs);\n updateMeetingRoomParams(data.meetingRoomParams);\n\n updateRecordingAudioPausesLimit(data.recordingParams.recordingAudioPausesLimit);\n updateRecordingAudioPausesCount(data.recordingParams.recordingAudioPausesCount!);\n updateRecordingAudioSupport(data.recordingParams.recordingAudioSupport);\n updateRecordingAudioPeopleLimit(data.recordingParams.recordingAudioPeopleLimit);\n updateRecordingAudioParticipantsTimeLimit(data.recordingParams.recordingAudioParticipantsTimeLimit);\n updateRecordingVideoPausesCount(data.recordingParams.recordingVideoPausesCount!);\n updateRecordingVideoPausesLimit(data.recordingParams.recordingVideoPausesLimit);\n updateRecordingVideoSupport(data.recordingParams.recordingVideoSupport);\n updateRecordingVideoPeopleLimit(data.recordingParams.recordingVideoPeopleLimit);\n updateRecordingVideoParticipantsTimeLimit(data.recordingParams.recordingVideoParticipantsTimeLimit);\n updateRecordingAllParticipantsSupport(data.recordingParams.recordingAllParticipantsSupport);\n updateRecordingVideoParticipantsSupport(data.recordingParams.recordingVideoParticipantsSupport);\n updateRecordingAllParticipantsFullRoomSupport(data.recordingParams.recordingAllParticipantsFullRoomSupport);\n updateRecordingVideoParticipantsFullRoomSupport(data.recordingParams.recordingVideoParticipantsFullRoomSupport);\n updateRecordingPreferredOrientation(data.recordingParams.recordingPreferredOrientation);\n updateRecordingSupportForOtherOrientation(data.recordingParams.recordingSupportForOtherOrientation);\n updateRecordingMultiFormatsSupport(data.recordingParams.recordingMultiFormatsSupport);\n\n updateItemPageLimit(data.meetingRoomParams.itemPageLimit);\n updateEventType(data.meetingRoomParams.type);\n\n if (data.meetingRoomParams.type == 'chat' && islevel != '2') {\n updateYouAreCoHost(true);\n }\n\n if (['chat', 'broadcast'].includes(data.meetingRoomParams.type)) {\n updateAutoWave(false);\n updateMeetingDisplayType('all');\n updateForceFullDisplay(true);\n updateChatSetting('allow');\n updateItemPageLimit(2);\n\n if (['broadcast'].includes(data.meetingRoomParams.type)) {\n updateRecordingVideoOptions('mainScreen');\n updateRecordingAudioOptions('host');\n updateItemPageLimit(1);\n }\n }\n\n updateAudioSetting(data.meetingRoomParams.audioSetting);\n updateVideoSetting(data.meetingRoomParams.videoSetting);\n updateScreenshareSetting(data.meetingRoomParams.screenshareSetting);\n updateChatSetting(data.meetingRoomParams.chatSetting);\n\n updateAudioOnlyRoom(data.meetingRoomParams.mediaType != 'video');\n\n if (data.meetingRoomParams.type == 'conference' && (shared || shareScreenStarted)) {\n updateMainHeightWidth(100);\n } else {\n updateMainHeightWidth(0);\n }\n\n updateScreenPageLimit(Math.min(data.meetingRoomParams.itemPageLimit, screenPageLimit));\n\n const targetOrientation = islevel == '2'\n ? data.meetingRoomParams.targetOrientationHost\n : data.meetingRoomParams.targetOrientation;\n const targetResolution = islevel == '2'\n ? data.meetingRoomParams.targetResolutionHost\n : data.meetingRoomParams.targetResolution;\n\n let vidCons: VidCons;\n if (targetOrientation == 'landscape') {\n vidCons = targetResolution == 'hd'\n ? hdCons\n : targetResolution == 'fhd'\n ? fhdCons\n : targetResolution == 'qhd'\n ? qhdCons\n : targetResolution == 'sd'\n ? sdCons\n : QnHDCons;\n } else if (targetOrientation == 'neutral') {\n vidCons = targetResolution == 'hd'\n ? hdConsNeu\n : targetResolution == 'fhd'\n ? fhdConsNeu\n : targetResolution == 'qhd'\n ? qhdConsNeu\n : targetResolution == 'sd'\n ? sdConsNeu\n : QnHDConsNeu;\n } else {\n vidCons = targetResolution == 'hd'\n ? hdConsPort\n : targetResolution == 'fhd'\n ? fhdConsPort\n : targetResolution == 'qhd'\n ? qhdConsPort\n : targetResolution == 'sd'\n ? sdConsPort\n : QnHDConsPort;\n }\n\n let frameRateValue = frameRate || 10;\n let vParamsValue = { ...vParams };\n let hParamsValue = { ...hParams };\n\n if (Object.keys(vParamsValue).length == 0) {\n vParamsValue = { ...video_Params };\n }\n\n if (Object.keys(hParamsValue).length == 0) {\n hParamsValue = { ...host_Params };\n }\n\n if (targetResolution == 'hd') {\n frameRateValue = hdFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 4);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 4);\n }\n });\n } else if (targetResolution == 'QnHD') {\n frameRateValue = QnHDFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 0.25);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 0.25);\n }\n });\n\n if (hParamsValue.codecOptions && hParamsValue.codecOptions.videoGoogleStartBitrate) {\n hParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(hParamsValue.codecOptions.videoGoogleStartBitrate * 0.25);\n }\n if (vParamsValue.codecOptions && vParamsValue.codecOptions.videoGoogleStartBitrate) {\n vParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(vParamsValue.codecOptions.videoGoogleStartBitrate * 0.25);\n }\n } else if (targetResolution == 'fhd') {\n frameRateValue = fhdFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 8);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 8);\n }\n });\n } else if (targetResolution == 'qhd') {\n frameRateValue = qhdFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 16);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 16);\n }\n });\n }\n\n if (data.recordingParams.recordingVideoSupport) {\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 1.2);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 1.2);\n }\n });\n\n if (hParamsValue.codecOptions && hParamsValue.codecOptions.videoGoogleStartBitrate) {\n hParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(hParamsValue.codecOptions.videoGoogleStartBitrate * 1.2);\n }\n if (vParamsValue.codecOptions && vParamsValue.codecOptions.videoGoogleStartBitrate) {\n vParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(vParamsValue.codecOptions.videoGoogleStartBitrate * 1.2);\n }\n }\n\n updateVidCons(vidCons);\n updateFrameRate(frameRateValue);\n updateHParams(hParamsValue);\n updateVParams(vParamsValue);\n updateScreenParams(screen_Params);\n updateAParams(audio_Params);\n updateTargetResolution(data.meetingRoomParams.targetResolution);\n updateTargetResolutionHost(data.meetingRoomParams.targetResolutionHost);\n } catch (error) {\n console.log('updateRoomParametersClient error', error);\n parameters.showAlert?.({\n message: (error as Error).message,\n type: 'danger',\n duration: 3000,\n });\n }\n};\n","import { Socket } from 'socket.io-client';\nimport {\n JoinMediaSFURoomOptions,\n PreJoinPageParameters,\n ResponseJoinLocalRoom,\n} from '../../types/shared-base-types';\nimport { validateAlphanumeric } from '../../methods/utils/validateAlphanumeric';\nimport { joinRoomOnMediaSFU, JoinRoomOnMediaSFUType } from '../../methods/utils/joinRoomOnMediaSFU';\nimport { checkLimitsAndMakeRequest } from '../../methods/utils/checkLimitsAndMakeRequest';\n\nexport interface JoinLocalRoomOptions {\n socket: Socket;\n roomName: string;\n islevel: string;\n member: string;\n sec: string;\n apiUserName: string;\n parameters: PreJoinPageParameters;\n checkConnect?: boolean;\n joinMediaSFURoom?: JoinRoomOnMediaSFUType;\n localLink?: string;\n}\n\nexport type JoinLocalRoomType = (\n options: JoinLocalRoomOptions,\n) => Promise<ResponseJoinLocalRoom>;\n\nexport interface CheckMediasfuURLOptions {\n data: ResponseJoinLocalRoom;\n member: string;\n roomName: string;\n islevel: string;\n socket: Socket;\n parameters: PreJoinPageParameters;\n joinMediaSFURoom?: JoinRoomOnMediaSFUType;\n localLink?: string;\n}\n\nexport type CheckMediasfuURLType = (options: CheckMediasfuURLOptions) => Promise<void>;\n\nexport async function checkMediasfuURL({\n data,\n member,\n roomName,\n islevel,\n socket,\n parameters,\n joinMediaSFURoom = joinRoomOnMediaSFU,\n localLink = '',\n}: CheckMediasfuURLOptions): Promise<void> {\n if (\n data.mediasfuURL\n && data.mediasfuURL !== ''\n && data.mediasfuURL.length > 10\n ) {\n let link;\n let secretCode;\n\n try {\n const splitTexts = ['/meet/', '/chat/', '/broadcast/'];\n const splitText = splitTexts.find((text) => data.mediasfuURL.includes(text)) || '/meet/';\n\n const urlParts = data.mediasfuURL.split(splitText);\n link = urlParts[0];\n secretCode = urlParts[1].split('/')[1];\n } catch {\n link = data.mediasfuURL;\n return;\n }\n\n await checkLimitsAndMakeRequest({\n apiUserName: roomName,\n apiToken: secretCode,\n link,\n apiKey: '',\n userName: member,\n parameters,\n validate: false,\n });\n\n return;\n }\n\n if (\n (!data.mediasfuURL || data.mediasfuURL.length < 10)\n && islevel !== '2'\n && data.allowRecord\n && (data.allowRecord === true || data.allowRecord === 'true')\n && data.apiKey\n && data.apiKey.length === 64\n && data.apiUserName\n && data.apiUserName.length > 5\n && (roomName.startsWith('s') || roomName.startsWith('p'))\n ) {\n const payload: JoinMediaSFURoomOptions = {\n action: 'join',\n meetingID: roomName,\n userName: member,\n };\n\n const response = await joinMediaSFURoom({\n payload,\n apiKey: data.apiKey,\n apiUserName: data.apiUserName,\n localLink,\n });\n\n if (response.success && response.data && 'roomName' in response.data) {\n try {\n socket.emit(\n 'updateMediasfuURL',\n { eventID: roomName, mediasfuURL: response.data.publicURL },\n async () => {},\n );\n } catch {\n // Do nothing\n }\n\n await checkLimitsAndMakeRequest({\n apiUserName: response.data.roomName,\n apiToken: response.data.secret,\n link: response.data.link,\n userName: member,\n parameters,\n validate: false,\n });\n parameters.updateApiToken(response.data.secret);\n }\n }\n}\n\nexport async function joinLocalRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n parameters,\n checkConnect = false,\n joinMediaSFURoom = joinRoomOnMediaSFU,\n localLink = '',\n}: JoinLocalRoomOptions): Promise<ResponseJoinLocalRoom> {\n return new Promise((resolve, reject) => {\n if (!(sec && roomName && islevel && apiUserName && member)) {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Missing required parameters',\n };\n reject(validationError);\n return;\n }\n\n try {\n validateAlphanumeric({ str: roomName });\n validateAlphanumeric({ str: apiUserName });\n validateAlphanumeric({ str: member });\n } catch {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or apiUserName or member',\n };\n reject(validationError);\n return;\n }\n\n if (!(roomName.startsWith('s') || roomName.startsWith('p') || roomName.startsWith('m') || roomName.startsWith('d'))) {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName, must start with s or p or m or d',\n };\n reject(validationError);\n return;\n }\n\n if (\n !(\n sec.length === 32\n && roomName.length >= 8\n && islevel.length === 1\n && apiUserName.length >= 6\n && (islevel === '0' || islevel === '1' || islevel === '2')\n )\n ) {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or islevel or apiUserName or secret',\n };\n reject(validationError);\n return;\n }\n\n socket.emit(\n 'joinRoom',\n { roomName, islevel, member, sec, apiUserName },\n async (data: ResponseJoinLocalRoom) => {\n try {\n if (data.rtpCapabilities === null) {\n if (data.isBanned) {\n throw new Error('User is banned.');\n }\n if (data.hostNotJoined) {\n throw new Error('Host has not joined the room yet.');\n }\n\n resolve(data);\n } else {\n if (checkConnect) {\n await checkMediasfuURL({\n data,\n member,\n roomName,\n islevel,\n socket,\n parameters,\n joinMediaSFURoom,\n localLink,\n });\n } else if (data.mediasfuURL && data.mediasfuURL !== '' && data.mediasfuURL.length > 10) {\n const splitTexts = ['/meet/', '/chat/', '/broadcast/'];\n const splitText = splitTexts.find((text) => data.mediasfuURL.includes(text)) || '/meet/';\n const urlParts = data.mediasfuURL.split(splitText);\n const secretCode = urlParts[1].split('/')[1];\n parameters.updateApiToken(secretCode);\n }\n\n resolve(data);\n }\n } catch (error) {\n console.log('Error joining room:', error);\n reject(error);\n }\n },\n );\n });\n}"],"names":["hParams","host_Params","vParams","video_Params","screen_Params","audio_Params"],"mappings":"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"}
1
+ {"version":3,"file":"joinLocalRoom-Cx1y3Ojj.js","sources":["../src/consumers/addVideosGrid.ts","../src/consumers/prepopulateUserMedia.ts","../src/methods/breakoutRooms/breakoutRoomUpdated.ts","../src/methods/settings/modifySettings.ts","../src/ProducerClient/producerClientEmits/createDeviceClient.ts","../src/producers/producerEmits/joinRoom.ts","../src/ProducerClient/producerClientEmits/joinRoomClient.ts","../src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts","../src/producers/producerEmits/joinLocalRoom.ts"],"sourcesContent":["// Stub export for addVideosGrid\n// This is a React component in the original and not needed for the shared package\n\nimport { createFrameworkConsumerContractError } from './frameworkConsumerContract';\n\nexport interface AddVideosGridParameters {\n [key: string]: any;\n}\n\nexport interface AddVideosGridOptions {\n parameters: AddVideosGridParameters;\n [key: string]: any; // Accept any additional properties\n}\n\nexport type AddVideosGridType = (options: AddVideosGridOptions) => Promise<void>;\n\nexport const addVideosGrid: AddVideosGridType = async () => {\n throw createFrameworkConsumerContractError('addVideosGrid');\n};\n","// Stub export for prepopulateUserMedia\n// This is a React component in the original and not needed for the shared package\n\nimport { createFrameworkConsumerContractError } from './frameworkConsumerContract';\n\nexport interface PrepopulateUserMediaParameters {\n [key: string]: any;\n}\n\nexport interface PrepopulateUserMediaOptions {\n name: string;\n parameters: PrepopulateUserMediaParameters;\n}\n\nexport type PrepopulateUserMediaType = (options: PrepopulateUserMediaOptions) => Promise<void>;\n\nexport const prepopulateUserMedia: PrepopulateUserMediaType = async () => {\n throw createFrameworkConsumerContractError('prepopulateUserMedia');\n};\n","import type {\n BreakoutParticipant,\n BreakoutRoomUpdatedData,\n OnScreenChangesParameters,\n OnScreenChangesType,\n Participant,\n RePortParameters,\n RePortType,\n} from '../../types/types'\n\nexport interface BreakoutRoomUpdatedParameters extends OnScreenChangesParameters, RePortParameters {\n breakOutRoomStarted: boolean\n breakOutRoomEnded: boolean\n breakoutRooms: BreakoutParticipant[][]\n hostNewRoom: number\n islevel: string\n participantsAll: Participant[]\n participants: Participant[]\n meetingDisplayType: string\n prevMeetingDisplayType: string\n updateBreakoutRooms: (rooms: BreakoutParticipant[][]) => void\n updateBreakOutRoomStarted: (started: boolean) => void\n updateBreakOutRoomEnded: (ended: boolean) => void\n updateHostNewRoom: (room: number) => void\n updateMeetingDisplayType: (type: string) => void\n updateParticipantsAll: (participants: Participant[]) => void\n updateParticipants: (participants: Participant[]) => void\n onScreenChanges: OnScreenChangesType\n rePort: RePortType\n getUpdatedAllParams: () => BreakoutRoomUpdatedParameters\n [key: string]: any\n}\n\nexport interface BreakoutRoomUpdatedOptions {\n data: BreakoutRoomUpdatedData\n parameters: BreakoutRoomUpdatedParameters\n}\n\nexport type BreakoutRoomUpdatedType = (options: BreakoutRoomUpdatedOptions) => Promise<void>\n\n/**\n * Updates the state of breakout rooms based on the provided data and parameters.\n *\n * @param {BreakoutRoomUpdatedOptions} options - The options object.\n * @param {BreakoutRoomUpdatedData} options.data - The data object containing information about the breakout rooms.\n * @param {BreakoutRoomUpdatedParameters} options.parameters - The parameters object containing various state update functions and other parameters.\n *\n * @example\n * ```typescript\n * const breakoutOptions: BreakoutRoomUpdatedOptions = {\n * data: breakoutData,\n * parameters: {\n * breakOutRoomStarted: false,\n * breakOutRoomEnded: false,\n * breakoutRooms: [[]],\n * hostNewRoom: 1,\n * islevel: '2',\n * participantsAll: allParticipants,\n * participants: activeParticipants,\n * meetingDisplayType: 'all',\n * prevMeetingDisplayType: 'video',\n * updateBreakoutRooms: setBreakoutRooms,\n * updateBreakOutRoomStarted: setBreakOutRoomStarted,\n * updateBreakOutRoomEnded: setBreakOutRoomEnded,\n * updateHostNewRoom: setHostNewRoom,\n * updateMeetingDisplayType: setMeetingDisplayType,\n * updateParticipantsAll: setAllParticipants,\n * updateParticipants: setActiveParticipants,\n * onScreenChanges: handleScreenChanges,\n * rePort: reportFunction,\n * getUpdatedAllParams: () => breakoutOptions.parameters,\n * },\n * }\n *\n * await breakoutRoomUpdated(breakoutOptions)\n * ```\n */\nexport const breakoutRoomUpdated: BreakoutRoomUpdatedType = async ({ data, parameters }) => {\n try {\n let {\n breakOutRoomStarted,\n breakOutRoomEnded,\n breakoutRooms,\n hostNewRoom,\n islevel,\n participantsAll,\n participants,\n meetingDisplayType,\n prevMeetingDisplayType,\n updateBreakoutRooms,\n updateBreakOutRoomStarted,\n updateBreakOutRoomEnded,\n updateHostNewRoom,\n updateMeetingDisplayType,\n updateParticipantsAll,\n updateParticipants,\n onScreenChanges,\n rePort,\n } = parameters\n\n if (data.forHost) {\n hostNewRoom = data.newRoom!\n updateHostNewRoom(hostNewRoom!)\n await onScreenChanges({ changed: true, parameters })\n return\n }\n\n if (islevel === '2' && data.members) {\n participantsAll = data.members.map((participant) => ({\n isBanned: participant.isBanned,\n name: participant.name,\n audioID: participant.audioID,\n videoID: participant.videoID,\n }))\n updateParticipantsAll(participantsAll)\n\n participants = data.members.filter((participant) => !participant.isBanned)\n updateParticipants(participants)\n }\n\n breakoutRooms = data.breakoutRooms || []\n updateBreakoutRooms(breakoutRooms)\n\n if (data.status === 'started' && (!breakOutRoomStarted || breakOutRoomEnded)) {\n breakOutRoomStarted = true\n breakOutRoomEnded = false\n updateBreakOutRoomStarted(true)\n updateBreakOutRoomEnded(false)\n prevMeetingDisplayType = meetingDisplayType\n if (meetingDisplayType !== 'all') {\n meetingDisplayType = 'all'\n updateMeetingDisplayType('all')\n }\n await onScreenChanges({ changed: true, parameters })\n if (islevel === '2') {\n await rePort({ restart: true, parameters })\n }\n } else if (data.status === 'ended') {\n breakOutRoomEnded = true\n updateBreakOutRoomEnded(true)\n if (meetingDisplayType !== prevMeetingDisplayType) {\n updateMeetingDisplayType(prevMeetingDisplayType)\n }\n await onScreenChanges({ changed: true, parameters })\n if (islevel === '2') {\n await rePort({ restart: true, parameters })\n }\n } else if (data.status === 'started' && breakOutRoomStarted) {\n breakOutRoomStarted = true\n breakOutRoomEnded = false\n updateBreakOutRoomStarted(true)\n updateBreakOutRoomEnded(false)\n await onScreenChanges({ changed: true, parameters })\n if (islevel === '2') {\n await rePort({ restart: true, parameters })\n }\n }\n } catch {\n // Handle error\n }\n}\n","import { Socket } from 'socket.io-client';\nimport type { ShowAlert } from '../../types/types';\n\nexport interface ModifySettingsOptions {\n showAlert?: ShowAlert;\n roomName: string;\n audioSet: string;\n videoSet: string;\n screenshareSet: string;\n chatSet: string;\n socket: Socket;\n updateAudioSetting: (audioSet: string) => void;\n updateVideoSetting: (videoSet: string) => void;\n updateScreenshareSetting: (screenshareSet: string) => void;\n updateChatSetting: (chatSet: string) => void;\n updateIsSettingsModalVisible: (isVisible: boolean) => void;\n}\n\n// Export the type definition for the function\nexport type ModifySettingsType = (options: ModifySettingsOptions) => Promise<void>;\n\n/**\n * Modifies the settings for a given room and updates the state accordingly.\n *\n * @param {ModifySettingsOptions} options - The options for modifying settings.\n * @returns {Promise<void>} A promise that resolves when the settings have been modified.\n *\n * @throws Will show an alert if any setting is set to \"approval\" in demo mode (room name starts with \"d\").\n *\n * @example\n * ```typescript\n * modifySettings({\n * roomName: \"d123\",\n * audioSet: \"allow\",\n * videoSet: \"allow\",\n * screenshareSet: \"deny\",\n * chatSet: \"allow\",\n * socket: mySocketInstance,\n * updateAudioSetting: setAudioSetting,\n * updateVideoSetting: setVideoSetting,\n * updateScreenshareSetting: setScreenshareSetting,\n * updateChatSetting: setChatSetting,\n * updateIsSettingsModalVisible: setIsSettingsModalVisible,\n * showAlert: (options) => alertUser(options),\n * });\n * ```\n */\nexport async function modifySettings({\n // showAlert,\n roomName,\n audioSet,\n videoSet,\n screenshareSet,\n chatSet,\n socket,\n updateAudioSetting,\n updateVideoSetting,\n updateScreenshareSetting,\n updateChatSetting,\n updateIsSettingsModalVisible,\n}: ModifySettingsOptions): Promise<void> {\n // if (roomName.toLowerCase().startsWith('d')) {\n // // none should be approval\n // if (\n // audioSet === 'approval' ||\n // videoSet === 'approval' ||\n // screenshareSet === 'approval' ||\n // chatSet === 'approval'\n // ) {\n // showAlert?.({\n // message: 'You cannot set approval for demo mode.',\n // type: 'danger',\n // duration: 3000,\n // });\n\n // return;\n // }\n // }\n\n // Check and update state variables based on the provided logic\n if (audioSet) {\n updateAudioSetting(audioSet);\n }\n if (videoSet) {\n updateVideoSetting(videoSet);\n }\n if (screenshareSet) {\n updateScreenshareSetting(screenshareSet);\n }\n if (chatSet) {\n updateChatSetting(chatSet);\n }\n\n const settings = [audioSet, videoSet, screenshareSet, chatSet];\n socket.emit('updateSettingsForRequests', { settings, roomName });\n\n // Close modal\n updateIsSettingsModalVisible(false);\n}\n","import * as mediasoupClient from \"mediasoup-client\";\nimport type { RtpCapabilities, Device } from 'mediasoup-client/types';\n\nexport interface CreateDeviceClientOptions {\n rtpCapabilities: RtpCapabilities | null;\n}\n\n\n// Export the type definition for the function\nexport type CreateDeviceClientType = (options: CreateDeviceClientOptions) => Promise<Device | null>;\n\n\n/**\n * Creates a mediasoup client device with the provided RTP capabilities.\n *\n * @param {CreateDeviceClientOptions} options - The options for creating the device client.\n * @param {RTPCapabilities} options.rtpCapabilities - The RTP capabilities required for the device.\n * @returns {Promise<Device | null>} A promise that resolves to the created Device or null if creation fails.\n * @throws {Error} Throws an error if the required parameters are not provided or if device creation is not supported.\n *\n * @example\n * const device = await createDeviceClient({ rtpCapabilities });\n * if (device) {\n * console.log(\"Device created successfully\");\n * } else {\n * console.log(\"Failed to create device\");\n * }\n */\n\nexport const createDeviceClient = async ({\n rtpCapabilities\n}: CreateDeviceClientOptions): Promise<Device | null> => {\n try {\n // Validate input parameters\n if (!rtpCapabilities) {\n throw new Error(\n \"Both rtpCapabilities and mediasoupClient must be provided.\"\n );\n }\n\n // Create a mediasoup client device\n const device: (Device | null) = new mediasoupClient.Device();\n\n // Remove orientation capabilities\n rtpCapabilities.headerExtensions = rtpCapabilities!.headerExtensions!.filter(\n (ext) => ext.uri !== \"urn:3gpp:video-orientation\"\n );\n\n // Load the provided RTP capabilities into the device\n await device!.load({\n routerRtpCapabilities: rtpCapabilities,\n });\n\n return device;\n } catch ( error ) {\n // Handle specific errors, e.g., UnsupportedError\n if ( error as Error && (error as Error).name === \"UnsupportedError\" ) {\n // Handle unsupported device creation\n console.error(\"Device creation is not supported by this browser.\");\n }\n\n throw error; // Propagate other errors\n }\n\n};\n\n\n","import { Socket } from 'socket.io-client';\nimport type { RtpCapabilities } from 'mediasoup-client/types';\nimport { validateAlphanumeric } from '../../methods/utils/validateAlphanumeric';\n\nexport interface JoinRoomOptions {\n socket: Socket;\n roomName: string;\n islevel: string;\n member: string;\n sec: string;\n apiUserName: string;\n}\n\nexport interface JoinRoomResponse {\n success: boolean;\n rtpCapabilities: RtpCapabilities | null;\n reason?: string;\n banned?: boolean;\n suspended?: boolean;\n noAdmin?: boolean;\n [key: string]: any;\n}\n\nexport type JoinRoomType = (options: JoinRoomOptions) => Promise<JoinRoomResponse>;\n\n/**\n * Joins a user to a specified room via a socket connection.\n *\n * @param {JoinRoomOptions} options - The options for joining the room.\n * @param {Socket} options.socket - The socket instance to use for communication.\n * @param {string} options.roomName - The name of the room to join.\n * @param {string} options.islevel - The level of the user.\n * @param {string} options.member - The member identifier.\n * @param {string} options.sec - The security token.\n * @param {string} options.apiUserName - The API username of the user.\n *\n * @returns {Promise<JoinRoomResponse>} A promise that resolves with the data received from the 'joinRoom' event or rejects with a validation error.\n */\nexport async function joinRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n}: JoinRoomOptions): Promise<JoinRoomResponse> {\n return new Promise((resolve, reject) => {\n if (!(sec && roomName && islevel && apiUserName && member)) {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Missing required parameters',\n };\n reject(validationError);\n return;\n }\n\n try {\n validateAlphanumeric({ str: roomName });\n validateAlphanumeric({ str: apiUserName });\n validateAlphanumeric({ str: member });\n } catch {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or apiUserName or member',\n };\n reject(validationError);\n return;\n }\n\n if (!(roomName.startsWith('s') || roomName.startsWith('p') || roomName.startsWith('d'))) {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName, must start with s or p or d',\n };\n reject(validationError);\n return;\n }\n\n if (\n !(\n sec.length === 64\n && roomName.length >= 8\n && islevel.length === 1\n && apiUserName.length >= 6\n && (islevel === '0' || islevel === '1' || islevel === '2')\n )\n ) {\n const validationError: JoinRoomResponse = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or islevel or apiUserName or secret',\n };\n reject(validationError);\n return;\n }\n\n socket.emit(\n 'joinRoom',\n {\n roomName, islevel, member, sec, apiUserName,\n },\n async (data: JoinRoomResponse) => {\n try {\n if (data.rtpCapabilities == null) {\n if (data.banned) {\n throw new Error('User is banned.');\n }\n if (data.suspended) {\n throw new Error('User is suspended.');\n }\n if (data.noAdmin) {\n throw new Error('Host has not joined the room yet.');\n }\n\n resolve(data);\n } else {\n resolve(data);\n }\n } catch (error) {\n console.log('Error joining room:', error);\n reject(error);\n }\n },\n );\n });\n}\n","import { Socket } from 'socket.io-client';\nimport { joinRoom, JoinRoomResponse } from '../../producers/producerEmits/joinRoom';\nimport { joinConRoom, JoinConRoomResponse } from '../../producers/producerEmits/joinConRoom';\n\nexport interface JoinRoomClientOptions {\n socket: Socket;\n roomName: string;\n islevel: string;\n member: string;\n sec: string;\n apiUserName: string;\n consume?: boolean;\n}\n\nexport type JoinRoomClientResponse = JoinRoomResponse | JoinConRoomResponse;\nexport type JoinRoomClientType = (options: JoinRoomClientOptions) => Promise<JoinRoomClientResponse>;\n\n/**\n * Joins a room by delegating to the producer or consumer join emit based on the consume flag.\n *\n * @param {JoinRoomClientOptions} options - The options for joining the room.\n * @returns {Promise<JoinRoomClientResponse>} The response returned from the server.\n */\nexport const joinRoomClient = async ({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n consume = false,\n}: JoinRoomClientOptions): Promise<JoinRoomClientResponse> => {\n try {\n if (consume) {\n return await joinConRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n });\n }\n\n return await joinRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n });\n } catch (error) {\n console.log(error);\n throw new Error('Failed to join the room. Please check your connection and try again.');\n }\n};\n","/* eslint-disable eqeqeq */\nimport { RtpCapabilities } from 'mediasoup-client/types';\nimport {\n QnHDCons,\n sdCons,\n hdCons,\n fhdCons,\n qhdCons,\n QnHDConsPort,\n sdConsPort,\n hdConsPort,\n fhdConsPort,\n qhdConsPort,\n QnHDConsNeu,\n sdConsNeu,\n hdConsNeu,\n fhdConsNeu,\n qhdConsNeu,\n QnHDFrameRate,\n hdFrameRate,\n fhdFrameRate,\n qhdFrameRate,\n} from '../../methods/utils/producer/videoCaptureConstraints';\nimport { hParams as host_Params } from '../../methods/utils/producer/hParams';\nimport { vParams as video_Params } from '../../methods/utils/producer/vParams';\nimport { screenParams as screen_Params } from '../../methods/utils/producer/screenParams';\nimport { aParams as audio_Params } from '../../methods/utils/producer/aParams';\nimport {\n HParamsType,\n VParamsType,\n ScreenParamsType,\n AParamsType,\n MeetingRoomParams,\n VidCons,\n ShowAlert,\n ResponseJoinRoom,\n EventType,\n} from '../../types/shared-base-types';\n\nexport interface UpdateRoomParametersClientParameters {\n rtpCapabilities: RtpCapabilities | null;\n roomRecvIPs: string[];\n meetingRoomParams: MeetingRoomParams | null;\n itemPageLimit: number;\n audioOnlyRoom: boolean;\n addForBasic: boolean;\n screenPageLimit: number;\n shareScreenStarted: boolean;\n shared: boolean;\n targetOrientation: string;\n vidCons: VidCons;\n recordingVideoSupport: boolean;\n frameRate: number;\n adminPasscode: string;\n eventType: EventType;\n youAreCoHost: boolean;\n autoWave: boolean;\n forceFullDisplay: boolean;\n chatSetting: string;\n meetingDisplayType: string;\n audioSetting: string;\n videoSetting: string;\n screenshareSetting: string;\n hParams: HParamsType;\n vParams: VParamsType;\n screenParams: ScreenParamsType;\n aParams: AParamsType;\n islevel: string;\n showAlert?: ShowAlert;\n data: ResponseJoinRoom;\n updateRtpCapabilities: (rtpCapabilities: RtpCapabilities | null) => void;\n updateRoomRecvIPs: (roomRecvIPs: string[]) => void;\n updateMeetingRoomParams: (meetingRoomParams: MeetingRoomParams | null) => void;\n updateItemPageLimit: (limit: number) => void;\n updateAudioOnlyRoom: (isAudioOnly: boolean) => void;\n updateAddForBasic: (addForBasic: boolean) => void;\n updateScreenPageLimit: (limit: number) => void;\n updateVidCons: (cons: VidCons) => void;\n updateFrameRate: (frameRate: number) => void;\n updateAdminPasscode: (passcode: string) => void;\n updateEventType: (eventType: EventType) => void;\n updateYouAreCoHost: (coHost: boolean) => void;\n updateAutoWave: (autoWave: boolean) => void;\n updateForceFullDisplay: (forceFull: boolean) => void;\n updateChatSetting: (setting: string) => void;\n updateMeetingDisplayType: (type: string) => void;\n updateAudioSetting: (setting: string) => void;\n updateVideoSetting: (setting: string) => void;\n updateScreenshareSetting: (setting: string) => void;\n updateHParams: (params: HParamsType) => void;\n updateVParams: (params: VParamsType) => void;\n updateScreenParams: (params: ScreenParamsType) => void;\n updateAParams: (params: AParamsType) => void;\n updateMainHeightWidth: (heightWidth: number) => void;\n updateTargetResolution: (resolution: string) => void;\n updateTargetResolutionHost: (resolution: string) => void;\n updateRecordingAudioPausesLimit: (limit: number) => void;\n updateRecordingAudioPausesCount: (count: number) => void;\n updateRecordingAudioSupport: (support: boolean) => void;\n updateRecordingAudioPeopleLimit: (limit: number) => void;\n updateRecordingAudioParticipantsTimeLimit: (limit: number) => void;\n updateRecordingVideoPausesCount: (count: number) => void;\n updateRecordingVideoPausesLimit: (limit: number) => void;\n updateRecordingVideoSupport: (support: boolean) => void;\n updateRecordingVideoPeopleLimit: (limit: number) => void;\n updateRecordingVideoParticipantsTimeLimit: (limit: number) => void;\n updateRecordingAllParticipantsSupport: (support: boolean) => void;\n updateRecordingVideoParticipantsSupport: (support: boolean) => void;\n updateRecordingAllParticipantsFullRoomSupport: (support: boolean) => void;\n updateRecordingVideoParticipantsFullRoomSupport: (support: boolean) => void;\n updateRecordingPreferredOrientation: (orientation: string) => void;\n updateRecordingSupportForOtherOrientation: (support: boolean) => void;\n updateRecordingMultiFormatsSupport: (support: boolean) => void;\n updateRecordingVideoOptions: (options: string) => void;\n updateRecordingAudioOptions: (options: string) => void;\n}\n\nexport type UpdateRoomParametersClientOptions = {\n parameters: UpdateRoomParametersClientParameters;\n};\n\nexport type UpdateRoomParametersClientType = (options: UpdateRoomParametersClientOptions) => void;\n\nexport const updateRoomParametersClient = ({ parameters }: UpdateRoomParametersClientOptions): void => {\n try {\n const {\n screenPageLimit,\n shareScreenStarted,\n shared,\n hParams = host_Params,\n vParams = video_Params,\n frameRate,\n islevel,\n showAlert,\n data,\n updateRtpCapabilities,\n updateRoomRecvIPs,\n updateMeetingRoomParams,\n updateItemPageLimit,\n updateAudioOnlyRoom,\n updateScreenPageLimit,\n updateVidCons,\n updateFrameRate,\n updateAdminPasscode,\n updateEventType,\n updateYouAreCoHost,\n updateAutoWave,\n updateForceFullDisplay,\n updateChatSetting,\n updateMeetingDisplayType,\n updateAudioSetting,\n updateVideoSetting,\n updateScreenshareSetting,\n updateHParams,\n updateVParams,\n updateScreenParams,\n updateAParams,\n updateTargetResolution,\n updateTargetResolutionHost,\n updateRecordingAudioPausesLimit,\n updateRecordingAudioPausesCount,\n updateRecordingAudioSupport,\n updateRecordingAudioPeopleLimit,\n updateRecordingAudioParticipantsTimeLimit,\n updateRecordingVideoPausesCount,\n updateRecordingVideoPausesLimit,\n updateRecordingVideoSupport,\n updateRecordingVideoPeopleLimit,\n updateRecordingVideoParticipantsTimeLimit,\n updateRecordingAllParticipantsSupport,\n updateRecordingVideoParticipantsSupport,\n updateRecordingAllParticipantsFullRoomSupport,\n updateRecordingVideoParticipantsFullRoomSupport,\n updateRecordingPreferredOrientation,\n updateRecordingSupportForOtherOrientation,\n updateRecordingMultiFormatsSupport,\n updateRecordingVideoOptions,\n updateRecordingAudioOptions,\n updateMainHeightWidth,\n } = parameters;\n\n if (data.rtpCapabilities == null) {\n const reason = data.reason || '';\n showAlert?.({\n message: `Sorry, you are not allowed to join this room. ${reason}`,\n type: 'danger',\n duration: 3000,\n });\n return;\n }\n\n updateRtpCapabilities(data.rtpCapabilities);\n updateAdminPasscode(data.secureCode);\n updateRoomRecvIPs(data.roomRecvIPs);\n updateMeetingRoomParams(data.meetingRoomParams);\n\n updateRecordingAudioPausesLimit(data.recordingParams.recordingAudioPausesLimit);\n updateRecordingAudioPausesCount(data.recordingParams.recordingAudioPausesCount!);\n updateRecordingAudioSupport(data.recordingParams.recordingAudioSupport);\n updateRecordingAudioPeopleLimit(data.recordingParams.recordingAudioPeopleLimit);\n updateRecordingAudioParticipantsTimeLimit(data.recordingParams.recordingAudioParticipantsTimeLimit);\n updateRecordingVideoPausesCount(data.recordingParams.recordingVideoPausesCount!);\n updateRecordingVideoPausesLimit(data.recordingParams.recordingVideoPausesLimit);\n updateRecordingVideoSupport(data.recordingParams.recordingVideoSupport);\n updateRecordingVideoPeopleLimit(data.recordingParams.recordingVideoPeopleLimit);\n updateRecordingVideoParticipantsTimeLimit(data.recordingParams.recordingVideoParticipantsTimeLimit);\n updateRecordingAllParticipantsSupport(data.recordingParams.recordingAllParticipantsSupport);\n updateRecordingVideoParticipantsSupport(data.recordingParams.recordingVideoParticipantsSupport);\n updateRecordingAllParticipantsFullRoomSupport(data.recordingParams.recordingAllParticipantsFullRoomSupport);\n updateRecordingVideoParticipantsFullRoomSupport(data.recordingParams.recordingVideoParticipantsFullRoomSupport);\n updateRecordingPreferredOrientation(data.recordingParams.recordingPreferredOrientation);\n updateRecordingSupportForOtherOrientation(data.recordingParams.recordingSupportForOtherOrientation);\n updateRecordingMultiFormatsSupport(data.recordingParams.recordingMultiFormatsSupport);\n\n updateItemPageLimit(data.meetingRoomParams.itemPageLimit);\n updateEventType(data.meetingRoomParams.type);\n\n if (data.meetingRoomParams.type == 'chat' && islevel != '2') {\n updateYouAreCoHost(true);\n }\n\n if (['chat', 'broadcast'].includes(data.meetingRoomParams.type)) {\n updateAutoWave(false);\n updateMeetingDisplayType('all');\n updateForceFullDisplay(true);\n updateChatSetting('allow');\n updateItemPageLimit(2);\n\n if (['broadcast'].includes(data.meetingRoomParams.type)) {\n updateRecordingVideoOptions('mainScreen');\n updateRecordingAudioOptions('host');\n updateItemPageLimit(1);\n }\n }\n\n updateAudioSetting(data.meetingRoomParams.audioSetting);\n updateVideoSetting(data.meetingRoomParams.videoSetting);\n updateScreenshareSetting(data.meetingRoomParams.screenshareSetting);\n updateChatSetting(data.meetingRoomParams.chatSetting);\n\n updateAudioOnlyRoom(data.meetingRoomParams.mediaType != 'video');\n\n if (data.meetingRoomParams.type == 'conference' && (shared || shareScreenStarted)) {\n updateMainHeightWidth(100);\n } else {\n updateMainHeightWidth(0);\n }\n\n updateScreenPageLimit(Math.min(data.meetingRoomParams.itemPageLimit, screenPageLimit));\n\n const targetOrientation = islevel == '2'\n ? data.meetingRoomParams.targetOrientationHost\n : data.meetingRoomParams.targetOrientation;\n const targetResolution = islevel == '2'\n ? data.meetingRoomParams.targetResolutionHost\n : data.meetingRoomParams.targetResolution;\n\n let vidCons: VidCons;\n if (targetOrientation == 'landscape') {\n vidCons = targetResolution == 'hd'\n ? hdCons\n : targetResolution == 'fhd'\n ? fhdCons\n : targetResolution == 'qhd'\n ? qhdCons\n : targetResolution == 'sd'\n ? sdCons\n : QnHDCons;\n } else if (targetOrientation == 'neutral') {\n vidCons = targetResolution == 'hd'\n ? hdConsNeu\n : targetResolution == 'fhd'\n ? fhdConsNeu\n : targetResolution == 'qhd'\n ? qhdConsNeu\n : targetResolution == 'sd'\n ? sdConsNeu\n : QnHDConsNeu;\n } else {\n vidCons = targetResolution == 'hd'\n ? hdConsPort\n : targetResolution == 'fhd'\n ? fhdConsPort\n : targetResolution == 'qhd'\n ? qhdConsPort\n : targetResolution == 'sd'\n ? sdConsPort\n : QnHDConsPort;\n }\n\n let frameRateValue = frameRate || 10;\n let vParamsValue = { ...vParams };\n let hParamsValue = { ...hParams };\n\n if (Object.keys(vParamsValue).length == 0) {\n vParamsValue = { ...video_Params };\n }\n\n if (Object.keys(hParamsValue).length == 0) {\n hParamsValue = { ...host_Params };\n }\n\n if (targetResolution == 'hd') {\n frameRateValue = hdFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 4);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 4);\n }\n });\n } else if (targetResolution == 'QnHD') {\n frameRateValue = QnHDFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 0.25);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 0.25);\n }\n });\n\n if (hParamsValue.codecOptions && hParamsValue.codecOptions.videoGoogleStartBitrate) {\n hParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(hParamsValue.codecOptions.videoGoogleStartBitrate * 0.25);\n }\n if (vParamsValue.codecOptions && vParamsValue.codecOptions.videoGoogleStartBitrate) {\n vParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(vParamsValue.codecOptions.videoGoogleStartBitrate * 0.25);\n }\n } else if (targetResolution == 'fhd') {\n frameRateValue = fhdFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 8);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 8);\n }\n });\n } else if (targetResolution == 'qhd') {\n frameRateValue = qhdFrameRate;\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 16);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 16);\n }\n });\n }\n\n if (data.recordingParams.recordingVideoSupport) {\n vParamsValue.encodings.forEach((encoding: Partial<VParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 1.2);\n }\n });\n\n hParamsValue.encodings.forEach((encoding: Partial<HParamsType['encodings'][0]>) => {\n if (encoding.maxBitrate) {\n encoding.maxBitrate = Math.floor(encoding.maxBitrate * 1.2);\n }\n });\n\n if (hParamsValue.codecOptions && hParamsValue.codecOptions.videoGoogleStartBitrate) {\n hParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(hParamsValue.codecOptions.videoGoogleStartBitrate * 1.2);\n }\n if (vParamsValue.codecOptions && vParamsValue.codecOptions.videoGoogleStartBitrate) {\n vParamsValue.codecOptions.videoGoogleStartBitrate = Math.floor(vParamsValue.codecOptions.videoGoogleStartBitrate * 1.2);\n }\n }\n\n updateVidCons(vidCons);\n updateFrameRate(frameRateValue);\n updateHParams(hParamsValue);\n updateVParams(vParamsValue);\n updateScreenParams(screen_Params);\n updateAParams(audio_Params);\n updateTargetResolution(data.meetingRoomParams.targetResolution);\n updateTargetResolutionHost(data.meetingRoomParams.targetResolutionHost);\n } catch (error) {\n console.log('updateRoomParametersClient error', error);\n parameters.showAlert?.({\n message: (error as Error).message,\n type: 'danger',\n duration: 3000,\n });\n }\n};\n","import { Socket } from 'socket.io-client';\nimport {\n JoinMediaSFURoomOptions,\n PreJoinPageParameters,\n ResponseJoinLocalRoom,\n} from '../../types/shared-base-types';\nimport { validateAlphanumeric } from '../../methods/utils/validateAlphanumeric';\nimport { joinRoomOnMediaSFU, JoinRoomOnMediaSFUType } from '../../methods/utils/joinRoomOnMediaSFU';\nimport { checkLimitsAndMakeRequest } from '../../methods/utils/checkLimitsAndMakeRequest';\n\nexport interface JoinLocalRoomOptions {\n socket: Socket;\n roomName: string;\n islevel: string;\n member: string;\n sec: string;\n apiUserName: string;\n parameters: PreJoinPageParameters;\n checkConnect?: boolean;\n joinMediaSFURoom?: JoinRoomOnMediaSFUType;\n localLink?: string;\n}\n\nexport type JoinLocalRoomType = (\n options: JoinLocalRoomOptions,\n) => Promise<ResponseJoinLocalRoom>;\n\nexport interface CheckMediasfuURLOptions {\n data: ResponseJoinLocalRoom;\n member: string;\n roomName: string;\n islevel: string;\n socket: Socket;\n parameters: PreJoinPageParameters;\n joinMediaSFURoom?: JoinRoomOnMediaSFUType;\n localLink?: string;\n}\n\nexport type CheckMediasfuURLType = (options: CheckMediasfuURLOptions) => Promise<void>;\n\nexport async function checkMediasfuURL({\n data,\n member,\n roomName,\n islevel,\n socket,\n parameters,\n joinMediaSFURoom = joinRoomOnMediaSFU,\n localLink = '',\n}: CheckMediasfuURLOptions): Promise<void> {\n if (\n data.mediasfuURL\n && data.mediasfuURL !== ''\n && data.mediasfuURL.length > 10\n ) {\n let link;\n let secretCode;\n\n try {\n const splitTexts = ['/meet/', '/chat/', '/broadcast/'];\n const splitText = splitTexts.find((text) => data.mediasfuURL.includes(text)) || '/meet/';\n\n const urlParts = data.mediasfuURL.split(splitText);\n link = urlParts[0];\n secretCode = urlParts[1].split('/')[1];\n } catch {\n link = data.mediasfuURL;\n return;\n }\n\n await checkLimitsAndMakeRequest({\n apiUserName: roomName,\n apiToken: secretCode,\n link,\n apiKey: '',\n userName: member,\n parameters,\n validate: false,\n });\n\n return;\n }\n\n if (\n (!data.mediasfuURL || data.mediasfuURL.length < 10)\n && islevel !== '2'\n && data.allowRecord\n && (data.allowRecord === true || data.allowRecord === 'true')\n && data.apiKey\n && data.apiKey.length === 64\n && data.apiUserName\n && data.apiUserName.length > 5\n && (roomName.startsWith('s') || roomName.startsWith('p'))\n ) {\n const payload: JoinMediaSFURoomOptions = {\n action: 'join',\n meetingID: roomName,\n userName: member,\n };\n\n const response = await joinMediaSFURoom({\n payload,\n apiKey: data.apiKey,\n apiUserName: data.apiUserName,\n localLink,\n });\n\n if (response.success && response.data && 'roomName' in response.data) {\n try {\n socket.emit(\n 'updateMediasfuURL',\n { eventID: roomName, mediasfuURL: response.data.publicURL },\n async () => {},\n );\n } catch {\n // Do nothing\n }\n\n await checkLimitsAndMakeRequest({\n apiUserName: response.data.roomName,\n apiToken: response.data.secret,\n link: response.data.link,\n userName: member,\n parameters,\n validate: false,\n });\n parameters.updateApiToken(response.data.secret);\n }\n }\n}\n\nexport async function joinLocalRoom({\n socket,\n roomName,\n islevel,\n member,\n sec,\n apiUserName,\n parameters,\n checkConnect = false,\n joinMediaSFURoom = joinRoomOnMediaSFU,\n localLink = '',\n}: JoinLocalRoomOptions): Promise<ResponseJoinLocalRoom> {\n return new Promise((resolve, reject) => {\n if (!(sec && roomName && islevel && apiUserName && member)) {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Missing required parameters',\n };\n reject(validationError);\n return;\n }\n\n try {\n validateAlphanumeric({ str: roomName });\n validateAlphanumeric({ str: apiUserName });\n validateAlphanumeric({ str: member });\n } catch {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or apiUserName or member',\n };\n reject(validationError);\n return;\n }\n\n if (!(roomName.startsWith('s') || roomName.startsWith('p') || roomName.startsWith('m') || roomName.startsWith('d'))) {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName, must start with s or p or m or d',\n };\n reject(validationError);\n return;\n }\n\n if (\n !(\n sec.length === 32\n && roomName.length >= 8\n && islevel.length === 1\n && apiUserName.length >= 6\n && (islevel === '0' || islevel === '1' || islevel === '2')\n )\n ) {\n const validationError = {\n success: false,\n rtpCapabilities: null,\n reason: 'Invalid roomName or islevel or apiUserName or secret',\n };\n reject(validationError);\n return;\n }\n\n socket.emit(\n 'joinRoom',\n { roomName, islevel, member, sec, apiUserName },\n async (data: ResponseJoinLocalRoom) => {\n try {\n if (data.rtpCapabilities === null) {\n if (data.isBanned) {\n throw new Error('User is banned.');\n }\n if (data.hostNotJoined) {\n throw new Error('Host has not joined the room yet.');\n }\n\n resolve(data);\n } else {\n if (checkConnect) {\n await checkMediasfuURL({\n data,\n member,\n roomName,\n islevel,\n socket,\n parameters,\n joinMediaSFURoom,\n localLink,\n });\n } else if (data.mediasfuURL && data.mediasfuURL !== '' && data.mediasfuURL.length > 10) {\n const splitTexts = ['/meet/', '/chat/', '/broadcast/'];\n const splitText = splitTexts.find((text) => data.mediasfuURL.includes(text)) || '/meet/';\n const urlParts = data.mediasfuURL.split(splitText);\n const secretCode = urlParts[1].split('/')[1];\n parameters.updateApiToken(secretCode);\n }\n\n resolve(data);\n }\n } catch (error) {\n console.log('Error joining room:', error);\n reject(error);\n }\n },\n );\n });\n}"],"names":["hParams","host_Params","vParams","video_Params","screen_Params","audio_Params"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- const updateParticipantAudioDecibels = require("./updateParticipantAudioDecibels-QZyahisU.cjs");
2
+ const updateParticipantAudioDecibels = require("./updateParticipantAudioDecibels-BJ2PxJJD.cjs");
3
3
  const mediasoupClient = require("mediasoup-client");
4
- const validateAlphanumeric = require("./validateAlphanumeric-DKn5BsUP.cjs");
5
- const joinRoomOnMediaSFU = require("./joinRoomOnMediaSFU-CC8RVJgr.cjs");
4
+ const audioProcessing = require("./audioProcessing-BpbrdCk-.cjs");
5
+ const joinRoomOnMediaSFU = require("./joinRoomOnMediaSFU-D2C7q1GK.cjs");
6
6
  function _interopNamespaceDefault(e) {
7
7
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
8
8
  if (e) {
@@ -177,9 +177,9 @@ async function joinRoom({
177
177
  return;
178
178
  }
179
179
  try {
180
- validateAlphanumeric.validateAlphanumeric({ str: roomName });
181
- validateAlphanumeric.validateAlphanumeric({ str: apiUserName });
182
- validateAlphanumeric.validateAlphanumeric({ str: member });
180
+ audioProcessing.validateAlphanumeric({ str: roomName });
181
+ audioProcessing.validateAlphanumeric({ str: apiUserName });
182
+ audioProcessing.validateAlphanumeric({ str: member });
183
183
  } catch {
184
184
  const validationError = {
185
185
  success: false,
@@ -588,9 +588,9 @@ async function joinLocalRoom({
588
588
  return;
589
589
  }
590
590
  try {
591
- validateAlphanumeric.validateAlphanumeric({ str: roomName });
592
- validateAlphanumeric.validateAlphanumeric({ str: apiUserName });
593
- validateAlphanumeric.validateAlphanumeric({ str: member });
591
+ audioProcessing.validateAlphanumeric({ str: roomName });
592
+ audioProcessing.validateAlphanumeric({ str: apiUserName });
593
+ audioProcessing.validateAlphanumeric({ str: member });
594
594
  } catch {
595
595
  const validationError = {
596
596
  success: false,
@@ -670,4 +670,4 @@ exports.joinRoomClient = joinRoomClient;
670
670
  exports.modifySettings = modifySettings;
671
671
  exports.prepopulateUserMedia = prepopulateUserMedia;
672
672
  exports.updateRoomParametersClient = updateRoomParametersClient;
673
- //# sourceMappingURL=joinLocalRoom-Cii5D5IG.cjs.map
673
+ //# sourceMappingURL=joinLocalRoom-DNJ2zb8W.cjs.map