@3dsource/angular-unreal-module 0.0.174 → 0.0.175
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/README.md
CHANGED
|
@@ -377,12 +377,26 @@ The package publishes two dependency-free scripts for use in the document
|
|
|
377
377
|
></script>
|
|
378
378
|
```
|
|
379
379
|
|
|
380
|
-
`stream-prefetch.js` runs
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
380
|
+
`stream-prefetch.js` runs only on `metabox-configurator/modular/{configuratorId}`
|
|
381
|
+
routes — the configurator id comes from the route and there is no attribute to
|
|
382
|
+
supply one, so the script cannot be enabled for an arbitrary page.
|
|
383
|
+
|
|
384
|
+
It reads the same-origin `assets/config.json` and `assets/features.json`, then
|
|
385
|
+
the configurator's cached record from `{cdn}/cache/configurator/{id}.json` — the
|
|
386
|
+
same document the host app reads — so it polls under the identity the app will
|
|
387
|
+
use rather than inventing one. The `newOrchestration` feature flag picks the
|
|
388
|
+
transport: `signalling` (HTTP polling) or `newSignalling` (control socket +
|
|
389
|
+
`requestStream`). The orchestration-issued `streamRequestId` is forwarded to
|
|
390
|
+
Cirrus on the WebSocket URL (the session `connectionId`) and parked for adoption.
|
|
391
|
+
|
|
392
|
+
`window.__stream` is both the parked stream and the lock: whichever of the script
|
|
393
|
+
and the Angular module writes it first owns the connection, so a page never
|
|
394
|
+
builds two. Load the script and the package from the same version — an older
|
|
395
|
+
script does not know about the lock.
|
|
396
|
+
|
|
397
|
+
Optional `data-*`: `data-config-url`, `data-features-url`, `data-ws-timeout`,
|
|
398
|
+
`data-poll-timeout`.
|
|
399
|
+
|
|
386
400
|
Pin an exact package version in production when deterministic CDN assets are
|
|
387
401
|
required.
|
|
388
402
|
|
|
@@ -252,6 +252,11 @@ const DisconnectReason = {
|
|
|
252
252
|
AbortEstablishingConnection: 'AbortEstablishingConnection',
|
|
253
253
|
};
|
|
254
254
|
|
|
255
|
+
/** True when the slot is the app's own marker rather than a prefetched stream. */
|
|
256
|
+
function isAppOwned(slot) {
|
|
257
|
+
return slot.owner === 'app';
|
|
258
|
+
}
|
|
259
|
+
|
|
255
260
|
/*
|
|
256
261
|
export interface RequestReservation extends InstanceMessageBase {
|
|
257
262
|
type: 'requestReservation';
|
|
@@ -701,7 +706,7 @@ const unrealReducer = createReducer(initialState, on(changeStatusMainVideoOnScen
|
|
|
701
706
|
return { ...state, analyticsEvent: event };
|
|
702
707
|
}), on(setCirrusConnected, (state) => {
|
|
703
708
|
return { ...state, cirrusConnected: true };
|
|
704
|
-
}), on(streamAdopted, (state, { machineId, pollingUrl, ssData, streamRequestId }) => {
|
|
709
|
+
}), on(streamAdopted, (state, { machineId, pollingUrl, ssData, streamRequestId, kind, instanceName, eta, }) => {
|
|
705
710
|
return {
|
|
706
711
|
...state,
|
|
707
712
|
cirrusConnected: true,
|
|
@@ -714,7 +719,11 @@ const unrealReducer = createReducer(initialState, on(changeStatusMainVideoOnScen
|
|
|
714
719
|
// adopted stream came from — `connectToSignaling` never ran, so no
|
|
715
720
|
// `setAwsInstance` will fill this in later.
|
|
716
721
|
pollingUrl: pollingUrl ?? state.awsInstance.pollingUrl,
|
|
717
|
-
|
|
722
|
+
// The machine's real id when the prefetch reported one; the
|
|
723
|
+
// placeholder only for scripts that predate the field.
|
|
724
|
+
instanceName: instanceName ?? 'Adopted Connection',
|
|
725
|
+
kind: kind ?? state.awsInstance.kind,
|
|
726
|
+
eta: eta ?? state.awsInstance.eta,
|
|
718
727
|
streamRequestId: streamRequestId ?? state.awsInstance.streamRequestId,
|
|
719
728
|
progressComplete: 0,
|
|
720
729
|
},
|
|
@@ -2148,12 +2157,18 @@ class SignallingService extends SubService {
|
|
|
2148
2157
|
* {@link OnOpenHandler} (which would re-`setCirrusConnected`). Reuses the
|
|
2149
2158
|
* head-script's `correlationId` so correlated messages line up.
|
|
2150
2159
|
*/
|
|
2151
|
-
adoptSocket(ws, correlationId) {
|
|
2160
|
+
adoptSocket(ws, correlationId, controlWs) {
|
|
2152
2161
|
this.correlationId = correlationId;
|
|
2153
2162
|
ws.onmessage = OnMessageHandler.bind(this);
|
|
2154
2163
|
ws.onclose = OnCloseHandler.bind(this);
|
|
2155
2164
|
ws.onerror = OnErrorHandler.bind(this);
|
|
2156
2165
|
this.ws = ws;
|
|
2166
|
+
// On the new-orchestration flow the prefetch also holds the control socket,
|
|
2167
|
+
// already handed over (open, handlers stripped). Take the reference so
|
|
2168
|
+
// `teardownControlWs` can close it — nothing else on this side can reach it.
|
|
2169
|
+
if (controlWs) {
|
|
2170
|
+
this.handedOverControlWs = controlWs;
|
|
2171
|
+
}
|
|
2157
2172
|
Logger.log('WS ADOPTED (handshake already done, requestStream already sent)');
|
|
2158
2173
|
}
|
|
2159
2174
|
showStatusMessage(statusMessage) {
|
|
@@ -3446,54 +3461,44 @@ class StreamAdoptionService {
|
|
|
3446
3461
|
this.webRtc = inject(WebRtcPlayerService);
|
|
3447
3462
|
}
|
|
3448
3463
|
/**
|
|
3449
|
-
* Decide adoption, WAITING for an in-flight prefetch instead of racing it
|
|
3450
|
-
*
|
|
3451
|
-
*
|
|
3452
|
-
* - already settled (`ready`/`failed`/`adopted`) → adopt-if-ready at once.
|
|
3453
|
-
* - still `connecting` → wait for the script's `onSettled` callback and
|
|
3454
|
-
* adopt-if-ready the instant it fires (event-driven, zero polling latency).
|
|
3464
|
+
* Decide adoption, WAITING for an in-flight prefetch instead of racing it:
|
|
3465
|
+
* nothing parked → `false`; settled → adopt-if-ready; still `connecting` →
|
|
3466
|
+
* wait for `onSettled`. Emits exactly once.
|
|
3455
3467
|
*
|
|
3456
|
-
*
|
|
3457
|
-
*
|
|
3458
|
-
*
|
|
3459
|
-
*
|
|
3460
|
-
* The wait is bounded by liveness instead: the script flips the parked state
|
|
3461
|
-
* to `failed` on a dead socket (`ws.onclose`/`onerror`), and the caller wraps
|
|
3462
|
-
* this in `takeUntil(abortEstablishingConnection)`, so a route change / teardown
|
|
3463
|
-
* cancels it. Emits exactly once. Cancelling runs no adoption — which is what
|
|
3464
|
-
* stops a fast route-switch from starting overlapping connections.
|
|
3468
|
+
* NO time budget: provisioning can take minutes, and a deadline would open a
|
|
3469
|
+
* second connection mid-flight. Bounded by liveness instead — the script
|
|
3470
|
+
* flips to `failed` on a dead socket — and by the caller's
|
|
3471
|
+
* `takeUntil(abortEstablishingConnection)`.
|
|
3465
3472
|
*
|
|
3466
|
-
*
|
|
3467
|
-
* `
|
|
3468
|
-
*
|
|
3469
|
-
* the single dispatch site for that boundary — which starts the telemetry
|
|
3470
|
-
* session and subscribes its phase catalog; that must happen BEFORE
|
|
3471
|
-
* `streamAdopted`, or `emitAdoptedConnection` fires into a session that does
|
|
3472
|
-
* not exist yet and the whole connection waterfall is lost. `defer`
|
|
3473
|
-
* guarantees that ordering.
|
|
3473
|
+
* `defer` so the `streamAdopted` dispatch happens at SUBSCRIPTION time: the
|
|
3474
|
+
* effect's `startWith(setEstablishingConnection(true))` must land first, or
|
|
3475
|
+
* the telemetry session does not exist yet and the waterfall is lost.
|
|
3474
3476
|
*/
|
|
3475
3477
|
awaitAndAdopt$() {
|
|
3476
3478
|
return defer(() => {
|
|
3477
|
-
const
|
|
3478
|
-
if (!
|
|
3479
|
+
const slot = window.__stream;
|
|
3480
|
+
if (!slot) {
|
|
3481
|
+
// The slot is free, so we connect — and take it in the same synchronous
|
|
3482
|
+
// breath, before any `await`. A head-script that evaluates later finds it
|
|
3483
|
+
// occupied and stands down instead of building a second connection.
|
|
3484
|
+
this.takeSlot();
|
|
3479
3485
|
return of(false);
|
|
3480
3486
|
}
|
|
3481
|
-
if (
|
|
3482
|
-
|
|
3487
|
+
if (isAppOwned(slot)) {
|
|
3488
|
+
// Our own marker from an earlier pass — nothing to adopt.
|
|
3489
|
+
return of(false);
|
|
3490
|
+
}
|
|
3491
|
+
if (slot.state !== 'connecting') {
|
|
3492
|
+
return of(this.tryAdoptOrTakeSlot());
|
|
3483
3493
|
}
|
|
3484
3494
|
Logger.info('[Adoption] Prefetch in progress — waiting before connecting');
|
|
3485
|
-
return this.awaitSettled$(
|
|
3495
|
+
return this.awaitSettled$(slot);
|
|
3486
3496
|
});
|
|
3487
3497
|
}
|
|
3488
3498
|
/**
|
|
3489
|
-
* Event-driven wait
|
|
3490
|
-
*
|
|
3491
|
-
*
|
|
3492
|
-
* No timer/budget by design: an indefinitely `connecting` stream is valid
|
|
3493
|
-
* (DIRECT orchestration holds the socket open for minutes while it
|
|
3494
|
-
* provisions), and every terminal state — including a dead socket — flips to
|
|
3495
|
-
* `ready`/`failed` and fires the hook. Teardown (route change → unsubscribe)
|
|
3496
|
-
* sets `done`, so a late callback after cancel can't trigger a stray adoption.
|
|
3499
|
+
* Event-driven wait on the script's `onSettled`; emits exactly once. No timer
|
|
3500
|
+
* — see `awaitAndAdopt$`. Teardown sets `done`, so a late callback after
|
|
3501
|
+
* cancel can't trigger a stray adoption.
|
|
3497
3502
|
*/
|
|
3498
3503
|
awaitSettled$(parked) {
|
|
3499
3504
|
return new Observable((subscriber) => {
|
|
@@ -3502,7 +3507,18 @@ class StreamAdoptionService {
|
|
|
3502
3507
|
if (done)
|
|
3503
3508
|
return;
|
|
3504
3509
|
done = true;
|
|
3505
|
-
|
|
3510
|
+
let adopted = false;
|
|
3511
|
+
try {
|
|
3512
|
+
adopted = this.tryAdoptOrTakeSlot();
|
|
3513
|
+
}
|
|
3514
|
+
catch (e) {
|
|
3515
|
+
// The script swallows a throwing callback, so an error escaping here
|
|
3516
|
+
// would emit nothing at all — leaving `exhaustMap` stuck forever with
|
|
3517
|
+
// `streamAdopted` already dispatched. Fall back to connecting.
|
|
3518
|
+
Logger.error('[Adoption] Adoption threw — falling back', e);
|
|
3519
|
+
this.takeSlot();
|
|
3520
|
+
}
|
|
3521
|
+
subscriber.next(adopted);
|
|
3506
3522
|
subscriber.complete();
|
|
3507
3523
|
});
|
|
3508
3524
|
return () => {
|
|
@@ -3510,13 +3526,57 @@ class StreamAdoptionService {
|
|
|
3510
3526
|
};
|
|
3511
3527
|
});
|
|
3512
3528
|
}
|
|
3529
|
+
/** Every `false` here means we are about to connect ourselves — take the slot. */
|
|
3530
|
+
tryAdoptOrTakeSlot() {
|
|
3531
|
+
const adopted = this.tryAdopt();
|
|
3532
|
+
if (!adopted) {
|
|
3533
|
+
this.takeSlot();
|
|
3534
|
+
}
|
|
3535
|
+
return adopted;
|
|
3536
|
+
}
|
|
3537
|
+
/** Mark the slot as the app's, replacing a spent prefetch object. */
|
|
3538
|
+
takeSlot() {
|
|
3539
|
+
// A `ready` stream whose socket died is never torn down by the script
|
|
3540
|
+
// (`onclose` skips `fail` once ready), so dropping the reference here would
|
|
3541
|
+
// orphan a live PeerConnection — a second connection for one page.
|
|
3542
|
+
const evicted = window.__stream;
|
|
3543
|
+
window.__stream = { owner: 'app' };
|
|
3544
|
+
if (evicted && !isAppOwned(evicted)) {
|
|
3545
|
+
this.closeParked(evicted);
|
|
3546
|
+
}
|
|
3547
|
+
}
|
|
3548
|
+
/** Best-effort teardown of a parked stream we are about to abandon. */
|
|
3549
|
+
closeParked(parked) {
|
|
3550
|
+
if (parked.state === 'adopted') {
|
|
3551
|
+
// Already handed to the module — that connection is live and its teardown
|
|
3552
|
+
// belongs to the session, not to whoever is taking the slot.
|
|
3553
|
+
return;
|
|
3554
|
+
}
|
|
3555
|
+
for (const closeable of [
|
|
3556
|
+
parked.dc,
|
|
3557
|
+
parked.pc,
|
|
3558
|
+
parked.ws,
|
|
3559
|
+
parked.controlWs,
|
|
3560
|
+
]) {
|
|
3561
|
+
try {
|
|
3562
|
+
closeable?.close();
|
|
3563
|
+
}
|
|
3564
|
+
catch {
|
|
3565
|
+
/* already closed / not closeable — nothing to salvage */
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
}
|
|
3513
3569
|
/**
|
|
3514
3570
|
* @returns `true` if a ready parked stream was adopted (caller must NOT
|
|
3515
3571
|
* start a fresh connection), `false` otherwise.
|
|
3516
3572
|
*/
|
|
3517
3573
|
tryAdopt() {
|
|
3518
|
-
const
|
|
3519
|
-
if (!
|
|
3574
|
+
const slot = window.__stream;
|
|
3575
|
+
if (!slot || isAppOwned(slot)) {
|
|
3576
|
+
return false;
|
|
3577
|
+
}
|
|
3578
|
+
const parked = slot;
|
|
3579
|
+
if (parked.state !== 'ready') {
|
|
3520
3580
|
return false;
|
|
3521
3581
|
}
|
|
3522
3582
|
// A ready stream whose transport died before adoption is useless — fall back.
|
|
@@ -3531,22 +3591,21 @@ class StreamAdoptionService {
|
|
|
3531
3591
|
Logger.info('[Adoption] Adopting prefetched stream', parked.timings);
|
|
3532
3592
|
// Clear the script's timers and mark the handoff complete.
|
|
3533
3593
|
parked.adopt();
|
|
3534
|
-
//
|
|
3535
|
-
//
|
|
3536
|
-
// (`ssData`) the prefetch captured from the `ssInfo` message. NOTE:
|
|
3537
|
-
// clientId/viewId are left untouched — the host app (metabox) already set
|
|
3538
|
-
// them authoritatively from its own data before `initSignalling`; the
|
|
3539
|
-
// script's ids are only used internally to establish the connection.
|
|
3594
|
+
// Flags cirrus connected, records the machine and hydrates `ssData`.
|
|
3595
|
+
// clientId/viewId are left alone — the host app already set them.
|
|
3540
3596
|
this.store.dispatch(streamAdopted({
|
|
3541
3597
|
machineId: parked.machineId ?? null,
|
|
3542
3598
|
pollingUrl: parked.pollingUrl ?? null,
|
|
3543
3599
|
ssData: parked.ssData ?? null,
|
|
3544
3600
|
streamRequestId: parked.ids?.streamRequestId || null,
|
|
3601
|
+
kind: parked.kind ?? null,
|
|
3602
|
+
instanceName: parked.instanceName ?? null,
|
|
3603
|
+
eta: parked.eta ?? null,
|
|
3545
3604
|
timings: parked.timings ?? null,
|
|
3546
3605
|
}));
|
|
3547
3606
|
// Hand the live socket over without re-sending `requestStream`, reusing the
|
|
3548
3607
|
// script's correlationId (the one `requestStream` was already sent with).
|
|
3549
|
-
this.signalling.adoptSocket(parked.ws, parked.ids.correlationId);
|
|
3608
|
+
this.signalling.adoptSocket(parked.ws, parked.ids.correlationId, parked.controlWs);
|
|
3550
3609
|
// Take ownership of pc/dc/media + replay buffered DC traffic. This drives
|
|
3551
3610
|
// `dataChannelConnected`, which the `unrealReceiverReady$` effect turns into
|
|
3552
3611
|
// `dataChannelReady` → app init (console commands, loopback, viewport).
|
|
@@ -8427,5 +8486,5 @@ function provideUnrealModule() {
|
|
|
8427
8486
|
* Generated bundle index. Do not edit.
|
|
8428
8487
|
*/
|
|
8429
8488
|
|
|
8430
|
-
export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DESTROY_DISCONNECT_REASONS, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, INNER_RETRY_LIMIT, INSTANCE_READY_TIMEOUT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PlayerCountHandler, RECONNECT_CONFIG, REGION_PING_ACCURATE_SAMPLES, REGION_PING_BACKGROUND_REFRESH_DELAY_MS, REGION_PING_CACHE_KEY, REGION_PING_CACHE_TTL_MS, REGION_PING_WARMUP_DEADLINE_MS, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamAdoptionService, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, UNREAL_CONFIG, UnrealAfkSlotDirective, UnrealCallbackService, UnrealCommunicatorService, UnrealEffects, UnrealResumeSlotDirective, UnrealSceneComponent, UnrealStatusMessage, UnrealStatusSlotDirective, VideoService, VideoStatsComponent, WSCloseCode_CIRRUS_ABNORMAL_CLOSURE, WSCloseCode_CIRRUS_MAX_PLAYERS_ERROR, WSCloseCode_CIRRUS_PLAYER_DISCONNECTED, WSCloseCode_CIRRUS_STREAMER_KIKED_PLAYER, WSCloseCode_FORCE_CIRRUS_CLOSE, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCode_UNKNOWN, WSCloseCodes, WS_OPEN_STATE, WS_RETRY_PER_INSTANCE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToPercents, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, isMetaboxMode, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, provideUnrealState, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, regionPingFetchEnd, regionPingFetchStart, regionResolved, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetUserInactivityTimeout, resetWarnTimeout, resolveSkin, saveAnalyticsEvent, selectCirrusConnectionId, selectClientAndViewIds, selectCommandProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsFullyConnected, selectIsLoaderScreenVisible, selectIsVideoPlayingAndDataChannelConnected, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectUserInactivityDetected, selectWarnTimeout, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setUserInactivityTimeout, setViewportNotReady, setViewportReady, showLoadingProgress, showResumeStreamPopup, showUnrealErrorMessage, showUserInactivityTimeoutPopup, signalingRetryAttempted, startStream, streamAdopted, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
|
|
8489
|
+
export { AFKService, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, CommandTelemetryService, ConfigHandler, ConsoleExtensionsService, ControlScheme, DATA_CHANNEL_CONNECTION_TIMEOUT, DEBOUNCE_TO_MANY_RESIZE_CALLS, DEFAULT_AFK_TIMEOUT, DEFAULT_AFK_TIMEOUT_PERIOD, DESTROY_DISCONNECT_REASONS, DevModeService, DisconnectReason, FULL_HD_HEIGHT, FULL_HD_WIDTH, FileHandlerService, FileReceiverService, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, INNER_RETRY_LIMIT, INSTANCE_READY_TIMEOUT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, MINIMAL_FPS, MIN_CONTAINER_SIZE, MessageType, MouseButton, MouseButtonsMask, OUTER_RETRY_DELAY, OnCloseHandler, OnErrorHandler, OnMessageHandler, OnOpenHandler, OrchestrationMessageTypes, POLLING_TIME, PlayerCountHandler, RECONNECT_CONFIG, REGION_PING_ACCURATE_SAMPLES, REGION_PING_BACKGROUND_REFRESH_DELAY_MS, REGION_PING_CACHE_KEY, REGION_PING_CACHE_TTL_MS, REGION_PING_WARMUP_DEADLINE_MS, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, SignallingService, SpecialKeyCodes, StatGraphComponent, StreamAdoptionService, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, UNREAL_CONFIG, UnrealAfkSlotDirective, UnrealCallbackService, UnrealCommunicatorService, UnrealEffects, UnrealResumeSlotDirective, UnrealSceneComponent, UnrealStatusMessage, UnrealStatusSlotDirective, VideoService, VideoStatsComponent, WSCloseCode_CIRRUS_ABNORMAL_CLOSURE, WSCloseCode_CIRRUS_MAX_PLAYERS_ERROR, WSCloseCode_CIRRUS_PLAYER_DISCONNECTED, WSCloseCode_CIRRUS_STREAMER_KIKED_PLAYER, WSCloseCode_FORCE_CIRRUS_CLOSE, WSCloseCode_NORMAL_AFK_TIMEOUT, WSCloseCode_NORMAL_CLOSURE, WSCloseCode_NORMAL_MANUAL_DISCONNECT, WSCloseCode_UNKNOWN, WSCloseCodes, WS_OPEN_STATE, WS_RETRY_PER_INSTANCE, WS_TIMEOUT, WebRtcPlayerService, WebrtcErrorModalComponent, abortEstablishingConnection, answerSent, changeStatusMainVideoOnScene, changeStreamResolutionAction, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, floatToPercents, floatToSmoothPercents, forceResizeViewport, fromResizeObserver, getActiveUrl, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, iceConnectionFailed, initSignalling, instanceReady, isAppOwned, isMetaboxMode, keepMaxUntilReset, makeEven, pollingEnded, pollingStarted, provideUnrealModule, provideUnrealState, qpToQuality, reconnectPeer, reconnectPeerFailed, reconnectPeerSuccess, regionPingFetchEnd, regionPingFetchStart, regionResolved, resetAfk, resetConfig, resetDataChannelForReconnect, resetIntroSrc, resetUserInactivityTimeout, resetWarnTimeout, resolveSkin, saveAnalyticsEvent, selectCirrusConnectionId, selectClientAndViewIds, selectCommandProgress, selectFreezeFrameCombinedDataUrl, selectFreezeFrameDataUrl, selectFreezeFrameDataUrlFromVideo, selectFreezeFrameProgressMessageFromVideo, selectIsAutostart, selectIsExistMatchUrls, selectIsFreezeFrameLoading, selectIsFullyConnected, selectIsLoaderScreenVisible, selectIsVideoPlayingAndDataChannelConnected, selectShowLoader, selectShowReconnectPopup, selectSignalingParameters, selectStreamConfig, selectTotalProgress, selectUserInactivityDetected, selectWarnTimeout, setAfkTimerCountdown, setAfkTimerHide, setAfkTimerVisible, setAwsInstance, setCirrusConnected, setCirrusDisconnected, setConfig, setEstablishingConnection, setFreezeFrame, setFreezeFrameFromVideo, setIntroImageSrc, setIntroVideoSrc, setLoadingImageSrc, setLoopBackCommandIsCompleted, setMaxFps, setOrchestrationContext, setOrchestrationMessage, setOrchestrationParameters, setOrchestrationProgress, setSignalingName, setStatusMessage, setStatusPercentSignallingServer, setStreamClientCompanyId, setStreamViewId, setUnrealPlaywrightConfig, setUserInactivityTimeout, setViewportNotReady, setViewportReady, showLoadingProgress, showResumeStreamPopup, showUnrealErrorMessage, showUserInactivityTimeoutPopup, signalingRetryAttempted, startStream, streamAdopted, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
|
|
8431
8490
|
//# sourceMappingURL=3dsource-angular-unreal-module.mjs.map
|