@openora/core 0.4.1-canary.19 → 0.4.1-canary.21

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 (99) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/audit/plugin.d.ts.map +1 -1
  3. package/dist/audit/plugin.js +37 -0
  4. package/dist/audit/plugin.js.map +1 -1
  5. package/dist/contracts/adapters/error-tracking.d.ts +12 -0
  6. package/dist/contracts/adapters/error-tracking.d.ts.map +1 -0
  7. package/dist/contracts/adapters/error-tracking.js +3 -0
  8. package/dist/contracts/adapters/error-tracking.js.map +1 -0
  9. package/dist/contracts/adapters/index.d.ts +4 -0
  10. package/dist/contracts/adapters/index.d.ts.map +1 -1
  11. package/dist/contracts/adapters/index.js +2 -0
  12. package/dist/contracts/adapters/index.js.map +1 -1
  13. package/dist/contracts/adapters/sms.d.ts +9 -0
  14. package/dist/contracts/adapters/sms.d.ts.map +1 -0
  15. package/dist/contracts/adapters/sms.js +7 -0
  16. package/dist/contracts/adapters/sms.js.map +1 -0
  17. package/dist/contracts/schemas/events.d.ts +17 -0
  18. package/dist/contracts/schemas/events.d.ts.map +1 -1
  19. package/dist/contracts/schemas/events.js +10 -0
  20. package/dist/contracts/schemas/events.js.map +1 -1
  21. package/dist/contracts/schemas/identity.d.ts +19 -0
  22. package/dist/contracts/schemas/identity.d.ts.map +1 -1
  23. package/dist/contracts/schemas/identity.js +13 -0
  24. package/dist/contracts/schemas/identity.js.map +1 -1
  25. package/dist/iam/service/iam.service.d.ts +3 -3
  26. package/dist/pam/identity/__tests__/phone-login.service.test.d.ts +2 -0
  27. package/dist/pam/identity/__tests__/phone-login.service.test.d.ts.map +1 -0
  28. package/dist/pam/identity/__tests__/phone-login.service.test.js +198 -0
  29. package/dist/pam/identity/__tests__/phone-login.service.test.js.map +1 -0
  30. package/dist/pam/identity/adapters/mock/mock-sms-adapter.d.ts +8 -0
  31. package/dist/pam/identity/adapters/mock/mock-sms-adapter.d.ts.map +1 -0
  32. package/dist/pam/identity/adapters/mock/mock-sms-adapter.js +7 -0
  33. package/dist/pam/identity/adapters/mock/mock-sms-adapter.js.map +1 -0
  34. package/dist/pam/identity/contract/index.d.ts +45 -0
  35. package/dist/pam/identity/contract/index.d.ts.map +1 -1
  36. package/dist/pam/identity/contract/index.js +10 -2
  37. package/dist/pam/identity/contract/index.js.map +1 -1
  38. package/dist/pam/identity/drizzle/migrations/0001_rainy_peter_quill.sql +18 -0
  39. package/dist/pam/identity/drizzle/migrations/0002_outstanding_patriot.sql +1 -0
  40. package/dist/pam/identity/drizzle/migrations/0003_open_shotgun.sql +1 -0
  41. package/dist/pam/identity/drizzle/migrations/0004_round_giant_girl.sql +1 -0
  42. package/dist/pam/identity/drizzle/migrations/meta/0001_snapshot.json +684 -0
  43. package/dist/pam/identity/drizzle/migrations/meta/0002_snapshot.json +690 -0
  44. package/dist/pam/identity/drizzle/migrations/meta/0003_snapshot.json +695 -0
  45. package/dist/pam/identity/drizzle/migrations/meta/0004_snapshot.json +680 -0
  46. package/dist/pam/identity/drizzle/migrations/meta/_journal.json +28 -0
  47. package/dist/pam/identity/plugin.d.ts.map +1 -1
  48. package/dist/pam/identity/plugin.js +12 -2
  49. package/dist/pam/identity/plugin.js.map +1 -1
  50. package/dist/pam/identity/react/account.d.ts +2 -0
  51. package/dist/pam/identity/react/account.d.ts.map +1 -1
  52. package/dist/pam/identity/react/auth.d.ts +6 -0
  53. package/dist/pam/identity/react/auth.d.ts.map +1 -1
  54. package/dist/pam/identity/router/index.d.ts +43 -1
  55. package/dist/pam/identity/router/index.d.ts.map +1 -1
  56. package/dist/pam/identity/router/index.js +27 -1
  57. package/dist/pam/identity/router/index.js.map +1 -1
  58. package/dist/pam/identity/schema/index.d.ts +212 -0
  59. package/dist/pam/identity/schema/index.d.ts.map +1 -1
  60. package/dist/pam/identity/schema/index.js +23 -0
  61. package/dist/pam/identity/schema/index.js.map +1 -1
  62. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  63. package/dist/pam/identity/service/identity.service.js +37 -11
  64. package/dist/pam/identity/service/identity.service.js.map +1 -1
  65. package/dist/pam/identity/service/phone-login.service.d.ts +53 -0
  66. package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -0
  67. package/dist/pam/identity/service/phone-login.service.js +235 -0
  68. package/dist/pam/identity/service/phone-login.service.js.map +1 -0
  69. package/dist/pam/identity/service/rg-guard.service.d.ts +5 -0
  70. package/dist/pam/identity/service/rg-guard.service.d.ts.map +1 -0
  71. package/dist/pam/identity/service/rg-guard.service.js +4 -0
  72. package/dist/pam/identity/service/rg-guard.service.js.map +1 -0
  73. package/dist/server/db/drizzle.service.d.ts.map +1 -1
  74. package/dist/server/db/drizzle.service.js +8 -0
  75. package/dist/server/db/drizzle.service.js.map +1 -1
  76. package/dist/server/kernel/__tests__/logger.test.d.ts +2 -0
  77. package/dist/server/kernel/__tests__/logger.test.d.ts.map +1 -0
  78. package/dist/server/kernel/__tests__/logger.test.js +44 -0
  79. package/dist/server/kernel/__tests__/logger.test.js.map +1 -0
  80. package/dist/server/kernel/bullmq-job-queue.js +2 -2
  81. package/dist/server/kernel/bullmq-job-queue.js.map +1 -1
  82. package/dist/server/kernel/error-reporter.d.ts +5 -0
  83. package/dist/server/kernel/error-reporter.d.ts.map +1 -0
  84. package/dist/server/kernel/error-reporter.js +20 -0
  85. package/dist/server/kernel/error-reporter.js.map +1 -0
  86. package/dist/server/kernel/index.d.ts +2 -0
  87. package/dist/server/kernel/index.d.ts.map +1 -1
  88. package/dist/server/kernel/index.js +1 -0
  89. package/dist/server/kernel/index.js.map +1 -1
  90. package/dist/server/kernel/job-queue.js +2 -2
  91. package/dist/server/kernel/job-queue.js.map +1 -1
  92. package/dist/server/kernel/logger.d.ts +7 -0
  93. package/dist/server/kernel/logger.d.ts.map +1 -1
  94. package/dist/server/kernel/logger.js +36 -2
  95. package/dist/server/kernel/logger.js.map +1 -1
  96. package/dist/server/runtime/create-app.d.ts.map +1 -1
  97. package/dist/server/runtime/create-app.js +30 -4
  98. package/dist/server/runtime/create-app.js.map +1 -1
  99. package/package.json +1 -1
