@openora/core 0.4.1-canary.156 → 0.4.1-canary.158

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.
Files changed (144) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/plugin.d.ts +1 -0
  3. package/dist/admin-console/plugin.d.ts.map +1 -1
  4. package/dist/analytics/plugin.d.ts +1 -0
  5. package/dist/analytics/plugin.d.ts.map +1 -1
  6. package/dist/audit/plugin.d.ts +1 -0
  7. package/dist/audit/plugin.d.ts.map +1 -1
  8. package/dist/audit/plugin.js +26 -0
  9. package/dist/audit/plugin.js.map +1 -1
  10. package/dist/casino/gaming/plugin.d.ts +1 -0
  11. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  12. package/dist/casino/lobby/plugin.d.ts +1 -0
  13. package/dist/casino/lobby/plugin.d.ts.map +1 -1
  14. package/dist/cms/plugin.d.ts +1 -0
  15. package/dist/cms/plugin.d.ts.map +1 -1
  16. package/dist/compliance/contract/index.d.ts +1 -1
  17. package/dist/compliance/contract/rg.d.ts +2 -2
  18. package/dist/compliance/plugin.d.ts +1 -0
  19. package/dist/compliance/plugin.d.ts.map +1 -1
  20. package/dist/compliance/router/index.d.ts +1 -1
  21. package/dist/contracts/adapters/index.d.ts +1 -0
  22. package/dist/contracts/adapters/index.d.ts.map +1 -1
  23. package/dist/contracts/adapters/index.js +1 -0
  24. package/dist/contracts/adapters/index.js.map +1 -1
  25. package/dist/contracts/adapters/session-idle-policy.d.ts +16 -0
  26. package/dist/contracts/adapters/session-idle-policy.d.ts.map +1 -0
  27. package/dist/contracts/adapters/session-idle-policy.js +13 -0
  28. package/dist/contracts/adapters/session-idle-policy.js.map +1 -0
  29. package/dist/contracts/schemas/events.d.ts +28 -0
  30. package/dist/contracts/schemas/events.d.ts.map +1 -1
  31. package/dist/contracts/schemas/events.js +13 -1
  32. package/dist/contracts/schemas/events.js.map +1 -1
  33. package/dist/contracts/schemas/identity.d.ts +38 -0
  34. package/dist/contracts/schemas/identity.d.ts.map +1 -1
  35. package/dist/contracts/schemas/identity.js +31 -0
  36. package/dist/contracts/schemas/identity.js.map +1 -1
  37. package/dist/engagement/chat/plugin.d.ts +1 -0
  38. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  39. package/dist/engagement/chat-commands/plugin.d.ts +1 -0
  40. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
  41. package/dist/engagement/notifications/plugin.d.ts +1 -0
  42. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  43. package/dist/engagement/social/plugin.d.ts +1 -0
  44. package/dist/engagement/social/plugin.d.ts.map +1 -1
  45. package/dist/fx/exchange-rate/plugin.d.ts +1 -0
  46. package/dist/fx/exchange-rate/plugin.d.ts.map +1 -1
  47. package/dist/iam/plugin.d.ts +1 -0
  48. package/dist/iam/plugin.d.ts.map +1 -1
  49. package/dist/mail/plugin.d.ts +1 -0
  50. package/dist/mail/plugin.d.ts.map +1 -1
  51. package/dist/pam/identity/__tests__/admin-security.int.test.js +16 -0
  52. package/dist/pam/identity/__tests__/admin-security.int.test.js.map +1 -1
  53. package/dist/pam/identity/__tests__/identity.service.int.test.js +62 -3
  54. package/dist/pam/identity/__tests__/identity.service.int.test.js.map +1 -1
  55. package/dist/pam/identity/__tests__/phone-verification.service.int.test.js +1 -0
  56. package/dist/pam/identity/__tests__/phone-verification.service.int.test.js.map +1 -1
  57. package/dist/pam/identity/__tests__/session-idle.service.int.test.d.ts +2 -0
  58. package/dist/pam/identity/__tests__/session-idle.service.int.test.d.ts.map +1 -0
  59. package/dist/pam/identity/__tests__/session-idle.service.int.test.js +137 -0
  60. package/dist/pam/identity/__tests__/session-idle.service.int.test.js.map +1 -0
  61. package/dist/pam/identity/__tests__/session.service.int.test.js +40 -1
  62. package/dist/pam/identity/__tests__/session.service.int.test.js.map +1 -1
  63. package/dist/pam/identity/__tests__/withdrawal-pin.service.int.test.js +1 -0
  64. package/dist/pam/identity/__tests__/withdrawal-pin.service.int.test.js.map +1 -1
  65. package/dist/pam/identity/contract/index.d.ts +104 -0
  66. package/dist/pam/identity/contract/index.d.ts.map +1 -1
  67. package/dist/pam/identity/contract/index.js +18 -2
  68. package/dist/pam/identity/contract/index.js.map +1 -1
  69. package/dist/pam/identity/drizzle/migrations/0015_parallel_moira_mactaggert.sql +3 -0
  70. package/dist/pam/identity/drizzle/migrations/meta/0015_snapshot.json +1116 -0
  71. package/dist/pam/identity/drizzle/migrations/meta/_journal.json +7 -0
  72. package/dist/pam/identity/plugin.d.ts +1 -0
  73. package/dist/pam/identity/plugin.d.ts.map +1 -1
  74. package/dist/pam/identity/plugin.js +11 -1
  75. package/dist/pam/identity/plugin.js.map +1 -1
  76. package/dist/pam/identity/react/account.d.ts +9 -1
  77. package/dist/pam/identity/react/account.d.ts.map +1 -1
  78. package/dist/pam/identity/react/account.js +16 -0
  79. package/dist/pam/identity/react/account.js.map +1 -1
  80. package/dist/pam/identity/react/auth.d.ts +1 -0
  81. package/dist/pam/identity/react/auth.d.ts.map +1 -1
  82. package/dist/pam/identity/router/index.d.ts +104 -0
  83. package/dist/pam/identity/router/index.d.ts.map +1 -1
  84. package/dist/pam/identity/router/index.js +13 -0
  85. package/dist/pam/identity/router/index.js.map +1 -1
  86. package/dist/pam/identity/schema/index.d.ts +35 -0
  87. package/dist/pam/identity/schema/index.d.ts.map +1 -1
  88. package/dist/pam/identity/schema/index.js +9 -1
  89. package/dist/pam/identity/schema/index.js.map +1 -1
  90. package/dist/pam/identity/service/admin-security.service.d.ts.map +1 -1
  91. package/dist/pam/identity/service/admin-security.service.js +4 -0
  92. package/dist/pam/identity/service/admin-security.service.js.map +1 -1
  93. package/dist/pam/identity/service/identity.service.d.ts +24 -1
  94. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  95. package/dist/pam/identity/service/identity.service.js +120 -9
  96. package/dist/pam/identity/service/identity.service.js.map +1 -1
  97. package/dist/pam/identity/service/phone-verification.service.d.ts +3 -1
  98. package/dist/pam/identity/service/phone-verification.service.d.ts.map +1 -1
  99. package/dist/pam/identity/service/phone-verification.service.js +4 -2
  100. package/dist/pam/identity/service/phone-verification.service.js.map +1 -1
  101. package/dist/pam/identity/service/security-controls.service.d.ts +1 -1
  102. package/dist/pam/identity/service/security-controls.service.d.ts.map +1 -1
  103. package/dist/pam/identity/service/security-controls.service.js +7 -1
  104. package/dist/pam/identity/service/security-controls.service.js.map +1 -1
  105. package/dist/pam/identity/service/session-idle.service.d.ts +22 -0
  106. package/dist/pam/identity/service/session-idle.service.d.ts.map +1 -0
  107. package/dist/pam/identity/service/session-idle.service.js +101 -0
  108. package/dist/pam/identity/service/session-idle.service.js.map +1 -0
  109. package/dist/pam/identity/service/session.service.d.ts +1 -1
  110. package/dist/pam/identity/service/session.service.d.ts.map +1 -1
  111. package/dist/pam/identity/service/session.service.js +28 -6
  112. package/dist/pam/identity/service/session.service.js.map +1 -1
  113. package/dist/pam/identity/service/trusted-device.service.d.ts +1 -0
  114. package/dist/pam/identity/service/trusted-device.service.d.ts.map +1 -1
  115. package/dist/pam/identity/service/trusted-device.service.js +6 -0
  116. package/dist/pam/identity/service/trusted-device.service.js.map +1 -1
  117. package/dist/pam/identity/service/withdrawal-pin.service.d.ts +3 -1
  118. package/dist/pam/identity/service/withdrawal-pin.service.d.ts.map +1 -1
  119. package/dist/pam/identity/service/withdrawal-pin.service.js +4 -2
  120. package/dist/pam/identity/service/withdrawal-pin.service.js.map +1 -1
  121. package/dist/pam/player-management/plugin.d.ts +1 -0
  122. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  123. package/dist/pam/player-note/plugin.d.ts +1 -0
  124. package/dist/pam/player-note/plugin.d.ts.map +1 -1
  125. package/dist/pam/profile/plugin.d.ts +1 -0
  126. package/dist/pam/profile/plugin.d.ts.map +1 -1
  127. package/dist/pam/react.d.ts +1 -1
  128. package/dist/pam/react.d.ts.map +1 -1
  129. package/dist/pam/react.js +1 -1
  130. package/dist/pam/react.js.map +1 -1
  131. package/dist/pam/tag/plugin.d.ts +1 -0
  132. package/dist/pam/tag/plugin.d.ts.map +1 -1
  133. package/dist/server/runtime/core-token-catalog.d.ts +1 -0
  134. package/dist/server/runtime/core-token-catalog.d.ts.map +1 -1
  135. package/dist/server/runtime/core-token-catalog.js +2 -1
  136. package/dist/server/runtime/core-token-catalog.js.map +1 -1
  137. package/dist/server/runtime/create-app.d.ts.map +1 -1
  138. package/dist/server/runtime/create-app.js +23 -2
  139. package/dist/server/runtime/create-app.js.map +1 -1
  140. package/dist/testing/seed-player.d.ts +4 -0
  141. package/dist/testing/seed-player.d.ts.map +1 -1
  142. package/dist/wallet/plugin.d.ts +1 -0
  143. package/dist/wallet/plugin.d.ts.map +1 -1
  144. package/package.json +1 -1
