@urun-sh/core 0.3.5 → 0.3.7

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 { g as AppOptions, f as App$1, ae as SessionPhase, ak as SessionStatus, ag as SessionPhaseName, A as AccessTokenOptions, $ as RuntimeArtifact, a0 as RuntimeArtifactDownload, T as Recording, aA as TransportState, a8 as Session$1, C as ChannelEndpoint, ax as TransportSession, h as AttachOptions, a9 as SessionDiagnostic, b as ActivationEvent, aj as SessionStatsSample, z as GenerationTick, X as RecordingsAccessor, a1 as RuntimeArtifactsAccessor, ac as SessionEndResult, al as SessionStream$1, as as StreamDataTransport, ab as SessionDocumentImpl, ar as StreamChunkOptions, m as ChunkReadable, P as Presence, v as DocConnector, x as DocTokenSupplier, w as DocServerUrlResolver, Z as RequestOptions, _ as RequestStreamOptions, aq as StoreOptions, ap as Store, k as ChannelMultiplexer, ad as SessionFailureKind, H as MediaSession, aw as TransportOfferResponse, aF as WtAudioLaneSeam, aG as WtAudioUplinkSeam, aN as WtVideoUplinkSeam, aM as WtDataUplinkSender, aK as WtDataLaneSink } from './stream-data-iemsO_1p.mjs';
2
- export { c as ActivationState, i as AudioPlayoutOptions, D as DERIVED_LEG_SEP, n as DGRAM_HEADER_BYTES, r as DerivedLegRole, s as DgramHeader, u as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, y as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, B as MediaChunkSource, E as MediaChunkSourceFactory, F as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, J as NegotiatorOptions, K as PresenceState, O as PrewakeOptions, Q as PrewakeResult, R as PrewakeStatus, S as QuicStreamDataTransport, U as RecordingBucket, V as RecordingLifecycle, W as RecordingStatus, Y as ReleaseSessionBeaconOptions, a2 as RuntimeAvailability, a3 as RuntimeWakeDetail, a4 as RuntimeWakeGolden, a5 as RuntimeWakeReasonCode, a6 as SIGNALING_PROTOCOL_VERSION, a7 as STREAM_END, aa as SessionDocument, af as SessionPhaseError, ai as SessionStatsOptions, am as SessionText, an as SignalCarrier, ao as Signaling, at as TransportEstablishedNotify, au as TransportNegotiator, av as TransportOfferRequest, az as TransportSessionSignaling, aB as VideoPlayoutOptions, aC as WT_CONTROL_FRAME_MAX, aD as WT_DATA_STREAM_VERSION, aE as WatchGenerationTickOptions, aH as WtControlDecoder, aI as WtControlMessage, aJ as WtDataEnvelope, aL as WtDataStreamParser, aP as consumeWtDataStreams, aS as decodeStreamEnvelope, aU as derivedLegName, aV as derivedLegRole, aW as encodeStreamEnvelope, aX as encodeWtControlFrame, aY as isPendingRecording, aZ as mediaRecorderChunkSource, a_ as parseDgramHeader, a$ as prewake, b0 as releaseSessionBeacon, b3 as watchGenerationTick, b4 as writeDgramHeader } from './stream-data-iemsO_1p.mjs';
1
+ import { g as AppOptions, f as App$1, ag as SessionPhase, am as SessionStatus, ai as SessionPhaseName, A as AccessTokenOptions, a1 as RuntimeArtifact, a2 as RuntimeArtifactDownload, V as Recording, aC as TransportState, aa as Session$1, C as ChannelEndpoint, az as TransportSession, h as AttachOptions, ab as SessionDiagnostic, b as ActivationEvent, al as SessionStatsSample, z as GenerationTick, Z as RecordingsAccessor, a3 as RuntimeArtifactsAccessor, ae as SessionEndResult, an as SessionStream$1, au as StreamDataTransport, ad as SessionDocumentImpl, at as StreamChunkOptions, m as ChunkReadable, O as Presence, v as DocConnector, x as DocTokenSupplier, w as DocServerUrlResolver, $ as RequestOptions, a0 as RequestStreamOptions, as as StoreOptions, ar as Store, k as ChannelMultiplexer, af as SessionFailureKind, H as MediaSession, P as PathHealthReporting, ay as TransportOfferResponse, aH as WtAudioLaneSeam, aI as WtAudioUplinkSeam, aP as WtVideoUplinkSeam, aO as WtDataUplinkSender, K as PathLiveness, aM as WtDataLaneSink } from './stream-data-W9S0z8Wv.mjs';
2
+ export { c as ActivationState, i as AudioPlayoutOptions, D as DERIVED_LEG_SEP, n as DGRAM_HEADER_BYTES, r as DerivedLegRole, s as DgramHeader, u as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, y as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, B as MediaChunkSource, E as MediaChunkSourceFactory, F as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, J as NegotiatorOptions, Q as PresenceState, R as PrewakeOptions, S as PrewakeResult, T as PrewakeStatus, U as QuicStreamDataTransport, W as RecordingBucket, X as RecordingLifecycle, Y as RecordingStatus, _ as ReleaseSessionBeaconOptions, a4 as RuntimeAvailability, a5 as RuntimeWakeDetail, a6 as RuntimeWakeGolden, a7 as RuntimeWakeReasonCode, a8 as SIGNALING_PROTOCOL_VERSION, a9 as STREAM_END, ac as SessionDocument, ah as SessionPhaseError, ak as SessionStatsOptions, ao as SessionText, ap as SignalCarrier, aq as Signaling, av as TransportEstablishedNotify, aw as TransportNegotiator, ax as TransportOfferRequest, aB as TransportSessionSignaling, aD as VideoPlayoutOptions, aE as WT_CONTROL_FRAME_MAX, aF as WT_DATA_STREAM_VERSION, aG as WatchGenerationTickOptions, aJ as WtControlDecoder, aK as WtControlMessage, aL as WtDataEnvelope, aN as WtDataStreamParser, aR as consumeWtDataStreams, aU as decodeStreamEnvelope, aW as derivedLegName, aX as derivedLegRole, aY as encodeStreamEnvelope, aZ as encodeWtControlFrame, a_ as isPendingRecording, a$ as mediaRecorderChunkSource, b0 as parseDgramHeader, b1 as prewake, b2 as releaseSessionBeacon, b5 as watchGenerationTick, b6 as writeDgramHeader } from './stream-data-W9S0z8Wv.mjs';
3
3
  import 'yjs';
