@3dsource/angular-unreal-module 0.0.183 → 0.0.185

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3dsource/angular-unreal-module",
3
- "version": "0.0.183",
3
+ "version": "0.0.185",
4
4
  "description": "Angular integration for Unreal Engine Pixel Streaming",
5
5
  "keywords": [
6
6
  "3dsource",
@@ -941,13 +941,26 @@ type SignalingRetryKind = 'ws-retry' | 'connect' | 'orchestration' | 'region-cyc
941
941
  * rtt) over one aggregation window (5 s, ~20 samples at 250 ms).
942
942
  *
943
943
  * - `p50` — the typical tick; robust to outliers, primary dashboard signal.
944
- * - `p95` — the bad tail users actually perceive; preferred for SLOs.
944
+ * - `p95` — the bad tail where HIGH is bad (rtt, jitter, qp).
945
+ * - `p05` — the bad tail where HIGH is good (fps, bitrate). Consumers need a
946
+ * robust low end, and `min` cannot serve: it is a single tick, so one
947
+ * dropped frame defines the window. Sent for every metric so the shape
948
+ * stays uniform; only fps and bitrate have a reason to read it.
949
+ *
950
+ * All three percentiles use linear interpolation between order statistics
951
+ * (type 7), matching the consumer's `percentile()` so the word means one
952
+ * thing across both repos.
945
953
  * - `min` — worst single tick (freeze detection).
946
954
  * - `max` — best single tick (did we ever reach the target?).
955
+ *
956
+ * Every field is a percentile of the SAME window, so a consumer may compare
957
+ * them to each other — but must never average them across windows to obtain
958
+ * a population percentile.
947
959
  */
948
960
  interface WindowAggregate {
949
961
  readonly p50: number;
950
962
  readonly p95: number;
963
+ readonly p05: number;
951
964
  readonly min: number;
952
965
  readonly max: number;
953
966
  }
@@ -3597,5 +3610,133 @@ declare const selectUserInactivityDetected: _ngrx_store.MemoizedSelector<Record<
3597
3610
  /** Used by external consumers (e.g., metabox). Do not remove. */
3598
3611
  declare const selectIsVideoPlayingAndDataChannelConnected: _ngrx_store.MemoizedSelector<Record<string, any>, boolean, (s1: boolean, s2: boolean) => boolean>;
3599
3612
 
