@microsoft/live-share-media 2.0.0-internal.2 → 2.0.0-internal.20

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 (151) hide show
  1. package/README.md +26 -27
  2. package/bin/esm/IMediaPlayer.d.ts.map +1 -0
  3. package/bin/{IMediaPlayer.js → esm/IMediaPlayer.js} +1 -2
  4. package/bin/esm/IMediaPlayer.js.map +1 -0
  5. package/bin/{LiveMediaSession.d.ts → esm/LiveMediaSession.d.ts} +16 -9
  6. package/bin/esm/LiveMediaSession.d.ts.map +1 -0
  7. package/bin/esm/LiveMediaSession.js +247 -0
  8. package/bin/esm/LiveMediaSession.js.map +1 -0
  9. package/bin/{LiveMediaSessionCoordinator.d.ts → esm/LiveMediaSessionCoordinator.d.ts} +57 -13
  10. package/bin/esm/LiveMediaSessionCoordinator.d.ts.map +1 -0
  11. package/bin/esm/LiveMediaSessionCoordinator.js +544 -0
  12. package/bin/esm/LiveMediaSessionCoordinator.js.map +1 -0
  13. package/bin/{LiveMediaSessionCoordinatorSuspension.d.ts → esm/LiveMediaSessionCoordinatorSuspension.d.ts} +1 -1
  14. package/bin/esm/LiveMediaSessionCoordinatorSuspension.d.ts.map +1 -0
  15. package/bin/{LiveMediaSessionCoordinatorSuspension.js → esm/LiveMediaSessionCoordinatorSuspension.js} +3 -5
  16. package/bin/esm/LiveMediaSessionCoordinatorSuspension.js.map +1 -0
  17. package/bin/{MediaPlayerSynchronizer.d.ts → esm/MediaPlayerSynchronizer.d.ts} +22 -8
  18. package/bin/esm/MediaPlayerSynchronizer.d.ts.map +1 -0
  19. package/bin/{MediaPlayerSynchronizer.js → esm/MediaPlayerSynchronizer.js} +130 -153
  20. package/bin/esm/MediaPlayerSynchronizer.js.map +1 -0
  21. package/bin/{MediaSessionActionThrottler.d.ts → esm/MediaSessionActionThrottler.d.ts} +1 -1
  22. package/bin/esm/MediaSessionActionThrottler.d.ts.map +1 -0
  23. package/bin/esm/MediaSessionActionThrottler.js +10 -0
  24. package/bin/esm/MediaSessionActionThrottler.js.map +1 -0
  25. package/bin/esm/MediaSessionExtensions.d.ts.map +1 -0
  26. package/bin/{MediaSessionExtensions.js → esm/MediaSessionExtensions.js} +2 -5
  27. package/bin/esm/MediaSessionExtensions.js.map +1 -0
  28. package/bin/{RepeatedActionThrottler.d.ts → esm/RepeatedActionThrottler.d.ts} +2 -2
  29. package/bin/esm/RepeatedActionThrottler.d.ts.map +1 -0
  30. package/bin/{RepeatedActionThrottler.js → esm/RepeatedActionThrottler.js} +12 -17
  31. package/bin/esm/RepeatedActionThrottler.js.map +1 -0
  32. package/bin/{VolumeManager.d.ts → esm/VolumeManager.d.ts} +6 -6
  33. package/bin/esm/VolumeManager.d.ts.map +1 -0
  34. package/bin/{VolumeManager.js → esm/VolumeManager.js} +19 -22
  35. package/bin/esm/VolumeManager.js.map +1 -0
  36. package/bin/esm/index.d.ts +14 -0
  37. package/bin/esm/index.d.ts.map +1 -0
  38. package/bin/esm/index.js +14 -0
  39. package/bin/esm/index.js.map +1 -0
  40. package/bin/{internals → esm/internals}/GroupCoordinatorState.d.ts +14 -12
  41. package/bin/esm/internals/GroupCoordinatorState.d.ts.map +1 -0
  42. package/bin/{internals → esm/internals}/GroupCoordinatorState.js +177 -185
  43. package/bin/esm/internals/GroupCoordinatorState.js.map +1 -0
  44. package/bin/{internals → esm/internals}/GroupPlaybackPosition.d.ts +6 -5
  45. package/bin/esm/internals/GroupPlaybackPosition.d.ts.map +1 -0
  46. package/bin/{internals → esm/internals}/GroupPlaybackPosition.js +16 -12
  47. package/bin/esm/internals/GroupPlaybackPosition.js.map +1 -0
  48. package/bin/{internals → esm/internals}/GroupPlaybackRate.d.ts +4 -5
  49. package/bin/esm/internals/GroupPlaybackRate.d.ts.map +1 -0
  50. package/bin/{internals → esm/internals}/GroupPlaybackRate.js +5 -11
  51. package/bin/esm/internals/GroupPlaybackRate.js.map +1 -0
  52. package/bin/{internals → esm/internals}/GroupPlaybackTrack.d.ts +5 -6
  53. package/bin/esm/internals/GroupPlaybackTrack.d.ts.map +1 -0
  54. package/bin/{internals → esm/internals}/GroupPlaybackTrack.js +6 -11
  55. package/bin/esm/internals/GroupPlaybackTrack.js.map +1 -0
  56. package/bin/{internals → esm/internals}/GroupPlaybackTrackData.d.ts +5 -6
  57. package/bin/esm/internals/GroupPlaybackTrackData.d.ts.map +1 -0
  58. package/bin/{internals → esm/internals}/GroupPlaybackTrackData.js +8 -13
  59. package/bin/esm/internals/GroupPlaybackTrackData.js.map +1 -0
  60. package/bin/{internals → esm/internals}/GroupTransportState.d.ts +8 -9
  61. package/bin/esm/internals/GroupTransportState.d.ts.map +1 -0
  62. package/bin/{internals → esm/internals}/GroupTransportState.js +11 -13
  63. package/bin/esm/internals/GroupTransportState.js.map +1 -0
  64. package/bin/esm/internals/PriorityTimeInterval.d.ts +33 -0
  65. package/bin/esm/internals/PriorityTimeInterval.d.ts.map +1 -0
  66. package/bin/esm/internals/PriorityTimeInterval.js +53 -0
  67. package/bin/esm/internals/PriorityTimeInterval.js.map +1 -0
  68. package/bin/esm/internals/consts.d.ts.map +1 -0
  69. package/bin/{internals → esm/internals}/consts.js +1 -4
  70. package/bin/esm/internals/consts.js.map +1 -0
  71. package/bin/esm/internals/errors.d.ts.map +1 -0
  72. package/bin/{internals → esm/internals}/errors.js +2 -7
  73. package/bin/esm/internals/errors.js.map +1 -0
  74. package/bin/esm/internals/interfaces.d.ts +23 -0
  75. package/bin/esm/internals/interfaces.d.ts.map +1 -0
  76. package/bin/esm/internals/interfaces.js +2 -0
  77. package/bin/{internals → esm/internals}/interfaces.js.map +1 -1
  78. package/package.json +21 -12
  79. package/src/LiveMediaSession.ts +29 -14
  80. package/src/LiveMediaSessionCoordinator.ts +149 -37
  81. package/src/LiveMediaSessionCoordinatorSuspension.ts +2 -4
  82. package/src/MediaPlayerSynchronizer.ts +26 -11
  83. package/src/MediaSessionActionThrottler.ts +1 -1
  84. package/src/RepeatedActionThrottler.ts +2 -2
  85. package/src/VolumeManager.ts +6 -6
  86. package/src/index.ts +9 -9
  87. package/src/internals/GroupCoordinatorState.ts +19 -15
  88. package/src/internals/GroupPlaybackPosition.ts +9 -9
  89. package/src/internals/GroupPlaybackRate.ts +4 -4
  90. package/src/internals/GroupPlaybackTrack.ts +5 -5
  91. package/src/internals/GroupPlaybackTrackData.ts +5 -5
  92. package/src/internals/GroupTransportState.ts +8 -8
  93. package/src/internals/PriorityTimeInterval.ts +76 -0
  94. package/src/internals/interfaces.ts +15 -1
  95. package/tsconfig.json +64 -74
  96. package/.nycrc.json +0 -11
  97. package/bin/IMediaPlayer.d.ts.map +0 -1
  98. package/bin/IMediaPlayer.js.map +0 -1
  99. package/bin/LiveMediaSession.d.ts.map +0 -1
  100. package/bin/LiveMediaSession.js +0 -255
  101. package/bin/LiveMediaSession.js.map +0 -1
  102. package/bin/LiveMediaSessionCoordinator.d.ts.map +0 -1
  103. package/bin/LiveMediaSessionCoordinator.js +0 -472
  104. package/bin/LiveMediaSessionCoordinator.js.map +0 -1
  105. package/bin/LiveMediaSessionCoordinatorSuspension.d.ts.map +0 -1
  106. package/bin/LiveMediaSessionCoordinatorSuspension.js.map +0 -1
  107. package/bin/MediaPlayerSynchronizer.d.ts.map +0 -1
  108. package/bin/MediaPlayerSynchronizer.js.map +0 -1
  109. package/bin/MediaSessionActionThrottler.d.ts.map +0 -1
  110. package/bin/MediaSessionActionThrottler.js +0 -14
  111. package/bin/MediaSessionActionThrottler.js.map +0 -1
  112. package/bin/MediaSessionExtensions.d.ts.map +0 -1
  113. package/bin/MediaSessionExtensions.js.map +0 -1
  114. package/bin/RepeatedActionThrottler.d.ts.map +0 -1
  115. package/bin/RepeatedActionThrottler.js.map +0 -1
  116. package/bin/VolumeManager.d.ts.map +0 -1
  117. package/bin/VolumeManager.js.map +0 -1
  118. package/bin/index.d.ts +0 -14
  119. package/bin/index.d.ts.map +0 -1
  120. package/bin/index.js +0 -30
  121. package/bin/index.js.map +0 -1
  122. package/bin/internals/GroupCoordinatorState.d.ts.map +0 -1
  123. package/bin/internals/GroupCoordinatorState.js.map +0 -1
  124. package/bin/internals/GroupPlaybackPosition.d.ts.map +0 -1
  125. package/bin/internals/GroupPlaybackPosition.js.map +0 -1
  126. package/bin/internals/GroupPlaybackRate.d.ts.map +0 -1
  127. package/bin/internals/GroupPlaybackRate.js.map +0 -1
  128. package/bin/internals/GroupPlaybackTrack.d.ts.map +0 -1
  129. package/bin/internals/GroupPlaybackTrack.js.map +0 -1
  130. package/bin/internals/GroupPlaybackTrackData.d.ts.map +0 -1
  131. package/bin/internals/GroupPlaybackTrackData.js.map +0 -1
  132. package/bin/internals/GroupTransportState.d.ts.map +0 -1
  133. package/bin/internals/GroupTransportState.js.map +0 -1
  134. package/bin/internals/consts.d.ts.map +0 -1
  135. package/bin/internals/consts.js.map +0 -1
  136. package/bin/internals/errors.d.ts.map +0 -1
  137. package/bin/internals/errors.js.map +0 -1
  138. package/bin/internals/index.d.ts +0 -13
  139. package/bin/internals/index.d.ts.map +0 -1
  140. package/bin/internals/index.js +0 -29
  141. package/bin/internals/index.js.map +0 -1
  142. package/bin/internals/interfaces.d.ts +0 -10
  143. package/bin/internals/interfaces.d.ts.map +0 -1
  144. package/bin/internals/interfaces.js +0 -3
  145. package/src/internals/index.ts +0 -13
  146. package/tsconfig.build.json +0 -9
  147. package/typedoc.json +0 -10
  148. /package/bin/{IMediaPlayer.d.ts → esm/IMediaPlayer.d.ts} +0 -0
  149. /package/bin/{MediaSessionExtensions.d.ts → esm/MediaSessionExtensions.d.ts} +0 -0
  150. /package/bin/{internals → esm/internals}/consts.d.ts +0 -0
  151. /package/bin/{internals → esm/internals}/errors.d.ts +0 -0