@@ -0,0 +1,1116 @@
1
+ {
2
+ "id": "df85acae-ed2c-41a1-bf05-7b22e0e08dda",
3
+ "prevId": "ce3d71fa-43ee-49e1-b180-16e9ede959e5",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.account": {
8
+ "name": "account",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "account_id": {
19
+ "name": "account_id",
20
+ "type": "text",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "provider_id": {
25
+ "name": "provider_id",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true
29
+ },
30
+ "user_id": {
31
+ "name": "user_id",
32
+ "type": "uuid",
33
+ "primaryKey": false,
34
+ "notNull": true
35
+ },
36
+ "access_token": {
37
+ "name": "access_token",
38
+ "type": "text",
39
+ "primaryKey": false,
40
+ "notNull": false
41
+ },
42
+ "refresh_token": {
43
+ "name": "refresh_token",
44
+ "type": "text",
45
+ "primaryKey": false,
46
+ "notNull": false
47
+ },
48
+ "id_token": {
49
+ "name": "id_token",
50
+ "type": "text",
51
+ "primaryKey": false,
52
+ "notNull": false
53
+ },
54
+ "access_token_expires_at": {
55
+ "name": "access_token_expires_at",
56
+ "type": "timestamp with time zone",
57
+ "primaryKey": false,
58
+ "notNull": false
59
+ },
60
+ "refresh_token_expires_at": {
61
+ "name": "refresh_token_expires_at",
62
+ "type": "timestamp with time zone",
63
+ "primaryKey": false,
64
+ "notNull": false
65
+ },
66
+ "scope": {
67
+ "name": "scope",
68
+ "type": "text",
69
+ "primaryKey": false,
70
+ "notNull": false
71
+ },
72
+ "password": {
73
+ "name": "password",
74
+ "type": "text",
75
+ "primaryKey": false,
76
+ "notNull": false
77
+ },
78
+ "created_at": {
79
+ "name": "created_at",
80
+ "type": "timestamp with time zone",
81
+ "primaryKey": false,
82
+ "notNull": true,
83
+ "default": "now()"
84
+ },
85
+ "updated_at": {
86
+ "name": "updated_at",
87
+ "type": "timestamp with time zone",
88
+ "primaryKey": false,
89
+ "notNull": true
90
+ }
91
+ },
92
+ "indexes": {
93
+ "account_user_id_idx": {
94
+ "name": "account_user_id_idx",
95
+ "columns": [
96
+ {
97
+ "expression": "user_id",
98
+ "isExpression": false,
99
+ "asc": true,
100
+ "nulls": "last"
101
+ }
102
+ ],
103
+ "isUnique": false,
104
+ "concurrently": false,
105
+ "method": "btree",
106
+ "with": {}
107
+ }
108
+ },
109
+ "foreignKeys": {
110
+ "account_user_id_user_id_fk": {
111
+ "name": "account_user_id_user_id_fk",
112
+ "tableFrom": "account",
113
+ "tableTo": "user",
114
+ "columnsFrom": ["user_id"],
115
+ "columnsTo": ["id"],
116
+ "onDelete": "cascade",
117
+ "onUpdate": "no action"
118
+ }
119
+ },
120
+ "compositePrimaryKeys": {},
121
+ "uniqueConstraints": {},
122
+ "policies": {},
123
+ "checkConstraints": {},
124
+ "isRLSEnabled": false
125
+ },
126
+ "public.admin_trusted_device": {
127
+ "name": "admin_trusted_device",
128
+ "schema": "",
129
+ "columns": {
130
+ "id": {
131
+ "name": "id",
132
+ "type": "uuid",
133
+ "primaryKey": true,
134
+ "notNull": true,
135
+ "default": "gen_random_uuid()"
136
+ },
137
+ "user_id": {
138
+ "name": "user_id",
139
+ "type": "uuid",
140
+ "primaryKey": false,
141
+ "notNull": true
142
+ },
143
+ "device_hash": {
144
+ "name": "device_hash",
145
+ "type": "text",
146
+ "primaryKey": false,
147
+ "notNull": true
148
+ },
149
+ "label": {
150
+ "name": "label",
151
+ "type": "text",
152
+ "primaryKey": false,
153
+ "notNull": true
154
+ },
155
+ "ip_address": {
156
+ "name": "ip_address",
157
+ "type": "text",
158
+ "primaryKey": false,
159
+ "notNull": false
160
+ },
161
+ "user_agent": {
162
+ "name": "user_agent",
163
+ "type": "text",
164
+ "primaryKey": false,
165
+ "notNull": false
166
+ },
167
+ "last_used_at": {
168
+ "name": "last_used_at",
169
+ "type": "timestamp with time zone",
170
+ "primaryKey": false,
171
+ "notNull": true,
172
+ "default": "now()"
173
+ },
174
+ "expires_at": {
175
+ "name": "expires_at",
176
+ "type": "timestamp with time zone",
177
+ "primaryKey": false,
178
+ "notNull": true
179
+ },
180
+ "revoked_at": {
181
+ "name": "revoked_at",
182
+ "type": "timestamp with time zone",
183
+ "primaryKey": false,
184
+ "notNull": false
185
+ },
186
+ "revoked_by": {
187
+ "name": "revoked_by",
188
+ "type": "uuid",
189
+ "primaryKey": false,
190
+ "notNull": false
191
+ },
192
+ "created_at": {
193
+ "name": "created_at",
194
+ "type": "timestamp with time zone",
195
+ "primaryKey": false,
196
+ "notNull": true,
197
+ "default": "now()"
198
+ }
199
+ },
200
+ "indexes": {
201
+ "admin_trusted_device_user_hash_idx": {
202
+ "name": "admin_trusted_device_user_hash_idx",
203
+ "columns": [
204
+ {
205
+ "expression": "user_id",
206
+ "isExpression": false,
207
+ "asc": true,
208
+ "nulls": "last"
209
+ },
210
+ {
211
+ "expression": "device_hash",
212
+ "isExpression": false,
213
+ "asc": true,
214
+ "nulls": "last"
215
+ }
216
+ ],
217
+ "isUnique": true,
218
+ "concurrently": false,
219
+ "method": "btree",
220
+ "with": {}
221
+ },
222
+ "admin_trusted_device_user_id_idx": {
223
+ "name": "admin_trusted_device_user_id_idx",
224
+ "columns": [
225
+ {
226
+ "expression": "user_id",
227
+ "isExpression": false,
228
+ "asc": true,
229
+ "nulls": "last"
230
+ }
231
+ ],
232
+ "isUnique": false,
233
+ "concurrently": false,
234
+ "method": "btree",
235
+ "with": {}
236
+ },
237
+ "admin_trusted_device_expires_at_idx": {
238
+ "name": "admin_trusted_device_expires_at_idx",
239
+ "columns": [
240
+ {
241
+ "expression": "expires_at",
242
+ "isExpression": false,
243
+ "asc": true,
244
+ "nulls": "last"
245
+ }
246
+ ],
247
+ "isUnique": false,
248
+ "concurrently": false,
249
+ "method": "btree",
250
+ "with": {}
251
+ }
252
+ },
253
+ "foreignKeys": {
254
+ "admin_trusted_device_user_id_user_id_fk": {
255
+ "name": "admin_trusted_device_user_id_user_id_fk",
256
+ "tableFrom": "admin_trusted_device",
257
+ "tableTo": "user",
258
+ "columnsFrom": ["user_id"],
259
+ "columnsTo": ["id"],
260
+ "onDelete": "cascade",
261
+ "onUpdate": "no action"
262
+ }
263
+ },
264
+ "compositePrimaryKeys": {},
265
+ "uniqueConstraints": {},
266
+ "policies": {},
267
+ "checkConstraints": {},
268
+ "isRLSEnabled": false
269
+ },
270
+ "public.phone_verification_session": {
271
+ "name": "phone_verification_session",
272
+ "schema": "",
273
+ "columns": {
274
+ "id": {
275
+ "name": "id",
276
+ "type": "uuid",
277
+ "primaryKey": true,
278
+ "notNull": true,
279
+ "default": "gen_random_uuid()"
280
+ },
281
+ "user_id": {
282
+ "name": "user_id",
283
+ "type": "uuid",
284
+ "primaryKey": false,
285
+ "notNull": true
286
+ },
287
+ "session_id": {
288
+ "name": "session_id",
289
+ "type": "uuid",
290
+ "primaryKey": false,
291
+ "notNull": true
292
+ },
293
+ "phone": {
294
+ "name": "phone",
295
+ "type": "text",
296
+ "primaryKey": false,
297
+ "notNull": true
298
+ },
299
+ "code_hash": {
300
+ "name": "code_hash",
301
+ "type": "text",
302
+ "primaryKey": false,
303
+ "notNull": true
304
+ },
305
+ "reauthenticated_at": {
306
+ "name": "reauthenticated_at",
307
+ "type": "timestamp with time zone",
308
+ "primaryKey": false,
309
+ "notNull": true
310
+ },
311
+ "expires_at": {
312
+ "name": "expires_at",
313
+ "type": "timestamp with time zone",
314
+ "primaryKey": false,
315
+ "notNull": true
316
+ },
317
+ "failed_attempts": {
318
+ "name": "failed_attempts",
319
+ "type": "integer",
320
+ "primaryKey": false,
321
+ "notNull": true,
322
+ "default": 0
323
+ },
324
+ "created_at": {
325
+ "name": "created_at",
326
+ "type": "timestamp with time zone",
327
+ "primaryKey": false,
328
+ "notNull": true,
329
+ "default": "now()"
330
+ }
331
+ },
332
+ "indexes": {
333
+ "phone_verification_session_phone_idx": {
334
+ "name": "phone_verification_session_phone_idx",
335
+ "columns": [
336
+ {
337
+ "expression": "phone",
338
+ "isExpression": false,
339
+ "asc": true,
340
+ "nulls": "last"
341
+ }
342
+ ],
343
+ "isUnique": false,
344
+ "concurrently": false,
345
+ "method": "btree",
346
+ "with": {}
347
+ },
348
+ "phone_verification_session_session_id_idx": {
349
+ "name": "phone_verification_session_session_id_idx",
350
+ "columns": [
351
+ {
352
+ "expression": "session_id",
353
+ "isExpression": false,
354
+ "asc": true,
355
+ "nulls": "last"
356
+ }
357
+ ],
358
+ "isUnique": false,
359
+ "concurrently": false,
360
+ "method": "btree",
361
+ "with": {}
362
+ }
363
+ },
364
+ "foreignKeys": {
365
+ "phone_verification_session_user_id_user_id_fk": {
366
+ "name": "phone_verification_session_user_id_user_id_fk",
367
+ "tableFrom": "phone_verification_session",
368
+ "tableTo": "user",
369
+ "columnsFrom": ["user_id"],
370
+ "columnsTo": ["id"],
371
+ "onDelete": "cascade",
372
+ "onUpdate": "no action"
373
+ },
374
+ "phone_verification_session_session_id_session_id_fk": {
375
+ "name": "phone_verification_session_session_id_session_id_fk",
376
+ "tableFrom": "phone_verification_session",
377
+ "tableTo": "session",
378
+ "columnsFrom": ["session_id"],
379
+ "columnsTo": ["id"],
380
+ "onDelete": "cascade",
381
+ "onUpdate": "no action"
382
+ }
383
+ },
384
+ "compositePrimaryKeys": {},
385
+ "uniqueConstraints": {
386
+ "phone_verification_session_userId_unique": {
387
+ "name": "phone_verification_session_userId_unique",
388
+ "nullsNotDistinct": false,
389
+ "columns": ["user_id"]
390
+ }
391
+ },
392
+ "policies": {},
393
+ "checkConstraints": {},
394
+ "isRLSEnabled": false
395
+ },
396
+ "public.session": {
397
+ "name": "session",
398
+ "schema": "",
399
+ "columns": {
400
+ "id": {
401
+ "name": "id",
402
+ "type": "uuid",
403
+ "primaryKey": true,
404
+ "notNull": true,
405
+ "default": "gen_random_uuid()"
406
+ },
407
+ "expires_at": {
408
+ "name": "expires_at",
409
+ "type": "timestamp with time zone",
410
+ "primaryKey": false,
411
+ "notNull": true
412
+ },
413
+ "token": {
414
+ "name": "token",
415
+ "type": "text",
416
+ "primaryKey": false,
417
+ "notNull": true
418
+ },
419
+ "created_at": {
420
+ "name": "created_at",
421
+ "type": "timestamp with time zone",
422
+ "primaryKey": false,
423
+ "notNull": true,
424
+ "default": "now()"
425
+ },
426
+ "updated_at": {
427
+ "name": "updated_at",
428
+ "type": "timestamp with time zone",
429
+ "primaryKey": false,
430
+ "notNull": true
431
+ },
432
+ "ip_address": {
433
+ "name": "ip_address",
434
+ "type": "text",
435
+ "primaryKey": false,
436
+ "notNull": false
437
+ },
438
+ "user_agent": {
439
+ "name": "user_agent",
440
+ "type": "text",
441
+ "primaryKey": false,
442
+ "notNull": false
443
+ },
444
+ "last_seen_at": {
445
+ "name": "last_seen_at",
446
+ "type": "timestamp with time zone",
447
+ "primaryKey": false,
448
+ "notNull": false
449
+ },
450
+ "user_id": {
451
+ "name": "user_id",
452
+ "type": "uuid",
453
+ "primaryKey": false,
454
+ "notNull": true
455
+ }
456
+ },
457
+ "indexes": {
458
+ "session_user_id_idx": {
459
+ "name": "session_user_id_idx",
460
+ "columns": [
461
+ {
462
+ "expression": "user_id",
463
+ "isExpression": false,
464
+ "asc": true,
465
+ "nulls": "last"
466
+ }
467
+ ],
468
+ "isUnique": false,
469
+ "concurrently": false,
470
+ "method": "btree",
471
+ "with": {}
472
+ }
473
+ },
474
+ "foreignKeys": {
475
+ "session_user_id_user_id_fk": {
476
+ "name": "session_user_id_user_id_fk",
477
+ "tableFrom": "session",
478
+ "tableTo": "user",
479
+ "columnsFrom": ["user_id"],
480
+ "columnsTo": ["id"],
481
+ "onDelete": "cascade",
482
+ "onUpdate": "no action"
483
+ }
484
+ },
485
+ "compositePrimaryKeys": {},
486
+ "uniqueConstraints": {
487
+ "session_token_unique": {
488
+ "name": "session_token_unique",
489
+ "nullsNotDistinct": false,
490
+ "columns": ["token"]
491
+ }
492
+ },
493
+ "policies": {},
494
+ "checkConstraints": {},
495
+ "isRLSEnabled": false
496
+ },
497
+ "public.sms_otp_session": {
498
+ "name": "sms_otp_session",
499
+ "schema": "",
500
+ "columns": {
501
+ "id": {
502
+ "name": "id",
503
+ "type": "uuid",
504
+ "primaryKey": true,
505
+ "notNull": true,
506
+ "default": "gen_random_uuid()"
507
+ },
508
+ "user_id": {
509
+ "name": "user_id",
510
+ "type": "uuid",
511
+ "primaryKey": false,
512
+ "notNull": true
513
+ },
514
+ "phone": {
515
+ "name": "phone",
516
+ "type": "text",
517
+ "primaryKey": false,
518
+ "notNull": true
519
+ },
520
+ "code_hash": {
521
+ "name": "code_hash",
522
+ "type": "text",
523
+ "primaryKey": false,
524
+ "notNull": true
525
+ },
526
+ "expires_at": {
527
+ "name": "expires_at",
528
+ "type": "timestamp with time zone",
529
+ "primaryKey": false,
530
+ "notNull": true
531
+ },
532
+ "failed_attempts": {
533
+ "name": "failed_attempts",
534
+ "type": "integer",
535
+ "primaryKey": false,
536
+ "notNull": true,
537
+ "default": 0
538
+ },
539
+ "created_at": {
540
+ "name": "created_at",
541
+ "type": "timestamp with time zone",
542
+ "primaryKey": false,
543
+ "notNull": true,
544
+ "default": "now()"
545
+ }
546
+ },
547
+ "indexes": {
548
+ "sms_otp_session_phone_idx": {
549
+ "name": "sms_otp_session_phone_idx",
550
+ "columns": [
551
+ {
552
+ "expression": "phone",
553
+ "isExpression": false,
554
+ "asc": true,
555
+ "nulls": "last"
556
+ }
557
+ ],
558
+ "isUnique": false,
559
+ "concurrently": false,
560
+ "method": "btree",
561
+ "with": {}
562
+ }
563
+ },
564
+ "foreignKeys": {
565
+ "sms_otp_session_user_id_user_id_fk": {
566
+ "name": "sms_otp_session_user_id_user_id_fk",
567
+ "tableFrom": "sms_otp_session",
568
+ "tableTo": "user",
569
+ "columnsFrom": ["user_id"],
570
+ "columnsTo": ["id"],
571
+ "onDelete": "cascade",
572
+ "onUpdate": "no action"
573
+ }
574
+ },
575
+ "compositePrimaryKeys": {},
576
+ "uniqueConstraints": {
577
+ "sms_otp_session_userId_unique": {
578
+ "name": "sms_otp_session_userId_unique",
579
+ "nullsNotDistinct": false,
580
+ "columns": ["user_id"]
581
+ }
582
+ },
583
+ "policies": {},
584
+ "checkConstraints": {},
585
+ "isRLSEnabled": false
586
+ },
587
+ "public.two_factor": {
588
+ "name": "two_factor",
589
+ "schema": "",
590
+ "columns": {
591
+ "id": {
592
+ "name": "id",
593
+ "type": "uuid",
594
+ "primaryKey": true,
595
+ "notNull": true,
596
+ "default": "gen_random_uuid()"
597
+ },
598
+ "secret": {
599
+ "name": "secret",
600
+ "type": "text",
601
+ "primaryKey": false,
602
+ "notNull": true
603
+ },
604
+ "backup_codes": {
605
+ "name": "backup_codes",
606
+ "type": "text",
607
+ "primaryKey": false,
608
+ "notNull": true
609
+ },
610
+ "user_id": {
611
+ "name": "user_id",
612
+ "type": "uuid",
613
+ "primaryKey": false,
614
+ "notNull": true
615
+ },
616
+ "verified": {
617
+ "name": "verified",
618
+ "type": "boolean",
619
+ "primaryKey": false,
620
+ "notNull": false,
621
+ "default": true
622
+ },
623
+ "failed_verification_count": {
624
+ "name": "failed_verification_count",
625
+ "type": "integer",
626
+ "primaryKey": false,
627
+ "notNull": true,
628
+ "default": 0
629
+ },
630
+ "locked_until": {
631
+ "name": "locked_until",
632
+ "type": "timestamp with time zone",
633
+ "primaryKey": false,
634
+ "notNull": false
635
+ }
636
+ },
637
+ "indexes": {
638
+ "two_factor_user_id_idx": {
639
+ "name": "two_factor_user_id_idx",
640
+ "columns": [
641
+ {
642
+ "expression": "user_id",
643
+ "isExpression": false,
644
+ "asc": true,
645
+ "nulls": "last"
646
+ }
647
+ ],
648
+ "isUnique": false,
649
+ "concurrently": false,
650
+ "method": "btree",
651
+ "with": {}
652
+ },
653
+ "two_factor_secret_idx": {
654
+ "name": "two_factor_secret_idx",
655
+ "columns": [
656
+ {
657
+ "expression": "secret",
658
+ "isExpression": false,
659
+ "asc": true,
660
+ "nulls": "last"
661
+ }
662
+ ],
663
+ "isUnique": false,
664
+ "concurrently": false,
665
+ "method": "btree",
666
+ "with": {}
667
+ }
668
+ },
669
+ "foreignKeys": {
670
+ "two_factor_user_id_user_id_fk": {
671
+ "name": "two_factor_user_id_user_id_fk",
672
+ "tableFrom": "two_factor",
673
+ "tableTo": "user",
674
+ "columnsFrom": ["user_id"],
675
+ "columnsTo": ["id"],
676
+ "onDelete": "cascade",
677
+ "onUpdate": "no action"
678
+ }
679
+ },
680
+ "compositePrimaryKeys": {},
681
+ "uniqueConstraints": {},
682
+ "policies": {},
683
+ "checkConstraints": {},
684
+ "isRLSEnabled": false
685
+ },
686
+ "public.user": {
687
+ "name": "user",
688
+ "schema": "",
689
+ "columns": {
690
+ "id": {
691
+ "name": "id",
692
+ "type": "uuid",
693
+ "primaryKey": true,
694
+ "notNull": true,
695
+ "default": "gen_random_uuid()"
696
+ },
697
+ "name": {
698
+ "name": "name",
699
+ "type": "text",
700
+ "primaryKey": false,
701
+ "notNull": true
702
+ },
703
+ "username": {
704
+ "name": "username",
705
+ "type": "text",
706
+ "primaryKey": false,
707
+ "notNull": true
708
+ },
709
+ "email": {
710
+ "name": "email",
711
+ "type": "text",
712
+ "primaryKey": false,
713
+ "notNull": true
714
+ },
715
+ "email_verified": {
716
+ "name": "email_verified",
717
+ "type": "boolean",
718
+ "primaryKey": false,
719
+ "notNull": true,
720
+ "default": false
721
+ },
722
+ "image": {
723
+ "name": "image",
724
+ "type": "text",
725
+ "primaryKey": false,
726
+ "notNull": false
727
+ },
728
+ "theme": {
729
+ "name": "theme",
730
+ "type": "user_theme",
731
+ "typeSchema": "public",
732
+ "primaryKey": false,
733
+ "notNull": true,
734
+ "default": "'system'"
735
+ },
736
+ "language": {
737
+ "name": "language",
738
+ "type": "text",
739
+ "primaryKey": false,
740
+ "notNull": true,
741
+ "default": "'en'"
742
+ },
743
+ "role": {
744
+ "name": "role",
745
+ "type": "text",
746
+ "primaryKey": false,
747
+ "notNull": true,
748
+ "default": "'player'"
749
+ },
750
+ "is_active": {
751
+ "name": "is_active",
752
+ "type": "boolean",
753
+ "primaryKey": false,
754
+ "notNull": true,
755
+ "default": true
756
+ },
757
+ "banned": {
758
+ "name": "banned",
759
+ "type": "boolean",
760
+ "primaryKey": false,
761
+ "notNull": false,
762
+ "default": false
763
+ },
764
+ "ban_reason": {
765
+ "name": "ban_reason",
766
+ "type": "text",
767
+ "primaryKey": false,
768
+ "notNull": false
769
+ },
770
+ "ban_expires": {
771
+ "name": "ban_expires",
772
+ "type": "timestamp with time zone",
773
+ "primaryKey": false,
774
+ "notNull": false
775
+ },
776
+ "two_factor_enabled": {
777
+ "name": "two_factor_enabled",
778
+ "type": "boolean",
779
+ "primaryKey": false,
780
+ "notNull": false,
781
+ "default": false
782
+ },
783
+ "two_factor_method": {
784
+ "name": "two_factor_method",
785
+ "type": "two_factor_method",
786
+ "typeSchema": "public",
787
+ "primaryKey": false,
788
+ "notNull": false
789
+ },
790
+ "phone_number": {
791
+ "name": "phone_number",
792
+ "type": "text",
793
+ "primaryKey": false,
794
+ "notNull": false
795
+ },
796
+ "phone_verified": {
797
+ "name": "phone_verified",
798
+ "type": "boolean",
799
+ "primaryKey": false,
800
+ "notNull": true,
801
+ "default": false
802
+ },
803
+ "phone_verified_at": {
804
+ "name": "phone_verified_at",
805
+ "type": "timestamp with time zone",
806
+ "primaryKey": false,
807
+ "notNull": false
808
+ },
809
+ "password_meets_policy": {
810
+ "name": "password_meets_policy",
811
+ "type": "boolean",
812
+ "primaryKey": false,
813
+ "notNull": true,
814
+ "default": false
815
+ },
816
+ "login_withdrawal_alerts_enabled": {
817
+ "name": "login_withdrawal_alerts_enabled",
818
+ "type": "boolean",
819
+ "primaryKey": false,
820
+ "notNull": true,
821
+ "default": false
822
+ },
823
+ "auto_logout_duration": {
824
+ "name": "auto_logout_duration",
825
+ "type": "auto_logout_duration",
826
+ "typeSchema": "public",
827
+ "primaryKey": false,
828
+ "notNull": true,
829
+ "default": "'7d'"
830
+ },
831
+ "require_two_factor_on_login": {
832
+ "name": "require_two_factor_on_login",
833
+ "type": "boolean",
834
+ "primaryKey": false,
835
+ "notNull": true,
836
+ "default": false
837
+ },
838
+ "withdrawal_pin_hash": {
839
+ "name": "withdrawal_pin_hash",
840
+ "type": "text",
841
+ "primaryKey": false,
842
+ "notNull": false
843
+ },
844
+ "withdrawal_pin_set_at": {
845
+ "name": "withdrawal_pin_set_at",
846
+ "type": "timestamp with time zone",
847
+ "primaryKey": false,
848
+ "notNull": false
849
+ },
850
+ "anti_phishing_code": {
851
+ "name": "anti_phishing_code",
852
+ "type": "text",
853
+ "primaryKey": false,
854
+ "notNull": false
855
+ },
856
+ "failed_login_attempts": {
857
+ "name": "failed_login_attempts",
858
+ "type": "integer",
859
+ "primaryKey": false,
860
+ "notNull": true,
861
+ "default": 0
862
+ },
863
+ "lockout_until": {
864
+ "name": "lockout_until",
865
+ "type": "timestamp with time zone",
866
+ "primaryKey": false,
867
+ "notNull": false
868
+ },
869
+ "failed_two_factor_attempts": {
870
+ "name": "failed_two_factor_attempts",
871
+ "type": "integer",
872
+ "primaryKey": false,
873
+ "notNull": true,
874
+ "default": 0
875
+ },
876
+ "two_factor_lockout_until": {
877
+ "name": "two_factor_lockout_until",
878
+ "type": "timestamp with time zone",
879
+ "primaryKey": false,
880
+ "notNull": false
881
+ },
882
+ "two_factor_lockout_count": {
883
+ "name": "two_factor_lockout_count",
884
+ "type": "integer",
885
+ "primaryKey": false,
886
+ "notNull": true,
887
+ "default": 0
888
+ },
889
+ "last_failed_two_factor_at": {
890
+ "name": "last_failed_two_factor_at",
891
+ "type": "timestamp with time zone",
892
+ "primaryKey": false,
893
+ "notNull": false
894
+ },
895
+ "lockout_count": {
896
+ "name": "lockout_count",
897
+ "type": "integer",
898
+ "primaryKey": false,
899
+ "notNull": true,
900
+ "default": 0
901
+ },
902
+ "last_lockout_at": {
903
+ "name": "last_lockout_at",
904
+ "type": "timestamp with time zone",
905
+ "primaryKey": false,
906
+ "notNull": false
907
+ },
908
+ "last_failed_login_at": {
909
+ "name": "last_failed_login_at",
910
+ "type": "timestamp with time zone",
911
+ "primaryKey": false,
912
+ "notNull": false
913
+ },
914
+ "rg_blocked": {
915
+ "name": "rg_blocked",
916
+ "type": "boolean",
917
+ "primaryKey": false,
918
+ "notNull": true,
919
+ "default": false
920
+ },
921
+ "rg_blocked_until": {
922
+ "name": "rg_blocked_until",
923
+ "type": "timestamp with time zone",
924
+ "primaryKey": false,
925
+ "notNull": false
926
+ },
927
+ "created_at": {
928
+ "name": "created_at",
929
+ "type": "timestamp with time zone",
930
+ "primaryKey": false,
931
+ "notNull": true,
932
+ "default": "now()"
933
+ },
934
+ "updated_at": {
935
+ "name": "updated_at",
936
+ "type": "timestamp with time zone",
937
+ "primaryKey": false,
938
+ "notNull": true
939
+ }
940
+ },
941
+ "indexes": {
942
+ "user_username_unique": {
943
+ "name": "user_username_unique",
944
+ "columns": [
945
+ {
946
+ "expression": "lower(\"username\")",
947
+ "asc": true,
948
+ "isExpression": true,
949
+ "nulls": "last"
950
+ }
951
+ ],
952
+ "isUnique": true,
953
+ "concurrently": false,
954
+ "method": "btree",
955
+ "with": {}
956
+ },
957
+ "user_email_trgm_idx": {
958
+ "name": "user_email_trgm_idx",
959
+ "columns": [
960
+ {
961
+ "expression": "\"email\" gin_trgm_ops",
962
+ "asc": true,
963
+ "isExpression": true,
964
+ "nulls": "last"
965
+ }
966
+ ],
967
+ "isUnique": false,
968
+ "concurrently": false,
969
+ "method": "gin",
970
+ "with": {}
971
+ },
972
+ "user_username_trgm_idx": {
973
+ "name": "user_username_trgm_idx",
974
+ "columns": [
975
+ {
976
+ "expression": "\"username\" gin_trgm_ops",
977
+ "asc": true,
978
+ "isExpression": true,
979
+ "nulls": "last"
980
+ }
981
+ ],
982
+ "isUnique": false,
983
+ "concurrently": false,
984
+ "method": "gin",
985
+ "with": {}
986
+ },
987
+ "user_created_at_idx": {
988
+ "name": "user_created_at_idx",
989
+ "columns": [
990
+ {
991
+ "expression": "created_at",
992
+ "isExpression": false,
993
+ "asc": true,
994
+ "nulls": "last"
995
+ }
996
+ ],
997
+ "isUnique": false,
998
+ "concurrently": false,
999
+ "method": "btree",
1000
+ "with": {}
1001
+ }
1002
+ },
1003
+ "foreignKeys": {},
1004
+ "compositePrimaryKeys": {},
1005
+ "uniqueConstraints": {
1006
+ "user_email_unique": {
1007
+ "name": "user_email_unique",
1008
+ "nullsNotDistinct": false,
1009
+ "columns": ["email"]
1010
+ },
1011
+ "user_phoneNumber_unique": {
1012
+ "name": "user_phoneNumber_unique",
1013
+ "nullsNotDistinct": false,
1014
+ "columns": ["phone_number"]
1015
+ }
1016
+ },
1017
+ "policies": {},
1018
+ "checkConstraints": {},
1019
+ "isRLSEnabled": false
1020
+ },
1021
+ "public.verification": {
1022
+ "name": "verification",
1023
+ "schema": "",
1024
+ "columns": {
1025
+ "id": {
1026
+ "name": "id",
1027
+ "type": "uuid",
1028
+ "primaryKey": true,
1029
+ "notNull": true,
1030
+ "default": "gen_random_uuid()"
1031
+ },
1032
+ "identifier": {
1033
+ "name": "identifier",
1034
+ "type": "text",
1035
+ "primaryKey": false,
1036
+ "notNull": true
1037
+ },
1038
+ "value": {
1039
+ "name": "value",
1040
+ "type": "text",
1041
+ "primaryKey": false,
1042
+ "notNull": true
1043
+ },
1044
+ "expires_at": {
1045
+ "name": "expires_at",
1046
+ "type": "timestamp with time zone",
1047
+ "primaryKey": false,
1048
+ "notNull": true
1049
+ },
1050
+ "created_at": {
1051
+ "name": "created_at",
1052
+ "type": "timestamp with time zone",
1053
+ "primaryKey": false,
1054
+ "notNull": true,
1055
+ "default": "now()"
1056
+ },
1057
+ "updated_at": {
1058
+ "name": "updated_at",
1059
+ "type": "timestamp with time zone",
1060
+ "primaryKey": false,
1061
+ "notNull": true
1062
+ }
1063
+ },
1064
+ "indexes": {
1065
+ "verification_identifier_idx": {
1066
+ "name": "verification_identifier_idx",
1067
+ "columns": [
1068
+ {
1069
+ "expression": "identifier",
1070
+ "isExpression": false,
1071
+ "asc": true,
1072
+ "nulls": "last"
1073
+ }
1074
+ ],
1075
+ "isUnique": false,
1076
+ "concurrently": false,
1077
+ "method": "btree",
1078
+ "with": {}
1079
+ }
1080
+ },
1081
+ "foreignKeys": {},
1082
+ "compositePrimaryKeys": {},
1083
+ "uniqueConstraints": {},
1084
+ "policies": {},
1085
+ "checkConstraints": {},
1086
+ "isRLSEnabled": false
1087
+ }
1088
+ },
1089
+ "enums": {
1090
+ "public.auto_logout_duration": {
1091
+ "name": "auto_logout_duration",
1092
+ "schema": "public",
1093
+ "values": ["15m", "1h", "24h", "7d", "30d"]
1094
+ },
1095
+ "public.two_factor_method": {
1096
+ "name": "two_factor_method",
1097
+ "schema": "public",
1098
+ "values": ["app", "email", "sms"]
1099
+ },
1100
+ "public.user_theme": {
1101
+ "name": "user_theme",
1102
+ "schema": "public",
1103
+ "values": ["light", "dark", "system"]
1104
+ }
1105
+ },
1106
+ "schemas": {},
1107
+ "sequences": {},
1108
+ "roles": {},
1109
+ "policies": {},
1110
+ "views": {},
1111
+ "_meta": {
1112
+ "columns": {},
1113
+ "schemas": {},
1114
+ "tables": {}
1115
+ }
1116
+ }