@urun-sh/core 0.5.6 → 0.6.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.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { ad as SessionDirectoryRequestOptions, h as AppOptions, g as App$1, ai as SessionPhase, ao as SessionStatus, ag as SessionEndResult, ak as SessionPhaseName, A as AccessTokenOptions, a2 as RuntimeArtifact, a3 as RuntimeArtifactDownload, W as Recording, aF as TransportState, ab as Session$1, C as ChannelEndpoint, aC as TransportSession, d as ActivitySignalMode, i as AttachOptions, ac as SessionDiagnostic, b as ActivationEvent, an as SessionStatsSample, B as GenerationTick, _ as RecordingsAccessor, a4 as RuntimeArtifactsAccessor, ap as SessionStream$1, ax as StreamDataTransport, af as SessionDocumentImpl, aw as StreamChunkOptions, n as ChunkReadable, Q as Presence, w as DocConnector, y as DocTokenSupplier, x as DocServerUrlResolver, a0 as RequestOptions, a1 as RequestStreamOptions, av as StoreOptions, au as Store, l as ChannelMultiplexer, ah as SessionFailureKind, J as MediaSession, P as PathHealthReporting, aB as TransportOfferResponse, aK as WtAudioLaneSeam, aL as WtAudioUplinkSeam, aS as WtVideoUplinkSeam, aR as WtDataUplinkSender, O as PathLiveness, aP as WtDataLaneSink } from './stream-data-s7maju0w.mjs';
2
- export { c as ActivationState, j as AudioPlayoutOptions, D as DERIVED_LEG_SEP, o as DGRAM_HEADER_BYTES, s as DerivedLegRole, t as DgramHeader, v as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, z as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, E as MediaChunkSource, F as MediaChunkSourceFactory, H as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, K as NegotiatorOptions, R as PresenceState, S as PrewakeOptions, T as PrewakeResult, U as PrewakeStatus, V as QuicStreamDataTransport, X as RecordingBucket, Y as RecordingLifecycle, Z as RecordingStatus, $ as ReleaseSessionBeaconOptions, a5 as RuntimeAvailability, a6 as RuntimeWakeDetail, a7 as RuntimeWakeGolden, a8 as RuntimeWakeReasonCode, a9 as SIGNALING_PROTOCOL_VERSION, aa as STREAM_END, ae as SessionDocument, aj as SessionPhaseError, am as SessionStatsOptions, aq as SessionText, ar as SignalCarrier, as as Signaling, at as StartSessionOptions, ay as TransportEstablishedNotify, az as TransportNegotiator, aA as TransportOfferRequest, aE as TransportSessionSignaling, aG as VideoPlayoutOptions, aH as WT_CONTROL_FRAME_MAX, aI as WT_DATA_STREAM_VERSION, aJ as WatchGenerationTickOptions, aM as WtControlDecoder, aN as WtControlMessage, aO as WtDataEnvelope, aQ as WtDataStreamParser, aU as consumeWtDataStreams, aX as decodeStreamEnvelope, aZ as derivedLegName, a_ as derivedLegRole, a$ as encodeStreamEnvelope, b0 as encodeWtControlFrame, b1 as isPendingRecording, b2 as mediaRecorderChunkSource, b3 as parseDgramHeader, b4 as prewake, b5 as releaseSessionBeacon, b8 as watchGenerationTick, b9 as writeDgramHeader } from './stream-data-s7maju0w.mjs';
1
+ import { ad as SessionDirectoryRequestOptions, h as AppOptions, g as App$1, ai as SessionPhase, ao as SessionStatus, ag as SessionEndResult, ak as SessionPhaseName, a as AccessTokenOptions, a2 as RuntimeArtifact, a3 as RuntimeArtifactDownload, W as Recording, aF as TransportState, ab as Session$1, C as ChannelEndpoint, aC as TransportSession, d as ActivitySignalMode, i as AttachOptions, ac as SessionDiagnostic, b as ActivationEvent, an as SessionStatsSample, B as GenerationTick, _ as RecordingsAccessor, a4 as RuntimeArtifactsAccessor, ap as SessionStream$1, ax as StreamDataTransport, af as SessionDocumentImpl, aw as StreamChunkOptions, n as ChunkReadable, Q as Presence, w as DocConnector, y as DocTokenSupplier, x as DocServerUrlResolver, a0 as RequestOptions, a1 as RequestStreamOptions, av as StoreOptions, au as Store, l as ChannelMultiplexer, ah as SessionFailureKind, J as MediaSession, P as PathHealthReporting, aB as TransportOfferResponse, aK as WtAudioLaneSeam, aL as WtAudioUplinkSeam, aS as WtVideoUplinkSeam, aR as WtDataUplinkSender, O as PathLiveness, aP as WtDataLaneSink } from './stream-data-DWvEgRbF.mjs';
2
+ export { c as ActivationState, j as AudioPlayoutOptions, D as DERIVED_LEG_SEP, o as DGRAM_HEADER_BYTES, s as DerivedLegRole, t as DgramHeader, v as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, z as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, E as MediaChunkSource, F as MediaChunkSourceFactory, H as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, K as NegotiatorOptions, R as PresenceState, S as PrewakeOptions, T as PrewakeResult, U as PrewakeStatus, V as QuicStreamDataTransport, X as RecordingBucket, Y as RecordingLifecycle, Z as RecordingStatus, $ as ReleaseSessionBeaconOptions, a5 as RuntimeAvailability, a6 as RuntimeWakeDetail, a7 as RuntimeWakeGolden, a8 as RuntimeWakeReasonCode, a9 as SIGNALING_PROTOCOL_VERSION, aa as STREAM_END, ae as SessionDocument, aj as SessionPhaseError, am as SessionStatsOptions, aq as SessionText, ar as SignalCarrier, as as Signaling, at as StartSessionOptions, ay as TransportEstablishedNotify, az as TransportNegotiator, aA as TransportOfferRequest, aE as TransportSessionSignaling, aG as VideoPlayoutOptions, aH as WT_CONTROL_FRAME_MAX, aI as WT_DATA_STREAM_VERSION, aJ as WatchGenerationTickOptions, aM as WtControlDecoder, aN as WtControlMessage, aO as WtDataEnvelope, aQ as WtDataStreamParser, aU as consumeWtDataStreams, aX as decodeStreamEnvelope, aZ as derivedLegName, a_ as derivedLegRole, a$ as encodeStreamEnvelope, b0 as encodeWtControlFrame, b1 as isPendingRecording, b2 as mediaRecorderChunkSource, b3 as parseDgramHeader, b4 as prewake, b5 as releaseSessionBeacon, b8 as watchGenerationTick, b9 as writeDgramHeader } from './stream-data-DWvEgRbF.mjs';
3
3
  import 'yjs';