@@ -1,84 +1,81 @@
1
- "use strict";
2
1
  /**
3
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
3
  * Licensed under the Microsoft Live Share SDK License.
5
4
  */
6
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
7
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- var __importDefault = (this && this.__importDefault) || function (mod) {
16
- return (mod && mod.__esModule) ? mod : { "default": mod };
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.GroupCoordinatorState = exports.GroupCoordinatorStateEvents = void 0;
20
- const live_share_1 = require("@microsoft/live-share");
21
- const events_1 = __importDefault(require("events"));
22
- const GroupPlaybackTrack_1 = require("./GroupPlaybackTrack");
23
- const GroupTransportState_1 = require("./GroupTransportState");
24
- const GroupPlaybackPosition_1 = require("./GroupPlaybackPosition");
25
- const GroupTransportState_2 = require("./GroupTransportState");
26
- const GroupPlaybackTrackData_1 = require("./GroupPlaybackTrackData");
27
- const consts_1 = require("./consts");
28
- const internals_1 = require("@microsoft/live-share/bin/internals");
29
- const GroupPlaybackRate_1 = require("./GroupPlaybackRate");
5
+ import { LiveTelemetryLogger, } from "@microsoft/live-share";
6
+ import { waitUntilConnected, } from "@microsoft/live-share/internal";
7
+ import { GroupPlaybackTrack, GroupPlaybackTrackEvents, } from "./GroupPlaybackTrack.js";
8
+ import { GroupTransportState, } from "./GroupTransportState.js";
9
+ import { GroupPlaybackPosition, } from "./GroupPlaybackPosition.js";
10
+ import { GroupTransportStateEvents } from "./GroupTransportState.js";
11
+ import { GroupPlaybackTrackData, PlaybackTrackDataEvents, } from "./GroupPlaybackTrackData.js";
12
+ import { TelemetryEvents } from "./consts.js";
13
+ import { GroupPlaybackRate, PlaybackRateEvents, } from "./GroupPlaybackRate.js";
14
+ import { TypedEventEmitter } from "@fluid-internal/client-utils";
30
15
  /**
31
16
  * @hidden
32
17
  */
33
- var GroupCoordinatorStateEvents;
18
+ export var GroupCoordinatorStateEvents;
34
19
  (function (GroupCoordinatorStateEvents) {
35
20
  GroupCoordinatorStateEvents["newwaitpoint"] = "newwaitpoint";
36
21
  GroupCoordinatorStateEvents["triggeraction"] = "triggeraction";
37
22
  GroupCoordinatorStateEvents["triggeractionignored"] = "triggeractionignored";
38
- })(GroupCoordinatorStateEvents || (exports.GroupCoordinatorStateEvents = GroupCoordinatorStateEvents = {}));
23
+ })(GroupCoordinatorStateEvents || (GroupCoordinatorStateEvents = {}));
39
24
  /**
40
25
  * @hidden
41
26
  */
