@spawnco/sdk-types 0.0.10 → 0.0.12

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
@@ -4,18 +4,23 @@
4
4
  * Current modules: user, room, economy, inventory, storage
5
5
  * Future modules: friends, achievements, chat, ai, leaderboards, tournaments
6
6
  */
7
- interface SpawnClientSDK__V1 {
7
+ interface SpawnClientSDK__V1<TConfig = any> {
8
8
  ready(): Promise<void>;
9
9
  user: {
10
10
  me(): Promise<User>;
11
11
  upgradeGuest(): Promise<void>;
12
12
  };
13
13
  room: {
14
- connect(options?: {
14
+ connect(options: {
15
+ roomId: string;
15
16
  query?: Record<string, string>;
16
17
  headers?: Record<string, string>;
17
18
  }): Promise<Room>;
18
19
  };
20
+ config: {
21
+ get(): Promise<TConfig>;
22
+ version(): Promise<string>;
23
+ };
19
24
  economy: {
20
25
  balance(): Promise<{
21
26
  amount: number;
@@ -29,16 +34,16 @@ interface SpawnClientSDK__V1 {
29
34
  success: boolean;
30
35
  token?: string;
31
36
  }>;
32
- on(event: "update", handler: (balance: number) => void): void;
37
+ on(event: 'update', handler: (balance: number) => void): void;
33
38
  };
34
39
  inventory: {
35
40
  currencies: {
36
41
  get(): Promise<Record<string, number>>;
37
- on(event: "update", handler: (balances: Record<string, number>) => void): void;
42
+ on(event: 'update', handler: (balances: Record<string, number>) => void): void;
38
43
  };
39
44
  items: {
40
45
  list(): Promise<Item[]>;
41
- on(event: "update", handler: (items: Item[]) => void): void;
46
+ on(event: 'update', handler: (items: Item[]) => void): void;
42
47
  };
43
48
  };
44
49
  storage: {
@@ -48,7 +53,7 @@ interface SpawnClientSDK__V1 {
48
53
  };
49
54
  };
50
55
  }
51
- interface SpawnServerSDK__V1 {
56
+ interface SpawnServerSDK__V1<TConfig = any> {
52
57
  user: {
53
58
  token: {
54
59
  verify(token: string): Promise<{
@@ -61,6 +66,10 @@ interface SpawnServerSDK__V1 {
61
66
  }>;
62
67
  };
63
68
  };
69
+ config: {
70
+ get(): Promise<TConfig>;
71
+ version(): Promise<string>;
72
+ };
64
73
  economy: {
65
74
  redeemPurchase(token: string): Promise<{
66
75
  success: boolean;
@@ -99,7 +108,7 @@ interface TokenPayload {
99
108
  iat: number;
100
109
  exp: number;
101
110
  }
102
- type RoomVisibility = "public" | "private" | "friends";
111
+ type RoomVisibility = 'public' | 'private' | 'friends';
103
112
  interface User {
104
113
  id: string;
105
114
  username: string;
@@ -110,7 +119,7 @@ interface Room {
110
119
  id: string;
111
120
  send(type: string, data: any): void;
112
121
  on(event: string, handler: (data: any) => void): void;
113
- on(event: "disconnect", handler: () => void): void;
122
+ on(event: 'disconnect', handler: () => void): void;
114
123
  leave(): void;
115
124
  }
116
125
  interface RoomInfo {
@@ -127,7 +136,7 @@ interface Item {
127
136
  id: string;
128
137
  data?: Record<string, any>;
129
138
  }
130
- type SpawnClientSDK__V0 = Omit<SpawnClientSDK__V1, "economy" | "inventory" | "storage">;
131
- type SpawnServerSDK__V0 = Omit<SpawnServerSDK__V1, "economy" | "inventory" | "storage" | "room">;
139
+ type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage'>;
140
+ type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage' | 'room'>;
132
141
 
133
142
  export type { Item, Room, RoomInfo, RoomVisibility, SpawnClientSDK__V0, SpawnClientSDK__V1, SpawnServerSDK__V0, SpawnServerSDK__V1, TokenPayload, User };
package/dist/index.d.ts CHANGED
@@ -4,157 +4,139 @@
4
4
  * Current modules: user, room, economy, inventory, storage
5
5
  * Future modules: friends, achievements, chat, ai, leaderboards, tournaments
6
6
  */
7
- interface SpawnClientSDK__V1 {
8
- ready(): Promise<void>;
9
- user: {
10
- me(): Promise<User>;
11
- upgradeGuest(): Promise<void>;
12
- };
13
- room: {
14
- connect(options?: {
15
- roomId: string;
16
- query?: Record<string, string>;
17
- headers?: Record<string, string>;
18
- }): Promise<Room>;
19
- };
20
- economy: {
21
- balance(): Promise<{
22
- amount: number;
23
- }>;
24
- purchase(options: {
25
- sku: string;
26
- price: number;
27
- description: string;
28
- data?: Record<string, any>;
29
- }): Promise<{
30
- success: boolean;
31
- token?: string;
32
- }>;
33
- on(event: "update", handler: (balance: number) => void): void;
34
- };
35
- inventory: {
36
- currencies: {
37
- get(): Promise<Record<string, number>>;
38
- on(
39
- event: "update",
40
- handler: (balances: Record<string, number>) => void
41
- ): void;
7
+ interface SpawnClientSDK__V1<TConfig = any> {
8
+ ready(): Promise<void>;
9
+ user: {
10
+ me(): Promise<User>;
11
+ upgradeGuest(): Promise<void>;
42
12
  };
43
- items: {
44
- list(): Promise<Item[]>;
45
- on(event: "update", handler: (items: Item[]) => void): void;
13
+ room: {
14
+ connect(options: {
15
+ roomId: string;
16
+ query?: Record<string, string>;
17
+ headers?: Record<string, string>;
18
+ }): Promise<Room>;
46
19
  };
47
- };
48
- storage: {
49
- user: {
50
- get(key: string): Promise<any>;
51
- set(key: string, value: any): Promise<void>;
20
+ config: {
21
+ get(): Promise<TConfig>;
22
+ version(): Promise<string>;
23
+ };
24
+ economy: {
25
+ balance(): Promise<{
26
+ amount: number;
27
+ }>;
28
+ purchase(options: {
29
+ sku: string;
30
+ price: number;
31
+ description: string;
32
+ data?: Record<string, any>;
33
+ }): Promise<{
34
+ success: boolean;
35
+ token?: string;
36
+ }>;
37
+ on(event: 'update', handler: (balance: number) => void): void;
38
+ };
39
+ inventory: {
40
+ currencies: {
41
+ get(): Promise<Record<string, number>>;
42
+ on(event: 'update', handler: (balances: Record<string, number>) => void): void;
43
+ };
44
+ items: {
45
+ list(): Promise<Item[]>;
46
+ on(event: 'update', handler: (items: Item[]) => void): void;
47
+ };
48
+ };
49
+ storage: {
50
+ user: {
51
+ get(key: string): Promise<any>;
52
+ set(key: string, value: any): Promise<void>;
53
+ };
52
54
  };
53
- };
54
55
  }
55
- interface SpawnServerSDK__V1 {
56
- user: {
57
- token: {
58
- verify(token: string): Promise<
59
- | {
60
- valid: false;
61
- }
62
- | {
63
- valid: true;
64
- user: User;
65
- expires: Date;
66
- payload: TokenPayload;
67
- }
68
- >;
56
+ interface SpawnServerSDK__V1<TConfig = any> {
57
+ user: {
58
+ token: {
59
+ verify(token: string): Promise<{
60
+ valid: false;
61
+ } | {
62
+ valid: true;
63
+ user: User;
64
+ expires: Date;
65
+ payload: TokenPayload;
66
+ }>;
67
+ };
69
68
  };
70
- };
71
- economy: {
72
- redeemPurchase(token: string): Promise<{
73
- success: boolean;
74
- sku: string;
75
- data?: Record<string, any>;
76
- userId: string;
77
- }>;
78
- };
79
- inventory: {
80
- currencies: {
81
- credit(userId: string, currency: string, amount: number): Promise<void>;
82
- debit(userId: string, currency: string, amount: number): Promise<boolean>;
83
- exchange(
84
- userId: string,
85
- tx: {
86
- debit: Record<string, number>;
87
- credit: Record<string, number>;
88
- }
89
- ): Promise<boolean>;
69
+ config: {
70
+ get(): Promise<TConfig>;
71
+ version(): Promise<string>;
90
72
  };
91
- items: {
92
- grant(userId: string, items: Item[]): Promise<void>;
93
- consume(userId: string, itemId: string): Promise<boolean>;
73
+ economy: {
74
+ redeemPurchase(token: string): Promise<{
75
+ success: boolean;
76
+ sku: string;
77
+ data?: Record<string, any>;
78
+ userId: string;
79
+ }>;
94
80
  };
95
- };
96
- storage: {
97
- room: {
98
- get(key: string): Promise<any>;
99
- set(key: string, value: any): Promise<void>;
81
+ inventory: {
82
+ currencies: {
83
+ credit(userId: string, currency: string, amount: number): Promise<void>;
84
+ debit(userId: string, currency: string, amount: number): Promise<boolean>;
85
+ exchange(userId: string, tx: {
86
+ debit: Record<string, number>;
87
+ credit: Record<string, number>;
88
+ }): Promise<boolean>;
89
+ };
90
+ items: {
91
+ grant(userId: string, items: Item[]): Promise<void>;
92
+ consume(userId: string, itemId: string): Promise<boolean>;
93
+ };
94
+ };
95
+ storage: {
96
+ room: {
97
+ get(key: string): Promise<any>;
98
+ set(key: string, value: any): Promise<void>;
99
+ };
100
100
  };
101
- };
102
101
  }
103
102
  interface TokenPayload {
104
- sub: string;
105
- variantId: string;
106
- email?: string;
107
- username?: string;
108
- isGuest: boolean;
109
- iat: number;
110
- exp: number;
103
+ sub: string;
104
+ variantId: string;
105
+ email?: string;
106
+ username?: string;
107
+ isGuest: boolean;
108
+ iat: number;
109
+ exp: number;
111
110
  }
112
- type RoomVisibility = "public" | "private" | "friends";
111
+ type RoomVisibility = 'public' | 'private' | 'friends';
113
112
  interface User {
114
- id: string;
115
- username: string;
116
- avatarUrl?: string;
117
- isGuest: boolean;
113
+ id: string;
114
+ username: string;
115
+ avatarUrl?: string;
116
+ isGuest: boolean;
118
117
  }
119
118
  interface Room {
120
- id: string;
121
- send(type: string, data: any): void;
122
- on(event: string, handler: (data: any) => void): void;
123
- on(event: "disconnect", handler: () => void): void;
124
- leave(): void;
119
+ id: string;
120
+ send(type: string, data: any): void;
121
+ on(event: string, handler: (data: any) => void): void;
122
+ on(event: 'disconnect', handler: () => void): void;
123
+ leave(): void;
125
124
  }
126
125
  interface RoomInfo {
127
- roomId: string;
128
- gameMode?: string;
129
- visibility: RoomVisibility;
130
- playerCount: number;
131
- maxPlayers: number;
132
- isFull: boolean;
133
- lastActive: Date;
134
- activeFriends: User[];
126
+ roomId: string;
127
+ gameMode?: string;
128
+ visibility: RoomVisibility;
129
+ playerCount: number;
130
+ maxPlayers: number;
131
+ isFull: boolean;
132
+ lastActive: Date;
133
+ activeFriends: User[];
135
134
  }
136
135
  interface Item {
137
- id: string;
138
- data?: Record<string, any>;
136
+ id: string;
137
+ data?: Record<string, any>;
139
138
  }
140
- type SpawnClientSDK__V0 = Omit<
141
- SpawnClientSDK__V1,
142
- "economy" | "inventory" | "storage"
143
- >;
144
- type SpawnServerSDK__V0 = Omit<
145
- SpawnServerSDK__V1,
146
- "economy" | "inventory" | "storage" | "room"
147
- >;
139
+ type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage'>;
140
+ type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage' | 'room'>;
148
141
 
149
- export type {
150
- Item,
151
- Room,
152
- RoomInfo,
153
- RoomVisibility,
154
- SpawnClientSDK__V0,
155
- SpawnClientSDK__V1,
156
- SpawnServerSDK__V0,
157
- SpawnServerSDK__V1,
158
- TokenPayload,
159
- User,
160
- };
142
+ export type { Item, Room, RoomInfo, RoomVisibility, SpawnClientSDK__V0, SpawnClientSDK__V1, SpawnServerSDK__V0, SpawnServerSDK__V1, TokenPayload, User };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spawnco/sdk-types",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
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
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  // Client SDK - available in browser
9
- export interface SpawnClientSDK__V1 {
9
+ export interface SpawnClientSDK__V1<TConfig = any> {
10
10
  ready(): Promise<void>;
11
11
 
12
12
  user: {
@@ -19,6 +19,11 @@ export interface SpawnClientSDK__V1 {
19
19
  connect(options: { roomId: string; query?: Record<string, string>; headers?: Record<string, string> }): Promise<Room>;
20
20
  };
21
21
 
22
+ config: {
23
+ get(): Promise<TConfig>;
24
+ version(): Promise<string>;
25
+ };
26
+
22
27
  economy: {
23
28
  balance(): Promise<{ amount: number }>;
24
29
 
@@ -51,13 +56,19 @@ export interface SpawnClientSDK__V1 {
51
56
  }
52
57
 
53
58
  // Server SDK - available in Durable Objects
54
- export interface SpawnServerSDK__V1 {
59
+ export interface SpawnServerSDK__V1<TConfig = any> {
55
60
  user: {
56
61
  token: {
57
62
  verify(token: string): Promise<{ valid: false } | { valid: true; user: User; expires: Date; payload: TokenPayload }>;
58
63
  };
59
64
  };
60
65
 
66
+ config: {
67
+ get(): Promise<TConfig>;
68
+ version(): Promise<string>;
69
+ effectiveVersion(): Promise<string>;
70
+ };
71
+
61
72
  economy: {
62
73
  // Redeem a purchase token from client
63
74
  redeemPurchase(token: string): Promise<{
@@ -143,5 +154,5 @@ export interface Item {
143
154
 
144
155
  // v0 sdk types for testing
145
156
 
146
- export type SpawnClientSDK__V0 = Omit<SpawnClientSDK__V1, 'economy' | 'inventory' | 'storage'>;
147
- export type SpawnServerSDK__V0 = Omit<SpawnServerSDK__V1, 'economy' | 'inventory' | 'storage' | 'room'>;
157
+ export type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage'>;
158
+ export type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage' | 'room'>;