@playcademy/sdk 0.0.5 → 0.0.7
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.ts +4013 -7
- package/dist/index.js +1820 -1785
- package/dist/server.d.ts +53 -0
- package/dist/server.js +50 -0
- package/dist/types.d.ts +4243 -41
- package/dist/types.js +1 -748
- package/package.json +10 -3
- package/dist/core/auth/flows/popup.d.ts +0 -14
- package/dist/core/auth/flows/redirect.d.ts +0 -15
- package/dist/core/auth/flows/unified.d.ts +0 -11
- package/dist/core/auth/login.d.ts +0 -20
- package/dist/core/auth/oauth.d.ts +0 -115
- package/dist/core/auth/utils.d.ts +0 -23
- package/dist/core/cache/cooldown-cache.d.ts +0 -31
- package/dist/core/cache/index.d.ts +0 -14
- package/dist/core/cache/permanent-cache.d.ts +0 -39
- package/dist/core/cache/singleton-cache.d.ts +0 -29
- package/dist/core/cache/ttl-cache.d.ts +0 -54
- package/dist/core/cache/types.d.ts +0 -23
- package/dist/core/client.d.ts +0 -521
- package/dist/core/errors.d.ts +0 -11
- package/dist/core/namespaces/achievements.d.ts +0 -84
- package/dist/core/namespaces/admin.d.ts +0 -385
- package/dist/core/namespaces/auth.d.ts +0 -54
- package/dist/core/namespaces/character.d.ts +0 -205
- package/dist/core/namespaces/credits.d.ts +0 -51
- package/dist/core/namespaces/dev.d.ts +0 -323
- package/dist/core/namespaces/games.d.ts +0 -173
- package/dist/core/namespaces/identity.d.ts +0 -98
- package/dist/core/namespaces/index.d.ts +0 -19
- package/dist/core/namespaces/leaderboard.d.ts +0 -48
- package/dist/core/namespaces/levels.d.ts +0 -90
- package/dist/core/namespaces/maps.d.ts +0 -93
- package/dist/core/namespaces/realtime.client.d.ts +0 -129
- package/dist/core/namespaces/realtime.d.ts +0 -90
- package/dist/core/namespaces/runtime.d.ts +0 -222
- package/dist/core/namespaces/scores.d.ts +0 -55
- package/dist/core/namespaces/shop.d.ts +0 -25
- package/dist/core/namespaces/sprites.d.ts +0 -35
- package/dist/core/namespaces/telemetry.d.ts +0 -28
- package/dist/core/namespaces/timeback.d.ts +0 -111
- package/dist/core/namespaces/users.d.ts +0 -172
- package/dist/core/request.d.ts +0 -24
- package/dist/core/static/identity.d.ts +0 -37
- package/dist/core/static/index.d.ts +0 -3
- package/dist/core/static/init.d.ts +0 -21
- package/dist/core/static/login.d.ts +0 -34
- package/dist/messaging.d.ts +0 -544
package/dist/types.d.ts
CHANGED
|
@@ -1,25 +1,4218 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
|
|
2
|
+
import * as drizzle_zod from 'drizzle-zod';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import * as _playcademy_realtime_server_types from '@playcademy/realtime/server/types';
|
|
5
|
+
|
|
6
|
+
declare const userRoleEnum: drizzle_orm_pg_core.PgEnum<["admin", "player", "developer"]>;
|
|
7
|
+
declare const users: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
8
|
+
name: "user";
|
|
9
|
+
schema: undefined;
|
|
10
|
+
columns: {
|
|
11
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
12
|
+
name: "id";
|
|
13
|
+
tableName: "user";
|
|
14
|
+
dataType: "string";
|
|
15
|
+
columnType: "PgText";
|
|
16
|
+
data: string;
|
|
17
|
+
driverParam: string;
|
|
18
|
+
notNull: true;
|
|
19
|
+
hasDefault: true;
|
|
20
|
+
isPrimaryKey: true;
|
|
21
|
+
isAutoincrement: false;
|
|
22
|
+
hasRuntimeDefault: true;
|
|
23
|
+
enumValues: [string, ...string[]];
|
|
24
|
+
baseColumn: never;
|
|
25
|
+
identity: undefined;
|
|
26
|
+
generated: undefined;
|
|
27
|
+
}, {}, {}>;
|
|
28
|
+
name: drizzle_orm_pg_core.PgColumn<{
|
|
29
|
+
name: "name";
|
|
30
|
+
tableName: "user";
|
|
31
|
+
dataType: "string";
|
|
32
|
+
columnType: "PgText";
|
|
33
|
+
data: string;
|
|
34
|
+
driverParam: string;
|
|
35
|
+
notNull: true;
|
|
36
|
+
hasDefault: false;
|
|
37
|
+
isPrimaryKey: false;
|
|
38
|
+
isAutoincrement: false;
|
|
39
|
+
hasRuntimeDefault: false;
|
|
40
|
+
enumValues: [string, ...string[]];
|
|
41
|
+
baseColumn: never;
|
|
42
|
+
identity: undefined;
|
|
43
|
+
generated: undefined;
|
|
44
|
+
}, {}, {}>;
|
|
45
|
+
username: drizzle_orm_pg_core.PgColumn<{
|
|
46
|
+
name: "username";
|
|
47
|
+
tableName: "user";
|
|
48
|
+
dataType: "string";
|
|
49
|
+
columnType: "PgText";
|
|
50
|
+
data: string;
|
|
51
|
+
driverParam: string;
|
|
52
|
+
notNull: false;
|
|
53
|
+
hasDefault: false;
|
|
54
|
+
isPrimaryKey: false;
|
|
55
|
+
isAutoincrement: false;
|
|
56
|
+
hasRuntimeDefault: false;
|
|
57
|
+
enumValues: [string, ...string[]];
|
|
58
|
+
baseColumn: never;
|
|
59
|
+
identity: undefined;
|
|
60
|
+
generated: undefined;
|
|
61
|
+
}, {}, {}>;
|
|
62
|
+
email: drizzle_orm_pg_core.PgColumn<{
|
|
63
|
+
name: "email";
|
|
64
|
+
tableName: "user";
|
|
65
|
+
dataType: "string";
|
|
66
|
+
columnType: "PgText";
|
|
67
|
+
data: string;
|
|
68
|
+
driverParam: string;
|
|
69
|
+
notNull: true;
|
|
70
|
+
hasDefault: false;
|
|
71
|
+
isPrimaryKey: false;
|
|
72
|
+
isAutoincrement: false;
|
|
73
|
+
hasRuntimeDefault: false;
|
|
74
|
+
enumValues: [string, ...string[]];
|
|
75
|
+
baseColumn: never;
|
|
76
|
+
identity: undefined;
|
|
77
|
+
generated: undefined;
|
|
78
|
+
}, {}, {}>;
|
|
79
|
+
timebackId: drizzle_orm_pg_core.PgColumn<{
|
|
80
|
+
name: "timeback_id";
|
|
81
|
+
tableName: "user";
|
|
82
|
+
dataType: "string";
|
|
83
|
+
columnType: "PgText";
|
|
84
|
+
data: string;
|
|
85
|
+
driverParam: string;
|
|
86
|
+
notNull: false;
|
|
87
|
+
hasDefault: false;
|
|
88
|
+
isPrimaryKey: false;
|
|
89
|
+
isAutoincrement: false;
|
|
90
|
+
hasRuntimeDefault: false;
|
|
91
|
+
enumValues: [string, ...string[]];
|
|
92
|
+
baseColumn: never;
|
|
93
|
+
identity: undefined;
|
|
94
|
+
generated: undefined;
|
|
95
|
+
}, {}, {}>;
|
|
96
|
+
emailVerified: drizzle_orm_pg_core.PgColumn<{
|
|
97
|
+
name: "email_verified";
|
|
98
|
+
tableName: "user";
|
|
99
|
+
dataType: "boolean";
|
|
100
|
+
columnType: "PgBoolean";
|
|
101
|
+
data: boolean;
|
|
102
|
+
driverParam: boolean;
|
|
103
|
+
notNull: true;
|
|
104
|
+
hasDefault: true;
|
|
105
|
+
isPrimaryKey: false;
|
|
106
|
+
isAutoincrement: false;
|
|
107
|
+
hasRuntimeDefault: false;
|
|
108
|
+
enumValues: undefined;
|
|
109
|
+
baseColumn: never;
|
|
110
|
+
identity: undefined;
|
|
111
|
+
generated: undefined;
|
|
112
|
+
}, {}, {}>;
|
|
113
|
+
image: drizzle_orm_pg_core.PgColumn<{
|
|
114
|
+
name: "image";
|
|
115
|
+
tableName: "user";
|
|
116
|
+
dataType: "string";
|
|
117
|
+
columnType: "PgText";
|
|
118
|
+
data: string;
|
|
119
|
+
driverParam: string;
|
|
120
|
+
notNull: false;
|
|
121
|
+
hasDefault: false;
|
|
122
|
+
isPrimaryKey: false;
|
|
123
|
+
isAutoincrement: false;
|
|
124
|
+
hasRuntimeDefault: false;
|
|
125
|
+
enumValues: [string, ...string[]];
|
|
126
|
+
baseColumn: never;
|
|
127
|
+
identity: undefined;
|
|
128
|
+
generated: undefined;
|
|
129
|
+
}, {}, {}>;
|
|
130
|
+
role: drizzle_orm_pg_core.PgColumn<{
|
|
131
|
+
name: "role";
|
|
132
|
+
tableName: "user";
|
|
133
|
+
dataType: "string";
|
|
134
|
+
columnType: "PgEnumColumn";
|
|
135
|
+
data: "admin" | "player" | "developer";
|
|
136
|
+
driverParam: string;
|
|
137
|
+
notNull: true;
|
|
138
|
+
hasDefault: true;
|
|
139
|
+
isPrimaryKey: false;
|
|
140
|
+
isAutoincrement: false;
|
|
141
|
+
hasRuntimeDefault: false;
|
|
142
|
+
enumValues: ["admin", "player", "developer"];
|
|
143
|
+
baseColumn: never;
|
|
144
|
+
identity: undefined;
|
|
145
|
+
generated: undefined;
|
|
146
|
+
}, {}, {}>;
|
|
147
|
+
developerStatus: drizzle_orm_pg_core.PgColumn<{
|
|
148
|
+
name: "developer_status";
|
|
149
|
+
tableName: "user";
|
|
150
|
+
dataType: "string";
|
|
151
|
+
columnType: "PgEnumColumn";
|
|
152
|
+
data: "none" | "pending" | "approved";
|
|
153
|
+
driverParam: string;
|
|
154
|
+
notNull: true;
|
|
155
|
+
hasDefault: true;
|
|
156
|
+
isPrimaryKey: false;
|
|
157
|
+
isAutoincrement: false;
|
|
158
|
+
hasRuntimeDefault: false;
|
|
159
|
+
enumValues: ["none", "pending", "approved"];
|
|
160
|
+
baseColumn: never;
|
|
161
|
+
identity: undefined;
|
|
162
|
+
generated: undefined;
|
|
163
|
+
}, {}, {}>;
|
|
164
|
+
characterCreated: drizzle_orm_pg_core.PgColumn<{
|
|
165
|
+
name: "character_created";
|
|
166
|
+
tableName: "user";
|
|
167
|
+
dataType: "boolean";
|
|
168
|
+
columnType: "PgBoolean";
|
|
169
|
+
data: boolean;
|
|
170
|
+
driverParam: boolean;
|
|
171
|
+
notNull: true;
|
|
172
|
+
hasDefault: true;
|
|
173
|
+
isPrimaryKey: false;
|
|
174
|
+
isAutoincrement: false;
|
|
175
|
+
hasRuntimeDefault: false;
|
|
176
|
+
enumValues: undefined;
|
|
177
|
+
baseColumn: never;
|
|
178
|
+
identity: undefined;
|
|
179
|
+
generated: undefined;
|
|
180
|
+
}, {}, {}>;
|
|
181
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
182
|
+
name: "created_at";
|
|
183
|
+
tableName: "user";
|
|
184
|
+
dataType: "date";
|
|
185
|
+
columnType: "PgTimestamp";
|
|
186
|
+
data: Date;
|
|
187
|
+
driverParam: string;
|
|
188
|
+
notNull: true;
|
|
189
|
+
hasDefault: false;
|
|
190
|
+
isPrimaryKey: false;
|
|
191
|
+
isAutoincrement: false;
|
|
192
|
+
hasRuntimeDefault: false;
|
|
193
|
+
enumValues: undefined;
|
|
194
|
+
baseColumn: never;
|
|
195
|
+
identity: undefined;
|
|
196
|
+
generated: undefined;
|
|
197
|
+
}, {}, {}>;
|
|
198
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
199
|
+
name: "updated_at";
|
|
200
|
+
tableName: "user";
|
|
201
|
+
dataType: "date";
|
|
202
|
+
columnType: "PgTimestamp";
|
|
203
|
+
data: Date;
|
|
204
|
+
driverParam: string;
|
|
205
|
+
notNull: true;
|
|
206
|
+
hasDefault: false;
|
|
207
|
+
isPrimaryKey: false;
|
|
208
|
+
isAutoincrement: false;
|
|
209
|
+
hasRuntimeDefault: false;
|
|
210
|
+
enumValues: undefined;
|
|
211
|
+
baseColumn: never;
|
|
212
|
+
identity: undefined;
|
|
213
|
+
generated: undefined;
|
|
214
|
+
}, {}, {}>;
|
|
215
|
+
};
|
|
216
|
+
dialect: "pg";
|
|
217
|
+
}>;
|
|
218
|
+
|
|
219
|
+
declare const developerKeys: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
220
|
+
name: "developer_keys";
|
|
221
|
+
schema: undefined;
|
|
222
|
+
columns: {
|
|
223
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
224
|
+
name: "id";
|
|
225
|
+
tableName: "developer_keys";
|
|
226
|
+
dataType: "string";
|
|
227
|
+
columnType: "PgUUID";
|
|
228
|
+
data: string;
|
|
229
|
+
driverParam: string;
|
|
230
|
+
notNull: true;
|
|
231
|
+
hasDefault: true;
|
|
232
|
+
isPrimaryKey: true;
|
|
233
|
+
isAutoincrement: false;
|
|
234
|
+
hasRuntimeDefault: false;
|
|
235
|
+
enumValues: undefined;
|
|
236
|
+
baseColumn: never;
|
|
237
|
+
identity: undefined;
|
|
238
|
+
generated: undefined;
|
|
239
|
+
}, {}, {}>;
|
|
240
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
241
|
+
name: "user_id";
|
|
242
|
+
tableName: "developer_keys";
|
|
243
|
+
dataType: "string";
|
|
244
|
+
columnType: "PgText";
|
|
245
|
+
data: string;
|
|
246
|
+
driverParam: string;
|
|
247
|
+
notNull: true;
|
|
248
|
+
hasDefault: false;
|
|
249
|
+
isPrimaryKey: false;
|
|
250
|
+
isAutoincrement: false;
|
|
251
|
+
hasRuntimeDefault: false;
|
|
252
|
+
enumValues: [string, ...string[]];
|
|
253
|
+
baseColumn: never;
|
|
254
|
+
identity: undefined;
|
|
255
|
+
generated: undefined;
|
|
256
|
+
}, {}, {}>;
|
|
257
|
+
label: drizzle_orm_pg_core.PgColumn<{
|
|
258
|
+
name: "label";
|
|
259
|
+
tableName: "developer_keys";
|
|
260
|
+
dataType: "string";
|
|
261
|
+
columnType: "PgVarchar";
|
|
262
|
+
data: string;
|
|
263
|
+
driverParam: string;
|
|
264
|
+
notNull: false;
|
|
265
|
+
hasDefault: false;
|
|
266
|
+
isPrimaryKey: false;
|
|
267
|
+
isAutoincrement: false;
|
|
268
|
+
hasRuntimeDefault: false;
|
|
269
|
+
enumValues: [string, ...string[]];
|
|
270
|
+
baseColumn: never;
|
|
271
|
+
identity: undefined;
|
|
272
|
+
generated: undefined;
|
|
273
|
+
}, {}, {
|
|
274
|
+
length: 255;
|
|
275
|
+
}>;
|
|
276
|
+
keyHash: drizzle_orm_pg_core.PgColumn<{
|
|
277
|
+
name: "key_hash";
|
|
278
|
+
tableName: "developer_keys";
|
|
279
|
+
dataType: "string";
|
|
280
|
+
columnType: "PgText";
|
|
281
|
+
data: string;
|
|
282
|
+
driverParam: string;
|
|
283
|
+
notNull: true;
|
|
284
|
+
hasDefault: false;
|
|
285
|
+
isPrimaryKey: false;
|
|
286
|
+
isAutoincrement: false;
|
|
287
|
+
hasRuntimeDefault: false;
|
|
288
|
+
enumValues: [string, ...string[]];
|
|
289
|
+
baseColumn: never;
|
|
290
|
+
identity: undefined;
|
|
291
|
+
generated: undefined;
|
|
292
|
+
}, {}, {}>;
|
|
293
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
294
|
+
name: "created_at";
|
|
295
|
+
tableName: "developer_keys";
|
|
296
|
+
dataType: "date";
|
|
297
|
+
columnType: "PgTimestamp";
|
|
298
|
+
data: Date;
|
|
299
|
+
driverParam: string;
|
|
300
|
+
notNull: true;
|
|
301
|
+
hasDefault: true;
|
|
302
|
+
isPrimaryKey: false;
|
|
303
|
+
isAutoincrement: false;
|
|
304
|
+
hasRuntimeDefault: false;
|
|
305
|
+
enumValues: undefined;
|
|
306
|
+
baseColumn: never;
|
|
307
|
+
identity: undefined;
|
|
308
|
+
generated: undefined;
|
|
309
|
+
}, {}, {}>;
|
|
310
|
+
};
|
|
311
|
+
dialect: "pg";
|
|
312
|
+
}>;
|
|
313
|
+
|
|
314
|
+
type GameMetadata = {
|
|
315
|
+
description?: string;
|
|
316
|
+
emoji?: string;
|
|
317
|
+
[key: string]: unknown;
|
|
318
|
+
};
|
|
319
|
+
declare const games: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
320
|
+
name: "games";
|
|
321
|
+
schema: undefined;
|
|
322
|
+
columns: {
|
|
323
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
324
|
+
name: "id";
|
|
325
|
+
tableName: "games";
|
|
326
|
+
dataType: "string";
|
|
327
|
+
columnType: "PgUUID";
|
|
328
|
+
data: string;
|
|
329
|
+
driverParam: string;
|
|
330
|
+
notNull: true;
|
|
331
|
+
hasDefault: true;
|
|
332
|
+
isPrimaryKey: true;
|
|
333
|
+
isAutoincrement: false;
|
|
334
|
+
hasRuntimeDefault: false;
|
|
335
|
+
enumValues: undefined;
|
|
336
|
+
baseColumn: never;
|
|
337
|
+
identity: undefined;
|
|
338
|
+
generated: undefined;
|
|
339
|
+
}, {}, {}>;
|
|
340
|
+
developerId: drizzle_orm_pg_core.PgColumn<{
|
|
341
|
+
name: "developer_id";
|
|
342
|
+
tableName: "games";
|
|
343
|
+
dataType: "string";
|
|
344
|
+
columnType: "PgText";
|
|
345
|
+
data: string;
|
|
346
|
+
driverParam: string;
|
|
347
|
+
notNull: false;
|
|
348
|
+
hasDefault: false;
|
|
349
|
+
isPrimaryKey: false;
|
|
350
|
+
isAutoincrement: false;
|
|
351
|
+
hasRuntimeDefault: false;
|
|
352
|
+
enumValues: [string, ...string[]];
|
|
353
|
+
baseColumn: never;
|
|
354
|
+
identity: undefined;
|
|
355
|
+
generated: undefined;
|
|
356
|
+
}, {}, {}>;
|
|
357
|
+
slug: drizzle_orm_pg_core.PgColumn<{
|
|
358
|
+
name: "slug";
|
|
359
|
+
tableName: "games";
|
|
360
|
+
dataType: "string";
|
|
361
|
+
columnType: "PgVarchar";
|
|
362
|
+
data: string;
|
|
363
|
+
driverParam: string;
|
|
364
|
+
notNull: true;
|
|
365
|
+
hasDefault: false;
|
|
366
|
+
isPrimaryKey: false;
|
|
367
|
+
isAutoincrement: false;
|
|
368
|
+
hasRuntimeDefault: false;
|
|
369
|
+
enumValues: [string, ...string[]];
|
|
370
|
+
baseColumn: never;
|
|
371
|
+
identity: undefined;
|
|
372
|
+
generated: undefined;
|
|
373
|
+
}, {}, {
|
|
374
|
+
length: 255;
|
|
375
|
+
}>;
|
|
376
|
+
displayName: drizzle_orm_pg_core.PgColumn<{
|
|
377
|
+
name: "display_name";
|
|
378
|
+
tableName: "games";
|
|
379
|
+
dataType: "string";
|
|
380
|
+
columnType: "PgVarchar";
|
|
381
|
+
data: string;
|
|
382
|
+
driverParam: string;
|
|
383
|
+
notNull: true;
|
|
384
|
+
hasDefault: false;
|
|
385
|
+
isPrimaryKey: false;
|
|
386
|
+
isAutoincrement: false;
|
|
387
|
+
hasRuntimeDefault: false;
|
|
388
|
+
enumValues: [string, ...string[]];
|
|
389
|
+
baseColumn: never;
|
|
390
|
+
identity: undefined;
|
|
391
|
+
generated: undefined;
|
|
392
|
+
}, {}, {
|
|
393
|
+
length: 255;
|
|
394
|
+
}>;
|
|
395
|
+
version: drizzle_orm_pg_core.PgColumn<{
|
|
396
|
+
name: "version";
|
|
397
|
+
tableName: "games";
|
|
398
|
+
dataType: "string";
|
|
399
|
+
columnType: "PgVarchar";
|
|
400
|
+
data: string;
|
|
401
|
+
driverParam: string;
|
|
402
|
+
notNull: true;
|
|
403
|
+
hasDefault: false;
|
|
404
|
+
isPrimaryKey: false;
|
|
405
|
+
isAutoincrement: false;
|
|
406
|
+
hasRuntimeDefault: false;
|
|
407
|
+
enumValues: [string, ...string[]];
|
|
408
|
+
baseColumn: never;
|
|
409
|
+
identity: undefined;
|
|
410
|
+
generated: undefined;
|
|
411
|
+
}, {}, {
|
|
412
|
+
length: 50;
|
|
413
|
+
}>;
|
|
414
|
+
gameType: drizzle_orm_pg_core.PgColumn<{
|
|
415
|
+
name: "game_type";
|
|
416
|
+
tableName: "games";
|
|
417
|
+
dataType: "string";
|
|
418
|
+
columnType: "PgEnumColumn";
|
|
419
|
+
data: "hosted" | "external";
|
|
420
|
+
driverParam: string;
|
|
421
|
+
notNull: true;
|
|
422
|
+
hasDefault: true;
|
|
423
|
+
isPrimaryKey: false;
|
|
424
|
+
isAutoincrement: false;
|
|
425
|
+
hasRuntimeDefault: false;
|
|
426
|
+
enumValues: ["hosted", "external"];
|
|
427
|
+
baseColumn: never;
|
|
428
|
+
identity: undefined;
|
|
429
|
+
generated: undefined;
|
|
430
|
+
}, {}, {}>;
|
|
431
|
+
assetBundleBase: drizzle_orm_pg_core.PgColumn<{
|
|
432
|
+
name: "asset_bundle_base";
|
|
433
|
+
tableName: "games";
|
|
434
|
+
dataType: "string";
|
|
435
|
+
columnType: "PgText";
|
|
436
|
+
data: string;
|
|
437
|
+
driverParam: string;
|
|
438
|
+
notNull: false;
|
|
439
|
+
hasDefault: false;
|
|
440
|
+
isPrimaryKey: false;
|
|
441
|
+
isAutoincrement: false;
|
|
442
|
+
hasRuntimeDefault: false;
|
|
443
|
+
enumValues: [string, ...string[]];
|
|
444
|
+
baseColumn: never;
|
|
445
|
+
identity: undefined;
|
|
446
|
+
generated: undefined;
|
|
447
|
+
}, {}, {}>;
|
|
448
|
+
externalUrl: drizzle_orm_pg_core.PgColumn<{
|
|
449
|
+
name: "external_url";
|
|
450
|
+
tableName: "games";
|
|
451
|
+
dataType: "string";
|
|
452
|
+
columnType: "PgText";
|
|
453
|
+
data: string;
|
|
454
|
+
driverParam: string;
|
|
455
|
+
notNull: false;
|
|
456
|
+
hasDefault: false;
|
|
457
|
+
isPrimaryKey: false;
|
|
458
|
+
isAutoincrement: false;
|
|
459
|
+
hasRuntimeDefault: false;
|
|
460
|
+
enumValues: [string, ...string[]];
|
|
461
|
+
baseColumn: never;
|
|
462
|
+
identity: undefined;
|
|
463
|
+
generated: undefined;
|
|
464
|
+
}, {}, {}>;
|
|
465
|
+
platform: drizzle_orm_pg_core.PgColumn<{
|
|
466
|
+
name: "platform";
|
|
467
|
+
tableName: "games";
|
|
468
|
+
dataType: "string";
|
|
469
|
+
columnType: "PgEnumColumn";
|
|
470
|
+
data: "web" | "godot" | "unity";
|
|
471
|
+
driverParam: string;
|
|
472
|
+
notNull: true;
|
|
473
|
+
hasDefault: true;
|
|
474
|
+
isPrimaryKey: false;
|
|
475
|
+
isAutoincrement: false;
|
|
476
|
+
hasRuntimeDefault: false;
|
|
477
|
+
enumValues: ["web", "godot", "unity"];
|
|
478
|
+
baseColumn: never;
|
|
479
|
+
identity: undefined;
|
|
480
|
+
generated: undefined;
|
|
481
|
+
}, {}, {}>;
|
|
482
|
+
mapElementId: drizzle_orm_pg_core.PgColumn<{
|
|
483
|
+
name: "map_element_id";
|
|
484
|
+
tableName: "games";
|
|
485
|
+
dataType: "string";
|
|
486
|
+
columnType: "PgUUID";
|
|
487
|
+
data: string;
|
|
488
|
+
driverParam: string;
|
|
489
|
+
notNull: false;
|
|
490
|
+
hasDefault: false;
|
|
491
|
+
isPrimaryKey: false;
|
|
492
|
+
isAutoincrement: false;
|
|
493
|
+
hasRuntimeDefault: false;
|
|
494
|
+
enumValues: undefined;
|
|
495
|
+
baseColumn: never;
|
|
496
|
+
identity: undefined;
|
|
497
|
+
generated: undefined;
|
|
498
|
+
}, {}, {}>;
|
|
499
|
+
metadata: drizzle_orm_pg_core.PgColumn<{
|
|
500
|
+
name: "metadata";
|
|
501
|
+
tableName: "games";
|
|
502
|
+
dataType: "json";
|
|
503
|
+
columnType: "PgJsonb";
|
|
504
|
+
data: GameMetadata;
|
|
505
|
+
driverParam: unknown;
|
|
506
|
+
notNull: true;
|
|
507
|
+
hasDefault: true;
|
|
508
|
+
isPrimaryKey: false;
|
|
509
|
+
isAutoincrement: false;
|
|
510
|
+
hasRuntimeDefault: false;
|
|
511
|
+
enumValues: undefined;
|
|
512
|
+
baseColumn: never;
|
|
513
|
+
identity: undefined;
|
|
514
|
+
generated: undefined;
|
|
515
|
+
}, {}, {
|
|
516
|
+
$type: GameMetadata;
|
|
517
|
+
}>;
|
|
518
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
519
|
+
name: "created_at";
|
|
520
|
+
tableName: "games";
|
|
521
|
+
dataType: "date";
|
|
522
|
+
columnType: "PgTimestamp";
|
|
523
|
+
data: Date;
|
|
524
|
+
driverParam: string;
|
|
525
|
+
notNull: false;
|
|
526
|
+
hasDefault: true;
|
|
527
|
+
isPrimaryKey: false;
|
|
528
|
+
isAutoincrement: false;
|
|
529
|
+
hasRuntimeDefault: false;
|
|
530
|
+
enumValues: undefined;
|
|
531
|
+
baseColumn: never;
|
|
532
|
+
identity: undefined;
|
|
533
|
+
generated: undefined;
|
|
534
|
+
}, {}, {}>;
|
|
535
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
536
|
+
name: "updated_at";
|
|
537
|
+
tableName: "games";
|
|
538
|
+
dataType: "date";
|
|
539
|
+
columnType: "PgTimestamp";
|
|
540
|
+
data: Date;
|
|
541
|
+
driverParam: string;
|
|
542
|
+
notNull: false;
|
|
543
|
+
hasDefault: true;
|
|
544
|
+
isPrimaryKey: false;
|
|
545
|
+
isAutoincrement: false;
|
|
546
|
+
hasRuntimeDefault: false;
|
|
547
|
+
enumValues: undefined;
|
|
548
|
+
baseColumn: never;
|
|
549
|
+
identity: undefined;
|
|
550
|
+
generated: undefined;
|
|
551
|
+
}, {}, {}>;
|
|
552
|
+
};
|
|
553
|
+
dialect: "pg";
|
|
554
|
+
}>;
|
|
555
|
+
declare const gameSessions: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
556
|
+
name: "game_sessions";
|
|
557
|
+
schema: undefined;
|
|
558
|
+
columns: {
|
|
559
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
560
|
+
name: "id";
|
|
561
|
+
tableName: "game_sessions";
|
|
562
|
+
dataType: "string";
|
|
563
|
+
columnType: "PgUUID";
|
|
564
|
+
data: string;
|
|
565
|
+
driverParam: string;
|
|
566
|
+
notNull: true;
|
|
567
|
+
hasDefault: true;
|
|
568
|
+
isPrimaryKey: true;
|
|
569
|
+
isAutoincrement: false;
|
|
570
|
+
hasRuntimeDefault: false;
|
|
571
|
+
enumValues: undefined;
|
|
572
|
+
baseColumn: never;
|
|
573
|
+
identity: undefined;
|
|
574
|
+
generated: undefined;
|
|
575
|
+
}, {}, {}>;
|
|
576
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
577
|
+
name: "user_id";
|
|
578
|
+
tableName: "game_sessions";
|
|
579
|
+
dataType: "string";
|
|
580
|
+
columnType: "PgText";
|
|
581
|
+
data: string;
|
|
582
|
+
driverParam: string;
|
|
583
|
+
notNull: true;
|
|
584
|
+
hasDefault: false;
|
|
585
|
+
isPrimaryKey: false;
|
|
586
|
+
isAutoincrement: false;
|
|
587
|
+
hasRuntimeDefault: false;
|
|
588
|
+
enumValues: [string, ...string[]];
|
|
589
|
+
baseColumn: never;
|
|
590
|
+
identity: undefined;
|
|
591
|
+
generated: undefined;
|
|
592
|
+
}, {}, {}>;
|
|
593
|
+
gameId: drizzle_orm_pg_core.PgColumn<{
|
|
594
|
+
name: "game_id";
|
|
595
|
+
tableName: "game_sessions";
|
|
596
|
+
dataType: "string";
|
|
597
|
+
columnType: "PgUUID";
|
|
598
|
+
data: string;
|
|
599
|
+
driverParam: string;
|
|
600
|
+
notNull: true;
|
|
601
|
+
hasDefault: false;
|
|
602
|
+
isPrimaryKey: false;
|
|
603
|
+
isAutoincrement: false;
|
|
604
|
+
hasRuntimeDefault: false;
|
|
605
|
+
enumValues: undefined;
|
|
606
|
+
baseColumn: never;
|
|
607
|
+
identity: undefined;
|
|
608
|
+
generated: undefined;
|
|
609
|
+
}, {}, {}>;
|
|
610
|
+
startedAt: drizzle_orm_pg_core.PgColumn<{
|
|
611
|
+
name: "started_at";
|
|
612
|
+
tableName: "game_sessions";
|
|
613
|
+
dataType: "date";
|
|
614
|
+
columnType: "PgTimestamp";
|
|
615
|
+
data: Date;
|
|
616
|
+
driverParam: string;
|
|
617
|
+
notNull: true;
|
|
618
|
+
hasDefault: true;
|
|
619
|
+
isPrimaryKey: false;
|
|
620
|
+
isAutoincrement: false;
|
|
621
|
+
hasRuntimeDefault: false;
|
|
622
|
+
enumValues: undefined;
|
|
623
|
+
baseColumn: never;
|
|
624
|
+
identity: undefined;
|
|
625
|
+
generated: undefined;
|
|
626
|
+
}, {}, {}>;
|
|
627
|
+
endedAt: drizzle_orm_pg_core.PgColumn<{
|
|
628
|
+
name: "ended_at";
|
|
629
|
+
tableName: "game_sessions";
|
|
630
|
+
dataType: "date";
|
|
631
|
+
columnType: "PgTimestamp";
|
|
632
|
+
data: Date;
|
|
633
|
+
driverParam: string;
|
|
634
|
+
notNull: false;
|
|
635
|
+
hasDefault: false;
|
|
636
|
+
isPrimaryKey: false;
|
|
637
|
+
isAutoincrement: false;
|
|
638
|
+
hasRuntimeDefault: false;
|
|
639
|
+
enumValues: undefined;
|
|
640
|
+
baseColumn: never;
|
|
641
|
+
identity: undefined;
|
|
642
|
+
generated: undefined;
|
|
643
|
+
}, {}, {}>;
|
|
644
|
+
};
|
|
645
|
+
dialect: "pg";
|
|
646
|
+
}>;
|
|
647
|
+
declare const items: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
648
|
+
name: "items";
|
|
649
|
+
schema: undefined;
|
|
650
|
+
columns: {
|
|
651
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
652
|
+
name: "id";
|
|
653
|
+
tableName: "items";
|
|
654
|
+
dataType: "string";
|
|
655
|
+
columnType: "PgUUID";
|
|
656
|
+
data: string;
|
|
657
|
+
driverParam: string;
|
|
658
|
+
notNull: true;
|
|
659
|
+
hasDefault: true;
|
|
660
|
+
isPrimaryKey: true;
|
|
661
|
+
isAutoincrement: false;
|
|
662
|
+
hasRuntimeDefault: false;
|
|
663
|
+
enumValues: undefined;
|
|
664
|
+
baseColumn: never;
|
|
665
|
+
identity: undefined;
|
|
666
|
+
generated: undefined;
|
|
667
|
+
}, {}, {}>;
|
|
668
|
+
slug: drizzle_orm_pg_core.PgColumn<{
|
|
669
|
+
name: "slug";
|
|
670
|
+
tableName: "items";
|
|
671
|
+
dataType: "string";
|
|
672
|
+
columnType: "PgText";
|
|
673
|
+
data: string;
|
|
674
|
+
driverParam: string;
|
|
675
|
+
notNull: true;
|
|
676
|
+
hasDefault: false;
|
|
677
|
+
isPrimaryKey: false;
|
|
678
|
+
isAutoincrement: false;
|
|
679
|
+
hasRuntimeDefault: false;
|
|
680
|
+
enumValues: [string, ...string[]];
|
|
681
|
+
baseColumn: never;
|
|
682
|
+
identity: undefined;
|
|
683
|
+
generated: undefined;
|
|
684
|
+
}, {}, {}>;
|
|
685
|
+
gameId: drizzle_orm_pg_core.PgColumn<{
|
|
686
|
+
name: "game_id";
|
|
687
|
+
tableName: "items";
|
|
688
|
+
dataType: "string";
|
|
689
|
+
columnType: "PgUUID";
|
|
690
|
+
data: string;
|
|
691
|
+
driverParam: string;
|
|
692
|
+
notNull: false;
|
|
693
|
+
hasDefault: false;
|
|
694
|
+
isPrimaryKey: false;
|
|
695
|
+
isAutoincrement: false;
|
|
696
|
+
hasRuntimeDefault: false;
|
|
697
|
+
enumValues: undefined;
|
|
698
|
+
baseColumn: never;
|
|
699
|
+
identity: undefined;
|
|
700
|
+
generated: undefined;
|
|
701
|
+
}, {}, {}>;
|
|
702
|
+
displayName: drizzle_orm_pg_core.PgColumn<{
|
|
703
|
+
name: "display_name";
|
|
704
|
+
tableName: "items";
|
|
705
|
+
dataType: "string";
|
|
706
|
+
columnType: "PgText";
|
|
707
|
+
data: string;
|
|
708
|
+
driverParam: string;
|
|
709
|
+
notNull: true;
|
|
710
|
+
hasDefault: false;
|
|
711
|
+
isPrimaryKey: false;
|
|
712
|
+
isAutoincrement: false;
|
|
713
|
+
hasRuntimeDefault: false;
|
|
714
|
+
enumValues: [string, ...string[]];
|
|
715
|
+
baseColumn: never;
|
|
716
|
+
identity: undefined;
|
|
717
|
+
generated: undefined;
|
|
718
|
+
}, {}, {}>;
|
|
719
|
+
description: drizzle_orm_pg_core.PgColumn<{
|
|
720
|
+
name: "description";
|
|
721
|
+
tableName: "items";
|
|
722
|
+
dataType: "string";
|
|
723
|
+
columnType: "PgText";
|
|
724
|
+
data: string;
|
|
725
|
+
driverParam: string;
|
|
726
|
+
notNull: false;
|
|
727
|
+
hasDefault: false;
|
|
728
|
+
isPrimaryKey: false;
|
|
729
|
+
isAutoincrement: false;
|
|
730
|
+
hasRuntimeDefault: false;
|
|
731
|
+
enumValues: [string, ...string[]];
|
|
732
|
+
baseColumn: never;
|
|
733
|
+
identity: undefined;
|
|
734
|
+
generated: undefined;
|
|
735
|
+
}, {}, {}>;
|
|
736
|
+
type: drizzle_orm_pg_core.PgColumn<{
|
|
737
|
+
name: "type";
|
|
738
|
+
tableName: "items";
|
|
739
|
+
dataType: "string";
|
|
740
|
+
columnType: "PgEnumColumn";
|
|
741
|
+
data: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
|
|
742
|
+
driverParam: string;
|
|
743
|
+
notNull: true;
|
|
744
|
+
hasDefault: true;
|
|
745
|
+
isPrimaryKey: false;
|
|
746
|
+
isAutoincrement: false;
|
|
747
|
+
hasRuntimeDefault: false;
|
|
748
|
+
enumValues: ["currency", "badge", "trophy", "collectible", "consumable", "unlock", "upgrade", "accessory", "other"];
|
|
749
|
+
baseColumn: never;
|
|
750
|
+
identity: undefined;
|
|
751
|
+
generated: undefined;
|
|
752
|
+
}, {}, {}>;
|
|
753
|
+
isPlaceable: drizzle_orm_pg_core.PgColumn<{
|
|
754
|
+
name: "is_placeable";
|
|
755
|
+
tableName: "items";
|
|
756
|
+
dataType: "boolean";
|
|
757
|
+
columnType: "PgBoolean";
|
|
758
|
+
data: boolean;
|
|
759
|
+
driverParam: boolean;
|
|
760
|
+
notNull: true;
|
|
761
|
+
hasDefault: true;
|
|
762
|
+
isPrimaryKey: false;
|
|
763
|
+
isAutoincrement: false;
|
|
764
|
+
hasRuntimeDefault: false;
|
|
765
|
+
enumValues: undefined;
|
|
766
|
+
baseColumn: never;
|
|
767
|
+
identity: undefined;
|
|
768
|
+
generated: undefined;
|
|
769
|
+
}, {}, {}>;
|
|
770
|
+
imageUrl: drizzle_orm_pg_core.PgColumn<{
|
|
771
|
+
name: "image_url";
|
|
772
|
+
tableName: "items";
|
|
773
|
+
dataType: "string";
|
|
774
|
+
columnType: "PgText";
|
|
775
|
+
data: string;
|
|
776
|
+
driverParam: string;
|
|
777
|
+
notNull: false;
|
|
778
|
+
hasDefault: false;
|
|
779
|
+
isPrimaryKey: false;
|
|
780
|
+
isAutoincrement: false;
|
|
781
|
+
hasRuntimeDefault: false;
|
|
782
|
+
enumValues: [string, ...string[]];
|
|
783
|
+
baseColumn: never;
|
|
784
|
+
identity: undefined;
|
|
785
|
+
generated: undefined;
|
|
786
|
+
}, {}, {}>;
|
|
787
|
+
metadata: drizzle_orm_pg_core.PgColumn<{
|
|
788
|
+
name: "metadata";
|
|
789
|
+
tableName: "items";
|
|
790
|
+
dataType: "json";
|
|
791
|
+
columnType: "PgJsonb";
|
|
792
|
+
data: unknown;
|
|
793
|
+
driverParam: unknown;
|
|
794
|
+
notNull: false;
|
|
795
|
+
hasDefault: true;
|
|
796
|
+
isPrimaryKey: false;
|
|
797
|
+
isAutoincrement: false;
|
|
798
|
+
hasRuntimeDefault: false;
|
|
799
|
+
enumValues: undefined;
|
|
800
|
+
baseColumn: never;
|
|
801
|
+
identity: undefined;
|
|
802
|
+
generated: undefined;
|
|
803
|
+
}, {}, {}>;
|
|
804
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
805
|
+
name: "created_at";
|
|
806
|
+
tableName: "items";
|
|
807
|
+
dataType: "date";
|
|
808
|
+
columnType: "PgTimestamp";
|
|
809
|
+
data: Date;
|
|
810
|
+
driverParam: string;
|
|
811
|
+
notNull: true;
|
|
812
|
+
hasDefault: true;
|
|
813
|
+
isPrimaryKey: false;
|
|
814
|
+
isAutoincrement: false;
|
|
815
|
+
hasRuntimeDefault: false;
|
|
816
|
+
enumValues: undefined;
|
|
817
|
+
baseColumn: never;
|
|
818
|
+
identity: undefined;
|
|
819
|
+
generated: undefined;
|
|
820
|
+
}, {}, {}>;
|
|
821
|
+
};
|
|
822
|
+
dialect: "pg";
|
|
823
|
+
}>;
|
|
824
|
+
declare const inventoryItems: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
825
|
+
name: "inventory_items";
|
|
826
|
+
schema: undefined;
|
|
827
|
+
columns: {
|
|
828
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
829
|
+
name: "id";
|
|
830
|
+
tableName: "inventory_items";
|
|
831
|
+
dataType: "string";
|
|
832
|
+
columnType: "PgUUID";
|
|
833
|
+
data: string;
|
|
834
|
+
driverParam: string;
|
|
835
|
+
notNull: true;
|
|
836
|
+
hasDefault: true;
|
|
837
|
+
isPrimaryKey: true;
|
|
838
|
+
isAutoincrement: false;
|
|
839
|
+
hasRuntimeDefault: false;
|
|
840
|
+
enumValues: undefined;
|
|
841
|
+
baseColumn: never;
|
|
842
|
+
identity: undefined;
|
|
843
|
+
generated: undefined;
|
|
844
|
+
}, {}, {}>;
|
|
845
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
846
|
+
name: "user_id";
|
|
847
|
+
tableName: "inventory_items";
|
|
848
|
+
dataType: "string";
|
|
849
|
+
columnType: "PgText";
|
|
850
|
+
data: string;
|
|
851
|
+
driverParam: string;
|
|
852
|
+
notNull: true;
|
|
853
|
+
hasDefault: false;
|
|
854
|
+
isPrimaryKey: false;
|
|
855
|
+
isAutoincrement: false;
|
|
856
|
+
hasRuntimeDefault: false;
|
|
857
|
+
enumValues: [string, ...string[]];
|
|
858
|
+
baseColumn: never;
|
|
859
|
+
identity: undefined;
|
|
860
|
+
generated: undefined;
|
|
861
|
+
}, {}, {}>;
|
|
862
|
+
itemId: drizzle_orm_pg_core.PgColumn<{
|
|
863
|
+
name: "item_id";
|
|
864
|
+
tableName: "inventory_items";
|
|
865
|
+
dataType: "string";
|
|
866
|
+
columnType: "PgUUID";
|
|
867
|
+
data: string;
|
|
868
|
+
driverParam: string;
|
|
869
|
+
notNull: true;
|
|
870
|
+
hasDefault: false;
|
|
871
|
+
isPrimaryKey: false;
|
|
872
|
+
isAutoincrement: false;
|
|
873
|
+
hasRuntimeDefault: false;
|
|
874
|
+
enumValues: undefined;
|
|
875
|
+
baseColumn: never;
|
|
876
|
+
identity: undefined;
|
|
877
|
+
generated: undefined;
|
|
878
|
+
}, {}, {}>;
|
|
879
|
+
quantity: drizzle_orm_pg_core.PgColumn<{
|
|
880
|
+
name: "quantity";
|
|
881
|
+
tableName: "inventory_items";
|
|
882
|
+
dataType: "number";
|
|
883
|
+
columnType: "PgInteger";
|
|
884
|
+
data: number;
|
|
885
|
+
driverParam: string | number;
|
|
886
|
+
notNull: true;
|
|
887
|
+
hasDefault: true;
|
|
888
|
+
isPrimaryKey: false;
|
|
889
|
+
isAutoincrement: false;
|
|
890
|
+
hasRuntimeDefault: false;
|
|
891
|
+
enumValues: undefined;
|
|
892
|
+
baseColumn: never;
|
|
893
|
+
identity: undefined;
|
|
894
|
+
generated: undefined;
|
|
895
|
+
}, {}, {}>;
|
|
896
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
897
|
+
name: "updated_at";
|
|
898
|
+
tableName: "inventory_items";
|
|
899
|
+
dataType: "date";
|
|
900
|
+
columnType: "PgTimestamp";
|
|
901
|
+
data: Date;
|
|
902
|
+
driverParam: string;
|
|
903
|
+
notNull: false;
|
|
904
|
+
hasDefault: true;
|
|
905
|
+
isPrimaryKey: false;
|
|
906
|
+
isAutoincrement: false;
|
|
907
|
+
hasRuntimeDefault: false;
|
|
908
|
+
enumValues: undefined;
|
|
909
|
+
baseColumn: never;
|
|
910
|
+
identity: undefined;
|
|
911
|
+
generated: undefined;
|
|
912
|
+
}, {}, {}>;
|
|
913
|
+
};
|
|
914
|
+
dialect: "pg";
|
|
915
|
+
}>;
|
|
916
|
+
declare const currencies: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
917
|
+
name: "currencies";
|
|
918
|
+
schema: undefined;
|
|
919
|
+
columns: {
|
|
920
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
921
|
+
name: "id";
|
|
922
|
+
tableName: "currencies";
|
|
923
|
+
dataType: "string";
|
|
924
|
+
columnType: "PgUUID";
|
|
925
|
+
data: string;
|
|
926
|
+
driverParam: string;
|
|
927
|
+
notNull: true;
|
|
928
|
+
hasDefault: true;
|
|
929
|
+
isPrimaryKey: true;
|
|
930
|
+
isAutoincrement: false;
|
|
931
|
+
hasRuntimeDefault: false;
|
|
932
|
+
enumValues: undefined;
|
|
933
|
+
baseColumn: never;
|
|
934
|
+
identity: undefined;
|
|
935
|
+
generated: undefined;
|
|
936
|
+
}, {}, {}>;
|
|
937
|
+
itemId: drizzle_orm_pg_core.PgColumn<{
|
|
938
|
+
name: "item_id";
|
|
939
|
+
tableName: "currencies";
|
|
940
|
+
dataType: "string";
|
|
941
|
+
columnType: "PgUUID";
|
|
942
|
+
data: string;
|
|
943
|
+
driverParam: string;
|
|
944
|
+
notNull: true;
|
|
945
|
+
hasDefault: false;
|
|
946
|
+
isPrimaryKey: false;
|
|
947
|
+
isAutoincrement: false;
|
|
948
|
+
hasRuntimeDefault: false;
|
|
949
|
+
enumValues: undefined;
|
|
950
|
+
baseColumn: never;
|
|
951
|
+
identity: undefined;
|
|
952
|
+
generated: undefined;
|
|
953
|
+
}, {}, {}>;
|
|
954
|
+
symbol: drizzle_orm_pg_core.PgColumn<{
|
|
955
|
+
name: "symbol";
|
|
956
|
+
tableName: "currencies";
|
|
957
|
+
dataType: "string";
|
|
958
|
+
columnType: "PgText";
|
|
959
|
+
data: string;
|
|
960
|
+
driverParam: string;
|
|
961
|
+
notNull: false;
|
|
962
|
+
hasDefault: false;
|
|
963
|
+
isPrimaryKey: false;
|
|
964
|
+
isAutoincrement: false;
|
|
965
|
+
hasRuntimeDefault: false;
|
|
966
|
+
enumValues: [string, ...string[]];
|
|
967
|
+
baseColumn: never;
|
|
968
|
+
identity: undefined;
|
|
969
|
+
generated: undefined;
|
|
970
|
+
}, {}, {}>;
|
|
971
|
+
isPrimary: drizzle_orm_pg_core.PgColumn<{
|
|
972
|
+
name: "is_primary";
|
|
973
|
+
tableName: "currencies";
|
|
974
|
+
dataType: "boolean";
|
|
975
|
+
columnType: "PgBoolean";
|
|
976
|
+
data: boolean;
|
|
977
|
+
driverParam: boolean;
|
|
978
|
+
notNull: true;
|
|
979
|
+
hasDefault: true;
|
|
980
|
+
isPrimaryKey: false;
|
|
981
|
+
isAutoincrement: false;
|
|
982
|
+
hasRuntimeDefault: false;
|
|
983
|
+
enumValues: undefined;
|
|
984
|
+
baseColumn: never;
|
|
985
|
+
identity: undefined;
|
|
986
|
+
generated: undefined;
|
|
987
|
+
}, {}, {}>;
|
|
988
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
989
|
+
name: "created_at";
|
|
990
|
+
tableName: "currencies";
|
|
991
|
+
dataType: "date";
|
|
992
|
+
columnType: "PgTimestamp";
|
|
993
|
+
data: Date;
|
|
994
|
+
driverParam: string;
|
|
995
|
+
notNull: true;
|
|
996
|
+
hasDefault: true;
|
|
997
|
+
isPrimaryKey: false;
|
|
998
|
+
isAutoincrement: false;
|
|
999
|
+
hasRuntimeDefault: false;
|
|
1000
|
+
enumValues: undefined;
|
|
1001
|
+
baseColumn: never;
|
|
1002
|
+
identity: undefined;
|
|
1003
|
+
generated: undefined;
|
|
1004
|
+
}, {}, {}>;
|
|
1005
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1006
|
+
name: "updated_at";
|
|
1007
|
+
tableName: "currencies";
|
|
1008
|
+
dataType: "date";
|
|
1009
|
+
columnType: "PgTimestamp";
|
|
1010
|
+
data: Date;
|
|
1011
|
+
driverParam: string;
|
|
1012
|
+
notNull: false;
|
|
1013
|
+
hasDefault: true;
|
|
1014
|
+
isPrimaryKey: false;
|
|
1015
|
+
isAutoincrement: false;
|
|
1016
|
+
hasRuntimeDefault: false;
|
|
1017
|
+
enumValues: undefined;
|
|
1018
|
+
baseColumn: never;
|
|
1019
|
+
identity: undefined;
|
|
1020
|
+
generated: undefined;
|
|
1021
|
+
}, {}, {}>;
|
|
1022
|
+
};
|
|
1023
|
+
dialect: "pg";
|
|
1024
|
+
}>;
|
|
1025
|
+
declare const shopListings: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1026
|
+
name: "shop_listings";
|
|
1027
|
+
schema: undefined;
|
|
1028
|
+
columns: {
|
|
1029
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1030
|
+
name: "id";
|
|
1031
|
+
tableName: "shop_listings";
|
|
1032
|
+
dataType: "string";
|
|
1033
|
+
columnType: "PgUUID";
|
|
1034
|
+
data: string;
|
|
1035
|
+
driverParam: string;
|
|
1036
|
+
notNull: true;
|
|
1037
|
+
hasDefault: true;
|
|
1038
|
+
isPrimaryKey: true;
|
|
1039
|
+
isAutoincrement: false;
|
|
1040
|
+
hasRuntimeDefault: false;
|
|
1041
|
+
enumValues: undefined;
|
|
1042
|
+
baseColumn: never;
|
|
1043
|
+
identity: undefined;
|
|
1044
|
+
generated: undefined;
|
|
1045
|
+
}, {}, {}>;
|
|
1046
|
+
itemId: drizzle_orm_pg_core.PgColumn<{
|
|
1047
|
+
name: "item_id";
|
|
1048
|
+
tableName: "shop_listings";
|
|
1049
|
+
dataType: "string";
|
|
1050
|
+
columnType: "PgUUID";
|
|
1051
|
+
data: string;
|
|
1052
|
+
driverParam: string;
|
|
1053
|
+
notNull: true;
|
|
1054
|
+
hasDefault: false;
|
|
1055
|
+
isPrimaryKey: false;
|
|
1056
|
+
isAutoincrement: false;
|
|
1057
|
+
hasRuntimeDefault: false;
|
|
1058
|
+
enumValues: undefined;
|
|
1059
|
+
baseColumn: never;
|
|
1060
|
+
identity: undefined;
|
|
1061
|
+
generated: undefined;
|
|
1062
|
+
}, {}, {}>;
|
|
1063
|
+
currencyId: drizzle_orm_pg_core.PgColumn<{
|
|
1064
|
+
name: "currency_id";
|
|
1065
|
+
tableName: "shop_listings";
|
|
1066
|
+
dataType: "string";
|
|
1067
|
+
columnType: "PgUUID";
|
|
1068
|
+
data: string;
|
|
1069
|
+
driverParam: string;
|
|
1070
|
+
notNull: true;
|
|
1071
|
+
hasDefault: false;
|
|
1072
|
+
isPrimaryKey: false;
|
|
1073
|
+
isAutoincrement: false;
|
|
1074
|
+
hasRuntimeDefault: false;
|
|
1075
|
+
enumValues: undefined;
|
|
1076
|
+
baseColumn: never;
|
|
1077
|
+
identity: undefined;
|
|
1078
|
+
generated: undefined;
|
|
1079
|
+
}, {}, {}>;
|
|
1080
|
+
price: drizzle_orm_pg_core.PgColumn<{
|
|
1081
|
+
name: "price";
|
|
1082
|
+
tableName: "shop_listings";
|
|
1083
|
+
dataType: "number";
|
|
1084
|
+
columnType: "PgInteger";
|
|
1085
|
+
data: number;
|
|
1086
|
+
driverParam: string | number;
|
|
1087
|
+
notNull: true;
|
|
1088
|
+
hasDefault: false;
|
|
1089
|
+
isPrimaryKey: false;
|
|
1090
|
+
isAutoincrement: false;
|
|
1091
|
+
hasRuntimeDefault: false;
|
|
1092
|
+
enumValues: undefined;
|
|
1093
|
+
baseColumn: never;
|
|
1094
|
+
identity: undefined;
|
|
1095
|
+
generated: undefined;
|
|
1096
|
+
}, {}, {}>;
|
|
1097
|
+
sellBackPercentage: drizzle_orm_pg_core.PgColumn<{
|
|
1098
|
+
name: "sell_back_percentage";
|
|
1099
|
+
tableName: "shop_listings";
|
|
1100
|
+
dataType: "number";
|
|
1101
|
+
columnType: "PgInteger";
|
|
1102
|
+
data: number;
|
|
1103
|
+
driverParam: string | number;
|
|
1104
|
+
notNull: false;
|
|
1105
|
+
hasDefault: false;
|
|
1106
|
+
isPrimaryKey: false;
|
|
1107
|
+
isAutoincrement: false;
|
|
1108
|
+
hasRuntimeDefault: false;
|
|
1109
|
+
enumValues: undefined;
|
|
1110
|
+
baseColumn: never;
|
|
1111
|
+
identity: undefined;
|
|
1112
|
+
generated: undefined;
|
|
1113
|
+
}, {}, {}>;
|
|
1114
|
+
stock: drizzle_orm_pg_core.PgColumn<{
|
|
1115
|
+
name: "stock";
|
|
1116
|
+
tableName: "shop_listings";
|
|
1117
|
+
dataType: "number";
|
|
1118
|
+
columnType: "PgInteger";
|
|
1119
|
+
data: number;
|
|
1120
|
+
driverParam: string | number;
|
|
1121
|
+
notNull: false;
|
|
1122
|
+
hasDefault: false;
|
|
1123
|
+
isPrimaryKey: false;
|
|
1124
|
+
isAutoincrement: false;
|
|
1125
|
+
hasRuntimeDefault: false;
|
|
1126
|
+
enumValues: undefined;
|
|
1127
|
+
baseColumn: never;
|
|
1128
|
+
identity: undefined;
|
|
1129
|
+
generated: undefined;
|
|
1130
|
+
}, {}, {}>;
|
|
1131
|
+
isActive: drizzle_orm_pg_core.PgColumn<{
|
|
1132
|
+
name: "is_active";
|
|
1133
|
+
tableName: "shop_listings";
|
|
1134
|
+
dataType: "boolean";
|
|
1135
|
+
columnType: "PgBoolean";
|
|
1136
|
+
data: boolean;
|
|
1137
|
+
driverParam: boolean;
|
|
1138
|
+
notNull: true;
|
|
1139
|
+
hasDefault: true;
|
|
1140
|
+
isPrimaryKey: false;
|
|
1141
|
+
isAutoincrement: false;
|
|
1142
|
+
hasRuntimeDefault: false;
|
|
1143
|
+
enumValues: undefined;
|
|
1144
|
+
baseColumn: never;
|
|
1145
|
+
identity: undefined;
|
|
1146
|
+
generated: undefined;
|
|
1147
|
+
}, {}, {}>;
|
|
1148
|
+
availableFrom: drizzle_orm_pg_core.PgColumn<{
|
|
1149
|
+
name: "available_from";
|
|
1150
|
+
tableName: "shop_listings";
|
|
1151
|
+
dataType: "date";
|
|
1152
|
+
columnType: "PgTimestamp";
|
|
1153
|
+
data: Date;
|
|
1154
|
+
driverParam: string;
|
|
1155
|
+
notNull: false;
|
|
1156
|
+
hasDefault: false;
|
|
1157
|
+
isPrimaryKey: false;
|
|
1158
|
+
isAutoincrement: false;
|
|
1159
|
+
hasRuntimeDefault: false;
|
|
1160
|
+
enumValues: undefined;
|
|
1161
|
+
baseColumn: never;
|
|
1162
|
+
identity: undefined;
|
|
1163
|
+
generated: undefined;
|
|
1164
|
+
}, {}, {}>;
|
|
1165
|
+
availableUntil: drizzle_orm_pg_core.PgColumn<{
|
|
1166
|
+
name: "available_until";
|
|
1167
|
+
tableName: "shop_listings";
|
|
1168
|
+
dataType: "date";
|
|
1169
|
+
columnType: "PgTimestamp";
|
|
1170
|
+
data: Date;
|
|
1171
|
+
driverParam: string;
|
|
1172
|
+
notNull: false;
|
|
1173
|
+
hasDefault: false;
|
|
1174
|
+
isPrimaryKey: false;
|
|
1175
|
+
isAutoincrement: false;
|
|
1176
|
+
hasRuntimeDefault: false;
|
|
1177
|
+
enumValues: undefined;
|
|
1178
|
+
baseColumn: never;
|
|
1179
|
+
identity: undefined;
|
|
1180
|
+
generated: undefined;
|
|
1181
|
+
}, {}, {}>;
|
|
1182
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
1183
|
+
name: "created_at";
|
|
1184
|
+
tableName: "shop_listings";
|
|
1185
|
+
dataType: "date";
|
|
1186
|
+
columnType: "PgTimestamp";
|
|
1187
|
+
data: Date;
|
|
1188
|
+
driverParam: string;
|
|
1189
|
+
notNull: true;
|
|
1190
|
+
hasDefault: true;
|
|
1191
|
+
isPrimaryKey: false;
|
|
1192
|
+
isAutoincrement: false;
|
|
1193
|
+
hasRuntimeDefault: false;
|
|
1194
|
+
enumValues: undefined;
|
|
1195
|
+
baseColumn: never;
|
|
1196
|
+
identity: undefined;
|
|
1197
|
+
generated: undefined;
|
|
1198
|
+
}, {}, {}>;
|
|
1199
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1200
|
+
name: "updated_at";
|
|
1201
|
+
tableName: "shop_listings";
|
|
1202
|
+
dataType: "date";
|
|
1203
|
+
columnType: "PgTimestamp";
|
|
1204
|
+
data: Date;
|
|
1205
|
+
driverParam: string;
|
|
1206
|
+
notNull: false;
|
|
1207
|
+
hasDefault: true;
|
|
1208
|
+
isPrimaryKey: false;
|
|
1209
|
+
isAutoincrement: false;
|
|
1210
|
+
hasRuntimeDefault: false;
|
|
1211
|
+
enumValues: undefined;
|
|
1212
|
+
baseColumn: never;
|
|
1213
|
+
identity: undefined;
|
|
1214
|
+
generated: undefined;
|
|
1215
|
+
}, {}, {}>;
|
|
1216
|
+
};
|
|
1217
|
+
dialect: "pg";
|
|
1218
|
+
}>;
|
|
1219
|
+
declare const maps: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1220
|
+
name: "maps";
|
|
1221
|
+
schema: undefined;
|
|
1222
|
+
columns: {
|
|
1223
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1224
|
+
name: "id";
|
|
1225
|
+
tableName: "maps";
|
|
1226
|
+
dataType: "string";
|
|
1227
|
+
columnType: "PgUUID";
|
|
1228
|
+
data: string;
|
|
1229
|
+
driverParam: string;
|
|
1230
|
+
notNull: true;
|
|
1231
|
+
hasDefault: true;
|
|
1232
|
+
isPrimaryKey: true;
|
|
1233
|
+
isAutoincrement: false;
|
|
1234
|
+
hasRuntimeDefault: false;
|
|
1235
|
+
enumValues: undefined;
|
|
1236
|
+
baseColumn: never;
|
|
1237
|
+
identity: undefined;
|
|
1238
|
+
generated: undefined;
|
|
1239
|
+
}, {}, {}>;
|
|
1240
|
+
identifier: drizzle_orm_pg_core.PgColumn<{
|
|
1241
|
+
name: "identifier";
|
|
1242
|
+
tableName: "maps";
|
|
1243
|
+
dataType: "string";
|
|
1244
|
+
columnType: "PgVarchar";
|
|
1245
|
+
data: string;
|
|
1246
|
+
driverParam: string;
|
|
1247
|
+
notNull: true;
|
|
1248
|
+
hasDefault: false;
|
|
1249
|
+
isPrimaryKey: false;
|
|
1250
|
+
isAutoincrement: false;
|
|
1251
|
+
hasRuntimeDefault: false;
|
|
1252
|
+
enumValues: [string, ...string[]];
|
|
1253
|
+
baseColumn: never;
|
|
1254
|
+
identity: undefined;
|
|
1255
|
+
generated: undefined;
|
|
1256
|
+
}, {}, {
|
|
1257
|
+
length: 255;
|
|
1258
|
+
}>;
|
|
1259
|
+
displayName: drizzle_orm_pg_core.PgColumn<{
|
|
1260
|
+
name: "display_name";
|
|
1261
|
+
tableName: "maps";
|
|
1262
|
+
dataType: "string";
|
|
1263
|
+
columnType: "PgVarchar";
|
|
1264
|
+
data: string;
|
|
1265
|
+
driverParam: string;
|
|
1266
|
+
notNull: true;
|
|
1267
|
+
hasDefault: false;
|
|
1268
|
+
isPrimaryKey: false;
|
|
1269
|
+
isAutoincrement: false;
|
|
1270
|
+
hasRuntimeDefault: false;
|
|
1271
|
+
enumValues: [string, ...string[]];
|
|
1272
|
+
baseColumn: never;
|
|
1273
|
+
identity: undefined;
|
|
1274
|
+
generated: undefined;
|
|
1275
|
+
}, {}, {
|
|
1276
|
+
length: 255;
|
|
1277
|
+
}>;
|
|
1278
|
+
filePath: drizzle_orm_pg_core.PgColumn<{
|
|
1279
|
+
name: "file_path";
|
|
1280
|
+
tableName: "maps";
|
|
1281
|
+
dataType: "string";
|
|
1282
|
+
columnType: "PgVarchar";
|
|
1283
|
+
data: string;
|
|
1284
|
+
driverParam: string;
|
|
1285
|
+
notNull: true;
|
|
1286
|
+
hasDefault: false;
|
|
1287
|
+
isPrimaryKey: false;
|
|
1288
|
+
isAutoincrement: false;
|
|
1289
|
+
hasRuntimeDefault: false;
|
|
1290
|
+
enumValues: [string, ...string[]];
|
|
1291
|
+
baseColumn: never;
|
|
1292
|
+
identity: undefined;
|
|
1293
|
+
generated: undefined;
|
|
1294
|
+
}, {}, {
|
|
1295
|
+
length: 255;
|
|
1296
|
+
}>;
|
|
1297
|
+
tilesetBasePath: drizzle_orm_pg_core.PgColumn<{
|
|
1298
|
+
name: "tileset_base_path";
|
|
1299
|
+
tableName: "maps";
|
|
1300
|
+
dataType: "string";
|
|
1301
|
+
columnType: "PgVarchar";
|
|
1302
|
+
data: string;
|
|
1303
|
+
driverParam: string;
|
|
1304
|
+
notNull: true;
|
|
1305
|
+
hasDefault: true;
|
|
1306
|
+
isPrimaryKey: false;
|
|
1307
|
+
isAutoincrement: false;
|
|
1308
|
+
hasRuntimeDefault: false;
|
|
1309
|
+
enumValues: [string, ...string[]];
|
|
1310
|
+
baseColumn: never;
|
|
1311
|
+
identity: undefined;
|
|
1312
|
+
generated: undefined;
|
|
1313
|
+
}, {}, {
|
|
1314
|
+
length: 255;
|
|
1315
|
+
}>;
|
|
1316
|
+
defaultSpawnTileX: drizzle_orm_pg_core.PgColumn<{
|
|
1317
|
+
name: "default_spawn_tile_x";
|
|
1318
|
+
tableName: "maps";
|
|
1319
|
+
dataType: "number";
|
|
1320
|
+
columnType: "PgDoublePrecision";
|
|
1321
|
+
data: number;
|
|
1322
|
+
driverParam: string | number;
|
|
1323
|
+
notNull: true;
|
|
1324
|
+
hasDefault: true;
|
|
1325
|
+
isPrimaryKey: false;
|
|
1326
|
+
isAutoincrement: false;
|
|
1327
|
+
hasRuntimeDefault: false;
|
|
1328
|
+
enumValues: undefined;
|
|
1329
|
+
baseColumn: never;
|
|
1330
|
+
identity: undefined;
|
|
1331
|
+
generated: undefined;
|
|
1332
|
+
}, {}, {}>;
|
|
1333
|
+
defaultSpawnTileY: drizzle_orm_pg_core.PgColumn<{
|
|
1334
|
+
name: "default_spawn_tile_y";
|
|
1335
|
+
tableName: "maps";
|
|
1336
|
+
dataType: "number";
|
|
1337
|
+
columnType: "PgDoublePrecision";
|
|
1338
|
+
data: number;
|
|
1339
|
+
driverParam: string | number;
|
|
1340
|
+
notNull: true;
|
|
1341
|
+
hasDefault: true;
|
|
1342
|
+
isPrimaryKey: false;
|
|
1343
|
+
isAutoincrement: false;
|
|
1344
|
+
hasRuntimeDefault: false;
|
|
1345
|
+
enumValues: undefined;
|
|
1346
|
+
baseColumn: never;
|
|
1347
|
+
identity: undefined;
|
|
1348
|
+
generated: undefined;
|
|
1349
|
+
}, {}, {}>;
|
|
1350
|
+
description: drizzle_orm_pg_core.PgColumn<{
|
|
1351
|
+
name: "description";
|
|
1352
|
+
tableName: "maps";
|
|
1353
|
+
dataType: "string";
|
|
1354
|
+
columnType: "PgText";
|
|
1355
|
+
data: string;
|
|
1356
|
+
driverParam: string;
|
|
1357
|
+
notNull: false;
|
|
1358
|
+
hasDefault: false;
|
|
1359
|
+
isPrimaryKey: false;
|
|
1360
|
+
isAutoincrement: false;
|
|
1361
|
+
hasRuntimeDefault: false;
|
|
1362
|
+
enumValues: [string, ...string[]];
|
|
1363
|
+
baseColumn: never;
|
|
1364
|
+
identity: undefined;
|
|
1365
|
+
generated: undefined;
|
|
1366
|
+
}, {}, {}>;
|
|
1367
|
+
};
|
|
1368
|
+
dialect: "pg";
|
|
1369
|
+
}>;
|
|
1370
|
+
declare const mapElements: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1371
|
+
name: "map_elements";
|
|
1372
|
+
schema: undefined;
|
|
1373
|
+
columns: {
|
|
1374
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1375
|
+
name: "id";
|
|
1376
|
+
tableName: "map_elements";
|
|
1377
|
+
dataType: "string";
|
|
1378
|
+
columnType: "PgUUID";
|
|
1379
|
+
data: string;
|
|
1380
|
+
driverParam: string;
|
|
1381
|
+
notNull: true;
|
|
1382
|
+
hasDefault: true;
|
|
1383
|
+
isPrimaryKey: true;
|
|
1384
|
+
isAutoincrement: false;
|
|
1385
|
+
hasRuntimeDefault: false;
|
|
1386
|
+
enumValues: undefined;
|
|
1387
|
+
baseColumn: never;
|
|
1388
|
+
identity: undefined;
|
|
1389
|
+
generated: undefined;
|
|
1390
|
+
}, {}, {}>;
|
|
1391
|
+
mapId: drizzle_orm_pg_core.PgColumn<{
|
|
1392
|
+
name: "map_id";
|
|
1393
|
+
tableName: "map_elements";
|
|
1394
|
+
dataType: "string";
|
|
1395
|
+
columnType: "PgUUID";
|
|
1396
|
+
data: string;
|
|
1397
|
+
driverParam: string;
|
|
1398
|
+
notNull: false;
|
|
1399
|
+
hasDefault: false;
|
|
1400
|
+
isPrimaryKey: false;
|
|
1401
|
+
isAutoincrement: false;
|
|
1402
|
+
hasRuntimeDefault: false;
|
|
1403
|
+
enumValues: undefined;
|
|
1404
|
+
baseColumn: never;
|
|
1405
|
+
identity: undefined;
|
|
1406
|
+
generated: undefined;
|
|
1407
|
+
}, {}, {}>;
|
|
1408
|
+
elementSlug: drizzle_orm_pg_core.PgColumn<{
|
|
1409
|
+
name: "element_slug";
|
|
1410
|
+
tableName: "map_elements";
|
|
1411
|
+
dataType: "string";
|
|
1412
|
+
columnType: "PgVarchar";
|
|
1413
|
+
data: string;
|
|
1414
|
+
driverParam: string;
|
|
1415
|
+
notNull: true;
|
|
1416
|
+
hasDefault: false;
|
|
1417
|
+
isPrimaryKey: false;
|
|
1418
|
+
isAutoincrement: false;
|
|
1419
|
+
hasRuntimeDefault: false;
|
|
1420
|
+
enumValues: [string, ...string[]];
|
|
1421
|
+
baseColumn: never;
|
|
1422
|
+
identity: undefined;
|
|
1423
|
+
generated: undefined;
|
|
1424
|
+
}, {}, {
|
|
1425
|
+
length: 255;
|
|
1426
|
+
}>;
|
|
1427
|
+
interactionType: drizzle_orm_pg_core.PgColumn<{
|
|
1428
|
+
name: "interaction_type";
|
|
1429
|
+
tableName: "map_elements";
|
|
1430
|
+
dataType: "string";
|
|
1431
|
+
columnType: "PgEnumColumn";
|
|
1432
|
+
data: "game_entry" | "game_registry" | "info" | "teleport" | "door_in" | "door_out" | "npc_interaction" | "quest_trigger";
|
|
1433
|
+
driverParam: string;
|
|
1434
|
+
notNull: true;
|
|
1435
|
+
hasDefault: false;
|
|
1436
|
+
isPrimaryKey: false;
|
|
1437
|
+
isAutoincrement: false;
|
|
1438
|
+
hasRuntimeDefault: false;
|
|
1439
|
+
enumValues: ["game_entry", "game_registry", "info", "teleport", "door_in", "door_out", "npc_interaction", "quest_trigger"];
|
|
1440
|
+
baseColumn: never;
|
|
1441
|
+
identity: undefined;
|
|
1442
|
+
generated: undefined;
|
|
1443
|
+
}, {}, {}>;
|
|
1444
|
+
gameId: drizzle_orm_pg_core.PgColumn<{
|
|
1445
|
+
name: "game_id";
|
|
1446
|
+
tableName: "map_elements";
|
|
1447
|
+
dataType: "string";
|
|
1448
|
+
columnType: "PgUUID";
|
|
1449
|
+
data: string;
|
|
1450
|
+
driverParam: string;
|
|
1451
|
+
notNull: false;
|
|
1452
|
+
hasDefault: false;
|
|
1453
|
+
isPrimaryKey: false;
|
|
1454
|
+
isAutoincrement: false;
|
|
1455
|
+
hasRuntimeDefault: false;
|
|
1456
|
+
enumValues: undefined;
|
|
1457
|
+
baseColumn: never;
|
|
1458
|
+
identity: undefined;
|
|
1459
|
+
generated: undefined;
|
|
1460
|
+
}, {}, {}>;
|
|
1461
|
+
metadata: drizzle_orm_pg_core.PgColumn<{
|
|
1462
|
+
name: "metadata";
|
|
1463
|
+
tableName: "map_elements";
|
|
1464
|
+
dataType: "json";
|
|
1465
|
+
columnType: "PgJsonb";
|
|
1466
|
+
data: Record<string, unknown>;
|
|
1467
|
+
driverParam: unknown;
|
|
1468
|
+
notNull: false;
|
|
1469
|
+
hasDefault: true;
|
|
1470
|
+
isPrimaryKey: false;
|
|
1471
|
+
isAutoincrement: false;
|
|
1472
|
+
hasRuntimeDefault: false;
|
|
1473
|
+
enumValues: undefined;
|
|
1474
|
+
baseColumn: never;
|
|
1475
|
+
identity: undefined;
|
|
1476
|
+
generated: undefined;
|
|
1477
|
+
}, {}, {
|
|
1478
|
+
$type: Record<string, unknown>;
|
|
1479
|
+
}>;
|
|
1480
|
+
};
|
|
1481
|
+
dialect: "pg";
|
|
1482
|
+
}>;
|
|
1483
|
+
declare const mapObjects: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1484
|
+
name: "map_objects";
|
|
1485
|
+
schema: undefined;
|
|
1486
|
+
columns: {
|
|
1487
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1488
|
+
name: "id";
|
|
1489
|
+
tableName: "map_objects";
|
|
1490
|
+
dataType: "string";
|
|
1491
|
+
columnType: "PgUUID";
|
|
1492
|
+
data: string;
|
|
1493
|
+
driverParam: string;
|
|
1494
|
+
notNull: true;
|
|
1495
|
+
hasDefault: true;
|
|
1496
|
+
isPrimaryKey: true;
|
|
1497
|
+
isAutoincrement: false;
|
|
1498
|
+
hasRuntimeDefault: false;
|
|
1499
|
+
enumValues: undefined;
|
|
1500
|
+
baseColumn: never;
|
|
1501
|
+
identity: undefined;
|
|
1502
|
+
generated: undefined;
|
|
1503
|
+
}, {}, {}>;
|
|
1504
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
1505
|
+
name: "user_id";
|
|
1506
|
+
tableName: "map_objects";
|
|
1507
|
+
dataType: "string";
|
|
1508
|
+
columnType: "PgText";
|
|
1509
|
+
data: string;
|
|
1510
|
+
driverParam: string;
|
|
1511
|
+
notNull: true;
|
|
1512
|
+
hasDefault: false;
|
|
1513
|
+
isPrimaryKey: false;
|
|
1514
|
+
isAutoincrement: false;
|
|
1515
|
+
hasRuntimeDefault: false;
|
|
1516
|
+
enumValues: [string, ...string[]];
|
|
1517
|
+
baseColumn: never;
|
|
1518
|
+
identity: undefined;
|
|
1519
|
+
generated: undefined;
|
|
1520
|
+
}, {}, {}>;
|
|
1521
|
+
mapId: drizzle_orm_pg_core.PgColumn<{
|
|
1522
|
+
name: "map_id";
|
|
1523
|
+
tableName: "map_objects";
|
|
1524
|
+
dataType: "string";
|
|
1525
|
+
columnType: "PgUUID";
|
|
1526
|
+
data: string;
|
|
1527
|
+
driverParam: string;
|
|
1528
|
+
notNull: true;
|
|
1529
|
+
hasDefault: false;
|
|
1530
|
+
isPrimaryKey: false;
|
|
1531
|
+
isAutoincrement: false;
|
|
1532
|
+
hasRuntimeDefault: false;
|
|
1533
|
+
enumValues: undefined;
|
|
1534
|
+
baseColumn: never;
|
|
1535
|
+
identity: undefined;
|
|
1536
|
+
generated: undefined;
|
|
1537
|
+
}, {}, {}>;
|
|
1538
|
+
itemId: drizzle_orm_pg_core.PgColumn<{
|
|
1539
|
+
name: "item_id";
|
|
1540
|
+
tableName: "map_objects";
|
|
1541
|
+
dataType: "string";
|
|
1542
|
+
columnType: "PgUUID";
|
|
1543
|
+
data: string;
|
|
1544
|
+
driverParam: string;
|
|
1545
|
+
notNull: true;
|
|
1546
|
+
hasDefault: false;
|
|
1547
|
+
isPrimaryKey: false;
|
|
1548
|
+
isAutoincrement: false;
|
|
1549
|
+
hasRuntimeDefault: false;
|
|
1550
|
+
enumValues: undefined;
|
|
1551
|
+
baseColumn: never;
|
|
1552
|
+
identity: undefined;
|
|
1553
|
+
generated: undefined;
|
|
1554
|
+
}, {}, {}>;
|
|
1555
|
+
worldX: drizzle_orm_pg_core.PgColumn<{
|
|
1556
|
+
name: "world_x";
|
|
1557
|
+
tableName: "map_objects";
|
|
1558
|
+
dataType: "number";
|
|
1559
|
+
columnType: "PgDoublePrecision";
|
|
1560
|
+
data: number;
|
|
1561
|
+
driverParam: string | number;
|
|
1562
|
+
notNull: true;
|
|
1563
|
+
hasDefault: false;
|
|
1564
|
+
isPrimaryKey: false;
|
|
1565
|
+
isAutoincrement: false;
|
|
1566
|
+
hasRuntimeDefault: false;
|
|
1567
|
+
enumValues: undefined;
|
|
1568
|
+
baseColumn: never;
|
|
1569
|
+
identity: undefined;
|
|
1570
|
+
generated: undefined;
|
|
1571
|
+
}, {}, {}>;
|
|
1572
|
+
worldY: drizzle_orm_pg_core.PgColumn<{
|
|
1573
|
+
name: "world_y";
|
|
1574
|
+
tableName: "map_objects";
|
|
1575
|
+
dataType: "number";
|
|
1576
|
+
columnType: "PgDoublePrecision";
|
|
1577
|
+
data: number;
|
|
1578
|
+
driverParam: string | number;
|
|
1579
|
+
notNull: true;
|
|
1580
|
+
hasDefault: false;
|
|
1581
|
+
isPrimaryKey: false;
|
|
1582
|
+
isAutoincrement: false;
|
|
1583
|
+
hasRuntimeDefault: false;
|
|
1584
|
+
enumValues: undefined;
|
|
1585
|
+
baseColumn: never;
|
|
1586
|
+
identity: undefined;
|
|
1587
|
+
generated: undefined;
|
|
1588
|
+
}, {}, {}>;
|
|
1589
|
+
rotation: drizzle_orm_pg_core.PgColumn<{
|
|
1590
|
+
name: "rotation";
|
|
1591
|
+
tableName: "map_objects";
|
|
1592
|
+
dataType: "number";
|
|
1593
|
+
columnType: "PgInteger";
|
|
1594
|
+
data: number;
|
|
1595
|
+
driverParam: string | number;
|
|
1596
|
+
notNull: true;
|
|
1597
|
+
hasDefault: true;
|
|
1598
|
+
isPrimaryKey: false;
|
|
1599
|
+
isAutoincrement: false;
|
|
1600
|
+
hasRuntimeDefault: false;
|
|
1601
|
+
enumValues: undefined;
|
|
1602
|
+
baseColumn: never;
|
|
1603
|
+
identity: undefined;
|
|
1604
|
+
generated: undefined;
|
|
1605
|
+
}, {}, {}>;
|
|
1606
|
+
scale: drizzle_orm_pg_core.PgColumn<{
|
|
1607
|
+
name: "scale";
|
|
1608
|
+
tableName: "map_objects";
|
|
1609
|
+
dataType: "number";
|
|
1610
|
+
columnType: "PgDoublePrecision";
|
|
1611
|
+
data: number;
|
|
1612
|
+
driverParam: string | number;
|
|
1613
|
+
notNull: true;
|
|
1614
|
+
hasDefault: true;
|
|
1615
|
+
isPrimaryKey: false;
|
|
1616
|
+
isAutoincrement: false;
|
|
1617
|
+
hasRuntimeDefault: false;
|
|
1618
|
+
enumValues: undefined;
|
|
1619
|
+
baseColumn: never;
|
|
1620
|
+
identity: undefined;
|
|
1621
|
+
generated: undefined;
|
|
1622
|
+
}, {}, {}>;
|
|
1623
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
1624
|
+
name: "created_at";
|
|
1625
|
+
tableName: "map_objects";
|
|
1626
|
+
dataType: "date";
|
|
1627
|
+
columnType: "PgTimestamp";
|
|
1628
|
+
data: Date;
|
|
1629
|
+
driverParam: string;
|
|
1630
|
+
notNull: true;
|
|
1631
|
+
hasDefault: true;
|
|
1632
|
+
isPrimaryKey: false;
|
|
1633
|
+
isAutoincrement: false;
|
|
1634
|
+
hasRuntimeDefault: false;
|
|
1635
|
+
enumValues: undefined;
|
|
1636
|
+
baseColumn: never;
|
|
1637
|
+
identity: undefined;
|
|
1638
|
+
generated: undefined;
|
|
1639
|
+
}, {}, {}>;
|
|
1640
|
+
};
|
|
1641
|
+
dialect: "pg";
|
|
1642
|
+
}>;
|
|
1643
|
+
|
|
1644
|
+
declare const userLevels: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1645
|
+
name: "user_levels";
|
|
1646
|
+
schema: undefined;
|
|
1647
|
+
columns: {
|
|
1648
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
1649
|
+
name: "user_id";
|
|
1650
|
+
tableName: "user_levels";
|
|
1651
|
+
dataType: "string";
|
|
1652
|
+
columnType: "PgText";
|
|
1653
|
+
data: string;
|
|
1654
|
+
driverParam: string;
|
|
1655
|
+
notNull: true;
|
|
1656
|
+
hasDefault: false;
|
|
1657
|
+
isPrimaryKey: true;
|
|
1658
|
+
isAutoincrement: false;
|
|
1659
|
+
hasRuntimeDefault: false;
|
|
1660
|
+
enumValues: [string, ...string[]];
|
|
1661
|
+
baseColumn: never;
|
|
1662
|
+
identity: undefined;
|
|
1663
|
+
generated: undefined;
|
|
1664
|
+
}, {}, {}>;
|
|
1665
|
+
currentLevel: drizzle_orm_pg_core.PgColumn<{
|
|
1666
|
+
name: "current_level";
|
|
1667
|
+
tableName: "user_levels";
|
|
1668
|
+
dataType: "number";
|
|
1669
|
+
columnType: "PgInteger";
|
|
1670
|
+
data: number;
|
|
1671
|
+
driverParam: string | number;
|
|
1672
|
+
notNull: true;
|
|
1673
|
+
hasDefault: true;
|
|
1674
|
+
isPrimaryKey: false;
|
|
1675
|
+
isAutoincrement: false;
|
|
1676
|
+
hasRuntimeDefault: false;
|
|
1677
|
+
enumValues: undefined;
|
|
1678
|
+
baseColumn: never;
|
|
1679
|
+
identity: undefined;
|
|
1680
|
+
generated: undefined;
|
|
1681
|
+
}, {}, {}>;
|
|
1682
|
+
currentXp: drizzle_orm_pg_core.PgColumn<{
|
|
1683
|
+
name: "current_xp";
|
|
1684
|
+
tableName: "user_levels";
|
|
1685
|
+
dataType: "number";
|
|
1686
|
+
columnType: "PgDoublePrecision";
|
|
1687
|
+
data: number;
|
|
1688
|
+
driverParam: string | number;
|
|
1689
|
+
notNull: true;
|
|
1690
|
+
hasDefault: true;
|
|
1691
|
+
isPrimaryKey: false;
|
|
1692
|
+
isAutoincrement: false;
|
|
1693
|
+
hasRuntimeDefault: false;
|
|
1694
|
+
enumValues: undefined;
|
|
1695
|
+
baseColumn: never;
|
|
1696
|
+
identity: undefined;
|
|
1697
|
+
generated: undefined;
|
|
1698
|
+
}, {}, {}>;
|
|
1699
|
+
totalXP: drizzle_orm_pg_core.PgColumn<{
|
|
1700
|
+
name: "total_xp";
|
|
1701
|
+
tableName: "user_levels";
|
|
1702
|
+
dataType: "number";
|
|
1703
|
+
columnType: "PgDoublePrecision";
|
|
1704
|
+
data: number;
|
|
1705
|
+
driverParam: string | number;
|
|
1706
|
+
notNull: true;
|
|
1707
|
+
hasDefault: true;
|
|
1708
|
+
isPrimaryKey: false;
|
|
1709
|
+
isAutoincrement: false;
|
|
1710
|
+
hasRuntimeDefault: false;
|
|
1711
|
+
enumValues: undefined;
|
|
1712
|
+
baseColumn: never;
|
|
1713
|
+
identity: undefined;
|
|
1714
|
+
generated: undefined;
|
|
1715
|
+
}, {}, {}>;
|
|
1716
|
+
lastLevelUpAt: drizzle_orm_pg_core.PgColumn<{
|
|
1717
|
+
name: "last_level_up_at";
|
|
1718
|
+
tableName: "user_levels";
|
|
1719
|
+
dataType: "date";
|
|
1720
|
+
columnType: "PgTimestamp";
|
|
1721
|
+
data: Date;
|
|
1722
|
+
driverParam: string;
|
|
1723
|
+
notNull: false;
|
|
1724
|
+
hasDefault: false;
|
|
1725
|
+
isPrimaryKey: false;
|
|
1726
|
+
isAutoincrement: false;
|
|
1727
|
+
hasRuntimeDefault: false;
|
|
1728
|
+
enumValues: undefined;
|
|
1729
|
+
baseColumn: never;
|
|
1730
|
+
identity: undefined;
|
|
1731
|
+
generated: undefined;
|
|
1732
|
+
}, {}, {}>;
|
|
1733
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
1734
|
+
name: "created_at";
|
|
1735
|
+
tableName: "user_levels";
|
|
1736
|
+
dataType: "date";
|
|
1737
|
+
columnType: "PgTimestamp";
|
|
1738
|
+
data: Date;
|
|
1739
|
+
driverParam: string;
|
|
1740
|
+
notNull: true;
|
|
1741
|
+
hasDefault: true;
|
|
1742
|
+
isPrimaryKey: false;
|
|
1743
|
+
isAutoincrement: false;
|
|
1744
|
+
hasRuntimeDefault: false;
|
|
1745
|
+
enumValues: undefined;
|
|
1746
|
+
baseColumn: never;
|
|
1747
|
+
identity: undefined;
|
|
1748
|
+
generated: undefined;
|
|
1749
|
+
}, {}, {}>;
|
|
1750
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1751
|
+
name: "updated_at";
|
|
1752
|
+
tableName: "user_levels";
|
|
1753
|
+
dataType: "date";
|
|
1754
|
+
columnType: "PgTimestamp";
|
|
1755
|
+
data: Date;
|
|
1756
|
+
driverParam: string;
|
|
1757
|
+
notNull: false;
|
|
1758
|
+
hasDefault: true;
|
|
1759
|
+
isPrimaryKey: false;
|
|
1760
|
+
isAutoincrement: false;
|
|
1761
|
+
hasRuntimeDefault: false;
|
|
1762
|
+
enumValues: undefined;
|
|
1763
|
+
baseColumn: never;
|
|
1764
|
+
identity: undefined;
|
|
1765
|
+
generated: undefined;
|
|
1766
|
+
}, {}, {}>;
|
|
1767
|
+
};
|
|
1768
|
+
dialect: "pg";
|
|
1769
|
+
}>;
|
|
1770
|
+
declare const levelConfigs: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1771
|
+
name: "level_configs";
|
|
1772
|
+
schema: undefined;
|
|
1773
|
+
columns: {
|
|
1774
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1775
|
+
name: "id";
|
|
1776
|
+
tableName: "level_configs";
|
|
1777
|
+
dataType: "string";
|
|
1778
|
+
columnType: "PgUUID";
|
|
1779
|
+
data: string;
|
|
1780
|
+
driverParam: string;
|
|
1781
|
+
notNull: true;
|
|
1782
|
+
hasDefault: true;
|
|
1783
|
+
isPrimaryKey: true;
|
|
1784
|
+
isAutoincrement: false;
|
|
1785
|
+
hasRuntimeDefault: false;
|
|
1786
|
+
enumValues: undefined;
|
|
1787
|
+
baseColumn: never;
|
|
1788
|
+
identity: undefined;
|
|
1789
|
+
generated: undefined;
|
|
1790
|
+
}, {}, {}>;
|
|
1791
|
+
level: drizzle_orm_pg_core.PgColumn<{
|
|
1792
|
+
name: "level";
|
|
1793
|
+
tableName: "level_configs";
|
|
1794
|
+
dataType: "number";
|
|
1795
|
+
columnType: "PgInteger";
|
|
1796
|
+
data: number;
|
|
1797
|
+
driverParam: string | number;
|
|
1798
|
+
notNull: true;
|
|
1799
|
+
hasDefault: false;
|
|
1800
|
+
isPrimaryKey: false;
|
|
1801
|
+
isAutoincrement: false;
|
|
1802
|
+
hasRuntimeDefault: false;
|
|
1803
|
+
enumValues: undefined;
|
|
1804
|
+
baseColumn: never;
|
|
1805
|
+
identity: undefined;
|
|
1806
|
+
generated: undefined;
|
|
1807
|
+
}, {}, {}>;
|
|
1808
|
+
xpRequired: drizzle_orm_pg_core.PgColumn<{
|
|
1809
|
+
name: "xp_required";
|
|
1810
|
+
tableName: "level_configs";
|
|
1811
|
+
dataType: "number";
|
|
1812
|
+
columnType: "PgInteger";
|
|
1813
|
+
data: number;
|
|
1814
|
+
driverParam: string | number;
|
|
1815
|
+
notNull: true;
|
|
1816
|
+
hasDefault: false;
|
|
1817
|
+
isPrimaryKey: false;
|
|
1818
|
+
isAutoincrement: false;
|
|
1819
|
+
hasRuntimeDefault: false;
|
|
1820
|
+
enumValues: undefined;
|
|
1821
|
+
baseColumn: never;
|
|
1822
|
+
identity: undefined;
|
|
1823
|
+
generated: undefined;
|
|
1824
|
+
}, {}, {}>;
|
|
1825
|
+
creditsReward: drizzle_orm_pg_core.PgColumn<{
|
|
1826
|
+
name: "credits_reward";
|
|
1827
|
+
tableName: "level_configs";
|
|
1828
|
+
dataType: "number";
|
|
1829
|
+
columnType: "PgInteger";
|
|
1830
|
+
data: number;
|
|
1831
|
+
driverParam: string | number;
|
|
1832
|
+
notNull: true;
|
|
1833
|
+
hasDefault: true;
|
|
1834
|
+
isPrimaryKey: false;
|
|
1835
|
+
isAutoincrement: false;
|
|
1836
|
+
hasRuntimeDefault: false;
|
|
1837
|
+
enumValues: undefined;
|
|
1838
|
+
baseColumn: never;
|
|
1839
|
+
identity: undefined;
|
|
1840
|
+
generated: undefined;
|
|
1841
|
+
}, {}, {}>;
|
|
1842
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
1843
|
+
name: "created_at";
|
|
1844
|
+
tableName: "level_configs";
|
|
1845
|
+
dataType: "date";
|
|
1846
|
+
columnType: "PgTimestamp";
|
|
1847
|
+
data: Date;
|
|
1848
|
+
driverParam: string;
|
|
1849
|
+
notNull: true;
|
|
1850
|
+
hasDefault: true;
|
|
1851
|
+
isPrimaryKey: false;
|
|
1852
|
+
isAutoincrement: false;
|
|
1853
|
+
hasRuntimeDefault: false;
|
|
1854
|
+
enumValues: undefined;
|
|
1855
|
+
baseColumn: never;
|
|
1856
|
+
identity: undefined;
|
|
1857
|
+
generated: undefined;
|
|
1858
|
+
}, {}, {}>;
|
|
1859
|
+
};
|
|
1860
|
+
dialect: "pg";
|
|
1861
|
+
}>;
|
|
1862
|
+
|
|
1863
|
+
declare const spriteTemplates: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1864
|
+
name: "sprite_templates";
|
|
1865
|
+
schema: undefined;
|
|
1866
|
+
columns: {
|
|
1867
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1868
|
+
name: "id";
|
|
1869
|
+
tableName: "sprite_templates";
|
|
1870
|
+
dataType: "string";
|
|
1871
|
+
columnType: "PgUUID";
|
|
1872
|
+
data: string;
|
|
1873
|
+
driverParam: string;
|
|
1874
|
+
notNull: true;
|
|
1875
|
+
hasDefault: true;
|
|
1876
|
+
isPrimaryKey: true;
|
|
1877
|
+
isAutoincrement: false;
|
|
1878
|
+
hasRuntimeDefault: false;
|
|
1879
|
+
enumValues: undefined;
|
|
1880
|
+
baseColumn: never;
|
|
1881
|
+
identity: undefined;
|
|
1882
|
+
generated: undefined;
|
|
1883
|
+
}, {}, {}>;
|
|
1884
|
+
slug: drizzle_orm_pg_core.PgColumn<{
|
|
1885
|
+
name: "slug";
|
|
1886
|
+
tableName: "sprite_templates";
|
|
1887
|
+
dataType: "string";
|
|
1888
|
+
columnType: "PgVarchar";
|
|
1889
|
+
data: string;
|
|
1890
|
+
driverParam: string;
|
|
1891
|
+
notNull: true;
|
|
1892
|
+
hasDefault: false;
|
|
1893
|
+
isPrimaryKey: false;
|
|
1894
|
+
isAutoincrement: false;
|
|
1895
|
+
hasRuntimeDefault: false;
|
|
1896
|
+
enumValues: [string, ...string[]];
|
|
1897
|
+
baseColumn: never;
|
|
1898
|
+
identity: undefined;
|
|
1899
|
+
generated: undefined;
|
|
1900
|
+
}, {}, {
|
|
1901
|
+
length: 64;
|
|
1902
|
+
}>;
|
|
1903
|
+
url: drizzle_orm_pg_core.PgColumn<{
|
|
1904
|
+
name: "url";
|
|
1905
|
+
tableName: "sprite_templates";
|
|
1906
|
+
dataType: "string";
|
|
1907
|
+
columnType: "PgVarchar";
|
|
1908
|
+
data: string;
|
|
1909
|
+
driverParam: string;
|
|
1910
|
+
notNull: true;
|
|
1911
|
+
hasDefault: false;
|
|
1912
|
+
isPrimaryKey: false;
|
|
1913
|
+
isAutoincrement: false;
|
|
1914
|
+
hasRuntimeDefault: false;
|
|
1915
|
+
enumValues: [string, ...string[]];
|
|
1916
|
+
baseColumn: never;
|
|
1917
|
+
identity: undefined;
|
|
1918
|
+
generated: undefined;
|
|
1919
|
+
}, {}, {
|
|
1920
|
+
length: 255;
|
|
1921
|
+
}>;
|
|
1922
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
1923
|
+
name: "created_at";
|
|
1924
|
+
tableName: "sprite_templates";
|
|
1925
|
+
dataType: "date";
|
|
1926
|
+
columnType: "PgTimestamp";
|
|
1927
|
+
data: Date;
|
|
1928
|
+
driverParam: string;
|
|
1929
|
+
notNull: true;
|
|
1930
|
+
hasDefault: true;
|
|
1931
|
+
isPrimaryKey: false;
|
|
1932
|
+
isAutoincrement: false;
|
|
1933
|
+
hasRuntimeDefault: false;
|
|
1934
|
+
enumValues: undefined;
|
|
1935
|
+
baseColumn: never;
|
|
1936
|
+
identity: undefined;
|
|
1937
|
+
generated: undefined;
|
|
1938
|
+
}, {}, {}>;
|
|
1939
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
1940
|
+
name: "updated_at";
|
|
1941
|
+
tableName: "sprite_templates";
|
|
1942
|
+
dataType: "date";
|
|
1943
|
+
columnType: "PgTimestamp";
|
|
1944
|
+
data: Date;
|
|
1945
|
+
driverParam: string;
|
|
1946
|
+
notNull: true;
|
|
1947
|
+
hasDefault: true;
|
|
1948
|
+
isPrimaryKey: false;
|
|
1949
|
+
isAutoincrement: false;
|
|
1950
|
+
hasRuntimeDefault: false;
|
|
1951
|
+
enumValues: undefined;
|
|
1952
|
+
baseColumn: never;
|
|
1953
|
+
identity: undefined;
|
|
1954
|
+
generated: undefined;
|
|
1955
|
+
}, {}, {}>;
|
|
1956
|
+
};
|
|
1957
|
+
dialect: "pg";
|
|
1958
|
+
}>;
|
|
1959
|
+
declare const characterComponents: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
1960
|
+
name: "character_components";
|
|
1961
|
+
schema: undefined;
|
|
1962
|
+
columns: {
|
|
1963
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
1964
|
+
name: "id";
|
|
1965
|
+
tableName: "character_components";
|
|
1966
|
+
dataType: "string";
|
|
1967
|
+
columnType: "PgUUID";
|
|
1968
|
+
data: string;
|
|
1969
|
+
driverParam: string;
|
|
1970
|
+
notNull: true;
|
|
1971
|
+
hasDefault: true;
|
|
1972
|
+
isPrimaryKey: true;
|
|
1973
|
+
isAutoincrement: false;
|
|
1974
|
+
hasRuntimeDefault: false;
|
|
1975
|
+
enumValues: undefined;
|
|
1976
|
+
baseColumn: never;
|
|
1977
|
+
identity: undefined;
|
|
1978
|
+
generated: undefined;
|
|
1979
|
+
}, {}, {}>;
|
|
1980
|
+
componentType: drizzle_orm_pg_core.PgColumn<{
|
|
1981
|
+
name: "component_type";
|
|
1982
|
+
tableName: "character_components";
|
|
1983
|
+
dataType: "string";
|
|
1984
|
+
columnType: "PgEnumColumn";
|
|
1985
|
+
data: "accessory" | "body" | "outfit" | "hairstyle" | "eyes";
|
|
1986
|
+
driverParam: string;
|
|
1987
|
+
notNull: true;
|
|
1988
|
+
hasDefault: false;
|
|
1989
|
+
isPrimaryKey: false;
|
|
1990
|
+
isAutoincrement: false;
|
|
1991
|
+
hasRuntimeDefault: false;
|
|
1992
|
+
enumValues: ["body", "outfit", "hairstyle", "eyes", "accessory"];
|
|
1993
|
+
baseColumn: never;
|
|
1994
|
+
identity: undefined;
|
|
1995
|
+
generated: undefined;
|
|
1996
|
+
}, {}, {}>;
|
|
1997
|
+
slug: drizzle_orm_pg_core.PgColumn<{
|
|
1998
|
+
name: "slug";
|
|
1999
|
+
tableName: "character_components";
|
|
2000
|
+
dataType: "string";
|
|
2001
|
+
columnType: "PgVarchar";
|
|
2002
|
+
data: string;
|
|
2003
|
+
driverParam: string;
|
|
2004
|
+
notNull: true;
|
|
2005
|
+
hasDefault: false;
|
|
2006
|
+
isPrimaryKey: false;
|
|
2007
|
+
isAutoincrement: false;
|
|
2008
|
+
hasRuntimeDefault: false;
|
|
2009
|
+
enumValues: [string, ...string[]];
|
|
2010
|
+
baseColumn: never;
|
|
2011
|
+
identity: undefined;
|
|
2012
|
+
generated: undefined;
|
|
2013
|
+
}, {}, {
|
|
2014
|
+
length: 128;
|
|
2015
|
+
}>;
|
|
2016
|
+
displayName: drizzle_orm_pg_core.PgColumn<{
|
|
2017
|
+
name: "display_name";
|
|
2018
|
+
tableName: "character_components";
|
|
2019
|
+
dataType: "string";
|
|
2020
|
+
columnType: "PgVarchar";
|
|
2021
|
+
data: string;
|
|
2022
|
+
driverParam: string;
|
|
2023
|
+
notNull: true;
|
|
2024
|
+
hasDefault: false;
|
|
2025
|
+
isPrimaryKey: false;
|
|
2026
|
+
isAutoincrement: false;
|
|
2027
|
+
hasRuntimeDefault: false;
|
|
2028
|
+
enumValues: [string, ...string[]];
|
|
2029
|
+
baseColumn: never;
|
|
2030
|
+
identity: undefined;
|
|
2031
|
+
generated: undefined;
|
|
2032
|
+
}, {}, {
|
|
2033
|
+
length: 128;
|
|
2034
|
+
}>;
|
|
2035
|
+
slot: drizzle_orm_pg_core.PgColumn<{
|
|
2036
|
+
name: "slot";
|
|
2037
|
+
tableName: "character_components";
|
|
2038
|
+
dataType: "string";
|
|
2039
|
+
columnType: "PgVarchar";
|
|
2040
|
+
data: string;
|
|
2041
|
+
driverParam: string;
|
|
2042
|
+
notNull: true;
|
|
2043
|
+
hasDefault: false;
|
|
2044
|
+
isPrimaryKey: false;
|
|
2045
|
+
isAutoincrement: false;
|
|
2046
|
+
hasRuntimeDefault: false;
|
|
2047
|
+
enumValues: [string, ...string[]];
|
|
2048
|
+
baseColumn: never;
|
|
2049
|
+
identity: undefined;
|
|
2050
|
+
generated: undefined;
|
|
2051
|
+
}, {}, {
|
|
2052
|
+
length: 64;
|
|
2053
|
+
}>;
|
|
2054
|
+
spriteSheetId: drizzle_orm_pg_core.PgColumn<{
|
|
2055
|
+
name: "sprite_sheet_id";
|
|
2056
|
+
tableName: "character_components";
|
|
2057
|
+
dataType: "string";
|
|
2058
|
+
columnType: "PgUUID";
|
|
2059
|
+
data: string;
|
|
2060
|
+
driverParam: string;
|
|
2061
|
+
notNull: true;
|
|
2062
|
+
hasDefault: false;
|
|
2063
|
+
isPrimaryKey: false;
|
|
2064
|
+
isAutoincrement: false;
|
|
2065
|
+
hasRuntimeDefault: false;
|
|
2066
|
+
enumValues: undefined;
|
|
2067
|
+
baseColumn: never;
|
|
2068
|
+
identity: undefined;
|
|
2069
|
+
generated: undefined;
|
|
2070
|
+
}, {}, {}>;
|
|
2071
|
+
unlockLevel: drizzle_orm_pg_core.PgColumn<{
|
|
2072
|
+
name: "unlock_level";
|
|
2073
|
+
tableName: "character_components";
|
|
2074
|
+
dataType: "number";
|
|
2075
|
+
columnType: "PgInteger";
|
|
2076
|
+
data: number;
|
|
2077
|
+
driverParam: string | number;
|
|
2078
|
+
notNull: true;
|
|
2079
|
+
hasDefault: true;
|
|
2080
|
+
isPrimaryKey: false;
|
|
2081
|
+
isAutoincrement: false;
|
|
2082
|
+
hasRuntimeDefault: false;
|
|
2083
|
+
enumValues: undefined;
|
|
2084
|
+
baseColumn: never;
|
|
2085
|
+
identity: undefined;
|
|
2086
|
+
generated: undefined;
|
|
2087
|
+
}, {}, {}>;
|
|
2088
|
+
variant: drizzle_orm_pg_core.PgColumn<{
|
|
2089
|
+
name: "variant";
|
|
2090
|
+
tableName: "character_components";
|
|
2091
|
+
dataType: "number";
|
|
2092
|
+
columnType: "PgInteger";
|
|
2093
|
+
data: number;
|
|
2094
|
+
driverParam: string | number;
|
|
2095
|
+
notNull: true;
|
|
2096
|
+
hasDefault: true;
|
|
2097
|
+
isPrimaryKey: false;
|
|
2098
|
+
isAutoincrement: false;
|
|
2099
|
+
hasRuntimeDefault: false;
|
|
2100
|
+
enumValues: undefined;
|
|
2101
|
+
baseColumn: never;
|
|
2102
|
+
identity: undefined;
|
|
2103
|
+
generated: undefined;
|
|
2104
|
+
}, {}, {}>;
|
|
2105
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
2106
|
+
name: "created_at";
|
|
2107
|
+
tableName: "character_components";
|
|
2108
|
+
dataType: "date";
|
|
2109
|
+
columnType: "PgTimestamp";
|
|
2110
|
+
data: Date;
|
|
2111
|
+
driverParam: string;
|
|
2112
|
+
notNull: true;
|
|
2113
|
+
hasDefault: true;
|
|
2114
|
+
isPrimaryKey: false;
|
|
2115
|
+
isAutoincrement: false;
|
|
2116
|
+
hasRuntimeDefault: false;
|
|
2117
|
+
enumValues: undefined;
|
|
2118
|
+
baseColumn: never;
|
|
2119
|
+
identity: undefined;
|
|
2120
|
+
generated: undefined;
|
|
2121
|
+
}, {}, {}>;
|
|
2122
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
2123
|
+
name: "updated_at";
|
|
2124
|
+
tableName: "character_components";
|
|
2125
|
+
dataType: "date";
|
|
2126
|
+
columnType: "PgTimestamp";
|
|
2127
|
+
data: Date;
|
|
2128
|
+
driverParam: string;
|
|
2129
|
+
notNull: true;
|
|
2130
|
+
hasDefault: true;
|
|
2131
|
+
isPrimaryKey: false;
|
|
2132
|
+
isAutoincrement: false;
|
|
2133
|
+
hasRuntimeDefault: false;
|
|
2134
|
+
enumValues: undefined;
|
|
2135
|
+
baseColumn: never;
|
|
2136
|
+
identity: undefined;
|
|
2137
|
+
generated: undefined;
|
|
2138
|
+
}, {}, {}>;
|
|
2139
|
+
};
|
|
2140
|
+
dialect: "pg";
|
|
2141
|
+
}>;
|
|
2142
|
+
declare const playerCharacters: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
2143
|
+
name: "player_characters";
|
|
2144
|
+
schema: undefined;
|
|
2145
|
+
columns: {
|
|
2146
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
2147
|
+
name: "id";
|
|
2148
|
+
tableName: "player_characters";
|
|
2149
|
+
dataType: "string";
|
|
2150
|
+
columnType: "PgUUID";
|
|
2151
|
+
data: string;
|
|
2152
|
+
driverParam: string;
|
|
2153
|
+
notNull: true;
|
|
2154
|
+
hasDefault: true;
|
|
2155
|
+
isPrimaryKey: true;
|
|
2156
|
+
isAutoincrement: false;
|
|
2157
|
+
hasRuntimeDefault: false;
|
|
2158
|
+
enumValues: undefined;
|
|
2159
|
+
baseColumn: never;
|
|
2160
|
+
identity: undefined;
|
|
2161
|
+
generated: undefined;
|
|
2162
|
+
}, {}, {}>;
|
|
2163
|
+
userId: drizzle_orm_pg_core.PgColumn<{
|
|
2164
|
+
name: "user_id";
|
|
2165
|
+
tableName: "player_characters";
|
|
2166
|
+
dataType: "string";
|
|
2167
|
+
columnType: "PgText";
|
|
2168
|
+
data: string;
|
|
2169
|
+
driverParam: string;
|
|
2170
|
+
notNull: true;
|
|
2171
|
+
hasDefault: false;
|
|
2172
|
+
isPrimaryKey: false;
|
|
2173
|
+
isAutoincrement: false;
|
|
2174
|
+
hasRuntimeDefault: false;
|
|
2175
|
+
enumValues: [string, ...string[]];
|
|
2176
|
+
baseColumn: never;
|
|
2177
|
+
identity: undefined;
|
|
2178
|
+
generated: undefined;
|
|
2179
|
+
}, {}, {}>;
|
|
2180
|
+
bodyComponentId: drizzle_orm_pg_core.PgColumn<{
|
|
2181
|
+
name: "body_component_id";
|
|
2182
|
+
tableName: "player_characters";
|
|
2183
|
+
dataType: "string";
|
|
2184
|
+
columnType: "PgUUID";
|
|
2185
|
+
data: string;
|
|
2186
|
+
driverParam: string;
|
|
2187
|
+
notNull: true;
|
|
2188
|
+
hasDefault: false;
|
|
2189
|
+
isPrimaryKey: false;
|
|
2190
|
+
isAutoincrement: false;
|
|
2191
|
+
hasRuntimeDefault: false;
|
|
2192
|
+
enumValues: undefined;
|
|
2193
|
+
baseColumn: never;
|
|
2194
|
+
identity: undefined;
|
|
2195
|
+
generated: undefined;
|
|
2196
|
+
}, {}, {}>;
|
|
2197
|
+
eyesComponentId: drizzle_orm_pg_core.PgColumn<{
|
|
2198
|
+
name: "eyes_component_id";
|
|
2199
|
+
tableName: "player_characters";
|
|
2200
|
+
dataType: "string";
|
|
2201
|
+
columnType: "PgUUID";
|
|
2202
|
+
data: string;
|
|
2203
|
+
driverParam: string;
|
|
2204
|
+
notNull: true;
|
|
2205
|
+
hasDefault: false;
|
|
2206
|
+
isPrimaryKey: false;
|
|
2207
|
+
isAutoincrement: false;
|
|
2208
|
+
hasRuntimeDefault: false;
|
|
2209
|
+
enumValues: undefined;
|
|
2210
|
+
baseColumn: never;
|
|
2211
|
+
identity: undefined;
|
|
2212
|
+
generated: undefined;
|
|
2213
|
+
}, {}, {}>;
|
|
2214
|
+
hairstyleComponentId: drizzle_orm_pg_core.PgColumn<{
|
|
2215
|
+
name: "hairstyle_component_id";
|
|
2216
|
+
tableName: "player_characters";
|
|
2217
|
+
dataType: "string";
|
|
2218
|
+
columnType: "PgUUID";
|
|
2219
|
+
data: string;
|
|
2220
|
+
driverParam: string;
|
|
2221
|
+
notNull: true;
|
|
2222
|
+
hasDefault: false;
|
|
2223
|
+
isPrimaryKey: false;
|
|
2224
|
+
isAutoincrement: false;
|
|
2225
|
+
hasRuntimeDefault: false;
|
|
2226
|
+
enumValues: undefined;
|
|
2227
|
+
baseColumn: never;
|
|
2228
|
+
identity: undefined;
|
|
2229
|
+
generated: undefined;
|
|
2230
|
+
}, {}, {}>;
|
|
2231
|
+
outfitComponentId: drizzle_orm_pg_core.PgColumn<{
|
|
2232
|
+
name: "outfit_component_id";
|
|
2233
|
+
tableName: "player_characters";
|
|
2234
|
+
dataType: "string";
|
|
2235
|
+
columnType: "PgUUID";
|
|
2236
|
+
data: string;
|
|
2237
|
+
driverParam: string;
|
|
2238
|
+
notNull: true;
|
|
2239
|
+
hasDefault: false;
|
|
2240
|
+
isPrimaryKey: false;
|
|
2241
|
+
isAutoincrement: false;
|
|
2242
|
+
hasRuntimeDefault: false;
|
|
2243
|
+
enumValues: undefined;
|
|
2244
|
+
baseColumn: never;
|
|
2245
|
+
identity: undefined;
|
|
2246
|
+
generated: undefined;
|
|
2247
|
+
}, {}, {}>;
|
|
2248
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
2249
|
+
name: "created_at";
|
|
2250
|
+
tableName: "player_characters";
|
|
2251
|
+
dataType: "date";
|
|
2252
|
+
columnType: "PgTimestamp";
|
|
2253
|
+
data: Date;
|
|
2254
|
+
driverParam: string;
|
|
2255
|
+
notNull: true;
|
|
2256
|
+
hasDefault: true;
|
|
2257
|
+
isPrimaryKey: false;
|
|
2258
|
+
isAutoincrement: false;
|
|
2259
|
+
hasRuntimeDefault: false;
|
|
2260
|
+
enumValues: undefined;
|
|
2261
|
+
baseColumn: never;
|
|
2262
|
+
identity: undefined;
|
|
2263
|
+
generated: undefined;
|
|
2264
|
+
}, {}, {}>;
|
|
2265
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
2266
|
+
name: "updated_at";
|
|
2267
|
+
tableName: "player_characters";
|
|
2268
|
+
dataType: "date";
|
|
2269
|
+
columnType: "PgTimestamp";
|
|
2270
|
+
data: Date;
|
|
2271
|
+
driverParam: string;
|
|
2272
|
+
notNull: true;
|
|
2273
|
+
hasDefault: true;
|
|
2274
|
+
isPrimaryKey: false;
|
|
2275
|
+
isAutoincrement: false;
|
|
2276
|
+
hasRuntimeDefault: false;
|
|
2277
|
+
enumValues: undefined;
|
|
2278
|
+
baseColumn: never;
|
|
2279
|
+
identity: undefined;
|
|
2280
|
+
generated: undefined;
|
|
2281
|
+
}, {}, {}>;
|
|
2282
|
+
};
|
|
2283
|
+
dialect: "pg";
|
|
2284
|
+
}>;
|
|
2285
|
+
declare const playerCharacterAccessories: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
2286
|
+
name: "player_character_accessories";
|
|
2287
|
+
schema: undefined;
|
|
2288
|
+
columns: {
|
|
2289
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
2290
|
+
name: "id";
|
|
2291
|
+
tableName: "player_character_accessories";
|
|
2292
|
+
dataType: "string";
|
|
2293
|
+
columnType: "PgUUID";
|
|
2294
|
+
data: string;
|
|
2295
|
+
driverParam: string;
|
|
2296
|
+
notNull: true;
|
|
2297
|
+
hasDefault: true;
|
|
2298
|
+
isPrimaryKey: true;
|
|
2299
|
+
isAutoincrement: false;
|
|
2300
|
+
hasRuntimeDefault: false;
|
|
2301
|
+
enumValues: undefined;
|
|
2302
|
+
baseColumn: never;
|
|
2303
|
+
identity: undefined;
|
|
2304
|
+
generated: undefined;
|
|
2305
|
+
}, {}, {}>;
|
|
2306
|
+
playerCharacterId: drizzle_orm_pg_core.PgColumn<{
|
|
2307
|
+
name: "player_character_id";
|
|
2308
|
+
tableName: "player_character_accessories";
|
|
2309
|
+
dataType: "string";
|
|
2310
|
+
columnType: "PgUUID";
|
|
2311
|
+
data: string;
|
|
2312
|
+
driverParam: string;
|
|
2313
|
+
notNull: true;
|
|
2314
|
+
hasDefault: false;
|
|
2315
|
+
isPrimaryKey: false;
|
|
2316
|
+
isAutoincrement: false;
|
|
2317
|
+
hasRuntimeDefault: false;
|
|
2318
|
+
enumValues: undefined;
|
|
2319
|
+
baseColumn: never;
|
|
2320
|
+
identity: undefined;
|
|
2321
|
+
generated: undefined;
|
|
2322
|
+
}, {}, {}>;
|
|
2323
|
+
accessoryComponentId: drizzle_orm_pg_core.PgColumn<{
|
|
2324
|
+
name: "accessory_component_id";
|
|
2325
|
+
tableName: "player_character_accessories";
|
|
2326
|
+
dataType: "string";
|
|
2327
|
+
columnType: "PgUUID";
|
|
2328
|
+
data: string;
|
|
2329
|
+
driverParam: string;
|
|
2330
|
+
notNull: true;
|
|
2331
|
+
hasDefault: false;
|
|
2332
|
+
isPrimaryKey: false;
|
|
2333
|
+
isAutoincrement: false;
|
|
2334
|
+
hasRuntimeDefault: false;
|
|
2335
|
+
enumValues: undefined;
|
|
2336
|
+
baseColumn: never;
|
|
2337
|
+
identity: undefined;
|
|
2338
|
+
generated: undefined;
|
|
2339
|
+
}, {}, {}>;
|
|
2340
|
+
slot: drizzle_orm_pg_core.PgColumn<{
|
|
2341
|
+
name: "slot";
|
|
2342
|
+
tableName: "player_character_accessories";
|
|
2343
|
+
dataType: "string";
|
|
2344
|
+
columnType: "PgVarchar";
|
|
2345
|
+
data: string;
|
|
2346
|
+
driverParam: string;
|
|
2347
|
+
notNull: true;
|
|
2348
|
+
hasDefault: false;
|
|
2349
|
+
isPrimaryKey: false;
|
|
2350
|
+
isAutoincrement: false;
|
|
2351
|
+
hasRuntimeDefault: false;
|
|
2352
|
+
enumValues: [string, ...string[]];
|
|
2353
|
+
baseColumn: never;
|
|
2354
|
+
identity: undefined;
|
|
2355
|
+
generated: undefined;
|
|
2356
|
+
}, {}, {
|
|
2357
|
+
length: 64;
|
|
2358
|
+
}>;
|
|
2359
|
+
equippedAt: drizzle_orm_pg_core.PgColumn<{
|
|
2360
|
+
name: "equipped_at";
|
|
2361
|
+
tableName: "player_character_accessories";
|
|
2362
|
+
dataType: "date";
|
|
2363
|
+
columnType: "PgTimestamp";
|
|
2364
|
+
data: Date;
|
|
2365
|
+
driverParam: string;
|
|
2366
|
+
notNull: true;
|
|
2367
|
+
hasDefault: true;
|
|
2368
|
+
isPrimaryKey: false;
|
|
2369
|
+
isAutoincrement: false;
|
|
2370
|
+
hasRuntimeDefault: false;
|
|
2371
|
+
enumValues: undefined;
|
|
2372
|
+
baseColumn: never;
|
|
2373
|
+
identity: undefined;
|
|
2374
|
+
generated: undefined;
|
|
2375
|
+
}, {}, {}>;
|
|
2376
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
2377
|
+
name: "updated_at";
|
|
2378
|
+
tableName: "player_character_accessories";
|
|
2379
|
+
dataType: "date";
|
|
2380
|
+
columnType: "PgTimestamp";
|
|
2381
|
+
data: Date;
|
|
2382
|
+
driverParam: string;
|
|
2383
|
+
notNull: true;
|
|
2384
|
+
hasDefault: true;
|
|
2385
|
+
isPrimaryKey: false;
|
|
2386
|
+
isAutoincrement: false;
|
|
2387
|
+
hasRuntimeDefault: false;
|
|
2388
|
+
enumValues: undefined;
|
|
2389
|
+
baseColumn: never;
|
|
2390
|
+
identity: undefined;
|
|
2391
|
+
generated: undefined;
|
|
2392
|
+
}, {}, {}>;
|
|
2393
|
+
};
|
|
2394
|
+
dialect: "pg";
|
|
2395
|
+
}>;
|
|
2396
|
+
|
|
2397
|
+
declare const achievementIntervalEnum: drizzle_orm_pg_core.PgEnum<["daily", "weekly"]>;
|
|
2398
|
+
declare const achievements: drizzle_orm_pg_core.PgTableWithColumns<{
|
|
2399
|
+
name: "achievements";
|
|
2400
|
+
schema: undefined;
|
|
2401
|
+
columns: {
|
|
2402
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
2403
|
+
name: "id";
|
|
2404
|
+
tableName: "achievements";
|
|
2405
|
+
dataType: "string";
|
|
2406
|
+
columnType: "PgVarchar";
|
|
2407
|
+
data: string;
|
|
2408
|
+
driverParam: string;
|
|
2409
|
+
notNull: true;
|
|
2410
|
+
hasDefault: false;
|
|
2411
|
+
isPrimaryKey: true;
|
|
2412
|
+
isAutoincrement: false;
|
|
2413
|
+
hasRuntimeDefault: false;
|
|
2414
|
+
enumValues: [string, ...string[]];
|
|
2415
|
+
baseColumn: never;
|
|
2416
|
+
identity: undefined;
|
|
2417
|
+
generated: undefined;
|
|
2418
|
+
}, {}, {
|
|
2419
|
+
length: 255;
|
|
2420
|
+
}>;
|
|
2421
|
+
title: drizzle_orm_pg_core.PgColumn<{
|
|
2422
|
+
name: "title";
|
|
2423
|
+
tableName: "achievements";
|
|
2424
|
+
dataType: "string";
|
|
2425
|
+
columnType: "PgVarchar";
|
|
2426
|
+
data: string;
|
|
2427
|
+
driverParam: string;
|
|
2428
|
+
notNull: true;
|
|
2429
|
+
hasDefault: false;
|
|
2430
|
+
isPrimaryKey: false;
|
|
2431
|
+
isAutoincrement: false;
|
|
2432
|
+
hasRuntimeDefault: false;
|
|
2433
|
+
enumValues: [string, ...string[]];
|
|
2434
|
+
baseColumn: never;
|
|
2435
|
+
identity: undefined;
|
|
2436
|
+
generated: undefined;
|
|
2437
|
+
}, {}, {
|
|
2438
|
+
length: 255;
|
|
2439
|
+
}>;
|
|
2440
|
+
description: drizzle_orm_pg_core.PgColumn<{
|
|
2441
|
+
name: "description";
|
|
2442
|
+
tableName: "achievements";
|
|
2443
|
+
dataType: "string";
|
|
2444
|
+
columnType: "PgText";
|
|
2445
|
+
data: string;
|
|
2446
|
+
driverParam: string;
|
|
2447
|
+
notNull: false;
|
|
2448
|
+
hasDefault: false;
|
|
2449
|
+
isPrimaryKey: false;
|
|
2450
|
+
isAutoincrement: false;
|
|
2451
|
+
hasRuntimeDefault: false;
|
|
2452
|
+
enumValues: [string, ...string[]];
|
|
2453
|
+
baseColumn: never;
|
|
2454
|
+
identity: undefined;
|
|
2455
|
+
generated: undefined;
|
|
2456
|
+
}, {}, {}>;
|
|
2457
|
+
intervalType: drizzle_orm_pg_core.PgColumn<{
|
|
2458
|
+
name: "interval_type";
|
|
2459
|
+
tableName: "achievements";
|
|
2460
|
+
dataType: "string";
|
|
2461
|
+
columnType: "PgEnumColumn";
|
|
2462
|
+
data: "daily" | "weekly";
|
|
2463
|
+
driverParam: string;
|
|
2464
|
+
notNull: true;
|
|
2465
|
+
hasDefault: false;
|
|
2466
|
+
isPrimaryKey: false;
|
|
2467
|
+
isAutoincrement: false;
|
|
2468
|
+
hasRuntimeDefault: false;
|
|
2469
|
+
enumValues: ["daily", "weekly"];
|
|
2470
|
+
baseColumn: never;
|
|
2471
|
+
identity: undefined;
|
|
2472
|
+
generated: undefined;
|
|
2473
|
+
}, {}, {}>;
|
|
2474
|
+
rewardCredits: drizzle_orm_pg_core.PgColumn<{
|
|
2475
|
+
name: "reward_credits";
|
|
2476
|
+
tableName: "achievements";
|
|
2477
|
+
dataType: "number";
|
|
2478
|
+
columnType: "PgInteger";
|
|
2479
|
+
data: number;
|
|
2480
|
+
driverParam: string | number;
|
|
2481
|
+
notNull: true;
|
|
2482
|
+
hasDefault: true;
|
|
2483
|
+
isPrimaryKey: false;
|
|
2484
|
+
isAutoincrement: false;
|
|
2485
|
+
hasRuntimeDefault: false;
|
|
2486
|
+
enumValues: undefined;
|
|
2487
|
+
baseColumn: never;
|
|
2488
|
+
identity: undefined;
|
|
2489
|
+
generated: undefined;
|
|
2490
|
+
}, {}, {}>;
|
|
2491
|
+
limitPerInterval: drizzle_orm_pg_core.PgColumn<{
|
|
2492
|
+
name: "limit_per_interval";
|
|
2493
|
+
tableName: "achievements";
|
|
2494
|
+
dataType: "number";
|
|
2495
|
+
columnType: "PgInteger";
|
|
2496
|
+
data: number;
|
|
2497
|
+
driverParam: string | number;
|
|
2498
|
+
notNull: true;
|
|
2499
|
+
hasDefault: true;
|
|
2500
|
+
isPrimaryKey: false;
|
|
2501
|
+
isAutoincrement: false;
|
|
2502
|
+
hasRuntimeDefault: false;
|
|
2503
|
+
enumValues: undefined;
|
|
2504
|
+
baseColumn: never;
|
|
2505
|
+
identity: undefined;
|
|
2506
|
+
generated: undefined;
|
|
2507
|
+
}, {}, {}>;
|
|
2508
|
+
completionType: drizzle_orm_pg_core.PgColumn<{
|
|
2509
|
+
name: "completion_type";
|
|
2510
|
+
tableName: "achievements";
|
|
2511
|
+
dataType: "string";
|
|
2512
|
+
columnType: "PgVarchar";
|
|
2513
|
+
data: string;
|
|
2514
|
+
driverParam: string;
|
|
2515
|
+
notNull: true;
|
|
2516
|
+
hasDefault: false;
|
|
2517
|
+
isPrimaryKey: false;
|
|
2518
|
+
isAutoincrement: false;
|
|
2519
|
+
hasRuntimeDefault: false;
|
|
2520
|
+
enumValues: [string, ...string[]];
|
|
2521
|
+
baseColumn: never;
|
|
2522
|
+
identity: undefined;
|
|
2523
|
+
generated: undefined;
|
|
2524
|
+
}, {}, {
|
|
2525
|
+
length: 50;
|
|
2526
|
+
}>;
|
|
2527
|
+
completionConfig: drizzle_orm_pg_core.PgColumn<{
|
|
2528
|
+
name: "completion_config";
|
|
2529
|
+
tableName: "achievements";
|
|
2530
|
+
dataType: "json";
|
|
2531
|
+
columnType: "PgJsonb";
|
|
2532
|
+
data: unknown;
|
|
2533
|
+
driverParam: unknown;
|
|
2534
|
+
notNull: true;
|
|
2535
|
+
hasDefault: true;
|
|
2536
|
+
isPrimaryKey: false;
|
|
2537
|
+
isAutoincrement: false;
|
|
2538
|
+
hasRuntimeDefault: false;
|
|
2539
|
+
enumValues: undefined;
|
|
2540
|
+
baseColumn: never;
|
|
2541
|
+
identity: undefined;
|
|
2542
|
+
generated: undefined;
|
|
2543
|
+
}, {}, {}>;
|
|
2544
|
+
scope: drizzle_orm_pg_core.PgColumn<{
|
|
2545
|
+
name: "scope";
|
|
2546
|
+
tableName: "achievements";
|
|
2547
|
+
dataType: "json";
|
|
2548
|
+
columnType: "PgJsonb";
|
|
2549
|
+
data: unknown;
|
|
2550
|
+
driverParam: unknown;
|
|
2551
|
+
notNull: true;
|
|
2552
|
+
hasDefault: true;
|
|
2553
|
+
isPrimaryKey: false;
|
|
2554
|
+
isAutoincrement: false;
|
|
2555
|
+
hasRuntimeDefault: false;
|
|
2556
|
+
enumValues: undefined;
|
|
2557
|
+
baseColumn: never;
|
|
2558
|
+
identity: undefined;
|
|
2559
|
+
generated: undefined;
|
|
2560
|
+
}, {}, {}>;
|
|
2561
|
+
active: drizzle_orm_pg_core.PgColumn<{
|
|
2562
|
+
name: "active";
|
|
2563
|
+
tableName: "achievements";
|
|
2564
|
+
dataType: "boolean";
|
|
2565
|
+
columnType: "PgBoolean";
|
|
2566
|
+
data: boolean;
|
|
2567
|
+
driverParam: boolean;
|
|
2568
|
+
notNull: true;
|
|
2569
|
+
hasDefault: true;
|
|
2570
|
+
isPrimaryKey: false;
|
|
2571
|
+
isAutoincrement: false;
|
|
2572
|
+
hasRuntimeDefault: false;
|
|
2573
|
+
enumValues: undefined;
|
|
2574
|
+
baseColumn: never;
|
|
2575
|
+
identity: undefined;
|
|
2576
|
+
generated: undefined;
|
|
2577
|
+
}, {}, {}>;
|
|
2578
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
2579
|
+
name: "created_at";
|
|
2580
|
+
tableName: "achievements";
|
|
2581
|
+
dataType: "date";
|
|
2582
|
+
columnType: "PgTimestamp";
|
|
2583
|
+
data: Date;
|
|
2584
|
+
driverParam: string;
|
|
2585
|
+
notNull: false;
|
|
2586
|
+
hasDefault: true;
|
|
2587
|
+
isPrimaryKey: false;
|
|
2588
|
+
isAutoincrement: false;
|
|
2589
|
+
hasRuntimeDefault: false;
|
|
2590
|
+
enumValues: undefined;
|
|
2591
|
+
baseColumn: never;
|
|
2592
|
+
identity: undefined;
|
|
2593
|
+
generated: undefined;
|
|
2594
|
+
}, {}, {}>;
|
|
2595
|
+
updatedAt: drizzle_orm_pg_core.PgColumn<{
|
|
2596
|
+
name: "updated_at";
|
|
2597
|
+
tableName: "achievements";
|
|
2598
|
+
dataType: "date";
|
|
2599
|
+
columnType: "PgTimestamp";
|
|
2600
|
+
data: Date;
|
|
2601
|
+
driverParam: string;
|
|
2602
|
+
notNull: false;
|
|
2603
|
+
hasDefault: true;
|
|
2604
|
+
isPrimaryKey: false;
|
|
2605
|
+
isAutoincrement: false;
|
|
2606
|
+
hasRuntimeDefault: false;
|
|
2607
|
+
enumValues: undefined;
|
|
2608
|
+
baseColumn: never;
|
|
2609
|
+
identity: undefined;
|
|
2610
|
+
generated: undefined;
|
|
2611
|
+
}, {}, {}>;
|
|
2612
|
+
};
|
|
2613
|
+
dialect: "pg";
|
|
2614
|
+
}>;
|
|
2615
|
+
declare const DeveloperStatusResponseSchema: z.ZodObject<{
|
|
2616
|
+
status: z.ZodEnum<["none", "pending", "approved"]>;
|
|
2617
|
+
}, "strip", z.ZodTypeAny, {
|
|
2618
|
+
status: "none" | "pending" | "approved";
|
|
2619
|
+
}, {
|
|
2620
|
+
status: "none" | "pending" | "approved";
|
|
2621
|
+
}>;
|
|
2622
|
+
declare const UpsertGameMetadataSchema: z.ZodEffects<z.ZodObject<{
|
|
2623
|
+
displayName: z.ZodString;
|
|
2624
|
+
mapElementId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
2625
|
+
platform: z.ZodEnum<["web", "godot", "unity"]>;
|
|
2626
|
+
metadata: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
2627
|
+
gameType: z.ZodDefault<z.ZodOptional<z.ZodEnum<["hosted", "external"]>>>;
|
|
2628
|
+
externalUrl: z.ZodOptional<z.ZodString>;
|
|
2629
|
+
}, "strip", z.ZodTypeAny, {
|
|
2630
|
+
displayName: string;
|
|
2631
|
+
gameType: "hosted" | "external";
|
|
2632
|
+
platform: "web" | "godot" | "unity";
|
|
2633
|
+
metadata: Record<string, unknown>;
|
|
2634
|
+
externalUrl?: string | undefined;
|
|
2635
|
+
mapElementId?: string | null | undefined;
|
|
2636
|
+
}, {
|
|
2637
|
+
displayName: string;
|
|
2638
|
+
platform: "web" | "godot" | "unity";
|
|
2639
|
+
gameType?: "hosted" | "external" | undefined;
|
|
2640
|
+
externalUrl?: string | undefined;
|
|
2641
|
+
mapElementId?: string | null | undefined;
|
|
2642
|
+
metadata?: Record<string, unknown> | undefined;
|
|
2643
|
+
}>, {
|
|
2644
|
+
displayName: string;
|
|
2645
|
+
gameType: "hosted" | "external";
|
|
2646
|
+
platform: "web" | "godot" | "unity";
|
|
2647
|
+
metadata: Record<string, unknown>;
|
|
2648
|
+
externalUrl?: string | undefined;
|
|
2649
|
+
mapElementId?: string | null | undefined;
|
|
2650
|
+
}, {
|
|
2651
|
+
displayName: string;
|
|
2652
|
+
platform: "web" | "godot" | "unity";
|
|
2653
|
+
gameType?: "hosted" | "external" | undefined;
|
|
2654
|
+
externalUrl?: string | undefined;
|
|
2655
|
+
mapElementId?: string | null | undefined;
|
|
2656
|
+
metadata?: Record<string, unknown> | undefined;
|
|
2657
|
+
}>;
|
|
2658
|
+
declare const ManifestV1Schema: z.ZodObject<{
|
|
2659
|
+
version: z.ZodString;
|
|
2660
|
+
bootMode: z.ZodEnum<["iframe", "module"]>;
|
|
2661
|
+
entryPoint: z.ZodEffects<z.ZodString, string, string>;
|
|
2662
|
+
/**
|
|
2663
|
+
* An array of relative paths to CSS stylesheets.
|
|
2664
|
+
* Currently, this property is ONLY utilized by the 'module' boot mode
|
|
2665
|
+
* (`apps/cademy/src/lib/loader/boot-module.ts`) to load external
|
|
2666
|
+
* stylesheets into the game's shadow DOM.
|
|
2667
|
+
*
|
|
2668
|
+
* This property is under review for potential deprecation and removal.
|
|
2669
|
+
* The 'module' boot mode itself has not yet seen significant adoption
|
|
2670
|
+
* or clear use-cases, and if support for module loading is removed in
|
|
2671
|
+
* the future, this 'styles' property would become obsolete.
|
|
2672
|
+
*
|
|
2673
|
+
* If module-based games need styling, alternative approaches might involve
|
|
2674
|
+
* bundling CSS within their JavaScript or managing style injection internally.
|
|
2675
|
+
*/
|
|
2676
|
+
styles: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodString, "many">>, string[] | undefined, string[] | undefined>;
|
|
2677
|
+
/**
|
|
2678
|
+
* Specifies the game or development platform.
|
|
2679
|
+
* Current values include 'web', 'godot', and 'unity'.
|
|
2680
|
+
* The default in the database is 'web'.
|
|
2681
|
+
*
|
|
2682
|
+
* IMPORTANT: This property is NOT CURRENTLY USED by the core loader
|
|
2683
|
+
* or runtime systems in any functional way. It is present in the manifest
|
|
2684
|
+
* but does not drive any specific behavior in `boot-iframe.ts` or
|
|
2685
|
+
* `boot-module.ts` beyond being a piece of metadata.
|
|
2686
|
+
*
|
|
2687
|
+
* Potential Future Uses (Speculative):
|
|
2688
|
+
* - Analytics: Could be used to gather stats on platform popularity/usage.
|
|
2689
|
+
* - Developer Portal: Might inform UI/UX in the dev portal, e.g., showing
|
|
2690
|
+
* platform-specific guides or settings.
|
|
2691
|
+
* - Loader Optimizations: In the future, the loader could potentially use this
|
|
2692
|
+
* to apply platform-specific loading strategies or workarounds, though this
|
|
2693
|
+
* is unlikely given the current generic boot process.
|
|
2694
|
+
* - Asset Pipeline: Could hint to future asset pipeline tools about expected
|
|
2695
|
+
* project structures or build artifacts for different platforms.
|
|
2696
|
+
*
|
|
2697
|
+
* The field is intentionally kept somewhat generic. If finer-grained
|
|
2698
|
+
* distinctions are ever needed (e.g., specific web frameworks like 'phaser',
|
|
2699
|
+
* 'three'), this schema might need to be revisited or a separate
|
|
2700
|
+
* 'platformVersion' or 'framework' field could be added.
|
|
2701
|
+
*/
|
|
2702
|
+
platform: z.ZodEnum<["web", "godot", "unity"]>;
|
|
2703
|
+
createdAt: z.ZodString;
|
|
2704
|
+
}, "strip", z.ZodTypeAny, {
|
|
2705
|
+
createdAt: string;
|
|
2706
|
+
version: string;
|
|
2707
|
+
platform: "web" | "godot" | "unity";
|
|
2708
|
+
bootMode: "iframe" | "module";
|
|
2709
|
+
entryPoint: string;
|
|
2710
|
+
styles?: string[] | undefined;
|
|
2711
|
+
}, {
|
|
2712
|
+
createdAt: string;
|
|
2713
|
+
version: string;
|
|
2714
|
+
platform: "web" | "godot" | "unity";
|
|
2715
|
+
bootMode: "iframe" | "module";
|
|
2716
|
+
entryPoint: string;
|
|
2717
|
+
styles?: string[] | undefined;
|
|
2718
|
+
}>;
|
|
2719
|
+
declare const InsertItemSchema: drizzle_zod.BuildSchema<"insert", {
|
|
2720
|
+
id: drizzle_orm_pg_core.PgColumn<{
|
|
2721
|
+
name: "id";
|
|
2722
|
+
tableName: "items";
|
|
2723
|
+
dataType: "string";
|
|
2724
|
+
columnType: "PgUUID";
|
|
2725
|
+
data: string;
|
|
2726
|
+
driverParam: string;
|
|
2727
|
+
notNull: true;
|
|
2728
|
+
hasDefault: true;
|
|
2729
|
+
isPrimaryKey: true;
|
|
2730
|
+
isAutoincrement: false;
|
|
2731
|
+
hasRuntimeDefault: false;
|
|
2732
|
+
enumValues: undefined;
|
|
2733
|
+
baseColumn: never;
|
|
2734
|
+
identity: undefined;
|
|
2735
|
+
generated: undefined;
|
|
2736
|
+
}, {}, {}>;
|
|
2737
|
+
slug: drizzle_orm_pg_core.PgColumn<{
|
|
2738
|
+
name: "slug";
|
|
2739
|
+
tableName: "items";
|
|
2740
|
+
dataType: "string";
|
|
2741
|
+
columnType: "PgText";
|
|
2742
|
+
data: string;
|
|
2743
|
+
driverParam: string;
|
|
2744
|
+
notNull: true;
|
|
2745
|
+
hasDefault: false;
|
|
2746
|
+
isPrimaryKey: false;
|
|
2747
|
+
isAutoincrement: false;
|
|
2748
|
+
hasRuntimeDefault: false;
|
|
2749
|
+
enumValues: [string, ...string[]];
|
|
2750
|
+
baseColumn: never;
|
|
2751
|
+
identity: undefined;
|
|
2752
|
+
generated: undefined;
|
|
2753
|
+
}, {}, {}>;
|
|
2754
|
+
gameId: drizzle_orm_pg_core.PgColumn<{
|
|
2755
|
+
name: "game_id";
|
|
2756
|
+
tableName: "items";
|
|
2757
|
+
dataType: "string";
|
|
2758
|
+
columnType: "PgUUID";
|
|
2759
|
+
data: string;
|
|
2760
|
+
driverParam: string;
|
|
2761
|
+
notNull: false;
|
|
2762
|
+
hasDefault: false;
|
|
2763
|
+
isPrimaryKey: false;
|
|
2764
|
+
isAutoincrement: false;
|
|
2765
|
+
hasRuntimeDefault: false;
|
|
2766
|
+
enumValues: undefined;
|
|
2767
|
+
baseColumn: never;
|
|
2768
|
+
identity: undefined;
|
|
2769
|
+
generated: undefined;
|
|
2770
|
+
}, {}, {}>;
|
|
2771
|
+
displayName: drizzle_orm_pg_core.PgColumn<{
|
|
2772
|
+
name: "display_name";
|
|
2773
|
+
tableName: "items";
|
|
2774
|
+
dataType: "string";
|
|
2775
|
+
columnType: "PgText";
|
|
2776
|
+
data: string;
|
|
2777
|
+
driverParam: string;
|
|
2778
|
+
notNull: true;
|
|
2779
|
+
hasDefault: false;
|
|
2780
|
+
isPrimaryKey: false;
|
|
2781
|
+
isAutoincrement: false;
|
|
2782
|
+
hasRuntimeDefault: false;
|
|
2783
|
+
enumValues: [string, ...string[]];
|
|
2784
|
+
baseColumn: never;
|
|
2785
|
+
identity: undefined;
|
|
2786
|
+
generated: undefined;
|
|
2787
|
+
}, {}, {}>;
|
|
2788
|
+
description: drizzle_orm_pg_core.PgColumn<{
|
|
2789
|
+
name: "description";
|
|
2790
|
+
tableName: "items";
|
|
2791
|
+
dataType: "string";
|
|
2792
|
+
columnType: "PgText";
|
|
2793
|
+
data: string;
|
|
2794
|
+
driverParam: string;
|
|
2795
|
+
notNull: false;
|
|
2796
|
+
hasDefault: false;
|
|
2797
|
+
isPrimaryKey: false;
|
|
2798
|
+
isAutoincrement: false;
|
|
2799
|
+
hasRuntimeDefault: false;
|
|
2800
|
+
enumValues: [string, ...string[]];
|
|
2801
|
+
baseColumn: never;
|
|
2802
|
+
identity: undefined;
|
|
2803
|
+
generated: undefined;
|
|
2804
|
+
}, {}, {}>;
|
|
2805
|
+
type: drizzle_orm_pg_core.PgColumn<{
|
|
2806
|
+
name: "type";
|
|
2807
|
+
tableName: "items";
|
|
2808
|
+
dataType: "string";
|
|
2809
|
+
columnType: "PgEnumColumn";
|
|
2810
|
+
data: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
|
|
2811
|
+
driverParam: string;
|
|
2812
|
+
notNull: true;
|
|
2813
|
+
hasDefault: true;
|
|
2814
|
+
isPrimaryKey: false;
|
|
2815
|
+
isAutoincrement: false;
|
|
2816
|
+
hasRuntimeDefault: false;
|
|
2817
|
+
enumValues: ["currency", "badge", "trophy", "collectible", "consumable", "unlock", "upgrade", "accessory", "other"];
|
|
2818
|
+
baseColumn: never;
|
|
2819
|
+
identity: undefined;
|
|
2820
|
+
generated: undefined;
|
|
2821
|
+
}, {}, {}>;
|
|
2822
|
+
isPlaceable: drizzle_orm_pg_core.PgColumn<{
|
|
2823
|
+
name: "is_placeable";
|
|
2824
|
+
tableName: "items";
|
|
2825
|
+
dataType: "boolean";
|
|
2826
|
+
columnType: "PgBoolean";
|
|
2827
|
+
data: boolean;
|
|
2828
|
+
driverParam: boolean;
|
|
2829
|
+
notNull: true;
|
|
2830
|
+
hasDefault: true;
|
|
2831
|
+
isPrimaryKey: false;
|
|
2832
|
+
isAutoincrement: false;
|
|
2833
|
+
hasRuntimeDefault: false;
|
|
2834
|
+
enumValues: undefined;
|
|
2835
|
+
baseColumn: never;
|
|
2836
|
+
identity: undefined;
|
|
2837
|
+
generated: undefined;
|
|
2838
|
+
}, {}, {}>;
|
|
2839
|
+
imageUrl: drizzle_orm_pg_core.PgColumn<{
|
|
2840
|
+
name: "image_url";
|
|
2841
|
+
tableName: "items";
|
|
2842
|
+
dataType: "string";
|
|
2843
|
+
columnType: "PgText";
|
|
2844
|
+
data: string;
|
|
2845
|
+
driverParam: string;
|
|
2846
|
+
notNull: false;
|
|
2847
|
+
hasDefault: false;
|
|
2848
|
+
isPrimaryKey: false;
|
|
2849
|
+
isAutoincrement: false;
|
|
2850
|
+
hasRuntimeDefault: false;
|
|
2851
|
+
enumValues: [string, ...string[]];
|
|
2852
|
+
baseColumn: never;
|
|
2853
|
+
identity: undefined;
|
|
2854
|
+
generated: undefined;
|
|
2855
|
+
}, {}, {}>;
|
|
2856
|
+
metadata: drizzle_orm_pg_core.PgColumn<{
|
|
2857
|
+
name: "metadata";
|
|
2858
|
+
tableName: "items";
|
|
2859
|
+
dataType: "json";
|
|
2860
|
+
columnType: "PgJsonb";
|
|
2861
|
+
data: unknown;
|
|
2862
|
+
driverParam: unknown;
|
|
2863
|
+
notNull: false;
|
|
2864
|
+
hasDefault: true;
|
|
2865
|
+
isPrimaryKey: false;
|
|
2866
|
+
isAutoincrement: false;
|
|
2867
|
+
hasRuntimeDefault: false;
|
|
2868
|
+
enumValues: undefined;
|
|
2869
|
+
baseColumn: never;
|
|
2870
|
+
identity: undefined;
|
|
2871
|
+
generated: undefined;
|
|
2872
|
+
}, {}, {}>;
|
|
2873
|
+
createdAt: drizzle_orm_pg_core.PgColumn<{
|
|
2874
|
+
name: "created_at";
|
|
2875
|
+
tableName: "items";
|
|
2876
|
+
dataType: "date";
|
|
2877
|
+
columnType: "PgTimestamp";
|
|
2878
|
+
data: Date;
|
|
2879
|
+
driverParam: string;
|
|
2880
|
+
notNull: true;
|
|
2881
|
+
hasDefault: true;
|
|
2882
|
+
isPrimaryKey: false;
|
|
2883
|
+
isAutoincrement: false;
|
|
2884
|
+
hasRuntimeDefault: false;
|
|
2885
|
+
enumValues: undefined;
|
|
2886
|
+
baseColumn: never;
|
|
2887
|
+
identity: undefined;
|
|
2888
|
+
generated: undefined;
|
|
2889
|
+
}, {}, {}>;
|
|
2890
|
+
}, {
|
|
2891
|
+
imageUrl: z.ZodNullable<z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>>;
|
|
2892
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
2893
|
+
}>;
|
|
2894
|
+
declare const UpdateItemSchema: z.ZodObject<Omit<{
|
|
2895
|
+
id: z.ZodOptional<z.ZodString>;
|
|
2896
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
2897
|
+
gameId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2898
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
2899
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2900
|
+
type: z.ZodOptional<z.ZodEnum<["currency", "badge", "trophy", "collectible", "consumable", "unlock", "upgrade", "accessory", "other"]>>;
|
|
2901
|
+
isPlaceable: z.ZodOptional<z.ZodBoolean>;
|
|
2902
|
+
imageUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2903
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
2904
|
+
createdAt: z.ZodOptional<z.ZodDate>;
|
|
2905
|
+
}, "id" | "createdAt">, "strip", z.ZodTypeAny, {
|
|
2906
|
+
description?: string | null | undefined;
|
|
2907
|
+
displayName?: string | undefined;
|
|
2908
|
+
slug?: string | undefined;
|
|
2909
|
+
metadata?: Record<string, unknown> | undefined;
|
|
2910
|
+
gameId?: string | null | undefined;
|
|
2911
|
+
type?: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other" | undefined;
|
|
2912
|
+
isPlaceable?: boolean | undefined;
|
|
2913
|
+
imageUrl?: string | null | undefined;
|
|
2914
|
+
}, {
|
|
2915
|
+
description?: string | null | undefined;
|
|
2916
|
+
displayName?: string | undefined;
|
|
2917
|
+
slug?: string | undefined;
|
|
2918
|
+
metadata?: Record<string, unknown> | undefined;
|
|
2919
|
+
gameId?: string | null | undefined;
|
|
2920
|
+
type?: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other" | undefined;
|
|
2921
|
+
isPlaceable?: boolean | undefined;
|
|
2922
|
+
imageUrl?: string | null | undefined;
|
|
2923
|
+
}>;
|
|
2924
|
+
declare const InsertCurrencySchema: z.ZodObject<Omit<{
|
|
2925
|
+
id: z.ZodOptional<z.ZodString>;
|
|
2926
|
+
itemId: z.ZodString;
|
|
2927
|
+
symbol: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
2928
|
+
isPrimary: z.ZodDefault<z.ZodBoolean>;
|
|
2929
|
+
createdAt: z.ZodOptional<z.ZodDate>;
|
|
2930
|
+
updatedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
2931
|
+
}, "id" | "createdAt" | "updatedAt">, "strip", z.ZodTypeAny, {
|
|
2932
|
+
itemId: string;
|
|
2933
|
+
isPrimary: boolean;
|
|
2934
|
+
symbol?: string | null | undefined;
|
|
2935
|
+
}, {
|
|
2936
|
+
itemId: string;
|
|
2937
|
+
symbol?: string | null | undefined;
|
|
2938
|
+
isPrimary?: boolean | undefined;
|
|
2939
|
+
}>;
|
|
2940
|
+
declare const UpdateCurrencySchema: z.ZodObject<{
|
|
2941
|
+
symbol: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
2942
|
+
itemId: z.ZodOptional<z.ZodString>;
|
|
2943
|
+
isPrimary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
2944
|
+
}, "strip", z.ZodTypeAny, {
|
|
2945
|
+
symbol?: string | null | undefined;
|
|
2946
|
+
itemId?: string | undefined;
|
|
2947
|
+
isPrimary?: boolean | undefined;
|
|
2948
|
+
}, {
|
|
2949
|
+
symbol?: string | null | undefined;
|
|
2950
|
+
itemId?: string | undefined;
|
|
2951
|
+
isPrimary?: boolean | undefined;
|
|
2952
|
+
}>;
|
|
2953
|
+
declare const InsertShopListingSchema: z.ZodObject<Omit<{
|
|
2954
|
+
id: z.ZodOptional<z.ZodString>;
|
|
2955
|
+
itemId: z.ZodString;
|
|
2956
|
+
currencyId: z.ZodString;
|
|
2957
|
+
price: z.ZodNumber;
|
|
2958
|
+
sellBackPercentage: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
2959
|
+
stock: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
|
|
2960
|
+
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
2961
|
+
availableFrom: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
2962
|
+
availableUntil: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
2963
|
+
createdAt: z.ZodOptional<z.ZodDate>;
|
|
2964
|
+
updatedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
2965
|
+
}, "id" | "createdAt" | "updatedAt">, "strip", z.ZodTypeAny, {
|
|
2966
|
+
itemId: string;
|
|
2967
|
+
currencyId: string;
|
|
2968
|
+
price: number;
|
|
2969
|
+
isActive: boolean;
|
|
2970
|
+
sellBackPercentage?: number | null | undefined;
|
|
2971
|
+
stock?: number | null | undefined;
|
|
2972
|
+
availableFrom?: Date | null | undefined;
|
|
2973
|
+
availableUntil?: Date | null | undefined;
|
|
2974
|
+
}, {
|
|
2975
|
+
itemId: string;
|
|
2976
|
+
currencyId: string;
|
|
2977
|
+
price: number;
|
|
2978
|
+
sellBackPercentage?: number | null | undefined;
|
|
2979
|
+
stock?: number | null | undefined;
|
|
2980
|
+
isActive?: boolean | undefined;
|
|
2981
|
+
availableFrom?: Date | null | undefined;
|
|
2982
|
+
availableUntil?: Date | null | undefined;
|
|
2983
|
+
}>;
|
|
2984
|
+
declare const UpdateShopListingSchema: z.ZodObject<{
|
|
2985
|
+
itemId: z.ZodOptional<z.ZodString>;
|
|
2986
|
+
currencyId: z.ZodOptional<z.ZodString>;
|
|
2987
|
+
price: z.ZodOptional<z.ZodNumber>;
|
|
2988
|
+
sellBackPercentage: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
|
|
2989
|
+
stock: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodNumber>>>;
|
|
2990
|
+
isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
2991
|
+
availableFrom: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodDate>>>;
|
|
2992
|
+
availableUntil: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodDate>>>;
|
|
2993
|
+
}, "strip", z.ZodTypeAny, {
|
|
2994
|
+
itemId?: string | undefined;
|
|
2995
|
+
currencyId?: string | undefined;
|
|
2996
|
+
price?: number | undefined;
|
|
2997
|
+
sellBackPercentage?: number | null | undefined;
|
|
2998
|
+
stock?: number | null | undefined;
|
|
2999
|
+
isActive?: boolean | undefined;
|
|
3000
|
+
availableFrom?: Date | null | undefined;
|
|
3001
|
+
availableUntil?: Date | null | undefined;
|
|
3002
|
+
}, {
|
|
3003
|
+
itemId?: string | undefined;
|
|
3004
|
+
currencyId?: string | undefined;
|
|
3005
|
+
price?: number | undefined;
|
|
3006
|
+
sellBackPercentage?: number | null | undefined;
|
|
3007
|
+
stock?: number | null | undefined;
|
|
3008
|
+
isActive?: boolean | undefined;
|
|
3009
|
+
availableFrom?: Date | null | undefined;
|
|
3010
|
+
availableUntil?: Date | null | undefined;
|
|
3011
|
+
}>;
|
|
3012
|
+
/**
|
|
3013
|
+
* Achievement Completion Types
|
|
3014
|
+
*/
|
|
3015
|
+
declare const ACHIEVEMENT_COMPLETION_TYPES: readonly ["time_played_session", "interaction", "leaderboard_rank"];
|
|
3016
|
+
type AchievementCompletionType = (typeof ACHIEVEMENT_COMPLETION_TYPES)[number];
|
|
3017
|
+
|
|
3018
|
+
type CharacterComponent = typeof characterComponents.$inferSelect;
|
|
3019
|
+
type PlayerCharacter = typeof playerCharacters.$inferSelect & {
|
|
3020
|
+
accessories?: PlayerCharacterAccessory[];
|
|
3021
|
+
};
|
|
3022
|
+
type PlayerCharacterAccessory = typeof playerCharacterAccessories.$inferSelect;
|
|
3023
|
+
type GameRow = typeof games.$inferSelect;
|
|
3024
|
+
type BaseGame = Omit<GameRow, 'gameType' | 'assetBundleBase' | 'externalUrl'>;
|
|
3025
|
+
type HostedGame = BaseGame & {
|
|
3026
|
+
gameType: 'hosted';
|
|
3027
|
+
assetBundleBase: string;
|
|
3028
|
+
externalUrl: null;
|
|
3029
|
+
};
|
|
3030
|
+
type ExternalGame = BaseGame & {
|
|
3031
|
+
gameType: 'external';
|
|
3032
|
+
assetBundleBase: null;
|
|
3033
|
+
externalUrl: string;
|
|
3034
|
+
};
|
|
3035
|
+
type Game = HostedGame | ExternalGame;
|
|
3036
|
+
type GameSession = typeof gameSessions.$inferSelect;
|
|
3037
|
+
type GameStateData = Record<string, unknown>;
|
|
3038
|
+
type UpsertGameMetadataInput = z.infer<typeof UpsertGameMetadataSchema>;
|
|
3039
|
+
type Item = typeof items.$inferSelect;
|
|
3040
|
+
type InventoryItem = typeof inventoryItems.$inferSelect;
|
|
3041
|
+
type Currency = typeof currencies.$inferSelect;
|
|
3042
|
+
type ShopListing = typeof shopListings.$inferSelect;
|
|
3043
|
+
type InsertItemInput = z.infer<typeof InsertItemSchema>;
|
|
3044
|
+
type UpdateItemInput = z.infer<typeof UpdateItemSchema>;
|
|
3045
|
+
type InsertCurrencyInput = z.infer<typeof InsertCurrencySchema>;
|
|
3046
|
+
type UpdateCurrencyInput = z.infer<typeof UpdateCurrencySchema>;
|
|
3047
|
+
type InsertShopListingInput = z.infer<typeof InsertShopListingSchema>;
|
|
3048
|
+
type UpdateShopListingInput = z.infer<typeof UpdateShopListingSchema>;
|
|
3049
|
+
interface PlaceableItemMetadata {
|
|
3050
|
+
tilesWide?: number;
|
|
3051
|
+
tilesHigh?: number;
|
|
3052
|
+
flippable?: boolean;
|
|
3053
|
+
[key: string]: unknown;
|
|
3054
|
+
}
|
|
3055
|
+
type Map = typeof maps.$inferSelect;
|
|
3056
|
+
type MapElement = typeof mapElements.$inferSelect;
|
|
3057
|
+
type MapObject = typeof mapObjects.$inferSelect;
|
|
3058
|
+
interface MapData {
|
|
3059
|
+
id: string;
|
|
3060
|
+
identifier: string;
|
|
3061
|
+
displayName: string;
|
|
3062
|
+
description?: string;
|
|
3063
|
+
metadata?: Record<string, unknown>;
|
|
3064
|
+
}
|
|
3065
|
+
interface CreateMapObjectData {
|
|
3066
|
+
itemId: string;
|
|
3067
|
+
worldX: number;
|
|
3068
|
+
worldY: number;
|
|
3069
|
+
width?: number;
|
|
3070
|
+
height?: number;
|
|
3071
|
+
rotation?: number;
|
|
3072
|
+
scale?: number;
|
|
3073
|
+
metadata?: Record<string, unknown>;
|
|
3074
|
+
}
|
|
3075
|
+
|
|
3076
|
+
type User = typeof users.$inferSelect;
|
|
3077
|
+
type UserRoleEnumType = (typeof userRoleEnum.enumValues)[number];
|
|
3078
|
+
type DeveloperStatusResponse = z.infer<typeof DeveloperStatusResponseSchema>;
|
|
3079
|
+
type DeveloperStatusValue = DeveloperStatusResponse['status'];
|
|
3080
|
+
/**
|
|
3081
|
+
* User data with authentication provider information.
|
|
3082
|
+
* Returned by the /users/me endpoint with additional auth context.
|
|
3083
|
+
*/
|
|
3084
|
+
type AuthenticatedUser = User & {
|
|
3085
|
+
/** Whether the user authenticated via Timeback SSO */
|
|
3086
|
+
hasTimebackAccount: boolean;
|
|
3087
|
+
};
|
|
3088
|
+
|
|
3089
|
+
/**
|
|
3090
|
+
* Cross-Domain Composite Types
|
|
3091
|
+
* Types that combine data from multiple domains
|
|
3092
|
+
*/
|
|
3093
|
+
type ManifestV1 = z.infer<typeof ManifestV1Schema>;
|
|
3094
|
+
/**
|
|
3095
|
+
* Basic user information in the shape of the claims from identity providers
|
|
3096
|
+
*/
|
|
3097
|
+
interface UserInfo {
|
|
3098
|
+
/** Unique user identifier (sub claim from JWT) */
|
|
3099
|
+
sub: string;
|
|
3100
|
+
/** User's email address */
|
|
3101
|
+
email: string;
|
|
3102
|
+
/** User's display name */
|
|
3103
|
+
name: string;
|
|
3104
|
+
/** Whether the email has been verified */
|
|
3105
|
+
email_verified: boolean;
|
|
3106
|
+
/** Optional given name (first name) */
|
|
3107
|
+
given_name?: string;
|
|
3108
|
+
/** Optional family name (last name) */
|
|
3109
|
+
family_name?: string;
|
|
3110
|
+
/** Additional user attributes from the identity provider */
|
|
3111
|
+
[key: string]: unknown;
|
|
3112
|
+
}
|
|
3113
|
+
/**
|
|
3114
|
+
* Character-related Composite Types
|
|
3115
|
+
* Types that combine character component data with sprite sheet information
|
|
3116
|
+
*/
|
|
3117
|
+
type CharacterComponentWithSpriteUrl = CharacterComponent & {
|
|
3118
|
+
spriteSheetUrl: string;
|
|
3119
|
+
};
|
|
3120
|
+
type InventoryItemWithItem = Omit<InventoryItem, 'itemId'> & {
|
|
3121
|
+
item: Item;
|
|
3122
|
+
};
|
|
3123
|
+
type HostedGameWithManifest = HostedGame & {
|
|
3124
|
+
manifest: ManifestV1;
|
|
3125
|
+
};
|
|
3126
|
+
type FetchedGame = HostedGameWithManifest | GameRow;
|
|
3127
|
+
/**
|
|
3128
|
+
* Map-related Composite Types
|
|
3129
|
+
* Types that combine map, game, and item data for rendering and interaction
|
|
3130
|
+
*/
|
|
3131
|
+
interface MapElementWithGame extends MapElement {
|
|
3132
|
+
game: Pick<Game, 'id' | 'displayName'> | null;
|
|
3133
|
+
}
|
|
3134
|
+
interface MapObjectWithItem extends MapObject {
|
|
3135
|
+
item: Pick<Item, 'id' | 'slug' | 'displayName' | 'description' | 'imageUrl' | 'isPlaceable'> & {
|
|
3136
|
+
metadata: PlaceableItemMetadata;
|
|
3137
|
+
};
|
|
3138
|
+
}
|
|
3139
|
+
/**
|
|
3140
|
+
* Shop-related Composite Types
|
|
3141
|
+
* Types that combine inventory, currency, and shop listing data for commerce operations
|
|
3142
|
+
*/
|
|
3143
|
+
interface ShopDisplayItem extends Omit<Item, 'createdAt'> {
|
|
3144
|
+
listingId: string;
|
|
3145
|
+
shopPrice: number;
|
|
3146
|
+
currencyId: string;
|
|
3147
|
+
currencySymbol?: string | null;
|
|
3148
|
+
currencyDisplayName?: string | null;
|
|
3149
|
+
currencyImageUrl?: string | null;
|
|
3150
|
+
stock?: number | null;
|
|
3151
|
+
sellBackPercentage?: number | null;
|
|
3152
|
+
}
|
|
3153
|
+
interface ShopCurrency {
|
|
3154
|
+
id: string;
|
|
3155
|
+
symbol: string | null;
|
|
3156
|
+
isPrimary: boolean;
|
|
3157
|
+
displayName?: string | null;
|
|
3158
|
+
imageUrl?: string | null;
|
|
3159
|
+
}
|
|
3160
|
+
interface ShopViewResponse {
|
|
3161
|
+
shopItems: ShopDisplayItem[];
|
|
3162
|
+
currencies: ShopCurrency[];
|
|
3163
|
+
}
|
|
3164
|
+
/**
|
|
3165
|
+
* Leaderboard Composite Types
|
|
3166
|
+
* Types that combine leaderboard, user, and game data
|
|
3167
|
+
*/
|
|
3168
|
+
interface GameLeaderboardEntry {
|
|
3169
|
+
rank: number;
|
|
3170
|
+
userId: string;
|
|
3171
|
+
username: string;
|
|
3172
|
+
userImage?: string | null;
|
|
3173
|
+
score: number;
|
|
3174
|
+
achievedAt: Date;
|
|
3175
|
+
metadata?: Record<string, unknown>;
|
|
3176
|
+
gameId: string;
|
|
3177
|
+
gameTitle: string;
|
|
3178
|
+
gameSlug: string;
|
|
3179
|
+
}
|
|
3180
|
+
|
|
3181
|
+
type DeveloperKey = typeof developerKeys.$inferSelect;
|
|
3182
|
+
|
|
3183
|
+
type UserLevel = typeof userLevels.$inferSelect;
|
|
3184
|
+
type LevelConfig = typeof levelConfigs.$inferSelect;
|
|
3185
|
+
type UserLevelWithConfig = UserLevel & {
|
|
3186
|
+
xpToNextLevel: number;
|
|
3187
|
+
nextLevelConfig?: LevelConfig;
|
|
3188
|
+
};
|
|
3189
|
+
interface LeaderboardOptions {
|
|
3190
|
+
timeframe?: 'all_time' | 'monthly' | 'weekly' | 'daily';
|
|
3191
|
+
limit?: number;
|
|
3192
|
+
offset?: number;
|
|
3193
|
+
gameId?: string;
|
|
3194
|
+
}
|
|
3195
|
+
interface LeaderboardEntry {
|
|
3196
|
+
rank: number;
|
|
3197
|
+
userId: string;
|
|
3198
|
+
username: string;
|
|
3199
|
+
userImage?: string | null;
|
|
3200
|
+
score: number;
|
|
3201
|
+
achievedAt: Date;
|
|
3202
|
+
metadata?: Record<string, unknown>;
|
|
3203
|
+
gameId?: string;
|
|
3204
|
+
gameTitle?: string;
|
|
3205
|
+
gameSlug?: string;
|
|
3206
|
+
}
|
|
3207
|
+
interface UserRank {
|
|
3208
|
+
rank: number;
|
|
3209
|
+
totalPlayers: number;
|
|
3210
|
+
score: number;
|
|
3211
|
+
percentile: number;
|
|
3212
|
+
}
|
|
3213
|
+
interface UserRankResponse {
|
|
3214
|
+
rank: number;
|
|
3215
|
+
score: number;
|
|
3216
|
+
userId: string;
|
|
3217
|
+
}
|
|
3218
|
+
interface UserScore$1 {
|
|
3219
|
+
id: string;
|
|
3220
|
+
score: number;
|
|
3221
|
+
achievedAt: Date;
|
|
3222
|
+
metadata?: Record<string, unknown>;
|
|
3223
|
+
gameId: string;
|
|
3224
|
+
gameTitle: string;
|
|
3225
|
+
gameSlug: string;
|
|
3226
|
+
}
|
|
3227
|
+
|
|
3228
|
+
type SpriteTemplate = typeof spriteTemplates.$inferSelect;
|
|
3229
|
+
interface SpriteTemplateData {
|
|
3230
|
+
tileSize: number;
|
|
3231
|
+
tileHeight: number;
|
|
3232
|
+
columns: number;
|
|
3233
|
+
rows: number;
|
|
3234
|
+
spacing: number;
|
|
3235
|
+
animations: {
|
|
3236
|
+
base_right: {
|
|
3237
|
+
row: number;
|
|
3238
|
+
frameStart: number;
|
|
3239
|
+
numFrames: number;
|
|
3240
|
+
fps: number;
|
|
3241
|
+
};
|
|
3242
|
+
base_up: {
|
|
3243
|
+
row: number;
|
|
3244
|
+
frameStart: number;
|
|
3245
|
+
numFrames: number;
|
|
3246
|
+
fps: number;
|
|
3247
|
+
};
|
|
3248
|
+
base_left: {
|
|
3249
|
+
row: number;
|
|
3250
|
+
frameStart: number;
|
|
3251
|
+
numFrames: number;
|
|
3252
|
+
fps: number;
|
|
3253
|
+
};
|
|
3254
|
+
base_down: {
|
|
3255
|
+
row: number;
|
|
3256
|
+
frameStart: number;
|
|
3257
|
+
numFrames: number;
|
|
3258
|
+
fps: number;
|
|
3259
|
+
};
|
|
3260
|
+
idle_right: {
|
|
3261
|
+
row: number;
|
|
3262
|
+
frameStart: number;
|
|
3263
|
+
numFrames: number;
|
|
3264
|
+
fps: number;
|
|
3265
|
+
};
|
|
3266
|
+
walk_right: {
|
|
3267
|
+
row: number;
|
|
3268
|
+
frameStart: number;
|
|
3269
|
+
numFrames: number;
|
|
3270
|
+
fps: number;
|
|
3271
|
+
};
|
|
3272
|
+
idle_up: {
|
|
3273
|
+
row: number;
|
|
3274
|
+
frameStart: number;
|
|
3275
|
+
numFrames: number;
|
|
3276
|
+
fps: number;
|
|
3277
|
+
};
|
|
3278
|
+
walk_up: {
|
|
3279
|
+
row: number;
|
|
3280
|
+
frameStart: number;
|
|
3281
|
+
numFrames: number;
|
|
3282
|
+
fps: number;
|
|
3283
|
+
};
|
|
3284
|
+
idle_left: {
|
|
3285
|
+
row: number;
|
|
3286
|
+
frameStart: number;
|
|
3287
|
+
numFrames: number;
|
|
3288
|
+
fps: number;
|
|
3289
|
+
};
|
|
3290
|
+
walk_left: {
|
|
3291
|
+
row: number;
|
|
3292
|
+
frameStart: number;
|
|
3293
|
+
numFrames: number;
|
|
3294
|
+
fps: number;
|
|
3295
|
+
};
|
|
3296
|
+
idle_down: {
|
|
3297
|
+
row: number;
|
|
3298
|
+
frameStart: number;
|
|
3299
|
+
numFrames: number;
|
|
3300
|
+
fps: number;
|
|
3301
|
+
};
|
|
3302
|
+
walk_down: {
|
|
3303
|
+
row: number;
|
|
3304
|
+
frameStart: number;
|
|
3305
|
+
numFrames: number;
|
|
3306
|
+
fps: number;
|
|
3307
|
+
};
|
|
3308
|
+
};
|
|
3309
|
+
}
|
|
3310
|
+
type TodayXpResponse = {
|
|
3311
|
+
xp: number;
|
|
3312
|
+
date: string;
|
|
3313
|
+
};
|
|
3314
|
+
type TotalXpResponse = {
|
|
3315
|
+
totalXp: number;
|
|
3316
|
+
};
|
|
3317
|
+
type XpHistoryResponse = {
|
|
3318
|
+
history: Array<{
|
|
3319
|
+
date: string;
|
|
3320
|
+
xp: number;
|
|
3321
|
+
}>;
|
|
3322
|
+
};
|
|
3323
|
+
|
|
3324
|
+
type AchievementIntervalType = (typeof achievementIntervalEnum.enumValues)[number];
|
|
3325
|
+
type Achievement = typeof achievements.$inferSelect;
|
|
3326
|
+
/**
|
|
3327
|
+
* Current-interval achievement with computed status and window metadata
|
|
3328
|
+
*/
|
|
3329
|
+
interface AchievementCurrent {
|
|
3330
|
+
id: string;
|
|
3331
|
+
title: string;
|
|
3332
|
+
description?: string | null;
|
|
3333
|
+
intervalType: AchievementIntervalType;
|
|
3334
|
+
rewardCredits: number;
|
|
3335
|
+
limitPerInterval: number;
|
|
3336
|
+
completionType: AchievementCompletionType;
|
|
3337
|
+
completionConfig: Record<string, unknown>;
|
|
3338
|
+
scope: Record<string, unknown>;
|
|
3339
|
+
active: boolean;
|
|
3340
|
+
createdAt?: Date;
|
|
3341
|
+
updatedAt?: Date;
|
|
3342
|
+
status: 'available' | 'completed';
|
|
3343
|
+
intervalKey: string;
|
|
3344
|
+
windowStart: string;
|
|
3345
|
+
windowEnd: string;
|
|
3346
|
+
}
|
|
3347
|
+
/**
|
|
3348
|
+
* Historical entry representing a prior claim within an interval
|
|
3349
|
+
*/
|
|
3350
|
+
interface AchievementHistoryEntry {
|
|
3351
|
+
achievementId: string;
|
|
3352
|
+
title: string;
|
|
3353
|
+
rewardCredits: number;
|
|
3354
|
+
createdAt: string;
|
|
3355
|
+
intervalKey: string;
|
|
3356
|
+
}
|
|
3357
|
+
/**
|
|
3358
|
+
* Response returned when submitting achievement progress
|
|
3359
|
+
*/
|
|
3360
|
+
interface AchievementProgressResponse {
|
|
3361
|
+
achievementId: string;
|
|
3362
|
+
status: 'completed' | 'already_completed';
|
|
3363
|
+
rewardCredits: number;
|
|
3364
|
+
intervalKey: string;
|
|
3365
|
+
createdAt: string;
|
|
3366
|
+
}
|
|
3367
|
+
|
|
3368
|
+
declare const AuthProvider: {
|
|
3369
|
+
readonly TIMEBACK: "TIMEBACK";
|
|
3370
|
+
};
|
|
3371
|
+
|
|
3372
|
+
/**
|
|
3373
|
+
* OAuth 2.0 implementation for the Playcademy SDK
|
|
3374
|
+
*/
|
|
3375
|
+
|
|
3376
|
+
/**
|
|
3377
|
+
* Parses an OAuth state parameter to extract CSRF token and any encoded data.
|
|
3378
|
+
*
|
|
3379
|
+
* @param state - The OAuth state parameter to parse
|
|
3380
|
+
* @returns Object containing CSRF token and optional decoded data
|
|
3381
|
+
*/
|
|
3382
|
+
declare function parseOAuthState(state: string): {
|
|
3383
|
+
csrfToken: string;
|
|
3384
|
+
data?: Record<string, string>;
|
|
3385
|
+
};
|
|
3386
|
+
|
|
3387
|
+
/**
|
|
3388
|
+
* Response type for the realtime token API
|
|
3389
|
+
*/
|
|
3390
|
+
interface RealtimeTokenResponse {
|
|
3391
|
+
token: string;
|
|
3392
|
+
}
|
|
3393
|
+
|
|
3394
|
+
/**
|
|
3395
|
+
* Cache configuration types for runtime customization
|
|
3396
|
+
*/
|
|
3397
|
+
/**
|
|
3398
|
+
* Runtime configuration for TTL cache behavior
|
|
3399
|
+
*/
|
|
3400
|
+
interface TTLCacheConfig {
|
|
3401
|
+
/** Time-to-live in milliseconds. Set to 0 to disable caching for this call. */
|
|
3402
|
+
ttl?: number;
|
|
3403
|
+
/** Force refresh, bypassing cache */
|
|
3404
|
+
force?: boolean;
|
|
3405
|
+
/** Skip cache and fetch fresh data (alias for force) */
|
|
3406
|
+
skipCache?: boolean;
|
|
3407
|
+
}
|
|
3408
|
+
/**
|
|
3409
|
+
* Runtime configuration for cooldown cache behavior
|
|
3410
|
+
*/
|
|
3411
|
+
interface CooldownCacheConfig {
|
|
3412
|
+
/** Cooldown period in milliseconds. Set to 0 to disable cooldown for this call. */
|
|
3413
|
+
cooldown?: number;
|
|
3414
|
+
/** Force refresh, bypassing cooldown */
|
|
3415
|
+
force?: boolean;
|
|
3416
|
+
}
|
|
3417
|
+
|
|
3418
|
+
interface CharacterComponentsOptions {
|
|
3419
|
+
/**
|
|
3420
|
+
* Optional level filter for components
|
|
3421
|
+
* When provided, only components available at this level or below are returned
|
|
3422
|
+
*/
|
|
3423
|
+
level?: number;
|
|
3424
|
+
/**
|
|
3425
|
+
* Whether to bypass the cache and force a fresh API request
|
|
3426
|
+
* Default: false (use cache when available)
|
|
3427
|
+
*/
|
|
3428
|
+
skipCache?: boolean;
|
|
3429
|
+
}
|
|
3430
|
+
interface CreateCharacterData {
|
|
3431
|
+
bodyComponentId: string;
|
|
3432
|
+
eyesComponentId: string;
|
|
3433
|
+
hairstyleComponentId: string;
|
|
3434
|
+
outfitComponentId: string;
|
|
3435
|
+
}
|
|
3436
|
+
interface UpdateCharacterData {
|
|
3437
|
+
bodyComponentId?: string;
|
|
3438
|
+
eyesComponentId?: string;
|
|
3439
|
+
hairstyleComponentId?: string;
|
|
3440
|
+
outfitComponentId?: string;
|
|
3441
|
+
}
|
|
3442
|
+
|
|
3443
|
+
interface ScoreSubmission {
|
|
3444
|
+
id: string;
|
|
3445
|
+
score: number;
|
|
3446
|
+
achievedAt: Date;
|
|
3447
|
+
}
|
|
3448
|
+
|
|
3449
|
+
/**
|
|
3450
|
+
* Combined response type for summary method
|
|
3451
|
+
*/
|
|
3452
|
+
type XpSummaryResponse = {
|
|
3453
|
+
today: TodayXpResponse;
|
|
3454
|
+
total: TotalXpResponse;
|
|
3455
|
+
};
|
|
3456
|
+
|
|
3457
|
+
interface UserScore {
|
|
3458
|
+
id: string;
|
|
3459
|
+
score: number;
|
|
3460
|
+
achievedAt: Date;
|
|
3461
|
+
metadata?: Record<string, unknown>;
|
|
3462
|
+
gameId: string;
|
|
3463
|
+
gameTitle: string;
|
|
3464
|
+
gameSlug: string;
|
|
3465
|
+
}
|
|
3466
|
+
|
|
3467
|
+
/**
|
|
3468
|
+
* @fileoverview Playcademy Messaging System
|
|
3469
|
+
*
|
|
3470
|
+
* This file implements a unified messaging system for the Playcademy platform that handles
|
|
3471
|
+
* communication between different contexts:
|
|
3472
|
+
*
|
|
3473
|
+
* 1. **Iframe-to-Parent Communication**: When games run inside iframes (production/development),
|
|
3474
|
+
* they need to communicate with the parent window using postMessage API
|
|
3475
|
+
*
|
|
3476
|
+
* 2. **Local Communication**: When games run in the same context (local development),
|
|
3477
|
+
* they use CustomEvents for internal messaging
|
|
3478
|
+
*
|
|
3479
|
+
* The system automatically detects the runtime environment and chooses the appropriate
|
|
3480
|
+
* transport method, abstracting this complexity from the developer.
|
|
3481
|
+
*
|
|
3482
|
+
* **Architecture Overview**:
|
|
3483
|
+
* - Games run in iframes for security and isolation
|
|
3484
|
+
* - Parent window (Playcademy shell) manages game lifecycle
|
|
3485
|
+
* - Messages flow bidirectionally between parent and iframe
|
|
3486
|
+
* - Local development mode simulates this architecture without iframes
|
|
3487
|
+
*/
|
|
3488
|
+
|
|
3489
|
+
/**
|
|
3490
|
+
* Enumeration of all message types used in the Playcademy messaging system.
|
|
3491
|
+
*
|
|
3492
|
+
* **Message Flow Patterns**:
|
|
3493
|
+
*
|
|
3494
|
+
* **Parent → Game (Overworld → Game)**:
|
|
3495
|
+
* - INIT: Provides game with authentication token and configuration
|
|
3496
|
+
* - TOKEN_REFRESH: Updates game's authentication token before expiry
|
|
3497
|
+
* - PAUSE/RESUME: Controls game execution state
|
|
3498
|
+
* - FORCE_EXIT: Immediately terminates the game
|
|
3499
|
+
* - OVERLAY: Shows/hides UI overlays over the game
|
|
3500
|
+
*
|
|
3501
|
+
* **Game → Parent (Game → Overworld)**:
|
|
3502
|
+
* - READY: Game has loaded and is ready to receive messages
|
|
3503
|
+
* - EXIT: Game requests to be closed (user clicked exit, game ended, etc.)
|
|
3504
|
+
* - TELEMETRY: Game reports performance metrics (FPS, memory usage, etc.)
|
|
3505
|
+
*/
|
|
3506
|
+
declare enum MessageEvents {
|
|
3507
|
+
/**
|
|
3508
|
+
* Initializes the game with authentication context and configuration.
|
|
3509
|
+
* Sent immediately after game iframe loads.
|
|
3510
|
+
* Payload:
|
|
3511
|
+
* - `baseUrl`: string
|
|
3512
|
+
* - `token`: string
|
|
3513
|
+
* - `gameId`: string
|
|
3514
|
+
*/
|
|
3515
|
+
INIT = "PLAYCADEMY_INIT",
|
|
3516
|
+
/**
|
|
3517
|
+
* Updates the game's authentication token before it expires.
|
|
3518
|
+
* Sent periodically to maintain valid authentication.
|
|
3519
|
+
* Payload:
|
|
3520
|
+
* - `token`: string
|
|
3521
|
+
* - `exp`: number
|
|
3522
|
+
*/
|
|
3523
|
+
TOKEN_REFRESH = "PLAYCADEMY_TOKEN_REFRESH",
|
|
3524
|
+
/**
|
|
3525
|
+
* Pauses game execution (e.g., when user switches tabs).
|
|
3526
|
+
* Game should pause timers, animations, and user input.
|
|
3527
|
+
* Payload: void
|
|
3528
|
+
*/
|
|
3529
|
+
PAUSE = "PLAYCADEMY_PAUSE",
|
|
3530
|
+
/**
|
|
3531
|
+
* Resumes game execution after being paused.
|
|
3532
|
+
* Game should restore timers, animations, and user input.
|
|
3533
|
+
* Payload: void
|
|
3534
|
+
*/
|
|
3535
|
+
RESUME = "PLAYCADEMY_RESUME",
|
|
3536
|
+
/**
|
|
3537
|
+
* Forces immediate game termination (emergency exit).
|
|
3538
|
+
* Game should clean up resources and exit immediately.
|
|
3539
|
+
* Payload: void
|
|
3540
|
+
*/
|
|
3541
|
+
FORCE_EXIT = "PLAYCADEMY_FORCE_EXIT",
|
|
3542
|
+
/**
|
|
3543
|
+
* Shows or hides UI overlays over the game.
|
|
3544
|
+
* Game may need to pause or adjust rendering accordingly.
|
|
3545
|
+
* Payload: boolean (true = show overlay, false = hide overlay)
|
|
3546
|
+
*/
|
|
3547
|
+
OVERLAY = "PLAYCADEMY_OVERLAY",
|
|
3548
|
+
/**
|
|
3549
|
+
* Game has finished loading and is ready to receive messages.
|
|
3550
|
+
* Sent once after game initialization is complete.
|
|
3551
|
+
* Payload: void
|
|
3552
|
+
*/
|
|
3553
|
+
READY = "PLAYCADEMY_READY",
|
|
3554
|
+
/**
|
|
3555
|
+
* Game requests to be closed/exited.
|
|
3556
|
+
* Sent when user clicks exit button or game naturally ends.
|
|
3557
|
+
* Payload: void
|
|
3558
|
+
*/
|
|
3559
|
+
EXIT = "PLAYCADEMY_EXIT",
|
|
3560
|
+
/**
|
|
3561
|
+
* Game reports performance telemetry data.
|
|
3562
|
+
* Sent periodically for monitoring and analytics.
|
|
3563
|
+
* Payload:
|
|
3564
|
+
* - `fps`: number
|
|
3565
|
+
* - `mem`: number
|
|
3566
|
+
*/
|
|
3567
|
+
TELEMETRY = "PLAYCADEMY_TELEMETRY",
|
|
3568
|
+
/**
|
|
3569
|
+
* Game reports key events to parent.
|
|
3570
|
+
* Sent when certain keys are pressed within the game iframe.
|
|
3571
|
+
* Payload:
|
|
3572
|
+
* - `key`: string
|
|
3573
|
+
* - `code?`: string
|
|
3574
|
+
* - `type`: 'keydown' | 'keyup'
|
|
3575
|
+
*/
|
|
3576
|
+
KEY_EVENT = "PLAYCADEMY_KEY_EVENT",
|
|
3577
|
+
/**
|
|
3578
|
+
* Notifies about authentication state changes.
|
|
3579
|
+
* Can be sent in both directions depending on auth flow.
|
|
3580
|
+
* Payload:
|
|
3581
|
+
* - `authenticated`: boolean
|
|
3582
|
+
* - `user`: UserInfo | null
|
|
3583
|
+
* - `error`: Error | null
|
|
3584
|
+
*/
|
|
3585
|
+
AUTH_STATE_CHANGE = "PLAYCADEMY_AUTH_STATE_CHANGE",
|
|
3586
|
+
/**
|
|
3587
|
+
* OAuth callback data from popup/new-tab windows.
|
|
3588
|
+
* Sent from popup window back to parent after OAuth completes.
|
|
3589
|
+
* Payload:
|
|
3590
|
+
* - `code`: string (OAuth authorization code)
|
|
3591
|
+
* - `state`: string (OAuth state for CSRF protection)
|
|
3592
|
+
* - `error`: string | null (OAuth error if any)
|
|
3593
|
+
*/
|
|
3594
|
+
AUTH_CALLBACK = "PLAYCADEMY_AUTH_CALLBACK"
|
|
3595
|
+
}
|
|
3596
|
+
|
|
3597
|
+
/**
|
|
3598
|
+
* Auto-initializes a PlaycademyClient with context from the environment.
|
|
3599
|
+
* Works in both iframe mode (production/development) and standalone mode (local dev).
|
|
3600
|
+
*
|
|
3601
|
+
* This is the recommended way to initialize the SDK as it automatically:
|
|
3602
|
+
* - Detects the runtime environment (iframe vs standalone)
|
|
3603
|
+
* - Configures the client with the appropriate context
|
|
3604
|
+
* - Sets up event listeners for token refresh
|
|
3605
|
+
* - Exposes the client for debugging in development mode
|
|
3606
|
+
*
|
|
3607
|
+
* @param options - Optional configuration overrides
|
|
3608
|
+
* @param options.baseUrl - Override the base URL for API requests
|
|
3609
|
+
* @returns Promise resolving to a fully initialized PlaycademyClient
|
|
3610
|
+
* @throws Error if not running in a browser context
|
|
3611
|
+
*
|
|
3612
|
+
* @example
|
|
3613
|
+
* ```typescript
|
|
3614
|
+
* // Default initialization
|
|
3615
|
+
* const client = await PlaycademyClient.init()
|
|
3616
|
+
*
|
|
3617
|
+
* // With custom base URL
|
|
3618
|
+
* const client = await PlaycademyClient.init({ baseUrl: 'https://custom.api.com' })
|
|
3619
|
+
* ```
|
|
3620
|
+
*/
|
|
3621
|
+
declare function init(options?: {
|
|
3622
|
+
baseUrl?: string;
|
|
3623
|
+
allowedParentOrigins?: string[];
|
|
3624
|
+
}): Promise<PlaycademyClient>;
|
|
3625
|
+
|
|
3626
|
+
/**
|
|
3627
|
+
* Authenticates a user with email and password.
|
|
3628
|
+
*
|
|
3629
|
+
* This is a standalone authentication method that doesn't require an initialized client.
|
|
3630
|
+
* Use this for login flows before creating a client instance.
|
|
3631
|
+
*
|
|
3632
|
+
* @deprecated Use client.auth.login() instead for better error handling and automatic token management
|
|
3633
|
+
*
|
|
3634
|
+
* @param baseUrl - The base URL of the Playcademy API
|
|
3635
|
+
* @param email - User's email address
|
|
3636
|
+
* @param password - User's password
|
|
3637
|
+
* @returns Promise resolving to authentication response with token
|
|
3638
|
+
* @throws PlaycademyError if authentication fails or network error occurs
|
|
3639
|
+
*
|
|
3640
|
+
* @example
|
|
3641
|
+
* ```typescript
|
|
3642
|
+
* // Preferred approach:
|
|
3643
|
+
* const client = new PlaycademyClient({ baseUrl: '/api' })
|
|
3644
|
+
* const result = await client.auth.login({
|
|
3645
|
+
* email: 'user@example.com',
|
|
3646
|
+
* password: 'password'
|
|
3647
|
+
* })
|
|
3648
|
+
*
|
|
3649
|
+
* // Legacy approach (still works):
|
|
3650
|
+
* try {
|
|
3651
|
+
* const response = await PlaycademyClient.login('/api', 'user@example.com', 'password')
|
|
3652
|
+
* const client = new PlaycademyClient({ token: response.token })
|
|
3653
|
+
* } catch (error) {
|
|
3654
|
+
* console.error('Login failed:', error.message)
|
|
3655
|
+
* }
|
|
3656
|
+
* ```
|
|
3657
|
+
*/
|
|
3658
|
+
declare function login(baseUrl: string, email: string, password: string): Promise<LoginResponse>;
|
|
3659
|
+
|
|
3660
|
+
/** Permitted HTTP verbs */
|
|
3661
|
+
type Method = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
3662
|
+
|
|
3663
|
+
/**
|
|
3664
|
+
* Main Playcademy SDK client for interacting with the platform API.
|
|
3665
|
+
* Provides namespaced access to all platform features including games, users, inventory, and more.
|
|
3666
|
+
*/
|
|
3667
|
+
declare class PlaycademyClient {
|
|
3668
|
+
private baseUrl;
|
|
3669
|
+
private token?;
|
|
3670
|
+
private gameId?;
|
|
3671
|
+
private config;
|
|
3672
|
+
private listeners;
|
|
3673
|
+
private internalClientSessionId?;
|
|
3674
|
+
private authContext?;
|
|
3675
|
+
private initPayload?;
|
|
3676
|
+
/**
|
|
3677
|
+
* Creates a new PlaycademyClient instance.
|
|
3678
|
+
*
|
|
3679
|
+
* @param config - Optional configuration object
|
|
3680
|
+
* @param config.baseUrl - Base URL for API requests (defaults to '/api')
|
|
3681
|
+
* @param config.token - Authentication token
|
|
3682
|
+
* @param config.gameId - Game ID for automatic session management
|
|
3683
|
+
* @param config.autoStartSession - Automatically start a game session?
|
|
3684
|
+
*/
|
|
3685
|
+
constructor(config?: Partial<ClientConfig>);
|
|
3686
|
+
/**
|
|
3687
|
+
* Gets the effective base URL for API requests.
|
|
3688
|
+
* Converts relative URLs to absolute URLs in browser environments.
|
|
3689
|
+
*
|
|
3690
|
+
* @returns The complete base URL for API requests
|
|
3691
|
+
*/
|
|
3692
|
+
getBaseUrl(): string;
|
|
3693
|
+
/**
|
|
3694
|
+
* Simple ping method for testing connectivity.
|
|
3695
|
+
*
|
|
3696
|
+
* @returns 'pong' string response
|
|
3697
|
+
*/
|
|
3698
|
+
ping(): string;
|
|
3699
|
+
/**
|
|
3700
|
+
* Sets the authentication token for API requests.
|
|
3701
|
+
* Emits an 'authChange' event when the token changes.
|
|
3702
|
+
*
|
|
3703
|
+
* @param token - The authentication token, or null to clear
|
|
3704
|
+
*/
|
|
3705
|
+
setToken(token: string | null): void;
|
|
3706
|
+
/**
|
|
3707
|
+
* Gets the current authentication token.
|
|
3708
|
+
*
|
|
3709
|
+
* @returns The current token or null if not authenticated
|
|
3710
|
+
*
|
|
3711
|
+
* @example
|
|
3712
|
+
* ```typescript
|
|
3713
|
+
* // Send token to your backend for verification
|
|
3714
|
+
* const token = client.getToken()
|
|
3715
|
+
* const response = await fetch('/api/auth/playcademy', {
|
|
3716
|
+
* method: 'POST',
|
|
3717
|
+
* body: JSON.stringify({ gameToken: token })
|
|
3718
|
+
* })
|
|
3719
|
+
* ```
|
|
3720
|
+
*/
|
|
3721
|
+
getToken(): string | null;
|
|
3722
|
+
/**
|
|
3723
|
+
* Checks if the client has a valid API token for making Playcademy API requests.
|
|
3724
|
+
*
|
|
3725
|
+
* For games (iframe context): Checks if we have a valid token from the parent.
|
|
3726
|
+
* For Cademy (standalone): Checks if we have a token from better-auth.
|
|
3727
|
+
*
|
|
3728
|
+
* Note: This checks for API authentication, not whether a user has linked
|
|
3729
|
+
* their identity via OAuth.
|
|
3730
|
+
*
|
|
3731
|
+
* @returns true if API token exists, false otherwise
|
|
3732
|
+
*
|
|
3733
|
+
* @example
|
|
3734
|
+
* ```typescript
|
|
3735
|
+
* if (client.isAuthenticated()) {
|
|
3736
|
+
* // Can make API calls
|
|
3737
|
+
* const games = await client.games.list()
|
|
3738
|
+
* } else {
|
|
3739
|
+
* console.error('No API token available')
|
|
3740
|
+
* }
|
|
3741
|
+
* ```
|
|
3742
|
+
*/
|
|
3743
|
+
isAuthenticated(): boolean;
|
|
3744
|
+
/**
|
|
3745
|
+
* Registers a callback to be called when authentication state changes.
|
|
3746
|
+
*
|
|
3747
|
+
* @param callback - Function to call when auth state changes
|
|
3748
|
+
*/
|
|
3749
|
+
onAuthChange(callback: (token: string | null) => void): void;
|
|
3750
|
+
/**
|
|
3751
|
+
* Sets the authentication context for the client.
|
|
3752
|
+
* This is called during initialization to store environment info.
|
|
3753
|
+
* @internal
|
|
3754
|
+
*/
|
|
3755
|
+
_setAuthContext(context: {
|
|
3756
|
+
isInIframe: boolean;
|
|
3757
|
+
}): void;
|
|
3758
|
+
/**
|
|
3759
|
+
* Registers an event listener for client events.
|
|
3760
|
+
*
|
|
3761
|
+
* @param event - The event type to listen for
|
|
3762
|
+
* @param callback - Function to call when the event is emitted
|
|
3763
|
+
*/
|
|
3764
|
+
on<E extends keyof ClientEvents>(event: E, callback: (payload: ClientEvents[E]) => void): void;
|
|
3765
|
+
/**
|
|
3766
|
+
* Emits an event to all registered listeners.
|
|
3767
|
+
*
|
|
3768
|
+
* @param event - The event type to emit
|
|
3769
|
+
* @param payload - The event payload
|
|
3770
|
+
*/
|
|
3771
|
+
private emit;
|
|
3772
|
+
/**
|
|
3773
|
+
* Makes an authenticated HTTP request to the API.
|
|
3774
|
+
*
|
|
3775
|
+
* @param path - API endpoint path
|
|
3776
|
+
* @param method - HTTP method
|
|
3777
|
+
* @param body - Request body (optional)
|
|
3778
|
+
* @param headers - Additional headers (optional)
|
|
3779
|
+
* @returns Promise resolving to the response data
|
|
3780
|
+
*/
|
|
3781
|
+
protected request<T>(path: string, method: Method, body?: unknown, headers?: Record<string, string>): Promise<T>;
|
|
3782
|
+
/**
|
|
3783
|
+
* Ensures a gameId is available, throwing an error if not.
|
|
3784
|
+
*
|
|
3785
|
+
* @returns The gameId
|
|
3786
|
+
* @throws PlaycademyError if no gameId is configured
|
|
3787
|
+
*/
|
|
3788
|
+
private _ensureGameId;
|
|
3789
|
+
/**
|
|
3790
|
+
* Detects and sets the authentication context (iframe vs standalone).
|
|
3791
|
+
* Safe to call in any environment - isInIframe handles browser detection.
|
|
3792
|
+
*/
|
|
3793
|
+
private _detectAuthContext;
|
|
3794
|
+
/**
|
|
3795
|
+
* Initializes an internal game session for automatic session management.
|
|
3796
|
+
* Only starts a session if:
|
|
3797
|
+
* 1. A gameId is configured
|
|
3798
|
+
* 2. No session already exists
|
|
3799
|
+
* 3. autoStartSession is enabled (defaults to false)
|
|
3800
|
+
*/
|
|
3801
|
+
private _initializeInternalSession;
|
|
3802
|
+
/** Platform API authentication methods (login, logout) */
|
|
3803
|
+
auth: {
|
|
3804
|
+
login: (credentials: {
|
|
3805
|
+
email: string;
|
|
3806
|
+
password: string;
|
|
3807
|
+
}) => Promise<{
|
|
3808
|
+
success: boolean;
|
|
3809
|
+
token?: string;
|
|
3810
|
+
error?: string;
|
|
3811
|
+
}>;
|
|
3812
|
+
logout: () => Promise<void>;
|
|
3813
|
+
};
|
|
3814
|
+
/** Identity provider connection methods (connect external accounts) */
|
|
3815
|
+
identity: {
|
|
3816
|
+
connect: (options: AuthOptions) => Promise<AuthResult>;
|
|
3817
|
+
_getContext: () => {
|
|
3818
|
+
isInIframe: boolean;
|
|
3819
|
+
};
|
|
3820
|
+
};
|
|
3821
|
+
/** Runtime methods (getGameToken, exit) */
|
|
3822
|
+
runtime: {
|
|
3823
|
+
getGameToken: (gameId: string, options?: {
|
|
3824
|
+
apply?: boolean;
|
|
3825
|
+
}) => Promise<GameTokenResponse>;
|
|
3826
|
+
exit: () => Promise<void>;
|
|
3827
|
+
onInit: (handler: (context: GameContextPayload) => void) => void;
|
|
3828
|
+
onTokenRefresh: (handler: (data: {
|
|
3829
|
+
token: string;
|
|
3830
|
+
exp: number;
|
|
3831
|
+
}) => void) => void;
|
|
3832
|
+
onPause: (handler: () => void) => void;
|
|
3833
|
+
onResume: (handler: () => void) => void;
|
|
3834
|
+
onForceExit: (handler: () => void) => void;
|
|
3835
|
+
onOverlay: (handler: (isVisible: boolean) => void) => void;
|
|
3836
|
+
ready: () => void;
|
|
3837
|
+
sendTelemetry: (data: {
|
|
3838
|
+
fps: number;
|
|
3839
|
+
mem: number;
|
|
3840
|
+
}) => void;
|
|
3841
|
+
removeListener: (eventType: MessageEvents, handler: ((context: GameContextPayload) => void) | ((data: {
|
|
3842
|
+
token: string;
|
|
3843
|
+
exp: number;
|
|
3844
|
+
}) => void) | (() => void) | ((isVisible: boolean) => void)) => void;
|
|
3845
|
+
removeAllListeners: () => void;
|
|
3846
|
+
getListenerCounts: () => Record<string, number>;
|
|
3847
|
+
};
|
|
3848
|
+
/** Game management methods (fetch, list, saveState, loadState, sessions) */
|
|
3849
|
+
games: {
|
|
3850
|
+
fetch: (gameIdOrSlug: string, options?: TTLCacheConfig) => Promise<FetchedGame>;
|
|
3851
|
+
list: (options?: TTLCacheConfig) => Promise<Array<Game>>;
|
|
3852
|
+
saveState: (state: Record<string, unknown>) => Promise<void>;
|
|
3853
|
+
loadState: () => Promise<GameStateData>;
|
|
3854
|
+
startSession: (gameId?: string) => Promise<StartSessionResponse>;
|
|
3855
|
+
endSession: (sessionId: string, gameId?: string) => Promise<void>;
|
|
3856
|
+
token: {
|
|
3857
|
+
create: (gameId: string, options?: {
|
|
3858
|
+
apply?: boolean;
|
|
3859
|
+
}) => Promise<GameTokenResponse>;
|
|
3860
|
+
};
|
|
3861
|
+
leaderboard: {
|
|
3862
|
+
get: (gameId: string, options?: {
|
|
3863
|
+
limit? /** Runtime methods (getGameToken, exit) */: number;
|
|
3864
|
+
offset?: number;
|
|
3865
|
+
}) => Promise<LeaderboardEntry[]>;
|
|
3866
|
+
};
|
|
3867
|
+
};
|
|
3868
|
+
/** User methods (me, inventory management) */
|
|
3869
|
+
users: {
|
|
3870
|
+
me: () => Promise<AuthenticatedUser>;
|
|
3871
|
+
inventory: {
|
|
3872
|
+
get: () => Promise<InventoryItemWithItem[]>;
|
|
3873
|
+
add: (identifier: string, qty: number) => Promise<InventoryMutationResponse>;
|
|
3874
|
+
remove: (identifier: string, qty: number) => Promise<InventoryMutationResponse>;
|
|
3875
|
+
quantity: (identifier: string) => Promise<number>;
|
|
3876
|
+
has: (identifier: string, minQuantity?: number) => Promise<boolean>;
|
|
3877
|
+
};
|
|
3878
|
+
scores: {
|
|
3879
|
+
get: (userIdOrOptions?: string | {
|
|
3880
|
+
limit?: number;
|
|
3881
|
+
gameId?: string;
|
|
3882
|
+
}, options?: {
|
|
3883
|
+
limit?: number;
|
|
3884
|
+
gameId?: string;
|
|
3885
|
+
}) => Promise<UserScore[]>;
|
|
3886
|
+
};
|
|
3887
|
+
};
|
|
3888
|
+
/** Developer tools (auth, games, keys management) */
|
|
3889
|
+
dev: {
|
|
3890
|
+
status: {
|
|
3891
|
+
apply: () => Promise<void>;
|
|
3892
|
+
get: () => Promise<DeveloperStatusValue>;
|
|
3893
|
+
};
|
|
3894
|
+
games: {
|
|
3895
|
+
upsert: (slug: string, metadata: UpsertGameMetadataInput, file: File | Blob | null, hooks?: DevUploadHooks) => Promise<Game>;
|
|
3896
|
+
update: (gameId: string, props: Partial<Game>) => Promise<void>;
|
|
3897
|
+
delete: (gameId: string) => Promise<void>;
|
|
3898
|
+
};
|
|
3899
|
+
keys: {
|
|
3900
|
+
create: (label?: string) => Promise<{
|
|
3901
|
+
id: string;
|
|
3902
|
+
createdAt: Date;
|
|
3903
|
+
userId: string;
|
|
3904
|
+
label: string | null;
|
|
3905
|
+
keyHash: string;
|
|
3906
|
+
}>;
|
|
3907
|
+
list: () => Promise<{
|
|
3908
|
+
id: string;
|
|
3909
|
+
createdAt: Date;
|
|
3910
|
+
userId: string;
|
|
3911
|
+
label: string | null;
|
|
3912
|
+
keyHash: string;
|
|
3913
|
+
}[]>;
|
|
3914
|
+
revoke: (keyId: string) => Promise<void>;
|
|
3915
|
+
};
|
|
3916
|
+
items: {
|
|
3917
|
+
create: (gameId: string, slug: string, itemData: Omit<InsertItemInput, "slug" | "gameId">) => Promise<Item>;
|
|
3918
|
+
update: (gameId: string, itemId: string, updates: UpdateItemInput) => Promise<Item>;
|
|
3919
|
+
list: (gameId: string) => Promise<Array<Item>>;
|
|
3920
|
+
get: (gameId: string, slug: string) => Promise<Item>;
|
|
3921
|
+
delete: (gameId: string, itemId: string) => Promise<void>;
|
|
3922
|
+
shop: {
|
|
3923
|
+
create: (gameId: string, itemId: string, listingData: Omit<InsertShopListingInput, "itemId">) => Promise<ShopListing>;
|
|
3924
|
+
get: (gameId: string, itemId: string) => Promise<ShopListing | null>;
|
|
3925
|
+
update: (gameId: string, itemId: string, updates: UpdateShopListingInput) => Promise<ShopListing>;
|
|
3926
|
+
delete: (gameId: string, itemId: string) => Promise<void>;
|
|
3927
|
+
list: (gameId: string) => Promise<Array<ShopListing & {
|
|
3928
|
+
item: Item;
|
|
3929
|
+
}>>;
|
|
3930
|
+
};
|
|
3931
|
+
};
|
|
3932
|
+
};
|
|
3933
|
+
/** Map methods (elements) */
|
|
3934
|
+
maps: {
|
|
3935
|
+
get: (identifier: string) => Promise<MapData>;
|
|
3936
|
+
elements: (mapId: string) => Promise<MapElementWithGame[]>;
|
|
3937
|
+
objects: {
|
|
3938
|
+
list: (mapId: string) => Promise<MapObjectWithItem[]>;
|
|
3939
|
+
create: (mapId: string, objectData: CreateMapObjectData) => Promise<MapObjectWithItem>;
|
|
3940
|
+
delete: (mapId: string, objectId: string) => Promise<void>;
|
|
3941
|
+
};
|
|
3942
|
+
};
|
|
3943
|
+
/** Admin methods (games, items, currencies, shop listings) */
|
|
3944
|
+
admin: {
|
|
3945
|
+
games: {
|
|
3946
|
+
pauseGame: (gameId: string) => Promise<void>;
|
|
3947
|
+
resumeGame: (gameId: string) => Promise<void>;
|
|
3948
|
+
};
|
|
3949
|
+
items: {
|
|
3950
|
+
create: (props: InsertItemInput) => Promise<{
|
|
3951
|
+
id: string;
|
|
3952
|
+
createdAt: Date;
|
|
3953
|
+
type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
|
|
3954
|
+
gameId: string | null;
|
|
3955
|
+
slug: string;
|
|
3956
|
+
displayName: string;
|
|
3957
|
+
metadata: unknown;
|
|
3958
|
+
description: string | null;
|
|
3959
|
+
isPlaceable: boolean;
|
|
3960
|
+
imageUrl: string | null;
|
|
3961
|
+
}>;
|
|
3962
|
+
get: (itemId: string) => Promise<{
|
|
3963
|
+
id: string;
|
|
3964
|
+
createdAt: Date;
|
|
3965
|
+
type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
|
|
3966
|
+
gameId: string | null;
|
|
3967
|
+
slug: string;
|
|
3968
|
+
displayName: string;
|
|
3969
|
+
metadata: unknown;
|
|
3970
|
+
description: string | null;
|
|
3971
|
+
isPlaceable: boolean;
|
|
3972
|
+
imageUrl: string | null;
|
|
3973
|
+
}>;
|
|
3974
|
+
list: () => Promise<{
|
|
3975
|
+
id: string;
|
|
3976
|
+
createdAt: Date;
|
|
3977
|
+
type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
|
|
3978
|
+
gameId: string | null;
|
|
3979
|
+
slug: string;
|
|
3980
|
+
displayName: string;
|
|
3981
|
+
metadata: unknown;
|
|
3982
|
+
description: string | null;
|
|
3983
|
+
isPlaceable: boolean;
|
|
3984
|
+
imageUrl: string | null;
|
|
3985
|
+
}[]>;
|
|
3986
|
+
update: (itemId: string, props: UpdateItemInput) => Promise<{
|
|
3987
|
+
id: string;
|
|
3988
|
+
createdAt: Date;
|
|
3989
|
+
type: "currency" | "badge" | "trophy" | "collectible" | "consumable" | "unlock" | "upgrade" | "accessory" | "other";
|
|
3990
|
+
gameId: string | null;
|
|
3991
|
+
slug: string;
|
|
3992
|
+
displayName: string;
|
|
3993
|
+
metadata: unknown;
|
|
3994
|
+
description: string | null;
|
|
3995
|
+
isPlaceable: boolean;
|
|
3996
|
+
imageUrl: string | null;
|
|
3997
|
+
}>;
|
|
3998
|
+
delete: (itemId: string) => Promise<void>;
|
|
3999
|
+
};
|
|
4000
|
+
currencies: {
|
|
4001
|
+
create: (props: InsertCurrencyInput) => Promise<{
|
|
4002
|
+
symbol: string | null;
|
|
4003
|
+
id: string;
|
|
4004
|
+
createdAt: Date;
|
|
4005
|
+
updatedAt: Date | null;
|
|
4006
|
+
itemId: string;
|
|
4007
|
+
isPrimary: boolean;
|
|
4008
|
+
}>;
|
|
4009
|
+
get: (currencyId: string) => Promise<{
|
|
4010
|
+
symbol: string | null;
|
|
4011
|
+
id: string;
|
|
4012
|
+
createdAt: Date;
|
|
4013
|
+
updatedAt: Date | null;
|
|
4014
|
+
itemId: string;
|
|
4015
|
+
isPrimary: boolean;
|
|
4016
|
+
}>;
|
|
4017
|
+
list: () => Promise<{
|
|
4018
|
+
symbol: string | null;
|
|
4019
|
+
id: string;
|
|
4020
|
+
createdAt: Date;
|
|
4021
|
+
updatedAt: Date | null;
|
|
4022
|
+
itemId: string;
|
|
4023
|
+
isPrimary: boolean;
|
|
4024
|
+
}[]>;
|
|
4025
|
+
update: (currencyId: string, props: UpdateCurrencyInput) => Promise<{
|
|
4026
|
+
symbol: string | null;
|
|
4027
|
+
id: string;
|
|
4028
|
+
createdAt: Date;
|
|
4029
|
+
updatedAt: Date | null;
|
|
4030
|
+
itemId: string;
|
|
4031
|
+
isPrimary: boolean;
|
|
4032
|
+
}>;
|
|
4033
|
+
delete: (currencyId: string) => Promise<void>;
|
|
4034
|
+
};
|
|
4035
|
+
shopListings: {
|
|
4036
|
+
create: (props: InsertShopListingInput) => Promise<{
|
|
4037
|
+
id: string;
|
|
4038
|
+
createdAt: Date;
|
|
4039
|
+
updatedAt: Date | null;
|
|
4040
|
+
itemId: string;
|
|
4041
|
+
currencyId: string;
|
|
4042
|
+
price: number;
|
|
4043
|
+
sellBackPercentage: number | null;
|
|
4044
|
+
stock: number | null;
|
|
4045
|
+
isActive: boolean;
|
|
4046
|
+
availableFrom: Date | null;
|
|
4047
|
+
availableUntil: Date | null;
|
|
4048
|
+
}>;
|
|
4049
|
+
get: (listingId: string) => Promise<{
|
|
4050
|
+
id: string;
|
|
4051
|
+
createdAt: Date;
|
|
4052
|
+
updatedAt: Date | null;
|
|
4053
|
+
itemId: string;
|
|
4054
|
+
currencyId: string;
|
|
4055
|
+
price: number;
|
|
4056
|
+
sellBackPercentage: number | null;
|
|
4057
|
+
stock: number | null;
|
|
4058
|
+
isActive: boolean;
|
|
4059
|
+
availableFrom: Date | null;
|
|
4060
|
+
availableUntil: Date | null;
|
|
4061
|
+
}>;
|
|
4062
|
+
list: () => Promise<{
|
|
4063
|
+
id: string;
|
|
4064
|
+
createdAt: Date;
|
|
4065
|
+
updatedAt: Date | null;
|
|
4066
|
+
itemId: string;
|
|
4067
|
+
currencyId: string;
|
|
4068
|
+
price: number;
|
|
4069
|
+
sellBackPercentage: number | null;
|
|
4070
|
+
stock: number | null;
|
|
4071
|
+
isActive: boolean;
|
|
4072
|
+
availableFrom: Date | null;
|
|
4073
|
+
availableUntil: Date | null;
|
|
4074
|
+
}[]>;
|
|
4075
|
+
update: (listingId: string, props: UpdateShopListingInput) => Promise<{
|
|
4076
|
+
id: string;
|
|
4077
|
+
createdAt: Date;
|
|
4078
|
+
updatedAt: Date | null;
|
|
4079
|
+
itemId: string;
|
|
4080
|
+
currencyId: string;
|
|
4081
|
+
price: number;
|
|
4082
|
+
sellBackPercentage: number | null;
|
|
4083
|
+
stock: number | null;
|
|
4084
|
+
isActive: boolean;
|
|
4085
|
+
availableFrom: Date | null;
|
|
4086
|
+
availableUntil: Date | null;
|
|
4087
|
+
}>;
|
|
4088
|
+
delete: (listingId: string) => Promise<void>;
|
|
4089
|
+
};
|
|
4090
|
+
};
|
|
4091
|
+
/** Shop methods (view) */
|
|
4092
|
+
shop: {
|
|
4093
|
+
view: () => Promise<ShopViewResponse>;
|
|
4094
|
+
};
|
|
4095
|
+
/** Level methods (levels) */
|
|
4096
|
+
levels: {
|
|
4097
|
+
get: () => Promise<UserLevel>;
|
|
4098
|
+
progress: (options?: CooldownCacheConfig) => Promise<{
|
|
4099
|
+
level: number;
|
|
4100
|
+
currentXp: number;
|
|
4101
|
+
xpToNextLevel: number;
|
|
4102
|
+
totalXP: number;
|
|
4103
|
+
}>;
|
|
4104
|
+
config: {
|
|
4105
|
+
list: () => Promise<LevelConfig[]>;
|
|
4106
|
+
get: (level: number) => Promise<LevelConfig | null>;
|
|
4107
|
+
};
|
|
4108
|
+
};
|
|
4109
|
+
/** TimeBack XP methods (today, total, history) */
|
|
4110
|
+
timeback: {
|
|
4111
|
+
xp: {
|
|
4112
|
+
today: (options?: {
|
|
4113
|
+
date?: string;
|
|
4114
|
+
timezone?: string;
|
|
4115
|
+
}) => Promise<TodayXpResponse>;
|
|
4116
|
+
total: () => Promise<TotalXpResponse>;
|
|
4117
|
+
history: (options?: {
|
|
4118
|
+
startDate?: string;
|
|
4119
|
+
endDate?: string;
|
|
4120
|
+
}) => Promise<XpHistoryResponse>;
|
|
4121
|
+
summary: (options?: {
|
|
4122
|
+
date?: string;
|
|
4123
|
+
timezone?: string;
|
|
4124
|
+
}) => Promise<XpSummaryResponse>;
|
|
4125
|
+
};
|
|
4126
|
+
};
|
|
4127
|
+
/** Telemetry methods (pushMetrics) */
|
|
4128
|
+
telemetry: {
|
|
4129
|
+
pushMetrics: (metrics: Record<string, number>) => Promise<void>;
|
|
4130
|
+
};
|
|
4131
|
+
/** Credits methods (credits management) */
|
|
4132
|
+
credits: {
|
|
4133
|
+
balance: () => Promise<number>;
|
|
4134
|
+
add: (amount: number) => Promise<number>;
|
|
4135
|
+
spend: (amount: number) => Promise<number>;
|
|
4136
|
+
};
|
|
4137
|
+
/** Platform-wide leaderboard methods (fetch, getUserRank) */
|
|
4138
|
+
leaderboard: {
|
|
4139
|
+
fetch: (options?: LeaderboardOptions) => Promise<GameLeaderboardEntry[]>;
|
|
4140
|
+
getUserRank: (gameId: string, userId: string) => Promise<UserRankResponse>;
|
|
4141
|
+
};
|
|
4142
|
+
/** Platform-wide scores methods (submit, getUserScores) */
|
|
4143
|
+
scores: {
|
|
4144
|
+
submit: (gameId: string, score: number, metadata?: Record<string, unknown>) => Promise<ScoreSubmission>;
|
|
4145
|
+
getByUser: (gameId: string, userId: string, options?: {
|
|
4146
|
+
limit?: number;
|
|
4147
|
+
}) => Promise<UserScore$1[]>;
|
|
4148
|
+
};
|
|
4149
|
+
/** Character methods (get, create, update, components) */
|
|
4150
|
+
character: {
|
|
4151
|
+
get: (userId?: string) => Promise<PlayerCharacter | null>;
|
|
4152
|
+
create: (characterData: CreateCharacterData) => Promise<PlayerCharacter>;
|
|
4153
|
+
update: (updates: UpdateCharacterData) => Promise<PlayerCharacter>;
|
|
4154
|
+
components: {
|
|
4155
|
+
list: (options?: CharacterComponentsOptions & TTLCacheConfig) => Promise<CharacterComponentWithSpriteUrl[]>;
|
|
4156
|
+
clearCache: (key?: string) => void;
|
|
4157
|
+
getCacheKeys: () => string[];
|
|
4158
|
+
};
|
|
4159
|
+
accessories: {
|
|
4160
|
+
equip: (slot: string, componentId: string) => Promise<PlayerCharacterAccessory>;
|
|
4161
|
+
remove: (slot: string) => Promise<{
|
|
4162
|
+
success: boolean;
|
|
4163
|
+
}>;
|
|
4164
|
+
list: () => Promise<PlayerCharacterAccessory[]>;
|
|
4165
|
+
};
|
|
4166
|
+
};
|
|
4167
|
+
/** Sprites methods (templates) */
|
|
4168
|
+
sprites: {
|
|
4169
|
+
templates: {
|
|
4170
|
+
get: (slug: string) => Promise<SpriteTemplateData>;
|
|
4171
|
+
};
|
|
4172
|
+
};
|
|
4173
|
+
/** Realtime methods (token) */
|
|
4174
|
+
realtime: {
|
|
4175
|
+
token: {
|
|
4176
|
+
get: () => Promise<RealtimeTokenResponse>;
|
|
4177
|
+
};
|
|
4178
|
+
open(channel?: string, url?: string): Promise<_playcademy_realtime_server_types.RealtimeChannel>;
|
|
4179
|
+
};
|
|
4180
|
+
/** Achievements methods (list, history, progress) */
|
|
4181
|
+
achievements: {
|
|
4182
|
+
list: (options?: TTLCacheConfig) => Promise<AchievementCurrent[]>;
|
|
4183
|
+
history: {
|
|
4184
|
+
list: (queryOptions?: {
|
|
4185
|
+
limit?: number;
|
|
4186
|
+
}, cacheOptions?: TTLCacheConfig) => Promise<AchievementHistoryEntry[]>;
|
|
4187
|
+
};
|
|
4188
|
+
progress: {
|
|
4189
|
+
submit: (achievementId: string) => Promise<AchievementProgressResponse>;
|
|
4190
|
+
};
|
|
4191
|
+
};
|
|
4192
|
+
/** Auto-initializes a PlaycademyClient with context from the environment */
|
|
4193
|
+
static init: typeof init;
|
|
4194
|
+
/** Authenticates a user with email and password */
|
|
4195
|
+
static login: typeof login;
|
|
4196
|
+
/** Static identity utilities for OAuth operations */
|
|
4197
|
+
static identity: {
|
|
4198
|
+
parseOAuthState: typeof parseOAuthState;
|
|
4199
|
+
};
|
|
4200
|
+
}
|
|
4201
|
+
|
|
4202
|
+
interface ClientConfig {
|
|
7
4203
|
baseUrl: string;
|
|
8
4204
|
token?: string;
|
|
9
4205
|
gameId?: string;
|
|
4206
|
+
autoStartSession?: boolean;
|
|
10
4207
|
}
|
|
11
|
-
|
|
4208
|
+
interface InitPayload {
|
|
12
4209
|
baseUrl: string;
|
|
13
4210
|
token: string;
|
|
14
4211
|
gameId: string;
|
|
15
4212
|
realtimeUrl?: string;
|
|
16
|
-
user?: AuthenticatedUser;
|
|
17
4213
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
export type AuthProviderType = (typeof AuthProvider)[keyof typeof AuthProvider];
|
|
22
|
-
export interface AuthOptions {
|
|
4214
|
+
type AuthProviderType = (typeof AuthProvider)[keyof typeof AuthProvider];
|
|
4215
|
+
interface AuthOptions {
|
|
23
4216
|
/** The identity provider to use for authentication */
|
|
24
4217
|
provider: AuthProviderType;
|
|
25
4218
|
/** The OAuth callback URL where your server handles the callback */
|
|
@@ -42,7 +4235,7 @@ export interface AuthOptions {
|
|
|
42
4235
|
*/
|
|
43
4236
|
stateData?: Record<string, string>;
|
|
44
4237
|
}
|
|
45
|
-
|
|
4238
|
+
interface AuthStateUpdate {
|
|
46
4239
|
/** Current status of the authentication flow */
|
|
47
4240
|
status: 'opening_popup' | 'exchanging_token' | 'complete' | 'error';
|
|
48
4241
|
/** Human-readable message about the current state */
|
|
@@ -50,7 +4243,7 @@ export interface AuthStateUpdate {
|
|
|
50
4243
|
/** Error details if status is 'error' */
|
|
51
4244
|
error?: Error;
|
|
52
4245
|
}
|
|
53
|
-
|
|
4246
|
+
interface AuthResult {
|
|
54
4247
|
/** Whether authentication was successful */
|
|
55
4248
|
success: boolean;
|
|
56
4249
|
/** User information if authentication was successful */
|
|
@@ -58,23 +4251,29 @@ export interface AuthResult {
|
|
|
58
4251
|
/** Error if authentication failed */
|
|
59
4252
|
error?: Error;
|
|
60
4253
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
|
|
4254
|
+
/**
|
|
4255
|
+
* Simplified user data passed to games via InitPayload
|
|
4256
|
+
* This is a subset of AuthenticatedUser suitable for external game consumption
|
|
4257
|
+
*/
|
|
4258
|
+
interface GameUser {
|
|
4259
|
+
/** Playcademy user ID */
|
|
4260
|
+
id: string;
|
|
4261
|
+
/** Unique username */
|
|
4262
|
+
username: string | null;
|
|
4263
|
+
/** Display name */
|
|
4264
|
+
name: string | null;
|
|
4265
|
+
/** Email address */
|
|
4266
|
+
email: string | null;
|
|
4267
|
+
/** Profile image URL */
|
|
4268
|
+
image: string | null;
|
|
4269
|
+
/** Whether the user has a Timeback account */
|
|
4270
|
+
hasTimebackAccount: boolean;
|
|
72
4271
|
}
|
|
73
4272
|
/**
|
|
74
4273
|
* Authentication state change event payload.
|
|
75
4274
|
* Used when authentication state changes in the application.
|
|
76
4275
|
*/
|
|
77
|
-
|
|
4276
|
+
interface AuthStateChangePayload {
|
|
78
4277
|
/** Whether the user is currently authenticated */
|
|
79
4278
|
authenticated: boolean;
|
|
80
4279
|
/** User information if authenticated, null otherwise */
|
|
@@ -86,7 +4285,7 @@ export interface AuthStateChangePayload {
|
|
|
86
4285
|
* OAuth callback event payload.
|
|
87
4286
|
* Used when OAuth flow completes in popup/new-tab windows.
|
|
88
4287
|
*/
|
|
89
|
-
|
|
4288
|
+
interface AuthCallbackPayload {
|
|
90
4289
|
/** OAuth authorization code */
|
|
91
4290
|
code: string;
|
|
92
4291
|
/** OAuth state parameter for CSRF protection */
|
|
@@ -98,7 +4297,7 @@ export interface AuthCallbackPayload {
|
|
|
98
4297
|
* Message sent from server callback to opener window.
|
|
99
4298
|
* This is the standardized format from our server-first architecture.
|
|
100
4299
|
*/
|
|
101
|
-
|
|
4300
|
+
interface AuthServerMessage {
|
|
102
4301
|
/** Type of the message */
|
|
103
4302
|
type: 'PLAYCADEMY_AUTH_STATE_CHANGE';
|
|
104
4303
|
/** Whether the user is currently authenticated */
|
|
@@ -116,7 +4315,7 @@ export interface AuthServerMessage {
|
|
|
116
4315
|
* Token refresh event payload.
|
|
117
4316
|
* Sent when authentication token is updated.
|
|
118
4317
|
*/
|
|
119
|
-
|
|
4318
|
+
interface TokenRefreshPayload {
|
|
120
4319
|
/** New authentication token */
|
|
121
4320
|
token: string;
|
|
122
4321
|
/** Token expiration timestamp */
|
|
@@ -126,7 +4325,7 @@ export interface TokenRefreshPayload {
|
|
|
126
4325
|
* Telemetry event payload.
|
|
127
4326
|
* Performance metrics sent from the game.
|
|
128
4327
|
*/
|
|
129
|
-
|
|
4328
|
+
interface TelemetryPayload {
|
|
130
4329
|
/** Frames per second */
|
|
131
4330
|
fps: number;
|
|
132
4331
|
/** Memory usage in MB */
|
|
@@ -136,7 +4335,7 @@ export interface TelemetryPayload {
|
|
|
136
4335
|
* Keyboard event payload.
|
|
137
4336
|
* Key events forwarded from the game.
|
|
138
4337
|
*/
|
|
139
|
-
|
|
4338
|
+
interface KeyEventPayload {
|
|
140
4339
|
/** Key value (e.g., 'Escape', 'F1') */
|
|
141
4340
|
key: string;
|
|
142
4341
|
/** Key code (optional) */
|
|
@@ -144,7 +4343,7 @@ export interface KeyEventPayload {
|
|
|
144
4343
|
/** Event type */
|
|
145
4344
|
type: 'keydown' | 'keyup';
|
|
146
4345
|
}
|
|
147
|
-
|
|
4346
|
+
interface ClientEvents {
|
|
148
4347
|
authChange: {
|
|
149
4348
|
token: string | null;
|
|
150
4349
|
};
|
|
@@ -164,30 +4363,30 @@ export interface ClientEvents {
|
|
|
164
4363
|
leveledUp: boolean;
|
|
165
4364
|
};
|
|
166
4365
|
}
|
|
167
|
-
|
|
4366
|
+
type GameContextPayload = {
|
|
168
4367
|
token: string;
|
|
169
4368
|
baseUrl: string;
|
|
170
4369
|
realtimeUrl: string;
|
|
171
4370
|
gameId: string;
|
|
172
4371
|
forwardKeys?: string[];
|
|
173
4372
|
};
|
|
174
|
-
|
|
4373
|
+
type EventListeners = {
|
|
175
4374
|
[E in keyof ClientEvents]?: Array<(payload: ClientEvents[E]) => void>;
|
|
176
4375
|
};
|
|
177
|
-
|
|
4376
|
+
type LoginResponse = {
|
|
178
4377
|
token: string;
|
|
179
4378
|
};
|
|
180
|
-
|
|
4379
|
+
type GameTokenResponse = {
|
|
181
4380
|
token: string;
|
|
182
4381
|
exp: number;
|
|
183
4382
|
};
|
|
184
|
-
|
|
4383
|
+
type StartSessionResponse = {
|
|
185
4384
|
sessionId: string;
|
|
186
4385
|
};
|
|
187
|
-
|
|
4386
|
+
type InventoryMutationResponse = {
|
|
188
4387
|
newTotal: number;
|
|
189
4388
|
};
|
|
190
|
-
|
|
4389
|
+
type DevUploadEvent = {
|
|
191
4390
|
type: 'init';
|
|
192
4391
|
} | {
|
|
193
4392
|
type: 's3Progress';
|
|
@@ -206,7 +4405,10 @@ export type DevUploadEvent = {
|
|
|
206
4405
|
} | {
|
|
207
4406
|
type: 'close';
|
|
208
4407
|
};
|
|
209
|
-
|
|
4408
|
+
type DevUploadHooks = {
|
|
210
4409
|
onEvent?: (e: DevUploadEvent) => void;
|
|
211
4410
|
onClose?: () => void;
|
|
212
4411
|
};
|
|
4412
|
+
|
|
4413
|
+
export { PlaycademyClient };
|
|
4414
|
+
export type { Achievement, AchievementCurrent, AchievementProgressResponse, AuthCallbackPayload, AuthOptions, AuthProviderType, AuthResult, AuthServerMessage, AuthStateChangePayload, AuthStateUpdate, AuthenticatedUser, CharacterComponent, CharacterComponentWithSpriteUrl, ClientConfig, ClientEvents, Currency, DevUploadEvent, DevUploadHooks, DeveloperKey, DeveloperStatusResponse, EventListeners, ExternalGame, Game, GameContextPayload, GameLeaderboardEntry, GameSession, GameStateData, GameTokenResponse, GameUser, HostedGame, HostedGameWithManifest, InitPayload, InventoryItem, InventoryItemWithItem, InventoryMutationResponse, Item, KeyEventPayload, LeaderboardEntry, LevelConfig, LoginResponse, ManifestV1, Map, MapElement, MapElementWithGame, MapObject, MapObjectWithItem, PlayerCharacter, ShopCurrency, ShopDisplayItem, ShopViewResponse, SpriteTemplate, SpriteTemplateData, StartSessionResponse, TelemetryPayload, TodayXpResponse, TokenRefreshPayload, TotalXpResponse, User, UserInfo, UserLevel, UserLevelWithConfig, UserRank, UserRankResponse, UserRoleEnumType, UserScore$1 as UserScore, XpHistoryResponse };
|