@openora/core 0.4.1-canary.31 → 0.4.1-canary.34

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 (272) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/__tests__/backoffice.router.test.js +4 -4
  3. package/dist/admin-console/__tests__/backoffice.router.test.js.map +1 -1
  4. package/dist/admin-console/contract/index.d.ts +57 -0
  5. package/dist/admin-console/contract/index.d.ts.map +1 -1
  6. package/dist/admin-console/contract/index.js +11 -3
  7. package/dist/admin-console/contract/index.js.map +1 -1
  8. package/dist/admin-console/router/index.d.ts +25 -0
  9. package/dist/admin-console/router/index.d.ts.map +1 -1
  10. package/dist/admin-console/router/index.js +10 -2
  11. package/dist/admin-console/router/index.js.map +1 -1
  12. package/dist/admin-console/service/backoffice.service.d.ts +3 -3
  13. package/dist/admin-console/service/backoffice.service.d.ts.map +1 -1
  14. package/dist/admin-console/service/backoffice.service.js +7 -5
  15. package/dist/admin-console/service/backoffice.service.js.map +1 -1
  16. package/dist/audit/contract/index.d.ts +58 -0
  17. package/dist/audit/contract/index.d.ts.map +1 -1
  18. package/dist/audit/contract/index.js +20 -2
  19. package/dist/audit/contract/index.js.map +1 -1
  20. package/dist/audit/router/index.d.ts +24 -0
  21. package/dist/audit/router/index.d.ts.map +1 -1
  22. package/dist/audit/router/index.js +1 -5
  23. package/dist/audit/router/index.js.map +1 -1
  24. package/dist/audit/service/audit.service.d.ts +4 -4
  25. package/dist/audit/service/audit.service.d.ts.map +1 -1
  26. package/dist/audit/service/audit.service.js +15 -3
  27. package/dist/audit/service/audit.service.js.map +1 -1
  28. package/dist/cms/__tests__/cms.router.test.js +2 -2
  29. package/dist/cms/__tests__/cms.router.test.js.map +1 -1
  30. package/dist/cms/router/index.js +12 -12
  31. package/dist/cms/router/index.js.map +1 -1
  32. package/dist/cms/service/cms.service.d.ts +7 -7
  33. package/dist/cms/service/cms.service.d.ts.map +1 -1
  34. package/dist/cms/service/cms.service.js +54 -14
  35. package/dist/cms/service/cms.service.js.map +1 -1
  36. package/dist/compliance/__tests__/rg.router.test.js +7 -4
  37. package/dist/compliance/__tests__/rg.router.test.js.map +1 -1
  38. package/dist/compliance/contract/index.d.ts +17 -5
  39. package/dist/compliance/contract/index.d.ts.map +1 -1
  40. package/dist/compliance/contract/rg.d.ts +42 -8
  41. package/dist/compliance/contract/rg.d.ts.map +1 -1
  42. package/dist/compliance/contract/rg.js +12 -1
  43. package/dist/compliance/contract/rg.js.map +1 -1
  44. package/dist/compliance/router/index.d.ts +17 -5
  45. package/dist/compliance/router/index.d.ts.map +1 -1
  46. package/dist/compliance/router/index.js +21 -16
  47. package/dist/compliance/router/index.js.map +1 -1
  48. package/dist/compliance/schema/index.d.ts +1 -1
  49. package/dist/compliance/service/compliance.service.d.ts +4 -4
  50. package/dist/compliance/service/compliance.service.d.ts.map +1 -1
  51. package/dist/compliance/service/compliance.service.js +17 -5
  52. package/dist/compliance/service/compliance.service.js.map +1 -1
  53. package/dist/compliance/service/kyc.service.d.ts +2 -2
  54. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  55. package/dist/compliance/service/kyc.service.js +3 -1
  56. package/dist/compliance/service/kyc.service.js.map +1 -1
  57. package/dist/compliance/service/rg-monitoring.service.d.ts.map +1 -1
  58. package/dist/compliance/service/rg-monitoring.service.js +12 -3
  59. package/dist/compliance/service/rg-monitoring.service.js.map +1 -1
  60. package/dist/compliance/service/rg.service.d.ts +5 -5
  61. package/dist/compliance/service/rg.service.d.ts.map +1 -1
  62. package/dist/compliance/service/rg.service.js +12 -4
  63. package/dist/compliance/service/rg.service.js.map +1 -1
  64. package/dist/contracts/adapters/admin-user-directory.d.ts +7 -1
  65. package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
  66. package/dist/contracts/adapters/admin-user-directory.js +8 -0
  67. package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
  68. package/dist/contracts/adapters/admin-wallet-reporting.d.ts +5 -0
  69. package/dist/contracts/adapters/admin-wallet-reporting.d.ts.map +1 -1
  70. package/dist/contracts/adapters/admin-wallet-reporting.js +9 -0
  71. package/dist/contracts/adapters/admin-wallet-reporting.js.map +1 -1
  72. package/dist/contracts/adapters/audit.d.ts +2 -3
  73. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  74. package/dist/contracts/adapters/audit.js.map +1 -1
  75. package/dist/contracts/adapters/index.d.ts +4 -4
  76. package/dist/contracts/adapters/index.d.ts.map +1 -1
  77. package/dist/contracts/adapters/index.js +2 -2
  78. package/dist/contracts/adapters/index.js.map +1 -1
  79. package/dist/contracts/kit.d.ts +9 -0
  80. package/dist/contracts/kit.d.ts.map +1 -1
  81. package/dist/contracts/kit.js +1 -0
  82. package/dist/contracts/kit.js.map +1 -1
  83. package/dist/contracts/schemas/common.d.ts +13 -0
  84. package/dist/contracts/schemas/common.d.ts.map +1 -1
  85. package/dist/contracts/schemas/common.js +11 -0
  86. package/dist/contracts/schemas/common.js.map +1 -1
  87. package/dist/contracts/schemas/compliance.d.ts +1 -1
  88. package/dist/contracts/schemas/events.d.ts +105 -1
  89. package/dist/contracts/schemas/events.d.ts.map +1 -1
  90. package/dist/contracts/schemas/events.js +68 -65
  91. package/dist/contracts/schemas/events.js.map +1 -1
  92. package/dist/contracts/schemas/identity.d.ts +6 -0
  93. package/dist/contracts/schemas/identity.d.ts.map +1 -1
  94. package/dist/contracts/schemas/identity.js +2 -0
  95. package/dist/contracts/schemas/identity.js.map +1 -1
  96. package/dist/contracts/schemas/player.d.ts +26 -0
  97. package/dist/contracts/schemas/player.d.ts.map +1 -1
  98. package/dist/contracts/schemas/player.js +14 -1
  99. package/dist/contracts/schemas/player.js.map +1 -1
  100. package/dist/engagement/chat/__tests__/chat.service.test.js +61 -12
  101. package/dist/engagement/chat/__tests__/chat.service.test.js.map +1 -1
  102. package/dist/engagement/chat/contract/index.d.ts +1 -5
  103. package/dist/engagement/chat/contract/index.d.ts.map +1 -1
  104. package/dist/engagement/chat/contract/index.js +2 -4
  105. package/dist/engagement/chat/contract/index.js.map +1 -1
  106. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  107. package/dist/engagement/chat/router/index.js +25 -13
  108. package/dist/engagement/chat/router/index.js.map +1 -1
  109. package/dist/engagement/chat/service/chat.service.d.ts +18 -18
  110. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  111. package/dist/engagement/chat/service/chat.service.js +67 -18
  112. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  113. package/dist/iam/__tests__/iam.service.test.js +10 -5
  114. package/dist/iam/__tests__/iam.service.test.js.map +1 -1
  115. package/dist/iam/contract/index.d.ts +48 -0
  116. package/dist/iam/contract/index.d.ts.map +1 -1
  117. package/dist/iam/contract/index.js +26 -4
  118. package/dist/iam/contract/index.js.map +1 -1
  119. package/dist/iam/router/index.d.ts +27 -0
  120. package/dist/iam/router/index.d.ts.map +1 -1
  121. package/dist/iam/router/index.js +3 -1
  122. package/dist/iam/router/index.js.map +1 -1
  123. package/dist/iam/service/iam.service.d.ts +8 -11
  124. package/dist/iam/service/iam.service.d.ts.map +1 -1
  125. package/dist/iam/service/iam.service.js +51 -7
  126. package/dist/iam/service/iam.service.js.map +1 -1
  127. package/dist/pam/identity/__tests__/admin-user-directory.test.js +4 -0
  128. package/dist/pam/identity/__tests__/admin-user-directory.test.js.map +1 -1
  129. package/dist/pam/identity/__tests__/identity.service.test.js +31 -0
  130. package/dist/pam/identity/__tests__/identity.service.test.js.map +1 -1
  131. package/dist/pam/identity/__tests__/phone-login.service.test.js +71 -23
  132. package/dist/pam/identity/__tests__/phone-login.service.test.js.map +1 -1
  133. package/dist/pam/identity/admin-user-directory.d.ts +3 -3
  134. package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
  135. package/dist/pam/identity/admin-user-directory.js +24 -6
  136. package/dist/pam/identity/admin-user-directory.js.map +1 -1
  137. package/dist/pam/identity/contract/index.d.ts +16 -0
  138. package/dist/pam/identity/contract/index.d.ts.map +1 -1
  139. package/dist/pam/identity/contract/index.js +8 -2
  140. package/dist/pam/identity/contract/index.js.map +1 -1
  141. package/dist/pam/identity/plugin.d.ts.map +1 -1
  142. package/dist/pam/identity/plugin.js +3 -1
  143. package/dist/pam/identity/plugin.js.map +1 -1
  144. package/dist/pam/identity/router/index.d.ts +9 -0
  145. package/dist/pam/identity/router/index.d.ts.map +1 -1
  146. package/dist/pam/identity/router/index.js +21 -26
  147. package/dist/pam/identity/router/index.js.map +1 -1
  148. package/dist/pam/identity/service/identity.service.d.ts +7 -3
  149. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  150. package/dist/pam/identity/service/identity.service.js +104 -20
  151. package/dist/pam/identity/service/identity.service.js.map +1 -1
  152. package/dist/pam/identity/service/phone-login.service.d.ts +10 -12
  153. package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -1
  154. package/dist/pam/identity/service/phone-login.service.js +66 -11
  155. package/dist/pam/identity/service/phone-login.service.js.map +1 -1
  156. package/dist/pam/identity/service/session.service.d.ts +7 -4
  157. package/dist/pam/identity/service/session.service.d.ts.map +1 -1
  158. package/dist/pam/identity/service/session.service.js +21 -8
  159. package/dist/pam/identity/service/session.service.js.map +1 -1
  160. package/dist/pam/player-management/__tests__/player.router.test.js +3 -3
  161. package/dist/pam/player-management/__tests__/player.router.test.js.map +1 -1
  162. package/dist/pam/player-management/contract/index.d.ts +14 -0
  163. package/dist/pam/player-management/contract/index.d.ts.map +1 -1
  164. package/dist/pam/player-management/router/index.d.ts +14 -0
  165. package/dist/pam/player-management/router/index.d.ts.map +1 -1
  166. package/dist/pam/player-management/service/player.service.d.ts +3 -5
  167. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  168. package/dist/pam/player-management/service/player.service.js +12 -3
  169. package/dist/pam/player-management/service/player.service.js.map +1 -1
  170. package/dist/pam/player-note/contract/index.d.ts +14 -0
  171. package/dist/pam/player-note/contract/index.d.ts.map +1 -1
  172. package/dist/pam/player-note/contract/index.js +8 -2
  173. package/dist/pam/player-note/contract/index.js.map +1 -1
  174. package/dist/pam/player-note/router/index.d.ts +8 -0
  175. package/dist/pam/player-note/router/index.d.ts.map +1 -1
  176. package/dist/pam/player-note/router/index.js +7 -1
  177. package/dist/pam/player-note/router/index.js.map +1 -1
  178. package/dist/pam/player-note/service/player-note.service.d.ts +5 -3
  179. package/dist/pam/player-note/service/player-note.service.d.ts.map +1 -1
  180. package/dist/pam/player-note/service/player-note.service.js +5 -3
  181. package/dist/pam/player-note/service/player-note.service.js.map +1 -1
  182. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js +2 -1
  183. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js.map +1 -1
  184. package/dist/pam/tag/__tests__/tag.router.test.js +2 -2
  185. package/dist/pam/tag/__tests__/tag.router.test.js.map +1 -1
  186. package/dist/pam/tag/__tests__/tag.service.test.js +2 -2
  187. package/dist/pam/tag/__tests__/tag.service.test.js.map +1 -1
  188. package/dist/pam/tag/contract/index.d.ts +14 -0
  189. package/dist/pam/tag/contract/index.d.ts.map +1 -1
  190. package/dist/pam/tag/contract/index.js +8 -2
  191. package/dist/pam/tag/contract/index.js.map +1 -1
  192. package/dist/pam/tag/router/index.d.ts +8 -0
  193. package/dist/pam/tag/router/index.d.ts.map +1 -1
  194. package/dist/pam/tag/router/index.js +15 -5
  195. package/dist/pam/tag/router/index.js.map +1 -1
  196. package/dist/pam/tag/service/tag-evaluation.service.d.ts +0 -1
  197. package/dist/pam/tag/service/tag-evaluation.service.d.ts.map +1 -1
  198. package/dist/pam/tag/service/tag-evaluation.service.js +1 -1
  199. package/dist/pam/tag/service/tag-evaluation.service.js.map +1 -1
  200. package/dist/pam/tag/service/tag-mappers.d.ts +1 -0
  201. package/dist/pam/tag/service/tag-mappers.d.ts.map +1 -1
  202. package/dist/pam/tag/service/tag-mappers.js +1 -0
  203. package/dist/pam/tag/service/tag-mappers.js.map +1 -1
  204. package/dist/pam/tag/service/tag-rule.service.d.ts +2 -2
  205. package/dist/pam/tag/service/tag-rule.service.d.ts.map +1 -1
  206. package/dist/pam/tag/service/tag-rule.service.js +8 -2
  207. package/dist/pam/tag/service/tag-rule.service.js.map +1 -1
  208. package/dist/pam/tag/service/tag.service.d.ts +7 -4
  209. package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
  210. package/dist/pam/tag/service/tag.service.js +18 -7
  211. package/dist/pam/tag/service/tag.service.js.map +1 -1
  212. package/dist/server/auth/admin-guard.d.ts +7 -9
  213. package/dist/server/auth/admin-guard.d.ts.map +1 -1
  214. package/dist/server/auth/admin-guard.js +37 -15
  215. package/dist/server/auth/admin-guard.js.map +1 -1
  216. package/dist/server/auth/index.d.ts +1 -0
  217. package/dist/server/auth/index.d.ts.map +1 -1
  218. package/dist/server/auth/index.js.map +1 -1
  219. package/dist/server/kernel/event-bus.d.ts +1 -2
  220. package/dist/server/kernel/event-bus.d.ts.map +1 -1
  221. package/dist/server/kernel/event-bus.js +9 -3
  222. package/dist/server/kernel/event-bus.js.map +1 -1
  223. package/dist/server/kernel/index.d.ts +2 -2
  224. package/dist/server/kernel/index.d.ts.map +1 -1
  225. package/dist/server/kernel/index.js +2 -2
  226. package/dist/server/kernel/index.js.map +1 -1
  227. package/dist/server/kernel/request-context.d.ts +4 -0
  228. package/dist/server/kernel/request-context.d.ts.map +1 -1
  229. package/dist/server/kernel/request-context.js +4 -0
  230. package/dist/server/kernel/request-context.js.map +1 -1
  231. package/dist/server/kernel/router-utils.d.ts +3 -0
  232. package/dist/server/kernel/router-utils.d.ts.map +1 -1
  233. package/dist/server/kernel/router-utils.js +17 -2
  234. package/dist/server/kernel/router-utils.js.map +1 -1
  235. package/dist/server/runtime/create-app.d.ts.map +1 -1
  236. package/dist/server/runtime/create-app.js +4 -3
  237. package/dist/server/runtime/create-app.js.map +1 -1
  238. package/dist/testing/mock.d.ts +5 -1
  239. package/dist/testing/mock.d.ts.map +1 -1
  240. package/dist/testing/mock.js +12 -0
  241. package/dist/testing/mock.js.map +1 -1
  242. package/dist/wallet/__tests__/wallet-auto-rule.router.test.js +4 -4
  243. package/dist/wallet/__tests__/wallet-auto-rule.router.test.js.map +1 -1
  244. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js +78 -14
  245. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js.map +1 -1
  246. package/dist/wallet/__tests__/wallet-kyc-gate.test.js +21 -6
  247. package/dist/wallet/__tests__/wallet-kyc-gate.test.js.map +1 -1
  248. package/dist/wallet/__tests__/wallet-webhook.router.test.js +3 -3
  249. package/dist/wallet/__tests__/wallet-webhook.router.test.js.map +1 -1
  250. package/dist/wallet/__tests__/wallet.rate-limit.test.js +2 -2
  251. package/dist/wallet/__tests__/wallet.rate-limit.test.js.map +1 -1
  252. package/dist/wallet/__tests__/wallet.router.test.js +11 -5
  253. package/dist/wallet/__tests__/wallet.router.test.js.map +1 -1
  254. package/dist/wallet/__tests__/wallet.service.test.js +42 -8
  255. package/dist/wallet/__tests__/wallet.service.test.js.map +1 -1
  256. package/dist/wallet/admin-reporting.d.ts +1 -1
  257. package/dist/wallet/admin-reporting.d.ts.map +1 -1
  258. package/dist/wallet/admin-reporting.js +11 -3
  259. package/dist/wallet/admin-reporting.js.map +1 -1
  260. package/dist/wallet/contract/index.d.ts +84 -0
  261. package/dist/wallet/contract/index.d.ts.map +1 -1
  262. package/dist/wallet/contract/index.js +28 -2
  263. package/dist/wallet/contract/index.js.map +1 -1
  264. package/dist/wallet/router/index.d.ts +38 -0
  265. package/dist/wallet/router/index.d.ts.map +1 -1
  266. package/dist/wallet/router/index.js +37 -18
  267. package/dist/wallet/router/index.js.map +1 -1
  268. package/dist/wallet/service/wallet.service.d.ts +9 -7
  269. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  270. package/dist/wallet/service/wallet.service.js +36 -9
  271. package/dist/wallet/service/wallet.service.js.map +1 -1
  272. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { createHash, randomInt, randomUUID } from 'node:crypto';
