mediasfu-shared 1.2.1 → 1.2.3

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 (42) hide show
  1. package/CHANGELOG.md +17 -4
  2. package/README.md +145 -131
  3. package/dist/consumers/connectIps.d.ts.map +1 -1
  4. package/dist/consumers/index.cjs +1 -1
  5. package/dist/consumers/index.js +1 -1
  6. package/dist/{getParticipantMedia-DC_Nca8S.cjs → getParticipantMedia-AwwtMCTz.cjs} +4 -4
  7. package/dist/getParticipantMedia-AwwtMCTz.cjs.map +1 -0
  8. package/dist/{getParticipantMedia-Bu_aZlxe.js → getParticipantMedia-CyaOk2oD.js} +4 -4
  9. package/dist/getParticipantMedia-CyaOk2oD.js.map +1 -0
  10. package/dist/index.cjs +36 -7
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.js +37 -8
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.native.cjs +3 -3
  15. package/dist/index.native.js +3 -3
  16. package/dist/{joinLocalRoom-7ibqv7zZ.js → joinLocalRoom-Bu3gz27d.js} +2 -2
  17. package/dist/{joinLocalRoom-7ibqv7zZ.js.map → joinLocalRoom-Bu3gz27d.js.map} +1 -1
  18. package/dist/{joinLocalRoom-BJBDvTYh.cjs → joinLocalRoom-Cii5D5IG.cjs} +2 -2
  19. package/dist/{joinLocalRoom-BJBDvTYh.cjs.map → joinLocalRoom-Cii5D5IG.cjs.map} +1 -1
  20. package/dist/methods/recording/startRecording.d.ts.map +1 -1
  21. package/dist/methods/utils/headless/virtualBackground.d.ts +13 -1
  22. package/dist/methods/utils/headless/virtualBackground.d.ts.map +1 -1
  23. package/dist/methods/utils/virtualBackgroundCompositor.d.ts +4 -0
  24. package/dist/methods/utils/virtualBackgroundCompositor.d.ts.map +1 -1
  25. package/dist/sockets/SocketManager.d.ts +0 -27
  26. package/dist/sockets/SocketManager.d.ts.map +1 -1
  27. package/dist/types/index.cjs +2 -2
  28. package/dist/types/index.js +2 -2
  29. package/dist/{updateParticipantAudioDecibels-C_MygF6q.js → updateParticipantAudioDecibels-CnEXJBmc.js} +85 -13
  30. package/dist/updateParticipantAudioDecibels-CnEXJBmc.js.map +1 -0
  31. package/dist/{updateParticipantAudioDecibels-bZ6R8WHj.cjs → updateParticipantAudioDecibels-QZyahisU.cjs} +85 -13
  32. package/dist/updateParticipantAudioDecibels-QZyahisU.cjs.map +1 -0
  33. package/package.json +1 -1
  34. package/src/consumers/connectIps.ts +46 -7
  35. package/src/methods/recording/startRecording.ts +7 -1
  36. package/src/methods/utils/headless/virtualBackground.ts +34 -2
  37. package/src/methods/utils/virtualBackgroundCompositor.ts +18 -1
  38. package/src/sockets/SocketManager.ts +54 -7
  39. package/dist/getParticipantMedia-Bu_aZlxe.js.map +0 -1
  40. package/dist/getParticipantMedia-DC_Nca8S.cjs.map +0 -1
  41. package/dist/updateParticipantAudioDecibels-C_MygF6q.js.map +0 -1
  42. package/dist/updateParticipantAudioDecibels-bZ6R8WHj.cjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,7 +1,20 @@
1
1
  # Changelog
2
2
 
3
- ## 1.2.1 — 2026-09-04
3
+ ## 1.2.3 — 2026-09-21
4
4
 