4
4
  import 'y-protocols/awareness';
5
5
 
@@ -467,6 +467,8 @@ declare class Session implements Session$1 {
467
467
 
468
468
  private _dialNegotiation;
469
469
 
470
+ private _downlinkStallWatch;
471
+
470
472
  private _dialNegotiationStarted;
471
473
 
472
474
  private _generationTickHandlers;
@@ -555,6 +557,10 @@ declare class Session implements Session$1 {
555
557
  }): void;
556
558
 
557
559
  get mediaTransport(): 'webtransport' | 'webrtc' | null;
560
+
561
+ watchDownlinkStall(opts?: {
562
+ stallMs?: number;
563
+ }): () => void;
558
564
  end(): Promise<SessionEndResult>;
559
565
 
560
566
  cancel(): Promise<SessionEndResult>;
@@ -1130,6 +1136,13 @@ declare class WebTransportSession implements MediaSession, PathHealthReporting {
1130
1136
  private controlWritesAccepted;
1131
1137
 
1132
1138
  private gatewayPings;
1139
+
1140
+ private stallWatch;
1141
+ private stallTimer;
1142
+
1143
+ private audioLaneLastArrivalAt;
1144
+
1145
+ private lastInboundControlAt;
1133
1146
  private reassembler;
1134
1147
  private lastArrivalTs;
1135
1148
  private jitterEwmaMs;
@@ -1171,6 +1184,14 @@ declare class WebTransportSession implements MediaSession, PathHealthReporting {
1171
1184
  pathLiveness(): PathLiveness;
1172
1185
 
1173
1186
  fail(reason: string): void;
1187
+
1188
+ watchDownlinkStall(opts?: {
1189
+ stallMs?: number;
1190
+ }): void;
1191
+
1192
+ private clearStallWatch;
1193
+
1194
+ private downlinkStallTick;
1174
1195
  stop(): Promise<void>;
1175
1196
 
1176
1197
  private datagramWriter;
@@ -1194,6 +1215,23 @@ declare class WebTransportSession implements MediaSession, PathHealthReporting {
1194
1215
 
1195
1216
  private uplinkSend;
1196
1217
  private onUplinkSendError;
1218
+ private static readonly UPLINK_LANE_RETRY_MAX;
1219
+ private static readonly UPLINK_LANE_RETRY_BACKOFF_MS;
1220
+ private static readonly UPLINK_LANE_HEALTHY_MS;
1221
+ private audioUplinkRetry;
1222
+ private videoUplinkRetry;
1223
+
1224
+ private uplinkSink;
1225
+ private engageAudioUplink;
1226
+ private engageVideoUplink;
1227
+
1228
+ private engageUplinkLane;
1229
+ private freshLaneBuilt;
1230
+
1231
+ private onUplinkLaneDead;
1232
+ private seamUplinkLost;
1233
+
1234
+ private clearUplinkRetryTimers;
1197
1235
  private datagramLoop;
1198
1236
  private decodeFrame;
1199
1237
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { ad as SessionDirectoryRequestOptions, h as AppOptions, g as App$1, ai as SessionPhase, ao as SessionStatus, ag as SessionEndResult, ak as SessionPhaseName, A as AccessTokenOptions, a2 as RuntimeArtifact, a3 as RuntimeArtifactDownload, W as Recording, aF as TransportState, ab as Session$1, C as ChannelEndpoint, aC as TransportSession, d as ActivitySignalMode, i as AttachOptions, ac as SessionDiagnostic, b as ActivationEvent, an as SessionStatsSample, B as GenerationTick, _ as RecordingsAccessor, a4 as RuntimeArtifactsAccessor, ap as SessionStream$1, ax as StreamDataTransport, af as SessionDocumentImpl, aw as StreamChunkOptions, n as ChunkReadable, Q as Presence, w as DocConnector, y as DocTokenSupplier, x as DocServerUrlResolver, a0 as RequestOptions, a1 as RequestStreamOptions, av as StoreOptions, au as Store, l as ChannelMultiplexer, ah as SessionFailureKind, J as MediaSession, P as PathHealthReporting, aB as TransportOfferResponse, aK as WtAudioLaneSeam, aL as WtAudioUplinkSeam, aS as WtVideoUplinkSeam, aR as WtDataUplinkSender, O as PathLiveness, aP as WtDataLaneSink } from './stream-data-s7maju0w.js';
2
- export { c as ActivationState, j as AudioPlayoutOptions, D as DERIVED_LEG_SEP, o as DGRAM_HEADER_BYTES, s as DerivedLegRole, t as DgramHeader, v as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, z as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, E as MediaChunkSource, F as MediaChunkSourceFactory, H as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, K as NegotiatorOptions, R as PresenceState, S as PrewakeOptions, T as PrewakeResult, U as PrewakeStatus, V as QuicStreamDataTransport, X as RecordingBucket, Y as RecordingLifecycle, Z as RecordingStatus, $ as ReleaseSessionBeaconOptions, a5 as RuntimeAvailability, a6 as RuntimeWakeDetail, a7 as RuntimeWakeGolden, a8 as RuntimeWakeReasonCode, a9 as SIGNALING_PROTOCOL_VERSION, aa as STREAM_END, ae as SessionDocument, aj as SessionPhaseError, am as SessionStatsOptions, aq as SessionText, ar as SignalCarrier, as as Signaling, at as StartSessionOptions, ay as TransportEstablishedNotify, az as TransportNegotiator, aA as TransportOfferRequest, aE as TransportSessionSignaling, aG as VideoPlayoutOptions, aH as WT_CONTROL_FRAME_MAX, aI as WT_DATA_STREAM_VERSION, aJ as WatchGenerationTickOptions, aM as WtControlDecoder, aN as WtControlMessage, aO as WtDataEnvelope, aQ as WtDataStreamParser, aU as consumeWtDataStreams, aX as decodeStreamEnvelope, aZ as derivedLegName, a_ as derivedLegRole, a$ as encodeStreamEnvelope, b0 as encodeWtControlFrame, b1 as isPendingRecording, b2 as mediaRecorderChunkSource, b3 as parseDgramHeader, b4 as prewake, b5 as releaseSessionBeacon, b8 as watchGenerationTick, b9 as writeDgramHeader } from './stream-data-s7maju0w.js';
1
+ import { ad as SessionDirectoryRequestOptions, h as AppOptions, g as App$1, ai as SessionPhase, ao as SessionStatus, ag as SessionEndResult, ak as SessionPhaseName, a as AccessTokenOptions, a2 as RuntimeArtifact, a3 as RuntimeArtifactDownload, W as Recording, aF as TransportState, ab as Session$1, C as ChannelEndpoint, aC as TransportSession, d as ActivitySignalMode, i as AttachOptions, ac as SessionDiagnostic, b as ActivationEvent, an as SessionStatsSample, B as GenerationTick, _ as RecordingsAccessor, a4 as RuntimeArtifactsAccessor, ap as SessionStream$1, ax as StreamDataTransport, af as SessionDocumentImpl, aw as StreamChunkOptions, n as ChunkReadable, Q as Presence, w as DocConnector, y as DocTokenSupplier, x as DocServerUrlResolver, a0 as RequestOptions, a1 as RequestStreamOptions, av as StoreOptions, au as Store, l as ChannelMultiplexer, ah as SessionFailureKind, J as MediaSession, P as PathHealthReporting, aB as TransportOfferResponse, aK as WtAudioLaneSeam, aL as WtAudioUplinkSeam, aS as WtVideoUplinkSeam, aR as WtDataUplinkSender, O as PathLiveness, aP as WtDataLaneSink } from './stream-data-DWvEgRbF.js';
2
+ export { c as ActivationState, j as AudioPlayoutOptions, D as DERIVED_LEG_SEP, o as DGRAM_HEADER_BYTES, s as DerivedLegRole, t as DgramHeader, v as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, z as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, E as MediaChunkSource, F as MediaChunkSourceFactory, H as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, K as NegotiatorOptions, R as PresenceState, S as PrewakeOptions, T as PrewakeResult, U as PrewakeStatus, V as QuicStreamDataTransport, X as RecordingBucket, Y as RecordingLifecycle, Z as RecordingStatus, $ as ReleaseSessionBeaconOptions, a5 as RuntimeAvailability, a6 as RuntimeWakeDetail, a7 as RuntimeWakeGolden, a8 as RuntimeWakeReasonCode, a9 as SIGNALING_PROTOCOL_VERSION, aa as STREAM_END, ae as SessionDocument, aj as SessionPhaseError, am as SessionStatsOptions, aq as SessionText, ar as SignalCarrier, as as Signaling, at as StartSessionOptions, ay as TransportEstablishedNotify, az as TransportNegotiator, aA as TransportOfferRequest, aE as TransportSessionSignaling, aG as VideoPlayoutOptions, aH as WT_CONTROL_FRAME_MAX, aI as WT_DATA_STREAM_VERSION, aJ as WatchGenerationTickOptions, aM as WtControlDecoder, aN as WtControlMessage, aO as WtDataEnvelope, aQ as WtDataStreamParser, aU as consumeWtDataStreams, aX as decodeStreamEnvelope, aZ as derivedLegName, a_ as derivedLegRole, a$ as encodeStreamEnvelope, b0 as encodeWtControlFrame, b1 as isPendingRecording, b2 as mediaRecorderChunkSource, b3 as parseDgramHeader, b4 as prewake, b5 as releaseSessionBeacon, b8 as watchGenerationTick, b9 as writeDgramHeader } from './stream-data-DWvEgRbF.js';
3
3
  import 'yjs';
4
4
  import 'y-protocols/awareness';
5
5
 
@@ -467,6 +467,8 @@ declare class Session implements Session$1 {
467
467
 
468
468
  private _dialNegotiation;
469
469
 
470
+ private _downlinkStallWatch;
471
+
470
472
  private _dialNegotiationStarted;
471
473
 
472
474
  private _generationTickHandlers;
@@ -555,6 +557,10 @@ declare class Session implements Session$1 {
555
557
  }): void;
556
558
 
557
559
  get mediaTransport(): 'webtransport' | 'webrtc' | null;
560
+
561
+ watchDownlinkStall(opts?: {
562
+ stallMs?: number;
563
+ }): () => void;
558
564
  end(): Promise<SessionEndResult>;
559
565
 
560
566
  cancel(): Promise<SessionEndResult>;
@@ -1130,6 +1136,13 @@ declare class WebTransportSession implements MediaSession, PathHealthReporting {
1130
1136
  private controlWritesAccepted;
1131
1137
 
1132
1138
  private gatewayPings;
1139
+
1140
+ private stallWatch;
1141
+ private stallTimer;
1142
+
1143
+ private audioLaneLastArrivalAt;
1144
+
1145
+ private lastInboundControlAt;
1133
1146
  private reassembler;
1134
1147
  private lastArrivalTs;
1135
1148
  private jitterEwmaMs;
@@ -1171,6 +1184,14 @@ declare class WebTransportSession implements MediaSession, PathHealthReporting {
1171
1184
  pathLiveness(): PathLiveness;
1172
1185
 
1173
1186
  fail(reason: string): void;
1187
+
1188
+ watchDownlinkStall(opts?: {
1189
+ stallMs?: number;
1190
+ }): void;
1191
+
1192
+ private clearStallWatch;
1193
+
1194
+ private downlinkStallTick;
1174
1195
  stop(): Promise<void>;
1175
1196
 
1176
1197
  private datagramWriter;
@@ -1194,6 +1215,23 @@ declare class WebTransportSession implements MediaSession, PathHealthReporting {
1194
1215
 
1195
1216
  private uplinkSend;
1196
1217
  private onUplinkSendError;
1218
+ private static readonly UPLINK_LANE_RETRY_MAX;
1219
+ private static readonly UPLINK_LANE_RETRY_BACKOFF_MS;
1220
+ private static readonly UPLINK_LANE_HEALTHY_MS;
1221
+ private audioUplinkRetry;
1222
+ private videoUplinkRetry;
1223
+
1224
+ private uplinkSink;
1225
+ private engageAudioUplink;
1226
+ private engageVideoUplink;
1227
+
1228
+ private engageUplinkLane;
1229
+ private freshLaneBuilt;
1230
+
1231
+ private onUplinkLaneDead;
1232
+ private seamUplinkLost;
1233
+
1234
+ private clearUplinkRetryTimers;
1197
1235
  private datagramLoop;
1198
1236
  private decodeFrame;
1199
1237