livekit-client 0.15.2 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/api/SignalClient.d.ts +11 -3
  2. package/dist/api/SignalClient.js +92 -28
  3. package/dist/api/SignalClient.js.map +1 -1
  4. package/dist/index.d.ts +4 -2
  5. package/dist/index.js +5 -3
  6. package/dist/index.js.map +1 -1
  7. package/dist/options.d.ts +5 -0
  8. package/dist/proto/livekit_models.d.ts +33 -0
  9. package/dist/proto/livekit_models.js +263 -4
  10. package/dist/proto/livekit_models.js.map +1 -1
  11. package/dist/proto/livekit_rtc.d.ts +48 -10
  12. package/dist/proto/livekit_rtc.js +273 -22
  13. package/dist/proto/livekit_rtc.js.map +1 -1
  14. package/dist/room/PCTransport.js +4 -0
  15. package/dist/room/PCTransport.js.map +1 -1
  16. package/dist/room/RTCEngine.d.ts +10 -2
  17. package/dist/room/RTCEngine.js +182 -42
  18. package/dist/room/RTCEngine.js.map +1 -1
  19. package/dist/room/Room.d.ts +15 -0
  20. package/dist/room/Room.js +165 -20
  21. package/dist/room/Room.js.map +1 -1
  22. package/dist/room/events.d.ts +42 -20
  23. package/dist/room/events.js +41 -19
  24. package/dist/room/events.js.map +1 -1
  25. package/dist/room/participant/LocalParticipant.d.ts +25 -4
  26. package/dist/room/participant/LocalParticipant.js +47 -20
  27. package/dist/room/participant/LocalParticipant.js.map +1 -1
  28. package/dist/room/participant/Participant.d.ts +1 -1
  29. package/dist/room/participant/ParticipantTrackPermission.d.ts +19 -0
  30. package/dist/room/participant/ParticipantTrackPermission.js +16 -0
  31. package/dist/room/participant/ParticipantTrackPermission.js.map +1 -0
  32. package/dist/room/participant/RemoteParticipant.d.ts +2 -2
  33. package/dist/room/participant/RemoteParticipant.js +11 -14
  34. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  35. package/dist/room/participant/publishUtils.js +1 -1
  36. package/dist/room/participant/publishUtils.js.map +1 -1
  37. package/dist/room/participant/publishUtils.test.js +9 -0
  38. package/dist/room/participant/publishUtils.test.js.map +1 -1
  39. package/dist/room/track/LocalTrack.d.ts +0 -3
  40. package/dist/room/track/LocalTrack.js +1 -6
  41. package/dist/room/track/LocalTrack.js.map +1 -1
  42. package/dist/room/track/LocalTrackPublication.d.ts +5 -1
  43. package/dist/room/track/LocalTrackPublication.js +15 -5
  44. package/dist/room/track/LocalTrackPublication.js.map +1 -1
  45. package/dist/room/track/LocalVideoTrack.js +2 -0
  46. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  47. package/dist/room/track/RemoteAudioTrack.d.ts +5 -14
  48. package/dist/room/track/RemoteAudioTrack.js +7 -32
  49. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  50. package/dist/room/track/RemoteTrack.d.ts +14 -0
  51. package/dist/room/track/RemoteTrack.js +47 -0
  52. package/dist/room/track/RemoteTrack.js.map +1 -0
  53. package/dist/room/track/RemoteTrackPublication.d.ts +10 -2
  54. package/dist/room/track/RemoteTrackPublication.js +51 -13
  55. package/dist/room/track/RemoteTrackPublication.js.map +1 -1
  56. package/dist/room/track/RemoteVideoTrack.d.ts +3 -9
  57. package/dist/room/track/RemoteVideoTrack.js +16 -36
  58. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  59. package/dist/room/track/Track.d.ts +3 -0
  60. package/dist/room/track/Track.js +14 -5
  61. package/dist/room/track/Track.js.map +1 -1
  62. package/dist/room/track/TrackPublication.d.ts +12 -1
  63. package/dist/room/track/TrackPublication.js +23 -7
  64. package/dist/room/track/TrackPublication.js.map +1 -1
  65. package/dist/room/track/create.js +5 -0
  66. package/dist/room/track/create.js.map +1 -1
  67. package/dist/room/utils.d.ts +2 -0
  68. package/dist/room/utils.js +12 -1
  69. package/dist/room/utils.js.map +1 -1
  70. package/dist/version.d.ts +2 -2
  71. package/dist/version.js +2 -2
  72. package/package.json +3 -3
  73. package/src/api/SignalClient.ts +444 -0
  74. package/src/connect.ts +100 -0
  75. package/src/index.ts +47 -0
  76. package/src/logger.ts +22 -0
  77. package/src/options.ts +152 -0
  78. package/src/proto/livekit_models.ts +1863 -0
  79. package/src/proto/livekit_rtc.ts +3415 -0
  80. package/src/room/DeviceManager.ts +57 -0
  81. package/src/room/PCTransport.ts +86 -0
  82. package/src/room/RTCEngine.ts +582 -0
  83. package/src/room/Room.ts +840 -0
  84. package/src/room/errors.ts +65 -0
  85. package/src/room/events.ts +398 -0
  86. package/src/room/participant/LocalParticipant.ts +685 -0
  87. package/src/room/participant/Participant.ts +214 -0
  88. package/src/room/participant/ParticipantTrackPermission.ts +32 -0
  89. package/src/room/participant/RemoteParticipant.ts +241 -0
  90. package/src/room/participant/publishUtils.test.ts +105 -0
  91. package/src/room/participant/publishUtils.ts +180 -0
  92. package/src/room/stats.ts +130 -0
  93. package/src/room/track/LocalAudioTrack.ts +112 -0
  94. package/src/room/track/LocalTrack.ts +124 -0
  95. package/src/room/track/LocalTrackPublication.ts +66 -0
  96. package/src/room/track/LocalVideoTrack.test.ts +70 -0
  97. package/src/room/track/LocalVideoTrack.ts +416 -0
  98. package/src/room/track/RemoteAudioTrack.ts +58 -0
  99. package/src/room/track/RemoteTrack.ts +59 -0
  100. package/src/room/track/RemoteTrackPublication.ts +198 -0
  101. package/src/room/track/RemoteVideoTrack.ts +215 -0
  102. package/src/room/track/Track.ts +307 -0
  103. package/src/room/track/TrackPublication.ts +120 -0
  104. package/src/room/track/create.ts +120 -0
  105. package/src/room/track/defaults.ts +23 -0
  106. package/src/room/track/options.ts +229 -0
  107. package/src/room/track/types.ts +8 -0
  108. package/src/room/track/utils.test.ts +93 -0
  109. package/src/room/track/utils.ts +76 -0
  110. package/src/room/utils.ts +58 -0
  111. package/src/version.ts +2 -0
  112. package/.github/workflows/publish.yaml +0 -55
  113. package/.github/workflows/test.yaml +0 -36
  114. package/example/index.html +0 -248
  115. package/example/sample.ts +0 -621
  116. package/example/styles.css +0 -144
  117. package/example/webpack.config.js +0 -33
