@spawnco/sdk-types 0.0.26 → 0.0.28

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/dist/index.d.mts CHANGED
@@ -12,11 +12,11 @@ interface SpawnClientSDK__V1<TConfig = any> {
12
12
  upgradeGuest(): Promise<void>;
13
13
  };
14
14
  room: {
15
- connect<T extends Record<string, any>>(options: {
15
+ connect<ClientSentMessages extends Record<string, any>, ServerSentMessages extends Record<string, any>>(options: {
16
16
  roomId: string;
17
17
  query?: Record<string, string>;
18
18
  headers?: Record<string, string>;
19
- }): Promise<Room<T>>;
19
+ }): Promise<Room<ClientSentMessages, ServerSentMessages>>;
20
20
  };
21
21
  config: {
22
22
  get(): Promise<TConfig>;
@@ -27,11 +27,11 @@ interface SpawnClientSDK__V1<TConfig = any> {
27
27
  balance(): Promise<{
28
28
  amount: number;
29
29
  }>;
30
- purchase(options: {
30
+ purchase<T extends Record<string, any>>(options: {
31
31
  sku: string;
32
32
  price: number;
33
33
  description: string;
34
- data?: Record<string, any>;
34
+ data?: T;
35
35
  }): Promise<{
36
36
  success: boolean;
37
37
  token?: string;
@@ -50,8 +50,8 @@ interface SpawnClientSDK__V1<TConfig = any> {
50
50
  };
51
51
  storage: {
52
52
  user: {
53
- get(key: string): Promise<any>;
54
- set(key: string, value: any): Promise<void>;
53
+ get<T>(key: string): Promise<T>;
54
+ set<T>(key: string, value: T): Promise<void>;
55
55
  delete(key: string): Promise<void>;
56
56
  };
57
57
  };
@@ -95,10 +95,10 @@ interface SpawnServerSDK__V1<TConfig = any> {
95
95
  effectiveVersion(): Promise<string>;
96
96
  };
97
97
  economy: {
98
- redeemPurchase(token: string): Promise<{
98
+ redeemPurchase<T extends Record<string, any>>(token: string): Promise<{
99
99
  success: boolean;
100
100
  sku: string;
101
- data?: Record<string, any>;
101
+ data?: T;
102
102
  userId: string;
103
103
  }>;
104
104
  };
@@ -130,9 +130,9 @@ interface SpawnServerSDK__V1<TConfig = any> {
130
130
  get(userId: string): Promise<Record<string, number>>;
131
131
  };
132
132
  items: {
133
- grant(userId: string, items: Array<{
133
+ grant<T extends Record<string, any>>(userId: string, items: Array<{
134
134
  itemId: string;
135
- data?: any;
135
+ data?: T;
136
136
  }>, options?: {
137
137
  idempotencyKey?: string;
138
138
  reason?: string;
@@ -146,18 +146,18 @@ interface SpawnServerSDK__V1<TConfig = any> {
146
146
  };
147
147
  storage: {
148
148
  room: {
149
- get(key: string): Promise<any>;
150
- set(key: string, value: any): Promise<void>;
149
+ get<T>(key: string): Promise<T>;
150
+ set<T>(key: string, value: T): Promise<void>;
151
151
  delete(key: string): Promise<void>;
152
152
  };
153
153
  global: {
154
- get(key: string): Promise<any>;
155
- set(key: string, value: any): Promise<void>;
154
+ get<T>(key: string): Promise<T>;
155
+ set<T>(key: string, value: T): Promise<void>;
156
156
  delete(key: string): Promise<void>;
157
157
  };
158
158
  user: (userId: string) => {
159
- get(key: string): Promise<any>;
160
- set(key: string, value: any): Promise<void>;
159
+ get<T>(key: string): Promise<T>;
160
+ set<T>(key: string, value: T): Promise<void>;
161
161
  delete(key: string): Promise<void>;
162
162
  };
163
163
  };
@@ -185,10 +185,10 @@ interface User {
185
185
  avatarUrl?: string;
186
186
  isGuest: boolean;
187
187
  }
188
- interface Room<T extends Record<string, any>> {
188
+ interface Room<ClientSentMessages extends Record<string, any>, ServerSentMessages extends Record<string, any>> {
189
189
  id: string;
190
- send<K extends keyof T>(type: K, data: T[K]): void;
191
- on<K extends keyof T>(event: K, handler: (data: T[K]) => void): void;
190
+ send<K extends keyof ClientSentMessages>(type: K, data: ClientSentMessages[K]): void;
191
+ on<K extends keyof ServerSentMessages>(event: K, handler: (data: ServerSentMessages[K]) => void): void;
192
192
  on(event: 'disconnect', handler: () => void): void;
193
193
  leave(): void;
194
194
  }
@@ -206,10 +206,10 @@ interface Item {
206
206
  id: string;
207
207
  data?: Record<string, any>;
208
208
  }
209
- interface InventoryItem {
209
+ interface InventoryItem<T extends Record<string, any> = Record<string, any>> {
210
210
  id: string;
211
211
  itemId: string;
212
- data?: any;
212
+ data?: T;
213
213
  }
214
214
  interface LeaderboardEntry {
215
215
  rank: number;
package/dist/index.d.ts CHANGED
@@ -12,11 +12,11 @@ interface SpawnClientSDK__V1<TConfig = any> {
12
12
  upgradeGuest(): Promise<void>;
13
13
  };
14
14
  room: {
15
- connect<T extends Record<string, any>>(options: {
15
+ connect<ClientSentMessages extends Record<string, any>, ServerSentMessages extends Record<string, any>>(options: {
16
16
  roomId: string;
17
17
  query?: Record<string, string>;
18
18
  headers?: Record<string, string>;
19
- }): Promise<Room<T>>;
19
+ }): Promise<Room<ClientSentMessages, ServerSentMessages>>;
20
20
  };
21
21
  config: {
22
22
  get(): Promise<TConfig>;
@@ -27,11 +27,11 @@ interface SpawnClientSDK__V1<TConfig = any> {
27
27
  balance(): Promise<{
28
28
  amount: number;
29
29
  }>;
30
- purchase(options: {
30
+ purchase<T extends Record<string, any>>(options: {
31
31
  sku: string;
32
32
  price: number;
33
33
  description: string;
34
- data?: Record<string, any>;
34
+ data?: T;
35
35
  }): Promise<{
36
36
  success: boolean;
37
37
  token?: string;
@@ -50,8 +50,8 @@ interface SpawnClientSDK__V1<TConfig = any> {
50
50
  };
51
51
  storage: {
52
52
  user: {
53
- get(key: string): Promise<any>;
54
- set(key: string, value: any): Promise<void>;
53
+ get<T>(key: string): Promise<T>;
54
+ set<T>(key: string, value: T): Promise<void>;
55
55
  delete(key: string): Promise<void>;
56
56
  };
57
57
  };
@@ -95,10 +95,10 @@ interface SpawnServerSDK__V1<TConfig = any> {
95
95
  effectiveVersion(): Promise<string>;
96
96
  };
97
97
  economy: {
98
- redeemPurchase(token: string): Promise<{
98
+ redeemPurchase<T extends Record<string, any>>(token: string): Promise<{
99
99
  success: boolean;
100
100
  sku: string;
101
- data?: Record<string, any>;
101
+ data?: T;
102
102
  userId: string;
103
103
  }>;
104
104
  };
@@ -130,9 +130,9 @@ interface SpawnServerSDK__V1<TConfig = any> {
130
130
  get(userId: string): Promise<Record<string, number>>;
131
131
  };
132
132
  items: {
133
- grant(userId: string, items: Array<{
133
+ grant<T extends Record<string, any>>(userId: string, items: Array<{
134
134
  itemId: string;
135
- data?: any;
135
+ data?: T;
136
136
  }>, options?: {
137
137
  idempotencyKey?: string;
138
138
  reason?: string;
@@ -146,18 +146,18 @@ interface SpawnServerSDK__V1<TConfig = any> {
146
146
  };
147
147
  storage: {
148
148
  room: {
149
- get(key: string): Promise<any>;
150
- set(key: string, value: any): Promise<void>;
149
+ get<T>(key: string): Promise<T>;
150
+ set<T>(key: string, value: T): Promise<void>;
151
151
  delete(key: string): Promise<void>;
152
152
  };
153
153
  global: {
154
- get(key: string): Promise<any>;
155
- set(key: string, value: any): Promise<void>;
154
+ get<T>(key: string): Promise<T>;
155
+ set<T>(key: string, value: T): Promise<void>;
156
156
  delete(key: string): Promise<void>;
157
157
  };
158
158
  user: (userId: string) => {
159
- get(key: string): Promise<any>;
160
- set(key: string, value: any): Promise<void>;
159
+ get<T>(key: string): Promise<T>;
160
+ set<T>(key: string, value: T): Promise<void>;
161
161
  delete(key: string): Promise<void>;
162
162
  };
163
163
  };
@@ -185,10 +185,10 @@ interface User {
185
185
  avatarUrl?: string;
186
186
  isGuest: boolean;
187
187
  }
188
- interface Room<T extends Record<string, any>> {
188
+ interface Room<ClientSentMessages extends Record<string, any>, ServerSentMessages extends Record<string, any>> {
189
189
  id: string;
190
- send<K extends keyof T>(type: K, data: T[K]): void;
191
- on<K extends keyof T>(event: K, handler: (data: T[K]) => void): void;
190
+ send<K extends keyof ClientSentMessages>(type: K, data: ClientSentMessages[K]): void;
191
+ on<K extends keyof ServerSentMessages>(event: K, handler: (data: ServerSentMessages[K]) => void): void;
192
192
  on(event: 'disconnect', handler: () => void): void;
193
193
  leave(): void;
194
194
  }
@@ -206,10 +206,10 @@ interface Item {
206
206
  id: string;
207
207
  data?: Record<string, any>;
208
208
  }
209
- interface InventoryItem {
209
+ interface InventoryItem<T extends Record<string, any> = Record<string, any>> {
210
210
  id: string;
211
211
  itemId: string;
212
- data?: any;
212
+ data?: T;
213
213
  }
214
214
  interface LeaderboardEntry {
215
215
  rank: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spawnco/sdk-types",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "description": "TypeScript type definitions for Spawn SDK",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
package/src/v1.ts CHANGED
@@ -17,7 +17,11 @@ export interface SpawnClientSDK__V1<TConfig = any> {
17
17
 
18
18
  room: {
19
19
  // only one room per game for v1
20
- connect<T extends Record<string, any>>(options: { roomId: string; query?: Record<string, string>; headers?: Record<string, string> }): Promise<Room<T>>;
20
+ connect<ClientSentMessages extends Record<string, any>, ServerSentMessages extends Record<string, any>>(options: {
21
+ roomId: string;
22
+ query?: Record<string, string>;
23
+ headers?: Record<string, string>;
24
+ }): Promise<Room<ClientSentMessages, ServerSentMessages>>;
21
25
  };
22
26
 
23
27
  config: {
@@ -29,7 +33,12 @@ export interface SpawnClientSDK__V1<TConfig = any> {
29
33
  economy: {
30
34
  balance(): Promise<{ amount: number }>;
31
35
 
32
- purchase(options: { sku: string; price: number; description: string; data?: Record<string, any> }): Promise<{
36
+ purchase<T extends Record<string, any>>(options: {
37
+ sku: string;
38
+ price: number;
39
+ description: string;
40
+ data?: T;
41
+ }): Promise<{
33
42
  success: boolean;
34
43
  token?: string; // Contains signed purchase details
35
44
  }>;
@@ -51,8 +60,8 @@ export interface SpawnClientSDK__V1<TConfig = any> {
51
60
 
52
61
  storage: {
53
62
  user: {
54
- get(key: string): Promise<any>;
55
- set(key: string, value: any): Promise<void>;
63
+ get<T>(key: string): Promise<T>;
64
+ set<T>(key: string, value: T): Promise<void>;
56
65
  delete(key: string): Promise<void>;
57
66
  };
58
67
  };
@@ -107,10 +116,12 @@ export interface SpawnServerSDK__V1<TConfig = any> {
107
116
 
108
117
  economy: {
109
118
  // Redeem a purchase token from client
110
- redeemPurchase(token: string): Promise<{
119
+ redeemPurchase<T extends Record<string, any>>(
120
+ token: string
121
+ ): Promise<{
111
122
  success: boolean;
112
123
  sku: string;
113
- data?: Record<string, any>;
124
+ data?: T;
114
125
  userId: string;
115
126
  }>;
116
127
  };
@@ -158,11 +169,11 @@ export interface SpawnServerSDK__V1<TConfig = any> {
158
169
 
159
170
  items: {
160
171
  // Grant items to user (returns instance IDs)
161
- grant(
172
+ grant<T extends Record<string, any>>(
162
173
  userId: string,
163
174
  items: Array<{
164
175
  itemId: string;
165
- data?: any;
176
+ data?: T;
166
177
  }>,
167
178
  options?: {
168
179
  idempotencyKey?: string;
@@ -187,18 +198,18 @@ export interface SpawnServerSDK__V1<TConfig = any> {
187
198
 
188
199
  storage: {
189
200
  room: {
190
- get(key: string): Promise<any>;
191
- set(key: string, value: any): Promise<void>;
201
+ get<T>(key: string): Promise<T>;
202
+ set<T>(key: string, value: T): Promise<void>;
192
203
  delete(key: string): Promise<void>;
193
204
  };
194
205
  global: {
195
- get(key: string): Promise<any>;
196
- set(key: string, value: any): Promise<void>;
206
+ get<T>(key: string): Promise<T>;
207
+ set<T>(key: string, value: T): Promise<void>;
197
208
  delete(key: string): Promise<void>;
198
209
  };
199
210
  user: (userId: string) => {
200
- get(key: string): Promise<any>;
201
- set(key: string, value: any): Promise<void>;
211
+ get<T>(key: string): Promise<T>;
212
+ set<T>(key: string, value: T): Promise<void>;
202
213
  delete(key: string): Promise<void>;
203
214
  };
204
215
  };
@@ -237,10 +248,10 @@ export interface User {
237
248
  isGuest: boolean;
238
249
  }
239
250
 
240
- export interface Room<T extends Record<string, any>> {
251
+ export interface Room<ClientSentMessages extends Record<string, any>, ServerSentMessages extends Record<string, any>> {
241
252
  id: string;
242
- send<K extends keyof T>(type: K, data: T[K]): void;
243
- on<K extends keyof T>(event: K, handler: (data: T[K]) => void): void;
253
+ send<K extends keyof ClientSentMessages>(type: K, data: ClientSentMessages[K]): void;
254
+ on<K extends keyof ServerSentMessages>(event: K, handler: (data: ServerSentMessages[K]) => void): void;
244
255
  on(event: 'disconnect', handler: () => void): void;
245
256
  leave(): void;
246
257
  }
@@ -261,10 +272,10 @@ export interface Item {
261
272
  data?: Record<string, any>;
262
273
  }
263
274
 
264
- export interface InventoryItem {
275
+ export interface InventoryItem<T extends Record<string, any> = Record<string, any>> {
265
276
  id: string; // Instance ID
266
277
  itemId: string; // Item type
267
- data?: any; // Item-specific data
278
+ data?: T; // Item-specific data
268
279
  }
269
280
 
270
281
  export interface LeaderboardEntry {