42
- class GroupCoordinatorState extends events_1.default {
27
+ export class GroupCoordinatorState extends TypedEventEmitter {
28
+ _runtime;
29
+ _liveRuntime;
30
+ _logger;
31
+ _maxPlaybackDrift;
32
+ _getMediaPlayerState;
33
+ // Shared group state
34
+ _playbackTrack;
35
+ _playbackTrackData;
36
+ _transportState;
37
+ _playbackPosition;
38
+ _playbackRate;
39
+ // Suspension tracking
40
+ _suspensionCnt = 0;
41
+ _waitPoint;
42
+ // "Soft Suspension" tracking
43
+ // - Soft suspensions temporarily disconnect the local media session when transitioning between
44
+ // paused, playing, and none states. This is to give the local client time to finish any inprogress
45
+ // operations like sending a transport command or ending a suspension.
46
+ _lastStateChange = "none";
47
+ _lastStateChangeTime = 0;
43
48
  constructor(runtime, liveRuntime, maxPlaybackDrift, positionUpdateInterval, getMediaPlayerState) {
44
49
  super();
45
- // Suspension tracking
46
- this._suspensionCnt = 0;
47
- // "Soft Suspension" tracking
48
- // - Soft suspensions temporarily disconnect the local media session when transitioning between
49
- // paused, playing, and none states. This is to give the local client time to finish any inprogress
50
- // operations like sending a transport command or ending a suspension.
51
- this._lastStateChange = "none";
52
- this._lastStateChangeTime = 0;
53
50
  this._runtime = runtime;
54
51
  this._liveRuntime = liveRuntime;
55
- this._logger = new live_share_1.LiveTelemetryLogger(runtime, liveRuntime);
52
+ this._logger = new LiveTelemetryLogger(runtime, liveRuntime);
56
53
  this._maxPlaybackDrift = maxPlaybackDrift;
57
- this._playbackTrack = new GroupPlaybackTrack_1.GroupPlaybackTrack(getMediaPlayerState);
58
- this._playbackTrackData = new GroupPlaybackTrackData_1.GroupPlaybackTrackData(this._playbackTrack);
59
- this._playbackRate = new GroupPlaybackRate_1.GroupPlaybackRate();
60
- this._transportState = new GroupTransportState_1.GroupTransportState(this._playbackTrack, this._playbackRate, getMediaPlayerState, this._liveRuntime);
61
- this._playbackPosition = new GroupPlaybackPosition_1.GroupPlaybackPosition(this._transportState, this._playbackRate, this._runtime, this._liveRuntime, positionUpdateInterval);
54
+ this._playbackTrack = new GroupPlaybackTrack(getMediaPlayerState);
55
+ this._playbackTrackData = new GroupPlaybackTrackData(this._playbackTrack);
56
+ this._playbackRate = new GroupPlaybackRate();
57
+ this._transportState = new GroupTransportState(this._playbackTrack, this._playbackRate, getMediaPlayerState, this._liveRuntime);
58
+ this._playbackPosition = new GroupPlaybackPosition(this._transportState, this._playbackRate, this._runtime, this._liveRuntime, positionUpdateInterval);
62
59
  this._getMediaPlayerState = getMediaPlayerState;
63
60
  // Listen track related events
64
- this._playbackTrack.on(GroupPlaybackTrack_1.GroupPlaybackTrackEvents.trackChange, (evt) => {
61
+ this._playbackTrack.on(GroupPlaybackTrackEvents.trackChange, (evt) => {
65
62
  if (!this.isSuspended) {
66
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TrackChanged);
63
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TrackChanged);
67
64
  this.emitSetTrack(evt.clientId, evt.metadata, evt.source);
68
65
  }
69
66
  else {
70
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TrackChangeDelayed);
67
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TrackChangeDelayed);
71
68
  }
72
69
  });
73
70
  // Listen for track data changes
74
- this._playbackTrackData.on(GroupPlaybackTrackData_1.PlaybackTrackDataEvents.dataChange, (evt) => __awaiter(this, void 0, void 0, function* () {
71
+ this._playbackTrackData.on(PlaybackTrackDataEvents.dataChange, async (evt) => {
75
72
  if (!this.isSuspended && !this.isWaiting) {
76
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TrackDataChanged);
73
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TrackDataChanged);
77
74
  }
78
75
  else {
79
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TrackDataChangeDelayed);
76
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TrackDataChangeDelayed);
80
77
  }
81
- const clientId = yield (0, internals_1.waitUntilConnected)(this._runtime);
78
+ const clientId = await waitUntilConnected(this._runtime);
82
79
  this.emitTriggerActionOrIgnored({
83
80
  action: "datachange",
84
81
  source: evt.source,
@@ -86,16 +83,16 @@ class GroupCoordinatorState extends events_1.default {
86
83
  clientId: evt.clientId,
87
84
  local: evt.clientId === clientId,
88
85
  });
89
- }));
90
- this._playbackRate.on(GroupPlaybackRate_1.PlaybackRateEvents.rateChange, (evt) => __awaiter(this, void 0, void 0, function* () {
86
+ });
87
+ this._playbackRate.on(PlaybackRateEvents.rateChange, async (evt) => {
91
88
  if (!this.isSuspended && !this.isWaiting) {
92
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.PlaybackRateChanged);
89
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.PlaybackRateChanged);
93
90
  }
94
91
  else {
95
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator
92
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator
96
93
  .PlaybackRateChangedDelayed);
97
94
  }
