@smoregg/sdk 2.2.0 → 2.4.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.
Files changed (43) hide show
  1. package/README.md +361 -111
  2. package/dist/cjs/controller.cjs +0 -66
  3. package/dist/cjs/controller.cjs.map +1 -1
  4. package/dist/cjs/events.cjs +2 -8
  5. package/dist/cjs/events.cjs.map +1 -1
  6. package/dist/cjs/index.cjs +1 -0
  7. package/dist/cjs/index.cjs.map +1 -1
  8. package/dist/cjs/screen.cjs +31 -61
  9. package/dist/cjs/screen.cjs.map +1 -1
  10. package/dist/cjs/testing.cjs +5 -61
  11. package/dist/cjs/testing.cjs.map +1 -1
  12. package/dist/cjs/transport/protocol.cjs.map +1 -1
  13. package/dist/cjs/types.cjs +16 -0
  14. package/dist/cjs/types.cjs.map +1 -1
  15. package/dist/esm/controller.js +0 -66
  16. package/dist/esm/controller.js.map +1 -1
  17. package/dist/esm/events.js +2 -8
  18. package/dist/esm/events.js.map +1 -1
  19. package/dist/esm/index.js +1 -1
  20. package/dist/esm/screen.js +31 -61
  21. package/dist/esm/screen.js.map +1 -1
  22. package/dist/esm/testing.js +5 -61
  23. package/dist/esm/testing.js.map +1 -1
  24. package/dist/esm/transport/protocol.js.map +1 -1
  25. package/dist/esm/types.js +16 -1
  26. package/dist/esm/types.js.map +1 -1
  27. package/dist/types/controller.d.ts.map +1 -1
  28. package/dist/types/events.d.ts +0 -4
  29. package/dist/types/events.d.ts.map +1 -1
  30. package/dist/types/index.d.ts +2 -1
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/types/screen.d.ts.map +1 -1
  33. package/dist/types/testing.d.ts +5 -2
  34. package/dist/types/testing.d.ts.map +1 -1
  35. package/dist/types/transport/protocol.d.ts +0 -1
  36. package/dist/types/transport/protocol.d.ts.map +1 -1
  37. package/dist/types/types.d.ts +87 -39
  38. package/dist/types/types.d.ts.map +1 -1
  39. package/dist/umd/smore-sdk.umd.js +49 -135
  40. package/dist/umd/smore-sdk.umd.js.map +1 -1
  41. package/dist/umd/smore-sdk.umd.min.js +1 -1
  42. package/dist/umd/smore-sdk.umd.min.js.map +1 -1
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,WAAW,EAIX,MAAM,EACN,UAAU,EACV,QAAQ,EACT,MAAM,SAAS,CAAC;AAQjB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,mCAAmC;IACnC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,CAC7D,SAAQ,MAAM,CAAC,OAAO,CAAC;IACvB,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAC1B,IAAI,CAAC;IACR,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACnD,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACxD,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7D,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5D,aAAa,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzD,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACvF,mBAAmB,IAAI,IAAI,CAAC;IAC5B,YAAY,IAAI,IAAI,CAAC;IACrB,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC;IAChG,gBAAgB,IAAI,IAAI,CAAC;IACzB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnD,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,CACjE,SAAQ,UAAU,CAAC,OAAO,CAAC;IAC3B,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,EACzC,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAC1B,IAAI,CAAC;IACR,aAAa,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzD,mBAAmB,IAAI,IAAI,CAAC;IAC5B,YAAY,IAAI,IAAI,CAAC;IACrB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACzE,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACpD,wBAAwB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACzD,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9E,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC;IAChG,gBAAgB,IAAI,IAAI,CAAC;IACzB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9C,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnD,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CAC5E;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,EAClE,OAAO,GAAE,WAAgB,GACxB,UAAU,CAAC,OAAO,CAAC,CAuZrB;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,EACtE,OAAO,GAAE,WAAgB,GACxB,cAAc,CAAC,OAAO,CAAC,CA2XzB"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,6 @@ export interface BridgeInitMessage {
40
40
  }>;
41
41
  myIndex?: number;
42
42
  protocolVersion?: number;
43
- gameInProgress?: boolean;
44
43
  };
45
44
  }
46
45
  export interface BridgeEmitMessage {
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/transport/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAG,UAAmB,CAAC;AAErD,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QAEP,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,OAAO,CAAC;YACnB,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,OAAO,CAAC;YACnB,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;SACvC,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,MAAM,aAAa,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAQpE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CA4B7F"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/transport/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;GAIG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,eAAO,MAAM,iBAAiB,EAAG,UAAmB,CAAC;AAErD,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QAEP,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,KAAK,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,OAAO,CAAC;YACnB,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;SACvC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,OAAO,CAAC;YACnB,SAAS,EAAE,mBAAmB,GAAG,IAAI,CAAC;SACvC,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,MAAM,aAAa,GACrB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAQpE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CA4B7F"}
@@ -6,6 +6,50 @@
6
6
  *
7
7
  * @packageDocumentation
8
8
  */
