livekit-client 0.15.2 → 0.15.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.
- package/dist/api/SignalClient.d.ts +6 -1
- package/dist/api/SignalClient.js +23 -1
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +3 -0
- package/dist/proto/livekit_models.js +44 -3
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +33 -0
- package/dist/proto/livekit_rtc.js +238 -1
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/PCTransport.js +4 -0
- package/dist/room/PCTransport.js.map +1 -1
- package/dist/room/RTCEngine.js +5 -3
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +8 -0
- package/dist/room/Room.js +97 -6
- package/dist/room/Room.js.map +1 -1
- package/dist/room/events.d.ts +38 -18
- package/dist/room/events.js +37 -17
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +24 -2
- package/dist/room/participant/LocalParticipant.js +41 -15
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.d.ts +1 -1
- package/dist/room/participant/ParticipantTrackPermission.d.ts +19 -0
- package/dist/room/participant/ParticipantTrackPermission.js +16 -0
- package/dist/room/participant/ParticipantTrackPermission.js.map +1 -0
- package/dist/room/participant/RemoteParticipant.d.ts +2 -2
- package/dist/room/participant/RemoteParticipant.js +8 -14
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +0 -3
- package/dist/room/track/LocalTrack.js +1 -6
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalTrackPublication.d.ts +3 -1
- package/dist/room/track/LocalTrackPublication.js +15 -5
- package/dist/room/track/LocalTrackPublication.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.js +2 -0
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/RemoteAudioTrack.d.ts +5 -14
- package/dist/room/track/RemoteAudioTrack.js +7 -32
- package/dist/room/track/RemoteAudioTrack.js.map +1 -1
- package/dist/room/track/RemoteTrack.d.ts +14 -0
- package/dist/room/track/RemoteTrack.js +47 -0
- package/dist/room/track/RemoteTrack.js.map +1 -0
- package/dist/room/track/RemoteTrackPublication.d.ts +8 -1
- package/dist/room/track/RemoteTrackPublication.js +29 -5
- package/dist/room/track/RemoteTrackPublication.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +3 -9
- package/dist/room/track/RemoteVideoTrack.js +8 -29
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +3 -0
- package/dist/room/track/Track.js +5 -0
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/TrackPublication.d.ts +12 -1
- package/dist/room/track/TrackPublication.js +23 -7
- package/dist/room/track/TrackPublication.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/example/index.html +8 -9
- package/example/sample.ts +30 -19
- package/package.json +1 -1
package/dist/room/Room.js
CHANGED
@@ -33,8 +33,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
34
34
|
exports.RoomState = void 0;
|
35
35
|
const events_1 = require("events");
|
36
|
+
const SignalClient_1 = require("../api/SignalClient");
|
36
37
|
const logger_1 = __importDefault(require("../logger"));
|
37
38
|
const livekit_models_1 = require("../proto/livekit_models");
|
39
|
+
const livekit_rtc_1 = require("../proto/livekit_rtc");
|
38
40
|
const DeviceManager_1 = __importDefault(require("./DeviceManager"));
|
39
41
|
const errors_1 = require("./errors");
|
40
42
|
const events_2 = require("./events");
|
@@ -91,6 +93,7 @@ class Room extends events_1.EventEmitter {
|
|
91
93
|
if (opts === null || opts === void 0 ? void 0 : opts.rtcConfig) {
|
92
94
|
this.engine.rtcConfig = opts.rtcConfig;
|
93
95
|
}
|
96
|
+
this.connOptions = opts;
|
94
97
|
try {
|
95
98
|
const joinResponse = yield this.engine.join(url, token, opts);
|
96
99
|
logger_1.default.debug('connected to Livekit Server', joinResponse.serverVersion);
|
@@ -277,6 +280,19 @@ class Room extends events_1.EventEmitter {
|
|
277
280
|
this.emit(events_2.ParticipantEvent.TrackStreamStateChanged, pub, pub.track.streamState, participant);
|
278
281
|
});
|
279
282
|
};
|
283
|
+
this.handleSubscriptionPermissionUpdate = (update) => {
|
284
|
+
const participant = this.participants.get(update.participantSid);
|
285
|
+
if (!participant) {
|
286
|
+
return;
|
287
|
+
}
|
288
|
+
const pub = participant.getTrackPublication(update.trackSid);
|
289
|
+
if (!pub) {
|
290
|
+
return;
|
291
|
+
}
|
292
|
+
pub._allowed = update.allowed;
|
293
|
+
participant.emit(events_2.ParticipantEvent.TrackSubscriptionPermissionChanged, pub, pub.subscriptionStatus);
|
294
|
+
this.emit(events_2.ParticipantEvent.TrackSubscriptionPermissionChanged, pub, pub.subscriptionStatus, participant);
|
295
|
+
};
|
280
296
|
this.handleDataPacket = (userPacket, kind) => {
|
281
297
|
// find the participant
|
282
298
|
const participant = this.participants.get(userPacket.participantSid);
|
@@ -341,6 +357,7 @@ class Room extends events_1.EventEmitter {
|
|
341
357
|
this.engine.client.onRoomUpdate = this.handleRoomUpdate;
|
342
358
|
this.engine.client.onSpeakersChanged = this.handleSpeakersChanged;
|
343
359
|
this.engine.client.onStreamStateUpdate = this.handleStreamStateUpdate;
|
360
|
+
this.engine.client.onSubscriptionPermissionUpdate = this.handleSubscriptionPermissionUpdate;
|
344
361
|
this.engine.on(events_2.EngineEvent.ActiveSpeakersUpdate, this.handleActiveSpeakersUpdate);
|
345
362
|
this.engine.on(events_2.EngineEvent.DataPacketReceived, this.handleDataPacket);
|
346
363
|
this.engine.on(events_2.EngineEvent.Reconnecting, () => {
|
@@ -351,6 +368,11 @@ class Room extends events_1.EventEmitter {
|
|
351
368
|
this.state = RoomState.Connected;
|
352
369
|
this.emit(events_2.RoomEvent.Reconnected);
|
353
370
|
});
|
371
|
+
this.engine.on(events_2.EngineEvent.SignalConnected, () => {
|
372
|
+
if (this.state === RoomState.Reconnecting) {
|
373
|
+
this.sendSyncState();
|
374
|
+
}
|
375
|
+
});
|
354
376
|
this.engine.client.onConnectionQuality = this.handleConnectionQualityUpdate;
|
355
377
|
}
|
356
378
|
/**
|
@@ -376,6 +398,38 @@ class Room extends events_1.EventEmitter {
|
|
376
398
|
}
|
377
399
|
}
|
378
400
|
}
|
401
|
+
/**
|
402
|
+
* @internal for testing
|
403
|
+
*/
|
404
|
+
simulateScenario(scenario) {
|
405
|
+
let req;
|
406
|
+
switch (scenario) {
|
407
|
+
case 'speaker':
|
408
|
+
req = livekit_rtc_1.SimulateScenario.fromPartial({
|
409
|
+
speakerUpdate: 3,
|
410
|
+
});
|
411
|
+
break;
|
412
|
+
case 'node-failure':
|
413
|
+
req = livekit_rtc_1.SimulateScenario.fromPartial({
|
414
|
+
nodeFailure: true,
|
415
|
+
});
|
416
|
+
break;
|
417
|
+
case 'server-leave':
|
418
|
+
req = livekit_rtc_1.SimulateScenario.fromPartial({
|
419
|
+
serverLeave: true,
|
420
|
+
});
|
421
|
+
break;
|
422
|
+
case 'migration':
|
423
|
+
req = livekit_rtc_1.SimulateScenario.fromPartial({
|
424
|
+
migration: true,
|
425
|
+
});
|
426
|
+
break;
|
427
|
+
default:
|
428
|
+
}
|
429
|
+
if (req) {
|
430
|
+
this.engine.client.sendSimulateScenario(req);
|
431
|
+
}
|
432
|
+
}
|
379
433
|
/**
|
380
434
|
* Browsers have different policies regarding audio playback. Most requiring
|
381
435
|
* some form of user interaction (click/tap/etc).
|
@@ -465,7 +519,7 @@ class Room extends events_1.EventEmitter {
|
|
465
519
|
if (!trackId || trackId === '')
|
466
520
|
trackId = mediaTrack.id;
|
467
521
|
const participant = this.getOrCreateParticipant(participantId);
|
468
|
-
participant.addSubscribedMediaTrack(mediaTrack, trackId, receiver, this.options.adaptiveStream);
|
522
|
+
participant.addSubscribedMediaTrack(mediaTrack, trackId, stream, receiver, this.options.adaptiveStream);
|
469
523
|
}
|
470
524
|
handleDisconnect(shouldStopTracks = true) {
|
471
525
|
if (this.state === RoomState.Disconnected) {
|
@@ -476,13 +530,16 @@ class Room extends events_1.EventEmitter {
|
|
476
530
|
p.unpublishTrack(pub.trackSid);
|
477
531
|
});
|
478
532
|
});
|
479
|
-
|
480
|
-
|
481
|
-
|
533
|
+
this.localParticipant.tracks.forEach((pub) => {
|
534
|
+
var _a, _b;
|
535
|
+
if (pub.track) {
|
536
|
+
this.localParticipant.unpublishTrack(pub.track);
|
537
|
+
}
|
538
|
+
if (shouldStopTracks) {
|
482
539
|
(_a = pub.track) === null || _a === void 0 ? void 0 : _a.detach();
|
483
540
|
(_b = pub.track) === null || _b === void 0 ? void 0 : _b.stop();
|
484
|
-
}
|
485
|
-
}
|
541
|
+
}
|
542
|
+
});
|
486
543
|
this.participants.clear();
|
487
544
|
this.activeSpeakers = [];
|
488
545
|
if (this.audioContext) {
|
@@ -571,6 +628,40 @@ class Room extends events_1.EventEmitter {
|
|
571
628
|
}
|
572
629
|
return participant;
|
573
630
|
}
|
631
|
+
sendSyncState() {
|
632
|
+
var _a;
|
633
|
+
if (this.engine.subscriber === undefined
|
634
|
+
|| this.engine.subscriber.pc.localDescription === null) {
|
635
|
+
return;
|
636
|
+
}
|
637
|
+
const previousSdp = this.engine.subscriber.pc.localDescription;
|
638
|
+
/* 1. autosubscribe on, so subscribed tracks = all tracks - unsub tracks,
|
639
|
+
in this case, we send unsub tracks, so server add all tracks to this
|
640
|
+
subscribe pc and unsub special tracks from it.
|
641
|
+
2. autosubscribe off, we send subscribed tracks.
|
642
|
+
*/
|
643
|
+
const sendUnsub = ((_a = this.connOptions) === null || _a === void 0 ? void 0 : _a.autoSubscribe) || false;
|
644
|
+
const trackSids = new Array();
|
645
|
+
this.participants.forEach((participant) => {
|
646
|
+
participant.tracks.forEach((track) => {
|
647
|
+
if (track.isSubscribed !== sendUnsub) {
|
648
|
+
trackSids.push(track.trackSid);
|
649
|
+
}
|
650
|
+
});
|
651
|
+
});
|
652
|
+
this.engine.client.sendSyncState({
|
653
|
+
answer: SignalClient_1.toProtoSessionDescription({
|
654
|
+
sdp: previousSdp.sdp,
|
655
|
+
type: previousSdp.type,
|
656
|
+
}),
|
657
|
+
subscription: {
|
658
|
+
trackSids,
|
659
|
+
subscribe: !sendUnsub,
|
660
|
+
participantTracks: [],
|
661
|
+
},
|
662
|
+
publishTracks: this.localParticipant.publishedTracksInfo(),
|
663
|
+
});
|
664
|
+
}
|
574
665
|
/** @internal */
|
575
666
|
emit(event, ...args) {
|
576
667
|
logger_1.default.debug('room event', event, ...args);
|
package/dist/room/Room.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Room.js","sourceRoot":"","sources":["../../src/room/Room.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Room.js","sourceRoot":"","sources":["../../src/room/Room.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAsC;AACtC,sDAAgE;AAChE,uDAA4B;AAE5B,4DAGiC;AACjC,sDAE8B;AAC9B,oEAA4C;AAC5C,qCAA8D;AAC9D,qCAEkB;AAClB,sFAA8D;AAE9D,wFAAgE;AAChE,yDAA8D;AAC9D,+CAAiF;AAGjF,yCAAsC;AAGtC,mCAAyC;AAEzC,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,0CAA6B,CAAA;IAC7B,oCAAuB,CAAA;IACvB,0CAA6B,CAAA;AAC/B,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED;;;;;;;GAOG;AACH,MAAM,IAAK,SAAQ,qBAAY;IAsC7B;;;OAGG;IACH,YAAY,OAAqB;QAC/B,KAAK,EAAE,CAAC;QA1CV,UAAK,GAAc,SAAS,CAAC,YAAY,CAAC;QAK1C;;;WAGG;QACH,mBAAc,GAAkB,EAAE,CAAC;QAKnC,4BAA4B;QAC5B,qCAAqC;QACrC,QAAG,GAAW,EAAE,CAAC;QAEjB,iDAAiD;QACjD,SAAI,GAAW,EAAE,CAAC;QAKlB,oBAAoB;QACpB,aAAQ,GAAuB,SAAS,CAAC;QAQjC,iBAAY,GAAG,IAAI,CAAC;QA6F5B,YAAO,GAAG,CAAO,GAAW,EAAE,KAAa,EAAE,IAAyB,EAAE,EAAE;YACxE,gCAAgC;YAChC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,YAAY,EAAE;gBACzC,gBAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjD,OAAO;aACR;YAED,6CAA6C;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;aACxC;YAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC9D,gBAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;gBAErE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE;oBAC/B,MAAM,IAAI,0BAAiB,CAAC,wBAAwB,CAAC,CAAC;iBACvD;gBAED,IAAI,YAAY,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACpE,gBAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACtD,yDAAyD;oBACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;iBAC/B;gBAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;gBACjC,MAAM,EAAE,GAAG,YAAY,CAAC,WAAY,CAAC;gBACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAAgB,CAC1C,EAAE,CAAC,GAAG,EACN,EAAE,CAAC,QAAQ,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CACb,CAAC;gBAEF,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACrC,qDAAqD;gBACrD,IAAI,CAAC,gBAAgB;qBAClB,EAAE,CAAC,yBAAgB,CAAC,eAAe,EAAE,CAAC,QAAgB,EAAE,EAAE;oBACzD,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACxE,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,0BAA0B,EAAE,CAAC,QAAgB,EAAE,EAAE;oBACpE,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,0BAA0B,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACnF,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,UAAU,EAAE,CAAC,GAAqB,EAAE,EAAE;oBACzD,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9D,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,YAAY,EAAE,CAAC,GAAqB,EAAE,EAAE;oBAC3D,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChE,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,mBAAmB,EAAE,CAAC,GAA0B,EAAE,EAAE;oBACvE,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,mBAAmB,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvE,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,qBAAqB,EAAE,CAAC,GAA0B,EAAE,EAAE;oBACzE,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,qBAAqB,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACzE,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,wBAAwB,EAAE,CAAC,OAA0B,EAAE,EAAE;oBAC5E,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,wBAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAChF,CAAC,CAAC;qBACD,EAAE,CAAC,yBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAQ,EAAE,EAAE;oBACnD,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBAEL,oEAAoE;gBACpE,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9C,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAK,CAAC,IAAI,CAAC;gBACpC,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC,IAAK,CAAC,GAAG,CAAC;gBAClC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAK,CAAC,QAAQ,CAAC;aAC7C;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,GAAG,CAAC;aACX;YAED,mCAAmC;YACnC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;oBACrC,UAAU;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,wBAAe,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBACjE,CAAC,EAAE,gCAAoB,CAAC,CAAC;gBAEzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAW,CAAC,SAAS,EAAE,GAAG,EAAE;oBAC3C,YAAY,CAAC,cAAc,CAAC,CAAC;oBAE7B,yBAAyB;oBACzB,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC7D,SAAS,CAAC,YAAY,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAEjF,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAA,CAAC;QAEF;;WAEG;QACH,eAAU,GAAG,CAAC,UAAU,GAAG,IAAI,EAAE,EAAE;YACjC,aAAa;YACb,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;aACrB;YACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAClC,gBAAgB;YAChB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,CAAC,CAAC;QAgDM,mBAAc,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC,CAAC;QAuIM,6BAAwB,GAAG,CAAC,gBAAmC,EAAE,EAAE;YACzE,uDAAuD;YACvD,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;oBAC1C,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvC,OAAO;iBACR;gBAED,IAAI,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,CAAC;gBAE5C,sCAAsC;gBACtC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAEhE,uCAAuC;gBACvC,IAAI,IAAI,CAAC,KAAK,KAAK,sCAAqB,CAAC,YAAY,EAAE;oBACrD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;iBACjE;qBAAM,IAAI,gBAAgB,EAAE;oBAC3B,uBAAuB;oBACvB,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;iBAC9D;qBAAM;oBACL,yBAAyB;oBACzB,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACpC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAkBF,kEAAkE;QAC1D,+BAA0B,GAAG,CAAC,QAAuB,EAAE,EAAE;YAC/D,MAAM,cAAc,GAAkB,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAQ,EAAE,CAAC;YACzB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBAC7B,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;oBAC7C,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;oBACjD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC1C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAC5C;qBAAM;oBACL,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC7C,IAAI,CAAC,EAAE;wBACL,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;wBAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBACtB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;qBACxB;iBACF;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBACxC,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC5C;YACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;oBACpB,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC;oBACjB,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBACxB;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,mCAAmC;QAC3B,0BAAqB,GAAG,CAAC,cAA6B,EAAE,EAAE;YAChE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAChC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACjC,IAAI,CAAC,GAA4B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpE,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;oBAC7C,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;iBAC3B;gBACD,IAAI,CAAC,CAAC,EAAE;oBACN,OAAO;iBACR;gBACD,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC7B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAEhC,IAAI,OAAO,CAAC,MAAM,EAAE;oBAClB,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBAClC;qBAAM;oBACL,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACzD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEM,4BAAuB,GAAG,CAAC,iBAAoC,EAAE,EAAE;YACzE,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBACrD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,EAAE;oBAChB,OAAO;iBACR;gBACD,MAAM,GAAG,GAAG,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;oBACtB,OAAO;iBACR;gBACD,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,aAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACtE,WAAW,CAAC,IAAI,CAAC,yBAAgB,CAAC,uBAAuB,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACvF,IAAI,CAAC,IAAI,CAAC,yBAAgB,CAAC,uBAAuB,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAC/F,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,uCAAkC,GAAG,CAAC,MAAoC,EAAE,EAAE;YACpF,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO;aACR;YACD,MAAM,GAAG,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO;aACR;YAED,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,yBAAgB,CAAC,kCAAkC,EAAE,GAAG,EACvE,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,yBAAgB,CAAC,kCAAkC,EAAE,GAAG,EAChE,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACzC,CAAC,CAAC;QAEM,qBAAgB,GAAG,CACzB,UAAsB,EACtB,IAAqB,EACrB,EAAE;YACF,uBAAuB;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAErE,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAEzE,+BAA+B;YAC/B,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC,yBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC;QAEM,+BAA0B,GAAG,GAAG,EAAE;YACxC,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC;QAEM,8BAAyB,GAAG,CAAC,CAAM,EAAE,EAAE;YAC7C,gBAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1B,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC,CAAC;QAEM,uBAAkB,GAAG,GAAS,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,mBAAmB,CAAC,CAAC;QAC3C,CAAC,CAAA,CAAC;QAEM,qBAAgB,GAAG,CAAC,CAAY,EAAE,EAAE;YAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC;QAEM,kCAA6B,GAAG,CAAC,MAA+B,EAAE,EAAE;YAC1E,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC9B,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;oBACrD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzD,OAAO;iBACR;gBACD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/D,IAAI,WAAW,EAAE;oBACf,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAChD;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QA5jBA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,oBAAoB,mCAC5B,wBAAa,GACb,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CACjC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,oBAAoB,mCAC5B,wBAAa,GACb,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CACjC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,eAAe,mCACvB,0BAAe,GACf,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAC5B,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAAgB,CAC1C,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAClC,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,mBAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,CACZ,oBAAW,CAAC,eAAe,EAC3B,CACE,UAA4B,EAC5B,MAAmB,EACnB,QAAyB,EACzB,EAAE;YACF,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,8BAA8B,GAAG,IAAI,CAAC,kCAAkC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,YAAY,EAAE,GAAG,EAAE;YAC5C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,WAAW,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,eAAe,EAAE,GAAG,EAAE;YAC/C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,YAAY,EAAE;gBACzC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,6BAA6B,CAAC;IAC9E,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,IAAqB;QAC1C,OAAO,uBAAa,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAsHD;;;;OAIG;IACH,wBAAwB,CAAC,QAAgB;QACvC,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrC,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC3B,OAAO,CAAC,CAAC;aACV;SACF;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,GAAiC,CAAC;QACtC,QAAQ,QAAQ,EAAE;YAChB,KAAK,SAAS;gBACZ,GAAG,GAAG,8BAAgB,CAAC,WAAW,CAAC;oBACjC,aAAa,EAAE,CAAC;iBACjB,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,cAAc;gBACjB,GAAG,GAAG,8BAAgB,CAAC,WAAW,CAAC;oBACjC,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,cAAc;gBACjB,GAAG,GAAG,8BAAgB,CAAC,WAAW,CAAC;oBACjC,WAAW,EAAE,IAAI;iBAClB,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,WAAW;gBACd,GAAG,GAAG,8BAAgB,CAAC,WAAW,CAAC;oBACjC,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;gBACH,MAAM;YACR,QAAQ;SACT;QACD,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;SAC9C;IACH,CAAC;IAMD;;;;;;OAMG;IACG,UAAU;;YACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAE3B,MAAM,QAAQ,GAA4B,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1B,IAAI,CAAC,CAAC,KAAK,EAAE;wBACX,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;4BACrC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI;gBACF,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACnC;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,GAAG,CAAC;aACX;QACH,CAAC;KAAA;IAED;;OAEG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACG,kBAAkB,CAAC,IAAqB,EAAE,QAAgB;;YAC9D,IAAI,IAAI,KAAK,YAAY,EAAE;gBACzB,MAAM,MAAM,GAAG,KAAK;qBACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;qBAChD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC/D,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,UAAU,0CAAE,WAAW,CAAC,QAAQ,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,oBAAqB,CAAC,QAAQ,GAAG,QAAQ,CAAC;aACxD;iBAAM,IAAI,IAAI,KAAK,YAAY,EAAE;gBAChC,MAAM,MAAM,GAAG,KAAK;qBACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;qBAChD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,UAAU,0CAAE,WAAW,CAAC,QAAQ,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,CAAC,oBAAqB,CAAC,QAAQ,GAAG,QAAQ,CAAC;aACxD;iBAAM,IAAI,IAAI,KAAK,aAAa,EAAE;gBACjC,MAAM,QAAQ,GAAuB,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC9B,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC1B,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,EAAE;4BAC7B,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gCACrC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACnB,CAAC,CAAC,CAAC;yBACJ;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAO,CAAC,EAAE,EAAE;oBACzC,IAAI,WAAW,IAAI,CAAC,EAAE;wBACpB,gBAAgB;wBAChB,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;qBAC7B;gBACH,CAAC,CAAA,CAAC,CAAC,CAAC;aACL;QACH,CAAC;KAAA;IAEO,YAAY,CAClB,UAA4B,EAC5B,MAAmB,EACnB,QAAyB;QAEzB,MAAM,KAAK,GAAG,sBAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC;QAExD,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAC/D,WAAW,CAAC,uBAAuB,CACjC,UAAU,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,IAAI,CAAC,OAAO,CAAC,cAAc,CAC5B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,gBAAgB,GAAG,IAAI;QAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,YAAY,EAAE;YACzC,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;;YAC3C,IAAI,GAAG,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACjD;YACD,IAAI,gBAAgB,EAAE;gBACpB,MAAA,GAAG,CAAC,KAAK,0CAAE,MAAM,EAAE,CAAC;gBACpB,MAAA,GAAG,CAAC,KAAK,0CAAE,IAAI,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;SAC/B;QACD,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAChE,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACpF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IA6BO,6BAA6B,CACnC,GAAW,EACX,WAA+B;QAE/B,wBAAwB;QACxB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO;SACR;QAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACzC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAuJO,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;QACD,6DAA6D;QAC7D,sGAAsG;QACtG,aAAa;QACb,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,kBAAkB,CAAC;QACtE,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;SACxC;IACH,CAAC;IAEO,sBAAsB,CAC5B,EAAU,EACV,IAAsB;QAEtB,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,EAAE;YAChB,kEAAkE;YAClE,0EAA0E;YAC1E,IAAI,IAAI,EAAE;gBACR,WAAW,GAAG,2BAAiB,CAAC,mBAAmB,CACjD,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CACL,CAAC;aACH;iBAAM;gBACL,WAAW,GAAG,IAAI,2BAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YACvC,sBAAsB;YAEtB,6EAA6E;YAC7E,yCAAyC;YACzC,WAAW;iBACR,EAAE,CAAC,yBAAgB,CAAC,cAAc,EAAE,CAAC,gBAAwC,EAAE,EAAE;gBAChF,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,cAAc,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;YACrE,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,eAAe,EAClC,CAAC,KAAkB,EAAE,WAAmC,EAAE,EAAE;gBAC1D,0BAA0B;gBAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,aAAK,CAAC,IAAI,CAAC,KAAK,EAAE;oBACnC,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,oBAAoB,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;oBAC3E,KAAK,CAAC,EAAE,CAAC,mBAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;iBAC1E;gBACD,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACxE,CAAC,CAAC;iBACH,EAAE,CAAC,yBAAgB,CAAC,gBAAgB,EAAE,CAAC,WAAmC,EAAE,EAAE;gBAC7E,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,gBAAgB,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAClE,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,iBAAiB,EACpC,CAAC,KAAkB,EAAE,WAAmC,EAAE,EAAE;gBAC1D,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,iBAAiB,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC1E,CAAC,CAAC;iBACH,EAAE,CAAC,yBAAgB,CAAC,uBAAuB,EAAE,CAAC,GAAW,EAAE,EAAE;gBAC5D,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,uBAAuB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACjE,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,UAAU,EAAE,CAAC,GAAqB,EAAE,EAAE;gBACzD,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,UAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,YAAY,EAAE,CAAC,GAAqB,EAAE,EAAE;gBAC3D,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,YAAY,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACtD,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,eAAe,EAAE,CAAC,QAAa,EAAE,EAAE;gBACtD,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC9D,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,0BAA0B,EAAE,CAAC,QAAa,EAAE,EAAE;gBACjE,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,0BAA0B,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACzE,CAAC,CAAC;iBACD,EAAE,CAAC,yBAAgB,CAAC,wBAAwB,EAAE,CAAC,OAA0B,EAAE,EAAE;gBAC5E,IAAI,CAAC,IAAI,CAAC,kBAAS,CAAC,wBAAwB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;SACN;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,aAAa;;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS;eACnC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,KAAK,IAAI,EAAE;YACxD,OAAO;SACR;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC;QAE/D;;;;UAIE;QACF,MAAM,SAAS,GAAG,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,aAAa,KAAI,KAAK,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,KAAK,EAAU,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACxC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnC,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE;oBACpC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;iBAChC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/B,MAAM,EAAE,wCAAyB,CAAC;gBAChC,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB,CAAC;YACF,YAAY,EAAE;gBACZ,SAAS;gBACT,SAAS,EAAE,CAAC,SAAS;gBACrB,iBAAiB,EAAE,EAAE;aACtB;YACD,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,KAAsB,EAAE,GAAG,IAAW;QACzC,gBAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAED,kBAAe,IAAI,CAAC"}
|
package/dist/room/events.d.ts
CHANGED
@@ -110,6 +110,8 @@ export declare enum RoomEvent {
|
|
110
110
|
* Active speakers changed. List of speakers are ordered by their audio level.
|
111
111
|
* loudest speakers first. This will include the LocalParticipant too.
|
112
112
|
*
|
113
|
+
* Speaker updates are sent only to the publishing participant and their subscribers.
|
114
|
+
*
|
113
115
|
* args: (Array<[[Participant]]>)
|
114
116
|
*/
|
115
117
|
ActiveSpeakersChanged = "activeSpeakersChanged",
|
@@ -145,6 +147,14 @@ export declare enum RoomEvent {
|
|
145
147
|
* args: (payload: Uint8Array, participant: [[Participant]], kind: [[DataPacket_Kind]])
|
146
148
|
*/
|
147
149
|
DataReceived = "dataReceived",
|
150
|
+
/**
|
151
|
+
* Connection quality was changed for a Participant. It'll receive updates
|
152
|
+
* from the local participant, as well as any [[RemoteParticipant]]s that we are
|
153
|
+
* subscribed to.
|
154
|
+
*
|
155
|
+
* args: (connectionQuality: [[ConnectionQuality]], participant: [[Participant]])
|
156
|
+
*/
|
157
|
+
ConnectionQualityChanged = "connectionQualityChanged",
|
148
158
|
/**
|
149
159
|
* StreamState indicates if a subscribed track has been paused by the SFU
|
150
160
|
* (typically this happens because of subscriber's bandwidth constraints)
|
@@ -156,6 +166,17 @@ export declare enum RoomEvent {
|
|
156
166
|
* participant: [[RemoteParticipant]])
|
157
167
|
*/
|
158
168
|
TrackStreamStateChanged = "trackStreamStateChanged",
|
169
|
+
/**
|
170
|
+
* One of subscribed tracks have changed its permissions for the current
|
171
|
+
* participant. If permission was revoked, then the track will no longer
|
172
|
+
* be subscribed. If permission was granted, a TrackSubscribed event will
|
173
|
+
* be emitted.
|
174
|
+
*
|
175
|
+
* args: (pub: [[RemoteTrackPublication]],
|
176
|
+
* status: [[TrackPublication.SubscriptionStatus]],
|
177
|
+
* participant: [[RemoteParticipant]])
|
178
|
+
*/
|
179
|
+
TrackSubscriptionPermissionChanged = "trackSubscriptionPermissionChanged",
|
159
180
|
/**
|
160
181
|
* LiveKit will attempt to autoplay all audio tracks when you attach them to
|
161
182
|
* audio elements. However, if that fails, we'll notify you via AudioPlaybackStatusChanged.
|
@@ -171,15 +192,7 @@ export declare enum RoomEvent {
|
|
171
192
|
*
|
172
193
|
* args: (error: Error)
|
173
194
|
*/
|
174
|
-
MediaDevicesError = "mediaDevicesError"
|
175
|
-
/**
|
176
|
-
* Connection quality was changed for a Participant. It'll receive updates
|
177
|
-
* from the local participant, as well as any [[RemoteParticipant]]s that we are
|
178
|
-
* subscribed to.
|
179
|
-
*
|
180
|
-
* args: (connectionQuality: [[ConnectionQuality]], participant: [[Participant]])
|
181
|
-
*/
|
182
|
-
ConnectionQualityChanged = "connectionQualityChanged"
|
195
|
+
MediaDevicesError = "mediaDevicesError"
|
183
196
|
}
|
184
197
|
export declare enum ParticipantEvent {
|
185
198
|
/**
|
@@ -193,8 +206,8 @@ export declare enum ParticipantEvent {
|
|
193
206
|
*/
|
194
207
|
TrackPublished = "trackPublished",
|
195
208
|
/**
|
196
|
-
*
|
197
|
-
* fire as long as new tracks are ready for use.
|
209
|
+
* Successfully subscribed to the [[RemoteParticipant]]'s track.
|
210
|
+
* This event will **always** fire as long as new tracks are ready for use.
|
198
211
|
*
|
199
212
|
* args: ([[RemoteTrack]], [[RemoteTrackPublication]])
|
200
213
|
*/
|
@@ -206,20 +219,16 @@ export declare enum ParticipantEvent {
|
|
206
219
|
*/
|
207
220
|
TrackSubscriptionFailed = "trackSubscriptionFailed",
|
208
221
|
/**
|
209
|
-
* A
|
210
|
-
* the local track from your UI.
|
211
|
-
*
|
212
|
-
* When a user stops sharing their screen by pressing "End" on the browser UI,
|
213
|
-
* this event will also fire.
|
222
|
+
* A [[RemoteParticipant]] has unpublished a track
|
214
223
|
*
|
215
|
-
* args: ([[
|
224
|
+
* args: ([[RemoteTrackPublication]])
|
216
225
|
*/
|
217
226
|
TrackUnpublished = "trackUnpublished",
|
218
227
|
/**
|
219
228
|
* A subscribed track is no longer available. Clients should listen to this
|
220
229
|
* event and ensure they detach tracks.
|
221
230
|
*
|
222
|
-
* args: ([[
|
231
|
+
* args: ([[RemoteTrack]], [[RemoteTrackPublication]])
|
223
232
|
*/
|
224
233
|
TrackUnsubscribed = "trackUnsubscribed",
|
225
234
|
/**
|
@@ -299,6 +308,16 @@ export declare enum ParticipantEvent {
|
|
299
308
|
* args: (pub: [[RemoteTrackPublication]], streamState: [[Track.StreamState]])
|
300
309
|
*/
|
301
310
|
TrackStreamStateChanged = "trackStreamStateChanged",
|
311
|
+
/**
|
312
|
+
* One of subscribed tracks have changed its permissions for the current
|
313
|
+
* participant. If permission was revoked, then the track will no longer
|
314
|
+
* be subscribed. If permission was granted, a TrackSubscribed event will
|
315
|
+
* be emitted.
|
316
|
+
*
|
317
|
+
* args: (pub: [[RemoteTrackPublication]],
|
318
|
+
* status: [[TrackPublication.SubscriptionStatus]])
|
319
|
+
*/
|
320
|
+
TrackSubscriptionPermissionChanged = "trackSubscriptionPermissionChanged",
|
302
321
|
/** @internal */
|
303
322
|
MediaDevicesError = "mediaDevicesError"
|
304
323
|
}
|
@@ -308,6 +327,7 @@ export declare enum EngineEvent {
|
|
308
327
|
Disconnected = "disconnected",
|
309
328
|
Reconnecting = "reconnecting",
|
310
329
|
Reconnected = "reconnected",
|
330
|
+
SignalConnected = "singalConnected",
|
311
331
|
MediaTrackAdded = "mediaTrackAdded",
|
312
332
|
ActiveSpeakersUpdate = "activeSpeakersUpdate",
|
313
333
|
DataPacketReceived = "dataPacketReceived"
|
package/dist/room/events.js
CHANGED
@@ -114,6 +114,8 @@ var RoomEvent;
|
|
114
114
|
* Active speakers changed. List of speakers are ordered by their audio level.
|
115
115
|
* loudest speakers first. This will include the LocalParticipant too.
|
116
116
|
*
|
117
|
+
* Speaker updates are sent only to the publishing participant and their subscribers.
|
118
|
+
*
|
117
119
|
* args: (Array<[[Participant]]>)
|
118
120
|
*/
|
119
121
|
RoomEvent["ActiveSpeakersChanged"] = "activeSpeakersChanged";
|
@@ -149,6 +151,14 @@ var RoomEvent;
|
|
149
151
|
* args: (payload: Uint8Array, participant: [[Participant]], kind: [[DataPacket_Kind]])
|
150
152
|
*/
|
151
153
|
RoomEvent["DataReceived"] = "dataReceived";
|
154
|
+
/**
|
155
|
+
* Connection quality was changed for a Participant. It'll receive updates
|
156
|
+
* from the local participant, as well as any [[RemoteParticipant]]s that we are
|
157
|
+
* subscribed to.
|
158
|
+
*
|
159
|
+
* args: (connectionQuality: [[ConnectionQuality]], participant: [[Participant]])
|
160
|
+
*/
|
161
|
+
RoomEvent["ConnectionQualityChanged"] = "connectionQualityChanged";
|
152
162
|
/**
|
153
163
|
* StreamState indicates if a subscribed track has been paused by the SFU
|
154
164
|
* (typically this happens because of subscriber's bandwidth constraints)
|
@@ -160,6 +170,17 @@ var RoomEvent;
|
|
160
170
|
* participant: [[RemoteParticipant]])
|
161
171
|
*/
|
162
172
|
RoomEvent["TrackStreamStateChanged"] = "trackStreamStateChanged";
|
173
|
+
/**
|
174
|
+
* One of subscribed tracks have changed its permissions for the current
|
175
|
+
* participant. If permission was revoked, then the track will no longer
|
176
|
+
* be subscribed. If permission was granted, a TrackSubscribed event will
|
177
|
+
* be emitted.
|
178
|
+
*
|
179
|
+
* args: (pub: [[RemoteTrackPublication]],
|
180
|
+
* status: [[TrackPublication.SubscriptionStatus]],
|
181
|
+
* participant: [[RemoteParticipant]])
|
182
|
+
*/
|
183
|
+
RoomEvent["TrackSubscriptionPermissionChanged"] = "trackSubscriptionPermissionChanged";
|
163
184
|
/**
|
164
185
|
* LiveKit will attempt to autoplay all audio tracks when you attach them to
|
165
186
|
* audio elements. However, if that fails, we'll notify you via AudioPlaybackStatusChanged.
|
@@ -176,14 +197,6 @@ var RoomEvent;
|
|
176
197
|
* args: (error: Error)
|
177
198
|
*/
|
178
199
|
RoomEvent["MediaDevicesError"] = "mediaDevicesError";
|
179
|
-
/**
|
180
|
-
* Connection quality was changed for a Participant. It'll receive updates
|
181
|
-
* from the local participant, as well as any [[RemoteParticipant]]s that we are
|
182
|
-
* subscribed to.
|
183
|
-
*
|
184
|
-
* args: (connectionQuality: [[ConnectionQuality]], participant: [[Participant]])
|
185
|
-
*/
|
186
|
-
RoomEvent["ConnectionQualityChanged"] = "connectionQualityChanged";
|
187
200
|
})(RoomEvent = exports.RoomEvent || (exports.RoomEvent = {}));
|
188
201
|
var ParticipantEvent;
|
189
202
|
(function (ParticipantEvent) {
|
@@ -198,8 +211,8 @@ var ParticipantEvent;
|
|
198
211
|
*/
|
199
212
|
ParticipantEvent["TrackPublished"] = "trackPublished";
|
200
213
|
/**
|
201
|
-
*
|
202
|
-
* fire as long as new tracks are ready for use.
|
214
|
+
* Successfully subscribed to the [[RemoteParticipant]]'s track.
|
215
|
+
* This event will **always** fire as long as new tracks are ready for use.
|
203
216
|
*
|
204
217
|
* args: ([[RemoteTrack]], [[RemoteTrackPublication]])
|
205
218
|
*/
|
@@ -211,20 +224,16 @@ var ParticipantEvent;
|
|
211
224
|
*/
|
212
225
|
ParticipantEvent["TrackSubscriptionFailed"] = "trackSubscriptionFailed";
|
213
226
|
/**
|
214
|
-
* A
|
215
|
-
* the local track from your UI.
|
216
|
-
*
|
217
|
-
* When a user stops sharing their screen by pressing "End" on the browser UI,
|
218
|
-
* this event will also fire.
|
227
|
+
* A [[RemoteParticipant]] has unpublished a track
|
219
228
|
*
|
220
|
-
* args: ([[
|
229
|
+
* args: ([[RemoteTrackPublication]])
|
221
230
|
*/
|
222
231
|
ParticipantEvent["TrackUnpublished"] = "trackUnpublished";
|
223
232
|
/**
|
224
233
|
* A subscribed track is no longer available. Clients should listen to this
|
225
234
|
* event and ensure they detach tracks.
|
226
235
|
*
|
227
|
-
* args: ([[
|
236
|
+
* args: ([[RemoteTrack]], [[RemoteTrackPublication]])
|
228
237
|
*/
|
229
238
|
ParticipantEvent["TrackUnsubscribed"] = "trackUnsubscribed";
|
230
239
|
/**
|
@@ -304,6 +313,16 @@ var ParticipantEvent;
|
|
304
313
|
* args: (pub: [[RemoteTrackPublication]], streamState: [[Track.StreamState]])
|
305
314
|
*/
|
306
315
|
ParticipantEvent["TrackStreamStateChanged"] = "trackStreamStateChanged";
|
316
|
+
/**
|
317
|
+
* One of subscribed tracks have changed its permissions for the current
|
318
|
+
* participant. If permission was revoked, then the track will no longer
|
319
|
+
* be subscribed. If permission was granted, a TrackSubscribed event will
|
320
|
+
* be emitted.
|
321
|
+
*
|
322
|
+
* args: (pub: [[RemoteTrackPublication]],
|
323
|
+
* status: [[TrackPublication.SubscriptionStatus]])
|
324
|
+
*/
|
325
|
+
ParticipantEvent["TrackSubscriptionPermissionChanged"] = "trackSubscriptionPermissionChanged";
|
307
326
|
// fired only on LocalParticipant
|
308
327
|
/** @internal */
|
309
328
|
ParticipantEvent["MediaDevicesError"] = "mediaDevicesError";
|
@@ -315,6 +334,7 @@ var EngineEvent;
|
|
315
334
|
EngineEvent["Disconnected"] = "disconnected";
|
316
335
|
EngineEvent["Reconnecting"] = "reconnecting";
|
317
336
|
EngineEvent["Reconnected"] = "reconnected";
|
337
|
+
EngineEvent["SignalConnected"] = "singalConnected";
|
318
338
|
EngineEvent["MediaTrackAdded"] = "mediaTrackAdded";
|
319
339
|
EngineEvent["ActiveSpeakersUpdate"] = "activeSpeakersUpdate";
|
320
340
|
EngineEvent["DataPacketReceived"] = "dataPacketReceived";
|
package/dist/room/events.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/room/events.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACH,IAAY,
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/room/events.ts"],"names":[],"mappings":"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"}
|
@@ -1,11 +1,13 @@
|
|
1
1
|
import { RoomOptions } from '../../options';
|
2
2
|
import { DataPacket_Kind } from '../../proto/livekit_models';
|
3
|
+
import { TrackPublishedResponse } from '../../proto/livekit_rtc';
|
3
4
|
import RTCEngine from '../RTCEngine';
|
4
5
|
import LocalTrack from '../track/LocalTrack';
|
5
6
|
import LocalTrackPublication from '../track/LocalTrackPublication';
|
6
7
|
import { CreateLocalTracksOptions, ScreenShareCaptureOptions, TrackPublishOptions } from '../track/options';
|
7
8
|
import { Track } from '../track/Track';
|
8
9
|
import Participant from './Participant';
|
10
|
+
import { ParticipantTrackPermission } from './ParticipantTrackPermission';
|
9
11
|
import RemoteParticipant from './RemoteParticipant';
|
10
12
|
export default class LocalParticipant extends Participant {
|
11
13
|
audioTracks: Map<string, LocalTrackPublication>;
|
@@ -82,12 +84,32 @@ export default class LocalParticipant extends Participant {
|
|
82
84
|
* @param destination the participants who will receive the message
|
83
85
|
*/
|
84
86
|
publishData(data: Uint8Array, kind: DataPacket_Kind, destination?: RemoteParticipant[] | string[]): Promise<void>;
|
87
|
+
/**
|
88
|
+
* Control who can subscribe to LocalParticipant's published tracks.
|
89
|
+
*
|
90
|
+
* By default, all participants can subscribe. This allows fine-grained control over
|
91
|
+
* who is able to subscribe at a participant and track level.
|
92
|
+
*
|
93
|
+
* Note: if access is given at a track-level (i.e. both [allParticipantsAllowed] and
|
94
|
+
* [ParticipantTrackPermission.allTracksAllowed] are false), any newer published tracks
|
95
|
+
* will not grant permissions to any participants and will require a subsequent
|
96
|
+
* permissions update to allow subscription.
|
97
|
+
*
|
98
|
+
* @param allParticipantsAllowed Allows all participants to subscribe all tracks.
|
99
|
+
* Takes precedence over [[participantTrackPermissions]] if set to true.
|
100
|
+
* By default this is set to true.
|
101
|
+
* @param participantTrackPermissions Full list of individual permissions per
|
102
|
+
* participant/track. Any omitted participants will not receive any permissions.
|
103
|
+
*/
|
104
|
+
setTrackSubscriptionPermissions(allParticipantsAllowed: boolean, participantTrackPermissions?: ParticipantTrackPermission[]): void;
|
85
105
|
/** @internal */
|
86
|
-
onTrackUnmuted
|
106
|
+
private onTrackUnmuted;
|
87
107
|
/** @internal */
|
88
|
-
onTrackMuted
|
108
|
+
private onTrackMuted;
|
89
109
|
private handleSubscribedQualityUpdate;
|
90
110
|
private onTrackUnpublish;
|
91
111
|
private getPublicationForTrack;
|
92
112
|
private setPreferredCodec;
|
113
|
+
/** @internal */
|
114
|
+
publishedTracksInfo(): TrackPublishedResponse[];
|
93
115
|
}
|
@@ -42,6 +42,7 @@ const options_1 = require("../track/options");
|
|
42
42
|
const Track_1 = require("../track/Track");
|
43
43
|
const utils_1 = require("../track/utils");
|
44
44
|
const Participant_1 = __importDefault(require("./Participant"));
|
45
|
+
const ParticipantTrackPermission_1 = require("./ParticipantTrackPermission");
|
45
46
|
const publishUtils_1 = require("./publishUtils");
|
46
47
|
const RemoteParticipant_1 = __importDefault(require("./RemoteParticipant"));
|
47
48
|
class LocalParticipant extends Participant_1.default {
|
@@ -432,27 +433,18 @@ class LocalParticipant extends Participant_1.default {
|
|
432
433
|
// look through all published tracks to find the right ones
|
433
434
|
const publication = this.getPublicationForTrack(track);
|
434
435
|
logger_1.default.debug('unpublishTrack', 'unpublishing track', track);
|
435
|
-
if (!publication) {
|
436
|
+
if (!publication || !publication.track) {
|
436
437
|
logger_1.default.warn('unpublishTrack', 'track was not unpublished because no publication was found', track);
|
437
438
|
return null;
|
438
439
|
}
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
440
|
+
track = publication.track;
|
441
|
+
track.off(events_1.TrackEvent.Muted, this.onTrackMuted);
|
442
|
+
track.off(events_1.TrackEvent.Unmuted, this.onTrackUnmuted);
|
443
|
+
track.off(events_1.TrackEvent.Ended, this.onTrackUnpublish);
|
443
444
|
if ((_b = (_a = this.roomOptions) === null || _a === void 0 ? void 0 : _a.stopLocalTrackOnUnpublish) !== null && _b !== void 0 ? _b : true) {
|
444
445
|
track.stop();
|
445
446
|
}
|
446
|
-
|
447
|
-
if (track instanceof MediaStreamTrack) {
|
448
|
-
mediaStreamTrack = track;
|
449
|
-
}
|
450
|
-
else {
|
451
|
-
mediaStreamTrack = track.mediaStreamTrack;
|
452
|
-
track.off(events_1.TrackEvent.Muted, this.onTrackMuted);
|
453
|
-
track.off(events_1.TrackEvent.Unmuted, this.onTrackUnmuted);
|
454
|
-
track.off(events_1.TrackEvent.Ended, this.onTrackUnpublish);
|
455
|
-
}
|
447
|
+
const { mediaStreamTrack } = track;
|
456
448
|
if (this.engine.publisher) {
|
457
449
|
const senders = this.engine.publisher.pc.getSenders();
|
458
450
|
senders.forEach((sender) => {
|
@@ -480,6 +472,7 @@ class LocalParticipant extends Participant_1.default {
|
|
480
472
|
default:
|
481
473
|
break;
|
482
474
|
}
|
475
|
+
publication.setTrack(undefined);
|
483
476
|
this.emit(events_1.ParticipantEvent.LocalTrackUnpublished, publication);
|
484
477
|
return publication;
|
485
478
|
}
|
@@ -531,6 +524,26 @@ class LocalParticipant extends Participant_1.default {
|
|
531
524
|
yield this.engine.sendDataPacket(packet, kind);
|
532
525
|
});
|
533
526
|
}
|
527
|
+
/**
|
528
|
+
* Control who can subscribe to LocalParticipant's published tracks.
|
529
|
+
*
|
530
|
+
* By default, all participants can subscribe. This allows fine-grained control over
|
531
|
+
* who is able to subscribe at a participant and track level.
|
532
|
+
*
|
533
|
+
* Note: if access is given at a track-level (i.e. both [allParticipantsAllowed] and
|
534
|
+
* [ParticipantTrackPermission.allTracksAllowed] are false), any newer published tracks
|
535
|
+
* will not grant permissions to any participants and will require a subsequent
|
536
|
+
* permissions update to allow subscription.
|
537
|
+
*
|
538
|
+
* @param allParticipantsAllowed Allows all participants to subscribe all tracks.
|
539
|
+
* Takes precedence over [[participantTrackPermissions]] if set to true.
|
540
|
+
* By default this is set to true.
|
541
|
+
* @param participantTrackPermissions Full list of individual permissions per
|
542
|
+
* participant/track. Any omitted participants will not receive any permissions.
|
543
|
+
*/
|
544
|
+
setTrackSubscriptionPermissions(allParticipantsAllowed, participantTrackPermissions = []) {
|
545
|
+
this.engine.client.sendUpdateSubscriptionPermissions(allParticipantsAllowed, participantTrackPermissions.map((p) => ParticipantTrackPermission_1.trackPermissionToProto(p)));
|
546
|
+
}
|
534
547
|
getPublicationForTrack(track) {
|
535
548
|
let publication;
|
536
549
|
this.tracks.forEach((pub) => {
|
@@ -575,6 +588,19 @@ class LocalParticipant extends Participant_1.default {
|
|
575
588
|
transceiver.setCodecPreferences([selected]);
|
576
589
|
}
|
577
590
|
}
|
591
|
+
/** @internal */
|
592
|
+
publishedTracksInfo() {
|
593
|
+
const infos = [];
|
594
|
+
this.tracks.forEach((track) => {
|
595
|
+
if (track.track !== undefined) {
|
596
|
+
infos.push({
|
597
|
+
cid: track.track.mediaStreamTrack.id,
|
598
|
+
track: track.trackInfo,
|
599
|
+
});
|
600
|
+
}
|
601
|
+
});
|
602
|
+
return infos;
|
603
|
+
}
|
578
604
|
}
|
579
605
|
exports.default = LocalParticipant;
|
580
606
|
//# sourceMappingURL=LocalParticipant.js.map
|