@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.
- package/README.md +361 -111
- package/dist/cjs/controller.cjs +0 -66
- package/dist/cjs/controller.cjs.map +1 -1
- package/dist/cjs/events.cjs +2 -8
- package/dist/cjs/events.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/screen.cjs +31 -61
- package/dist/cjs/screen.cjs.map +1 -1
- package/dist/cjs/testing.cjs +5 -61
- package/dist/cjs/testing.cjs.map +1 -1
- package/dist/cjs/transport/protocol.cjs.map +1 -1
- package/dist/cjs/types.cjs +16 -0
- package/dist/cjs/types.cjs.map +1 -1
- package/dist/esm/controller.js +0 -66
- package/dist/esm/controller.js.map +1 -1
- package/dist/esm/events.js +2 -8
- package/dist/esm/events.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/screen.js +31 -61
- package/dist/esm/screen.js.map +1 -1
- package/dist/esm/testing.js +5 -61
- package/dist/esm/testing.js.map +1 -1
- package/dist/esm/transport/protocol.js.map +1 -1
- package/dist/esm/types.js +16 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/types/controller.d.ts.map +1 -1
- package/dist/types/events.d.ts +0 -4
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/screen.d.ts.map +1 -1
- package/dist/types/testing.d.ts +5 -2
- package/dist/types/testing.d.ts.map +1 -1
- package/dist/types/transport/protocol.d.ts +0 -1
- package/dist/types/transport/protocol.d.ts.map +1 -1
- package/dist/types/types.d.ts +87 -39
- package/dist/types/types.d.ts.map +1 -1
- package/dist/umd/smore-sdk.umd.js +49 -135
- package/dist/umd/smore-sdk.umd.js.map +1 -1
- package/dist/umd/smore-sdk.umd.min.js +1 -1
- package/dist/umd/smore-sdk.umd.min.js.map +1 -1
- 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;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -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
|
-
* @
|
|
444
|
-
*
|
|
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
|
-
|
|
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;
|