9
+ /**
10
+ * Valid game categories for the S'MORE platform.
11
+ * Use these when setting categories in game.json.
12
+ */
13
+ export type GameCategory = 'bet' | 'coop' | 'versus' | 'time-attack' | 'survival' | 'reflex' | 'deception' | 'creative' | 'party' | 'puzzle' | 'board' | 'strategy' | 'timing';
14
+ /**
15
+ * Category metadata with emoji and localized labels.
16
+ * Useful for displaying categories in UI.
17
+ */
18
+ export declare const GAME_CATEGORIES: Record<GameCategory, {
19
+ emoji: string;
20
+ label: string;
21
+ labelKo: string;
22
+ }>;
23
+ /**
24
+ * Game configuration from game.json.
25
+ * This is the schema that game developers put in their game.json file.
26
+ *
27
+ * @example
28
+ * ```json
29
+ * {
30
+ * "id": "my-game",
31
+ * "title": "My Game",
32
+ * "description": "A fun party game",
33
+ * "players": [3, 4, 5, 6],
34
+ * "categories": ["party", "creative"],
35
+ * "version": "1.0.0"
36
+ * }
37
+ * ```
38
+ */
39
+ export interface GameConfig {
40
+ /** Unique game identifier (kebab-case) */
41
+ id: string;
42
+ /** Display name of the game */
43
+ title: string;
44
+ /** Short description (1-2 sentences) */
45
+ description: string;
46
+ /** Allowed player counts (e.g. [3,4,5,6,7,8] or [2,4,6]) */
47
+ players: number[];
48
+ /** Game categories from the fixed platform list */
49
+ categories: GameCategory[];
50
+ /** Semantic version (e.g. "1.0.0") */
51
+ version: string;
52
+ }
9
53
  /**
10
54
  * Unique identifier for a player (0-indexed integer).
11
55
  * Used consistently across all SDK methods.
@@ -222,7 +266,6 @@ export type ScreenLifecycleEvent = keyof ScreenLifecycleHandlers;
222
266
  */
223
267
  export interface ControllerLifecycleHandlers extends ScreenLifecycleHandlers {
224
268
  '$game-over': (results?: GameResults) => void;
225
- '$state-recovery': (states: Record<number, Record<string, any>>) => void;
226
269
  }
227
270
  /** Controller lifecycle event name union. */
228
271
  export type ControllerLifecycleEvent = keyof ControllerLifecycleHandlers;
