tempest.games 0.1.42 → 0.1.44

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.
@@ -0,0 +1,483 @@
1
+ {
2
+ "id": "95d65a25-90fa-4a68-bba8-1a6906b20aee",
3
+ "prevId": "b72f288a-d9d9-449c-a950-0b39ca7f8e9b",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.banishedIps": {
8
+ "name": "banishedIps",
9
+ "schema": "",
10
+ "columns": {
11
+ "ip": {
12
+ "name": "ip",
13
+ "type": "varchar(45)",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "reason": {
18
+ "name": "reason",
19
+ "type": "varchar(2048)",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "banishedAt": {
24
+ "name": "banishedAt",
25
+ "type": "timestamp with time zone",
26
+ "primaryKey": false,
27
+ "notNull": true,
28
+ "default": "now()"
29
+ },
30
+ "banishedUntil": {
31
+ "name": "banishedUntil",
32
+ "type": "timestamp with time zone",
33
+ "primaryKey": false,
34
+ "notNull": false
35
+ }
36
+ },
37
+ "indexes": {},
38
+ "foreignKeys": {},
39
+ "compositePrimaryKeys": {},
40
+ "uniqueConstraints": {},
41
+ "policies": {},
42
+ "checkConstraints": {},
43
+ "isRLSEnabled": false
44
+ },
45
+ "public.games": {
46
+ "name": "games",
47
+ "schema": "",
48
+ "columns": {
49
+ "id": {
50
+ "name": "id",
51
+ "type": "uuid",
52
+ "primaryKey": true,
53
+ "notNull": true,
54
+ "default": "gen_random_uuid()"
55
+ }
56
+ },
57
+ "indexes": {},
58
+ "foreignKeys": {},
59
+ "compositePrimaryKeys": {},
60
+ "uniqueConstraints": {},
61
+ "policies": {},
62
+ "checkConstraints": {},
63
+ "isRLSEnabled": false
64
+ },
65
+ "public.loginHistory": {
66
+ "name": "loginHistory",
67
+ "schema": "",
68
+ "columns": {
69
+ "id": {
70
+ "name": "id",
71
+ "type": "uuid",
72
+ "primaryKey": true,
73
+ "notNull": true,
74
+ "default": "gen_random_uuid()"
75
+ },
76
+ "userId": {
77
+ "name": "userId",
78
+ "type": "uuid",
79
+ "primaryKey": false,
80
+ "notNull": false
81
+ },
82
+ "loginTime": {
83
+ "name": "loginTime",
84
+ "type": "timestamp with time zone",
85
+ "primaryKey": false,
86
+ "notNull": true,
87
+ "default": "now()"
88
+ },
89
+ "ipAddress": {
90
+ "name": "ipAddress",
91
+ "type": "varchar(45)",
92
+ "primaryKey": false,
93
+ "notNull": true
94
+ },
95
+ "userAgent": {
96
+ "name": "userAgent",
97
+ "type": "varchar(1024)",
98
+ "primaryKey": false,
99
+ "notNull": false
100
+ },
101
+ "successful": {
102
+ "name": "successful",
103
+ "type": "boolean",
104
+ "primaryKey": false,
105
+ "notNull": true,
106
+ "default": false
107
+ }
108
+ },
109
+ "indexes": {},
110
+ "foreignKeys": {
111
+ "loginHistory_userId_users_id_fk": {
112
+ "name": "loginHistory_userId_users_id_fk",
113
+ "tableFrom": "loginHistory",
114
+ "tableTo": "users",
115
+ "columnsFrom": [
116
+ "userId"
117
+ ],
118
+ "columnsTo": [
119
+ "id"
120
+ ],
121
+ "onDelete": "cascade",
122
+ "onUpdate": "no action"
123
+ }
124
+ },
125
+ "compositePrimaryKeys": {},
126
+ "uniqueConstraints": {},
127
+ "policies": {},
128
+ "checkConstraints": {},
129
+ "isRLSEnabled": false
130
+ },
131
+ "public.passwordResetAttempts": {
132
+ "name": "passwordResetAttempts",
133
+ "schema": "",
134
+ "columns": {
135
+ "id": {
136
+ "name": "id",
137
+ "type": "uuid",
138
+ "primaryKey": true,
139
+ "notNull": true,
140
+ "default": "gen_random_uuid()"
141
+ },
142
+ "userId": {
143
+ "name": "userId",
144
+ "type": "uuid",
145
+ "primaryKey": false,
146
+ "notNull": true
147
+ },
148
+ "requestedIp": {
149
+ "name": "requestedIp",
150
+ "type": "varchar(45)",
151
+ "primaryKey": false,
152
+ "notNull": true
153
+ },
154
+ "requestedAt": {
155
+ "name": "requestedAt",
156
+ "type": "timestamp with time zone",
157
+ "primaryKey": false,
158
+ "notNull": true,
159
+ "default": "now()"
160
+ },
161
+ "succeededIp": {
162
+ "name": "succeededIp",
163
+ "type": "varchar(45)",
164
+ "primaryKey": false,
165
+ "notNull": false
166
+ },
167
+ "succeededAt": {
168
+ "name": "succeededAt",
169
+ "type": "timestamp with time zone",
170
+ "primaryKey": false,
171
+ "notNull": false
172
+ },
173
+ "verificationMethod": {
174
+ "name": "verificationMethod",
175
+ "type": "twoFactorMethod",
176
+ "typeSchema": "public",
177
+ "primaryKey": false,
178
+ "notNull": true
179
+ }
180
+ },
181
+ "indexes": {},
182
+ "foreignKeys": {
183
+ "passwordResetAttempts_userId_users_id_fk": {
184
+ "name": "passwordResetAttempts_userId_users_id_fk",
185
+ "tableFrom": "passwordResetAttempts",
186
+ "tableTo": "users",
187
+ "columnsFrom": [
188
+ "userId"
189
+ ],
190
+ "columnsTo": [
191
+ "id"
192
+ ],
193
+ "onDelete": "cascade",
194
+ "onUpdate": "no action"
195
+ }
196
+ },
197
+ "compositePrimaryKeys": {},
198
+ "uniqueConstraints": {},
199
+ "policies": {},
200
+ "checkConstraints": {},
201
+ "isRLSEnabled": false
202
+ },
203
+ "public.players": {
204
+ "name": "players",
205
+ "schema": "",
206
+ "columns": {
207
+ "userId": {
208
+ "name": "userId",
209
+ "type": "uuid",
210
+ "primaryKey": false,
211
+ "notNull": true
212
+ },
213
+ "gameId": {
214
+ "name": "gameId",
215
+ "type": "uuid",
216
+ "primaryKey": false,
217
+ "notNull": true
218
+ },
219
+ "score": {
220
+ "name": "score",
221
+ "type": "integer",
222
+ "primaryKey": false,
223
+ "notNull": true
224
+ }
225
+ },
226
+ "indexes": {},
227
+ "foreignKeys": {
228
+ "players_userId_users_id_fk": {
229
+ "name": "players_userId_users_id_fk",
230
+ "tableFrom": "players",
231
+ "tableTo": "users",
232
+ "columnsFrom": [
233
+ "userId"
234
+ ],
235
+ "columnsTo": [
236
+ "id"
237
+ ],
238
+ "onDelete": "cascade",
239
+ "onUpdate": "no action"
240
+ },
241
+ "players_gameId_games_id_fk": {
242
+ "name": "players_gameId_games_id_fk",
243
+ "tableFrom": "players",
244
+ "tableTo": "games",
245
+ "columnsFrom": [
246
+ "gameId"
247
+ ],
248
+ "columnsTo": [
249
+ "id"
250
+ ],
251
+ "onDelete": "cascade",
252
+ "onUpdate": "no action"
253
+ }
254
+ },
255
+ "compositePrimaryKeys": {
256
+ "players_userId_gameId_pk": {
257
+ "name": "players_userId_gameId_pk",
258
+ "columns": [
259
+ "userId",
260
+ "gameId"
261
+ ]
262
+ }
263
+ },
264
+ "uniqueConstraints": {},
265
+ "policies": {},
266
+ "checkConstraints": {},
267
+ "isRLSEnabled": false
268
+ },
269
+ "public.userChanges": {
270
+ "name": "userChanges",
271
+ "schema": "",
272
+ "columns": {
273
+ "id": {
274
+ "name": "id",
275
+ "type": "uuid",
276
+ "primaryKey": true,
277
+ "notNull": true,
278
+ "default": "gen_random_uuid()"
279
+ },
280
+ "userId": {
281
+ "name": "userId",
282
+ "type": "uuid",
283
+ "primaryKey": false,
284
+ "notNull": true
285
+ },
286
+ "changedAt": {
287
+ "name": "changedAt",
288
+ "type": "timestamp with time zone",
289
+ "primaryKey": false,
290
+ "notNull": true,
291
+ "default": "now()"
292
+ },
293
+ "changedIp": {
294
+ "name": "changedIp",
295
+ "type": "varchar(45)",
296
+ "primaryKey": false,
297
+ "notNull": true
298
+ },
299
+ "changedColumn": {
300
+ "name": "changedColumn",
301
+ "type": "trackedUserColumnName",
302
+ "typeSchema": "public",
303
+ "primaryKey": false,
304
+ "notNull": true
305
+ },
306
+ "oldValue": {
307
+ "name": "oldValue",
308
+ "type": "varchar(255)",
309
+ "primaryKey": false,
310
+ "notNull": false
311
+ },
312
+ "newValue": {
313
+ "name": "newValue",
314
+ "type": "varchar(255)",
315
+ "primaryKey": false,
316
+ "notNull": false
317
+ }
318
+ },
319
+ "indexes": {},
320
+ "foreignKeys": {
321
+ "userChanges_userId_users_id_fk": {
322
+ "name": "userChanges_userId_users_id_fk",
323
+ "tableFrom": "userChanges",
324
+ "tableTo": "users",
325
+ "columnsFrom": [
326
+ "userId"
327
+ ],
328
+ "columnsTo": [
329
+ "id"
330
+ ],
331
+ "onDelete": "cascade",
332
+ "onUpdate": "no action"
333
+ }
334
+ },
335
+ "compositePrimaryKeys": {},
336
+ "uniqueConstraints": {},
337
+ "policies": {},
338
+ "checkConstraints": {},
339
+ "isRLSEnabled": false
340
+ },
341
+ "public.users": {
342
+ "name": "users",
343
+ "schema": "",
344
+ "columns": {
345
+ "id": {
346
+ "name": "id",
347
+ "type": "uuid",
348
+ "primaryKey": true,
349
+ "notNull": true,
350
+ "default": "gen_random_uuid()"
351
+ },
352
+ "username": {
353
+ "name": "username",
354
+ "type": "varchar(16)",
355
+ "primaryKey": false,
356
+ "notNull": true
357
+ },
358
+ "email": {
359
+ "name": "email",
360
+ "type": "varchar(254)",
361
+ "primaryKey": false,
362
+ "notNull": true
363
+ },
364
+ "password": {
365
+ "name": "password",
366
+ "type": "varchar(254)",
367
+ "primaryKey": false,
368
+ "notNull": true
369
+ },
370
+ "createdAt": {
371
+ "name": "createdAt",
372
+ "type": "timestamp with time zone",
373
+ "primaryKey": false,
374
+ "notNull": true,
375
+ "default": "now()"
376
+ },
377
+ "createdIp": {
378
+ "name": "createdIp",
379
+ "type": "varchar(45)",
380
+ "primaryKey": false,
381
+ "notNull": true
382
+ },
383
+ "isActive": {
384
+ "name": "isActive",
385
+ "type": "boolean",
386
+ "primaryKey": false,
387
+ "notNull": true,
388
+ "default": false
389
+ },
390
+ "verifiedAt": {
391
+ "name": "verifiedAt",
392
+ "type": "timestamp with time zone",
393
+ "primaryKey": false,
394
+ "notNull": false
395
+ },
396
+ "userRole": {
397
+ "name": "userRole",
398
+ "type": "role",
399
+ "typeSchema": "public",
400
+ "primaryKey": false,
401
+ "notNull": false,
402
+ "default": "'user'"
403
+ }
404
+ },
405
+ "indexes": {
406
+ "usernameUniqueIndex": {
407
+ "name": "usernameUniqueIndex",
408
+ "columns": [
409
+ {
410
+ "expression": "lower(\"username\")",
411
+ "asc": true,
412
+ "isExpression": true,
413
+ "nulls": "last"
414
+ }
415
+ ],
416
+ "isUnique": true,
417
+ "concurrently": false,
418
+ "method": "btree",
419
+ "with": {}
420
+ },
421
+ "emailUniqueIndex": {
422
+ "name": "emailUniqueIndex",
423
+ "columns": [
424
+ {
425
+ "expression": "lower(\"email\")",
426
+ "asc": true,
427
+ "isExpression": true,
428
+ "nulls": "last"
429
+ }
430
+ ],
431
+ "isUnique": true,
432
+ "concurrently": false,
433
+ "method": "btree",
434
+ "with": {}
435
+ }
436
+ },
437
+ "foreignKeys": {},
438
+ "compositePrimaryKeys": {},
439
+ "uniqueConstraints": {},
440
+ "policies": {},
441
+ "checkConstraints": {},
442
+ "isRLSEnabled": false
443
+ }
444
+ },
445
+ "enums": {
446
+ "public.role": {
447
+ "name": "role",
448
+ "schema": "public",
449
+ "values": [
450
+ "admin",
451
+ "user"
452
+ ]
453
+ },
454
+ "public.trackedUserColumnName": {
455
+ "name": "trackedUserColumnName",
456
+ "schema": "public",
457
+ "values": [
458
+ "username",
459
+ "email",
460
+ "password",
461
+ "userRole"
462
+ ]
463
+ },
464
+ "public.twoFactorMethod": {
465
+ "name": "twoFactorMethod",
466
+ "schema": "public",
467
+ "values": [
468
+ "email",
469
+ "phone"
470
+ ]
471
+ }
472
+ },
473
+ "schemas": {},
474
+ "sequences": {},
475
+ "roles": {},
476
+ "policies": {},
477
+ "views": {},
478
+ "_meta": {
479
+ "columns": {},
480
+ "schemas": {},
481
+ "tables": {}
482
+ }
483
+ }
@@ -64,6 +64,20 @@
64
64
  "when": 1731301770383,
