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