2
2
  import { ORPCError } from '@orpc/server';
3
- import { assertRateLimit, signSessionCookie, } from '@openora/core/server';
3
+ import { assertRateLimit, signSessionCookie, createLogger, invalidate, } from '@openora/core/server';
4
4
  import { and, eq, gt, sql } from 'drizzle-orm';
5
- import { PhoneLoginErrorReasonSchema } from '@openora/core/contracts';
5
+ import { PhoneLoginErrorReasonSchema, PhoneLoginOtpInvalidReasonSchema, } from '@openora/core/contracts';
6
6
  import { user, session, smsOtpSession } from '../schema/index.js';
7
7
  import { isRgBlocked } from './rg-guard.service.js';
8
8
  const MINUTE_MS = 60 * 1000;
@@ -21,6 +21,11 @@ const OTP_VERIFY_RATE_LIMIT = {
21
21
  windowMs: 5 * MINUTE_MS,
22
22
  onUnavailable: 'deny',
23
23
  };
24
+ const FAKE_OTP_SHADOW_TTL_MS = 7 * 24 * 60 * 60 * 1000;
25
+ function phoneOtpShadowKey(phone) {
26
+ return `phone-otp-shadow:${phone}`;
27
+ }
28
+ const logger = createLogger('phone-otp-shadow');
24
29
  /** Resend requested before the 60s cooldown elapsed. */