@@ -367,6 +410,16 @@ export interface Screen<TEvents extends EventMap = EventMap> {
367
410
  /**
368
411
  * Register a callback for when a controller reconnects after a disconnect.
369
412
  *
413
+ * In the stateless controller pattern, use this callback to re-push
414
+ * the current view state to the reconnecting controller.
415
+ *
416
+ * @example
417
+ * ```ts
418
+ * screen.onControllerReconnect((playerIndex) => {
419
+ * screen.sendToController(playerIndex, 'view-update', getCurrentView(playerIndex));
420
+ * });
421
+ * ```
422
+ *
370
423
  * @param callback - Called with player index and updated controller info
371
424
  * @returns Unsubscribe function to remove the callback
372
425
  */
@@ -397,10 +450,16 @@ export interface Screen<TEvents extends EventMap = EventMap> {
397
450
  /**
398
451
  * Broadcast an event to all connected controllers.
399
452
  *
453
+ * Use this to push the same view state to all controllers simultaneously.
454
+ *
400
455
  * @param event - Event name (must match TEvents keys)
401
456
  * @param data - Event data (type-safe based on event name)
402
457
  * @note Data should be an object. Primitive values will be wrapped as `{ data: value }` by the relay server.
403
458
  * @note Maximum payload size is 64KB. Payloads exceeding this limit will be silently dropped by the server.
459
+ * **Rate limit:** The server allows up to 60 events/sec per Screen socket
460
+ * (shared across broadcast and sendToController calls).
461
+ * Events exceeding this limit are silently dropped.
462
+ * Messages from a single sender are delivered in order.
404
463
  *
405
464
  * @example
406
465
  * ```ts
@@ -413,37 +472,32 @@ export interface Screen<TEvents extends EventMap = EventMap> {
413
472
  *
414
473
  * Screen -> Controller direction only. For Controller -> Screen, see `send()`.
415
474
  *
475
+ * This is the primary method for the stateless controller pattern:
476
+ * push complete view state to a specific controller.
477
+ *
416
478
  * @param playerIndex - Target controller's player index
417
479
  * @param event - Event name (must match TEvents keys)
418
480
  * @param data - Event data (type-safe based on event name)
419
481
  * @note Data should be an object. Primitive values will be wrapped as `{ data: value }` by the relay server.
420
482
  * @note Maximum payload size is 64KB. Payloads exceeding this limit will be silently dropped by the server.
483
+ * **Rate limit:** Shares the 60 events/sec limit with broadcast().
421
484
  *
422
485
  * @example
423
486
  * ```ts
424
487
  * screen.sendToController(0, 'your-turn', { timeLimit: 30 });
425
488
  * ```
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
489
  *
443
- * @param listener - Called with the player index and the new state
444
- * @returns Unsubscribe function
490
+ * @example
491
+ * ```ts
492
+ * // Push current game view to a specific player
493
+ * screen.sendToController(playerIndex, 'view-update', {
494
+ * phase: 'voting',
495
+ * candidates: [1, 3, 5],
496
+ * timeRemaining: 30,
497
+ * });
498
+ * ```
445
499
  */
446
- onCustomStateChange(listener: (playerIndex: number, state: Record<string, any>) => void): () => void;
500
+ sendToController<K extends EventNames<TEvents>>(playerIndex: PlayerIndex, event: K, data: EventData<TEvents, K>): void;
447
501
  /**
448
502
  * Signal that the game is over and send results.
449
503
  * This will broadcast a game-over event to all controllers.
@@ -622,6 +676,17 @@ export interface ControllerConfig {
622
676
  * All coordination between controllers must go through the Screen.
623
677
  *
624
678
  * Flow: Controller.send() -> Screen receives -> Screen.broadcast() or Screen.sendToController()
679
+ *
680
+ * ## Stateless Controller Pattern (Recommended)
681
+ *
682
+ * Controllers should be stateless display + input devices:
683
+ * - Render only what Screen sends via `on()` event handlers
684
+ * - Send only user input to Screen via `send()`
685
+ * - Do NOT store game state on the controller
686
+ * - Screen is the single source of truth for all game state
687
+ *
688
+ * When a controller reconnects, Screen re-pushes current view state
689
+ * via `sendToController()` in the `onControllerReconnect` callback.
625
690
  */
626
691
  export interface Controller<TEvents extends EventMap = EventMap> {
627
692
  /** My player index (0, 1, 2, ...). */
@@ -736,25 +801,6 @@ export interface Controller<TEvents extends EventMap = EventMap> {
736
801
  * Returns undefined if not found.
737
802
  */
738
803
  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
804
  /**
759
805
  * Send an event to the screen.
760
806
  *
@@ -763,6 +809,8 @@ export interface Controller<TEvents extends EventMap = EventMap> {
763
809
  * @param event - Event name (must match TEvents keys)
764
810
  * @param data - Event data (type-safe based on event name)
765
811
  * @note Maximum payload size is 64KB. Payloads exceeding this limit will be silently dropped by the server.
812
+ * **Rate limit:** The server allows up to 60 events/sec per Controller socket.
813
+ * Messages are delivered to Screen in the order they are sent.
766
814
  *
767
815
  * @example
768
816
  * ```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) {
@@ -1839,6 +1737,21 @@
1839
1737
  return new ControllerImpl(config ?? {});
1840
1738
  }
1841
1739
 
1740
+ const GAME_CATEGORIES = {
1741
+ "bet": { emoji: "\u{1F3B0}", label: "Betting", labelKo: "\uB0B4\uAE30" },
1742
+ "coop": { emoji: "\u{1F91D}", label: "Co-op", labelKo: "\uD611\uB3D9" },
1743
+ "versus": { emoji: "\u2694\uFE0F", label: "Versus", labelKo: "\uB300\uACB0" },
1744
+ "time-attack": { emoji: "\u23F1\uFE0F", label: "Time Attack", labelKo: "\uD0C0\uC784\uC5B4\uD0DD" },
1745
+ "survival": { emoji: "\u{1F3C3}", label: "Survival", labelKo: "\uC0DD\uC874" },
1746
+ "reflex": { emoji: "\u{1F3AF}", label: "Reflex", labelKo: "\uBC18\uC751\uC18D\uB3C4" },
1747
+ "deception": { emoji: "\u{1F575}\uFE0F", label: "Deception", labelKo: "\uCD94\uB9AC/\uC18D\uC784\uC218" },
1748
+ "creative": { emoji: "\u{1F3A8}", label: "Creative", labelKo: "\uCC3D\uC791" },
1749
+ "party": { emoji: "\u{1F389}", label: "Party", labelKo: "\uD30C\uD2F0" },
1750
+ "puzzle": { emoji: "\u{1F9E9}", label: "Puzzle", labelKo: "\uD37C\uC990" },
1751
+ "board": { emoji: "\u{1F3B2}", label: "Board Game", labelKo: "\uBCF4\uB4DC\uAC8C\uC784" },
1752
+ "strategy": { emoji: "\u{1F9E0}", label: "Strategy", labelKo: "\uC804\uB7B5" },
1753
+ "timing": { emoji: "\u{1F3B5}", label: "Timing", labelKo: "\uD0C0\uC774\uBC0D" }
1754
+ };
1842
1755
  const LifecycleEvent = {
1843
1756
  ALL_READY: "$all-ready",
1844
1757
  CONTROLLER_JOIN: "$controller-join",
@@ -1851,6 +1764,7 @@
1851
1764
  CONNECTION_CHANGE: "$connection-change"
1852
1765
  };
1853
1766
 
1767
+ exports.GAME_CATEGORIES = GAME_CATEGORIES;
1854
1768
  exports.LifecycleEvent = LifecycleEvent;
1855
1769
  exports.SmoreSDKError = SmoreSDKError;
1856
1770
  exports.createController = createController;