@smoregg/sdk 0.5.0 → 0.6.1

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 (40) hide show
  1. package/README.md +199 -0
  2. package/dist/cjs/controller.cjs +379 -0
  3. package/dist/cjs/controller.cjs.map +1 -0
  4. package/dist/cjs/index.cjs +8 -4
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/screen.cjs +526 -0
  7. package/dist/cjs/screen.cjs.map +1 -0
  8. package/dist/cjs/testing.cjs +257 -0
  9. package/dist/cjs/testing.cjs.map +1 -0
  10. package/dist/cjs/transport/protocol.cjs.map +1 -1
  11. package/dist/esm/controller.js +376 -0
  12. package/dist/esm/controller.js.map +1 -0
  13. package/dist/esm/index.js +3 -2
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/screen.js +523 -0
  16. package/dist/esm/screen.js.map +1 -0
  17. package/dist/esm/testing.js +254 -0
  18. package/dist/esm/testing.js.map +1 -0
  19. package/dist/esm/transport/protocol.js.map +1 -1
  20. package/dist/types/controller.d.ts +78 -0
  21. package/dist/types/controller.d.ts.map +1 -0
  22. package/dist/types/index.d.ts +17 -18
  23. package/dist/types/index.d.ts.map +1 -1
  24. package/dist/types/screen.d.ts +79 -0
  25. package/dist/types/screen.d.ts.map +1 -0
  26. package/dist/types/testing.d.ts +61 -0
  27. package/dist/types/testing.d.ts.map +1 -0
  28. package/dist/types/transport/protocol.d.ts +1 -4
  29. package/dist/types/transport/protocol.d.ts.map +1 -1
  30. package/dist/types/types.d.ts +869 -4
  31. package/dist/types/types.d.ts.map +1 -1
  32. package/dist/umd/smore-sdk-vanilla.umd.js +956 -331
  33. package/dist/umd/smore-sdk-vanilla.umd.js.map +1 -1
  34. package/dist/umd/smore-sdk-vanilla.umd.min.js +1 -1
  35. package/dist/umd/smore-sdk-vanilla.umd.min.js.map +1 -1
  36. package/dist/umd/smore-sdk.umd.js +956 -331
  37. package/dist/umd/smore-sdk.umd.js.map +1 -1
  38. package/dist/umd/smore-sdk.umd.min.js +1 -1
  39. package/dist/umd/smore-sdk.umd.min.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @smoregg/sdk - Testing Utilities
3
+ *
4
+ * Mock implementations of Screen and Controller for unit testing.
5
+ * All methods work synchronously for predictable test execution.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import type { EventMap, MockScreen, MockController, MockOptions } from './types';
10
+ /**
11
+ * Create a mock Screen for testing game logic.
12
+ *
13
+ * All methods work synchronously. Events can be simulated and recorded
14
+ * for assertions in unit tests.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const screen = createMockScreen<MyEvents>({
19
+ * controllers: [
20
+ * { playerIndex: 0, nickname: 'Player 1', connected: true },
21
+ * { playerIndex: 1, nickname: 'Player 2', connected: true },
22
+ * ],
23
+ * });
24
+ *
25
+ * // Simulate player input
26
+ * screen.simulateEvent(0, 'tap', { x: 100, y: 200 });
27
+ *
28
+ * // Check what was broadcast
29
+ * expect(screen.getBroadcasts()).toContainEqual({
30
+ * event: 'score-update',
31
+ * data: { scores: { 0: 10 } },
32
+ * });
33
+ * ```
34
+ */
35
+ export declare function createMockScreen<TEvents extends EventMap = EventMap>(options?: MockOptions): MockScreen<TEvents>;
36
+ /**
37
+ * Create a mock Controller for testing player input logic.
38
+ *
39
+ * All methods work synchronously. Events can be simulated and recorded
40
+ * for assertions in unit tests.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const controller = createMockController<MyEvents>({
45
+ * myIndex: 0,
46
+ * isLeader: true,
47
+ * });
48
+ *
49
+ * // Simulate receiving from screen
50
+ * controller.simulateEvent('your-turn', { timeLimit: 30 });
51
+ *
52
+ * // Check what was sent
53
+ * expect(controller.getSentEvents()).toContainEqual({
54
+ * event: 'answer',
55
+ * data: { choice: 2 },
56
+ * });
57
+ * ```
58
+ */
59
+ export declare function createMockController<TEvents extends EventMap = EventMap>(options?: MockOptions): MockController<TEvents>;
60
+ export type { MockScreen, MockController, MockOptions };
61
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,QAAQ,EAQR,UAAU,EACV,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAiBjB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,EAClE,OAAO,GAAE,WAAgB,GACxB,UAAU,CAAC,OAAO,CAAC,CA+NrB;AAWD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,QAAQ,GAAG,QAAQ,EACtE,OAAO,GAAE,WAAgB,GACxB,cAAc,CAAC,OAAO,CAAC,CAiJzB;AAMD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC"}
@@ -45,9 +45,6 @@ export interface SmoreUpdateMessage {
45
45
  leaderId?: string | null;
46
46
  };
47
47
  }
48
- export interface SmoreLoadedMessage {
49
- type: 'smore:loaded';
50
- }
51
- export type SmoreMessage = SmoreReadyMessage | SmoreInitMessage | SmoreEmitMessage | SmoreEventMessage | SmoreAckMessage | SmoreUpdateMessage | SmoreLoadedMessage;
48
+ export type SmoreMessage = SmoreReadyMessage | SmoreInitMessage | SmoreEmitMessage | SmoreEventMessage | SmoreAckMessage | SmoreUpdateMessage;
52
49
  export declare function isSmoreMessage(data: any): data is SmoreMessage;
53
50
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/transport/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,GAAG,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,YAAY,CAE9D"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/transport/protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,GAAG,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC;CACH;AAKD,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,CAAC;AAEvB,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,YAAY,CAE9D"}