4
4
  import 'y-protocols/awareness';
5
5
 
@@ -992,7 +992,7 @@ interface CameraWarp {
992
992
  }
993
993
  declare function createCameraWarp(options?: CameraWarpOptions): CameraWarp;
994
994
 
995
- declare class WebTransportSession implements MediaSession {
995
+ declare class WebTransportSession implements MediaSession, PathHealthReporting {
996
996
  private offer;
997
997
  private sessionId;
998
998
  private canvas;
@@ -1018,6 +1018,14 @@ declare class WebTransportSession implements MediaSession {
1018
1018
  private deadFired;
1019
1019
  private stopped;
1020
1020
  private feedbackTimer;
1021
+
1022
+ private closedReason;
1023
+
1024
+ private controlWriteError;
1025
+
1026
+ private controlWritesAccepted;
1027
+
1028
+ private gatewayPings;
1021
1029
  private reassembler;
1022
1030
  private lastArrivalTs;
1023
1031
  private jitterEwmaMs;
@@ -1035,10 +1043,16 @@ declare class WebTransportSession implements MediaSession {
1035
1043
  private firstFrameResolve;
1036
1044
  private firstFrameReject;
1037
1045
 
1038
- private firstFrameOutput;
1046
+ private uplinkSendErrorsAt;
1047
+ private uplinkSendErrorLogged;
1039
1048
 
1040
1049
  private hasVideoLane;
1041
- private firstDecodeTimer;
1050
+
1051
+ private videoArrivedEver;
1052
+ private videoArrivalsInWindow;
1053
+ private frameOutputEver;
1054
+ private frameOutputsInWindow;
1055
+ private decodeStalledMs;
1042
1056
 
1043
1057
  readonly firstMedia: Promise<void>;
1044
1058
  constructor(offer: NonNullable<TransportOfferResponse['webtransport']>, sessionId: string, canvas: HTMLCanvasElement,
@@ -1055,6 +1069,10 @@ declare class WebTransportSession implements MediaSession {
1055
1069
  } | undefined);
1056
1070
 
1057
1071
  start(): Promise<void>;
1072
+
1073
+ pathLiveness(): PathLiveness;
1074
+
1075
+ fail(reason: string): void;
1058
1076
  stop(): Promise<void>;
1059
1077
 
1060
1078
  private datagramWriter;
@@ -1062,6 +1080,8 @@ declare class WebTransportSession implements MediaSession {
1062
1080
  private releaseDatagramWriter;
1063
1081
 
1064
1082
  private dropUplinks;
1083
+
1084
+ private dropDatagramUplinks;
1065
1085
  onDead(cb: (reason: string) => void): void;
1066
1086
  stats(): {
1067
1087
  recvBps: number;
@@ -1074,9 +1094,13 @@ declare class WebTransportSession implements MediaSession {
1074
1094
 
1075
1095
  private onDecoderError;
1076
1096
 
1077
- private armFirstDecodeDeadline;
1097
+ private evaluateDecodeLiveness;
1098
+
1099
+ private uplinkSend;
1100
+ private onUplinkSendError;
1078
1101
  private datagramLoop;
1079
1102
  private decodeFrame;
1103
+
1080
1104
  private sendControl;
1081
1105
  private readControl;
1082
1106
  private controlLoop;
@@ -1149,6 +1173,10 @@ declare class FrameReassembler {
1149
1173
 
1150
1174
  push(chunk: Uint8Array): void;
1151
1175
 
1176
+ private isSourceRestart;
1177
+
1178
+ private resync;
1179
+
1152
1180
  requireKeyframe(): void;
1153
1181
 
1154
1182
  drainWindow(): {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { g as AppOptions, f as App$1, ae as SessionPhase, ak as SessionStatus, ag as SessionPhaseName, A as AccessTokenOptions, $ as RuntimeArtifact, a0 as RuntimeArtifactDownload, T as Recording, aA as TransportState, a8 as Session$1, C as ChannelEndpoint, ax as TransportSession, h as AttachOptions, a9 as SessionDiagnostic, b as ActivationEvent, aj as SessionStatsSample, z as GenerationTick, X as RecordingsAccessor, a1 as RuntimeArtifactsAccessor, ac as SessionEndResult, al as SessionStream$1, as as StreamDataTransport, ab as SessionDocumentImpl, ar as StreamChunkOptions, m as ChunkReadable, P as Presence, v as DocConnector, x as DocTokenSupplier, w as DocServerUrlResolver, Z as RequestOptions, _ as RequestStreamOptions, aq as StoreOptions, ap as Store, k as ChannelMultiplexer, ad as SessionFailureKind, H as MediaSession, aw as TransportOfferResponse, aF as WtAudioLaneSeam, aG as WtAudioUplinkSeam, aN as WtVideoUplinkSeam, aM as WtDataUplinkSender, aK as WtDataLaneSink } from './stream-data-iemsO_1p.js';
2
- export { c as ActivationState, i as AudioPlayoutOptions, D as DERIVED_LEG_SEP, n as DGRAM_HEADER_BYTES, r as DerivedLegRole, s as DgramHeader, u as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, y as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, B as MediaChunkSource, E as MediaChunkSourceFactory, F as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, J as NegotiatorOptions, K as PresenceState, O as PrewakeOptions, Q as PrewakeResult, R as PrewakeStatus, S as QuicStreamDataTransport, U as RecordingBucket, V as RecordingLifecycle, W as RecordingStatus, Y as ReleaseSessionBeaconOptions, a2 as RuntimeAvailability, a3 as RuntimeWakeDetail, a4 as RuntimeWakeGolden, a5 as RuntimeWakeReasonCode, a6 as SIGNALING_PROTOCOL_VERSION, a7 as STREAM_END, aa as SessionDocument, af as SessionPhaseError, ai as SessionStatsOptions, am as SessionText, an as SignalCarrier, ao as Signaling, at as TransportEstablishedNotify, au as TransportNegotiator, av as TransportOfferRequest, az as TransportSessionSignaling, aB as VideoPlayoutOptions, aC as WT_CONTROL_FRAME_MAX, aD as WT_DATA_STREAM_VERSION, aE as WatchGenerationTickOptions, aH as WtControlDecoder, aI as WtControlMessage, aJ as WtDataEnvelope, aL as WtDataStreamParser, aP as consumeWtDataStreams, aS as decodeStreamEnvelope, aU as derivedLegName, aV as derivedLegRole, aW as encodeStreamEnvelope, aX as encodeWtControlFrame, aY as isPendingRecording, aZ as mediaRecorderChunkSource, a_ as parseDgramHeader, a$ as prewake, b0 as releaseSessionBeacon, b3 as watchGenerationTick, b4 as writeDgramHeader } from './stream-data-iemsO_1p.js';
1
+ import { g as AppOptions, f as App$1, ag as SessionPhase, am as SessionStatus, ai as SessionPhaseName, A as AccessTokenOptions, a1 as RuntimeArtifact, a2 as RuntimeArtifactDownload, V as Recording, aC as TransportState, aa as Session$1, C as ChannelEndpoint, az as TransportSession, h as AttachOptions, ab as SessionDiagnostic, b as ActivationEvent, al as SessionStatsSample, z as GenerationTick, Z as RecordingsAccessor, a3 as RuntimeArtifactsAccessor, ae as SessionEndResult, an as SessionStream$1, au as StreamDataTransport, ad as SessionDocumentImpl, at as StreamChunkOptions, m as ChunkReadable, O as Presence, v as DocConnector, x as DocTokenSupplier, w as DocServerUrlResolver, $ as RequestOptions, a0 as RequestStreamOptions, as as StoreOptions, ar as Store, k as ChannelMultiplexer, af as SessionFailureKind, H as MediaSession, P as PathHealthReporting, ay as TransportOfferResponse, aH as WtAudioLaneSeam, aI as WtAudioUplinkSeam, aP as WtVideoUplinkSeam, aO as WtDataUplinkSender, K as PathLiveness, aM as WtDataLaneSink } from './stream-data-W9S0z8Wv.js';
2
+ export { c as ActivationState, i as AudioPlayoutOptions, D as DERIVED_LEG_SEP, n as DGRAM_HEADER_BYTES, r as DerivedLegRole, s as DgramHeader, u as DocConnectionState, G as GENERATION_TICK_EMIT_INTERVAL_MS, y as GENERATION_TICK_MAX_EXTRAPOLATION_MS, I as InboundStatsSample, M as MediaChunkBinding, B as MediaChunkSource, E as MediaChunkSourceFactory, F as MediaRecorderChunkSourceOptions, N as NegotiatorDataLaneSeam, J as NegotiatorOptions, Q as PresenceState, R as PrewakeOptions, S as PrewakeResult, T as PrewakeStatus, U as QuicStreamDataTransport, W as RecordingBucket, X as RecordingLifecycle, Y as RecordingStatus, _ as ReleaseSessionBeaconOptions, a4 as RuntimeAvailability, a5 as RuntimeWakeDetail, a6 as RuntimeWakeGolden, a7 as RuntimeWakeReasonCode, a8 as SIGNALING_PROTOCOL_VERSION, a9 as STREAM_END, ac as SessionDocument, ah as SessionPhaseError, ak as SessionStatsOptions, ao as SessionText, ap as SignalCarrier, aq as Signaling, av as TransportEstablishedNotify, aw as TransportNegotiator, ax as TransportOfferRequest, aB as TransportSessionSignaling, aD as VideoPlayoutOptions, aE as WT_CONTROL_FRAME_MAX, aF as WT_DATA_STREAM_VERSION, aG as WatchGenerationTickOptions, aJ as WtControlDecoder, aK as WtControlMessage, aL as WtDataEnvelope, aN as WtDataStreamParser, aR as consumeWtDataStreams, aU as decodeStreamEnvelope, aW as derivedLegName, aX as derivedLegRole, aY as encodeStreamEnvelope, aZ as encodeWtControlFrame, a_ as isPendingRecording, a$ as mediaRecorderChunkSource, b0 as parseDgramHeader, b1 as prewake, b2 as releaseSessionBeacon, b5 as watchGenerationTick, b6 as writeDgramHeader } from './stream-data-W9S0z8Wv.js';
3
3
  import 'yjs';
4
4
  import 'y-protocols/awareness';
5
5
 
@@ -992,7 +992,7 @@ interface CameraWarp {
992
992
  }
993
993
  declare function createCameraWarp(options?: CameraWarpOptions): CameraWarp;
994
994
 
995
- declare class WebTransportSession implements MediaSession {
995
+ declare class WebTransportSession implements MediaSession, PathHealthReporting {
996
996
  private offer;
997
997
  private sessionId;
998
998
  private canvas;
@@ -1018,6 +1018,14 @@ declare class WebTransportSession implements MediaSession {
1018
1018
  private deadFired;
1019
1019
  private stopped;
1020
1020
  private feedbackTimer;
1021
+
1022
+ private closedReason;
1023
+
1024
+ private controlWriteError;
1025
+
1026
+ private controlWritesAccepted;
1027
+
1028
+ private gatewayPings;
1021
1029
  private reassembler;
1022
1030
  private lastArrivalTs;
1023
1031
  private jitterEwmaMs;
@@ -1035,10 +1043,16 @@ declare class WebTransportSession implements MediaSession {
1035
1043
  private firstFrameResolve;
1036
1044
  private firstFrameReject;
1037
1045
 
1038
- private firstFrameOutput;
1046
+ private uplinkSendErrorsAt;
1047
+ private uplinkSendErrorLogged;
1039
1048
 
1040
1049
  private hasVideoLane;
1041
- private firstDecodeTimer;
1050
+
1051
+ private videoArrivedEver;
1052
+ private videoArrivalsInWindow;
1053
+ private frameOutputEver;
1054
+ private frameOutputsInWindow;
1055
+ private decodeStalledMs;
1042
1056
 
1043
1057
  readonly firstMedia: Promise<void>;
1044
1058
  constructor(offer: NonNullable<TransportOfferResponse['webtransport']>, sessionId: string, canvas: HTMLCanvasElement,
@@ -1055,6 +1069,10 @@ declare class WebTransportSession implements MediaSession {
1055
1069
  } | undefined);
1056
1070
 
1057
1071
  start(): Promise<void>;
1072
+
1073
+ pathLiveness(): PathLiveness;
1074
+
1075
+ fail(reason: string): void;
1058
1076
  stop(): Promise<void>;
1059
1077
 
1060
1078
  private datagramWriter;
@@ -1062,6 +1080,8 @@ declare class WebTransportSession implements MediaSession {
1062
1080
  private releaseDatagramWriter;
1063
1081
 
1064
1082
  private dropUplinks;
1083
+
1084
+ private dropDatagramUplinks;
1065
1085
  onDead(cb: (reason: string) => void): void;
1066
1086
  stats(): {
1067
1087
  recvBps: number;
@@ -1074,9 +1094,13 @@ declare class WebTransportSession implements MediaSession {
1074
1094
 
1075
1095
  private onDecoderError;
1076
1096
 
1077
- private armFirstDecodeDeadline;
1097
+ private evaluateDecodeLiveness;
1098
+
1099
+ private uplinkSend;
1100
+ private onUplinkSendError;
1078
1101
  private datagramLoop;
1079
1102
  private decodeFrame;
1103
+
1080
1104
  private sendControl;
1081
1105
  private readControl;
1082
1106
  private controlLoop;
@@ -1149,6 +1173,10 @@ declare class FrameReassembler {
1149
1173
 
1150
1174
  push(chunk: Uint8Array): void;
1151
1175
 
1176
+ private isSourceRestart;
1177
+
1178
+ private resync;
1179
+
1152
1180
  requireKeyframe(): void;
1153
1181
 
1154
1182
  drainWindow(): {