5
- - Serialize concurrent consume-socket setup for the same room and endpoint so overlapping room or media updates cannot open duplicate consume sockets.
6
- - Preserve independent consume sockets for separate room engines and endpoints.
7
- - Keep failed connection attempts retryable without reintroducing a reservation race.
5
+ - Fixed consume-socket lifecycle cleanup for all dependent SDKs: failed joins are disposed, dead endpoint entries are pruned before reconnecting, disconnects remove their endpoint registration, and failed handshakes cannot leave auto-reconnecting orphan sockets.
6
+ - Added the framework-neutral web virtual-background blur contract, including a stable `"blur"` selection value, configurable blur strength, edge-bleed compositing, and an `applyBackgroundBlur` headless helper for web SDK adapters.
7
+
8
+ ## 1.2.2 — 2026-09-16
9
+
10
+ - Report the room layout to the recording service as soon as a recording starts. Previously the first layout update waited for a participant or screen change, so the start of a recording could use a stale layout. This applies to every SDK built on this runtime.
11
+
12
+ ## 1.2.1 — 2026-09-03
13
+
14
+ - Publish the serialized consume-socket setup fix from the 1.2.0 development line, including safe retry handling after a failed connection attempt.
15
+
16
+ ## 1.2.0 — 2026-09-03
17
+
18
+ - Serialize concurrent consume-socket setup for the same room and endpoint. This prevents duplicate consume sockets during overlapping room/media updates while preserving independent sockets for separate rooms or nodes.
19
+ - Keep the framework-neutral runtime, native entry point, and generated declaration outputs aligned for React, Vue, Angular, React Native, Expo, and other SDK adapters.
20
+ - Remove duplicate Vite entry declarations so release builds are warning-free.
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
- # mediasfu-shared — framework-neutral MediaSFU engine
2
-
3
- **mediasfu-shared** is the framework-agnostic WebRTC runtime at the core of the MediaSFU SDK family. It provides shared room helpers, mediasoup signaling, socket management, media state utilities, and TypeScript types for React, Vue, Angular, Svelte, and plain TypeScript. Install with `npm install mediasfu-shared`.
4
-
5
- <p align="center">
6
- <a href="https://www.mediasfu.com/quick-usage">
7
- <img src="https://raw.githubusercontent.com/MediaSFU/MediaSFU-Shared/main/public/readme/mediasfu-platform-capabilities.webp" width="1100" alt="MediaSFU real-time product capabilities including meetings, live broadcasts, classrooms, calling, recording, agents, and live commerce" />
8
- </a>
9
- </p>
10
-
11
- This package exposes framework-neutral room, media, participant, playback, and headless helpers. It does not render a room or provide a framework state controller. Choose a framework SDK when you want prebuilt UI, `ModernMediasfuGeneric`, UI overrides, or a framework-native headless hook or service.
1
+ # mediasfu-shared — framework-neutral MediaSFU engine
2
+
3
+ **mediasfu-shared** is the framework-agnostic WebRTC runtime at the core of the MediaSFU SDK family. It provides shared room helpers, mediasoup signaling, socket management, media state utilities, and TypeScript types for React, Vue, Angular, Svelte, and plain TypeScript. Install with `npm install mediasfu-shared`.
4
+
5
+ <p align="center">
6
+ <a href="https://www.mediasfu.com/quick-usage">
7
+ <img src="https://raw.githubusercontent.com/MediaSFU/MediaSFU-Shared/main/public/readme/mediasfu-platform-capabilities.webp" width="1100" alt="MediaSFU real-time product capabilities including meetings, live broadcasts, classrooms, calling, recording, agents, and live commerce" />
8
+ </a>
9
+ </p>
10
+
11
+ This package exposes framework-neutral room, media, participant, playback, and headless helpers. It does not render a room or provide a framework state controller. Choose a framework SDK when you want prebuilt UI, `ModernMediasfuGeneric`, UI overrides, or a framework-native headless hook or service.
12
12
 
13
13
  ## When To Use This Package
14
14
 