98
- const localClientId = yield (0, internals_1.waitUntilConnected)(this._runtime);
95
+ const localClientId = await waitUntilConnected(this._runtime);
99
96
  const local = evt.clientId === localClientId;
100
97
  this.emitTriggerActionOrIgnored({
101
98
  action: "ratechange",
@@ -104,19 +101,19 @@ class GroupCoordinatorState extends events_1.default {
104
101
  local,
105
102
  playbackRate: evt.playbackRate,
106
103
  });
107
- }));
104
+ });
108
105
  // Listen to transport related events
109
- this._transportState.on(GroupTransportState_2.GroupTransportStateEvents.transportStateChange, (evt) => __awaiter(this, void 0, void 0, function* () {
106
+ this._transportState.on(GroupTransportStateEvents.transportStateChange, async (evt) => {
110
107
  const tag = this.isSuspended || this.isWaiting
111
- ? consts_1.TelemetryEvents.GroupCoordinator
108
+ ? TelemetryEvents.GroupCoordinator
112
109
  .TransportStateChangeDelayed
113
- : consts_1.TelemetryEvents.GroupCoordinator
110
+ : TelemetryEvents.GroupCoordinator
114
111
  .TransportStateChanged;
115
112
  this._logger.sendTelemetryEvent(tag, null, {
116
113
  action: evt.action,
117
114
  seekTime: evt.seekTime,
118
115
  });
119
- const localClientId = yield (0, internals_1.waitUntilConnected)(this._runtime);
116
+ const localClientId = await waitUntilConnected(this._runtime);
120
117
  const local = evt.clientId === localClientId;
121
118
  // Trigger action
122
119
  switch (evt.action) {
@@ -148,7 +145,7 @@ class GroupCoordinatorState extends events_1.default {
148
145
  });
149
146
  break;
150
147
  }
151
- }));
148
+ });
152
149
  }
153
150
  get playbackTrack() {
154
151
  return this._playbackTrack;
@@ -203,7 +200,7 @@ class GroupCoordinatorState extends events_1.default {
203
200
  transport: this.transportState.current,
204
201
  playbackRate: this.playbackRate.current,
205
202
  playbackState: "suspended",
206
- position: (positionState === null || positionState === void 0 ? void 0 : positionState.position) || 0.0,
203
+ position: positionState?.position || 0.0,
207
204
  waitPoint: this._waitPoint,
208
205
  };
209
206
  }
@@ -215,7 +212,7 @@ class GroupCoordinatorState extends events_1.default {
215
212
  transport: this.transportState.current,
216
213
  playbackRate: this.playbackRate.current,
217
214
  playbackState: this._waitPoint ? "waiting" : playbackState,
218
- position: (positionState === null || positionState === void 0 ? void 0 : positionState.position) || 0.0,
215
+ position: positionState?.position || 0.0,
219
216
  waitPoint: this._waitPoint,
220
217
  };
221
218
  }
@@ -230,8 +227,8 @@ class GroupCoordinatorState extends events_1.default {
230
227
  clientId: event.clientId || "",
231
228
  }, "user");
232
229
  if (updated) {
233
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.SessionCoordinator.RemoteSetTrackReceived, null, {
234
- correlationId: live_share_1.LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp),
230
+ this._logger.sendTelemetryEvent(TelemetryEvents.SessionCoordinator.RemoteSetTrackReceived, null, {
231
+ correlationId: LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp),
235
232
  });
236
233
  }
237
234
  }
@@ -244,8 +241,8 @@ class GroupCoordinatorState extends events_1.default {
244
241
  clientId: event.clientId || "",
245
242
  }, "user");
246
243
  if (updated) {
247
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.SessionCoordinator.RemoteSetTrackReceived, null, {
248
- correlationId: live_share_1.LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp),
244
+ this._logger.sendTelemetryEvent(TelemetryEvents.SessionCoordinator.RemoteSetTrackReceived, null, {
245
+ correlationId: LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp),
249
246
  });
250
247
  }
251
248
  }
@@ -257,8 +254,8 @@ class GroupCoordinatorState extends events_1.default {
257
254
  };
258
255
  const updated = this.playbackRate.updatePlaybackRate(newState, "user");
259
256
  if (updated) {
260
- const correlationId = live_share_1.LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp);
261
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.SessionCoordinator.RemoteRateChangeReceived, null, {
257
+ const correlationId = LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp);
258
+ this._logger.sendTelemetryEvent(TelemetryEvents.SessionCoordinator.RemoteRateChangeReceived, null, {
262
259
  correlationId: correlationId,
263
260
  });
264
261
  }
@@ -287,22 +284,22 @@ class GroupCoordinatorState extends events_1.default {
287
284
  };
288
285
  const updated = this.transportState.updateState(newState, "user");
289
286
  if (updated) {
290
- const correlationId = live_share_1.LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp);
287
+ const correlationId = LiveTelemetryLogger.formatCorrelationId(event.clientId, event.timestamp);
291
288
  switch (event.name) {
292
289
  case "play":
293
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.SessionCoordinator
290
+ this._logger.sendTelemetryEvent(TelemetryEvents.SessionCoordinator
294
291
  .RemotePlayReceived, null, {
295
292
  correlationId: correlationId,
296
293
  });
297
294
  break;
298
295
  case "pause":
299
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.SessionCoordinator
296
+ this._logger.sendTelemetryEvent(TelemetryEvents.SessionCoordinator
300
297
  .RemotePauseReceived, null, {
301
298
  correlationId: correlationId,
302
299
  });
303
300
  break;
304
301
  case "seekTo":
305
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.SessionCoordinator
302
+ this._logger.sendTelemetryEvent(TelemetryEvents.SessionCoordinator
306
303
  .RemoteSeekToReceived, null, {
307
304
  correlationId: correlationId,
308
305
  });
@@ -347,7 +344,7 @@ class GroupCoordinatorState extends events_1.default {
347
344
  case "playing":
348
345
  if (event.data.playbackState !=
349
346
  this._lastStateChange) {
350
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator
347
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator
351
348
  .BeginSoftSuspension, null, { playbackState: event.data.playbackState });
352
349
  this._lastStateChange =
353
350
  event.data.playbackState;
@@ -373,122 +370,118 @@ class GroupCoordinatorState extends events_1.default {
373
370
  }
374
371
  }
375
372
  }