65
65
  "tag": "0008_talented_blur",
66
66
  "breakpoints": true
67
+ },
68
+ {
69
+ "idx": 9,
70
+ "version": "7",
71
+ "when": 1744608830998,
72
+ "tag": "0009_dear_mauler",
73
+ "breakpoints": true
74
+ },
75
+ {
76
+ "idx": 10,
77
+ "version": "7",
78
+ "when": 1744608910962,
79
+ "tag": "0010_lucky_brood",
80
+ "breakpoints": true
67
81
  }
68
82
  ]
69
83
  }
package/drizzle.config.ts CHANGED
@@ -3,7 +3,7 @@ import { defineConfig } from "drizzle-kit"
3
3
 
4
4
  const dbEnvType = type({
5
5
  POSTGRES_HOST: `string`,
6
- POSTGRES_PORT: `number`,
6
+ POSTGRES_PORT: type(`string`).pipe((s) => Number.parseInt(s, 10)),
7
7
  POSTGRES_USER: `string`,
8
8
  POSTGRES_PASSWORD: `string`,
9
9
  POSTGRES_DATABASE: `string`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tempest.games",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -25,11 +25,12 @@
25
25
  "index.html"
26
26
  ],
27
27
  "dependencies": {
28
+ "@node-rs/bcrypt": "1.10.7",
28
29
  "@t3-oss/env-core": "0.12.0",
29
30
  "arktype": "2.1.19",
30
- "cron": "4.1.4",
31
+ "cron": "4.2.0",
31
32
  "drizzle-orm": "0.41.0",
32
- "openai": "4.93.0",
33
+ "openai": "4.94.0",
33
34
  "postgres": "3.4.5",
34
35
  "react": "19.1.0",
35
36
  "react-dom": "19.1.0",
@@ -43,7 +44,7 @@
43
44
  "devDependencies": {
44
45
  "@eslint/js": "9.24.0",
45
46
  "@types/node": "22.14.1",
46
- "@types/react": "19.1.1",
47
+ "@types/react": "19.1.2",
47
48
  "@types/react-dom": "19.1.2",
48
49
  "@vitejs/plugin-react-swc": "3.8.1",
49
50
  "bun-types": "1.2.9",
@@ -59,11 +60,11 @@
59
60
  "sass-embedded": "1.86.3",
60
61
  "tsx": "4.19.3",
61
62
  "typescript": "5.8.3",
62
- "typescript-eslint": "8.29.1",
63
+ "typescript-eslint": "8.30.1",
63
64
  "vite": "6.2.6",
64
65
  "vite-tsconfig-paths": "5.1.4",
65
66
  "vitest": "3.1.1",
66
- "flightdeck": "0.2.24",
67
+ "flightdeck": "0.2.25",
67
68
  "varmint": "0.4.7"
68
69
  },
69
70
  "scripts": {