25
30
  export function OtpCooldownError(retryAfterMs) {
26
31
  return new ORPCError('TOO_MANY_REQUESTS', {
@@ -28,11 +33,10 @@ export function OtpCooldownError(retryAfterMs) {
28
33
  data: { retryAfterMs },
29
34
  });
30
35
  }
31
- /** Wrong or expired code, session still alive. */
32
- export function OtpInvalidError(attemptsRemaining) {
36
+ export function OtpInvalidError(attemptsRemaining, reason) {
33
37
  return new ORPCError('UNPROCESSABLE_CONTENT', {
34
- message: 'The code is invalid or has expired.',
35
- data: { attemptsRemaining },
38
+ message: reason === 'expired' ? 'The code has expired.' : 'The code is invalid.',
39
+ data: { attemptsRemaining, reason: PhoneLoginOtpInvalidReasonSchema.enum[reason] },
36
40
  });
37
41
  }
38
42
  /** Max wrong attempts reached; the OTP session was invalidated - restart login. */
@@ -73,12 +77,37 @@ export class PhoneLoginService {
73
77
  sms;
74
78
  limiter;
75
79
  auth;
76
- constructor({ drizzle, events, sms, limiter, auth }) {
80
+ cache;
81
+ constructor({ drizzle, events, sms, limiter, auth, cache }) {
77
82
  this.drizzle = drizzle;
78
83
  this.events = events;
79
84
  this.sms = sms;
80
85
  this.limiter = limiter;
81
86
  this.auth = auth;
87
+ this.cache = cache;
88
+ }
89
+ async shadowGet(key) {
90
+ if (!this.cache) {
91
+ return undefined;
92
+ }
93
+ try {
94
+ return await this.cache.get(key);
95
+ }
96
+ catch (err) {
97
+ logger.warn({ key, err }, 'phone-otp shadow cache read failed');
98
+ return undefined;
99
+ }
100
+ }
101
+ async shadowSet(key, value) {
102
+ if (!this.cache) {
103
+ return;
104
+ }
105
+ try {
106
+ await this.cache.set(key, value, { ttlMs: FAKE_OTP_SHADOW_TTL_MS });
107
+ }
108
+ catch (err) {
109
+ logger.warn({ key, err }, 'phone-otp shadow cache write failed');
110
+ }
82
111
  }
83
112
  async requestOtp(input) {
84
113
  const { phone } = input;
@@ -95,6 +124,12 @@ export class PhoneLoginService {
95
124
  // response, minus the SMS. A caller cannot distinguish a real verified number from
96
125
  // a fake or unverified one.
97
126
  if (!account || !account.phoneVerified) {
127
+ const key = phoneOtpShadowKey(phone);
128
+ const shadow = await this.shadowGet(key);
129
+ if (shadow && now - shadow.createdAt < RESEND_COOLDOWN_MS) {
130
+ throw OtpCooldownError(RESEND_COOLDOWN_MS - (now - shadow.createdAt));
131
+ }
132
+ await this.shadowSet(key, { createdAt: now, failedAttempts: 0 });
98
133
  return { expiresAt: expiresAt.toISOString(), resendAfter: resendAfter.toISOString() };
99
134
  }
100
135
  const [existing] = await this.drizzle.db
@@ -117,13 +152,17 @@ export class PhoneLoginService {
117
152
  await this.sms.sendOtp({ to: phone, code });
118
153
  // Emit events only after SMS delivery so a send failure leaves no misleading
119
154
  // audit trail (no cancelled-without-requested orphan in the audit log).
155
+ const ip = input.ip ?? null;
156
+ const userAgent = input.userAgent ?? null;
120
157
  if (existing) {
121
158
  this.events.emit('identity.phone_otp.cancelled', {
122
159
  userId: account.id,
123
160
  reason: 'new_otp_requested',
161
+ ip,
162
+ userAgent,
124
163
  });
125
164
  }
126
- this.events.emit('identity.phone_otp.requested', { userId: account.id });
165
+ this.events.emit('identity.phone_otp.requested', { userId: account.id, ip, userAgent });
127
166
  return { expiresAt: expiresAt.toISOString(), resendAfter: resendAfter.toISOString() };
128
167
  }
129
168
  async verifyOtp(input, resHeaders) {
@@ -141,10 +180,24 @@ export class PhoneLoginService {
141
180
  .where(eq(smsOtpSession.phone, phone))
142
181
  .limit(1);
143
182
  if (!otp) {
144
- throw OtpInvalidError(0);
183
+ const key = phoneOtpShadowKey(phone);
184
+ const shadow = await this.shadowGet(key);
185
+ if (!shadow) {
186
+ throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - 1, 'wrong_code');
187
+ }
188
+ if (Date.now() - shadow.createdAt >= OTP_TTL_MS) {
189
+ throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - shadow.failedAttempts, 'expired');
190
+ }
191
+ const newAttempts = shadow.failedAttempts + 1;
192
+ if (newAttempts >= MAX_VERIFY_ATTEMPTS) {
193
+ await invalidate(this.cache, key);
194
+ throw OtpCancelledError();
195
+ }
196
+ await this.shadowSet(key, { createdAt: shadow.createdAt, failedAttempts: newAttempts });
197
+ throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - newAttempts, 'wrong_code');
145
198
  }
146
199
  if (otp.expiresAt.getTime() < Date.now()) {
147
- throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - otp.failedAttempts);
200
+ throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - otp.failedAttempts, 'expired');
148
201
  }
149
202
  if (hashCode(code) !== otp.codeHash) {
150
203
  // Atomic increment so concurrent guesses can't each read a stale count and slip
@@ -167,11 +220,13 @@ export class PhoneLoginService {
167
220
  this.events.emit('identity.phone_otp.cancelled', {
168
221
  userId: otp.userId,
169
222
  reason: 'max_attempts',
223
+ ip,
224
+ userAgent,
170
225
  });
171
226
  }
172
227
  throw OtpCancelledError();
173
228
  }
174
- throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - newAttempts);
229
+ throw OtpInvalidError(MAX_VERIFY_ATTEMPTS - newAttempts, 'wrong_code');
175
230
  }
176
231
  // Resolve the account before entering the transaction so the RG check can short-
177
232
  // circuit without consuming the OTP: a blocked user can try again once unblocked.
@@ -1 +1 @@
1
- {"version":3,"file":"phone-login.service.js","sourceRoot":"","sources":["../../../../src/pam/identity/service/phone-login.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phone-login.service.js","sourceRoot":"","sources":["../../../../src/pam/identity/service/phone-login.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type EventBus, DrizzleService } from '@openora/core/server';
2
- import type { User } from '@openora/core/contracts';
2
+ import type { ClientMeta, User, PaginationOptions } from '@openora/core/contracts';
3
+ import { type SessionSortBy } from '../contract/index.js';
3
4
  export declare const SessionNotFoundError: new (id: string) => Error;
4
5
  export type SessionServiceDeps = {
5
6
  drizzle: DrizzleService;
@@ -9,7 +10,9 @@ export declare class SessionService {
9
10
  private readonly drizzle;
10
11
  private readonly events;
11
12
  constructor({ drizzle, events }: SessionServiceDeps);
12
- listSessions(userId: User['id'], page: number, limit: number): Promise<{
13
+ listSessions({ userId, page, limit, sortBy, sortOrder, }: PaginationOptions<{
14
+ userId: User['id'];
15
+ }, SessionSortBy>): Promise<{
13
16
  items: {
14
17
  id: string;
15
18
  expiresAt: string;
@@ -21,10 +24,10 @@ export declare class SessionService {
21
24
  page: number;
22
25
  limit: number;
23
26
  }>;
24
- revokeSession(userId: User['id'], id: string, actorId?: User['id']): Promise<{
27
+ revokeSession(userId: User['id'], id: string, actorId?: User['id'], meta?: ClientMeta): Promise<{
25
28
  success: true;
26
29
  }>;
27
- revokeAllSessions(userId: User['id'], actorId?: User['id']): Promise<{
30
+ revokeAllSessions(userId: User['id'], actorId?: User['id'], meta?: ClientMeta): Promise<{
28
31
  success: true;
29
32
  }>;
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.service.d.ts","sourceRoot":"","sources":["../../../../src/pam/identity/service/session.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD,eAAO,MAAM,oBAAoB,2BAA+B,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEtB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAK7C,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;;;;;IA+B5D,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;;;IAmBlE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;;;CASjE"}
1
+ {"version":3,"file":"session.service.d.ts","sourceRoot":"","sources":["../../../../src/pam/identity/service/session.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,eAAO,MAAM,oBAAoB,2BAA+B,CAAC;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;gBAEtB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,kBAAkB;IAK7C,YAAY,CAAC,EACjB,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE,iBAAiB,CAAC;QAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;KAAE,EAAE,aAAa,CAAC;;;;;;;;;;;;IAsCrD,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU;;;IAqBrF,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU;;;CAcpF"}
@@ -1,5 +1,5 @@
1
1
  import { pageToOffset, makeNotFoundError, } from '@openora/core/server';
2
- import { eq, desc, and, gt, count, sql } from 'drizzle-orm';
2
+ import { eq, asc, desc, and, gt, count, sql } from 'drizzle-orm';
3
3
  import { session } from '../schema/index.js';
4
4
  export const SessionNotFoundError = makeNotFoundError('Session');
5
5
  export class SessionService {
@@ -9,17 +9,23 @@ export class SessionService {
9
9
  this.drizzle = drizzle;
10
10
  this.events = events;
11
11
  }
12
- async listSessions(userId, page, limit) {
12
+ async listSessions({ userId, page, limit, sortBy, sortOrder, }) {
13
13
  const where = eq(session.userId, userId);
14
14
  const db = this.drizzle.db;
15
- // Active sessions first (expiresAt > now), newest-first within each group.
15
+ // Active sessions first (expiresAt > now), then user-chosen sort within each group.
16
16
  const activeFirst = sql `CASE WHEN ${session.expiresAt} > NOW() THEN 0 ELSE 1 END`;
17
+ const dir = (sortOrder ?? 'desc') === 'asc' ? asc : desc;
18
+ const col = sortBy === 'expiresAt'
19
+ ? session.expiresAt
20
+ : sortBy === 'updatedAt'
21
+ ? session.updatedAt
22
+ : session.createdAt;
17
23
  const [rows, [{ n }]] = await Promise.all([
18
24
  db
19
25
  .select()
20
26
  .from(session)
21
27
  .where(where)
22
- .orderBy(activeFirst, desc(session.createdAt))
28
+ .orderBy(...(sortBy ? [dir(col)] : [activeFirst, dir(col)]))
23
29
  .limit(limit)
24
30
  .offset(pageToOffset(page, limit)),
25
31
  db.select({ n: count() }).from(session).where(where),
@@ -37,7 +43,7 @@ export class SessionService {
37
43
  limit,
38
44
  };
39
45
  }
40
- async revokeSession(userId, id, actorId) {
46
+ async revokeSession(userId, id, actorId, meta) {
41
47
  const updated = await this.drizzle.db
42
48
  .update(session)
43
49
  .set({ expiresAt: sql `now()` })
@@ -47,18 +53,25 @@ export class SessionService {
47
53
  throw new SessionNotFoundError(id);
48
54
  }
49
55
  this.events.emit('identity.session.revoked', {
50
- userId: userId,
56
+ userId,
51
57
  sessionId: id,
52
58
  actorId,
59
+ ip: meta?.ip ?? null,
60
+ userAgent: meta?.userAgent ?? null,
53
61
  });
54
62
  return { success: true };
55
63
  }
56
- async revokeAllSessions(userId, actorId) {
64
+ async revokeAllSessions(userId, actorId, meta) {
57
65
  await this.drizzle.db
58
66
  .update(session)
59
67
  .set({ expiresAt: sql `now()` })
60
68
  .where(and(eq(session.userId, userId), gt(session.expiresAt, sql `now()`)));
61
- this.events.emit('identity.sessions.revoked_all', { userId: userId, actorId });
69
+ this.events.emit('identity.sessions.revoked_all', {
70
+ userId,
71
+ actorId,
72
+ ip: meta?.ip ?? null,
73
+ userAgent: meta?.userAgent ?? null,
74
+ });
62
75
  return { success: true };
63
76
  }
64
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.service.js","sourceRoot":"","sources":["../../../../src/pam/identity/service/session.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.service.js","sourceRoot":"","sources":["../../../../src/pam/identity/service/session.service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { describe, it, expect, vi } from 'vitest';
2
- import { mock } from '../../../testing/mock.js';
2
+ import { mock, adminCaller, testContext } from '../../../testing/mock.js';
3
3
  import { call, ORPCError } from '@orpc/server';
4
4
  import { createPlayerRouter } from '../router/index.js';
5
- const CTX = { request: { headers: {} } };
5
+ const CTX = testContext();
6
6
  const PLAYER_ID = '63d3c264-3bf4-4d08-9b92-ea3eaf40a440';
7
7
  function fakeGuard(allowed) {
8
8
  return mock({
@@ -10,7 +10,7 @@ function fakeGuard(allowed) {
10
10
  if (resource && action && !allowed.includes(`${resource}:${action}`)) {
11
11
  throw new ORPCError('FORBIDDEN', { message: `Missing permission: ${resource}:${action}` });
12
12
  }
13
- return { userId: 'admin-1', role: 'admin' };
13
+ return adminCaller();
14
14
  }),
15
15
  });
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"player.router.test.js","sourceRoot":"","sources":["../../../../src/pam/player-management/__tests__/player.router.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"player.router.test.js","sourceRoot":"","sources":["../../../../src/pam/player-management/__tests__/player.router.test.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,20 @@ export declare const PlayerSummarySchema: z.ZodObject<{
56
56
  }, z.core.$strip>;
57
57
  export declare const playerContract: {
58
58
  list: import("@orpc/contract").ContractProcedure<z.ZodObject<{
59
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
60
+ status: "status";
61
+ createdAt: "createdAt";
62
+ kycStatus: "kycStatus";
63
+ totalWagered: "totalWagered";
64
+ totalDeposits: "totalDeposits";
65
+ displayName: "displayName";
66
+ level: "level";
67
+ lastSeenAt: "lastSeenAt";
68
+ }>>>;
69
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
70
+ asc: "asc";
71
+ desc: "desc";
72
+ }>>>;
59
73
  page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
60
74
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
61
75
  search: z.ZodOptional<z.ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-management/contract/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAIhB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AAE7D,yFAAyF;AACzF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-management/contract/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,eAAe,EAIhB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC;AAE7D,yFAAyF;AACzF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CzB,CAAC"}
@@ -2,6 +2,20 @@ import { AdminGuard, type OssContext } from '@openora/core/server';
2
2
  import { PlayerService } from '../service/player.service.js';
3
3
  export declare function createPlayerRouter(player: PlayerService, adminGuard: AdminGuard): {
4
4
  list: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
5
+ sortBy: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
6
+ status: "status";
7
+ createdAt: "createdAt";
8
+ kycStatus: "kycStatus";
9
+ totalWagered: "totalWagered";
10
+ totalDeposits: "totalDeposits";
11
+ displayName: "displayName";
12
+ level: "level";
13
+ lastSeenAt: "lastSeenAt";
14
+ }>>>;
15
+ sortOrder: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
16
+ asc: "asc";
17
+ desc: "desc";
18
+ }>>>;
5
19
  page: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
6
20
  limit: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
7
21
  search: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-management/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAuB,MAAM,8BAA8B,CAAC;AAElF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwD/E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-management/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAuB,MAAM,8BAA8B,CAAC;AAElF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwD/E"}
@@ -1,19 +1,17 @@
1
1
  import { DrizzleService } from '@openora/core/server';
2
- import type { KycStatusWriter, PlayerStatus, KycStatus, Player, User, TagKey } from '@openora/core/contracts';
2
+ import type { KycStatusWriter, PlayerStatus, KycStatus, Player, User, TagKey, PlayerSortBy, PaginationOptions } from '@openora/core/contracts';
3
3
  export declare const PlayerNotFoundError: new (id: string) => Error;
4
4
  export declare const DuplicateEmailError: new () => Error;
5
5
  export declare class PlayerService {
6
6
  private readonly drizzle;
7
7
  private readonly kycStatusWriter;
8
8
  constructor(drizzle: DrizzleService, kycStatusWriter: KycStatusWriter);
9
- list({ page, limit, search, status, kycStatus, tags, }: {
10
- page: number;
11
- limit: number;
9
+ list({ page, limit, search, status, kycStatus, tags, sortBy, sortOrder, }: PaginationOptions<{
12
10
  search?: string;
13
11
  status?: PlayerStatus;
14
12
  kycStatus?: KycStatus;
15
13
  tags?: TagKey[];
16
- }): Promise<{
14
+ }, PlayerSortBy>): Promise<{
17
15
  items: {
18
16
  tags: TagKey[];
19
17
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"player.service.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-management/service/player.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,IAAI,EACJ,MAAM,EACP,MAAM,yBAAyB,CAAC;AAOjC,eAAO,MAAM,mBAAmB,2BAA8B,CAAC;AAC/D,eAAO,MAAM,mBAAmB,iBAAiE,CAAC;AAMlG,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,eAAe;IAG7C,IAAI,CAAC,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,IAAI,GACL,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB;;kBA2DmB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;YAKd,gBAAgB;IAuBxB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;cAHuC,MAAM,EAAE;;;;;;;;;;;;;;;;IAOzE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;IAQ9B,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;cAf+B,MAAM,EAAE;;;;;;;;;;;;;;;;IAmBzE,MAAM,CACV,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EACtB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,EACvF,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;cAtBkD,MAAM,EAAE;;;;;;;;;;;;;;;;IAiFzE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;;;IAS7B,qBAAqB,CAAC,IAAI,SAAK;;;;IAmB/B,OAAO;;;;;;CA2Bd"}
1
+ {"version":3,"file":"player.service.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-management/service/player.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAOjC,eAAO,MAAM,mBAAmB,2BAA8B,CAAC;AAC/D,eAAO,MAAM,mBAAmB,iBAAiE,CAAC;AAMlG,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;gBADf,OAAO,EAAE,cAAc,EACvB,eAAe,EAAE,eAAe;IAG7C,IAAI,CAAC,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,GACV,EAAE,iBAAiB,CAClB;QACE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,EACD,YAAY,CACb;;kBAyEmB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;YAKd,gBAAgB;IAuBxB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;cAHuC,MAAM,EAAE;;;;;;;;;;;;;;;;IAOzE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;IAQ9B,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;cAf+B,MAAM,EAAE;;;;;;;;;;;;;;;;IAmBzE,MAAM,CACV,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EACtB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,EACvF,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;cAtBkD,MAAM,EAAE;;;;;;;;;;;;;;;;IAiFzE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC;;;IAS7B,qBAAqB,CAAC,IAAI,SAAK;;;;IAmB/B,OAAO;;;;;;CA2Bd"}
@@ -1,5 +1,5 @@
1
1
  import { makeNotFoundError, makeConflictError, findOneOrThrow, pageToOffset, } from '@openora/core/server';
2
- import { eq, ilike, count, or, and, gte, desc, sql, ne, inArray, isNull } from 'drizzle-orm';
2
+ import { eq, ilike, count, or, and, gte, asc, desc, sql, ne, inArray, isNull } from 'drizzle-orm';
3
3
  import { player } from '@openora/core/pam/schema/profile';
4
4
  import { user } from '@openora/core/pam/schema/identity';
5
5
  import { playerTag, tag } from '@openora/core/pam/schema/tag';
@@ -16,7 +16,7 @@ export class PlayerService {
16
16
  this.drizzle = drizzle;
17
17
  this.kycStatusWriter = kycStatusWriter;
18
18
  }
19
- async list({ page, limit, search, status, kycStatus, tags, }) {
19
+ async list({ page, limit, search, status, kycStatus, tags, sortBy, sortOrder, }) {
20
20
  const db = this.drizzle.db;
21
21
  const conditions = [];
22
22
  if (status) {
@@ -50,7 +50,16 @@ export class PlayerService {
50
50
  .leftJoin(tag, eq(tag.id, playerTag.tagId))
51
51
  .groupBy(player.id, user.email)
52
52
  .where(whereClause)
53
- .orderBy(desc(player.createdAt))
53
+ .orderBy(((sortOrder ?? 'desc') === 'asc' ? asc : desc)({
54
+ createdAt: player.createdAt,
55
+ displayName: player.displayName,
56
+ status: player.status,
57
+ kycStatus: player.kycStatus,
58
+ totalWagered: player.totalWagered,
59
+ totalDeposits: player.totalDeposits,
60
+ lastSeenAt: player.lastSeenAt,
61
+ level: player.level,
62
+ }[sortBy ?? 'createdAt']), desc(player.id))
54
63
  .limit(limit)
55
64
  .offset(pageToOffset(page, limit)),
56
65
  db
@@ -1 +1 @@
1
- {"version":3,"file":"player.service.js","sourceRoot":"","sources":["../../../../src/pam/player-management/service/player.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"player.service.js","sourceRoot":"","sources":["../../../../src/pam/player-management/service/player.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import z from 'zod';
2
+ export declare const PLAYER_NOTE_SORT_BY_VALUES: readonly ["createdAt", "updatedAt"];
3
+ export declare const PlayerNoteSortBySchema: z.ZodDefault<z.ZodEnum<{
4
+ createdAt: "createdAt";
5
+ updatedAt: "updatedAt";
6
+ }>>;
7
+ export type PlayerNoteSortBy = z.infer<typeof PlayerNoteSortBySchema>;
2
8
  export declare const PlayerNoteSchema: z.ZodObject<{
3
9
  id: z.ZodUUID;
4
10
  playerId: z.ZodUUID;
@@ -18,6 +24,14 @@ export declare const playerNoteContract: {
18
24
  page: z.ZodDefault<z.z.ZodCoercedNumber<unknown>>;
19
25
  limit: z.ZodDefault<z.z.ZodCoercedNumber<unknown>>;
20
26
  playerId: z.ZodUUID;
27
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
28
+ createdAt: "createdAt";
29
+ updatedAt: "updatedAt";
30
+ }>>>;
31
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
32
+ asc: "asc";
33
+ desc: "desc";
34
+ }>>>;
21
35
  }, z.z.core.$strip>, z.ZodObject<{
22
36
  items: z.ZodArray<z.ZodObject<{
23
37
  id: z.ZodUUID;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-note/contract/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,gBAAgB;;;;;;;mBAO3B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;mBAGtC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/player-note/contract/index.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,eAAO,MAAM,0BAA0B,qCAAsC,CAAC;AAC9E,eAAO,MAAM,sBAAsB;;;GAA0D,CAAC;AAC9F,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,gBAAgB;;;;;;;mBAO3B,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;mBAGtC,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB9B,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { oc } from '@orpc/contract';
2
2
  import { UuidSchema, TimestampSchema } from '@openora/core/contracts';
3
- import { PageQuerySchema, paginated } from '@openora/core/contracts/kit';
3
+ import { PageQuerySchema, SortOrderSchema, paginated } from '@openora/core/contracts/kit';
4
4
  import z from 'zod';
5
+ export const PLAYER_NOTE_SORT_BY_VALUES = ['createdAt', 'updatedAt'];
6
+ export const PlayerNoteSortBySchema = z.enum(PLAYER_NOTE_SORT_BY_VALUES).default('createdAt');
5
7
  export const PlayerNoteSchema = z.object({
6
8
  id: UuidSchema,
7
9
  playerId: UuidSchema,
@@ -17,7 +19,11 @@ export const CreatePlayerNoteInputSchema = z.object({
17
19
  export const playerNoteContract = {
18
20
  list: oc
19
21
  .route({ method: 'GET', path: '/player/{playerId}/note' })
20
- .input(PageQuerySchema.extend({ playerId: UuidSchema }))
22
+ .input(PageQuerySchema.extend({
23
+ playerId: UuidSchema,
24
+ sortBy: PlayerNoteSortBySchema.optional(),
25
+ sortOrder: SortOrderSchema.default('desc').optional(),
26
+ }))
21
27
  .output(paginated(PlayerNoteSchema)),
22
28
  create: oc
23
29
  .route({ method: 'POST', path: '/player/{playerId}/note' })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pam/player-note/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,EAAE;SACL,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SACzD,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;SACvD,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEtC,MAAM,EAAE,EAAE;SACP,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SAC1D,KAAK,CAAC,2BAA2B,CAAC;SAClC,MAAM,CAAC,gBAAgB,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pam/player-note/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAC;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAG9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,UAAU;IACd,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;CACrC,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,EAAE;SACL,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SACzD,KAAK,CACJ,eAAe,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;QACzC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;KACtD,CAAC,CACH;SACA,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEtC,MAAM,EAAE,EAAE;SACP,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SAC1D,KAAK,CAAC,2BAA2B,CAAC;SAClC,MAAM,CAAC,gBAAgB,CAAC;CAC5B,CAAC"}