@utsp/core 0.15.0-nightly.20251227200128.cdc09ed → 0.15.0

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.
@@ -480,6 +480,8 @@ interface NetworkLayer {
480
480
  height: number;
481
481
  orderCount: number;
482
482
  orders: AnyNetworkOrder[];
483
+ /** Optional decoded byte size of this layer segment in the update packet */
484
+ byteSize?: number;
483
485
  /**
484
486
  * CharCode mode for this layer
485
487
  * - false: 8-bit charCodes (0-255)
@@ -1707,6 +1709,18 @@ interface UpdatePacket {
1707
1709
  postProcessOrderCount: number;
1708
1710
  /** List of post-process orders (scanlines, ambient effect) */
1709
1711
  postProcessOrders: AnyPostProcessOrder[];
1712
+ /**
1713
+ * Optional: precise byte sizes (on-wire) for each section in this decoded packet.
1714
+ * Intended for debugging/telemetry (client-side). Not required for protocol correctness.
1715
+ */
1716
+ __byteSizes?: {
1717
+ displays: number;
1718
+ layers: number;
1719
+ audioOrders: number;
1720
+ vibrationOrders: number;
1721
+ macroOrders: number;
1722
+ postProcessOrders: number;
1723
+ };
1710
1724
  }
1711
1725
 
1712
1726
  /**
@@ -3721,6 +3735,20 @@ declare class Display {
3721
3735
  * Sets the display size
3722
3736
  */
3723
3737
  setSize(size: Vector2): void;
3738
+ /**
3739
+ * Returns a debug-friendly snapshot of this display (metadata only)
3740
+ */
3741
+ getDebugInfo(): {
3742
+ id: number;
3743
+ origin: {
3744
+ x: number;
3745
+ y: number;
3746
+ };
3747
+ size: {
3748
+ x: number;
3749
+ y: number;
3750
+ };
3751
+ };
3724
3752
  }
3725
3753
 
3726
3754
  /**
@@ -6441,6 +6469,25 @@ declare class User<TData = Record<string, any>> {
6441
6469
  * @internal
6442
6470
  */
6443
6471
  hasBridgeMessages(): boolean;
6472
+ /**
6473
+ * Returns a debug-friendly snapshot of this user (metadata only)
6474
+ */
6475
+ getDebugInfo(): {
6476
+ id: string;
6477
+ name: string;
6478
+ bytesSentTotal: number;
6479
+ bytesSentTick: number;
6480
+ availableViewports: Array<{
6481
+ displayId: number;
6482
+ pixelWidth: number;
6483
+ pixelHeight: number;
6484
+ }>;
6485
+ layers: ReturnType<Layer['getDebugInfo']>[];
6486
+ displays: ReturnType<Display['getDebugInfo']>[];
6487
+ displayComposite?: Record<number, {
6488
+ layerIdsTopToBottom: number[];
6489
+ }>;
6490
+ };
6444
6491
  }
6445
6492
 
6446
6493
  declare class CoreStats {
@@ -6467,6 +6514,11 @@ declare class CoreStats {
6467
6514
  get visibleLayers(): number;
6468
6515
  /** Layers visibles par display ID */
6469
6516
  get layersPerDisplay(): Map<number, number>;
6517
+ /**
6518
+ * Last known composition layer IDs per display (top-to-bottom).
6519
+ * Available only for the latest tick when stats are enabled.
6520
+ */
6521
+ get displayCompositeLayerIds(): Map<number, number[]>;
6470
6522
  /** Total encoded UpdatePacket size (bytes) */
6471
6523
  get updatePacketSize(): number;
6472
6524
  /** Display header size (bytes) */
@@ -6507,6 +6559,10 @@ declare class CoreStats {
6507
6559
  * Starts collecting statistics for a new tick
6508
6560
  */
6509
6561
  startTick(tickNumber: number): void;
6562
+ /**
6563
+ * Records the exact layer IDs used for composition, in order.
6564
+ */
6565
+ recordDisplayComposite(displayId: number, layerIdsTopToBottom: number[]): void;
6510
6566
  /**
6511
6567
  * Records orders for a layer
6512
6568
  */
@@ -7763,7 +7819,7 @@ declare class Core {
7763
7819
  * }
7764
7820
  * ```
7765
7821
  */
7766
- getRenderState(userId: string): UserRenderState | null;
7822
+ getRenderState(userId: string, layerFilter?: (layer: Layer) => boolean): UserRenderState | null;
7767
7823
  /**
7768
7824
  * Generates render state for all users
7769
7825
  *
@@ -8698,6 +8754,8 @@ declare class Core {
8698
8754
  * Layer configuration options
8699
8755
  */
8700
8756
  interface LayerOptions {
8757
+ /** Optional layer name for tooling/debug */
8758
+ name?: string;
8701
8759
  /**
8702
8760
  * CharCode mode for this layer (immutable after creation)
8703
8761
  * - '8bit': Uses Uint8Array, limited to 256 characters (ASCII/CP437), optimized bandwidth
@@ -8713,6 +8771,7 @@ interface LayerOptions {
8713
8771
  }
8714
8772
  declare class Layer {
8715
8773
  private id;
8774
+ private name?;
8716
8775
  private origin;
8717
8776
  private orders;
8718
8777
  private zOrder;
@@ -8807,6 +8866,34 @@ declare class Layer {
8807
8866
  * @returns Layer ID (0-65535)
8808
8867
  */
8809
8868
  getId(): number;
8869
+ /**
8870
+ * Gets the layer's optional name (debug/metadata only)
8871
+ */
8872
+ getName(): string | undefined;
8873
+ /**
8874
+ * Sets the layer's optional name (debug/metadata only)
8875
+ */
8876
+ setName(name: string | undefined): void;
8877
+ /**
8878
+ * Returns a debug-friendly snapshot of this layer (metadata only)
8879
+ */
8880
+ getDebugInfo(): {
8881
+ id: number;
8882
+ name?: string;
8883
+ z: number;
8884
+ isStatic: boolean;
8885
+ charCodeMode: CharCodeMode;
8886
+ width: number;
8887
+ height: number;
8888
+ origin: {
8889
+ x: number;
8890
+ y: number;
8891
+ };
8892
+ enabled: boolean;
8893
+ useSetMode: boolean;
8894
+ needsCommit: boolean;
8895
+ ordersCount: number;
8896
+ };
8810
8897
  /**
8811
8898
  * Sets the layer's unique ID
8812
8899
  *
@@ -8906,6 +8993,7 @@ declare class Layer {
8906
8993
  * DisplayOrigin defines the visible area of a display in world space
8907
8994
  */
8908
8995
  interface DisplayOrigin {
8996
+ id: number;
8909
8997
  x: number;
8910
8998
  y: number;
8911
8999
  width: number;
@@ -8964,6 +9052,12 @@ declare class DisplayRasterizer {
8964
9052
  private cellsBuffer;
8965
9053
  private opacityBuffer;
8966
9054
  private visibleLayersBuffer;
9055
+ private visibleLayerIdsBuffer;
9056
+ /**
9057
+ * Last computed visible layer IDs (sorted in actual composition order).
9058
+ * Updated on every rasterize() call.
9059
+ */
9060
+ getLastVisibleLayerIds(): ReadonlyArray<number>;
8967
9061
  constructor(engine: Core);
8968
9062
  /**
8969
9063
  * Rebuilds the RGB cache from the engine palette