3600
- export { AFKService, ALL_KEYBOARD_KEYS, 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, IME_PROCESS_KEY, INNER_RETRY_LIMIT, INSTANCE_READY_TIMEOUT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, MINIMAL_FPS, MIN_CONTAINER_SIZE, MODIFIER_KEY_CODES, 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, StatGraphComponent, StreamAdoptionService, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, UnrealAfkSlotDirective, UnrealCallbackService, UnrealCommunicatorService, UnrealEffects, UnrealKeyCode, 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 };
3613
+ interface CachedCanvas {
3614
+ canvas: HTMLCanvasElement;
3615
+ ctx: CanvasRenderingContext2D;
3616
+ }
3617
+ declare function getCanvasCached(id: string): CachedCanvas;
3618
+ type SnapshotSource = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap;
3619
+ declare function getSnapshot(imageElement: SnapshotSource, maxWidth?: number, output?: ImageOutputValues, quality?: number): HTMLCanvasElement | string;
3620
+
3621
+ /**
3622
+ * Colour-space conversions used by the dev stat graph overlay.
3623
+ *
3624
+ * Carried over verbatim; `HSVtoRGB` reassigns its locals, hence the
3625
+ * file-level `prefer-const` exemption.
3626
+ */
3627
+ declare function HEXtoRGB(color: number | string): {
3628
+ r: number;
3629
+ g: number;
3630
+ b: number;
3631
+ };
3632
+ declare function RGBtoHEX(r: number, g: number, b: number): string;
3633
+ /**
3634
+ * RGB from the respective figures, HSV sequences in terms of returns.
3635
+ * RGB values are as follows.
3636
+ * R - a number from 0 to 255
3637
+ * G - a number from 0 to 255
3638
+ * B - a number from 0 to 255
3639
+ *
3640
+ * HSV values are as follows.
3641
+ * H - a number between 360-0
3642
+ * S - number between 0 and 1.0
3643
+ * V - number between 0 and 1.0
3644
+ *
3645
+ * Cannot compute, including alpha.
3646
+ * @ Param r the red (R) indicating the number (0x00 to 0xFF to)
3647
+ * @ Param g green (G) indicates the number (0x00 to 0xFF to)
3648
+ * @ Param b blue (B) shows the number (0x00 to 0xFF to)
3649
+ * @ Return HSV values as [H, S, V]
3650
+ **/
3651
+ declare function RGBtoHSV(r: number, g: number, b: number): number[];
3652
+ /**
3653
+ * HSV from each of the RGB values to determine a return as a number[].
3654
+ * RGB values are as follows.
3655
+ * R - a number from 0 to 255
3656
+ * G - a number from 0 to 255
3657
+ * B - a number from 0 to 255
3658
+ *
3659
+ * HSV values are as follows.
3660
+ * H - a number between 360-0
3661
+ * S - number between 0 and 1.0
3662
+ * V - number between 0 and 1.0
3663
+ *
3664
+ * H is replaced with equivalent numbers in the range of the 360-0 that is out of range.
3665
+ * Cannot compute, including alpha.
3666
+ *
3667
+ * @ Param h hue (Hue) number that indicates (to 360-0)
3668
+ * @ Param s the saturation (Saturation) shows the number (0.0 to 1.0)
3669
+ * @ Param v lightness (Value) indicates the number (0.0 to 1.0)
3670
+ * @ Return RGB values into a number[] of [R, G, B]
3671
+ **/
3672
+ declare function HSVtoRGB(h: number, s: number, v: number): [number, number, number];
3673
+
3674
+ /** Console palette for the Unreal/Cirrus message log. */
3675
+ declare const COLOR_CODES: {
3676
+ readonly TO_UNREAL: readonly ["#ffffff", "#005912", "UNREAL <-"];
3677
+ readonly TAP_LOG: readonly ["#ffff00", "#1976d2", " [TAPLOG]"];
3678
+ readonly FROM_UNREAL: readonly ["#ffff00", "#898989", "UNREAL ->"];
3679
+ readonly FROM_UNREAL_ERROR: readonly ["#ffffff", "#ff0000", "UNREAL ERROR ->"];
3680
+ readonly FROM_CIRRUS: readonly ["#ffffff", "#ef702b", "CIRRUS ->"];
3681
+ readonly FROM_CIRRUS_ERROR: readonly ["#ffffff", "#ff0000", "CIRRUS ->"];
3682
+ readonly TO_CIRRUS: readonly ["#ffffff", "#3c9738", "CIRRUS <-"];
3683
+ };
3684
+
3685
+ declare function fitIntoRectangle(objectRect: Rect, areaRect: Rect, round?: boolean, fixedRatio?: number | null): Area;
3686
+
3687
+ declare function generateUuid(): string;
3688
+
3689
+ declare class Logger {
3690
+ static isDevMode: boolean;
3691
+ static colored(color: string, background: string, ...args: unknown[]): void;
3692
+ static log(...args: unknown[]): void;
3693
+ static warn(...args: unknown[]): void;
3694
+ static info(...args: unknown[]): void;
3695
+ static error(...args: unknown[]): void;
3696
+ }
3697
+
3698
+ /** Clamps `value` between `min` and `max`; an inverted range yields `min`. */
3699
+ declare function clampf(min: number, max: number, value: number): number;
3700
+ /** Linear interpolation; `value` is clamped to the 0..1 range first. */
3701
+ declare function lerp(min: number, max: number, value: number): number;
3702
+ /**
3703
+ * The inverse of {@link lerp}: where `value` sits between `min` and `max`.
3704
+ *
3705
+ * Returns 1 when the range is empty, to avoid dividing by zero.
3706
+ */
3707
+ declare function inverseLerp(min: number, max: number, value: number, clampToNormal?: boolean): number;
3708
+ /**
3709
+ * Floating-point equality within `Epsilon` (default `0.01`).
3710
+ *
3711
+ * Note the `||` fallback: passing `0` uses the default, it does not compare
3712
+ * exactly.
3713
+ */
3714
+ declare function fpIsASameAsB(A: number, B: number, Epsilon?: number): boolean;
3715
+
3716
+ type TruthyTypesOf<T> = T extends false | '' | 0 | null | undefined ? never : T;
3717
+ type FalsyTypesOf<T> = T extends false | '' | 0 | null | undefined ? T : never;
3718
+ /**
3719
+ * Truthiness with the string forms folded in: `'false'`, `'undefined'` and
3720
+ * `'null'` are falsy here, which `Boolean` would call true.
3721
+ */
3722
+ declare const Truthy: <T>(value: T) => value is TruthyTypesOf<T>;
3723
+ /** The inverse of {@link Truthy}. */
3724
+ declare const Falsy: <T>(value: T) => value is FalsyTypesOf<T>;
3725
+
3726
+ /**
3727
+ * A counting semaphore: `acquire()` resolves once a slot is free, `release()`
3728
+ * hands the slot to the longest-waiting caller.
3729
+ */
3730
+ declare class Semaphore {
3731
+ private readonly maxConcurrency;
3732
+ private tasks;
3733
+ private currentCount;
3734
+ constructor(maxConcurrency: number);
3735
+ acquire(): Promise<void>;
3736
+ release(): void;
3737
+ }
3738
+
3739
+ declare const tapLog: <T>(text: string, ...args: unknown[]) => ((source: Observable<T>) => Observable<T>);
3740
+
3741
+ export { AFKService, ALL_KEYBOARD_KEYS, AUTO_HIGH_RESOLUTION_IDLE_MS, AfkTimeoutModalComponent, AggregatorService, AnalyticsService, AnswerHandler, COLOR_CODES, 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, Falsy, FileHandlerService, FileReceiverService, FpsMonitorService, FreezeFrameComponent, FreezeFrameService, HEXtoRGB, HSVtoRGB, IME_PROCESS_KEY, INNER_RETRY_LIMIT, INSTANCE_READY_TIMEOUT, IceCandidateHandler, ImageLoadingSrcComponent, InputOptions, InputService, InstanceReadyHandler, InstanceReservedHandler, IntroSrcComponent, LatencyTimings, LoadingProgressService, Logger, MINIMAL_FPS, MIN_CONTAINER_SIZE, MODIFIER_KEY_CODES, 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, RGBtoHEX, RGBtoHSV, RegionsPingService, SAME_SIZE_THRESHOLD, SCREEN_LOCKER_CONTAINER_ID, SIGNALLING_PERCENT_VALUE, SSInfoHandler, STREAMING_AUDIO_ID, STREAMING_VIDEO_ID, SafePipe, Semaphore, SignallingService, StatGraphComponent, StreamAdoptionService, StreamStatusTelemetryService, StreamStatusTelemetryService2, SubService, ToClientMessage, Truthy, UnrealAfkSlotDirective, UnrealCallbackService, UnrealCommunicatorService, UnrealEffects, UnrealKeyCode, 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, clampf, commandCompleted, commandStarted, dataChannelConnected, dataChannelReady, decodeData, destroyRemoteConnections, destroyUnrealScene, disconnectStream, dispatchResize, dropConnection, dropDC, dropPC, fitIntoRectangle, floatToPercents, floatToSmoothPercents, forceResizeViewport, fpIsASameAsB, fromResizeObserver, generateUuid, getActiveUrl, getCanvasCached, getImageFromVideoStream, getResizeStudioValues, getResizeValuesUniversal, getRtcErrorMessage, getSnapshot, iceConnectionFailed, initSignalling, instanceReady, inverseLerp, isAppOwned, isMetaboxMode, keepMaxUntilReset, lerp, 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, tapLog, trackMixpanelEvent, trackTelemetryData, uint8ToBase64, unrealCommandCallback, unrealFeature, unrealReducer, updateCirrusInfo, videoAdaptedToContainer, videoStreamInitialized };
3601
3742
  export type { AggregatedStat, AnySignalingMessage, AppOwnedStream, Area, AwsInstance, BootstrapInfo, CandidateMessage, CirrusRequestKind, CloseReason, CommandInProgress, ConfigMessage, ConnectionError, ControlSchemeValues, Coords, DisconnectReasonType, EmittedMilestone, EventId, FpsLowData, FreezeFrameMessage, IKeyCode, IKeyCodeName, IKeyName, ImageOutputValues, InboundVideoStats, InputProps, InstanceReady, InstanceReserved, InterruptClientStream, ListStreamersMessage, MessageBase, MessageTypeValues, OrchestrationErrorMessage, OrchestrationMessageType, P2PEstablishedMessage, ParkedStream, PhaseEndedData, PhaseOverlay, PhaseParam, PlayerCountMessage, PollingOrchestrationMessage, Quality, QualityAnomalyData, ReceivedFile, Rect, RequestStream, ResourceBucket, ResourceTotals, SSInfo, SampleData, SelectedIceCandidatePair, SessionEndReason, SessionEndedData, SessionStartedData, SignalingData, SignalingMessageHandler, SignalingMessageMap, SignalingRetryData, SignalingRetryKind, Size, SlowResource, StreamConfig, StreamRequestContext, StreamResolutionProps, StreamTelemetryEvent, StreamTelemetryEventMap, StreamTelemetryEventName, StreamTelemetryLifecycleData, StreamTelemetryLifecycleEventName, StreamTelemetryTrackData, StreamerListMessage, TelemetryEventEnvelope, TelemetryLifecycleEnvelope, TelemetryType, UnknownFields, UnrealAfkSlotContext, UnrealCallbackDescriptor, UnrealCallbackEventMap, UnrealCallbackJson, UnrealCallbackJsonWrapped, UnrealResumeSlotContext, UnrealSlotTemplateContext, UnrealState, UnrealStatusSlotContext, UnrealUiClasses, UnrealUiPart, WSCloseCodesValues, WindowAggregate };