@@ -26,104 +26,104 @@ npm install mediasfu-shared mediasoup-client socket.io-client
26
26
 
27
27
  `mediasoup-client` and `socket.io-client` are peer dependencies, so install them in the host app.
28
28
 
29
- ## Backend requirement and credential boundary
30
-
31
- The Cloud room helpers target `https://mediasfu.com/v1/rooms/` by default.
32
-
33
- - Use **MediaSFU Cloud** when you want managed room creation, signaling, and media routing.
34
- - Use **MediaSFU Open** when you want your own locally or privately running MediaSFU media server. You install and operate [MediaSFU Open](https://github.com/MediaSFU/MediaSFUOpen), then configure its reachable URL.
35
-
36
- In production, create and join rooms through your authenticated backend so the MediaSFU API username and key never enter a browser or mobile bundle. Direct credentials are suitable only for an ignored, private local-development environment.
37
-
38
- ## Server-side room bootstrap
39
-
40
- The following shape belongs in a trusted server process. Validate and authorize the caller, load credentials from server-side environment configuration, and return only the client-safe room/session fields your application needs.
41
-
42
- ```ts
43
- import {
44
- createRoomOnMediaSFU,
45
- } from 'mediasfu-shared';
46
-
47
- export async function createRoomForAuthenticatedUser(userName: string) {
48
- return createRoomOnMediaSFU({
49
- payload: {
50
- action: 'create',
51
- userName,
52
- duration: 60,
53
- capacity: 10,
54
- },
55
- apiUserName: process.env.MEDIASFU_API_USERNAME ?? '',
56
- apiKey: process.env.MEDIASFU_API_KEY ?? '',
57
- });
58
- }
59
- ```
60
-
61
- ## Headless state and actions
62
-
63
- `mediasfu-shared` exports the framework-independent headless helpers used by the
64
- React Native, Expo, Vue, and Angular adapters. The package does not mount a room
65
- component by itself: pass it the newest parameter bag published by your chosen
66
- framework SDK.
67
-
68
- ```ts
69
- import {
70
- getCurrentParams,
71
- getRoomReadiness,
72
- getLocalVideoStream,
73
- listParticipantMediaStates,
74
- runMediaControl,
75
- type HeadlessParameters,
76
- } from 'mediasfu-shared';
77
-
78
- let parameters: HeadlessParameters = {};
79
-
80
- export function acceptPublishedParameters(next: HeadlessParameters) {
81
- parameters = next;
82
- }
83
-
84
- export function readRoom() {
85
- const current = getCurrentParams({ parameters });
86
- return {
87
- readiness: getRoomReadiness({ parameters: current }),
88
- localVideo: getLocalVideoStream({ parameters: current }),
89
- participants: listParticipantMediaStates({ parameters: current }),
90
- };
91
- }
92
-
93
- export async function toggleMicrophone() {
94
- return runMediaControl({ parameters, control: 'clickAudio' });
95
- }
96
- ```
97
-
98
- Always replace the stored bag when the framework publishes a new one. Do not
99
- hold an earlier snapshot: the SDK reassigns fields as room state changes.
100
- `getCurrentParams()` is a pure read. `getUpdatedAllParams()` republishes and
101
- must not be used by render functions, computed values, or polling timers.
102
-
103
- The headless barrel also exports media-stream resolution, participant state,
104
- permissions, moderation, recording/polls/whiteboard/breakout controls, session
105
- extras, playback/viewer capabilities, and media-production helpers. The native
106
- entry omits the DOM-only virtual-background pipeline; use the native SDK's
107
- platform implementation instead.
108
-
109
- ### Browser virtual backgrounds
110
-
111
- For a browser headless wrapper, apply a background after the camera is live and
112
- keep rendering the stream returned by the SDK's current parameter bag:
113
-
114
- ```ts
115
- import { applyVirtualBackground, clearVirtualBackground } from 'mediasfu-shared';
116
-
117
- await applyVirtualBackground({ parameters, image: '/backgrounds/studio.jpg' });
118
- // On removal, the producer is restored to the raw camera track.
119
- await clearVirtualBackground({ parameters });
120
- ```
121
-
122
- The helper uses the same segmentation/compositing contract as the React modal,
123
- isolates processing tracks, and updates `virtualStream`/`processedStream` for
124
- the self-view. Native builds intentionally omit this browser-only pipeline.
125
-
126
- For lifecycle ownership, media resolution, independent audio rendering, publication scheduling, and teardown guidance, read [Building a Headless MediaSFU Wrapper](HEADLESS_GUIDE.md).
29
+ ## Backend requirement and credential boundary
30
+
31
+ The Cloud room helpers target `https://mediasfu.com/v1/rooms/` by default.
32
+
33
+ - Use **MediaSFU Cloud** when you want managed room creation, signaling, and media routing.
34
+ - Use **MediaSFU Open** when you want your own locally or privately running MediaSFU media server. You install and operate [MediaSFU Open](https://github.com/MediaSFU/MediaSFUOpen), then configure its reachable URL.
35
+
36
+ In production, create and join rooms through your authenticated backend so the MediaSFU API username and key never enter a browser or mobile bundle. Direct credentials are suitable only for an ignored, private local-development environment.
37
+
38
+ ## Server-side room bootstrap
39
+
40
+ The following shape belongs in a trusted server process. Validate and authorize the caller, load credentials from server-side environment configuration, and return only the client-safe room/session fields your application needs.
41
+
42
+ ```ts
43
+ import {
44
+ createRoomOnMediaSFU,
45
+ } from 'mediasfu-shared';
46
+
47
+ export async function createRoomForAuthenticatedUser(userName: string) {
48
+ return createRoomOnMediaSFU({
49
+ payload: {
50
+ action: 'create',
51
+ userName,
52
+ duration: 60,
53
+ capacity: 10,
54
+ },
55
+ apiUserName: process.env.MEDIASFU_API_USERNAME ?? '',
56
+ apiKey: process.env.MEDIASFU_API_KEY ?? '',
57
+ });
58
+ }
59
+ ```
60
+
61
+ ## Headless state and actions
62
+
63
+ `mediasfu-shared` exports the framework-independent headless helpers used by the
64
+ React Native, Expo, Vue, and Angular adapters. The package does not mount a room
65
+ component by itself: pass it the newest parameter bag published by your chosen
66
+ framework SDK.
67
+
68
+ ```ts
69
+ import {
70
+ getCurrentParams,
71
+ getRoomReadiness,
72
+ getLocalVideoStream,
73
+ listParticipantMediaStates,
74
+ runMediaControl,
75
+ type HeadlessParameters,
76
+ } from 'mediasfu-shared';
77
+
78
+ let parameters: HeadlessParameters = {};
79
+
80
+ export function acceptPublishedParameters(next: HeadlessParameters) {
81
+ parameters = next;
82
+ }
83
+
84
+ export function readRoom() {
85
+ const current = getCurrentParams({ parameters });
86
+ return {
87
+ readiness: getRoomReadiness({ parameters: current }),
88
+ localVideo: getLocalVideoStream({ parameters: current }),
89
+ participants: listParticipantMediaStates({ parameters: current }),
90
+ };
91
+ }
92
+
93
+ export async function toggleMicrophone() {
94
+ return runMediaControl({ parameters, control: 'clickAudio' });
95
+ }
96
+ ```
97
+
98
+ Always replace the stored bag when the framework publishes a new one. Do not
99
+ hold an earlier snapshot: the SDK reassigns fields as room state changes.
100
+ `getCurrentParams()` is a pure read. `getUpdatedAllParams()` republishes and
101
+ must not be used by render functions, computed values, or polling timers.
102
+
103
+ The headless barrel also exports media-stream resolution, participant state,
104
+ permissions, moderation, recording/polls/whiteboard/breakout controls, session
105
+ extras, playback/viewer capabilities, and media-production helpers. The native
106
+ entry omits the DOM-only virtual-background pipeline; use the native SDK's
107
+ platform implementation instead.
108
+
109
+ ### Browser virtual backgrounds
110
+
111
+ For a browser headless wrapper, apply a background after the camera is live and
112
+ keep rendering the stream returned by the SDK's current parameter bag:
113
+
114
+ ```ts
115
+ import { applyVirtualBackground, clearVirtualBackground } from 'mediasfu-shared';
116
+
117
+ await applyVirtualBackground({ parameters, image: '/backgrounds/studio.jpg' });
118
+ // On removal, the producer is restored to the raw camera track.
119
+ await clearVirtualBackground({ parameters });
120
+ ```
121
+
122
+ The helper uses the same segmentation/compositing contract as the React modal,
123
+ isolates processing tracks, and updates `virtualStream`/`processedStream` for
124
+ the self-view. Native builds intentionally omit this browser-only pipeline.
125
+
126
+ For lifecycle ownership, media resolution, independent audio rendering, publication scheduling, and teardown guidance, read [Building a Headless MediaSFU Wrapper](HEADLESS_GUIDE.md).
127
127
 
128
128
  ## Import Paths
129
129
 
@@ -132,13 +132,14 @@ For lifecycle ownership, media resolution, independent audio rendering, publicat
132
132
  - `mediasfu-shared/methods` is useful when you want action utilities and room helpers.
133
133
  - `mediasfu-shared/types` is useful when you only need TypeScript contracts.
134
134
 
135
- ## Documentation
136
-
137
- - Shared/headless guide: [HEADLESS_GUIDE.md](HEADLESS_GUIDE.md)
138
- - Main developer docs: [https://mediasfu.com/documentation](https://mediasfu.com/documentation)
139
- - API Sandbox: [https://mediasfu.com/sandbox](https://mediasfu.com/sandbox)
140
- - Secure backend proxy guide: [https://mediasfu.com/docs/usage/secure-backend-proxy/](https://mediasfu.com/docs/usage/secure-backend-proxy/)
141
- - MediaSFU Open / CE: [https://github.com/MediaSFU/MediaSFUOpen](https://github.com/MediaSFU/MediaSFUOpen)
135
+ ## Documentation
136
+
137
+ - Shared/headless guide: [HEADLESS_GUIDE.md](HEADLESS_GUIDE.md)
138
+ - Changelog: [CHANGELOG.md](CHANGELOG.md)
139
+ - Main developer docs: [https://mediasfu.com/documentation](https://mediasfu.com/documentation)
140
+ - API Sandbox: [https://mediasfu.com/sandbox](https://mediasfu.com/sandbox)
141
+ - Secure backend proxy guide: [https://mediasfu.com/docs/usage/secure-backend-proxy/](https://mediasfu.com/docs/usage/secure-backend-proxy/)
142
+ - MediaSFU Open / CE: [https://github.com/MediaSFU/MediaSFUOpen](https://github.com/MediaSFU/MediaSFUOpen)
142
143
 
143
144
  Generate package-local API docs with:
144
145
 
@@ -153,24 +154,37 @@ npm run build-docs
153
154
  | [mediasfu-reactjs](https://github.com/MediaSFU/MediaSFU-ReactJS) | React 18/19 | [`npm install mediasfu-reactjs`](https://www.npmjs.com/package/mediasfu-reactjs) |
154
155
  | [mediasfu-vue](https://github.com/MediaSFU/MediaSFU-Vue) | Vue 3 / Composition API | [`npm install mediasfu-vue`](https://www.npmjs.com/package/mediasfu-vue) |
155
156
  | [mediasfu-angular](https://github.com/MediaSFU/MediaSFU-Angular) | Angular 17/18/19 | [`npm install mediasfu-angular`](https://www.npmjs.com/package/mediasfu-angular) |
156
- | [mediasfu-reactnative](https://www.npmjs.com/package/mediasfu-reactnative) | React Native | [`npm install mediasfu-reactnative`](https://www.npmjs.com/package/mediasfu-reactnative) |
157
+ | [mediasfu-reactnative](https://github.com/MediaSFU/MediaSFU-ReactNative) | React Native | [`npm install mediasfu-reactnative`](https://www.npmjs.com/package/mediasfu-reactnative) |
158
+ | [mediasfu-reactnative-expo](https://github.com/MediaSFU/MediaSFU-ReactNative-Expo) | Expo | [`npm install mediasfu-reactnative-expo`](https://www.npmjs.com/package/mediasfu-reactnative-expo) |
159
+
160
+ ## Troubleshooting
161
+
162
+ | What you see | Likely cause | What to do |
163
+ |---|---|---|
164
+ | "Unable to connect. Check your credentials and try again." | The room service rejected the credentials, or your create/join backend returned an error. | Check the API username and key on your server, and make sure your create/join adapters pass the room service's response through. For MediaSFU Open, confirm that `localLink` points to a server the client can reach. |
165
+ | The camera or microphone never starts | A browser page is not a secure context, or a device permission was denied. | On the web, serve the app over HTTPS (or `localhost` during development). On iOS and Android, declare camera and microphone permissions and grant access in the device settings. |
166
+ | "You must turn on your video before you can start recording" | The recording is set to capture video while your camera is off. | Turn the camera on first, or switch the recording to audio only. The same applies to audio recordings and the microphone. |
167
+ | "You can only re-configure recording after pausing it" | Recording settings are locked while a recording is running. | Pause the recording, change the settings, then resume. |
168
+ | "You cannot turn off your camera while recording video…" | Turning the camera off would interrupt the recording. | Pause or stop the recording first. |
169
+ | A message ending in "Access denied by host." | The host has restricted that action for participants. | Ask the host to change the participant's permissions. |
170
+ | "Screen share is not allowed when whiteboard is active" | Screen sharing and the whiteboard cannot run at the same time. | Close the whiteboard, then start screen sharing. |
157
171
 
158
172
  ## Support
159
173
 
160
174
  - GitHub issues: [https://github.com/MediaSFU/MediaSFU-Shared/issues](https://github.com/MediaSFU/MediaSFU-Shared/issues)
161
175
  - Email: info@mediasfu.com
162
176
 
163
- ## Host leave and rejoin
164
-
165
- Host exits still end the room by default. To leave while keeping the room, timer, and other participants active, pass `endRoomOnHostExit: false`:
166
-
167
- ```ts
168
- await confirmExit({ socket, member, roomName, endRoomOnHostExit: false });
169
- await leaveRoom({ parameters, endRoomOnHostExit: false });
170
- ```
171
-
172
- The host can later rejoin with the normal room credentials. Never expose production API credentials in a client application; use your backend room proxy outside local development.
173
-
174
- ## License
175
-
176
- MIT. See [LICENSE](LICENSE).
177
+ ## Host leave and rejoin
178
+
179
+ Host exits still end the room by default. To leave while keeping the room, timer, and other participants active, pass `endRoomOnHostExit: false`:
180
+
181
+ ```ts
182
+ await confirmExit({ socket, member, roomName, endRoomOnHostExit: false });
183
+ await leaveRoom({ parameters, endRoomOnHostExit: false });
184
+ ```
185
+
186
+ The host can later rejoin with the normal room credentials. Never expose production API credentials in a client application; use your backend room proxy outside local development.
187
+
188
+ ## License
189
+
190
+ MIT. See [LICENSE](LICENSE).
@@ -1 +1 @@
1
- {"version":3,"file":"connectIps.d.ts","sourceRoot":"","sources":["../../src/consumers/connectIps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,wBAAwB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,kBAAkB,EAChH,wBAAwB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,aAAa,EACxF,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB;IACpJ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,qBAAqB,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAGlE,cAAc,EAAE,kBAAkB,CAAC;IACnC,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IAC5C,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAGD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AA2DxG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,eAAO,MAAM,UAAU,GAAU,wIAY9B,iBAAiB,KAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAuF/D,CAAC"}
1
+ {"version":3,"file":"connectIps.d.ts","sourceRoot":"","sources":["../../src/consumers/connectIps.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,wBAAwB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,kBAAkB,EAChH,wBAAwB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,aAAa,EACxF,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB;IACpJ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,qBAAqB,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAGlE,cAAc,EAAE,kBAAkB,CAAC;IACnC,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,mBAAmB,CAAC;IACxC,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IAC5C,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAGD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AA0ExG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,eAAO,MAAM,UAAU,GAAU,wIAY9B,iBAAiB,KAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CA+G/D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const updateParticipantAudioDecibels = require("../updateParticipantAudioDecibels-bZ6R8WHj.cjs");
3
+ const updateParticipantAudioDecibels = require("../updateParticipantAudioDecibels-QZyahisU.cjs");
4
4
  const translationConsumerSwitch = require("../translationConsumerSwitch-C20MfNNq.cjs");
5
5
  exports.autoAdjust = updateParticipantAudioDecibels.autoAdjust;
6
6
  exports.calculateRowsAndColumns = updateParticipantAudioDecibels.calculateRowsAndColumns;
@@ -1,4 +1,4 @@
1
- import { Y, Z, a, _, $, b, d, e, f, g, h, i, j, k, l, m, c, a0, n, o, p, q, r, s, a1, a2, a3, t, 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, a6, a7 } from "../updateParticipantAudioDecibels-C_MygF6q.js";
1
+ import { Y, Z, a, _, $, b, d, e, f, g, h, i, j, k, l, m, c, a0, n, o, p, q, r, s, a1, a2, a3, t, 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, a6, a7 } from "../updateParticipantAudioDecibels-CnEXJBmc.js";
2
2
  import { b as b2, d as d2, c as c2, f as f2, e as e2, k as k2, j as j2, h as h2, i as i2, p as p2, a as a8, r as r2, g as g2, s as s2, l as l2 } from "../translationConsumerSwitch-zKuS5wgH.js";
3
3
  export {
4
4
  Y as autoAdjust,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
- const joinLocalRoom = require("./joinLocalRoom-BJBDvTYh.cjs");
3
- const updateParticipantAudioDecibels = require("./updateParticipantAudioDecibels-bZ6R8WHj.cjs");
2
+ const joinLocalRoom = require("./joinLocalRoom-Cii5D5IG.cjs");
3
+ const updateParticipantAudioDecibels = require("./updateParticipantAudioDecibels-QZyahisU.cjs");
4
4
  const launchBackground = ({
5
5
  updateIsBackgroundModalVisible,
6
6
  isBackgroundModalVisible
@@ -999,7 +999,7 @@ const startRecording = async ({
999
999
  updateEndReport(endReport);
1000
1000
  updateRecordPaused(recordPaused);
1001
1001
  if (action === "startRecord") {
1002
- await rePort({ parameters: parameters.getUpdatedAllParams() });
1002
+ await rePort({ restart: true, parameters: parameters.getUpdatedAllParams() });
1003
1003
  await recordStartTimer({ parameters });
1004
1004
  } else {
1005
1005
  updateRecordResumed(true);
@@ -3551,4 +3551,4 @@ exports.switchVideo = switchVideo;
3551
3551
  exports.switchVideoAlt = switchVideoAlt;
3552
3552
  exports.updateRecording = updateRecording;
3553
3553
  exports.voteInRoomPoll = voteInRoomPoll;
3554
- //# sourceMappingURL=getParticipantMedia-DC_Nca8S.cjs.map
3554
+ //# sourceMappingURL=getParticipantMedia-AwwtMCTz.cjs.map