@100mslive/hms-video-store 0.15.2-alpha.0 → 0.15.2-alpha.2

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.
@@ -79,6 +79,12 @@ export default class HMSTransport {
79
79
  publish(tracks: Array<HMSLocalTrack>): Promise<void>;
80
80
  unpublish(tracks: Array<HMSLocalTrack>): Promise<void>;
81
81
  setSFUNodeId(id?: string): void;
82
+ /**
83
+ * Republishes one cloned track during migration. The old track is already stopped by the
84
+ * time we get here, so one failure must not abort the tracks still to be republished —
85
+ * the publish ICE retry re-offers all of trackStates anyway.
86
+ */
87
+ private republishOnMigration;
82
88
  handleSFUMigration(): Promise<void>;
83
89
  /**
84
90
  * TODO: check if track.publishedTrackId be used instead of the hack to match with track with same type and
@@ -87,6 +93,8 @@ export default class HMSTransport {
87
93
  trackUpdate(track: HMSLocalTrack, enabled: boolean): void;
88
94
  private publishTrack;
89
95
  private unpublishTrack;
96
+ /** Local teardown for an unpublished track; one failing step must not skip the others. */
97
+ private teardownUnpublishedTrack;
90
98
  private clearPeerConnections;
91
99
  private waitForLocalRoleAvailability;
92
100
  private createConnectionsAndNegotiateJoin;
@@ -100,18 +108,21 @@ export default class HMSTransport {
100
108
  */
101
109
  private negotiateOnFirstPublish;
102
110
  /**
103
- * Applies a publish answer only while the connection still holds the offer it was
104
- * generated for. A concurrent renegotiation — `onRenegotiationNeeded` racing
105
- * `retryPublishIceFailedTask`, or a reconnect completing during JsonRpcSignal.call's
106
- * 1003 retry — leaves the connection back at `stable`, making this answer stale.
107
- * Applying it throws the terminal 4004 and drops the peer.
108
- *
109
- * Discarding alone would risk the missing tiles `retryPublishIceFailedTask` warns
110
- * about, since the winning negotiation may predate whatever this offer staged. So
111
- * re-offer once from current state instead. Bounded to a single retry: a second
112
- * straight loss means another negotiation is already carrying the current state.
111
+ * Neither caller of negotiateOnFirstPublish catches: handleLocalRoleUpdate propagates into
112
+ * HMSSdk with no catch, and handleSFUMigration runs unawaited. A superseded answer means
113
+ * another negotiation owns current state, so wire renegotiation and report failure instead —
114
+ * without initAfterJoin every later publishTrack would await its promise forever.
115
+ */
116
+ private handleFirstPublishNegotiationError;
117
+ /**
118
+ * An answer may only be applied to the offer it answers. Identity covers the connection
119
+ * being replaced under us (handleSFUMigration); the epoch covers a racer's
120
+ * setLocalDescription, which is legal in `have-local-offer` and so invisible to
121
+ * signalingState. Every discard is counted so the discard rate is measurable.
113
122
  */
114
- private applyPublishAnswer;
123
+ private assertPublishAnswerApplicable;
124
+ /** Drops our own waiter only: a newer owner armed mid-flight must keep its entry. */
125
+ private releaseRenegotiationCallback;
115
126
  private performPublishRenegotiation;
116
127
  private handleIceConnectionFailure;
117
128
  private internalConnect;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.15.2-alpha.0",
2
+ "version": "0.15.2-alpha.2",
3
3
  "license": "MIT",
4
4
  "repository": {
5
5
  "type": "git",
@@ -72,5 +72,5 @@
72
72
  "conferencing",
73
73
  "100ms"
74
74
  ],
75
- "gitHead": "d0c8c72bbabc260df939f332183a33df018d665b"
75
+ "gitHead": "5a301d4301bf3bf16809df84b3eb2ac994daa3da"
76
76
  }