@urun-sh/core 0.2.60 → 0.3.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/CHANGELOG.md +105 -0
- package/dist/chunk-CVMFNMRA.mjs +8 -0
- package/dist/chunk-JQPCE4OM.mjs +3 -0
- package/dist/index.browser.d.mts +234 -226
- package/dist/index.browser.d.ts +234 -226
- package/dist/index.browser.js +2 -2
- package/dist/index.browser.mjs +1 -1
- package/dist/index.d.mts +234 -226
- package/dist/index.d.ts +234 -226
- package/dist/index.js +5 -5
- package/dist/index.mjs +1 -1
- package/dist/internal.browser.d.mts +1 -1
- package/dist/internal.browser.d.ts +1 -1
- package/dist/internal.browser.js +2 -2
- package/dist/internal.browser.mjs +1 -1
- package/dist/internal.d.mts +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.js +5 -5
- package/dist/internal.mjs +1 -1
- package/dist/{stream-data-B5wxsIPL.d.mts → stream-data-BJoG7tYI.d.mts} +407 -7
- package/dist/{stream-data-B5wxsIPL.d.ts → stream-data-BJoG7tYI.d.ts} +407 -7
- package/package.json +1 -1
- package/dist/chunk-5TD2DIRY.mjs +0 -3
- package/dist/chunk-MVSPHHJP.mjs +0 -8
package/dist/index.browser.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as AppOptions, f as App$1,
|
|
2
|
-
export { c as ActivationState, i as AudioPlayoutOptions, D as DERIVED_LEG_SEP,
|
|
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-BJoG7tYI.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-BJoG7tYI.js';
|
|
3
3
|
import 'yjs';
|
|
4
4
|
import 'y-protocols/awareness';
|
|
5
5
|
|
|
@@ -47,6 +47,8 @@ declare function createClientToken(apiKey: string, options?: CreateClientTokenOp
|
|
|
47
47
|
|
|
48
48
|
declare function isWakingPhase(phase: SessionPhase | SessionPhaseName | null | undefined): boolean;
|
|
49
49
|
|
|
50
|
+
declare function isServerTerminalPhase(phase: SessionPhase | null | undefined): boolean;
|
|
51
|
+
|
|
50
52
|
interface PhaseObservable {
|
|
51
53
|
|
|
52
54
|
readonly phase: SessionPhase;
|
|
@@ -193,6 +195,100 @@ declare class RecordingsClient {
|
|
|
193
195
|
|
|
194
196
|
declare function createRecordingsClient(options: RecordingsClientOptions): RecordingsClient;
|
|
195
197
|
|
|
198
|
+
declare const USER_ACTIVITY_FIELD = "user_activity";
|
|
199
|
+
|
|
200
|
+
declare const FOCUS_FIELD = "focus";
|
|
201
|
+
|
|
202
|
+
declare const USER_ACTIVITY_MIN_INTERVAL_MS = 30000;
|
|
203
|
+
|
|
204
|
+
type PresenceConnectivityState = 'idle' | 'connecting' | 'ready' | 'transient_failure';
|
|
205
|
+
type PresenceVisibility = 'visible' | 'hidden';
|
|
206
|
+
type PresenceFocus = 'focused' | 'unfocused';
|
|
207
|
+
|
|
208
|
+
type PresenceInteractionKind = 'typing' | 'pointer' | 'tty';
|
|
209
|
+
|
|
210
|
+
interface UserActivityPayload {
|
|
211
|
+
at: number;
|
|
212
|
+
counts: {
|
|
213
|
+
typing: number;
|
|
214
|
+
pointer: number;
|
|
215
|
+
tty: number;
|
|
216
|
+
consumer_reads: number;
|
|
217
|
+
};
|
|
218
|
+
inflight: number;
|
|
219
|
+
visibility?: PresenceVisibility;
|
|
220
|
+
focus?: PresenceFocus;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
interface PresenceAwarenessSink {
|
|
224
|
+
setLocalStateField(field: string, value: unknown): void;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
interface PresenceTransportLike {
|
|
228
|
+
on(event: 'stateChange', handler: (state: TransportState) => void): () => void;
|
|
229
|
+
readonly state: TransportState;
|
|
230
|
+
}
|
|
231
|
+
interface PresenceTrackerOptions {
|
|
232
|
+
|
|
233
|
+
awareness?: PresenceAwarenessSink;
|
|
234
|
+
|
|
235
|
+
now?: () => number;
|
|
236
|
+
|
|
237
|
+
windowTarget?: Pick<Window, 'addEventListener' | 'removeEventListener'> | null;
|
|
238
|
+
documentTarget?: (Pick<Document, 'addEventListener' | 'removeEventListener'> & {
|
|
239
|
+
hasFocus?: () => boolean;
|
|
240
|
+
}) | null;
|
|
241
|
+
}
|
|
242
|
+
declare class PresenceTracker {
|
|
243
|
+
private readonly _awareness;
|
|
244
|
+
private readonly _now;
|
|
245
|
+
private readonly _win;
|
|
246
|
+
private _state;
|
|
247
|
+
private readonly _stateHandlers;
|
|
248
|
+
private readonly _transportUnsubs;
|
|
249
|
+
private _disposed;
|
|
250
|
+
private readonly _counts;
|
|
251
|
+
private _inflight;
|
|
252
|
+
private _visibility;
|
|
253
|
+
private _focus;
|
|
254
|
+
private _lastSignalAt;
|
|
255
|
+
private _lastPublishedAt;
|
|
256
|
+
private _trailing;
|
|
257
|
+
private _onWindowFocus;
|
|
258
|
+
private _onWindowBlur;
|
|
259
|
+
constructor(options?: PresenceTrackerOptions);
|
|
260
|
+
|
|
261
|
+
get state(): PresenceConnectivityState;
|
|
262
|
+
|
|
263
|
+
onState(handler: (state: PresenceConnectivityState) => void): () => void;
|
|
264
|
+
|
|
265
|
+
transportConnecting(): void;
|
|
266
|
+
|
|
267
|
+
transportReady(): void;
|
|
268
|
+
|
|
269
|
+
transportClosed(): void;
|
|
270
|
+
|
|
271
|
+
attachTransport(transport: PresenceTransportLike): () => void;
|
|
272
|
+
private _setState;
|
|
273
|
+
|
|
274
|
+
interaction(kind: PresenceInteractionKind, count?: number): void;
|
|
275
|
+
|
|
276
|
+
consumerRead(count?: number): void;
|
|
277
|
+
|
|
278
|
+
get inflight(): number;
|
|
279
|
+
|
|
280
|
+
workBegin(): () => void;
|
|
281
|
+
|
|
282
|
+
setVisibility(visibility: PresenceVisibility): void;
|
|
283
|
+
|
|
284
|
+
setFocus(focus: PresenceFocus): void;
|
|
285
|
+
|
|
286
|
+
private _signal;
|
|
287
|
+
private _publishNow;
|
|
288
|
+
|
|
289
|
+
dispose(): void;
|
|
290
|
+
}
|
|
291
|
+
|
|
196
292
|
declare const DEFAULT_DOC_SYNC_TIMEOUT_MS = 30000;
|
|
197
293
|
declare class SessionStream implements SessionStream$1 {
|
|
198
294
|
private _name;
|
|
@@ -276,6 +372,8 @@ declare class Session implements Session$1 {
|
|
|
276
372
|
|
|
277
373
|
private _activity;
|
|
278
374
|
|
|
375
|
+
private _presenceTracker;
|
|
376
|
+
|
|
279
377
|
private _activation;
|
|
280
378
|
|
|
281
379
|
private _activeRequests;
|
|
@@ -299,6 +397,9 @@ declare class Session implements Session$1 {
|
|
|
299
397
|
private _dialNegotiation;
|
|
300
398
|
|
|
301
399
|
private _dialNegotiationStarted;
|
|
400
|
+
|
|
401
|
+
private _generationTickHandlers;
|
|
402
|
+
private _generationTickStop;
|
|
302
403
|
constructor(sessionId: string, multiplexer: ChannelEndpoint, transport: TransportSession, recordingsAuth?: RecordingsClientOptions, artifactsAuth?: RuntimeArtifactsClientOptions);
|
|
303
404
|
private _wireControlDocIncarnation;
|
|
304
405
|
|
|
@@ -321,6 +422,8 @@ declare class Session implements Session$1 {
|
|
|
321
422
|
|
|
322
423
|
whenLive(options?: WhenLiveOptions): Promise<void>;
|
|
323
424
|
|
|
425
|
+
on(event: 'generationTick', handler: (tick: GenerationTick) => void): () => void;
|
|
426
|
+
|
|
324
427
|
get recordings(): RecordingsAccessor;
|
|
325
428
|
get artifacts(): RuntimeArtifactsAccessor;
|
|
326
429
|
setArtifactsAuth(auth: RuntimeArtifactsClientOptions): void;
|
|
@@ -336,12 +439,15 @@ declare class Session implements Session$1 {
|
|
|
336
439
|
|
|
337
440
|
touch(): void;
|
|
338
441
|
|
|
442
|
+
get presenceTracker(): PresenceTracker | null;
|
|
443
|
+
|
|
339
444
|
connectDocs(connector: DocConnector): void;
|
|
340
445
|
|
|
341
446
|
setDocTransport(opts: {
|
|
342
447
|
wsUrl: string;
|
|
343
448
|
token?: string | DocTokenSupplier;
|
|
344
449
|
webSocket?: typeof WebSocket;
|
|
450
|
+
resolveServerUrl?: DocServerUrlResolver;
|
|
345
451
|
}): void;
|
|
346
452
|
|
|
347
453
|
useStreamDataTransport(transport: StreamDataTransport): void;
|
|
@@ -366,6 +472,7 @@ declare class Session implements Session$1 {
|
|
|
366
472
|
|
|
367
473
|
negotiateMediaTransport(opts?: {
|
|
368
474
|
allowWebTransport?: boolean;
|
|
475
|
+
allowWebRtcFallback?: boolean;
|
|
369
476
|
}): void;
|
|
370
477
|
|
|
371
478
|
get mediaTransport(): 'webtransport' | 'webrtc' | null;
|
|
@@ -569,12 +676,105 @@ declare class TransportSessionMismatchError extends Error {
|
|
|
569
676
|
declare class SessionAllocationError extends Error {
|
|
570
677
|
|
|
571
678
|
readonly httpStatus?: number;
|
|
679
|
+
|
|
680
|
+
readonly code?: string;
|
|
681
|
+
|
|
682
|
+
readonly balanceCredits?: number;
|
|
683
|
+
|
|
684
|
+
readonly platformStatus?: string;
|
|
572
685
|
constructor(message: string, options?: {
|
|
573
686
|
httpStatus?: number;
|
|
687
|
+
code?: string;
|
|
688
|
+
balanceCredits?: number;
|
|
689
|
+
platformStatus?: string;
|
|
574
690
|
cause?: unknown;
|
|
575
691
|
});
|
|
576
692
|
}
|
|
577
693
|
|
|
694
|
+
interface CreditsClientOptions {
|
|
695
|
+
|
|
696
|
+
functionsUrl: string;
|
|
697
|
+
|
|
698
|
+
orgId: string;
|
|
699
|
+
|
|
700
|
+
apiKey?: string;
|
|
701
|
+
|
|
702
|
+
jwt?: string;
|
|
703
|
+
|
|
704
|
+
getAccessToken?: (options?: AccessTokenOptions) => string | null | undefined | Promise<string | null | undefined>;
|
|
705
|
+
|
|
706
|
+
authProvider?: string;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
interface CreditBalance {
|
|
710
|
+
org_id: string;
|
|
711
|
+
|
|
712
|
+
balance_credits: number;
|
|
713
|
+
|
|
714
|
+
available_credits: number;
|
|
715
|
+
free_credits: number;
|
|
716
|
+
subscription_credits: number;
|
|
717
|
+
purchased_credits: number;
|
|
718
|
+
overage_credits: number;
|
|
719
|
+
|
|
720
|
+
activated: boolean;
|
|
721
|
+
|
|
722
|
+
exempt: boolean;
|
|
723
|
+
updated_at: string;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
interface CreditLedgerEntry {
|
|
727
|
+
id: string;
|
|
728
|
+
|
|
729
|
+
delta_credits: number;
|
|
730
|
+
|
|
731
|
+
reason: string;
|
|
732
|
+
note?: string;
|
|
733
|
+
|
|
734
|
+
session_id?: string;
|
|
735
|
+
created_at: string;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
interface CreditsLedgerOptions {
|
|
739
|
+
|
|
740
|
+
limit?: number;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
declare class CreditsError extends Error {
|
|
744
|
+
|
|
745
|
+
readonly status: number;
|
|
746
|
+
|
|
747
|
+
readonly code: string;
|
|
748
|
+
constructor(message: string, options: {
|
|
749
|
+
status: number;
|
|
750
|
+
code: string;
|
|
751
|
+
cause?: unknown;
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
declare class CreditsUnauthorizedError extends CreditsError {
|
|
756
|
+
constructor(message?: string, code?: string);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
declare class CreditsClient {
|
|
760
|
+
private readonly _options;
|
|
761
|
+
private readonly _base;
|
|
762
|
+
constructor(_options: CreditsClientOptions);
|
|
763
|
+
|
|
764
|
+
getBalance(): Promise<CreditBalance>;
|
|
765
|
+
|
|
766
|
+
getLedger(options?: CreditsLedgerOptions): Promise<CreditLedgerEntry[]>;
|
|
767
|
+
|
|
768
|
+
private _request;
|
|
769
|
+
private _buildUrl;
|
|
770
|
+
private _fetch;
|
|
771
|
+
private _resolveToken;
|
|
772
|
+
private _readJson;
|
|
773
|
+
private _readError;
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
declare function createCreditsClient(options: CreditsClientOptions): CreditsClient;
|
|
777
|
+
|
|
578
778
|
type CaptureKind = 'audio' | 'video';
|
|
579
779
|
type GetUserMedia = (constraints: MediaStreamConstraints) => Promise<MediaStream>;
|
|
580
780
|
|
|
@@ -792,233 +992,18 @@ interface CameraWarp {
|
|
|
792
992
|
}
|
|
793
993
|
declare function createCameraWarp(options?: CameraWarpOptions): CameraWarp;
|
|
794
994
|
|
|
795
|
-
declare
|
|
796
|
-
|
|
797
|
-
interface WtDataEnvelope {
|
|
798
|
-
name: string;
|
|
799
|
-
payload: unknown;
|
|
800
|
-
}
|
|
801
|
-
|
|
802
|
-
interface WtDataLaneSink {
|
|
803
|
-
onData(name: string, payload: unknown): void;
|
|
804
|
-
onLaneError(err: Error): void;
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
interface QuicStreamDataTransport {
|
|
808
|
-
|
|
809
|
-
markStreamDataLaneQuic(): void;
|
|
810
|
-
|
|
811
|
-
dispatchQuicStreamData(name: string, payload: unknown): void;
|
|
812
|
-
|
|
813
|
-
quicStreamDataLaneLost(reason: string): void;
|
|
814
|
-
|
|
815
|
-
raiseQuicStreamDataError(err: Error): void;
|
|
816
|
-
}
|
|
817
|
-
|
|
818
|
-
declare class WtDataStreamParser {
|
|
819
|
-
private buf;
|
|
820
|
-
private name;
|
|
821
|
-
private ended;
|
|
822
|
-
|
|
823
|
-
get streamName(): string | null;
|
|
824
|
-
push(chunk: Uint8Array): WtDataEnvelope[];
|
|
825
|
-
|
|
826
|
-
finish(): void;
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
interface WtByteReader {
|
|
830
|
-
read(): Promise<{
|
|
831
|
-
value?: Uint8Array;
|
|
832
|
-
done: boolean;
|
|
833
|
-
}>;
|
|
834
|
-
cancel?(reason?: unknown): Promise<void>;
|
|
835
|
-
}
|
|
836
|
-
interface WtIncomingUniStream {
|
|
837
|
-
getReader(): WtByteReader;
|
|
838
|
-
}
|
|
839
|
-
interface WtIncomingUniStreams {
|
|
840
|
-
getReader(): {
|
|
841
|
-
read(): Promise<{
|
|
842
|
-
value?: WtIncomingUniStream;
|
|
843
|
-
done: boolean;
|
|
844
|
-
}>;
|
|
845
|
-
};
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
declare function consumeWtDataStreams(incoming: WtIncomingUniStreams, sink: WtDataLaneSink): Promise<void>;
|
|
849
|
-
|
|
850
|
-
interface MediaSession {
|
|
851
|
-
readonly kind: 'webtransport' | 'webrtc';
|
|
852
|
-
start(): Promise<void>;
|
|
853
|
-
stop(): Promise<void>;
|
|
854
|
-
|
|
855
|
-
onDead(cb: (reason: string) => void): void;
|
|
856
|
-
|
|
857
|
-
stats(): {
|
|
858
|
-
recvBps: number;
|
|
859
|
-
lossPct: number;
|
|
860
|
-
jitterMs: number;
|
|
861
|
-
};
|
|
862
|
-
|
|
863
|
-
readonly firstMedia: Promise<void>;
|
|
864
|
-
|
|
865
|
-
consumeDataStreams?(sink: WtDataLaneSink): void;
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
interface Signaling {
|
|
869
|
-
request<T = unknown>(method: string, params?: unknown): Promise<T>;
|
|
870
|
-
notify(method: string, params?: unknown): void;
|
|
871
|
-
|
|
872
|
-
on(method: string, handler: (params: Record<string, unknown>) => void): () => void;
|
|
873
|
-
}
|
|
874
|
-
|
|
875
|
-
interface SignalCarrier {
|
|
876
|
-
|
|
877
|
-
sendSignal(msg: Record<string, unknown>): void;
|
|
878
|
-
|
|
879
|
-
onSignal(handler: (msg: Record<string, unknown>) => void): () => void;
|
|
880
|
-
}
|
|
881
|
-
declare class TransportSessionSignaling implements Signaling {
|
|
882
|
-
private carrier;
|
|
883
|
-
private requestTimeoutMs;
|
|
884
|
-
constructor(carrier: SignalCarrier, requestTimeoutMs?: number);
|
|
885
|
-
request<T = unknown>(method: string, params?: unknown): Promise<T>;
|
|
886
|
-
notify(method: string, params?: unknown): void;
|
|
887
|
-
on(method: string, handler: (params: Record<string, unknown>) => void): () => void;
|
|
888
|
-
}
|
|
889
|
-
|
|
890
|
-
interface TransportOfferRequest {
|
|
891
|
-
sessionId: string;
|
|
892
|
-
capabilities: {
|
|
893
|
-
|
|
894
|
-
webtransport: boolean;
|
|
895
|
-
|
|
896
|
-
webcodecs: boolean;
|
|
897
|
-
|
|
898
|
-
codecs: string[];
|
|
899
|
-
|
|
900
|
-
wtData?: boolean;
|
|
901
|
-
};
|
|
902
|
-
}
|
|
903
|
-
interface TransportOfferResponse {
|
|
904
|
-
|
|
905
|
-
webrtc: {
|
|
906
|
-
routerRtpCapabilities: unknown;
|
|
907
|
-
};
|
|
908
|
-
|
|
909
|
-
webtransport?: {
|
|
910
|
-
url: string;
|
|
911
|
-
|
|
912
|
-
certHashes: string[];
|
|
913
|
-
|
|
914
|
-
token: string;
|
|
915
|
-
codec: string;
|
|
916
|
-
|
|
917
|
-
data?: boolean;
|
|
918
|
-
};
|
|
919
|
-
}
|
|
920
|
-
interface TransportEstablishedNotify {
|
|
921
|
-
sessionId: string;
|
|
922
|
-
transport: 'webtransport' | 'webrtc';
|
|
923
|
-
|
|
924
|
-
fallbackReason?: string;
|
|
925
|
-
}
|
|
926
|
-
type WtControlMessage = {
|
|
927
|
-
t: 'hello';
|
|
928
|
-
token: string;
|
|
929
|
-
sessionId: string;
|
|
930
|
-
} | {
|
|
931
|
-
t: 'hello-ack';
|
|
932
|
-
codec: string;
|
|
933
|
-
width: number;
|
|
934
|
-
height: number;
|
|
935
|
-
} | {
|
|
936
|
-
t: 'ping';
|
|
937
|
-
ts: number;
|
|
938
|
-
} | {
|
|
939
|
-
t: 'pong';
|
|
940
|
-
ts: number;
|
|
941
|
-
} | {
|
|
942
|
-
t: 'keyframe-request';
|
|
943
|
-
} | {
|
|
944
|
-
t: 'feedback';
|
|
945
|
-
recvBps: number;
|
|
946
|
-
lossPct: number;
|
|
947
|
-
jitterMs: number;
|
|
948
|
-
};
|
|
949
|
-
|
|
950
|
-
declare const WT_CONTROL_FRAME_MAX: number;
|
|
951
|
-
|
|
952
|
-
declare function encodeWtControlFrame(msg: WtControlMessage): Uint8Array;
|
|
953
|
-
|
|
954
|
-
declare class WtControlDecoder {
|
|
955
|
-
private buf;
|
|
956
|
-
push(bytes: Uint8Array): WtControlMessage[];
|
|
957
|
-
}
|
|
958
|
-
declare const DGRAM_HEADER_BYTES = 12;
|
|
959
|
-
interface DgramHeader {
|
|
960
|
-
groupId: number;
|
|
961
|
-
frameSeq: number;
|
|
962
|
-
keyframe: boolean;
|
|
963
|
-
fragIndex: number;
|
|
964
|
-
fragCount: number;
|
|
965
|
-
}
|
|
966
|
-
|
|
967
|
-
declare function parseDgramHeader(view: DataView): DgramHeader;
|
|
968
|
-
|
|
969
|
-
declare function writeDgramHeader(h: DgramHeader): Uint8Array;
|
|
970
|
-
|
|
971
|
-
interface NegotiatorDataLaneSeam {
|
|
972
|
-
|
|
973
|
-
onData(name: string, payload: unknown): void;
|
|
974
|
-
|
|
975
|
-
onQuicLane(): void;
|
|
976
|
-
|
|
977
|
-
onQuicLaneLost(reason: string): void;
|
|
978
|
-
|
|
979
|
-
onLaneError(err: Error): void;
|
|
980
|
-
}
|
|
981
|
-
interface NegotiatorOptions {
|
|
982
|
-
|
|
983
|
-
quicDeadlineMs?: number;
|
|
984
|
-
|
|
985
|
-
allowWebTransport?: boolean;
|
|
986
|
-
onTransportChange?: (kind: MediaSession['kind'], reason?: string) => void;
|
|
987
|
-
|
|
988
|
-
canvas?: HTMLCanvasElement;
|
|
989
|
-
|
|
990
|
-
createWebRtcSession: () => MediaSession;
|
|
991
|
-
createWebTransportSession?: (offer: NonNullable<TransportOfferResponse['webtransport']>) => MediaSession;
|
|
992
|
-
|
|
993
|
-
dataLane?: NegotiatorDataLaneSeam;
|
|
994
|
-
}
|
|
995
|
-
declare class TransportNegotiator {
|
|
996
|
-
private signaling;
|
|
997
|
-
private sessionId;
|
|
998
|
-
private opts;
|
|
999
|
-
private session;
|
|
995
|
+
declare class WebTransportSession implements MediaSession {
|
|
1000
996
|
private offer;
|
|
997
|
+
private sessionId;
|
|
998
|
+
private canvas;
|
|
1001
999
|
|
|
1002
|
-
private
|
|
1003
|
-
constructor(signaling: Signaling, sessionId: string, opts: NegotiatorOptions);
|
|
1004
|
-
get activeTransport(): MediaSession['kind'] | null;
|
|
1005
|
-
connect(): Promise<MediaSession>;
|
|
1006
|
-
disconnect(): Promise<void>;
|
|
1000
|
+
private audioLane?;
|
|
1007
1001
|
|
|
1008
|
-
|
|
1002
|
+
private audioUplink?;
|
|
1009
1003
|
|
|
1010
|
-
private
|
|
1011
|
-
private createWebTransportSession;
|
|
1012
|
-
private startWebRtc;
|
|
1004
|
+
private videoUplink?;
|
|
1013
1005
|
|
|
1014
|
-
private
|
|
1015
|
-
private notifyEstablished;
|
|
1016
|
-
}
|
|
1017
|
-
|
|
1018
|
-
declare class WebTransportSession implements MediaSession {
|
|
1019
|
-
private offer;
|
|
1020
|
-
private sessionId;
|
|
1021
|
-
private canvas;
|
|
1006
|
+
private dataUplink?;
|
|
1022
1007
|
readonly kind: "webtransport";
|
|
1023
1008
|
private wt;
|
|
1024
1009
|
private decoder;
|
|
@@ -1037,17 +1022,40 @@ declare class WebTransportSession implements MediaSession {
|
|
|
1037
1022
|
private lastStats;
|
|
1038
1023
|
|
|
1039
1024
|
private dataLaneSink;
|
|
1025
|
+
|
|
1026
|
+
private audioPlayout;
|
|
1027
|
+
|
|
1028
|
+
private audioUplinkLane;
|
|
1029
|
+
|
|
1030
|
+
private videoUplinkLane;
|
|
1031
|
+
|
|
1032
|
+
private dataUplinkSender;
|
|
1040
1033
|
private firstFrameResolve;
|
|
1041
1034
|
private firstFrameReject;
|
|
1042
1035
|
|
|
1043
1036
|
private firstFrameOutput;
|
|
1037
|
+
|
|
1038
|
+
private hasVideoLane;
|
|
1044
1039
|
private firstDecodeTimer;
|
|
1045
1040
|
|
|
1046
1041
|
readonly firstMedia: Promise<void>;
|
|
1047
|
-
constructor(offer: NonNullable<TransportOfferResponse['webtransport']>, sessionId: string, canvas: HTMLCanvasElement
|
|
1042
|
+
constructor(offer: NonNullable<TransportOfferResponse['webtransport']>, sessionId: string, canvas: HTMLCanvasElement,
|
|
1043
|
+
|
|
1044
|
+
audioLane?: WtAudioLaneSeam | undefined,
|
|
1045
|
+
|
|
1046
|
+
audioUplink?: WtAudioUplinkSeam | undefined,
|
|
1047
|
+
|
|
1048
|
+
videoUplink?: WtVideoUplinkSeam | undefined,
|
|
1049
|
+
|
|
1050
|
+
dataUplink?: {
|
|
1051
|
+
onUplink(sender: WtDataUplinkSender): void;
|
|
1052
|
+
onUplinkLost(reason: string): void;
|
|
1053
|
+
} | undefined);
|
|
1048
1054
|
|
|
1049
1055
|
start(): Promise<void>;
|
|
1050
1056
|
stop(): Promise<void>;
|
|
1057
|
+
|
|
1058
|
+
private dropUplinks;
|
|
1051
1059
|
onDead(cb: (reason: string) => void): void;
|
|
1052
1060
|
stats(): {
|
|
1053
1061
|
recvBps: number;
|
|
@@ -1146,4 +1154,4 @@ declare class FrameReassembler {
|
|
|
1146
1154
|
private requestKeyframe;
|
|
1147
1155
|
}
|
|
1148
1156
|
|
|
1149
|
-
export { ACTIVATION_COLD_BOOT_AFTER_MS, ACTIVATION_DEGRADED_AFTER_MS, ACTIVATION_HINT_PATH, ACTIVATION_STILL_AFTER_MS, ACTIVITY_DOM_EVENTS, ACTIVITY_FIELD, ACTIVITY_STAMP_MIN_INTERVAL_MS, ActivationEvent, ActivationMonitor, type ActivationMonitorOptions, type ActivationStreamLike, type ActivityAwareness, type ActivityTracker, type ActivityTrackerOptions, App, App$1 as AppInterface, AppOptions, AttachOptions, BACKOFF_BASE_MS, BACKOFF_MAX_ATTEMPTS, BACKOFF_MAX_MS, type CameraWarp, type CameraWarpOptions, type CameraWarpTransform, type CaptureClaim, CaptureController, type CaptureControllerOptions, type CaptureKind, CaptureUnavailableError, ChunkReadable, type ClientToken, ClientTokenError, type ConsumingTransport, type CreateClientTokenOptions, DATA_CHANNEL_MESSAGE_CEILING, DEFAULT_DOC_SYNC_TIMEOUT_MS, DEFAULT_GATEWAY_URL, DEFAULT_PRODUCE_ACK_TIMEOUT_MS, DEFAULT_REFERENCE_JPEG_QUALITY, DEFAULT_REFERENCE_MAX_SIZE, DEFAULT_WHEN_LIVE_TIMEOUT_MS,
|
|
1157
|
+
export { ACTIVATION_COLD_BOOT_AFTER_MS, ACTIVATION_DEGRADED_AFTER_MS, ACTIVATION_HINT_PATH, ACTIVATION_STILL_AFTER_MS, ACTIVITY_DOM_EVENTS, ACTIVITY_FIELD, ACTIVITY_STAMP_MIN_INTERVAL_MS, ActivationEvent, ActivationMonitor, type ActivationMonitorOptions, type ActivationStreamLike, type ActivityAwareness, type ActivityTracker, type ActivityTrackerOptions, App, App$1 as AppInterface, AppOptions, AttachOptions, BACKOFF_BASE_MS, BACKOFF_MAX_ATTEMPTS, BACKOFF_MAX_MS, type CameraWarp, type CameraWarpOptions, type CameraWarpTransform, type CaptureClaim, CaptureController, type CaptureControllerOptions, type CaptureKind, CaptureUnavailableError, ChunkReadable, type ClientToken, ClientTokenError, type ConsumingTransport, type CreateClientTokenOptions, type CreditBalance, type CreditLedgerEntry, CreditsClient, type CreditsClientOptions, CreditsError, type CreditsLedgerOptions, CreditsUnauthorizedError, DATA_CHANNEL_MESSAGE_CEILING, DEFAULT_DOC_SYNC_TIMEOUT_MS, DEFAULT_GATEWAY_URL, DEFAULT_PRODUCE_ACK_TIMEOUT_MS, DEFAULT_REFERENCE_JPEG_QUALITY, DEFAULT_REFERENCE_MAX_SIZE, DEFAULT_WHEN_LIVE_TIMEOUT_MS, DocTokenSupplier, FOCUS_FIELD, FOREGROUND_COALESCE_MS, FrameReassembler, GenerationTick, INPUT_PRESENCE_DEFAULT_HZ, INPUT_PRESENCE_FIELD, type InputPresenceAwareness, type InputPresencePublisher, type InputPresencePublisherOptions, type InputPresenceState, InvalidDurationError, LEGACY_ACTIVATION_HINT_PATH, MediaSession, type NormalizeReferenceImageOptions, PLATFORM_DOC_NAME, PermanentLockedError, type PhaseObservable, PinRequiresActiveTempError, Presence, type PresenceAwarenessSink, type PresenceConnectivityState, type PresenceFocus, type PresenceInteractionKind, PresenceTracker, type PresenceTrackerOptions, type PresenceTransportLike, type PresenceVisibility, ProduceAckTimeoutError, type ReassembledFrame, type ReassemblerCallbacks, type ReassemblerOptions, Recording, RecordingNotFoundError, RecordingsAccessor, RecordingsClient, type RecordingsClientOptions, RecordingsError, RecordingsUnauthorizedError, type ReferenceImage, type ReferenceImageSource, type ReferenceImageType, RequestAbortError, RequestCancelledError, RequestDocSyncError, RequestError, RequestOptions, RequestStreamOptions, RequestTimeoutError, RetainNotTempError, type RetentionIntent, RuntimeArtifact, RuntimeArtifactDownload, RuntimeArtifactNotFoundError, RuntimeArtifactsAccessor, RuntimeArtifactsClient, type RuntimeArtifactsClientOptions, RuntimeArtifactsError, RuntimeArtifactsUnauthorizedError, Session, SessionAllocationError, SessionDiagnostic, SessionEndError, SessionEndResult, SessionEndUnavailableError, SessionFailedError, SessionFailureKind, Session$1 as SessionInterface, SessionPhase, SessionPhaseName, SessionStatsSample, SessionStatus, SessionStream$1 as SessionStream, Store, StoreOptions, StreamChunkOptions, StreamDirectionConflict, TransportOfferResponse, TransportSessionMismatchError, TransportState, URUN_DEV_ENV, USER_ACTIVITY_FIELD, USER_ACTIVITY_MIN_INTERVAL_MS, type UserActivityPayload, VISIBILITY_FIELD, type VideoStreamOptions, WIRE_MESSAGE_BUDGET, WebRtcSession, WebTransportSession, type WhenLiveOptions, WtDataLaneSink, activationHintFrom, cameraCaptureAvailable, captureStillFromVideo, computeBackoffDelay, createActivityTracker, createCameraWarp, createClientToken, createCreditsClient, createInputPresencePublisher, createRecordingsClient, createRuntimeArtifactsClient, createStore, describeSessionFailure, describeSessionPhase, fitWithin, isDurationString, isRetryableSessionError, isServerTerminalPhase, isWakingPhase, normalizeReferenceImage, normalizeRetention, observeLeaveConfirm, observePageLifecycle, observePageTeardown, referenceImageErrorMessage, sessionFailureFromMediaError, sharedCaptureController, videoStream, whenLive };
|