@tribe-nest/media-client 0.1.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/core/index.d.ts +1 -1
- package/build/core/index.d.ts.map +1 -1
- package/build/core/index.js.map +1 -1
- package/build/core/reconnect.d.ts +29 -0
- package/build/core/reconnect.d.ts.map +1 -1
- package/build/core/reconnect.js +49 -9
- package/build/core/reconnect.js.map +1 -1
- package/build/core/signal.d.ts +9 -0
- package/build/core/signal.d.ts.map +1 -1
- package/build/core/signal.js +18 -2
- package/build/core/signal.js.map +1 -1
- package/build/core/state.d.ts +31 -0
- package/build/core/state.d.ts.map +1 -1
- package/build/core/state.js +113 -8
- package/build/core/state.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js.map +1 -1
- package/build/react/index.d.ts +78 -16
- package/build/react/index.d.ts.map +1 -1
- package/build/react/index.js +289 -12
- package/build/react/index.js.map +1 -1
- package/build/room/browserDevice.d.ts.map +1 -1
- package/build/room/browserDevice.js +13 -4
- package/build/room/browserDevice.js.map +1 -1
- package/build/room/device.d.ts +19 -0
- package/build/room/device.d.ts.map +1 -1
- package/build/room/room.d.ts +298 -3
- package/build/room/room.d.ts.map +1 -1
- package/build/room/room.js +742 -24
- package/build/room/room.js.map +1 -1
- package/package.json +2 -2
- package/src/core/_tests/reconnect.spec.ts +92 -0
- package/src/core/_tests/state.spec.ts +138 -0
- package/src/core/index.ts +2 -0
- package/src/core/reconnect.ts +76 -9
- package/src/core/signal.ts +16 -2
- package/src/core/state.ts +163 -11
- package/src/index.ts +2 -0
- package/src/react/index.tsx +323 -19
- package/src/room/_tests/room.spec.ts +954 -4
- package/src/room/browserDevice.ts +14 -4
- package/src/room/device.ts +19 -0
- package/src/room/room.ts +913 -26
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiDA,sCAMC;AAvDD,wDAA2D;AAC3D,sCAA+D;AAE/D;;;;;;;;;;;;;;GAcG;AAEH,8CAA4B;AAW5B,sDAA2D;AAAlD,oHAAA,mBAAmB,OAAA;AAY5B;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CACjC,OAAqF;IAErF,MAAM,IAAI,GAAG,IAAI,gBAAS,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,mCAAmB,EAAE,CAAC,CAAC;IAC1F,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/build/react/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import type { MediaGrants, Peer } from "@tribe-nest/media-protocol";
|
|
3
|
-
import { MediaRoom, type ConnectionState, type LocalPublication, type LocalPublicationSource, type MediaRoomOptions, type MediaTrack } from "../room/room";
|
|
3
|
+
import { MediaRoom, type BroadcastEvent, type CallDiagnostics, type ConnectionState, type LocalPublication, type LocalPublicationSource, type MediaRoomOptions, type MediaTrack } from "../room/room";
|
|
4
4
|
import type { DisconnectCause, ProducerEntry, RoomState } from "../core";
|
|
5
5
|
/**
|
|
6
6
|
* The React surface.
|
|
@@ -85,6 +85,53 @@ export declare function useLocalPublications(): readonly LocalPublication[];
|
|
|
85
85
|
export declare function useGrants(): MediaGrants | undefined;
|
|
86
86
|
/** True while any egress participant is present. A consent signal. */
|
|
87
87
|
export declare function useRecording(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* The node's speaker ranking with quantized levels, loudest first.
|
|
90
|
+
*
|
|
91
|
+
* Read this from the SMALLEST component that renders it (a meter inside a
|
|
92
|
+
* name badge), not from the grid: the list moves on the observer's tick, and
|
|
93
|
+
* a grid subscribed to it re-renders every tile a few times a second.
|
|
94
|
+
*/
|
|
95
|
+
export declare function useSpeakers(): RoomState["speakers"];
|
|
96
|
+
/** Hands currently up, oldest first: the order IS the queue. */
|
|
97
|
+
export declare function useRaisedHands(): RoomState["raisedHands"];
|
|
98
|
+
/** Whether a consume outside the active set would actually be refused. */
|
|
99
|
+
export declare function useActiveSetEnforced(): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Incoming ephemeral broadcasts (reactions, courtesy lower-hands), as events.
|
|
102
|
+
*
|
|
103
|
+
* The handler lives in a ref, so an inline arrow does not resubscribe per
|
|
104
|
+
* render. Unknown `type` values are delivered; ignore what you do not know.
|
|
105
|
+
*/
|
|
106
|
+
export declare function useBroadcast(handler: (event: BroadcastEvent) => void): void;
|
|
107
|
+
/**
|
|
108
|
+
* Poll the call's diagnostics while `enabled`: per tile, the layer asked for,
|
|
109
|
+
* the layer the node is giving, and the decoded picture; plus the node's
|
|
110
|
+
* congestion estimate and this side's publish health. Null until the first
|
|
111
|
+
* answer, and null again when disabled. One request a second against the
|
|
112
|
+
* node while open, which is why it is gated rather than always on.
|
|
113
|
+
*/
|
|
114
|
+
export declare function useCallDiagnostics(enabled: boolean, intervalMs?: number): CallDiagnostics | null;
|
|
115
|
+
export type { CallDiagnostics, TileDiagnostics, NodeDiagnostics } from "../room/room";
|
|
116
|
+
export type TileViewportControls = {
|
|
117
|
+
/**
|
|
118
|
+
* A ref-callback factory: `<video ref={observeTile(producerId)} />`.
|
|
119
|
+
* Registers the element as rendering that producer; passing a null element
|
|
120
|
+
* (unmount) unregisters it.
|
|
121
|
+
*/
|
|
122
|
+
observeTile: (producerId: string) => (element: HTMLElement | null) => void;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Report what the UI is actually rendering, so the room narrows its video
|
|
126
|
+
* subscriptions to it (audio never narrows) and picks simulcast layers from
|
|
127
|
+
* the real tile sizes.
|
|
128
|
+
*
|
|
129
|
+
* One shared IntersectionObserver and ResizeObserver for every tile, plus
|
|
130
|
+
* `visibilitychange` for the backgrounded tab. Where `IntersectionObserver`
|
|
131
|
+
* does not exist (jsdom, SSR) this never calls `setViewport`, which IS the
|
|
132
|
+
* legacy subscribe-everything behavior.
|
|
133
|
+
*/
|
|
134
|
+
export declare function useTileViewport(): TileViewportControls;
|
|
88
135
|
/**
|
|
89
136
|
* One remote track, and a ref callback that attaches it.
|
|
90
137
|
*
|
|
@@ -105,21 +152,44 @@ export declare function useRecording(): boolean;
|
|
|
105
152
|
* renders one only after the track arrives, and every remote `<video>` is
|
|
106
153
|
* `muted`, so a call had picture and no sound in either direction.
|
|
107
154
|
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
155
|
+
* ## Why the callback is STABLE, and an effect does the re-attaching
|
|
156
|
+
*
|
|
157
|
+
* The callback used to be memoised on `[track]`, so a new track identity made
|
|
158
|
+
* React run the OLD callback with `null` (which pauses the element and clears
|
|
159
|
+
* `srcObject`) and then the new one with the element. That is a black frame and
|
|
160
|
+
* a stall on the viewer's screen, and it fires for reasons that have nothing to
|
|
161
|
+
* do with the picture: the room's snapshot is rebuilt on every change, and a
|
|
162
|
+
* consumer that is closed and re-created (`syncSubscriptions` following the
|
|
163
|
+
* active set) produces a fresh `MediaTrack` for the SAME underlying
|
|
164
|
+
* `MediaStreamTrack`.
|
|
165
|
+
*
|
|
166
|
+
* So the ref callback is now stable - it mounts and unmounts, nothing else -
|
|
167
|
+
* and an effect assigns `srcObject` whenever the underlying track actually
|
|
168
|
+
* changes. `applied` is what makes that idempotent: assigning the same track
|
|
169
|
+
* again is not free, it restarts the element's load and shows as a flicker.
|
|
113
170
|
*/
|
|
114
171
|
export declare function useRemoteTrack(producerId: string): {
|
|
115
172
|
track: MediaTrack | undefined;
|
|
116
173
|
attach: (element: HTMLMediaElement | null) => void;
|
|
117
174
|
};
|
|
118
175
|
export type LocalSource = LocalPublicationSource;
|
|
176
|
+
export type PublishDeviceOptions = {
|
|
177
|
+
/** Capture from this device rather than the browser's default. */
|
|
178
|
+
deviceId?: string;
|
|
179
|
+
/** Publish three spatial layers (VP8 only). For group calls whose viewers
|
|
180
|
+
* pick a layer per tile; wrong for a 1:1 where one encoding carries. */
|
|
181
|
+
simulcast?: boolean;
|
|
182
|
+
};
|
|
119
183
|
export type LocalMediaControls = {
|
|
120
|
-
publishCamera: () => Promise<void>;
|
|
121
|
-
publishMicrophone: () => Promise<void>;
|
|
184
|
+
publishCamera: (options?: PublishDeviceOptions) => Promise<void>;
|
|
185
|
+
publishMicrophone: (options?: PublishDeviceOptions) => Promise<void>;
|
|
122
186
|
publishScreen: () => Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Swap the capture behind a live publication to another device, keeping the
|
|
189
|
+
* producer: remote tiles do not blink, and Safari is not re-prompted. No-op
|
|
190
|
+
* for a source that is not published.
|
|
191
|
+
*/
|
|
192
|
+
switchDevice: (source: "camera" | "microphone", deviceId: string) => Promise<void>;
|
|
123
193
|
unpublish: (source: LocalSource) => Promise<void>;
|
|
124
194
|
/**
|
|
125
195
|
* Mute or unmute a source that is already published, keeping its capture.
|
|
@@ -156,13 +226,5 @@ export type LocalMediaControls = {
|
|
|
156
226
|
pending: Record<LocalSource, boolean>;
|
|
157
227
|
error: Error | undefined;
|
|
158
228
|
};
|
|
159
|
-
/**
|
|
160
|
-
* Capture and publish.
|
|
161
|
-
*
|
|
162
|
-
* `getUserMedia` lives here rather than in the room because permission is a
|
|
163
|
-
* BROWSER concern with a UI consequence - a denied prompt is something a person
|
|
164
|
-
* has to be told about - and the room has no way to say so.
|
|
165
|
-
*/
|
|
166
229
|
export declare function useLocalMedia(): LocalMediaControls;
|
|
167
|
-
export {};
|
|
168
230
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EACL,SAAS,EACT,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAIF,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GACnE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,GAAG;IAC1C,QAAQ,EAAE,SAAS,CAAC;IACpB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEJ,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,sBAAsB,GAAG,SAAS,CAsD/G;AAQD,wBAAgB,YAAY,IAAI,qBAAqB,CAEpD;AA8BD,wBAAgB,YAAY,IAAI,SAAS,CAExC;AAED,wBAAgB,eAAe,IAAI,SAAS,IAAI,EAAE,CAEjD;AAED,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,aAAa,EAAE,CAG9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,gBAAgB,EAAE,CAElE;AAED;uEACuE;AACvE,wBAAgB,SAAS,IAAI,WAAW,GAAG,SAAS,CAGnD;AAED,sEAAsE;AACtE,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}
|
package/build/react/index.js
CHANGED
|
@@ -9,6 +9,12 @@ exports.useVisibleProducers = useVisibleProducers;
|
|
|
9
9
|
exports.useLocalPublications = useLocalPublications;
|
|
10
10
|
exports.useGrants = useGrants;
|
|
11
11
|
exports.useRecording = useRecording;
|
|
12
|
+
exports.useSpeakers = useSpeakers;
|
|
13
|
+
exports.useRaisedHands = useRaisedHands;
|
|
14
|
+
exports.useActiveSetEnforced = useActiveSetEnforced;
|
|
15
|
+
exports.useBroadcast = useBroadcast;
|
|
16
|
+
exports.useCallDiagnostics = useCallDiagnostics;
|
|
17
|
+
exports.useTileViewport = useTileViewport;
|
|
12
18
|
exports.useRemoteTrack = useRemoteTrack;
|
|
13
19
|
exports.useLocalMedia = useLocalMedia;
|
|
14
20
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
@@ -150,6 +156,168 @@ function useGrants() {
|
|
|
150
156
|
function useRecording() {
|
|
151
157
|
return useRoomState().recording;
|
|
152
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* The node's speaker ranking with quantized levels, loudest first.
|
|
161
|
+
*
|
|
162
|
+
* Read this from the SMALLEST component that renders it (a meter inside a
|
|
163
|
+
* name badge), not from the grid: the list moves on the observer's tick, and
|
|
164
|
+
* a grid subscribed to it re-renders every tile a few times a second.
|
|
165
|
+
*/
|
|
166
|
+
function useSpeakers() {
|
|
167
|
+
return useRoomState().speakers;
|
|
168
|
+
}
|
|
169
|
+
/** Hands currently up, oldest first: the order IS the queue. */
|
|
170
|
+
function useRaisedHands() {
|
|
171
|
+
return useRoomState().raisedHands;
|
|
172
|
+
}
|
|
173
|
+
/** Whether a consume outside the active set would actually be refused. */
|
|
174
|
+
function useActiveSetEnforced() {
|
|
175
|
+
return useRoomState().activeSetEnforced;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Incoming ephemeral broadcasts (reactions, courtesy lower-hands), as events.
|
|
179
|
+
*
|
|
180
|
+
* The handler lives in a ref, so an inline arrow does not resubscribe per
|
|
181
|
+
* render. Unknown `type` values are delivered; ignore what you do not know.
|
|
182
|
+
*/
|
|
183
|
+
function useBroadcast(handler) {
|
|
184
|
+
const { room } = useRoomContext();
|
|
185
|
+
const handlerRef = (0, react_1.useRef)(handler);
|
|
186
|
+
handlerRef.current = handler;
|
|
187
|
+
(0, react_1.useEffect)(() => {
|
|
188
|
+
if (!room)
|
|
189
|
+
return undefined;
|
|
190
|
+
return room.onBroadcast((event) => handlerRef.current(event));
|
|
191
|
+
}, [room]);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Poll the call's diagnostics while `enabled`: per tile, the layer asked for,
|
|
195
|
+
* the layer the node is giving, and the decoded picture; plus the node's
|
|
196
|
+
* congestion estimate and this side's publish health. Null until the first
|
|
197
|
+
* answer, and null again when disabled. One request a second against the
|
|
198
|
+
* node while open, which is why it is gated rather than always on.
|
|
199
|
+
*/
|
|
200
|
+
function useCallDiagnostics(enabled, intervalMs = 1000) {
|
|
201
|
+
const { room } = useRoomContext();
|
|
202
|
+
const [diagnostics, setDiagnostics] = (0, react_1.useState)(null);
|
|
203
|
+
(0, react_1.useEffect)(() => {
|
|
204
|
+
if (!enabled || !room) {
|
|
205
|
+
setDiagnostics(null);
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
let cancelled = false;
|
|
209
|
+
const tick = () => void room
|
|
210
|
+
.getDiagnostics()
|
|
211
|
+
.then((d) => {
|
|
212
|
+
if (!cancelled)
|
|
213
|
+
setDiagnostics(d);
|
|
214
|
+
})
|
|
215
|
+
.catch(() => undefined);
|
|
216
|
+
tick();
|
|
217
|
+
const timer = setInterval(tick, intervalMs);
|
|
218
|
+
return () => {
|
|
219
|
+
cancelled = true;
|
|
220
|
+
clearInterval(timer);
|
|
221
|
+
};
|
|
222
|
+
}, [enabled, room, intervalMs]);
|
|
223
|
+
return diagnostics;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Report what the UI is actually rendering, so the room narrows its video
|
|
227
|
+
* subscriptions to it (audio never narrows) and picks simulcast layers from
|
|
228
|
+
* the real tile sizes.
|
|
229
|
+
*
|
|
230
|
+
* One shared IntersectionObserver and ResizeObserver for every tile, plus
|
|
231
|
+
* `visibilitychange` for the backgrounded tab. Where `IntersectionObserver`
|
|
232
|
+
* does not exist (jsdom, SSR) this never calls `setViewport`, which IS the
|
|
233
|
+
* legacy subscribe-everything behavior.
|
|
234
|
+
*/
|
|
235
|
+
function useTileViewport() {
|
|
236
|
+
const { room } = useRoomContext();
|
|
237
|
+
const internals = (0, react_1.useMemo)(() => {
|
|
238
|
+
if (typeof IntersectionObserver === "undefined" || typeof ResizeObserver === "undefined")
|
|
239
|
+
return null;
|
|
240
|
+
const byElement = new Map();
|
|
241
|
+
const report = () => {
|
|
242
|
+
if (!room)
|
|
243
|
+
return;
|
|
244
|
+
if (typeof document !== "undefined" && document.visibilityState === "hidden") {
|
|
245
|
+
room.setViewport([]);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
const entries = [];
|
|
249
|
+
for (const tile of byElement.values()) {
|
|
250
|
+
if (tile.visible)
|
|
251
|
+
entries.push({ producerId: tile.producerId, widthPx: tile.widthPx });
|
|
252
|
+
}
|
|
253
|
+
room.setViewport(entries);
|
|
254
|
+
};
|
|
255
|
+
const intersection = new IntersectionObserver((observed) => {
|
|
256
|
+
for (const entry of observed) {
|
|
257
|
+
const tile = byElement.get(entry.target);
|
|
258
|
+
if (!tile)
|
|
259
|
+
continue;
|
|
260
|
+
tile.visible = entry.isIntersecting;
|
|
261
|
+
if (entry.isIntersecting)
|
|
262
|
+
tile.widthPx = Math.round(entry.boundingClientRect.width) || tile.widthPx;
|
|
263
|
+
}
|
|
264
|
+
report();
|
|
265
|
+
},
|
|
266
|
+
// A sliver of a tile at a page edge is not "rendering it".
|
|
267
|
+
{ threshold: 0.05 });
|
|
268
|
+
const resize = new ResizeObserver((observed) => {
|
|
269
|
+
for (const entry of observed) {
|
|
270
|
+
const tile = byElement.get(entry.target);
|
|
271
|
+
if (!tile)
|
|
272
|
+
continue;
|
|
273
|
+
tile.widthPx = Math.round(entry.contentRect.width) || tile.widthPx;
|
|
274
|
+
}
|
|
275
|
+
report();
|
|
276
|
+
});
|
|
277
|
+
return { byElement, report, intersection, resize };
|
|
278
|
+
}, [room]);
|
|
279
|
+
(0, react_1.useEffect)(() => {
|
|
280
|
+
if (!internals || !room)
|
|
281
|
+
return undefined;
|
|
282
|
+
const onVisibility = () => internals.report();
|
|
283
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
284
|
+
return () => {
|
|
285
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
286
|
+
internals.intersection.disconnect();
|
|
287
|
+
internals.resize.disconnect();
|
|
288
|
+
internals.byElement.clear();
|
|
289
|
+
// The tiles are gone with the component that rendered them; the room
|
|
290
|
+
// goes back to following the whole set rather than an empty viewport.
|
|
291
|
+
room.clearViewport();
|
|
292
|
+
};
|
|
293
|
+
}, [internals, room]);
|
|
294
|
+
const observeTile = (0, react_1.useCallback)((producerId) => (element) => {
|
|
295
|
+
if (!internals)
|
|
296
|
+
return;
|
|
297
|
+
if (element === null) {
|
|
298
|
+
for (const [el, tile] of internals.byElement) {
|
|
299
|
+
if (tile.producerId !== producerId)
|
|
300
|
+
continue;
|
|
301
|
+
internals.intersection.unobserve(el);
|
|
302
|
+
internals.resize.unobserve(el);
|
|
303
|
+
internals.byElement.delete(el);
|
|
304
|
+
}
|
|
305
|
+
internals.report();
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
internals.byElement.set(element, {
|
|
309
|
+
producerId,
|
|
310
|
+
// Visible until the observer's first callback says otherwise: the
|
|
311
|
+
// pessimistic default would pause every tile for a beat on mount.
|
|
312
|
+
visible: true,
|
|
313
|
+
widthPx: Math.round(element.getBoundingClientRect().width) || 320,
|
|
314
|
+
});
|
|
315
|
+
internals.intersection.observe(element);
|
|
316
|
+
internals.resize.observe(element);
|
|
317
|
+
internals.report();
|
|
318
|
+
}, [internals]);
|
|
319
|
+
return { observeTile };
|
|
320
|
+
}
|
|
153
321
|
/**
|
|
154
322
|
* One remote track, and a ref callback that attaches it.
|
|
155
323
|
*
|
|
@@ -170,20 +338,73 @@ function useRecording() {
|
|
|
170
338
|
* renders one only after the track arrives, and every remote `<video>` is
|
|
171
339
|
* `muted`, so a call had picture and no sound in either direction.
|
|
172
340
|
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
341
|
+
* ## Why the callback is STABLE, and an effect does the re-attaching
|
|
342
|
+
*
|
|
343
|
+
* The callback used to be memoised on `[track]`, so a new track identity made
|
|
344
|
+
* React run the OLD callback with `null` (which pauses the element and clears
|
|
345
|
+
* `srcObject`) and then the new one with the element. That is a black frame and
|
|
346
|
+
* a stall on the viewer's screen, and it fires for reasons that have nothing to
|
|
347
|
+
* do with the picture: the room's snapshot is rebuilt on every change, and a
|
|
348
|
+
* consumer that is closed and re-created (`syncSubscriptions` following the
|
|
349
|
+
* active set) produces a fresh `MediaTrack` for the SAME underlying
|
|
350
|
+
* `MediaStreamTrack`.
|
|
351
|
+
*
|
|
352
|
+
* So the ref callback is now stable - it mounts and unmounts, nothing else -
|
|
353
|
+
* and an effect assigns `srcObject` whenever the underlying track actually
|
|
354
|
+
* changes. `applied` is what makes that idempotent: assigning the same track
|
|
355
|
+
* again is not free, it restarts the element's load and shows as a flicker.
|
|
178
356
|
*/
|
|
179
357
|
function useRemoteTrack(producerId) {
|
|
180
358
|
const tracks = useRoomSnapshot(selectTracks, EMPTY_TRACKS);
|
|
181
359
|
const track = tracks.find((t) => t.producerId === producerId);
|
|
360
|
+
const mediaTrack = track?.track ?? null;
|
|
361
|
+
// The element this callback last attached to, so DETACHING can undo it.
|
|
362
|
+
const attached = (0, react_1.useRef)(null);
|
|
363
|
+
// The `MediaStreamTrack` currently on that element. Compared by identity, so
|
|
364
|
+
// the same track arriving inside a new `MediaTrack` record is a no-op.
|
|
365
|
+
const applied = (0, react_1.useRef)(null);
|
|
366
|
+
// Read by the ref callback, which must not depend on the track (see above).
|
|
367
|
+
const latest = (0, react_1.useRef)(mediaTrack);
|
|
368
|
+
latest.current = mediaTrack;
|
|
182
369
|
const attach = (0, react_1.useCallback)((element) => {
|
|
370
|
+
// React calls a ref callback with null when the element goes away, and
|
|
371
|
+
// ignoring that leaves a detached element holding the stream and still
|
|
372
|
+
// PLAYING it. Nothing on screen shows the orphan; you only hear it,
|
|
373
|
+
// as the same audio a second time, slightly out of step with itself.
|
|
374
|
+
// A remount is enough to cause it, and StrictMode remounts everything
|
|
375
|
+
// once in development, so this reproduced on every dev page load.
|
|
376
|
+
if (!element) {
|
|
377
|
+
const previous = attached.current;
|
|
378
|
+
attached.current = null;
|
|
379
|
+
applied.current = null;
|
|
380
|
+
if (previous) {
|
|
381
|
+
previous.pause();
|
|
382
|
+
previous.srcObject = null;
|
|
383
|
+
}
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
// A newly mounted element is always written to, even with no track yet: an
|
|
387
|
+
// explicit `null` is what says "this element holds nothing", and skipping
|
|
388
|
+
// it would leave whatever a reused element was carrying.
|
|
389
|
+
const previousElement = attached.current;
|
|
390
|
+
attached.current = element;
|
|
391
|
+
if (previousElement === element && applied.current === latest.current)
|
|
392
|
+
return;
|
|
393
|
+
applied.current = latest.current;
|
|
394
|
+
element.srcObject = latest.current ? new MediaStream([latest.current]) : null;
|
|
395
|
+
}, []);
|
|
396
|
+
// The track almost never exists when the element mounts: the consume round
|
|
397
|
+
// trip lands milliseconds later. This is what puts it on the element then,
|
|
398
|
+
// and what swaps it if the consumer is ever rebuilt.
|
|
399
|
+
(0, react_1.useEffect)(() => {
|
|
400
|
+
const element = attached.current;
|
|
183
401
|
if (!element)
|
|
184
402
|
return;
|
|
185
|
-
|
|
186
|
-
|
|
403
|
+
if (applied.current === mediaTrack)
|
|
404
|
+
return;
|
|
405
|
+
applied.current = mediaTrack;
|
|
406
|
+
element.srcObject = mediaTrack ? new MediaStream([mediaTrack]) : null;
|
|
407
|
+
}, [mediaTrack]);
|
|
187
408
|
return { track, attach };
|
|
188
409
|
}
|
|
189
410
|
const NOTHING_PENDING = { camera: false, microphone: false, screen: false };
|
|
@@ -196,6 +417,23 @@ const selectLostSources = (room) => room.lostPublicationSources;
|
|
|
196
417
|
* BROWSER concern with a UI consequence - a denied prompt is something a person
|
|
197
418
|
* has to be told about - and the room has no way to say so.
|
|
198
419
|
*/
|
|
420
|
+
/**
|
|
421
|
+
* The camera ask: 720p wanted, nothing REQUIRED.
|
|
422
|
+
*
|
|
423
|
+
* Without constraints the browser answers `getUserMedia({ video: true })`
|
|
424
|
+
* with 640x480 - the health panel caught a whole call whose "full" layer
|
|
425
|
+
* was SD 4:3 because of exactly this line. `ideal` rather than `exact`/`min`
|
|
426
|
+
* on purpose: a laptop whose camera tops out lower must still join the call,
|
|
427
|
+
* not be refused with OverconstrainedError over a resolution.
|
|
428
|
+
*/
|
|
429
|
+
function cameraConstraints(deviceId) {
|
|
430
|
+
return {
|
|
431
|
+
width: { ideal: 1280 },
|
|
432
|
+
height: { ideal: 720 },
|
|
433
|
+
frameRate: { ideal: 30 },
|
|
434
|
+
...(deviceId ? { deviceId: { exact: deviceId } } : {}),
|
|
435
|
+
};
|
|
436
|
+
}
|
|
199
437
|
function useLocalMedia() {
|
|
200
438
|
const { room } = useRoomContext();
|
|
201
439
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
@@ -261,7 +499,7 @@ function useLocalMedia() {
|
|
|
261
499
|
* screen share when the person ticks "share audio", and only one track is
|
|
262
500
|
* published).
|
|
263
501
|
*/
|
|
264
|
-
const publish = (0, react_1.useCallback)(async (source) => exclusively(source, async () => {
|
|
502
|
+
const publish = (0, react_1.useCallback)(async (source, options) => exclusively(source, async () => {
|
|
265
503
|
if (!room)
|
|
266
504
|
return;
|
|
267
505
|
setError(undefined);
|
|
@@ -270,12 +508,14 @@ function useLocalMedia() {
|
|
|
270
508
|
try {
|
|
271
509
|
const stream = source === "screen"
|
|
272
510
|
? await navigator.mediaDevices.getDisplayMedia({ video: true })
|
|
273
|
-
: await navigator.mediaDevices.getUserMedia(source === "camera"
|
|
511
|
+
: await navigator.mediaDevices.getUserMedia(source === "camera"
|
|
512
|
+
? { video: cameraConstraints(options?.deviceId) }
|
|
513
|
+
: { audio: options?.deviceId ? { deviceId: { exact: options.deviceId } } : true });
|
|
274
514
|
captured = stream.getTracks();
|
|
275
515
|
const track = captured[0];
|
|
276
516
|
if (!track)
|
|
277
517
|
throw new Error(`no ${source} track was captured`);
|
|
278
|
-
await room.publish(track, source);
|
|
518
|
+
await room.publish(track, source, options?.simulcast && source === "camera" ? { simulcast: true } : {});
|
|
279
519
|
published = track;
|
|
280
520
|
}
|
|
281
521
|
catch (err) {
|
|
@@ -290,6 +530,37 @@ function useLocalMedia() {
|
|
|
290
530
|
}
|
|
291
531
|
}
|
|
292
532
|
}), [room, exclusively]);
|
|
533
|
+
// Same lock as publish: a switch pressed twice must not open two captures,
|
|
534
|
+
// and a switch racing a publish must not replace a track that is not there
|
|
535
|
+
// yet. The new capture is owned here until `replaceTrack` takes it.
|
|
536
|
+
const switchDevice = (0, react_1.useCallback)(async (source, deviceId) => exclusively(source, async () => {
|
|
537
|
+
if (!room)
|
|
538
|
+
return;
|
|
539
|
+
const publication = room.localPublications.find((p) => p.source === source);
|
|
540
|
+
if (!publication)
|
|
541
|
+
return;
|
|
542
|
+
setError(undefined);
|
|
543
|
+
let captured = [];
|
|
544
|
+
let handedOver;
|
|
545
|
+
try {
|
|
546
|
+
const stream = await navigator.mediaDevices.getUserMedia(source === "camera" ? { video: cameraConstraints(deviceId) } : { audio: { deviceId: { exact: deviceId } } });
|
|
547
|
+
captured = stream.getTracks();
|
|
548
|
+
const track = captured[0];
|
|
549
|
+
if (!track)
|
|
550
|
+
throw new Error(`no ${source} track was captured`);
|
|
551
|
+
await room.replaceTrack(publication.producerId, track);
|
|
552
|
+
handedOver = track;
|
|
553
|
+
}
|
|
554
|
+
catch (err) {
|
|
555
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
556
|
+
}
|
|
557
|
+
finally {
|
|
558
|
+
for (const track of captured) {
|
|
559
|
+
if (track !== handedOver)
|
|
560
|
+
track.stop();
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
}), [room, exclusively]);
|
|
293
564
|
// Under the same lock as `publish`, because the pair is what a toggle
|
|
294
565
|
// alternates between: a stop pressed while a start is still capturing would
|
|
295
566
|
// otherwise find no publication to close and leave the capture that lands a
|
|
@@ -311,9 +582,10 @@ function useLocalMedia() {
|
|
|
311
582
|
}
|
|
312
583
|
}), [room, exclusively]);
|
|
313
584
|
return {
|
|
314
|
-
publishCamera: (0, react_1.useCallback)(() => publish("camera"), [publish]),
|
|
315
|
-
publishMicrophone: (0, react_1.useCallback)(() => publish("microphone"), [publish]),
|
|
585
|
+
publishCamera: (0, react_1.useCallback)((options) => publish("camera", options), [publish]),
|
|
586
|
+
publishMicrophone: (0, react_1.useCallback)((options) => publish("microphone", options), [publish]),
|
|
316
587
|
publishScreen: (0, react_1.useCallback)(() => publish("screen"), [publish]),
|
|
588
|
+
switchDevice,
|
|
317
589
|
unpublish,
|
|
318
590
|
setPaused,
|
|
319
591
|
isCameraEnabled: has("camera"),
|
|
@@ -337,6 +609,11 @@ const EMPTY_STATE = {
|
|
|
337
609
|
peers: [],
|
|
338
610
|
producers: [],
|
|
339
611
|
activeSpeakers: [],
|
|
612
|
+
activeAudio: [],
|
|
613
|
+
activeVideo: [],
|
|
614
|
+
speakers: [],
|
|
615
|
+
activeSetEnforced: false,
|
|
616
|
+
raisedHands: [],
|
|
340
617
|
recording: false,
|
|
341
618
|
subscribeRule: null,
|
|
342
619
|
draining: null,
|
package/build/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserDevice.d.ts","sourceRoot":"","sources":["../../src/room/browserDevice.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,WAAW,EAOZ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"browserDevice.d.ts","sourceRoot":"","sources":["../../src/room/browserDevice.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,WAAW,EAOZ,MAAM,UAAU,CAAC;AAgDlB,wBAAgB,mBAAmB,IAAI,WAAW,CA8DjD"}
|
|
@@ -15,13 +15,22 @@ const mediasoup_client_1 = require("mediasoup-client");
|
|
|
15
15
|
* This file is deliberately dull. If it grows logic, that logic is in the wrong
|
|
16
16
|
* place.
|
|
17
17
|
*/
|
|
18
|
-
const
|
|
18
|
+
const CODEC_MIME = { h264: "video/h264", vp8: "video/vp8" };
|
|
19
|
+
const adapt = (transport, device) => ({
|
|
19
20
|
id: transport.id,
|
|
20
|
-
async produce({ track, appData, encodings }) {
|
|
21
|
+
async produce({ track, appData, encodings, codec }) {
|
|
22
|
+
// The router's own entry for the codec, which is what mediasoup-client
|
|
23
|
+
// wants rather than a name. Missing means the router does not offer it
|
|
24
|
+
// and the default applies, which the caller can see from the producer.
|
|
25
|
+
const wanted = codec ? CODEC_MIME[codec] : undefined;
|
|
26
|
+
const capability = wanted
|
|
27
|
+
? device.rtpCapabilities.codecs?.find((c) => c.mimeType.toLowerCase() === wanted)
|
|
28
|
+
: undefined;
|
|
21
29
|
const producer = await transport.produce({
|
|
22
30
|
track,
|
|
23
31
|
...(encodings ? { encodings: encodings } : {}),
|
|
24
32
|
...(appData ? { appData } : {}),
|
|
33
|
+
...(capability ? { codec: capability } : {}),
|
|
25
34
|
});
|
|
26
35
|
return producer;
|
|
27
36
|
},
|
|
@@ -82,12 +91,12 @@ function createBrowserDevice() {
|
|
|
82
91
|
createSendTransport({ description, iceServers, handlers }) {
|
|
83
92
|
const transport = device.createSendTransport(common(description, iceServers));
|
|
84
93
|
wire(transport, handlers);
|
|
85
|
-
return adapt(transport);
|
|
94
|
+
return adapt(transport, device);
|
|
86
95
|
},
|
|
87
96
|
createRecvTransport({ description, iceServers, handlers }) {
|
|
88
97
|
const transport = device.createRecvTransport(common(description, iceServers));
|
|
89
98
|
wire(transport, handlers);
|
|
90
|
-
return adapt(transport);
|
|
99
|
+
return adapt(transport, device);
|
|
91
100
|
},
|
|
92
101
|
};
|
|
93
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browserDevice.js","sourceRoot":"","sources":["../../src/room/browserDevice.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"browserDevice.js","sourceRoot":"","sources":["../../src/room/browserDevice.ts"],"names":[],"mappings":";;AA6DA,kDA8DC;AA3HD,uDAA0C;AAe1C;;;;;;;;;;;;GAYG;AAEH,MAAM,UAAU,GAAmC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AAE5F,MAAM,KAAK,GAAG,CAAC,SAAoB,EAAE,MAAc,EAAkB,EAAE,CAAC,CAAC;IACvE,EAAE,EAAE,SAAS,CAAC,EAAE;IAEhB,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;QAChD,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,MAAM,UAAU,GAAG,MAAM;YACvB,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;YACjF,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;YACvC,KAAK;YACL,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC;QACH,OAAO,QAA0C,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE;QACnD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;QAClF,OAAO,QAA0C,CAAC;IACpD,CAAC;IAED,KAAK;QACH,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;CACF,CAAC,CAAC;AAEH,SAAgB,mBAAmB;IACjC,MAAM,MAAM,GAAG,IAAI,yBAAM,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAG,CAAC,WAAiC,EAAE,UAAuB,EAAE,EAAE,CAAC,CAAC;QAC9E,uEAAuE;QACvE,wCAAwC;QACxC,EAAE,EAAE,WAAW,CAAC,WAAW;QAC3B,aAAa,EAAE,WAAW,CAAC,aAAsB;QACjD,aAAa,EAAE,WAAW,CAAC,aAAsB;QACjD,cAAc,EAAE,WAAW,CAAC,cAAuB;QACnD,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,cAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,2EAA2E;QAC3E,4EAA4E;QAC5E,4BAA4B;QAC5B,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,CAAC,SAAoB,EAAE,QAAoC,EAAE,EAAE;QAC1E,qEAAqE;QACrE,wEAAwE;QACxE,4DAA4D;QAC5D,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;YAChE,QAAQ,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;gBAC9E,QAAQ;qBACL,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,aAA8B,EAAE,OAAO,EAAE,OAAkC,EAAE,CAAC;qBACjH,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,uBAAuB,EAAE,CAAC;YACrC,SAAS,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,qBAAsC;YAC/C,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,qBAAqB,EAAE,qBAA8B,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM;YACR,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,eAAe;YACjB,OAAO,MAAM,CAAC,eAAkC,CAAC;QACnD,CAAC;QACD,UAAU,CAAC,IAAI;YACb,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;YACvD,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,mBAAmB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;YACvD,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
|