376
- syncLocalMediaSession() {
377
- return __awaiter(this, void 0, void 0, function* () {
378
- // Skip further syncs if we're waiting or in a "soft suspension".
379
- const softSuspensionDelta = this._liveRuntime.getTimestamp() - this._lastStateChangeTime;
380
- if (!this.isWaiting && softSuspensionDelta >= 1000) {
381
- let { metadata, trackData, positionState, playbackState } = this._getMediaPlayerState();
382
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.CheckingForSyncIssues);
383
- // Check for track change
384
- if (!this.playbackTrack.compare(metadata)) {
385
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TrackOutOfSync);
386
- this.emitSetTrack(this.playbackTrack.current.clientId, this.playbackTrack.metadata, "system");
387
- return;
373
+ async syncLocalMediaSession() {
374
+ // Skip further syncs if we're waiting or in a "soft suspension".
375
+ const softSuspensionDelta = this._liveRuntime.getTimestamp() - this._lastStateChangeTime;
376
+ if (!this.isWaiting && softSuspensionDelta >= 1000) {
377
+ let { metadata, trackData, positionState, playbackState } = this._getMediaPlayerState();
378
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.CheckingForSyncIssues);
379
+ // Check for track change
380
+ if (!this.playbackTrack.compare(metadata)) {
381
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TrackOutOfSync);
382
+ this.emitSetTrack(this.playbackTrack.current.clientId, this.playbackTrack.metadata, "system");
383
+ return;
384
+ }
385
+ // Once local playback has ended there's no need to further sync the client. In fact
386
+ // doing so could cause the player to loop.
387
+ // - The playbackPosition.trackEnded check is to catch late joiners and prevents syncing if everyone
388
+ // else has finished the video.
389
+ // - Should another user seek or press play after the video has ended that will cause
390
+ // a transport action to trigger which will take the player out of the ended state.
391
+ if (playbackState != "ended" &&
392
+ !this._playbackPosition.trackEnded) {
393
+ // Ensure we have a position
394
+ let position = positionState?.position;
395
+ if (position == undefined) {
396
+ position = 0.0;
388
397
  }
389
- // Once local playback has ended there's no need to further sync the client. In fact
390
- // doing so could cause the player to loop.
391
- // - The playbackPosition.trackEnded check is to catch late joiners and prevents syncing if everyone
392
- // else has finished the video.
393
- // - Should another user seek or press play after the video has ended that will cause
394
- // a transport action to trigger which will take the player out of the ended state.
395
- if (playbackState != "ended" &&
396
- !this._playbackPosition.trackEnded) {
397
- // Ensure we have a position
398
- let position = positionState === null || positionState === void 0 ? void 0 : positionState.position;
399
- if (position == undefined) {
400
- position = 0.0;
401
- }
402
- // Check for catchup
403
- // - Target can return -1 in cases where there is no position tracking data
404
- const target = this.playbackPosition.targetPosition;
405
- if (target >= 0.0 &&
406
- Math.abs(target - position) >=
407
- Math.max(this._maxPlaybackDrift.seconds, this._maxPlaybackDrift.seconds *
408
- this._playbackRate.rate)) {
409
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.PositionOutOfSync, null, {
410
- current: position,
411
- target: target,
412
- });
413
- this.emitTriggerAction({
414
- action: "catchup",
415
- source: "system",
416
- clientId: yield (0, internals_1.waitUntilConnected)(this._runtime),
417
- local: true,
418
- seekTime: target,
419
- });
420
- }
421
- const localClientId = yield (0, internals_1.waitUntilConnected)(this._runtime);
422
- // Sync transport state
423
- if (this.transportState.playbackState != playbackState) {
424
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TransportOutOfSync, null, {
425
- current: playbackState,
426
- target: this.transportState.playbackState,
427
- });
428
- const local = localClientId === this.transportState.current.clientId;
429
- switch (this.transportState.playbackState) {
430
- case "playing":
431
- this.emitTriggerAction({
432
- action: "play",
433
- source: "system",
434
- clientId: this.transportState.current.clientId,
435
- local,
436
- });
437
- break;
438
- case "paused":
439
- this.emitTriggerAction({
440
- action: "pause",
441
- source: "system",
442
- clientId: this.transportState.current.clientId,
443
- local,
444
- });
445
- break;
446
- }
447
- }
448
- // Sync track data
449
- if (JSON.stringify(this.playbackTrackData.data) !=
450
- JSON.stringify(trackData)) {
451
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.TrackDataOutOfSync);
452
- const local = localClientId ===
453
- this.playbackTrackData.current.clientId;
454
- this.emitTriggerAction({
455
- action: "datachange",
456
- source: "system",
457
- clientId: this.playbackTrackData.current.clientId,
458
- local,
459
- data: this.playbackTrackData.data,
460
- });
461
- }
462
- // Sync playback rate
463
- if (this.playbackRate.rate != (positionState === null || positionState === void 0 ? void 0 : positionState.playbackRate)) {
464
- this._logger.sendTelemetryEvent(consts_1.TelemetryEvents.GroupCoordinator.PlaybackRateOutOfSync);
465
- const local = localClientId ===
466
- this.playbackTrackData.current.clientId;
467
- this.emitTriggerAction({
468
- action: "ratechange",
469
- source: "system",
470
- clientId: this.playbackTrackData.current.clientId,
471
- local,
472
- playbackRate: this.playbackRate.rate,
473
- });
398
+ // Check for catchup
399
+ // - Target can return -1 in cases where there is no position tracking data
400
+ const target = this.playbackPosition.targetPosition;
401
+ if (target >= 0.0 &&
402
+ Math.abs(target - position) >=
403
+ Math.max(this._maxPlaybackDrift.seconds, this._maxPlaybackDrift.seconds *
404
+ this._playbackRate.rate)) {
405
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.PositionOutOfSync, null, {
406
+ current: position,
407
+ target: target,
408
+ });
409
+ this.emitTriggerAction({
410
+ action: "catchup",
411
+ source: "system",
412
+ clientId: await waitUntilConnected(this._runtime),
413
+ local: true,
414
+ seekTime: target,
415
+ });
416
+ }
417
+ const localClientId = await waitUntilConnected(this._runtime);
418
+ // Sync transport state
419
+ if (this.transportState.playbackState != playbackState) {
420
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TransportOutOfSync, null, {
421
+ current: playbackState,
422
+ target: this.transportState.playbackState,
423
+ });
424
+ const local = localClientId === this.transportState.current.clientId;
425
+ switch (this.transportState.playbackState) {
426
+ case "playing":
427
+ this.emitTriggerAction({
428
+ action: "play",
429
+ source: "system",
430
+ clientId: this.transportState.current.clientId,
431
+ local,
432
+ });
433
+ break;
434
+ case "paused":
435
+ this.emitTriggerAction({
436
+ action: "pause",
437
+ source: "system",
438
+ clientId: this.transportState.current.clientId,
439
+ local,
440
+ });
441
+ break;
474
442
  }
475
443
  }
444
+ // Sync track data
445
+ if (JSON.stringify(this.playbackTrackData.data) !=
446
+ JSON.stringify(trackData)) {
447
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.TrackDataOutOfSync);
448
+ const local = localClientId ===
449
+ this.playbackTrackData.current.clientId;
450
+ this.emitTriggerAction({
451
+ action: "datachange",
452
+ source: "system",
453
+ clientId: this.playbackTrackData.current.clientId,
454
+ local,
455
+ data: this.playbackTrackData.data,
456
+ });
457
+ }
458
+ // Sync playback rate
459
+ if (this.playbackRate.rate != positionState?.playbackRate) {
460
+ this._logger.sendTelemetryEvent(TelemetryEvents.GroupCoordinator.PlaybackRateOutOfSync);
461
+ const local = localClientId ===
462
+ this.playbackTrackData.current.clientId;
463
+ this.emitTriggerAction({
464
+ action: "ratechange",
465
+ source: "system",
466
+ clientId: this.playbackTrackData.current.clientId,
467
+ local,
468
+ playbackRate: this.playbackRate.rate,
469
+ });
470
+ }
476
471
  }
