livekit-client 0.17.3 → 0.17.6-rc1
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/CHANGELOG.md +1 -1
- package/README.md +26 -20
- package/dist/api/SignalClient.d.ts +1 -0
- package/dist/connect.d.ts +2 -0
- package/dist/index.d.ts +2 -2
- package/dist/livekit-client.esm.js +17344 -0
- package/dist/livekit-client.esm.js.map +1 -0
- package/dist/livekit-client.umd.js +17388 -0
- package/dist/livekit-client.umd.js.map +1 -0
- package/dist/logger.d.ts +22 -11
- package/dist/options.d.ts +4 -2
- package/dist/proto/google/protobuf/timestamp.d.ts +12 -2
- package/dist/proto/livekit_models.d.ts +524 -17
- package/dist/proto/livekit_rtc.d.ts +3449 -31
- package/dist/room/DeviceManager.d.ts +1 -1
- package/dist/room/RTCEngine.d.ts +1 -1
- package/dist/room/Room.d.ts +2 -2
- package/dist/room/events.d.ts +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +9 -5
- package/dist/room/participant/RemoteParticipant.d.ts +9 -0
- package/dist/room/track/RemoteAudioTrack.d.ts +11 -0
- package/dist/room/track/options.d.ts +1 -1
- package/dist/test/mocks.d.ts +11 -0
- package/dist/version.d.ts +1 -1
- package/package.json +41 -16
- package/.eslintrc.js +0 -17
- package/.gitmodules +0 -3
- package/dist/api/RequestQueue.js +0 -61
- package/dist/api/RequestQueue.js.map +0 -1
- package/dist/api/SignalClient.js +0 -428
- package/dist/api/SignalClient.js.map +0 -1
- package/dist/connect.js +0 -130
- package/dist/connect.js.map +0 -1
- package/dist/index.js +0 -71
- package/dist/index.js.map +0 -1
- package/dist/logger.js +0 -24
- package/dist/logger.js.map +0 -1
- package/dist/options.js +0 -3
- package/dist/options.js.map +0 -1
- package/dist/proto/google/protobuf/timestamp.js +0 -93
- package/dist/proto/google/protobuf/timestamp.js.map +0 -1
- package/dist/proto/livekit_models.js +0 -2688
- package/dist/proto/livekit_models.js.map +0 -1
- package/dist/proto/livekit_rtc.js +0 -2995
- package/dist/proto/livekit_rtc.js.map +0 -1
- package/dist/room/DeviceManager.js +0 -62
- package/dist/room/DeviceManager.js.map +0 -1
- package/dist/room/PCTransport.js +0 -91
- package/dist/room/PCTransport.js.map +0 -1
- package/dist/room/RTCEngine.js +0 -562
- package/dist/room/RTCEngine.js.map +0 -1
- package/dist/room/Room.js +0 -759
- package/dist/room/Room.js.map +0 -1
- package/dist/room/errors.js +0 -68
- package/dist/room/errors.js.map +0 -1
- package/dist/room/events.js +0 -385
- package/dist/room/events.js.map +0 -1
- package/dist/room/participant/LocalParticipant.js +0 -647
- package/dist/room/participant/LocalParticipant.js.map +0 -1
- package/dist/room/participant/Participant.js +0 -189
- package/dist/room/participant/Participant.js.map +0 -1
- package/dist/room/participant/ParticipantTrackPermission.js +0 -16
- package/dist/room/participant/ParticipantTrackPermission.js.map +0 -1
- package/dist/room/participant/RemoteParticipant.js +0 -194
- package/dist/room/participant/RemoteParticipant.js.map +0 -1
- package/dist/room/participant/publishUtils.js +0 -189
- package/dist/room/participant/publishUtils.js.map +0 -1
- package/dist/room/participant/publishUtils.test.d.ts +0 -1
- package/dist/room/participant/publishUtils.test.js +0 -118
- package/dist/room/participant/publishUtils.test.js.map +0 -1
- package/dist/room/stats.js +0 -26
- package/dist/room/stats.js.map +0 -1
- package/dist/room/track/LocalAudioTrack.js +0 -153
- package/dist/room/track/LocalAudioTrack.js.map +0 -1
- package/dist/room/track/LocalTrack.js +0 -158
- package/dist/room/track/LocalTrack.js.map +0 -1
- package/dist/room/track/LocalTrackPublication.js +0 -64
- package/dist/room/track/LocalTrackPublication.js.map +0 -1
- package/dist/room/track/LocalVideoTrack.js +0 -297
- package/dist/room/track/LocalVideoTrack.js.map +0 -1
- package/dist/room/track/LocalVideoTrack.test.d.ts +0 -1
- package/dist/room/track/LocalVideoTrack.test.js +0 -68
- package/dist/room/track/LocalVideoTrack.test.js.map +0 -1
- package/dist/room/track/RemoteAudioTrack.js +0 -64
- package/dist/room/track/RemoteAudioTrack.js.map +0 -1
- package/dist/room/track/RemoteTrack.js +0 -49
- package/dist/room/track/RemoteTrack.js.map +0 -1
- package/dist/room/track/RemoteTrackPublication.js +0 -178
- package/dist/room/track/RemoteTrackPublication.js.map +0 -1
- package/dist/room/track/RemoteVideoTrack.js +0 -201
- package/dist/room/track/RemoteVideoTrack.js.map +0 -1
- package/dist/room/track/Track.js +0 -276
- package/dist/room/track/Track.js.map +0 -1
- package/dist/room/track/TrackPublication.js +0 -92
- package/dist/room/track/TrackPublication.js.map +0 -1
- package/dist/room/track/create.js +0 -131
- package/dist/room/track/create.js.map +0 -1
- package/dist/room/track/defaults.js +0 -21
- package/dist/room/track/defaults.js.map +0 -1
- package/dist/room/track/options.js +0 -100
- package/dist/room/track/options.js.map +0 -1
- package/dist/room/track/types.js +0 -3
- package/dist/room/track/types.js.map +0 -1
- package/dist/room/track/utils.js +0 -113
- package/dist/room/track/utils.js.map +0 -1
- package/dist/room/track/utils.test.d.ts +0 -1
- package/dist/room/track/utils.test.js +0 -85
- package/dist/room/track/utils.test.js.map +0 -1
- package/dist/room/utils.js +0 -79
- package/dist/room/utils.js.map +0 -1
- package/dist/version.js +0 -6
- package/dist/version.js.map +0 -1
- package/jest.config.js +0 -6
- package/src/api/RequestQueue.ts +0 -53
- package/src/api/SignalClient.ts +0 -499
- package/src/connect.ts +0 -100
- package/src/index.ts +0 -47
- package/src/logger.ts +0 -22
- package/src/options.ts +0 -149
- package/src/proto/google/protobuf/timestamp.ts +0 -222
- package/src/proto/livekit_models.ts +0 -3019
- package/src/proto/livekit_rtc.ts +0 -3677
- package/src/room/DeviceManager.ts +0 -57
- package/src/room/PCTransport.ts +0 -86
- package/src/room/RTCEngine.ts +0 -652
- package/src/room/Room.ts +0 -943
- package/src/room/errors.ts +0 -65
- package/src/room/events.ts +0 -424
- package/src/room/participant/LocalParticipant.ts +0 -734
- package/src/room/participant/Participant.ts +0 -269
- package/src/room/participant/ParticipantTrackPermission.ts +0 -32
- package/src/room/participant/RemoteParticipant.ts +0 -243
- package/src/room/participant/publishUtils.test.ts +0 -145
- package/src/room/participant/publishUtils.ts +0 -225
- package/src/room/stats.ts +0 -130
- package/src/room/track/LocalAudioTrack.ts +0 -137
- package/src/room/track/LocalTrack.ts +0 -161
- package/src/room/track/LocalTrackPublication.ts +0 -66
- package/src/room/track/LocalVideoTrack.test.ts +0 -70
- package/src/room/track/LocalVideoTrack.ts +0 -293
- package/src/room/track/RemoteAudioTrack.ts +0 -58
- package/src/room/track/RemoteTrack.ts +0 -62
- package/src/room/track/RemoteTrackPublication.ts +0 -198
- package/src/room/track/RemoteVideoTrack.ts +0 -235
- package/src/room/track/Track.ts +0 -337
- package/src/room/track/TrackPublication.ts +0 -120
- package/src/room/track/create.ts +0 -121
- package/src/room/track/defaults.ts +0 -23
- package/src/room/track/options.ts +0 -281
- package/src/room/track/types.ts +0 -20
- package/src/room/track/utils.test.ts +0 -93
- package/src/room/track/utils.ts +0 -115
- package/src/room/utils.ts +0 -70
- package/src/version.ts +0 -2
- package/tsconfig.eslint.json +0 -11
@@ -1,189 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.ConnectionQuality = void 0;
|
4
|
-
const events_1 = require("events");
|
5
|
-
const livekit_models_1 = require("../../proto/livekit_models");
|
6
|
-
const events_2 = require("../events");
|
7
|
-
const Track_1 = require("../track/Track");
|
8
|
-
var ConnectionQuality;
|
9
|
-
(function (ConnectionQuality) {
|
10
|
-
ConnectionQuality["Excellent"] = "excellent";
|
11
|
-
ConnectionQuality["Good"] = "good";
|
12
|
-
ConnectionQuality["Poor"] = "poor";
|
13
|
-
ConnectionQuality["Unknown"] = "unknown";
|
14
|
-
})(ConnectionQuality = exports.ConnectionQuality || (exports.ConnectionQuality = {}));
|
15
|
-
function qualityFromProto(q) {
|
16
|
-
switch (q) {
|
17
|
-
case livekit_models_1.ConnectionQuality.EXCELLENT:
|
18
|
-
return ConnectionQuality.Excellent;
|
19
|
-
case livekit_models_1.ConnectionQuality.GOOD:
|
20
|
-
return ConnectionQuality.Good;
|
21
|
-
case livekit_models_1.ConnectionQuality.POOR:
|
22
|
-
return ConnectionQuality.Poor;
|
23
|
-
default:
|
24
|
-
return ConnectionQuality.Unknown;
|
25
|
-
}
|
26
|
-
}
|
27
|
-
class Participant extends events_1.EventEmitter {
|
28
|
-
/** @internal */
|
29
|
-
constructor(sid, identity) {
|
30
|
-
super();
|
31
|
-
/** audio level between 0-1.0, 1 being loudest, 0 being softest */
|
32
|
-
this.audioLevel = 0;
|
33
|
-
/** if participant is currently speaking */
|
34
|
-
this.isSpeaking = false;
|
35
|
-
this._connectionQuality = ConnectionQuality.Unknown;
|
36
|
-
this.sid = sid;
|
37
|
-
this.identity = identity;
|
38
|
-
this.audioTracks = new Map();
|
39
|
-
this.videoTracks = new Map();
|
40
|
-
this.tracks = new Map();
|
41
|
-
}
|
42
|
-
getTracks() {
|
43
|
-
return Array.from(this.tracks.values());
|
44
|
-
}
|
45
|
-
/**
|
46
|
-
* Finds the first track that matches the source filter, for example, getting
|
47
|
-
* the user's camera track with getTrackBySource(Track.Source.Camera).
|
48
|
-
* @param source
|
49
|
-
* @returns
|
50
|
-
*/
|
51
|
-
getTrack(source) {
|
52
|
-
if (source === Track_1.Track.Source.Unknown) {
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
for (const [, pub] of this.tracks) {
|
56
|
-
if (pub.source === source) {
|
57
|
-
return pub;
|
58
|
-
}
|
59
|
-
if (pub.source === Track_1.Track.Source.Unknown) {
|
60
|
-
if (source === Track_1.Track.Source.Microphone && pub.kind === Track_1.Track.Kind.Audio && pub.trackName !== 'screen') {
|
61
|
-
return pub;
|
62
|
-
}
|
63
|
-
if (source === Track_1.Track.Source.Camera && pub.kind === Track_1.Track.Kind.Video && pub.trackName !== 'screen') {
|
64
|
-
return pub;
|
65
|
-
}
|
66
|
-
if (source === Track_1.Track.Source.ScreenShare && pub.kind === Track_1.Track.Kind.Video && pub.trackName === 'screen') {
|
67
|
-
return pub;
|
68
|
-
}
|
69
|
-
if (source === Track_1.Track.Source.ScreenShareAudio && pub.kind === Track_1.Track.Kind.Audio && pub.trackName === 'screen') {
|
70
|
-
return pub;
|
71
|
-
}
|
72
|
-
}
|
73
|
-
}
|
74
|
-
}
|
75
|
-
/**
|
76
|
-
* Finds the first track that matches the track's name.
|
77
|
-
* @param name
|
78
|
-
* @returns
|
79
|
-
*/
|
80
|
-
getTrackByName(name) {
|
81
|
-
for (const [, pub] of this.tracks) {
|
82
|
-
if (pub.trackName === name) {
|
83
|
-
return pub;
|
84
|
-
}
|
85
|
-
}
|
86
|
-
}
|
87
|
-
get connectionQuality() {
|
88
|
-
return this._connectionQuality;
|
89
|
-
}
|
90
|
-
get isCameraEnabled() {
|
91
|
-
var _a;
|
92
|
-
const track = this.getTrack(Track_1.Track.Source.Camera);
|
93
|
-
return !((_a = track === null || track === void 0 ? void 0 : track.isMuted) !== null && _a !== void 0 ? _a : true);
|
94
|
-
}
|
95
|
-
get isMicrophoneEnabled() {
|
96
|
-
var _a;
|
97
|
-
const track = this.getTrack(Track_1.Track.Source.Microphone);
|
98
|
-
return !((_a = track === null || track === void 0 ? void 0 : track.isMuted) !== null && _a !== void 0 ? _a : true);
|
99
|
-
}
|
100
|
-
get isScreenShareEnabled() {
|
101
|
-
const track = this.getTrack(Track_1.Track.Source.ScreenShare);
|
102
|
-
return !!track;
|
103
|
-
}
|
104
|
-
/** when participant joined the room */
|
105
|
-
get joinedAt() {
|
106
|
-
if (this.participantInfo) {
|
107
|
-
return new Date(this.participantInfo.joinedAt * 1000);
|
108
|
-
}
|
109
|
-
return new Date();
|
110
|
-
}
|
111
|
-
/** @internal */
|
112
|
-
updateInfo(info) {
|
113
|
-
this.identity = info.identity;
|
114
|
-
this.sid = info.sid;
|
115
|
-
this.name = info.name;
|
116
|
-
this.setMetadata(info.metadata);
|
117
|
-
if (info.permission) {
|
118
|
-
this.setPermissions(info.permission);
|
119
|
-
}
|
120
|
-
// set this last so setMetadata can detect changes
|
121
|
-
this.participantInfo = info;
|
122
|
-
}
|
123
|
-
/** @internal */
|
124
|
-
setMetadata(md) {
|
125
|
-
const changed = this.metadata !== md;
|
126
|
-
const prevMetadata = this.metadata;
|
127
|
-
this.metadata = md;
|
128
|
-
if (changed) {
|
129
|
-
this.emit(events_2.ParticipantEvent.MetadataChanged, prevMetadata);
|
130
|
-
this.emit(events_2.ParticipantEvent.ParticipantMetadataChanged, prevMetadata);
|
131
|
-
}
|
132
|
-
}
|
133
|
-
/** @internal */
|
134
|
-
setPermissions(permissions) {
|
135
|
-
var _a, _b, _c, _d, _e;
|
136
|
-
const changed = permissions.canPublish !== ((_a = this.permissions) === null || _a === void 0 ? void 0 : _a.canPublish)
|
137
|
-
|| permissions.canSubscribe !== ((_b = this.permissions) === null || _b === void 0 ? void 0 : _b.canSubscribe)
|
138
|
-
|| permissions.canPublishData !== ((_c = this.permissions) === null || _c === void 0 ? void 0 : _c.canPublishData)
|
139
|
-
|| permissions.hidden !== ((_d = this.permissions) === null || _d === void 0 ? void 0 : _d.hidden)
|
140
|
-
|| permissions.recorder !== ((_e = this.permissions) === null || _e === void 0 ? void 0 : _e.recorder);
|
141
|
-
this.permissions = permissions;
|
142
|
-
return changed;
|
143
|
-
}
|
144
|
-
/** @internal */
|
145
|
-
setIsSpeaking(speaking) {
|
146
|
-
if (speaking === this.isSpeaking) {
|
147
|
-
return;
|
148
|
-
}
|
149
|
-
this.isSpeaking = speaking;
|
150
|
-
if (speaking) {
|
151
|
-
this.lastSpokeAt = new Date();
|
152
|
-
}
|
153
|
-
this.emit(events_2.ParticipantEvent.IsSpeakingChanged, speaking);
|
154
|
-
}
|
155
|
-
/** @internal */
|
156
|
-
setConnectionQuality(q) {
|
157
|
-
const prevQuality = this._connectionQuality;
|
158
|
-
this._connectionQuality = qualityFromProto(q);
|
159
|
-
if (prevQuality !== this._connectionQuality) {
|
160
|
-
this.emit(events_2.ParticipantEvent.ConnectionQualityChanged, this._connectionQuality);
|
161
|
-
}
|
162
|
-
}
|
163
|
-
addTrackPublication(publication) {
|
164
|
-
// forward publication driven events
|
165
|
-
publication.on(events_2.TrackEvent.Muted, () => {
|
166
|
-
this.emit(events_2.ParticipantEvent.TrackMuted, publication);
|
167
|
-
});
|
168
|
-
publication.on(events_2.TrackEvent.Unmuted, () => {
|
169
|
-
this.emit(events_2.ParticipantEvent.TrackUnmuted, publication);
|
170
|
-
});
|
171
|
-
const pub = publication;
|
172
|
-
if (pub.track) {
|
173
|
-
pub.track.sid = publication.trackSid;
|
174
|
-
}
|
175
|
-
this.tracks.set(publication.trackSid, publication);
|
176
|
-
switch (publication.kind) {
|
177
|
-
case Track_1.Track.Kind.Audio:
|
178
|
-
this.audioTracks.set(publication.trackSid, publication);
|
179
|
-
break;
|
180
|
-
case Track_1.Track.Kind.Video:
|
181
|
-
this.videoTracks.set(publication.trackSid, publication);
|
182
|
-
break;
|
183
|
-
default:
|
184
|
-
break;
|
185
|
-
}
|
186
|
-
}
|
187
|
-
}
|
188
|
-
exports.default = Participant;
|
189
|
-
//# sourceMappingURL=Participant.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Participant.js","sourceRoot":"","sources":["../../../src/room/participant/Participant.ts"],"names":[],"mappings":"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"}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.trackPermissionToProto = void 0;
|
4
|
-
function trackPermissionToProto(perms) {
|
5
|
-
var _a;
|
6
|
-
if (!perms.participantSid) {
|
7
|
-
throw new Error('Invalid track permission, missing participantSid');
|
8
|
-
}
|
9
|
-
return {
|
10
|
-
participantSid: perms.participantSid,
|
11
|
-
allTracks: (_a = perms.allowAll) !== null && _a !== void 0 ? _a : false,
|
12
|
-
trackSids: perms.allowedTrackSids || [],
|
13
|
-
};
|
14
|
-
}
|
15
|
-
exports.trackPermissionToProto = trackPermissionToProto;
|
16
|
-
//# sourceMappingURL=ParticipantTrackPermission.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ParticipantTrackPermission.js","sourceRoot":"","sources":["../../../src/room/participant/ParticipantTrackPermission.ts"],"names":[],"mappings":";;;AAsBA,SAAgB,sBAAsB,CAAC,KAAiC;;IACtE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;KACrE;IACD,OAAO;QACL,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,SAAS,EAAE,MAAA,KAAK,CAAC,QAAQ,mCAAI,KAAK;QAClC,SAAS,EAAE,KAAK,CAAC,gBAAgB,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AATD,wDASC"}
|
@@ -1,194 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const logger_1 = __importDefault(require("../../logger"));
|
7
|
-
const events_1 = require("../events");
|
8
|
-
const RemoteAudioTrack_1 = __importDefault(require("../track/RemoteAudioTrack"));
|
9
|
-
const RemoteTrackPublication_1 = __importDefault(require("../track/RemoteTrackPublication"));
|
10
|
-
const RemoteVideoTrack_1 = __importDefault(require("../track/RemoteVideoTrack"));
|
11
|
-
const Track_1 = require("../track/Track");
|
12
|
-
const Participant_1 = __importDefault(require("./Participant"));
|
13
|
-
class RemoteParticipant extends Participant_1.default {
|
14
|
-
/** @internal */
|
15
|
-
constructor(signalClient, id, name) {
|
16
|
-
super(id, name || '');
|
17
|
-
this.signalClient = signalClient;
|
18
|
-
this.tracks = new Map();
|
19
|
-
this.audioTracks = new Map();
|
20
|
-
this.videoTracks = new Map();
|
21
|
-
}
|
22
|
-
/** @internal */
|
23
|
-
static fromParticipantInfo(signalClient, pi) {
|
24
|
-
const rp = new RemoteParticipant(signalClient, pi.sid, pi.identity);
|
25
|
-
rp.updateInfo(pi);
|
26
|
-
return rp;
|
27
|
-
}
|
28
|
-
addTrackPublication(publication) {
|
29
|
-
super.addTrackPublication(publication);
|
30
|
-
// register action events
|
31
|
-
publication.on(events_1.TrackEvent.UpdateSettings, (settings) => {
|
32
|
-
this.signalClient.sendUpdateTrackSettings(settings);
|
33
|
-
});
|
34
|
-
publication.on(events_1.TrackEvent.UpdateSubscription, (sub) => {
|
35
|
-
sub.participantTracks.forEach((pt) => {
|
36
|
-
pt.participantSid = this.sid;
|
37
|
-
});
|
38
|
-
this.signalClient.sendUpdateSubscription(sub);
|
39
|
-
});
|
40
|
-
publication.on(events_1.TrackEvent.Ended, (track) => {
|
41
|
-
this.emit(events_1.ParticipantEvent.TrackUnsubscribed, track, publication);
|
42
|
-
});
|
43
|
-
}
|
44
|
-
getTrack(source) {
|
45
|
-
const track = super.getTrack(source);
|
46
|
-
if (track) {
|
47
|
-
return track;
|
48
|
-
}
|
49
|
-
}
|
50
|
-
getTrackByName(name) {
|
51
|
-
const track = super.getTrackByName(name);
|
52
|
-
if (track) {
|
53
|
-
return track;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
/** @internal */
|
57
|
-
addSubscribedMediaTrack(mediaTrack, sid, mediaStream, receiver, adaptiveStreamSettings, triesLeft) {
|
58
|
-
// find the track publication
|
59
|
-
// it's possible for the media track to arrive before participant info
|
60
|
-
let publication = this.getTrackPublication(sid);
|
61
|
-
// it's also possible that the browser didn't honor our original track id
|
62
|
-
// FireFox would use its own local uuid instead of server track id
|
63
|
-
if (!publication) {
|
64
|
-
if (!sid.startsWith('TR')) {
|
65
|
-
// find the first track that matches type
|
66
|
-
this.tracks.forEach((p) => {
|
67
|
-
if (!publication && mediaTrack.kind === p.kind.toString()) {
|
68
|
-
publication = p;
|
69
|
-
}
|
70
|
-
});
|
71
|
-
}
|
72
|
-
}
|
73
|
-
// when we couldn't locate the track, it's possible that the metadata hasn't
|
74
|
-
// yet arrived. Wait a bit longer for it to arrive, or fire an error
|
75
|
-
if (!publication) {
|
76
|
-
if (triesLeft === 0) {
|
77
|
-
logger_1.default.error('could not find published track', this.sid, sid);
|
78
|
-
this.emit(events_1.ParticipantEvent.TrackSubscriptionFailed, sid);
|
79
|
-
return;
|
80
|
-
}
|
81
|
-
if (triesLeft === undefined)
|
82
|
-
triesLeft = 20;
|
83
|
-
setTimeout(() => {
|
84
|
-
this.addSubscribedMediaTrack(mediaTrack, sid, mediaStream, receiver, adaptiveStreamSettings, triesLeft - 1);
|
85
|
-
}, 150);
|
86
|
-
return;
|
87
|
-
}
|
88
|
-
const isVideo = mediaTrack.kind === 'video';
|
89
|
-
let track;
|
90
|
-
if (isVideo) {
|
91
|
-
track = new RemoteVideoTrack_1.default(mediaTrack, sid, receiver, adaptiveStreamSettings);
|
92
|
-
}
|
93
|
-
else {
|
94
|
-
track = new RemoteAudioTrack_1.default(mediaTrack, sid, receiver);
|
95
|
-
}
|
96
|
-
// set track info
|
97
|
-
track.source = publication.source;
|
98
|
-
// keep publication's muted status
|
99
|
-
track.isMuted = publication.isMuted;
|
100
|
-
track.setMediaStream(mediaStream);
|
101
|
-
track.start();
|
102
|
-
publication.setTrack(track);
|
103
|
-
this.emit(events_1.ParticipantEvent.TrackSubscribed, track, publication);
|
104
|
-
return publication;
|
105
|
-
}
|
106
|
-
/** @internal */
|
107
|
-
get hasMetadata() {
|
108
|
-
return !!this.participantInfo;
|
109
|
-
}
|
110
|
-
getTrackPublication(sid) {
|
111
|
-
return this.tracks.get(sid);
|
112
|
-
}
|
113
|
-
/** @internal */
|
114
|
-
updateInfo(info) {
|
115
|
-
const alreadyHasMetadata = this.hasMetadata;
|
116
|
-
super.updateInfo(info);
|
117
|
-
// we are getting a list of all available tracks, reconcile in here
|
118
|
-
// and send out events for changes
|
119
|
-
// reconcile track publications, publish events only if metadata is already there
|
120
|
-
// i.e. changes since the local participant has joined
|
121
|
-
const validTracks = new Map();
|
122
|
-
const newTracks = new Map();
|
123
|
-
info.tracks.forEach((ti) => {
|
124
|
-
let publication = this.getTrackPublication(ti.sid);
|
125
|
-
if (!publication) {
|
126
|
-
// new publication
|
127
|
-
const kind = Track_1.Track.kindFromProto(ti.type);
|
128
|
-
if (!kind) {
|
129
|
-
return;
|
130
|
-
}
|
131
|
-
publication = new RemoteTrackPublication_1.default(kind, ti.sid, ti.name);
|
132
|
-
publication.updateInfo(ti);
|
133
|
-
newTracks.set(ti.sid, publication);
|
134
|
-
this.addTrackPublication(publication);
|
135
|
-
}
|
136
|
-
else {
|
137
|
-
publication.updateInfo(ti);
|
138
|
-
}
|
139
|
-
validTracks.set(ti.sid, publication);
|
140
|
-
});
|
141
|
-
// send new tracks
|
142
|
-
if (alreadyHasMetadata) {
|
143
|
-
newTracks.forEach((publication) => {
|
144
|
-
this.emit(events_1.ParticipantEvent.TrackPublished, publication);
|
145
|
-
});
|
146
|
-
}
|
147
|
-
// detect removed tracks
|
148
|
-
this.tracks.forEach((publication) => {
|
149
|
-
if (!validTracks.has(publication.trackSid)) {
|
150
|
-
this.unpublishTrack(publication.trackSid, true);
|
151
|
-
}
|
152
|
-
});
|
153
|
-
}
|
154
|
-
/** @internal */
|
155
|
-
unpublishTrack(sid, sendUnpublish) {
|
156
|
-
const publication = this.tracks.get(sid);
|
157
|
-
if (!publication) {
|
158
|
-
return;
|
159
|
-
}
|
160
|
-
this.tracks.delete(sid);
|
161
|
-
// remove from the right type map
|
162
|
-
switch (publication.kind) {
|
163
|
-
case Track_1.Track.Kind.Audio:
|
164
|
-
this.audioTracks.delete(sid);
|
165
|
-
break;
|
166
|
-
case Track_1.Track.Kind.Video:
|
167
|
-
this.videoTracks.delete(sid);
|
168
|
-
break;
|
169
|
-
default:
|
170
|
-
break;
|
171
|
-
}
|
172
|
-
// also send unsubscribe, if track is actively subscribed
|
173
|
-
const { track } = publication;
|
174
|
-
if (track) {
|
175
|
-
const { isSubscribed } = publication;
|
176
|
-
track.stop();
|
177
|
-
publication.setTrack(undefined);
|
178
|
-
// always send unsubscribed, since apps may rely on this
|
179
|
-
if (isSubscribed) {
|
180
|
-
this.emit(events_1.ParticipantEvent.TrackUnsubscribed, track, publication);
|
181
|
-
}
|
182
|
-
}
|
183
|
-
if (sendUnpublish) {
|
184
|
-
this.emit(events_1.ParticipantEvent.TrackUnpublished, publication);
|
185
|
-
}
|
186
|
-
}
|
187
|
-
/** @internal */
|
188
|
-
emit(event, ...args) {
|
189
|
-
logger_1.default.trace('participant event', this.sid, event, ...args);
|
190
|
-
return super.emit(event, ...args);
|
191
|
-
}
|
192
|
-
}
|
193
|
-
exports.default = RemoteParticipant;
|
194
|
-
//# sourceMappingURL=RemoteParticipant.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"RemoteParticipant.js","sourceRoot":"","sources":["../../../src/room/participant/RemoteParticipant.ts"],"names":[],"mappings":"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"}
|
@@ -1,189 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.sortPresets = exports.defaultSimulcastLayers = exports.presetsForResolution = exports.determineAppropriateEncoding = exports.computeVideoEncodings = exports.computeDefaultScreenShareSimulcastPresets = exports.defaultSimulcastPresets43 = exports.defaultSimulcastPresets169 = exports.presetsScreenShare = exports.presets43 = exports.presets169 = exports.mediaTrackToLocalTrack = void 0;
|
7
|
-
const logger_1 = __importDefault(require("../../logger"));
|
8
|
-
const errors_1 = require("../errors");
|
9
|
-
const LocalAudioTrack_1 = __importDefault(require("../track/LocalAudioTrack"));
|
10
|
-
const LocalVideoTrack_1 = __importDefault(require("../track/LocalVideoTrack"));
|
11
|
-
const options_1 = require("../track/options");
|
12
|
-
/** @internal */
|
13
|
-
function mediaTrackToLocalTrack(mediaStreamTrack, constraints) {
|
14
|
-
switch (mediaStreamTrack.kind) {
|
15
|
-
case 'audio':
|
16
|
-
return new LocalAudioTrack_1.default(mediaStreamTrack, constraints);
|
17
|
-
case 'video':
|
18
|
-
return new LocalVideoTrack_1.default(mediaStreamTrack, constraints);
|
19
|
-
default:
|
20
|
-
throw new errors_1.TrackInvalidError(`unsupported track type: ${mediaStreamTrack.kind}`);
|
21
|
-
}
|
22
|
-
}
|
23
|
-
exports.mediaTrackToLocalTrack = mediaTrackToLocalTrack;
|
24
|
-
/* @internal */
|
25
|
-
exports.presets169 = Object.values(options_1.VideoPresets);
|
26
|
-
/* @internal */
|
27
|
-
exports.presets43 = Object.values(options_1.VideoPresets43);
|
28
|
-
/* @internal */
|
29
|
-
exports.presetsScreenShare = Object.values(options_1.ScreenSharePresets);
|
30
|
-
/* @internal */
|
31
|
-
exports.defaultSimulcastPresets169 = [
|
32
|
-
options_1.VideoPresets.h180,
|
33
|
-
options_1.VideoPresets.h360,
|
34
|
-
];
|
35
|
-
/* @internal */
|
36
|
-
exports.defaultSimulcastPresets43 = [
|
37
|
-
options_1.VideoPresets43.h180,
|
38
|
-
options_1.VideoPresets43.h360,
|
39
|
-
];
|
40
|
-
/* @internal */
|
41
|
-
const computeDefaultScreenShareSimulcastPresets = (fromPreset) => {
|
42
|
-
const layers = [{ scaleResolutionDownBy: 2, fps: 3 }];
|
43
|
-
return layers.map((t) => {
|
44
|
-
var _a;
|
45
|
-
return new options_1.VideoPreset(Math.floor(fromPreset.width / t.scaleResolutionDownBy), Math.floor(fromPreset.height / t.scaleResolutionDownBy), Math.max(150000, Math.floor(fromPreset.encoding.maxBitrate
|
46
|
-
/ (Math.pow(t.scaleResolutionDownBy, 2) * (((_a = fromPreset.encoding.maxFramerate) !== null && _a !== void 0 ? _a : 30) / t.fps)))), t.fps);
|
47
|
-
});
|
48
|
-
};
|
49
|
-
exports.computeDefaultScreenShareSimulcastPresets = computeDefaultScreenShareSimulcastPresets;
|
50
|
-
const videoRids = ['q', 'h', 'f'];
|
51
|
-
/* @internal */
|
52
|
-
function computeVideoEncodings(isScreenShare, width, height, options) {
|
53
|
-
var _a, _b;
|
54
|
-
let videoEncoding = options === null || options === void 0 ? void 0 : options.videoEncoding;
|
55
|
-
if (isScreenShare) {
|
56
|
-
videoEncoding = options === null || options === void 0 ? void 0 : options.screenShareEncoding;
|
57
|
-
}
|
58
|
-
const useSimulcast = options === null || options === void 0 ? void 0 : options.simulcast;
|
59
|
-
if ((!videoEncoding && !useSimulcast) || !width || !height) {
|
60
|
-
// when we aren't simulcasting, will need to return a single encoding without
|
61
|
-
// capping bandwidth. we always require a encoding for dynacast
|
62
|
-
return [{}];
|
63
|
-
}
|
64
|
-
if (!videoEncoding) {
|
65
|
-
// find the right encoding based on width/height
|
66
|
-
videoEncoding = determineAppropriateEncoding(isScreenShare, width, height);
|
67
|
-
logger_1.default.debug('using video encoding', videoEncoding);
|
68
|
-
}
|
69
|
-
if (!useSimulcast) {
|
70
|
-
return [videoEncoding];
|
71
|
-
}
|
72
|
-
const original = new options_1.VideoPreset(width, height, videoEncoding.maxBitrate, videoEncoding.maxFramerate);
|
73
|
-
let presets = [];
|
74
|
-
if (isScreenShare) {
|
75
|
-
presets = (_a = sortPresets(options === null || options === void 0 ? void 0 : options.screenShareSimulcastLayers)) !== null && _a !== void 0 ? _a : defaultSimulcastLayers(isScreenShare, original);
|
76
|
-
}
|
77
|
-
else {
|
78
|
-
presets = (_b = sortPresets(options === null || options === void 0 ? void 0 : options.videoSimulcastLayers)) !== null && _b !== void 0 ? _b : defaultSimulcastLayers(isScreenShare, original);
|
79
|
-
}
|
80
|
-
let midPreset;
|
81
|
-
const lowPreset = presets[0];
|
82
|
-
if (presets.length > 1) {
|
83
|
-
[, midPreset] = presets;
|
84
|
-
}
|
85
|
-
// NOTE:
|
86
|
-
// 1. Ordering of these encodings is important. Chrome seems
|
87
|
-
// to use the index into encodings to decide which layer
|
88
|
-
// to disable when CPU constrained.
|
89
|
-
// So encodings should be ordered in increasing spatial
|
90
|
-
// resolution order.
|
91
|
-
// 2. ion-sfu translates rids into layers. So, all encodings
|
92
|
-
// should have the base layer `q` and then more added
|
93
|
-
// based on other conditions.
|
94
|
-
const size = Math.max(width, height);
|
95
|
-
if (size >= 960 && midPreset) {
|
96
|
-
return encodingsFromPresets(width, height, [
|
97
|
-
lowPreset, midPreset, original,
|
98
|
-
]);
|
99
|
-
}
|
100
|
-
if (size >= 480) {
|
101
|
-
return encodingsFromPresets(width, height, [
|
102
|
-
lowPreset, original,
|
103
|
-
]);
|
104
|
-
}
|
105
|
-
return encodingsFromPresets(width, height, [
|
106
|
-
original,
|
107
|
-
]);
|
108
|
-
}
|
109
|
-
exports.computeVideoEncodings = computeVideoEncodings;
|
110
|
-
/* @internal */
|
111
|
-
function determineAppropriateEncoding(isScreenShare, width, height) {
|
112
|
-
const presets = presetsForResolution(isScreenShare, width, height);
|
113
|
-
let { encoding } = presets[0];
|
114
|
-
// handle portrait by swapping dimensions
|
115
|
-
const size = Math.max(width, height);
|
116
|
-
for (let i = 0; i < presets.length; i += 1) {
|
117
|
-
const preset = presets[i];
|
118
|
-
encoding = preset.encoding;
|
119
|
-
if (preset.width >= size) {
|
120
|
-
break;
|
121
|
-
}
|
122
|
-
}
|
123
|
-
return encoding;
|
124
|
-
}
|
125
|
-
exports.determineAppropriateEncoding = determineAppropriateEncoding;
|
126
|
-
/* @internal */
|
127
|
-
function presetsForResolution(isScreenShare, width, height) {
|
128
|
-
if (isScreenShare) {
|
129
|
-
return exports.presetsScreenShare;
|
130
|
-
}
|
131
|
-
const aspect = width > height ? width / height : height / width;
|
132
|
-
if (Math.abs(aspect - 16.0 / 9) < Math.abs(aspect - 4.0 / 3)) {
|
133
|
-
return exports.presets169;
|
134
|
-
}
|
135
|
-
return exports.presets43;
|
136
|
-
}
|
137
|
-
exports.presetsForResolution = presetsForResolution;
|
138
|
-
/* @internal */
|
139
|
-
function defaultSimulcastLayers(isScreenShare, original) {
|
140
|
-
if (isScreenShare) {
|
141
|
-
return exports.computeDefaultScreenShareSimulcastPresets(original);
|
142
|
-
}
|
143
|
-
const { width, height } = original;
|
144
|
-
const aspect = width > height ? width / height : height / width;
|
145
|
-
if (Math.abs(aspect - 16.0 / 9) < Math.abs(aspect - 4.0 / 3)) {
|
146
|
-
return exports.defaultSimulcastPresets169;
|
147
|
-
}
|
148
|
-
return exports.defaultSimulcastPresets43;
|
149
|
-
}
|
150
|
-
exports.defaultSimulcastLayers = defaultSimulcastLayers;
|
151
|
-
// presets should be ordered by low, medium, high
|
152
|
-
function encodingsFromPresets(width, height, presets) {
|
153
|
-
const encodings = [];
|
154
|
-
presets.forEach((preset, idx) => {
|
155
|
-
if (idx >= videoRids.length) {
|
156
|
-
return;
|
157
|
-
}
|
158
|
-
const size = Math.min(width, height);
|
159
|
-
const rid = videoRids[idx];
|
160
|
-
encodings.push({
|
161
|
-
rid,
|
162
|
-
scaleResolutionDownBy: size / Math.min(preset.width, preset.height),
|
163
|
-
maxBitrate: preset.encoding.maxBitrate,
|
164
|
-
/* @ts-ignore */
|
165
|
-
maxFramerate: preset.encoding.maxFramerate,
|
166
|
-
});
|
167
|
-
});
|
168
|
-
return encodings;
|
169
|
-
}
|
170
|
-
/** @internal */
|
171
|
-
function sortPresets(presets) {
|
172
|
-
if (!presets)
|
173
|
-
return;
|
174
|
-
return presets.sort((a, b) => {
|
175
|
-
const { encoding: aEnc } = a;
|
176
|
-
const { encoding: bEnc } = b;
|
177
|
-
if (aEnc.maxBitrate > bEnc.maxBitrate) {
|
178
|
-
return 1;
|
179
|
-
}
|
180
|
-
if (aEnc.maxBitrate < bEnc.maxBitrate)
|
181
|
-
return -1;
|
182
|
-
if (aEnc.maxBitrate === bEnc.maxBitrate && aEnc.maxFramerate && bEnc.maxFramerate) {
|
183
|
-
return aEnc.maxFramerate > bEnc.maxFramerate ? 1 : -1;
|
184
|
-
}
|
185
|
-
return 0;
|
186
|
-
});
|
187
|
-
}
|
188
|
-
exports.sortPresets = sortPresets;
|
189
|
-
//# sourceMappingURL=publishUtils.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"publishUtils.js","sourceRoot":"","sources":["../../../src/room/participant/publishUtils.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA+B;AAC/B,sCAA8C;AAC9C,+EAAuD;AACvD,+EAAuD;AACvD,8CAI0B;AAE1B,gBAAgB;AAChB,SAAgB,sBAAsB,CACpC,gBAAkC,EAClC,WAAmC;IAEnC,QAAQ,gBAAgB,CAAC,IAAI,EAAE;QAC7B,KAAK,OAAO;YACV,OAAO,IAAI,yBAAe,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC5D,KAAK,OAAO;YACV,OAAO,IAAI,yBAAe,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC5D;YACE,MAAM,IAAI,0BAAiB,CACzB,2BAA2B,gBAAgB,CAAC,IAAI,EAAE,CACnD,CAAC;KACL;AACH,CAAC;AAdD,wDAcC;AAED,eAAe;AACF,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAY,CAAC,CAAC;AAEtD,eAAe;AACF,QAAA,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAc,CAAC,CAAC;AAEvD,eAAe;AACF,QAAA,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,4BAAkB,CAAC,CAAC;AAEpE,eAAe;AACF,QAAA,0BAA0B,GAAG;IACxC,sBAAY,CAAC,IAAI;IACjB,sBAAY,CAAC,IAAI;CAClB,CAAC;AAEF,eAAe;AACF,QAAA,yBAAyB,GAAG;IACvC,wBAAc,CAAC,IAAI;IACnB,wBAAc,CAAC,IAAI;CACpB,CAAC;AAEF,eAAe;AACR,MAAM,yCAAyC,GAAG,CAAC,UAAuB,EAAE,EAAE;IACnF,MAAM,MAAM,GAAG,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;;QAAC,OAAA,IAAI,qBAAW,CACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC,qBAAqB,CAAC,EACtD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,qBAAqB,CAAC,EACvD,IAAI,CAAC,GAAG,CAAC,MAAO,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU;cACvD,CAAC,SAAA,CAAC,CAAC,qBAAqB,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,MAAA,UAAU,CAAC,QAAQ,CAAC,YAAY,mCAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACzF,CAAC,CAAC,GAAG,CACN,CAAA;KAAA,CAAC,CAAC;AACL,CAAC,CAAC;AATW,QAAA,yCAAyC,6CASpD;AAEF,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAElC,eAAe;AACf,SAAgB,qBAAqB,CACnC,aAAsB,EACtB,KAAc,EACd,MAAe,EACf,OAA6B;;IAE7B,IAAI,aAAa,GAA8B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC;IACtE,IAAI,aAAa,EAAE;QACjB,aAAa,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC;KAC9C;IACD,MAAM,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC;IAExC,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;QAC1D,6EAA6E;QAC7E,+DAA+D;QAC/D,OAAO,CAAC,EAAE,CAAC,CAAC;KACb;IAED,IAAI,CAAC,aAAa,EAAE;QAClB,gDAAgD;QAChD,aAAa,GAAG,4BAA4B,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,gBAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;KAClD;IAED,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,CAAC,aAAa,CAAC,CAAC;KACxB;IACD,MAAM,QAAQ,GAAG,IAAI,qBAAW,CAC9B,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,YAAY,CACpE,CAAC;IACF,IAAI,OAAO,GAAuB,EAAE,CAAC;IACrC,IAAI,aAAa,EAAE;QACjB,OAAO,GAAG,MAAA,WAAW,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,0BAA0B,CAAC,mCACrD,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;KACtD;SAAM;QACL,OAAO,GAAG,MAAA,WAAW,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CAAC,mCAC/C,sBAAsB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;KACtD;IACD,IAAI,SAAkC,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC;KACzB;IAED,QAAQ;IACR,8DAA8D;IAC9D,6DAA6D;IAC7D,wCAAwC;IACxC,4DAA4D;IAC5D,yBAAyB;IACzB,8DAA8D;IAC9D,0DAA0D;IAC1D,kCAAkC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,EAAE;QAC5B,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE;YACzC,SAAS,EAAE,SAAS,EAAE,QAAQ;SAC/B,CAAC,CAAC;KACJ;IACD,IAAI,IAAI,IAAI,GAAG,EAAE;QACf,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE;YACzC,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;KACJ;IACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE;QACzC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAnED,sDAmEC;AAED,eAAe;AACf,SAAgB,4BAA4B,CAC1C,aAAsB,EACtB,KAAa,EACb,MAAc;IAEd,MAAM,OAAO,GAAG,oBAAoB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACnE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE9B,yCAAyC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;YACxB,MAAM;SACP;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AApBD,oEAoBC;AAED,eAAe;AACf,SAAgB,oBAAoB,CAClC,aAAsB,EAAE,KAAa,EAAE,MAAc;IAErD,IAAI,aAAa,EAAE;QACjB,OAAO,0BAAkB,CAAC;KAC3B;IACD,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE;QAC5D,OAAO,kBAAU,CAAC;KACnB;IACD,OAAO,iBAAS,CAAC;AACnB,CAAC;AAXD,oDAWC;AAED,eAAe;AACf,SAAgB,sBAAsB,CACpC,aAAsB,EAAE,QAAqB;IAE7C,IAAI,aAAa,EAAE;QACjB,OAAO,iDAAyC,CAAC,QAAQ,CAAC,CAAC;KAC5D;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;IAChE,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE;QAC5D,OAAO,kCAA0B,CAAC;KACnC;IACD,OAAO,iCAAyB,CAAC;AACnC,CAAC;AAZD,wDAYC;AAED,iDAAiD;AACjD,SAAS,oBAAoB,CAC3B,KAAa,EACb,MAAc,EACd,OAAsB;IAEtB,MAAM,SAAS,GAA+B,EAAE,CAAC;IACjD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE;YAC3B,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC;YACb,GAAG;YACH,qBAAqB,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACnE,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU;YACtC,gBAAgB;YAChB,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY;SAC3C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,gBAAgB;AAChB,SAAgB,WAAW,CAAC,OAAuC;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;YACrC,OAAO,CAAC,CAAC;SACV;QACD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;YAAE,OAAO,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;YACjF,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,kCAeC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|