@smoregg/sdk 2.2.0 → 2.3.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.
@@ -222,7 +222,6 @@ export type ScreenLifecycleEvent = keyof ScreenLifecycleHandlers;
222
222
  */
223
223
  export interface ControllerLifecycleHandlers extends ScreenLifecycleHandlers {
224
224
  '$game-over': (results?: GameResults) => void;
225
- '$state-recovery': (states: Record<number, Record<string, any>>) => void;
226
225
  }
227
226
  /** Controller lifecycle event name union. */
228
227
  export type ControllerLifecycleEvent = keyof ControllerLifecycleHandlers;
@@ -367,6 +366,16 @@ export interface Screen<TEvents extends EventMap = EventMap> {
367
366
  /**
368
367
  * Register a callback for when a controller reconnects after a disconnect.
369
368
  *
369
+ * In the stateless controller pattern, use this callback to re-push
370
+ * the current view state to the reconnecting controller.
371
+ *
372
+ * @example
373
+ * ```ts
374
+ * screen.onControllerReconnect((playerIndex) => {
375
+ * screen.sendToController(playerIndex, 'view-update', getCurrentView(playerIndex));
376
+ * });
377
+ * ```
378
+ *
370
379
  * @param callback - Called with player index and updated controller info
371
380
  * @returns Unsubscribe function to remove the callback
372
381
  */
@@ -397,10 +406,16 @@ export interface Screen<TEvents extends EventMap = EventMap> {
397
406
  /**
398
407
  * Broadcast an event to all connected controllers.
399
408
  *
409
+ * Use this to push the same view state to all controllers simultaneously.
410
+ *
400
411
  * @param event - Event name (must match TEvents keys)
401
412
  * @param data - Event data (type-safe based on event name)
402
413
  * @note Data should be an object. Primitive values will be wrapped as `{ data: value }` by the relay server.
403
414
  * @note Maximum payload size is 64KB. Payloads exceeding this limit will be silently dropped by the server.
415
+ * **Rate limit:** The server allows up to 60 events/sec per Screen socket
416
+ * (shared across broadcast and sendToController calls).
417
+ * Events exceeding this limit are silently dropped.
418
+ * Messages from a single sender are delivered in order.
404
419
  *
405
420
  * @example
406
421
  * ```ts
@@ -413,37 +428,32 @@ export interface Screen<TEvents extends EventMap = EventMap> {
413
428
  *
414
429
  * Screen -> Controller direction only. For Controller -> Screen, see `send()`.
415
430
  *
431
+ * This is the primary method for the stateless controller pattern:
432
+ * push complete view state to a specific controller.
433
+ *
416
434
  * @param playerIndex - Target controller's player index
417
435
  * @param event - Event name (must match TEvents keys)
418
436
  * @param data - Event data (type-safe based on event name)
419
437
  * @note Data should be an object. Primitive values will be wrapped as `{ data: value }` by the relay server.
420
438
  * @note Maximum payload size is 64KB. Payloads exceeding this limit will be silently dropped by the server.
439
+ * **Rate limit:** Shares the 60 events/sec limit with broadcast().
421
440
  *
422
441
  * @example
423
442
  * ```ts
424
443
  * screen.sendToController(0, 'your-turn', { timeLimit: 30 });
425
444
  * ```
426
- */
427
- sendToController<K extends EventNames<TEvents>>(playerIndex: PlayerIndex, event: K, data: EventData<TEvents, K>): void;
428
- /**
429
- * Get a specific controller's cached custom state.
430
- * Returns undefined if no state has been set for this controller.
431
- *
432
- * @param playerIndex - The controller's player index
433
- */
434
- getControllerState(playerIndex: number): Record<string, any> | undefined;
435
- /**
436
- * Get all controllers' cached custom states.
437
- * Returns a record mapping player index to state.
438
- */
439
- getAllControllerStates(): Record<number, Record<string, any>>;
440
- /**
441
- * Register a listener for custom state changes from any controller.
442
445
  *
443
- * @param listener - Called with the player index and the new state
444
- * @returns Unsubscribe function
446
+ * @example
447
+ * ```ts
448
+ * // Push current game view to a specific player
449
+ * screen.sendToController(playerIndex, 'view-update', {
450
+ * phase: 'voting',
451
+ * candidates: [1, 3, 5],
452
+ * timeRemaining: 30,
453
+ * });
454
+ * ```
445
455
  */
446
- onCustomStateChange(listener: (playerIndex: number, state: Record<string, any>) => void): () => void;
456
+ sendToController<K extends EventNames<TEvents>>(playerIndex: PlayerIndex, event: K, data: EventData<TEvents, K>): void;
447
457
  /**
448
458
  * Signal that the game is over and send results.
449
459
  * This will broadcast a game-over event to all controllers.
@@ -622,6 +632,17 @@ export interface ControllerConfig {
622
632
  * All coordination between controllers must go through the Screen.
623
633
  *
624
634
  * Flow: Controller.send() -> Screen receives -> Screen.broadcast() or Screen.sendToController()
635
+ *
636
+ * ## Stateless Controller Pattern (Recommended)
637
+ *
638
+ * Controllers should be stateless display + input devices:
639
+ * - Render only what Screen sends via `on()` event handlers
640
+ * - Send only user input to Screen via `send()`
641
+ * - Do NOT store game state on the controller
642
+ * - Screen is the single source of truth for all game state
643
+ *
644
+ * When a controller reconnects, Screen re-pushes current view state
645
+ * via `sendToController()` in the `onControllerReconnect` callback.
625
646
  */
626
647
  export interface Controller<TEvents extends EventMap = EventMap> {
627
648
  /** My player index (0, 1, 2, ...). */
@@ -736,25 +757,6 @@ export interface Controller<TEvents extends EventMap = EventMap> {
736
757
  * Returns undefined if not found.
737
758
  */
738
759
  getController(playerIndex: PlayerIndex): ControllerInfo | undefined;
739
- /**
740
- * Set custom state for this controller. State is merged with existing state on the server.
741
- * State persists only for the duration of the game session.
742
- *
743
- * @param state - Key-value state to merge
744
- */
745
- setState(state: Record<string, any>): void;
746
- /**
747
- * Get this controller's cached custom state.
748
- * Returns undefined if no state has been set.
749
- */
750
- getMyState(): Record<string, any> | undefined;
751
- /**
752
- * Register a listener for custom state changes from any controller.
753
- *
754
- * @param listener - Called with the player index and the new state
755
- * @returns Unsubscribe function
756
- */
757
- onCustomStateChange(listener: (playerIndex: number, state: Record<string, any>) => void): () => void;
758
760
  /**
759
761
  * Send an event to the screen.
760
762
  *
@@ -763,6 +765,8 @@ export interface Controller<TEvents extends EventMap = EventMap> {
763
765
  * @param event - Event name (must match TEvents keys)
764
766
  * @param data - Event data (type-safe based on event name)
765
767
  * @note Maximum payload size is 64KB. Payloads exceeding this limit will be silently dropped by the server.
768
+ * **Rate limit:** The server allows up to 60 events/sec per Controller socket.
769
+ * Messages are delivered to Screen in the order they are sent.
766
770
  *
767
771
  * @example
768
772
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -164,13 +164,8 @@
164
164
  SELF_DISCONNECTED: "smore:self-disconnected",
165
165
  SELF_RECONNECTED: "smore:self-reconnected",
166
166
  // Send to specific player (internal use)
167
- SEND_TO_PLAYER: "smore:send-to-player",
167
+ SEND_TO_PLAYER: "smore:send-to-player"
168
168
  // Used internally by platform, not handled by SDK
169
- // Custom state management
170
- STATE_SET: "smore:set-custom-state",
171
- STATE_CHANGED: "smore:custom-state-changed",
172
- STATE_GET_ALL: "smore:get-custom-states",
173
- STATE_ALL: "smore:custom-states"
174
169
  };
175
170
  new Set(
176
171
  Object.values(SMORE_EVENTS)
@@ -208,8 +203,7 @@
208
203
  ]);
209
204
  const CONTROLLER_LIFECYCLE_EVENTS = /* @__PURE__ */ new Set([
210
205
  ...SCREEN_LIFECYCLE_EVENTS,
211
- "$game-over",
212
- "$state-recovery"
206
+ "$game-over"
213
207
  ]);
214
208
 
215
209
  class DebugLogger {
@@ -346,9 +340,6 @@
346
340
  _allReadyFired = false;
347
341
  // Self-connection awareness
348
342
  _isConnected = false;
349
- // Custom state management
350
- _customStates = /* @__PURE__ */ new Map();
351
- _stateChangeListeners = /* @__PURE__ */ new Set();
352
343
  // Protocol versioning
353
344
  _protocolVersion = PROTOCOL_VERSION;
354
345
  // Ready promise
@@ -576,43 +567,6 @@
576
567
  this.logger.lifecycle("Connection restored");
577
568
  this._emitLifecycle("$connection-change", true);
578
569
  });
579
- this.registerTransportHandler(SMORE_EVENTS.STATE_CHANGED, (raw) => {
580
- const data = raw;
581
- if (typeof data?.playerIndex === "number" && data.state) {
582
- this._customStates.set(data.playerIndex, data.state);
583
- this._stateChangeListeners.forEach((cb) => {
584
- try {
585
- cb(data.playerIndex, data.state);
586
- } catch (err) {
587
- this.handleError(
588
- new SmoreSDKError("UNKNOWN", "Error in custom state change listener", {
589
- cause: err instanceof Error ? err : void 0
590
- })
591
- );
592
- }
593
- });
594
- }
595
- });
596
- this.registerTransportHandler(SMORE_EVENTS.STATE_ALL, (raw) => {
597
- const data = raw;
598
- if (data?.states) {
599
- for (const [key, value] of Object.entries(data.states)) {
600
- const pi = Number(key);
601
- this._customStates.set(pi, value);
602
- this._stateChangeListeners.forEach((cb) => {
603
- try {
604
- cb(pi, value);
605
- } catch (err) {
606
- this.handleError(
607
- new SmoreSDKError("UNKNOWN", "Error in custom state change listener", {
608
- cause: err instanceof Error ? err : void 0
609
- })
610
- );
611
- }
612
- });
613
- }
614
- }
615
- });
616
570
  }
617
571
  /**
618
572
  * Sets up a user event handler with playerIndex extraction.
@@ -737,6 +691,22 @@
737
691
  onControllerDisconnect(callback) {
738
692
  return this._addLifecycleListener("$controller-disconnect", callback);
739
693
  }
694
+ /**
695
+ * Register a callback for when a controller reconnects after a disconnect.
696
+ *
697
+ * In the stateless controller pattern, use this callback to re-push
698
+ * the current view state to the reconnecting controller.
699
+ *
700
+ * @example
701
+ * ```ts
702
+ * screen.onControllerReconnect((playerIndex) => {
703
+ * screen.sendToController(playerIndex, 'view-update', getCurrentView(playerIndex));
704
+ * });
705
+ * ```
706
+ *
707
+ * @param callback - Called with player index and updated controller info
708
+ * @returns Unsubscribe function to remove the callback
709
+ */
740
710
  onControllerReconnect(callback) {
741
711
  return this._addLifecycleListener("$controller-reconnect", callback);
742
712
  }
@@ -750,25 +720,6 @@
750
720
  return this._addLifecycleListener("$connection-change", callback);
751
721
  }
752
722
  // ---------------------------------------------------------------------------
753
- // Custom State Methods
754
- // ---------------------------------------------------------------------------
755
- getControllerState(playerIndex) {
756
- return this._customStates.get(playerIndex);
757
- }
758
- getAllControllerStates() {
759
- const result = {};
760
- for (const [key, value] of this._customStates) {
761
- result[key] = value;
762
- }
763
- return result;
764
- }
765
- onCustomStateChange(listener) {
766
- this._stateChangeListeners.add(listener);
767
- return () => {
768
- this._stateChangeListeners.delete(listener);
769
- };
770
- }
771
- // ---------------------------------------------------------------------------
772
723
  // Communication Methods
773
724
  // ---------------------------------------------------------------------------
774
725
  /**
@@ -776,6 +727,8 @@
776
727
  *
777
728
  * Uses EventMap generic for compile-time type checking of event names and data payloads.
778
729
  *
730
+ * Use this to push the same view state to all controllers simultaneously.
731
+ *
779
732
  * @note Data should be an object. Primitive values will be wrapped as `{ data: value }` by the relay server.
780
733
  * @note Maximum payload size is 64KB. Data exceeding this limit will be silently dropped by the server.
781
734
  * @note Fire-and-forget sends (no callback) will silently fail if rate-limited.
@@ -801,6 +754,9 @@
801
754
  /**
802
755
  * Send an event to a specific controller.
803
756
  *
757
+ * This is the primary method for the stateless controller pattern:
758
+ * push complete view state to a specific controller.
759
+ *
804
760
  * **Reserved field:** `targetPlayerIndex` is automatically merged into the data payload
805
761
  * to route the event to the specified controller. Game developers should avoid using
806
762
  * `targetPlayerIndex` as a custom data field name to prevent conflicts.
@@ -811,6 +767,16 @@
811
767
  * @param playerIndex - Target controller's player index
812
768
  * @param event - Event name
813
769
  * @param data - Event data payload
770
+ *
771
+ * @example
772
+ * ```ts
773
+ * // Push current game view to a specific player
774
+ * screen.sendToController(playerIndex, 'view-update', {
775
+ * phase: 'voting',
776
+ * candidates: [1, 3, 5],
777
+ * timeRemaining: 30,
778
+ * });
779
+ * ```
814
780
  */
815
781
  sendToController(playerIndex, event, data) {
816
782
  if (this._isDestroyed) {
@@ -1038,8 +1004,6 @@
1038
1004
  this.handlerToTransport.clear();
1039
1005
  this._pendingHandlers = [];
1040
1006
  this._lifecycleListeners.clear();
1041
- this._customStates.clear();
1042
- this._stateChangeListeners.clear();
1043
1007
  this._isConnected = false;
1044
1008
  this._outboundBuffer = [];
1045
1009
  if (this.transport instanceof PostMessageTransport) {
@@ -1100,8 +1064,6 @@
1100
1064
  // Maps user-facing handler -> transport wrappedHandler for proper cleanup in on()/off()
1101
1065
  handlerToTransport = /* @__PURE__ */ new Map();
1102
1066
  _controllers = [];
1103
- _customStates = /* @__PURE__ */ new Map();
1104
- _stateChangeListeners = /* @__PURE__ */ new Set();
1105
1067
  // Pending handlers registered via on() before transport is ready
1106
1068
  _pendingHandlers = [];
1107
1069
  // Unified lifecycle listener map (supports both onXxx() and on('$xxx') patterns)
@@ -1260,10 +1222,6 @@
1260
1222
  this._pendingHandlers = [];
1261
1223
  this._isConnected = true;
1262
1224
  this._isReady = true;
1263
- if (initData.gameInProgress && this.transport) {
1264
- this.logger.lifecycle("Game in progress detected, requesting state recovery");
1265
- this.transport.emit(SMORE_EVENTS.STATE_GET_ALL, {});
1266
- }
1267
1225
  for (const buffered of this._outboundBuffer) {
1268
1226
  try {
1269
1227
  switch (buffered.method) {
@@ -1414,44 +1372,6 @@
1414
1372
  this.logger.lifecycle("Connection restored");
1415
1373
  this._emitLifecycle("$connection-change", true);
1416
1374
  });
1417
- this.registerHandler(SMORE_EVENTS.STATE_CHANGED, (raw) => {
1418
- const data = raw;
1419
- if (typeof data?.playerIndex === "number" && data.state) {
1420
- this._customStates.set(data.playerIndex, data.state);
1421
- this._stateChangeListeners.forEach((cb) => {
1422
- try {
1423
- cb(data.playerIndex, data.state);
1424
- } catch (err) {
1425
- this.handleError(
1426
- new SmoreSDKError("UNKNOWN", "Error in custom state change listener", {
1427
- cause: err instanceof Error ? err : void 0
1428
- })
1429
- );
1430
- }
1431
- });
1432
- }
1433
- });
1434
- this.registerHandler(SMORE_EVENTS.STATE_ALL, (raw) => {
1435
- const data = raw;
1436
- if (data?.states) {
1437
- for (const [key, value] of Object.entries(data.states)) {
1438
- const pi = Number(key);
1439
- this._customStates.set(pi, value);
1440
- this._stateChangeListeners.forEach((cb) => {
1441
- try {
1442
- cb(pi, value);
1443
- } catch (err) {
1444
- this.handleError(
1445
- new SmoreSDKError("UNKNOWN", "Error in custom state change listener", {
1446
- cause: err instanceof Error ? err : void 0
1447
- })
1448
- );
1449
- }
1450
- });
1451
- }
1452
- this._emitLifecycle("$state-recovery", data.states);
1453
- }
1454
- });
1455
1375
  }
1456
1376
  /**
1457
1377
  * Sets up a user event handler for controller events.
@@ -1555,26 +1475,6 @@
1555
1475
  return this._addLifecycleListener("$game-over", callback);
1556
1476
  }
1557
1477
  // ---------------------------------------------------------------------------
1558
- // Custom State Methods
1559
- // ---------------------------------------------------------------------------
1560
- setState(state) {
1561
- const current = this._customStates.get(this._myPlayerIndex) ?? {};
1562
- const merged = { ...current, ...state };
1563
- this._customStates.set(this._myPlayerIndex, merged);
1564
- if (this.transport) {
1565
- this.transport.emit(SMORE_EVENTS.STATE_SET, { state });
1566
- }
1567
- }
1568
- getMyState() {
1569
- return this._customStates.get(this._myPlayerIndex);
1570
- }
1571
- onCustomStateChange(listener) {
1572
- this._stateChangeListeners.add(listener);
1573
- return () => {
1574
- this._stateChangeListeners.delete(listener);
1575
- };
1576
- }
1577
- // ---------------------------------------------------------------------------
1578
1478
  // Communication Methods
1579
1479
  // ---------------------------------------------------------------------------
1580
1480
  /**
@@ -1787,8 +1687,6 @@
1787
1687
  this.handlerToTransport.clear();
1788
1688
  this._pendingHandlers = [];
1789
1689
  this._lifecycleListeners.clear();
1790
- this._customStates.clear();
1791
- this._stateChangeListeners.clear();
1792
1690
  this._isConnected = false;
1793
1691
  this._outboundBuffer = [];
1794
1692
  if (this.transport) {