@smoregg/sdk 0.6.2 → 1.0.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 +29 -38
- package/dist/cjs/controller.cjs +299 -144
- package/dist/cjs/controller.cjs.map +1 -1
- package/dist/cjs/errors.cjs +36 -0
- package/dist/cjs/errors.cjs.map +1 -0
- package/dist/cjs/events.cjs +40 -19
- package/dist/cjs/events.cjs.map +1 -1
- package/dist/cjs/index.cjs +3 -8
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/logger.cjs +75 -0
- package/dist/cjs/logger.cjs.map +1 -0
- package/dist/cjs/screen.cjs +302 -215
- package/dist/cjs/screen.cjs.map +1 -1
- package/dist/cjs/testing.cjs +265 -22
- package/dist/cjs/testing.cjs.map +1 -1
- package/dist/cjs/transport/DirectTransport.cjs.map +1 -1
- package/dist/cjs/transport/PostMessageTransport.cjs +11 -6
- package/dist/cjs/transport/PostMessageTransport.cjs.map +1 -1
- package/dist/cjs/transport/protocol.cjs +25 -5
- package/dist/cjs/transport/protocol.cjs.map +1 -1
- package/dist/esm/controller.js +292 -136
- package/dist/esm/controller.js.map +1 -1
- package/dist/esm/errors.js +34 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/events.js +38 -18
- package/dist/esm/events.js.map +1 -1
- package/dist/esm/index.js +3 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logger.js +73 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/screen.js +290 -202
- package/dist/esm/screen.js.map +1 -1
- package/dist/esm/testing.js +265 -22
- package/dist/esm/testing.js.map +1 -1
- package/dist/esm/transport/DirectTransport.js.map +1 -1
- package/dist/esm/transport/PostMessageTransport.js +12 -7
- package/dist/esm/transport/PostMessageTransport.js.map +1 -1
- package/dist/esm/transport/protocol.js +23 -4
- package/dist/esm/transport/protocol.js.map +1 -1
- package/dist/types/controller.d.ts +1 -14
- package/dist/types/controller.d.ts.map +1 -1
- package/dist/types/errors.d.ts +45 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/events.d.ts +52 -12
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/logger.d.ts +35 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/screen.d.ts +1 -14
- package/dist/types/screen.d.ts.map +1 -1
- package/dist/types/testing.d.ts +0 -1
- package/dist/types/testing.d.ts.map +1 -1
- package/dist/types/transport/DirectTransport.d.ts +2 -1
- package/dist/types/transport/DirectTransport.d.ts.map +1 -1
- package/dist/types/transport/PostMessageTransport.d.ts +17 -2
- package/dist/types/transport/PostMessageTransport.d.ts.map +1 -1
- package/dist/types/transport/index.d.ts +2 -2
- package/dist/types/transport/index.d.ts.map +1 -1
- package/dist/types/transport/protocol.d.ts +71 -23
- package/dist/types/transport/protocol.d.ts.map +1 -1
- package/dist/types/transport/types.d.ts +24 -2
- package/dist/types/transport/types.d.ts.map +1 -1
- package/dist/types/types.d.ts +298 -215
- package/dist/types/types.d.ts.map +1 -1
- package/dist/umd/smore-sdk.umd.js +950 -349
- 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 +8 -13
package/README.md
CHANGED
|
@@ -17,14 +17,15 @@ yarn add @smoregg/sdk
|
|
|
17
17
|
### Screen Game (TV/Display)
|
|
18
18
|
|
|
19
19
|
```tsx
|
|
20
|
-
import {
|
|
20
|
+
import { createScreen } from '@smoregg/sdk';
|
|
21
21
|
|
|
22
22
|
function MyGame() {
|
|
23
|
-
const screen =
|
|
23
|
+
const screen = createScreen({
|
|
24
24
|
gameId: 'my-game',
|
|
25
25
|
listeners: {
|
|
26
26
|
tap: (playerIndex, data) => {
|
|
27
27
|
console.log(`Player ${playerIndex} tapped!`);
|
|
28
|
+
screen.broadcast('score-update', { playerIndex, score: 10 });
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
});
|
|
@@ -36,10 +37,10 @@ function MyGame() {
|
|
|
36
37
|
### Controller App (Mobile)
|
|
37
38
|
|
|
38
39
|
```tsx
|
|
39
|
-
import {
|
|
40
|
+
import { createController } from '@smoregg/sdk';
|
|
40
41
|
|
|
41
42
|
function MyController() {
|
|
42
|
-
const controller =
|
|
43
|
+
const controller = createController({
|
|
43
44
|
gameId: 'my-game',
|
|
44
45
|
listeners: {
|
|
45
46
|
'state-update': (state) => {
|
|
@@ -59,7 +60,6 @@ function MyController() {
|
|
|
59
60
|
## Features
|
|
60
61
|
|
|
61
62
|
- **Screen/Controller Communication**: Simple event-based messaging
|
|
62
|
-
- **React Hooks**: `useGameHost`, `useGamePlayer` for React apps
|
|
63
63
|
- **TypeScript Support**: Full type definitions included
|
|
64
64
|
- **Testing Utilities**: Mock Screen and Controller for unit testing
|
|
65
65
|
- **Multiple Formats**: ESM, CJS, and UMD builds
|
|
@@ -67,29 +67,38 @@ function MyController() {
|
|
|
67
67
|
|
|
68
68
|
## API Reference
|
|
69
69
|
|
|
70
|
-
###
|
|
70
|
+
### createScreen()
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
Create a screen-side game instance.
|
|
73
73
|
|
|
74
74
|
```typescript
|
|
75
|
-
|
|
75
|
+
import { createScreen } from '@smoregg/sdk';
|
|
76
|
+
|
|
77
|
+
const screen = createScreen({
|
|
76
78
|
gameId: string;
|
|
77
79
|
listeners?: Record<string, (playerIndex: number, data: any) => void>;
|
|
78
80
|
});
|
|
79
81
|
|
|
80
82
|
// Methods
|
|
81
83
|
screen.broadcast(event: string, data: any): void
|
|
82
|
-
screen.
|
|
84
|
+
screen.sendToController(playerIndex: number, event: string, data: any): void
|
|
85
|
+
screen.gameOver(results: GameResults): void
|
|
83
86
|
screen.on(event: string, callback: Function): void
|
|
84
87
|
screen.off(event: string, callback: Function): void
|
|
88
|
+
|
|
89
|
+
// Properties
|
|
90
|
+
screen.controllers: Array<{ playerIndex: number; nickname: string; connected: boolean }>
|
|
91
|
+
screen.myIndex: number
|
|
85
92
|
```
|
|
86
93
|
|
|
87
|
-
###
|
|
94
|
+
### createController()
|
|
88
95
|
|
|
89
|
-
|
|
96
|
+
Create a controller-side game instance.
|
|
90
97
|
|
|
91
98
|
```typescript
|
|
92
|
-
|
|
99
|
+
import { createController } from '@smoregg/sdk';
|
|
100
|
+
|
|
101
|
+
const controller = createController({
|
|
93
102
|
gameId: string;
|
|
94
103
|
listeners?: Record<string, (data: any) => void>;
|
|
95
104
|
});
|
|
@@ -98,40 +107,22 @@ const controller = new SmoreController({
|
|
|
98
107
|
controller.send(event: string, data: any): void
|
|
99
108
|
controller.on(event: string, callback: Function): void
|
|
100
109
|
controller.off(event: string, callback: Function): void
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### React Hooks
|
|
104
110
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// Screen
|
|
109
|
-
const { room, broadcast, sendToPlayer } = useGameHost({
|
|
110
|
-
gameId: 'my-game',
|
|
111
|
-
onInput: {
|
|
112
|
-
tap: (playerIndex, data) => { /* ... */ }
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// Controller
|
|
117
|
-
const { emit, room } = useGamePlayer({
|
|
118
|
-
gameId: 'my-game',
|
|
119
|
-
listeners: {
|
|
120
|
-
'state-update': (state) => { /* ... */ }
|
|
121
|
-
}
|
|
122
|
-
});
|
|
111
|
+
// Properties
|
|
112
|
+
controller.myIndex: number
|
|
113
|
+
controller.isLeader: boolean
|
|
123
114
|
```
|
|
124
115
|
|
|
125
116
|
## Backward Compatibility
|
|
126
117
|
|
|
127
|
-
The old
|
|
118
|
+
The old type aliases are still available:
|
|
128
119
|
|
|
129
120
|
```typescript
|
|
130
|
-
//
|
|
131
|
-
import { SmoreHost, SmorePlayer } from '@smoregg/sdk';
|
|
121
|
+
// Old names (deprecated)
|
|
122
|
+
import type { SmoreHost, SmorePlayer } from '@smoregg/sdk';
|
|
132
123
|
|
|
133
|
-
//
|
|
134
|
-
import { SmoreScreen, SmoreController } from '@smoregg/sdk';
|
|
124
|
+
// New names (preferred)
|
|
125
|
+
import type { SmoreScreen, SmoreController } from '@smoregg/sdk';
|
|
135
126
|
```
|
|
136
127
|
|
|
137
128
|
## Testing
|