477
- });
472
+ }
478
473
  }
479
- emitSetTrack(clientId, metadata, source) {
480
- return __awaiter(this, void 0, void 0, function* () {
481
- // Reset tracking states
482
- this._waitPoint = undefined;
483
- const localClientId = yield (0, internals_1.waitUntilConnected)(this._runtime);
484
- // Trigger settrack action
485
- this.emitTriggerAction({
486
- action: "settrack",
487
- source,
488
- clientId,
489
- local: localClientId === clientId,
490
- metadata,
491
- });
474
+ async emitSetTrack(clientId, metadata, source) {
475
+ // Reset tracking states
476
+ this._waitPoint = undefined;
477
+ const localClientId = await waitUntilConnected(this._runtime);
478
+ // Trigger settrack action
479
+ this.emitTriggerAction({
480
+ action: "settrack",
481
+ source,
482
+ clientId,
483
+ local: localClientId === clientId,
484
+ metadata,
492
485
  });
493
486
  }
494
487
  emitTriggerActionOrIgnored(details) {
@@ -515,5 +508,4 @@ class GroupCoordinatorState extends events_1.default {
515
508
  this.emit(GroupCoordinatorStateEvents.triggeractionignored, evt);
516
509
  }
517
510
  }
518
- exports.GroupCoordinatorState = GroupCoordinatorState;
519
511
  //# sourceMappingURL=GroupCoordinatorState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupCoordinatorState.js","sourceRoot":"","sources":["../../../src/internals/GroupCoordinatorState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGH,mBAAmB,GAEtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGH,kBAAkB,GACrB,MAAM,gCAAgC,CAAC;AAQxC,OAAO,EACH,kBAAkB,EAClB,wBAAwB,GAG3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,mBAAmB,GAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,qBAAqB,GAExB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACH,sBAAsB,EACtB,uBAAuB,GAG1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACH,iBAAiB,EAGjB,kBAAkB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAsDjE;;GAEG;AACH,MAAM,CAAN,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACnC,4DAA6B,CAAA;IAC7B,8DAA+B,CAAA;IAC/B,4EAA6C,CAAA;AACjD,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,QAItC;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,iBAAsC;IAC5D,QAAQ,CAAmB;IAC3B,YAAY,CAAmB;IAC/B,OAAO,CAAsB;IAC7B,iBAAiB,CAAe;IACzC,oBAAoB,CAA0B;IAEtD,qBAAqB;IACb,cAAc,CAAqB;IACnC,kBAAkB,CAAyB;IAC3C,eAAe,CAAsB;IACrC,iBAAiB,CAAwB;IACzC,aAAa,CAAoB;IAEzC,sBAAsB;IACd,cAAc,GAAW,CAAC,CAAC;IAC3B,UAAU,CAAyB;IAE3C,6BAA6B;IAC7B,+FAA+F;IAC/F,qGAAqG;IACrG,wEAAwE;IAChE,gBAAgB,GAAsC,MAAM,CAAC;IAC7D,oBAAoB,GAAW,CAAC,CAAC;IAEzC,YACI,OAAyB,EACzB,WAA6B,EAC7B,gBAA8B,EAC9B,sBAA4C,EAC5C,mBAA4C;QAE5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,IAAI,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAClE,IAAI,CAAC,kBAAkB,GAAG,IAAI,sBAAsB,CAChD,IAAI,CAAC,cAAc,CACtB,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAC1C,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,aAAa,EAClB,mBAAmB,EACnB,IAAI,CAAC,YAAY,CACpB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,qBAAqB,CAC9C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,EACjB,sBAAsB,CACzB,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;QAEhD,8BAA8B;QAC9B,IAAI,CAAC,cAAc,CAAC,EAAE,CAClB,wBAAwB,CAAC,WAAW,EACpC,CAAC,GAA8B,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,YAAY,CAChD,CAAC;gBACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,kBAAkB,CACtD,CAAC;YACN,CAAC;QACL,CAAC,CACJ,CAAC;QAEF,gCAAgC;QAChC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CACtB,uBAAuB,CAAC,UAAU,EAClC,KAAK,EAAE,GAAkC,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,gBAAgB,CACpD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,sBAAsB,CAC1D,CAAC;YACN,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,0BAA0B,CAAC;gBAC5B,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,KAAK,EAAE,GAAG,CAAC,QAAQ,KAAK,QAAQ;aACnC,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,EAAE,CACjB,kBAAkB,CAAC,UAAU,EAC7B,KAAK,EAAE,GAA6B,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,mBAAmB,CACvD,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB;qBAC3B,0BAA0B,CAClC,CAAC;YACN,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;YAC7C,IAAI,CAAC,0BAA0B,CAAC;gBAC5B,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,KAAK;gBACL,YAAY,EAAE,GAAG,CAAC,YAAY;aACjC,CAAC,CAAC;QACP,CAAC,CACJ,CAAC;QAEF,qCAAqC;QACrC,IAAI,CAAC,eAAe,CAAC,EAAE,CACnB,yBAAyB,CAAC,oBAAoB,EAC9C,KAAK,EAAE,GAA+B,EAAE,EAAE;YACtC,MAAM,GAAG,GACL,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;gBAC9B,CAAC,CAAC,eAAe,CAAC,gBAAgB;qBAC3B,2BAA2B;gBAClC,CAAC,CAAC,eAAe,CAAC,gBAAgB;qBAC3B,qBAAqB,CAAC;YAErC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE;gBACvC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACzB,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;YAC7C,iBAAiB;YACjB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACP,IAAI,CAAC,0BAA0B,CAAC;wBAC5B,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,KAAK;wBACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACzB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,OAAO;oBACR,IAAI,CAAC,0BAA0B,CAAC;wBAC5B,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,KAAK;wBACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACzB,CAAC,CAAC;oBACH,MAAM;gBAEV,KAAK,QAAQ;oBACT,IAAI,CAAC,0BAA0B,CAAC;wBAC5B,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,KAAK;wBACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACzB,CAAC,CAAC;oBACH,MAAM;YACd,CAAC;QACL,CAAC,CACJ,CAAC;IACN,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,SAAiC;QACpD,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,SAAS,EAAE,CAAC;YACZ,8BAA8B;YAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAE5B,2CAA2C;YAC3C,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,SAAkB;QACnC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACX,uJAAuJ,IAAI,CAAC,cAAc,EAAE,CAC/K,CAAC;QACN,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YACxC,8BAA8B;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACjC,CAAC;IACL,CAAC;IAEM,yBAAyB,CAC5B,KAAwB;QAExB,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,0BAA0B;YAC1B,OAAO;gBACH,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;gBACjC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;gBACzC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;gBACtC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;gBACvC,aAAa,EAAE,WAAW;gBAC1B,QAAQ,EAAE,aAAa,EAAE,QAAQ,IAAI,GAAG;gBACxC,SAAS,EAAE,IAAI,CAAC,UAAU;aAC7B,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,0BAA0B;YAC1B,OAAO;gBACH,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO;gBACjC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;gBACzC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;gBACtC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;gBACvC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;gBAC1D,QAAQ,EAAE,aAAa,EAAE,QAAQ,IAAI,GAAG;gBACxC,SAAS,EAAE,IAAI,CAAC,UAAU;aAC7B,CAAC;QACN,CAAC;IACL,CAAC;IAEM,cAAc,CACjB,KAAiC,EACjC,KAAc;QAEd,sBAAsB;QACtB,6DAA6D;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAC1C;YACI,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YAC7B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YACjC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;SACjC,EACD,MAAM,CACT,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,kBAAkB,CAAC,sBAAsB,EACzD,IAAI,EACJ;gBACI,aAAa,EAAE,mBAAmB,CAAC,mBAAmB,CAClD,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,CAClB;aACJ,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAEM,kBAAkB,CACrB,KAAqC,EACrC,KAAc;QAEd,2BAA2B;QAC3B,4DAA4D;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAC7C;YACI,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;SACjC,EACD,MAAM,CACT,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,kBAAkB,CAAC,sBAAsB,EACzD,IAAI,EACJ;gBACI,aAAa,EAAE,mBAAmB,CAAC,mBAAmB,CAClD,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,CAClB;aACJ,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAEM,uBAAuB,CAC1B,KAA0C,EAC1C,KAAc;QAEd,MAAM,QAAQ,GAAkB;YAC5B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;YACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC7B,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvE,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,aAAa,GAAG,mBAAmB,CAAC,mBAAmB,CACzD,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,CAClB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,kBAAkB,CAAC,wBAAwB,EAC3D,IAAI,EACJ;gBACI,aAAa,EAAE,aAAa;aAC/B,CACJ,CAAC;QACN,CAAC;IACL,CAAC;IAEM,sBAAsB,CACzB,KAAyC,EACzC,KAAc;QAEd,qCAAqC;QACrC,uDAAuD;QACvD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,wBAAwB;YACxB,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;YACtD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACP,aAAa,GAAG,SAAS,CAAC;oBAC1B,MAAM;gBACV,KAAK,OAAO;oBACR,aAAa,GAAG,QAAQ,CAAC;oBACzB,MAAM;YACd,CAAC;YAED,+BAA+B;YAC/B,MAAM,QAAQ,GAAoB;gBAC9B,aAAa,EAAE,aAAa;gBAC5B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;gBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;aACjC,CAAC;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAElE,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,aAAa,GAAG,mBAAmB,CAAC,mBAAmB,CACzD,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,CAClB,CAAC;gBACF,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACjB,KAAK,MAAM;wBACP,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,kBAAkB;6BAC7B,kBAAkB,EACvB,IAAI,EACJ;4BACI,aAAa,EAAE,aAAa;yBAC/B,CACJ,CAAC;wBACF,MAAM;oBACV,KAAK,OAAO;wBACR,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,kBAAkB;6BAC7B,mBAAmB,EACxB,IAAI,EACJ;4BACI,aAAa,EAAE,aAAa;yBAC/B,CACJ,CAAC;wBACF,MAAM;oBACV,KAAK,QAAQ;wBACT,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,kBAAkB;6BAC7B,oBAAoB,EACzB,IAAI,EACJ;4BACI,aAAa,EAAE,aAAa;yBAC/B,CACJ,CAAC;wBACF,MAAM;gBACd,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEM,oBAAoB,CACvB,KAAuC,EACvC,KAAc;QAEd,qCAAqC;QACrC,uDAAuD;QACvD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,uCAAuC;YACvC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAElE,mCAAmC;YACnC,wFAAwF;YACxF,gFAAgF;YAChF,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACpE,CAAC;YAED,+CAA+C;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,2BAA2B;gBAC3B,MAAM,QAAQ,GAA6B;oBACvC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;oBACvC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;oBAC/B,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;oBAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;iBACjC,CAAC;gBACF,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;gBAEvD,mDAAmD;gBACnD,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC7B,oDAAoD;oBACpD,6EAA6E;oBAC7E,0EAA0E;oBAC1E,iBAAiB;oBACjB,QAAQ,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;wBAC/B,KAAK,MAAM,CAAC;wBACZ,KAAK,QAAQ,CAAC;wBACd,KAAK,SAAS;4BACV,IACI,KAAK,CAAC,IAAI,CAAC,aAAa;gCACxB,IAAI,CAAC,gBAAgB,EACvB,CAAC;gCACC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB;qCAC3B,mBAAmB,EACxB,IAAI,EACJ,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,CAC9C,CAAC;gCACF,IAAI,CAAC,gBAAgB;oCACjB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;gCAC7B,IAAI,CAAC,oBAAoB;oCACrB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;4BACzC,CAAC;4BACD,MAAM;oBACd,CAAC;oBAED,kBAAkB;oBAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,2BAA2B;wBAC3B,IAAI,IAAI,CAAC,gBAAgB,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;4BAC5C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;4BAE5B,sBAAsB;4BACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBACjC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,yBAAyB;wBACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACjC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAC9B,iEAAiE;QACjE,MAAM,mBAAmB,GACrB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,mBAAmB,IAAI,IAAI,EAAE,CAAC;YACjD,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,GACrD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,CACzD,CAAC;YAEF,yBAAyB;YACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,cAAc,CAClD,CAAC;gBACF,IAAI,CAAC,YAAY,CACb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EACnC,IAAI,CAAC,aAAa,CAAC,QAAS,EAC5B,QAAQ,CACX,CAAC;gBACF,OAAO;YACX,CAAC;YAED,oFAAoF;YACpF,2CAA2C;YAC3C,oGAAoG;YACpG,iCAAiC;YACjC,qFAAqF;YACrF,qFAAqF;YACrF,IACI,aAAa,IAAI,OAAO;gBACxB,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EACpC,CAAC;gBACC,4BAA4B;gBAC5B,IAAI,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;gBACvC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACxB,QAAQ,GAAG,GAAG,CAAC;gBACnB,CAAC;gBAED,oBAAoB;gBACpB,2EAA2E;gBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;gBACpD,IACI,MAAM,IAAI,GAAG;oBACb,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC;wBACvB,IAAI,CAAC,GAAG,CACJ,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAC9B,IAAI,CAAC,iBAAiB,CAAC,OAAO;4BAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAC9B,EACP,CAAC;oBACC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,iBAAiB,EAClD,IAAI,EACJ;wBACI,OAAO,EAAE,QAAQ;wBACjB,MAAM,EAAE,MAAM;qBACjB,CACJ,CAAC;oBACF,IAAI,CAAC,iBAAiB,CAAC;wBACnB,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,QAAQ;wBAChB,QAAQ,EAAE,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;wBACjD,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,MAAM;qBACnB,CAAC,CAAC;gBACP,CAAC;gBAED,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9D,uBAAuB;gBACvB,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,IAAI,aAAa,EAAE,CAAC;oBACrD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,kBAAkB,EACnD,IAAI,EACJ;wBACI,OAAO,EAAE,aAAa;wBACtB,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa;qBAC5C,CACJ,CAAC;oBACF,MAAM,KAAK,GACP,aAAa,KAAK,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC3D,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;wBACxC,KAAK,SAAS;4BACV,IAAI,CAAC,iBAAiB,CAAC;gCACnB,MAAM,EAAE,MAAM;gCACd,MAAM,EAAE,QAAQ;gCAChB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ;gCAC9C,KAAK;6BACR,CAAC,CAAC;4BACH,MAAM;wBACV,KAAK,QAAQ;4BACT,IAAI,CAAC,iBAAiB,CAAC;gCACnB,MAAM,EAAE,OAAO;gCACf,MAAM,EAAE,QAAQ;gCAChB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ;gCAC9C,KAAK;6BACR,CAAC,CAAC;4BACH,MAAM;oBACd,CAAC;gBACL,CAAC;gBAED,kBAAkB;gBAClB,IACI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAC3C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAC3B,CAAC;oBACC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,kBAAkB,CACtD,CAAC;oBACF,MAAM,KAAK,GACP,aAAa;wBACb,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,CAAC;wBACnB,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,QAAQ;wBAChB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ;wBACjD,KAAK;wBACL,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI;qBACpC,CAAC,CAAC;gBACP,CAAC;gBAED,qBAAqB;gBACrB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,aAAa,EAAE,YAAY,EAAE,CAAC;oBACxD,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAC3B,eAAe,CAAC,gBAAgB,CAAC,qBAAqB,CACzD,CAAC;oBACF,MAAM,KAAK,GACP,aAAa;wBACb,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,CAAC;wBACnB,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,QAAQ;wBAChB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ;wBACjD,KAAK;wBACL,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI;qBACvC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CACtB,QAAgB,EAChB,QAA+B,EAC/B,MAAwC;QAExC,wBAAwB;QACxB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAE5B,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,0BAA0B;QAC1B,IAAI,CAAC,iBAAiB,CAAC;YACnB,MAAM,EAAE,UAAU;YAClB,MAAM;YACN,QAAQ;YACR,KAAK,EAAE,aAAa,KAAK,QAAQ;YACjC,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IAEO,0BAA0B,CAC9B,OAA0C;QAE1C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACL,CAAC;IAEO,iBAAiB,CACrB,OAA0C;QAE1C,MAAM,GAAG,GAAwB;YAC7B,IAAI,EAAE,2BAA2B,CAAC,aAAa;YAC/C,OAAO,EAAE,OAAO;SACnB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,wBAAwB,CAC5B,OAA0C;QAE1C,OAAO,CAAC,YAAY,GAAG,oBAAoB,CAAC;QAC5C,MAAM,GAAG,GAAwB;YAC7B,IAAI,EAAE,2BAA2B,CAAC,oBAAoB;YACtD,OAAO,EAAE,OAAO;SACnB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;CACJ"}
@@ -2,10 +2,11 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the Microsoft Live Share SDK License.
4
4
  */
5
- import { IRuntimeSignaler, TimeInterval, LiveShareRuntime } from "@microsoft/live-share";
6
- import { GroupTransportState } from "./GroupTransportState";
7
- import { CoordinationWaitPoint, ExtendedMediaSessionPlaybackState } from "../MediaSessionExtensions";
8
- import { GroupPlaybackRate } from "./GroupPlaybackRate";
5
+ import { IRuntimeSignaler, LiveShareRuntime } from "@microsoft/live-share/internal";
6
+ import { GroupTransportState } from "./GroupTransportState.js";
7
+ import { CoordinationWaitPoint, ExtendedMediaSessionPlaybackState } from "../MediaSessionExtensions.js";
8
+ import { GroupPlaybackRate } from "./GroupPlaybackRate.js";
9
+ import { PriorityTimeInterval } from "./PriorityTimeInterval.js";
9
10
  /**
10
11
  * Per client position
11
12
  * @hidden
@@ -28,7 +29,7 @@ export declare class GroupPlaybackPosition {
28
29
  private _liveRuntime;
29
30
  private _updateInterval;
30
31
  private _positions;
31
- constructor(transportState: GroupTransportState, playbackRate: GroupPlaybackRate, runtime: IRuntimeSignaler, liveRuntime: LiveShareRuntime, updateInterval: TimeInterval);
32
+ constructor(transportState: GroupTransportState, playbackRate: GroupPlaybackRate, runtime: IRuntimeSignaler, liveRuntime: LiveShareRuntime, updateInterval: PriorityTimeInterval);
32
33
  /**
33
34
  * Returns the latest position info for the local client.
34
35
  */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupPlaybackPosition.d.ts","sourceRoot":"","sources":["../../../src/internals/GroupPlaybackPosition.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EACH,qBAAqB,EACrB,iCAAiC,EACpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACrC,aAAa,EAAE,iCAAiC,CAAC;IACjD,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,YAAY,CAAmB;IACvC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,UAAU,CAAwC;gBAGtD,cAAc,EAAE,mBAAmB,EACnC,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,gBAAgB,EAC7B,cAAc,EAAE,oBAAoB;IAoBxC;;OAEG;IACH,IAAW,aAAa,IAAI,wBAAwB,GAAG,SAAS,CAE/D;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,MAAM,CAIhC;IAED;;;OAGG;IACH,IAAW,UAAU,IAAI,OAAO,CAe/B;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,MAAM,CAqBlC;IAED;;;;;OAKG;IACH,IAAW,WAAW,IAAI,MAAM,CAW/B;IAED;;OAEG;IACI,aAAa,CAAC,EAAE,MAAM,CAAC;IAE9B,IAAW,cAAc,IAAI,MAAM,CAMlC;IAED;;;OAGG;IACI,OAAO,CACV,UAAU,EAAE,CACR,QAAQ,EAAE,wBAAwB,EAClC,iBAAiB,EAAE,MAAM,KACxB,IAAI,GACV,IAAI;IAoBA,sBAAsB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI;IAkBvE,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,sBAAsB;CAKjC"}