@spawnco/sdk-types 0.0.20 → 0.0.22

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
@@ -52,8 +52,29 @@ interface SpawnClientSDK__V1<TConfig = any> {
52
52
  user: {
53
53
  get(key: string): Promise<any>;
54
54
  set(key: string, value: any): Promise<void>;
55
+ delete(key: string): Promise<void>;
55
56
  };
56
57
  };
58
+ analytics: {
59
+ track(event: string, data: Record<string, any>): Promise<void>;
60
+ };
61
+ leaderboard: {
62
+ submit(leaderboardId: string, score: number): Promise<{
63
+ rank: number;
64
+ improved: boolean;
65
+ }>;
66
+ top(leaderboardId: string, options?: {
67
+ period?: 'today' | 'week' | 'month' | 'all';
68
+ limit?: number;
69
+ }): Promise<LeaderboardEntry[]>;
70
+ around(leaderboardId: string, options?: {
71
+ period?: 'today' | 'week' | 'month' | 'all';
72
+ range?: number;
73
+ }): Promise<{
74
+ entries: LeaderboardEntry[];
75
+ myRank: number;
76
+ }>;
77
+ };
57
78
  }
58
79
  interface SpawnServerSDK__V1<TConfig = any> {
59
80
  user: {
@@ -99,7 +120,25 @@ interface SpawnServerSDK__V1<TConfig = any> {
99
120
  room: {
100
121
  get(key: string): Promise<any>;
101
122
  set(key: string, value: any): Promise<void>;
123
+ delete(key: string): Promise<void>;
124
+ };
125
+ global: {
126
+ get(key: string): Promise<any>;
127
+ set(key: string, value: any): Promise<void>;
128
+ delete(key: string): Promise<void>;
102
129
  };
130
+ user: (userId: string) => {
131
+ get(key: string): Promise<any>;
132
+ set(key: string, value: any): Promise<void>;
133
+ delete(key: string): Promise<void>;
134
+ };
135
+ };
136
+ leaderboard: {
137
+ submit(userId: string, leaderboardId: string, score: number): Promise<void>;
138
+ getMultiple(leaderboardIds: string[], options?: {
139
+ period?: 'today' | 'week' | 'month' | 'all';
140
+ limit?: number;
141
+ }): Promise<Record<string, LeaderboardEntry[]>>;
103
142
  };
104
143
  }
105
144
  interface TokenPayload {
@@ -139,7 +178,15 @@ interface Item {
139
178
  id: string;
140
179
  data?: Record<string, any>;
141
180
  }
142
- type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage'>;
143
- type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage' | 'room'>;
181
+ interface LeaderboardEntry {
182
+ rank: number;
183
+ username: string;
184
+ avatarUrl?: string;
185
+ score: number;
186
+ isMe?: boolean;
187
+ timestamp: number;
188
+ }
189
+ type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory'>;
190
+ type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'room'>;
144
191
 
145
- export type { Item, Room, RoomInfo, RoomVisibility, SpawnClientSDK__V0, SpawnClientSDK__V1, SpawnServerSDK__V0, SpawnServerSDK__V1, TokenPayload, User };
192
+ export type { Item, LeaderboardEntry, Room, RoomInfo, RoomVisibility, SpawnClientSDK__V0, SpawnClientSDK__V1, SpawnServerSDK__V0, SpawnServerSDK__V1, TokenPayload, User };
package/dist/index.d.ts CHANGED
@@ -52,8 +52,29 @@ interface SpawnClientSDK__V1<TConfig = any> {
52
52
  user: {
53
53
  get(key: string): Promise<any>;
54
54
  set(key: string, value: any): Promise<void>;
55
+ delete(key: string): Promise<void>;
55
56
  };
56
57
  };
58
+ analytics: {
59
+ track(event: string, data: Record<string, any>): Promise<void>;
60
+ };
61
+ leaderboard: {
62
+ submit(leaderboardId: string, score: number): Promise<{
63
+ rank: number;
64
+ improved: boolean;
65
+ }>;
66
+ top(leaderboardId: string, options?: {
67
+ period?: 'today' | 'week' | 'month' | 'all';
68
+ limit?: number;
69
+ }): Promise<LeaderboardEntry[]>;
70
+ around(leaderboardId: string, options?: {
71
+ period?: 'today' | 'week' | 'month' | 'all';
72
+ range?: number;
73
+ }): Promise<{
74
+ entries: LeaderboardEntry[];
75
+ myRank: number;
76
+ }>;
77
+ };
57
78
  }
58
79
  interface SpawnServerSDK__V1<TConfig = any> {
59
80
  user: {
@@ -99,7 +120,25 @@ interface SpawnServerSDK__V1<TConfig = any> {
99
120
  room: {
100
121
  get(key: string): Promise<any>;
101
122
  set(key: string, value: any): Promise<void>;
123
+ delete(key: string): Promise<void>;
124
+ };
125
+ global: {
126
+ get(key: string): Promise<any>;
127
+ set(key: string, value: any): Promise<void>;
128
+ delete(key: string): Promise<void>;
102
129
  };
130
+ user: (userId: string) => {
131
+ get(key: string): Promise<any>;
132
+ set(key: string, value: any): Promise<void>;
133
+ delete(key: string): Promise<void>;
134
+ };
135
+ };
136
+ leaderboard: {
137
+ submit(userId: string, leaderboardId: string, score: number): Promise<void>;
138
+ getMultiple(leaderboardIds: string[], options?: {
139
+ period?: 'today' | 'week' | 'month' | 'all';
140
+ limit?: number;
141
+ }): Promise<Record<string, LeaderboardEntry[]>>;
103
142
  };
104
143
  }
105
144
  interface TokenPayload {
@@ -139,7 +178,15 @@ interface Item {
139
178
  id: string;
140
179
  data?: Record<string, any>;
141
180
  }
142
- type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage'>;
143
- type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage' | 'room'>;
181
+ interface LeaderboardEntry {
182
+ rank: number;
183
+ username: string;
184
+ avatarUrl?: string;
185
+ score: number;
186
+ isMe?: boolean;
187
+ timestamp: number;
188
+ }
189
+ type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory'>;
190
+ type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'room'>;
144
191
 
145
- export type { Item, Room, RoomInfo, RoomVisibility, SpawnClientSDK__V0, SpawnClientSDK__V1, SpawnServerSDK__V0, SpawnServerSDK__V1, TokenPayload, User };
192
+ export type { Item, LeaderboardEntry, 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.20",
3
+ "version": "0.0.22",
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
@@ -53,8 +53,42 @@ export interface SpawnClientSDK__V1<TConfig = any> {
53
53
  user: {
54
54
  get(key: string): Promise<any>;
55
55
  set(key: string, value: any): Promise<void>;
56
+ delete(key: string): Promise<void>;
56
57
  };
57
58
  };
59
+
60
+ analytics: {
61
+ track(event: string, data: Record<string, any>): Promise<void>;
62
+ };
63
+
64
+ leaderboard: {
65
+ submit(
66
+ leaderboardId: string,
67
+ score: number
68
+ ): Promise<{
69
+ rank: number;
70
+ improved: boolean;
71
+ }>;
72
+
73
+ top(
74
+ leaderboardId: string,
75
+ options?: {
76
+ period?: 'today' | 'week' | 'month' | 'all';
77
+ limit?: number;
78
+ }
79
+ ): Promise<LeaderboardEntry[]>;
80
+
81
+ around(
82
+ leaderboardId: string,
83
+ options?: {
84
+ period?: 'today' | 'week' | 'month' | 'all';
85
+ range?: number;
86
+ }
87
+ ): Promise<{
88
+ entries: LeaderboardEntry[];
89
+ myRank: number;
90
+ }>;
91
+ };
58
92
  }
59
93
 
60
94
  // Server SDK - available in Durable Objects
@@ -105,7 +139,30 @@ export interface SpawnServerSDK__V1<TConfig = any> {
105
139
  room: {
106
140
  get(key: string): Promise<any>;
107
141
  set(key: string, value: any): Promise<void>;
142
+ delete(key: string): Promise<void>;
143
+ };
144
+ global: {
145
+ get(key: string): Promise<any>;
146
+ set(key: string, value: any): Promise<void>;
147
+ delete(key: string): Promise<void>;
108
148
  };
149
+ user: (userId: string) => {
150
+ get(key: string): Promise<any>;
151
+ set(key: string, value: any): Promise<void>;
152
+ delete(key: string): Promise<void>;
153
+ };
154
+ };
155
+
156
+ leaderboard: {
157
+ submit(userId: string, leaderboardId: string, score: number): Promise<void>;
158
+
159
+ getMultiple(
160
+ leaderboardIds: string[],
161
+ options?: {
162
+ period?: 'today' | 'week' | 'month' | 'all';
163
+ limit?: number;
164
+ }
165
+ ): Promise<Record<string, LeaderboardEntry[]>>;
109
166
  };
110
167
  }
111
168
 
@@ -154,7 +211,16 @@ export interface Item {
154
211
  data?: Record<string, any>;
155
212
  }
156
213
 
214
+ export interface LeaderboardEntry {
215
+ rank: number;
216
+ username: string;
217
+ avatarUrl?: string;
218
+ score: number;
219
+ isMe?: boolean;
220
+ timestamp: number;
221
+ }
222
+
157
223
  // v0 sdk types for testing
158
224
 
159
- export type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage'>;
160
- export type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'storage' | 'room'>;
225
+ export type SpawnClientSDK__V0<TConfig = any> = Omit<SpawnClientSDK__V1<TConfig>, 'economy' | 'inventory'>;
226
+ export type SpawnServerSDK__V0<TConfig = any> = Omit<SpawnServerSDK__V1<TConfig>, 'economy' | 'inventory' | 'room'>;