@@ -37,7 +37,11 @@ export interface SignalRequest {
37
37
  */
38
38
  updateLayers?: UpdateVideoLayers | undefined;
39
39
  /** Update subscriber permissions */
40
- subscriptionPermissions?: UpdateSubscriptionPermissions | undefined;
40
+ subscriptionPermission?: SubscriptionPermission | undefined;
41
+ /** sync client's subscribe state to server during reconnect */
42
+ syncState?: SyncState | undefined;
43
+ /** Simulate conditions, for client validations */
44
+ simulate?: SimulateScenario | undefined;
41
45
  }
42
46
  export interface SignalResponse {
43
47
  /** sent when join is accepted */
@@ -62,12 +66,17 @@ export interface SignalResponse {
62
66
  roomUpdate?: RoomUpdate | undefined;
63
67
  /** when connection quality changed */
64
68
  connectionQuality?: ConnectionQualityUpdate | undefined;
65
- /** when streamed tracks state changed */
69
+ /**
70
+ * when streamed tracks state changed, used to notify when any of the streams were paused due to
71
+ * congestion
72
+ */
66
73
  streamStateUpdate?: StreamStateUpdate | undefined;
67
- /** when max subscribe quality changed */
74
+ /** when max subscribe quality changed, used by dynamic broadcasting to disable unused layers */
68
75
  subscribedQualityUpdate?: SubscribedQualityUpdate | undefined;
69
76
  /** when subscription permission changed */
70
77
  subscriptionPermissionUpdate?: SubscriptionPermissionUpdate | undefined;
78
+ /** update the token the client was using, to prevent an active client from using an expired token */
79
+ refreshToken: string | undefined;
71
80
  }
72
81
  export interface AddTrackRequest {
73
82
  /** client ID of track, to match it when RTC track is received */
@@ -186,7 +195,7 @@ export interface TrackPermission {
186
195
  allTracks: boolean;
187
196
  trackSids: string[];
188
197
  }
189
- export interface UpdateSubscriptionPermissions {
198
+ export interface SubscriptionPermission {
190
199
  allParticipants: boolean;
191
200
  trackPermissions: TrackPermission[];
192
201
  }
@@ -195,6 +204,21 @@ export interface SubscriptionPermissionUpdate {
195
204
  trackSid: string;
196
205
  allowed: boolean;
197
206
  }
207
+ export interface SyncState {
208
+ answer?: SessionDescription;
209
+ subscription?: UpdateSubscription;
210
+ publishTracks: TrackPublishedResponse[];
211
+ }
212
+ export interface SimulateScenario {
213
+ /** simulate N seconds of speaker activity */
214
+ speakerUpdate: number | undefined;
215
+ /** simulate local node failure */
216
+ nodeFailure: boolean | undefined;
217
+ /** simulate migration */
218
+ migration: boolean | undefined;
219
+ /** server to send leave */
220
+ serverLeave: boolean | undefined;
221
+ }
198
222
  export declare const SignalRequest: {
199
223
  encode(message: SignalRequest, writer?: _m0.Writer): _m0.Writer;
200
224
  decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SignalRequest;
@@ -356,12 +380,12 @@ export declare const TrackPermission: {
356
380
  toJSON(message: TrackPermission): unknown;
357
381
  fromPartial(object: DeepPartial<TrackPermission>): TrackPermission;
358
382
  };
359
- export declare const UpdateSubscriptionPermissions: {
360
- encode(message: UpdateSubscriptionPermissions, writer?: _m0.Writer): _m0.Writer;
361
- decode(input: _m0.Reader | Uint8Array, length?: number | undefined): UpdateSubscriptionPermissions;
362
- fromJSON(object: any): UpdateSubscriptionPermissions;
363
- toJSON(message: UpdateSubscriptionPermissions): unknown;
364
- fromPartial(object: DeepPartial<UpdateSubscriptionPermissions>): UpdateSubscriptionPermissions;
383
+ export declare const SubscriptionPermission: {
384
+ encode(message: SubscriptionPermission, writer?: _m0.Writer): _m0.Writer;
385
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SubscriptionPermission;
386
+ fromJSON(object: any): SubscriptionPermission;
387
+ toJSON(message: SubscriptionPermission): unknown;
388
+ fromPartial(object: DeepPartial<SubscriptionPermission>): SubscriptionPermission;
365
389
  };
366
390
  export declare const SubscriptionPermissionUpdate: {
367
391
  encode(message: SubscriptionPermissionUpdate, writer?: _m0.Writer): _m0.Writer;
@@ -370,6 +394,20 @@ export declare const SubscriptionPermissionUpdate: {
370
394
  toJSON(message: SubscriptionPermissionUpdate): unknown;
371
395
  fromPartial(object: DeepPartial<SubscriptionPermissionUpdate>): SubscriptionPermissionUpdate;
372
396
  };
397
+ export declare const SyncState: {
398
+ encode(message: SyncState, writer?: _m0.Writer): _m0.Writer;
399
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SyncState;
400
+ fromJSON(object: any): SyncState;
401
+ toJSON(message: SyncState): unknown;
402
+ fromPartial(object: DeepPartial<SyncState>): SyncState;
403
+ };
404
+ export declare const SimulateScenario: {
405
+ encode(message: SimulateScenario, writer?: _m0.Writer): _m0.Writer;
406
+ decode(input: _m0.Reader | Uint8Array, length?: number | undefined): SimulateScenario;
407
+ fromJSON(object: any): SimulateScenario;
408
+ toJSON(message: SimulateScenario): unknown;
409
+ fromPartial(object: DeepPartial<SimulateScenario>): SimulateScenario;
410
+ };
373
411
  declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
374
412
  export declare type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
375
413
  [K in keyof T]?: DeepPartial<T[K]>;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SubscriptionPermissionUpdate = exports.UpdateSubscriptionPermissions = exports.TrackPermission = exports.SubscribedQualityUpdate = exports.SubscribedQuality = exports.StreamStateUpdate = exports.StreamStateInfo = exports.ConnectionQualityUpdate = exports.ConnectionQualityInfo = exports.RoomUpdate = exports.SpeakersChanged = exports.ICEServer = exports.UpdateVideoLayers = exports.LeaveRequest = exports.UpdateTrackSettings = exports.UpdateSubscription = exports.ParticipantUpdate = exports.SessionDescription = exports.TrackPublishedResponse = exports.JoinResponse = exports.MuteTrackRequest = exports.TrickleRequest = exports.AddTrackRequest = exports.SignalResponse = exports.SignalRequest = exports.streamStateToJSON = exports.streamStateFromJSON = exports.StreamState = exports.signalTargetToJSON = exports.signalTargetFromJSON = exports.SignalTarget = exports.protobufPackage = void 0;
6
+ exports.SimulateScenario = exports.SyncState = exports.SubscriptionPermissionUpdate = exports.SubscriptionPermission = exports.TrackPermission = exports.SubscribedQualityUpdate = exports.SubscribedQuality = exports.StreamStateUpdate = exports.StreamStateInfo = exports.ConnectionQualityUpdate = exports.ConnectionQualityInfo = exports.RoomUpdate = exports.SpeakersChanged = exports.ICEServer = exports.UpdateVideoLayers = exports.LeaveRequest = exports.UpdateTrackSettings = exports.UpdateSubscription = exports.ParticipantUpdate = exports.SessionDescription = exports.TrackPublishedResponse = exports.JoinResponse = exports.MuteTrackRequest = exports.TrickleRequest = exports.AddTrackRequest = exports.SignalResponse = exports.SignalRequest = exports.streamStateToJSON = exports.streamStateFromJSON = exports.StreamState = exports.signalTargetToJSON = exports.signalTargetFromJSON = exports.SignalTarget = exports.protobufPackage = void 0;
7
7
  /* eslint-disable */
8
8
  const long_1 = __importDefault(require("long"));
9
9
  const minimal_1 = __importDefault(require("protobufjs/minimal"));
@@ -103,8 +103,14 @@ exports.SignalRequest = {
103
103
  if (message.updateLayers !== undefined) {
104
104
  exports.UpdateVideoLayers.encode(message.updateLayers, writer.uint32(82).fork()).ldelim();
105
105
  }
106
- if (message.subscriptionPermissions !== undefined) {
107
- exports.UpdateSubscriptionPermissions.encode(message.subscriptionPermissions, writer.uint32(90).fork()).ldelim();
106
+ if (message.subscriptionPermission !== undefined) {
107
+ exports.SubscriptionPermission.encode(message.subscriptionPermission, writer.uint32(90).fork()).ldelim();
108
+ }
109
+ if (message.syncState !== undefined) {
110
+ exports.SyncState.encode(message.syncState, writer.uint32(98).fork()).ldelim();
111
+ }
112
+ if (message.simulate !== undefined) {
113
+ exports.SimulateScenario.encode(message.simulate, writer.uint32(106).fork()).ldelim();
108
114
  }
109
115
  return writer;
110
116
  },
@@ -143,8 +149,13 @@ exports.SignalRequest = {
143
149
  message.updateLayers = exports.UpdateVideoLayers.decode(reader, reader.uint32());
144
150
  break;
145
151
  case 11:
146
- message.subscriptionPermissions =
147
- exports.UpdateSubscriptionPermissions.decode(reader, reader.uint32());
152
+ message.subscriptionPermission = exports.SubscriptionPermission.decode(reader, reader.uint32());
153
+ break;
154
+ case 12:
155
+ message.syncState = exports.SyncState.decode(reader, reader.uint32());
156
+ break;
157
+ case 13:
158
+ message.simulate = exports.SimulateScenario.decode(reader, reader.uint32());
148
159
  break;
149
160
  default:
150
161
  reader.skipType(tag & 7);
@@ -209,12 +220,24 @@ exports.SignalRequest = {
209
220
  else {
210
221
  message.updateLayers = undefined;
211
222
  }
212
- if (object.subscriptionPermissions !== undefined &&
213
- object.subscriptionPermissions !== null) {
214
- message.subscriptionPermissions = exports.UpdateSubscriptionPermissions.fromJSON(object.subscriptionPermissions);
223
+ if (object.subscriptionPermission !== undefined &&
224
+ object.subscriptionPermission !== null) {
225
+ message.subscriptionPermission = exports.SubscriptionPermission.fromJSON(object.subscriptionPermission);
226
+ }
227
+ else {
228
+ message.subscriptionPermission = undefined;
229
+ }
230
+ if (object.syncState !== undefined && object.syncState !== null) {
231
+ message.syncState = exports.SyncState.fromJSON(object.syncState);
232
+ }
233
+ else {
234
+ message.syncState = undefined;
235
+ }
236
+ if (object.simulate !== undefined && object.simulate !== null) {
237
+ message.simulate = exports.SimulateScenario.fromJSON(object.simulate);
215
238
  }
216
239
  else {
217
- message.subscriptionPermissions = undefined;
240
+ message.simulate = undefined;
218
241
  }
219
242
  return message;
220
243
  },
@@ -256,9 +279,17 @@ exports.SignalRequest = {
256
279
  (obj.updateLayers = message.updateLayers
257
280
  ? exports.UpdateVideoLayers.toJSON(message.updateLayers)
258
281
  : undefined);
259
- message.subscriptionPermissions !== undefined &&
260
- (obj.subscriptionPermissions = message.subscriptionPermissions
261
- ? exports.UpdateSubscriptionPermissions.toJSON(message.subscriptionPermissions)
282
+ message.subscriptionPermission !== undefined &&
283
+ (obj.subscriptionPermission = message.subscriptionPermission
284
+ ? exports.SubscriptionPermission.toJSON(message.subscriptionPermission)
285
+ : undefined);
286
+ message.syncState !== undefined &&
287
+ (obj.syncState = message.syncState
288
+ ? exports.SyncState.toJSON(message.syncState)
289
+ : undefined);
290
+ message.simulate !== undefined &&
291
+ (obj.simulate = message.simulate
292
+ ? exports.SimulateScenario.toJSON(message.simulate)
262
293
  : undefined);
263
294
  return obj;
264
295
  },
@@ -318,13 +349,24 @@ exports.SignalRequest = {
318
349
  else {
319
350
  message.updateLayers = undefined;
320
351
  }
321
- if (object.subscriptionPermissions !== undefined &&
322
- object.subscriptionPermissions !== null) {
323
- message.subscriptionPermissions =
324
- exports.UpdateSubscriptionPermissions.fromPartial(object.subscriptionPermissions);
352
+ if (object.subscriptionPermission !== undefined &&
353
+ object.subscriptionPermission !== null) {
354
+ message.subscriptionPermission = exports.SubscriptionPermission.fromPartial(object.subscriptionPermission);
355
+ }
356
+ else {
357
+ message.subscriptionPermission = undefined;
358
+ }
359
+ if (object.syncState !== undefined && object.syncState !== null) {
360
+ message.syncState = exports.SyncState.fromPartial(object.syncState);
361
+ }
362
+ else {
363
+ message.syncState = undefined;
364
+ }
365
+ if (object.simulate !== undefined && object.simulate !== null) {
366
+ message.simulate = exports.SimulateScenario.fromPartial(object.simulate);
325
367
  }
326
368
  else {
327
- message.subscriptionPermissions = undefined;
369
+ message.simulate = undefined;
328
370
  }
329
371
  return message;
330
372
  },
@@ -374,6 +416,9 @@ exports.SignalResponse = {
374
416
  if (message.subscriptionPermissionUpdate !== undefined) {
375
417
  exports.SubscriptionPermissionUpdate.encode(message.subscriptionPermissionUpdate, writer.uint32(122).fork()).ldelim();
376
418
  }
419
+ if (message.refreshToken !== undefined) {
420
+ writer.uint32(130).string(message.refreshToken);
421
+ }
377
422
  return writer;
378
423
  },
379
424
  decode(input, length) {
@@ -426,6 +471,9 @@ exports.SignalResponse = {
426
471
  message.subscriptionPermissionUpdate =
427
472
  exports.SubscriptionPermissionUpdate.decode(reader, reader.uint32());
428
473
  break;
474
+ case 16:
475
+ message.refreshToken = reader.string();
476
+ break;
429
477
  default:
430
478
  reader.skipType(tag & 7);
431
479
  break;
@@ -525,6 +573,12 @@ exports.SignalResponse = {
525
573
  else {
526
574
  message.subscriptionPermissionUpdate = undefined;
527
575
  }
576
+ if (object.refreshToken !== undefined && object.refreshToken !== null) {
577
+ message.refreshToken = String(object.refreshToken);
578
+ }
579
+ else {
580
+ message.refreshToken = undefined;
581
+ }
528
582
  return message;
529
583
  },
530
584
  toJSON(message) {
@@ -583,9 +637,12 @@ exports.SignalResponse = {
583
637
  (obj.subscriptionPermissionUpdate = message.subscriptionPermissionUpdate
584
638
  ? exports.SubscriptionPermissionUpdate.toJSON(message.subscriptionPermissionUpdate)
585
639
  : undefined);
640
+ message.refreshToken !== undefined &&
641
+ (obj.refreshToken = message.refreshToken);
586
642
  return obj;
587
643
  },
588
644
  fromPartial(object) {
645
+ var _a;
589
646
  const message = Object.assign({}, baseSignalResponse);
590
647
  if (object.join !== undefined && object.join !== null) {
591
648
  message.join = exports.JoinResponse.fromPartial(object.join);
@@ -677,6 +734,7 @@ exports.SignalResponse = {
677
734
  else {
678
735
  message.subscriptionPermissionUpdate = undefined;
679
736
  }
737
+ message.refreshToken = (_a = object.refreshToken) !== null && _a !== void 0 ? _a : undefined;
680
738
  return message;
681
739
  },
682
740
  };
@@ -2384,8 +2442,8 @@ exports.TrackPermission = {
2384
2442
  return message;
2385
2443
  },
2386
2444
  };
2387
- const baseUpdateSubscriptionPermissions = { allParticipants: false };
2388
- exports.UpdateSubscriptionPermissions = {
2445
+ const baseSubscriptionPermission = { allParticipants: false };
2446
+ exports.SubscriptionPermission = {
2389
2447
  encode(message, writer = minimal_1.default.Writer.create()) {
2390
2448
  if (message.allParticipants === true) {
2391
2449
  writer.uint32(8).bool(message.allParticipants);
@@ -2398,7 +2456,7 @@ exports.UpdateSubscriptionPermissions = {
2398
2456
  decode(input, length) {
2399
2457
  const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
2400
2458
  let end = length === undefined ? reader.len : reader.pos + length;
2401
- const message = Object.assign({}, baseUpdateSubscriptionPermissions);
2459
+ const message = Object.assign({}, baseSubscriptionPermission);
2402
2460
  message.trackPermissions = [];
2403
2461
  while (reader.pos < end) {
2404
2462
  const tag = reader.uint32();
@@ -2417,7 +2475,7 @@ exports.UpdateSubscriptionPermissions = {
2417
2475
  return message;
2418
2476
  },
2419
2477
  fromJSON(object) {
2420
- const message = Object.assign({}, baseUpdateSubscriptionPermissions);
2478
+ const message = Object.assign({}, baseSubscriptionPermission);
2421
2479
  message.trackPermissions = [];
2422
2480
  if (object.allParticipants !== undefined &&
2423
2481
  object.allParticipants !== null) {
@@ -2448,7 +2506,7 @@ exports.UpdateSubscriptionPermissions = {
2448
2506
  },
2449
2507
  fromPartial(object) {
2450
2508
  var _a;
2451
- const message = Object.assign({}, baseUpdateSubscriptionPermissions);
2509
+ const message = Object.assign({}, baseSubscriptionPermission);
2452
2510
  message.allParticipants = (_a = object.allParticipants) !== null && _a !== void 0 ? _a : false;
2453
2511
  message.trackPermissions = [];
2454
2512
  if (object.trackPermissions !== undefined &&
@@ -2540,6 +2598,199 @@ exports.SubscriptionPermissionUpdate = {
2540
2598
  return message;
2541
2599
  },
2542
2600
  };
2601
+ const baseSyncState = {};
2602
+ exports.SyncState = {
2603
+ encode(message, writer = minimal_1.default.Writer.create()) {
2604
+ if (message.answer !== undefined) {
2605
+ exports.SessionDescription.encode(message.answer, writer.uint32(10).fork()).ldelim();
2606
+ }
2607
+ if (message.subscription !== undefined) {
2608
+ exports.UpdateSubscription.encode(message.subscription, writer.uint32(18).fork()).ldelim();
2609
+ }
2610
+ for (const v of message.publishTracks) {
2611
+ exports.TrackPublishedResponse.encode(v, writer.uint32(26).fork()).ldelim();
2612
+ }
2613
+ return writer;
2614
+ },
2615
+ decode(input, length) {
2616
+ const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
2617
+ let end = length === undefined ? reader.len : reader.pos + length;
2618
+ const message = Object.assign({}, baseSyncState);
2619
+ message.publishTracks = [];
2620
+ while (reader.pos < end) {
2621
+ const tag = reader.uint32();
2622
+ switch (tag >>> 3) {
2623
+ case 1:
2624
+ message.answer = exports.SessionDescription.decode(reader, reader.uint32());
2625
+ break;
2626
+ case 2:
2627
+ message.subscription = exports.UpdateSubscription.decode(reader, reader.uint32());
2628
+ break;
2629
+ case 3:
2630
+ message.publishTracks.push(exports.TrackPublishedResponse.decode(reader, reader.uint32()));
2631
+ break;
2632
+ default:
2633
+ reader.skipType(tag & 7);
2634
+ break;
2635
+ }
2636
+ }
2637
+ return message;
2638
+ },
2639
+ fromJSON(object) {
2640
+ const message = Object.assign({}, baseSyncState);
2641
+ message.publishTracks = [];
2642
+ if (object.answer !== undefined && object.answer !== null) {
2643
+ message.answer = exports.SessionDescription.fromJSON(object.answer);
2644
+ }
2645
+ else {
2646
+ message.answer = undefined;
2647
+ }
2648
+ if (object.subscription !== undefined && object.subscription !== null) {
2649
+ message.subscription = exports.UpdateSubscription.fromJSON(object.subscription);
2650
+ }
2651
+ else {
2652
+ message.subscription = undefined;
2653
+ }
2654
+ if (object.publishTracks !== undefined && object.publishTracks !== null) {
2655
+ for (const e of object.publishTracks) {
2656
+ message.publishTracks.push(exports.TrackPublishedResponse.fromJSON(e));
2657
+ }
2658
+ }
2659
+ return message;
2660
+ },
2661
+ toJSON(message) {
2662
+ const obj = {};
2663
+ message.answer !== undefined &&
2664
+ (obj.answer = message.answer
2665
+ ? exports.SessionDescription.toJSON(message.answer)
2666
+ : undefined);
2667
+ message.subscription !== undefined &&
2668
+ (obj.subscription = message.subscription
2669
+ ? exports.UpdateSubscription.toJSON(message.subscription)
2670
+ : undefined);
2671
+ if (message.publishTracks) {
2672
+ obj.publishTracks = message.publishTracks.map((e) => e ? exports.TrackPublishedResponse.toJSON(e) : undefined);
2673
+ }
2674
+ else {
2675
+ obj.publishTracks = [];
2676
+ }
2677
+ return obj;
2678
+ },
2679
+ fromPartial(object) {
2680
+ const message = Object.assign({}, baseSyncState);
2681
+ if (object.answer !== undefined && object.answer !== null) {
2682
+ message.answer = exports.SessionDescription.fromPartial(object.answer);
2683
+ }
2684
+ else {
2685
+ message.answer = undefined;
2686
+ }
2687
+ if (object.subscription !== undefined && object.subscription !== null) {
2688
+ message.subscription = exports.UpdateSubscription.fromPartial(object.subscription);
2689
+ }
2690
+ else {
2691
+ message.subscription = undefined;
2692
+ }
2693
+ message.publishTracks = [];
2694
+ if (object.publishTracks !== undefined && object.publishTracks !== null) {
2695
+ for (const e of object.publishTracks) {
2696
+ message.publishTracks.push(exports.TrackPublishedResponse.fromPartial(e));
2697
+ }
2698
+ }
2699
+ return message;
2700
+ },
2701
+ };
2702
+ const baseSimulateScenario = {};
2703
+ exports.SimulateScenario = {
2704
+ encode(message, writer = minimal_1.default.Writer.create()) {
2705
+ if (message.speakerUpdate !== undefined) {
2706
+ writer.uint32(8).int32(message.speakerUpdate);
2707
+ }
2708
+ if (message.nodeFailure !== undefined) {
2709
+ writer.uint32(16).bool(message.nodeFailure);
2710
+ }
2711
+ if (message.migration !== undefined) {
2712
+ writer.uint32(24).bool(message.migration);
2713
+ }
2714
+ if (message.serverLeave !== undefined) {
2715
+ writer.uint32(32).bool(message.serverLeave);
2716
+ }
2717
+ return writer;
2718
+ },
2719
+ decode(input, length) {
2720
+ const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input);
2721
+ let end = length === undefined ? reader.len : reader.pos + length;
2722
+ const message = Object.assign({}, baseSimulateScenario);
2723
+ while (reader.pos < end) {
2724
+ const tag = reader.uint32();
2725
+ switch (tag >>> 3) {
2726
+ case 1:
2727
+ message.speakerUpdate = reader.int32();
2728
+ break;
2729
+ case 2:
2730
+ message.nodeFailure = reader.bool();
2731
+ break;
2732
+ case 3:
2733
+ message.migration = reader.bool();
2734
+ break;
2735
+ case 4:
2736
+ message.serverLeave = reader.bool();
2737
+ break;
2738
+ default:
2739
+ reader.skipType(tag & 7);
2740
+ break;
2741
+ }
2742
+ }
2743
+ return message;
2744
+ },
2745
+ fromJSON(object) {
2746
+ const message = Object.assign({}, baseSimulateScenario);
2747
+ if (object.speakerUpdate !== undefined && object.speakerUpdate !== null) {
2748
+ message.speakerUpdate = Number(object.speakerUpdate);
2749
+ }
2750
+ else {
2751
+ message.speakerUpdate = undefined;
2752
+ }
2753
+ if (object.nodeFailure !== undefined && object.nodeFailure !== null) {
2754
+ message.nodeFailure = Boolean(object.nodeFailure);
2755
+ }
2756
+ else {
2757
+ message.nodeFailure = undefined;
2758
+ }
2759
+ if (object.migration !== undefined && object.migration !== null) {
2760
+ message.migration = Boolean(object.migration);
2761
+ }
2762
+ else {
2763
+ message.migration = undefined;
2764
+ }
2765
+ if (object.serverLeave !== undefined && object.serverLeave !== null) {
2766
+ message.serverLeave = Boolean(object.serverLeave);
2767
+ }
2768
+ else {
2769
+ message.serverLeave = undefined;
2770
+ }
2771
+ return message;
2772
+ },
2773
+ toJSON(message) {
2774
+ const obj = {};
2775
+ message.speakerUpdate !== undefined &&
2776
+ (obj.speakerUpdate = message.speakerUpdate);
2777
+ message.nodeFailure !== undefined &&
2778
+ (obj.nodeFailure = message.nodeFailure);
2779
+ message.migration !== undefined && (obj.migration = message.migration);
2780
+ message.serverLeave !== undefined &&
2781
+ (obj.serverLeave = message.serverLeave);
2782
+ return obj;
2783
+ },
2784
+ fromPartial(object) {
2785
+ var _a, _b, _c, _d;
2786
+ const message = Object.assign({}, baseSimulateScenario);
2787
+ message.speakerUpdate = (_a = object.speakerUpdate) !== null && _a !== void 0 ? _a : undefined;
2788
+ message.nodeFailure = (_b = object.nodeFailure) !== null && _b !== void 0 ? _b : undefined;
2789
+ message.migration = (_c = object.migration) !== null && _c !== void 0 ? _c : undefined;
2790
+ message.serverLeave = (_d = object.serverLeave) !== null && _d !== void 0 ? _d : undefined;
2791
+ return message;
2792
+ },
2793
+ };
2543
2794
  if (minimal_1.default.util.Long !== long_1.default) {
2544
2795
  minimal_1.default.util.Long = long_1.default;
2545
2796
  minimal_1.default.configure();