@@ -0,0 +1,684 @@
1
+ {
2
+ "id": "7a03cc2a-aa35-4f53-b068-e828048a76da",
3
+ "prevId": "65994818-a8b0-4408-8af1-3fb81ed897a9",
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.session": {
127
+ "name": "session",
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
+ "expires_at": {
138
+ "name": "expires_at",
139
+ "type": "timestamp with time zone",
140
+ "primaryKey": false,
141
+ "notNull": true
142
+ },
143
+ "token": {
144
+ "name": "token",
145
+ "type": "text",
146
+ "primaryKey": false,
147
+ "notNull": true
148
+ },
149
+ "created_at": {
150
+ "name": "created_at",
151
+ "type": "timestamp with time zone",
152
+ "primaryKey": false,
153
+ "notNull": true,
154
+ "default": "now()"
155
+ },
156
+ "updated_at": {
157
+ "name": "updated_at",
158
+ "type": "timestamp with time zone",
159
+ "primaryKey": false,
160
+ "notNull": true
161
+ },
162
+ "ip_address": {
163
+ "name": "ip_address",
164
+ "type": "text",
165
+ "primaryKey": false,
166
+ "notNull": false
167
+ },
168
+ "user_agent": {
169
+ "name": "user_agent",
170
+ "type": "text",
171
+ "primaryKey": false,
172
+ "notNull": false
173
+ },
174
+ "user_id": {
175
+ "name": "user_id",
176
+ "type": "uuid",
177
+ "primaryKey": false,
178
+ "notNull": true
179
+ }
180
+ },
181
+ "indexes": {
182
+ "session_user_id_idx": {
183
+ "name": "session_user_id_idx",
184
+ "columns": [
185
+ {
186
+ "expression": "user_id",
187
+ "isExpression": false,
188
+ "asc": true,
189
+ "nulls": "last"
190
+ }
191
+ ],
192
+ "isUnique": false,
193
+ "concurrently": false,
194
+ "method": "btree",
195
+ "with": {}
196
+ }
197
+ },
198
+ "foreignKeys": {
199
+ "session_user_id_user_id_fk": {
200
+ "name": "session_user_id_user_id_fk",
201
+ "tableFrom": "session",
202
+ "tableTo": "user",
203
+ "columnsFrom": ["user_id"],
204
+ "columnsTo": ["id"],
205
+ "onDelete": "cascade",
206
+ "onUpdate": "no action"
207
+ }
208
+ },
209
+ "compositePrimaryKeys": {},
210
+ "uniqueConstraints": {
211
+ "session_token_unique": {
212
+ "name": "session_token_unique",
213
+ "nullsNotDistinct": false,
214
+ "columns": ["token"]
215
+ }
216
+ },
217
+ "policies": {},
218
+ "checkConstraints": {},
219
+ "isRLSEnabled": false
220
+ },
221
+ "public.sms_otp_session": {
222
+ "name": "sms_otp_session",
223
+ "schema": "",
224
+ "columns": {
225
+ "id": {
226
+ "name": "id",
227
+ "type": "uuid",
228
+ "primaryKey": true,
229
+ "notNull": true,
230
+ "default": "gen_random_uuid()"
231
+ },
232
+ "user_id": {
233
+ "name": "user_id",
234
+ "type": "uuid",
235
+ "primaryKey": false,
236
+ "notNull": true
237
+ },
238
+ "phone": {
239
+ "name": "phone",
240
+ "type": "text",
241
+ "primaryKey": false,
242
+ "notNull": true
243
+ },
244
+ "code_hash": {
245
+ "name": "code_hash",
246
+ "type": "text",
247
+ "primaryKey": false,
248
+ "notNull": true
249
+ },
250
+ "expires_at": {
251
+ "name": "expires_at",
252
+ "type": "timestamp with time zone",
253
+ "primaryKey": false,
254
+ "notNull": true
255
+ },
256
+ "failed_attempts": {
257
+ "name": "failed_attempts",
258
+ "type": "integer",
259
+ "primaryKey": false,
260
+ "notNull": true,
261
+ "default": 0
262
+ },
263
+ "created_at": {
264
+ "name": "created_at",
265
+ "type": "timestamp with time zone",
266
+ "primaryKey": false,
267
+ "notNull": true,
268
+ "default": "now()"
269
+ }
270
+ },
271
+ "indexes": {
272
+ "sms_otp_session_user_id_idx": {
273
+ "name": "sms_otp_session_user_id_idx",
274
+ "columns": [
275
+ {
276
+ "expression": "user_id",
277
+ "isExpression": false,
278
+ "asc": true,
279
+ "nulls": "last"
280
+ }
281
+ ],
282
+ "isUnique": false,
283
+ "concurrently": false,
284
+ "method": "btree",
285
+ "with": {}
286
+ },
287
+ "sms_otp_session_phone_idx": {
288
+ "name": "sms_otp_session_phone_idx",
289
+ "columns": [
290
+ {
291
+ "expression": "phone",
292
+ "isExpression": false,
293
+ "asc": true,
294
+ "nulls": "last"
295
+ }
296
+ ],
297
+ "isUnique": false,
298
+ "concurrently": false,
299
+ "method": "btree",
300
+ "with": {}
301
+ }
302
+ },
303
+ "foreignKeys": {
304
+ "sms_otp_session_user_id_user_id_fk": {
305
+ "name": "sms_otp_session_user_id_user_id_fk",
306
+ "tableFrom": "sms_otp_session",
307
+ "tableTo": "user",
308
+ "columnsFrom": ["user_id"],
309
+ "columnsTo": ["id"],
310
+ "onDelete": "cascade",
311
+ "onUpdate": "no action"
312
+ }
313
+ },
314
+ "compositePrimaryKeys": {},
315
+ "uniqueConstraints": {},
316
+ "policies": {},
317
+ "checkConstraints": {},
318
+ "isRLSEnabled": false
319
+ },
320
+ "public.two_factor": {
321
+ "name": "two_factor",
322
+ "schema": "",
323
+ "columns": {
324
+ "id": {
325
+ "name": "id",
326
+ "type": "uuid",
327
+ "primaryKey": true,
328
+ "notNull": true,
329
+ "default": "gen_random_uuid()"
330
+ },
331
+ "secret": {
332
+ "name": "secret",
333
+ "type": "text",
334
+ "primaryKey": false,
335
+ "notNull": true
336
+ },
337
+ "backup_codes": {
338
+ "name": "backup_codes",
339
+ "type": "text",
340
+ "primaryKey": false,
341
+ "notNull": true
342
+ },
343
+ "user_id": {
344
+ "name": "user_id",
345
+ "type": "uuid",
346
+ "primaryKey": false,
347
+ "notNull": true
348
+ },
349
+ "verified": {
350
+ "name": "verified",
351
+ "type": "boolean",
352
+ "primaryKey": false,
353
+ "notNull": false,
354
+ "default": true
355
+ }
356
+ },
357
+ "indexes": {
358
+ "two_factor_user_id_idx": {
359
+ "name": "two_factor_user_id_idx",
360
+ "columns": [
361
+ {
362
+ "expression": "user_id",
363
+ "isExpression": false,
364
+ "asc": true,
365
+ "nulls": "last"
366
+ }
367
+ ],
368
+ "isUnique": false,
369
+ "concurrently": false,
370
+ "method": "btree",
371
+ "with": {}
372
+ },
373
+ "two_factor_secret_idx": {
374
+ "name": "two_factor_secret_idx",
375
+ "columns": [
376
+ {
377
+ "expression": "secret",
378
+ "isExpression": false,
379
+ "asc": true,
380
+ "nulls": "last"
381
+ }
382
+ ],
383
+ "isUnique": false,
384
+ "concurrently": false,
385
+ "method": "btree",
386
+ "with": {}
387
+ }
388
+ },
389
+ "foreignKeys": {
390
+ "two_factor_user_id_user_id_fk": {
391
+ "name": "two_factor_user_id_user_id_fk",
392
+ "tableFrom": "two_factor",
393
+ "tableTo": "user",
394
+ "columnsFrom": ["user_id"],
395
+ "columnsTo": ["id"],
396
+ "onDelete": "cascade",
397
+ "onUpdate": "no action"
398
+ }
399
+ },
400
+ "compositePrimaryKeys": {},
401
+ "uniqueConstraints": {},
402
+ "policies": {},
403
+ "checkConstraints": {},
404
+ "isRLSEnabled": false
405
+ },
406
+ "public.user": {
407
+ "name": "user",
408
+ "schema": "",
409
+ "columns": {
410
+ "id": {
411
+ "name": "id",
412
+ "type": "uuid",
413
+ "primaryKey": true,
414
+ "notNull": true,
415
+ "default": "gen_random_uuid()"
416
+ },
417
+ "name": {
418
+ "name": "name",
419
+ "type": "text",
420
+ "primaryKey": false,
421
+ "notNull": true
422
+ },
423
+ "email": {
424
+ "name": "email",
425
+ "type": "text",
426
+ "primaryKey": false,
427
+ "notNull": true
428
+ },
429
+ "email_verified": {
430
+ "name": "email_verified",
431
+ "type": "boolean",
432
+ "primaryKey": false,
433
+ "notNull": true,
434
+ "default": false
435
+ },
436
+ "image": {
437
+ "name": "image",
438
+ "type": "text",
439
+ "primaryKey": false,
440
+ "notNull": false
441
+ },
442
+ "theme": {
443
+ "name": "theme",
444
+ "type": "user_theme",
445
+ "typeSchema": "public",
446
+ "primaryKey": false,
447
+ "notNull": true,
448
+ "default": "'system'"
449
+ },
450
+ "language": {
451
+ "name": "language",
452
+ "type": "text",
453
+ "primaryKey": false,
454
+ "notNull": true,
455
+ "default": "'en'"
456
+ },
457
+ "role": {
458
+ "name": "role",
459
+ "type": "text",
460
+ "primaryKey": false,
461
+ "notNull": true,
462
+ "default": "'player'"
463
+ },
464
+ "is_active": {
465
+ "name": "is_active",
466
+ "type": "boolean",
467
+ "primaryKey": false,
468
+ "notNull": true,
469
+ "default": true
470
+ },
471
+ "banned": {
472
+ "name": "banned",
473
+ "type": "boolean",
474
+ "primaryKey": false,
475
+ "notNull": false,
476
+ "default": false
477
+ },
478
+ "ban_reason": {
479
+ "name": "ban_reason",
480
+ "type": "text",
481
+ "primaryKey": false,
482
+ "notNull": false
483
+ },
484
+ "ban_expires": {
485
+ "name": "ban_expires",
486
+ "type": "timestamp with time zone",
487
+ "primaryKey": false,
488
+ "notNull": false
489
+ },
490
+ "two_factor_enabled": {
491
+ "name": "two_factor_enabled",
492
+ "type": "boolean",
493
+ "primaryKey": false,
494
+ "notNull": false,
495
+ "default": false
496
+ },
497
+ "phone_number": {
498
+ "name": "phone_number",
499
+ "type": "text",
500
+ "primaryKey": false,
501
+ "notNull": false
502
+ },
503
+ "phone_verified": {
504
+ "name": "phone_verified",
505
+ "type": "boolean",
506
+ "primaryKey": false,
507
+ "notNull": true,
508
+ "default": false
509
+ },
510
+ "phone_verified_at": {
511
+ "name": "phone_verified_at",
512
+ "type": "timestamp with time zone",
513
+ "primaryKey": false,
514
+ "notNull": false
515
+ },
516
+ "failed_login_attempts": {
517
+ "name": "failed_login_attempts",
518
+ "type": "integer",
519
+ "primaryKey": false,
520
+ "notNull": true,
521
+ "default": 0
522
+ },
523
+ "lockout_until": {
524
+ "name": "lockout_until",
525
+ "type": "timestamp with time zone",
526
+ "primaryKey": false,
527
+ "notNull": false
528
+ },
529
+ "lockout_count": {
530
+ "name": "lockout_count",
531
+ "type": "integer",
532
+ "primaryKey": false,
533
+ "notNull": true,
534
+ "default": 0
535
+ },
536
+ "last_lockout_at": {
537
+ "name": "last_lockout_at",
538
+ "type": "timestamp with time zone",
539
+ "primaryKey": false,
540
+ "notNull": false
541
+ },
542
+ "rg_blocked": {
543
+ "name": "rg_blocked",
544
+ "type": "boolean",
545
+ "primaryKey": false,
546
+ "notNull": true,
547
+ "default": false
548
+ },
549
+ "rg_blocked_until": {
550
+ "name": "rg_blocked_until",
551
+ "type": "timestamp with time zone",
552
+ "primaryKey": false,
553
+ "notNull": false
554
+ },
555
+ "created_at": {
556
+ "name": "created_at",
557
+ "type": "timestamp with time zone",
558
+ "primaryKey": false,
559
+ "notNull": true,
560
+ "default": "now()"
561
+ },
562
+ "updated_at": {
563
+ "name": "updated_at",
564
+ "type": "timestamp with time zone",
565
+ "primaryKey": false,
566
+ "notNull": true
567
+ }
568
+ },
569
+ "indexes": {
570
+ "user_email_trgm_idx": {
571
+ "name": "user_email_trgm_idx",
572
+ "columns": [
573
+ {
574
+ "expression": "\"email\" gin_trgm_ops",
575
+ "asc": true,
576
+ "isExpression": true,
577
+ "nulls": "last"
578
+ }
579
+ ],
580
+ "isUnique": false,
581
+ "concurrently": false,
582
+ "method": "gin",
583
+ "with": {}
584
+ }
585
+ },
586
+ "foreignKeys": {},
587
+ "compositePrimaryKeys": {},
588
+ "uniqueConstraints": {
589
+ "user_email_unique": {
590
+ "name": "user_email_unique",
591
+ "nullsNotDistinct": false,
592
+ "columns": ["email"]
593
+ }
594
+ },
595
+ "policies": {},
596
+ "checkConstraints": {},
597
+ "isRLSEnabled": false
598
+ },
599
+ "public.verification": {
600
+ "name": "verification",
601
+ "schema": "",
602
+ "columns": {
603
+ "id": {
604
+ "name": "id",
605
+ "type": "uuid",
606
+ "primaryKey": true,
607
+ "notNull": true,
608
+ "default": "gen_random_uuid()"
609
+ },
610
+ "identifier": {
611
+ "name": "identifier",
612
+ "type": "text",
613
+ "primaryKey": false,
614
+ "notNull": true
615
+ },
616
+ "value": {
617
+ "name": "value",
618
+ "type": "text",
619
+ "primaryKey": false,
620
+ "notNull": true
621
+ },
622
+ "expires_at": {
623
+ "name": "expires_at",
624
+ "type": "timestamp with time zone",
625
+ "primaryKey": false,
626
+ "notNull": true
627
+ },
628
+ "created_at": {
629
+ "name": "created_at",
630
+ "type": "timestamp with time zone",
631
+ "primaryKey": false,
632
+ "notNull": true,
633
+ "default": "now()"
634
+ },
635
+ "updated_at": {
636
+ "name": "updated_at",
637
+ "type": "timestamp with time zone",
638
+ "primaryKey": false,
639
+ "notNull": true
640
+ }
641
+ },
642
+ "indexes": {
643
+ "verification_identifier_idx": {
644
+ "name": "verification_identifier_idx",
645
+ "columns": [
646
+ {
647
+ "expression": "identifier",
648
+ "isExpression": false,
649
+ "asc": true,
650
+ "nulls": "last"
651
+ }
652
+ ],
653
+ "isUnique": false,
654
+ "concurrently": false,
655
+ "method": "btree",
656
+ "with": {}
657
+ }
658
+ },
659
+ "foreignKeys": {},
660
+ "compositePrimaryKeys": {},
661
+ "uniqueConstraints": {},
662
+ "policies": {},
663
+ "checkConstraints": {},
664
+ "isRLSEnabled": false
665
+ }
666
+ },
667
+ "enums": {
668
+ "public.user_theme": {
669
+ "name": "user_theme",
670
+ "schema": "public",
671
+ "values": ["light", "dark", "system"]
672
+ }
673
+ },
674
+ "schemas": {},
675
+ "sequences": {},
676
+ "roles": {},
677
+ "policies": {},
678
+ "views": {},
679
+ "_meta": {
680
+ "columns": {},
681
+ "schemas": {},
682
+ "tables": {}
683
+ }
684
+ }