@openora/core 0.4.1-canary.80 → 0.4.1-canary.82

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 (52) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/audit/plugin.d.ts.map +1 -1
  3. package/dist/audit/plugin.js +4 -1
  4. package/dist/audit/plugin.js.map +1 -1
  5. package/dist/contracts/schemas/events.d.ts +1 -0
  6. package/dist/contracts/schemas/events.d.ts.map +1 -1
  7. package/dist/contracts/schemas/events.js +1 -0
  8. package/dist/contracts/schemas/events.js.map +1 -1
  9. package/dist/contracts/schemas/identity.d.ts +5 -0
  10. package/dist/contracts/schemas/identity.d.ts.map +1 -1
  11. package/dist/contracts/schemas/identity.js +4 -0
  12. package/dist/contracts/schemas/identity.js.map +1 -1
  13. package/dist/engagement/chat/__tests__/moderation.test.js +2 -0
  14. package/dist/engagement/chat/__tests__/moderation.test.js.map +1 -1
  15. package/dist/engagement/chat/moderation/profanity.d.ts.map +1 -1
  16. package/dist/engagement/chat/moderation/profanity.js +2 -0
  17. package/dist/engagement/chat/moderation/profanity.js.map +1 -1
  18. package/dist/pam/identity/__tests__/identity.service.int.test.js +51 -2
  19. package/dist/pam/identity/__tests__/identity.service.int.test.js.map +1 -1
  20. package/dist/pam/identity/__tests__/phone-login.service.int.test.js +12 -0
  21. package/dist/pam/identity/__tests__/phone-login.service.int.test.js.map +1 -1
  22. package/dist/pam/identity/contract/index.d.ts +8 -0
  23. package/dist/pam/identity/contract/index.d.ts.map +1 -1
  24. package/dist/pam/identity/contract/index.js +3 -2
  25. package/dist/pam/identity/contract/index.js.map +1 -1
  26. package/dist/pam/identity/drizzle/migrations/0006_brave_sabra.sql +1 -0
  27. package/dist/pam/identity/drizzle/migrations/meta/0006_snapshot.json +701 -0
  28. package/dist/pam/identity/drizzle/migrations/meta/_journal.json +7 -0
  29. package/dist/pam/identity/plugin.d.ts.map +1 -1
  30. package/dist/pam/identity/plugin.js +1 -0
  31. package/dist/pam/identity/plugin.js.map +1 -1
  32. package/dist/pam/identity/react/auth.d.ts +4 -0
  33. package/dist/pam/identity/react/auth.d.ts.map +1 -1
  34. package/dist/pam/identity/router/index.d.ts +8 -0
  35. package/dist/pam/identity/router/index.d.ts.map +1 -1
  36. package/dist/pam/identity/schema/index.d.ts +17 -0
  37. package/dist/pam/identity/schema/index.d.ts.map +1 -1
  38. package/dist/pam/identity/schema/index.js +1 -0
  39. package/dist/pam/identity/schema/index.js.map +1 -1
  40. package/dist/pam/identity/service/identity.service.d.ts +6 -5
  41. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  42. package/dist/pam/identity/service/identity.service.js +103 -31
  43. package/dist/pam/identity/service/identity.service.js.map +1 -1
  44. package/dist/pam/identity/service/lockout-policy.service.d.ts +30 -0
  45. package/dist/pam/identity/service/lockout-policy.service.d.ts.map +1 -0
  46. package/dist/pam/identity/service/lockout-policy.service.js +40 -0
  47. package/dist/pam/identity/service/lockout-policy.service.js.map +1 -0
  48. package/dist/pam/identity/service/phone-login.service.d.ts +8 -2
  49. package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -1
  50. package/dist/pam/identity/service/phone-login.service.js +56 -2
  51. package/dist/pam/identity/service/phone-login.service.js.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,701 @@
1
+ {
2
+ "id": "df66abdc-4e91-493e-9580-ec9d56bfa1f6",
3
+ "prevId": "c004fccb-d8f0-4308-bd8b-d5a498439abe",
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_phone_idx": {
273
+ "name": "sms_otp_session_phone_idx",
274
+ "columns": [
275
+ {
276
+ "expression": "phone",
277
+ "isExpression": false,
278
+ "asc": true,
279
+ "nulls": "last"
280
+ }
281
+ ],
282
+ "isUnique": false,
283
+ "concurrently": false,
284
+ "method": "btree",
285
+ "with": {}
286
+ }
287
+ },
288
+ "foreignKeys": {
289
+ "sms_otp_session_user_id_user_id_fk": {
290
+ "name": "sms_otp_session_user_id_user_id_fk",
291
+ "tableFrom": "sms_otp_session",
292
+ "tableTo": "user",
293
+ "columnsFrom": ["user_id"],
294
+ "columnsTo": ["id"],
295
+ "onDelete": "cascade",
296
+ "onUpdate": "no action"
297
+ }
298
+ },
299
+ "compositePrimaryKeys": {},
300
+ "uniqueConstraints": {
301
+ "sms_otp_session_userId_unique": {
302
+ "name": "sms_otp_session_userId_unique",
303
+ "nullsNotDistinct": false,
304
+ "columns": ["user_id"]
305
+ }
306
+ },
307
+ "policies": {},
308
+ "checkConstraints": {},
309
+ "isRLSEnabled": false
310
+ },
311
+ "public.two_factor": {
312
+ "name": "two_factor",
313
+ "schema": "",
314
+ "columns": {
315
+ "id": {
316
+ "name": "id",
317
+ "type": "uuid",
318
+ "primaryKey": true,
319
+ "notNull": true,
320
+ "default": "gen_random_uuid()"
321
+ },
322
+ "secret": {
323
+ "name": "secret",
324
+ "type": "text",
325
+ "primaryKey": false,
326
+ "notNull": true
327
+ },
328
+ "backup_codes": {
329
+ "name": "backup_codes",
330
+ "type": "text",
331
+ "primaryKey": false,
332
+ "notNull": true
333
+ },
334
+ "user_id": {
335
+ "name": "user_id",
336
+ "type": "uuid",
337
+ "primaryKey": false,
338
+ "notNull": true
339
+ },
340
+ "verified": {
341
+ "name": "verified",
342
+ "type": "boolean",
343
+ "primaryKey": false,
344
+ "notNull": false,
345
+ "default": true
346
+ }
347
+ },
348
+ "indexes": {
349
+ "two_factor_user_id_idx": {
350
+ "name": "two_factor_user_id_idx",
351
+ "columns": [
352
+ {
353
+ "expression": "user_id",
354
+ "isExpression": false,
355
+ "asc": true,
356
+ "nulls": "last"
357
+ }
358
+ ],
359
+ "isUnique": false,
360
+ "concurrently": false,
361
+ "method": "btree",
362
+ "with": {}
363
+ },
364
+ "two_factor_secret_idx": {
365
+ "name": "two_factor_secret_idx",
366
+ "columns": [
367
+ {
368
+ "expression": "secret",
369
+ "isExpression": false,
370
+ "asc": true,
371
+ "nulls": "last"
372
+ }
373
+ ],
374
+ "isUnique": false,
375
+ "concurrently": false,
376
+ "method": "btree",
377
+ "with": {}
378
+ }
379
+ },
380
+ "foreignKeys": {
381
+ "two_factor_user_id_user_id_fk": {
382
+ "name": "two_factor_user_id_user_id_fk",
383
+ "tableFrom": "two_factor",
384
+ "tableTo": "user",
385
+ "columnsFrom": ["user_id"],
386
+ "columnsTo": ["id"],
387
+ "onDelete": "cascade",
388
+ "onUpdate": "no action"
389
+ }
390
+ },
391
+ "compositePrimaryKeys": {},
392
+ "uniqueConstraints": {},
393
+ "policies": {},
394
+ "checkConstraints": {},
395
+ "isRLSEnabled": false
396
+ },
397
+ "public.user": {
398
+ "name": "user",
399
+ "schema": "",
400
+ "columns": {
401
+ "id": {
402
+ "name": "id",
403
+ "type": "uuid",
404
+ "primaryKey": true,
405
+ "notNull": true,
406
+ "default": "gen_random_uuid()"
407
+ },
408
+ "name": {
409
+ "name": "name",
410
+ "type": "text",
411
+ "primaryKey": false,
412
+ "notNull": true
413
+ },
414
+ "email": {
415
+ "name": "email",
416
+ "type": "text",
417
+ "primaryKey": false,
418
+ "notNull": true
419
+ },
420
+ "email_verified": {
421
+ "name": "email_verified",
422
+ "type": "boolean",
423
+ "primaryKey": false,
424
+ "notNull": true,
425
+ "default": false
426
+ },
427
+ "image": {
428
+ "name": "image",
429
+ "type": "text",
430
+ "primaryKey": false,
431
+ "notNull": false
432
+ },
433
+ "theme": {
434
+ "name": "theme",
435
+ "type": "user_theme",
436
+ "typeSchema": "public",
437
+ "primaryKey": false,
438
+ "notNull": true,
439
+ "default": "'system'"
440
+ },
441
+ "language": {
442
+ "name": "language",
443
+ "type": "text",
444
+ "primaryKey": false,
445
+ "notNull": true,
446
+ "default": "'en'"
447
+ },
448
+ "role": {
449
+ "name": "role",
450
+ "type": "text",
451
+ "primaryKey": false,
452
+ "notNull": true,
453
+ "default": "'player'"
454
+ },
455
+ "is_active": {
456
+ "name": "is_active",
457
+ "type": "boolean",
458
+ "primaryKey": false,
459
+ "notNull": true,
460
+ "default": true
461
+ },
462
+ "banned": {
463
+ "name": "banned",
464
+ "type": "boolean",
465
+ "primaryKey": false,
466
+ "notNull": false,
467
+ "default": false
468
+ },
469
+ "ban_reason": {
470
+ "name": "ban_reason",
471
+ "type": "text",
472
+ "primaryKey": false,
473
+ "notNull": false
474
+ },
475
+ "ban_expires": {
476
+ "name": "ban_expires",
477
+ "type": "timestamp with time zone",
478
+ "primaryKey": false,
479
+ "notNull": false
480
+ },
481
+ "two_factor_enabled": {
482
+ "name": "two_factor_enabled",
483
+ "type": "boolean",
484
+ "primaryKey": false,
485
+ "notNull": false,
486
+ "default": false
487
+ },
488
+ "phone_number": {
489
+ "name": "phone_number",
490
+ "type": "text",
491
+ "primaryKey": false,
492
+ "notNull": false
493
+ },
494
+ "phone_verified": {
495
+ "name": "phone_verified",
496
+ "type": "boolean",
497
+ "primaryKey": false,
498
+ "notNull": true,
499
+ "default": false
500
+ },
501
+ "phone_verified_at": {
502
+ "name": "phone_verified_at",
503
+ "type": "timestamp with time zone",
504
+ "primaryKey": false,
505
+ "notNull": false
506
+ },
507
+ "failed_login_attempts": {
508
+ "name": "failed_login_attempts",
509
+ "type": "integer",
510
+ "primaryKey": false,
511
+ "notNull": true,
512
+ "default": 0
513
+ },
514
+ "lockout_until": {
515
+ "name": "lockout_until",
516
+ "type": "timestamp with time zone",
517
+ "primaryKey": false,
518
+ "notNull": false
519
+ },
520
+ "lockout_count": {
521
+ "name": "lockout_count",
522
+ "type": "integer",
523
+ "primaryKey": false,
524
+ "notNull": true,
525
+ "default": 0
526
+ },
527
+ "last_lockout_at": {
528
+ "name": "last_lockout_at",
529
+ "type": "timestamp with time zone",
530
+ "primaryKey": false,
531
+ "notNull": false
532
+ },
533
+ "last_failed_login_at": {
534
+ "name": "last_failed_login_at",
535
+ "type": "timestamp with time zone",
536
+ "primaryKey": false,
537
+ "notNull": false
538
+ },
539
+ "rg_blocked": {
540
+ "name": "rg_blocked",
541
+ "type": "boolean",
542
+ "primaryKey": false,
543
+ "notNull": true,
544
+ "default": false
545
+ },
546
+ "rg_blocked_until": {
547
+ "name": "rg_blocked_until",
548
+ "type": "timestamp with time zone",
549
+ "primaryKey": false,
550
+ "notNull": false
551
+ },
552
+ "created_at": {
553
+ "name": "created_at",
554
+ "type": "timestamp with time zone",
555
+ "primaryKey": false,
556
+ "notNull": true,
557
+ "default": "now()"
558
+ },
559
+ "updated_at": {
560
+ "name": "updated_at",
561
+ "type": "timestamp with time zone",
562
+ "primaryKey": false,
563
+ "notNull": true
564
+ }
565
+ },
566
+ "indexes": {
567
+ "user_email_trgm_idx": {
568
+ "name": "user_email_trgm_idx",
569
+ "columns": [
570
+ {
571
+ "expression": "\"email\" gin_trgm_ops",
572
+ "asc": true,
573
+ "isExpression": true,
574
+ "nulls": "last"
575
+ }
576
+ ],
577
+ "isUnique": false,
578
+ "concurrently": false,
579
+ "method": "gin",
580
+ "with": {}
581
+ },
582
+ "user_created_at_idx": {
583
+ "name": "user_created_at_idx",
584
+ "columns": [
585
+ {
586
+ "expression": "created_at",
587
+ "isExpression": false,
588
+ "asc": true,
589
+ "nulls": "last"
590
+ }
591
+ ],
592
+ "isUnique": false,
593
+ "concurrently": false,
594
+ "method": "btree",
595
+ "with": {}
596
+ }
597
+ },
598
+ "foreignKeys": {},
599
+ "compositePrimaryKeys": {},
600
+ "uniqueConstraints": {
601
+ "user_email_unique": {
602
+ "name": "user_email_unique",
603
+ "nullsNotDistinct": false,
604
+ "columns": ["email"]
605
+ },
606
+ "user_phoneNumber_unique": {
607
+ "name": "user_phoneNumber_unique",
608
+ "nullsNotDistinct": false,
609
+ "columns": ["phone_number"]
610
+ }
611
+ },
612
+ "policies": {},
613
+ "checkConstraints": {},
614
+ "isRLSEnabled": false
615
+ },
616
+ "public.verification": {
617
+ "name": "verification",
618
+ "schema": "",
619
+ "columns": {
620
+ "id": {
621
+ "name": "id",
622
+ "type": "uuid",
623
+ "primaryKey": true,
624
+ "notNull": true,
625
+ "default": "gen_random_uuid()"
626
+ },
627
+ "identifier": {
628
+ "name": "identifier",
629
+ "type": "text",
630
+ "primaryKey": false,
631
+ "notNull": true
632
+ },
633
+ "value": {
634
+ "name": "value",
635
+ "type": "text",
636
+ "primaryKey": false,
637
+ "notNull": true
638
+ },
639
+ "expires_at": {
640
+ "name": "expires_at",
641
+ "type": "timestamp with time zone",
642
+ "primaryKey": false,
643
+ "notNull": true
644
+ },
645
+ "created_at": {
646
+ "name": "created_at",
647
+ "type": "timestamp with time zone",
648
+ "primaryKey": false,
649
+ "notNull": true,
650
+ "default": "now()"
651
+ },
652
+ "updated_at": {
653
+ "name": "updated_at",
654
+ "type": "timestamp with time zone",
655
+ "primaryKey": false,
656
+ "notNull": true
657
+ }
658
+ },
659
+ "indexes": {
660
+ "verification_identifier_idx": {
661
+ "name": "verification_identifier_idx",
662
+ "columns": [
663
+ {
664
+ "expression": "identifier",
665
+ "isExpression": false,
666
+ "asc": true,
667
+ "nulls": "last"
668
+ }
669
+ ],
670
+ "isUnique": false,
671
+ "concurrently": false,
672
+ "method": "btree",
673
+ "with": {}
674
+ }
675
+ },
676
+ "foreignKeys": {},
677
+ "compositePrimaryKeys": {},
678
+ "uniqueConstraints": {},
679
+ "policies": {},
680
+ "checkConstraints": {},
681
+ "isRLSEnabled": false
682
+ }
683
+ },
684
+ "enums": {
685
+ "public.user_theme": {
686
+ "name": "user_theme",
687
+ "schema": "public",
688
+ "values": ["light", "dark", "system"]
689
+ }
690
+ },
691
+ "schemas": {},
692
+ "sequences": {},
693
+ "roles": {},
694
+ "policies": {},
695
+ "views": {},
696
+ "_meta": {
697
+ "columns": {},
698
+ "schemas": {},
699
+ "tables": {}
700
+ }
701
+ }