@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 { 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 { createBackofficeRouter } from '../router/index.js';
5
- const CTX = { request: { headers: {} } };
5
+ const CTX = testContext();
6
6
  const USER_ID = '63d3c264-3bf4-4d08-9b92-ea3eaf40a440';
7
7
  const USER = {
8
8
  id: USER_ID,
@@ -19,7 +19,7 @@ function fakeGuard(opts) {
19
19
  if (resource === 'admin' && !opts.isSuper) {
20
20
  throw new ORPCError('FORBIDDEN', { message: 'Missing permission: admin:update' });
21
21
  }
22
- return { userId: 'caller-1', role: opts.isSuper ? 'admin' : 'support' };
22
+ return adminCaller({ userId: 'caller-1', role: opts.isSuper ? 'admin' : 'support' });
23
23
  }),
24
24
  });
25
25
  }
@@ -38,7 +38,7 @@ function fakeTransactionDenyingGuard() {
38
38
  if (resource === 'transaction') {
39
39
  throw new ORPCError('FORBIDDEN', { message: 'Missing permission: transaction:view' });
40
40
  }
41
- return { userId: 'caller-1', role: 'support' };
41
+ return adminCaller({ userId: 'caller-1', role: 'support' });
42
42
  }),
43
43
  });
44
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backoffice.router.test.js","sourceRoot":"","sources":["../../../src/admin-console/__tests__/backoffice.router.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;AACzC,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAEvD,MAAM,IAAI,GAAG;IACX,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,0BAA0B;IACrC,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,8FAA8F;AAC9F,SAAS,SAAS,CAAC,IAA0B;IAC3C,OAAO,IAAI,CAAa;QACtB,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAa,EAAE,QAAiB,EAAE,EAAE;YACvD,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1E,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,IAAI,CAAoB;QAC7B,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACxC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACjE,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACxF,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;KAChD,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,SAAS,2BAA2B;IAClC,OAAO,IAAI,CAAa;QACtB,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAa,EAAE,QAAiB,EAAE,EAAE;YACvD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;gBAC/B,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACjD,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACzE,MAAM,MAAM,CACV,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAC9E,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CACvB,MAAM,CAAC,UAAU,EACjB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAClC,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC;YACtB,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,oBAAoB;YAC5B,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,OAAO;SACpB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QACtF,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,oBAAoB,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,MAAM,GAAG,sBAAsB,CACnC,WAAW,EAAE,EACb,2BAA2B,EAAE,EAC7B,SAAS,EAAE,CACZ,CAAC;QACF,MAAM,MAAM,CACV,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CACxE,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,MAAM,GAAG,sBAAsB,CACnC,WAAW,EAAE,EACb,2BAA2B,EAAE,EAC7B,SAAS,EAAE,CACZ,CAAC;QACF,MAAM,MAAM,CACV,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAC/D,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"backoffice.router.test.js","sourceRoot":"","sources":["../../../src/admin-console/__tests__/backoffice.router.test.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,25 @@ export declare const AdminUserSchema: z.ZodObject<{
23
23
  failedLoginAttempts: z.ZodOptional<z.ZodNumber>;
24
24
  lockoutUntil: z.ZodOptional<z.ZodNullable<z.ZodISODateTime>>;
25
25
  }, z.core.$strip>;
26
+ export declare const AdminUserSortBySchema: z.ZodDefault<z.ZodEnum<{
27
+ email: "email";
28
+ createdAt: "createdAt";
29
+ name: "name";
30
+ role: "role";
31
+ isActive: "isActive";
32
+ lastLockoutAt: "lastLockoutAt";
33
+ }>>;
34
+ export type AdminUserSortBy = z.infer<typeof AdminUserSortBySchema>;
35
+ export declare const AdminTransactionSortBySchema: z.ZodDefault<z.ZodEnum<{
36
+ status: "status";
37
+ type: "type";
38
+ createdAt: "createdAt";
39
+ currency: "currency";
40
+ amount: "amount";
41
+ rail: "rail";
42
+ reviewedAt: "reviewedAt";
43
+ }>>;
44
+ export type AdminTransactionSortBy = z.infer<typeof AdminTransactionSortBySchema>;
26
45
  export declare const TransactionFilterSchema: z.ZodObject<{
27
46
  page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
28
47
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -55,6 +74,19 @@ export declare const TransactionFilterSchema: z.ZodObject<{
55
74
  amountMin: z.ZodOptional<z.ZodString>;
56
75
  amountMax: z.ZodOptional<z.ZodString>;
57
76
  player: z.ZodOptional<z.ZodString>;
77
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
78
+ status: "status";
79
+ type: "type";
80
+ createdAt: "createdAt";
81
+ currency: "currency";
82
+ amount: "amount";
83
+ rail: "rail";
84
+ reviewedAt: "reviewedAt";
85
+ }>>>;
86
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
87
+ asc: "asc";
88
+ desc: "desc";
89
+ }>>>;
58
90
  }, z.core.$strip>;
59
91
  export declare const AdminTransactionSchema: z.ZodObject<{
60
92
  id: z.ZodUUID;
@@ -142,6 +174,18 @@ export declare const backofficeContract: {
142
174
  page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
143
175
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
144
176
  search: z.ZodOptional<z.ZodString>;
177
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
178
+ email: "email";
179
+ createdAt: "createdAt";
180
+ name: "name";
181
+ role: "role";
182
+ isActive: "isActive";
183
+ lastLockoutAt: "lastLockoutAt";
184
+ }>>>;
185
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
186
+ asc: "asc";
187
+ desc: "desc";
188
+ }>>>;
145
189
  }, z.core.$strip>, z.ZodObject<{
146
190
  items: z.ZodArray<z.ZodObject<{
147
191
  id: z.ZodUUID;
@@ -227,6 +271,19 @@ export declare const backofficeContract: {
227
271
  amountMin: z.ZodOptional<z.ZodString>;
228
272
  amountMax: z.ZodOptional<z.ZodString>;
229
273
  player: z.ZodOptional<z.ZodString>;
274
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
275
+ status: "status";
276
+ type: "type";
277
+ createdAt: "createdAt";
278
+ currency: "currency";
279
+ amount: "amount";
280
+ rail: "rail";
281
+ reviewedAt: "reviewedAt";
282
+ }>>>;
283
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
284
+ asc: "asc";
285
+ desc: "desc";
286
+ }>>>;
230
287
  }, z.core.$strip>, z.ZodObject<{
231
288
  items: z.ZodArray<z.ZodObject<{
232
289
  id: z.ZodUUID;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin-console/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAgBzB,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,kBAAkB,aAKyC,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,eAAO,MAAM,eAAe;;;;;;;;;;;;iBAS1B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWlC,CAAC;AAIH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUjC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQvC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin-console/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAkBzB,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAC3C,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAC/C,eAAO,MAAM,kBAAkB,aAKyC,CAAC;AAEzE,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAC;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,eAAO,MAAM,eAAe;;;;;;;;;;;;iBAS1B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;GAAyD,CAAC;AAC5F,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,4BAA4B;;;;;;;;GAAuD,CAAC;AACjG,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAalC,CAAC;AAIH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUjC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQvC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuC9B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { oc } from '@orpc/contract';
2
2
  import * as z from 'zod';
3
- import { CurrencyCodeSchema, IdInputSchema, KycStatusSchema, MoneyAmountSchema, TimestampSchema, UserIdInputSchema, UserRoleSchema, UuidSchema, WalletRailSchema, WalletTransactionStatusSchema, WalletTransactionTypeSchema, } from '@openora/core/contracts';
4
- import { PageQuerySchema, paginated } from '@openora/core/contracts/kit';
3
+ import { ADMIN_TX_SORT_BY_VALUES, ADMIN_USER_SORT_BY_VALUES, CurrencyCodeSchema, IdInputSchema, KycStatusSchema, MoneyAmountSchema, TimestampSchema, UserIdInputSchema, UserRoleSchema, UuidSchema, WalletRailSchema, WalletTransactionStatusSchema, WalletTransactionTypeSchema, } from '@openora/core/contracts';
4
+ import { PageQuerySchema, SortOrderSchema, paginated } from '@openora/core/contracts/kit';
5
5
  export const PlayerEmailSchema = z.email();
6
6
  export const PlayerUsernameSchema = z.string();
7
7
  export const PlayerSearchSchema = z
@@ -28,6 +28,8 @@ export const AdminUserSchema = z.object({
28
28
  failedLoginAttempts: z.number().int().optional(),
29
29
  lockoutUntil: TimestampSchema.nullable().optional(),
30
30
  });
31
+ export const AdminUserSortBySchema = z.enum(ADMIN_USER_SORT_BY_VALUES).default('createdAt');
32
+ export const AdminTransactionSortBySchema = z.enum(ADMIN_TX_SORT_BY_VALUES).default('createdAt');
31
33
  export const TransactionFilterSchema = PageQuerySchema.extend({
32
34
  userId: UuidSchema.optional(),
33
35
  type: WalletTransactionTypeSchema.optional(),
@@ -39,6 +41,8 @@ export const TransactionFilterSchema = PageQuerySchema.extend({
39
41
  amountMin: MoneyAmountSchema.optional(),
40
42
  amountMax: MoneyAmountSchema.optional(),
41
43
  player: PlayerSearchSchema.optional(),
44
+ sortBy: AdminTransactionSortBySchema.optional(),
45
+ sortOrder: SortOrderSchema.default('desc').optional(),
42
46
  });
43
47
  // The list row carries only the player email as the identifying label; the fuller
44
48
  // player info (username, KYC) lives on the detail view fetched on "view".
@@ -66,7 +70,11 @@ export const backofficeContract = {
66
70
  getStats: oc.route({ method: 'GET', path: '/backoffice/stats' }).output(PlatformStatsSchema),
67
71
  listUsers: oc
68
72
  .route({ method: 'GET', path: '/backoffice/users' })
69
- .input(PageQuerySchema.extend({ search: z.string().optional() }))
73
+ .input(PageQuerySchema.extend({
74
+ search: z.string().optional(),
75
+ sortBy: AdminUserSortBySchema.optional(),
76
+ sortOrder: SortOrderSchema.default('desc').optional(),
77
+ }))
70
78
  .output(paginated(AdminUserSchema)),
71
79
  getUser: oc
72
80
  .route({ method: 'GET', path: '/backoffice/users/{userId}' })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin-console/contract/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin-console/contract/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,18 @@ export declare function createBackofficeRouter(backofficeService: BackofficeServ
13
13
  page: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
14
14
  limit: import("zod").ZodDefault<import("zod").ZodCoercedNumber<unknown>>;
15
15
  search: import("zod").ZodOptional<import("zod").ZodString>;
16
+ sortBy: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
17
+ email: "email";
18
+ createdAt: "createdAt";
19
+ name: "name";
20
+ role: "role";
21
+ isActive: "isActive";
22
+ lastLockoutAt: "lastLockoutAt";
23
+ }>>>;
24
+ sortOrder: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
25
+ asc: "asc";
26
+ desc: "desc";
27
+ }>>>;
16
28
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
17
29
  items: import("zod").ZodArray<import("zod").ZodObject<{
18
30
  id: import("zod").ZodUUID;
@@ -98,6 +110,19 @@ export declare function createBackofficeRouter(backofficeService: BackofficeServ
98
110
  amountMin: import("zod").ZodOptional<import("zod").ZodString>;
99
111
  amountMax: import("zod").ZodOptional<import("zod").ZodString>;
100
112
  player: import("zod").ZodOptional<import("zod").ZodString>;
113
+ sortBy: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
114
+ status: "status";
115
+ type: "type";
116
+ createdAt: "createdAt";
117
+ currency: "currency";
118
+ amount: "amount";
119
+ rail: "rail";
120
+ reviewedAt: "reviewedAt";
121
+ }>>>;
122
+ sortOrder: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
123
+ asc: "asc";
124
+ desc: "desc";
125
+ }>>>;
101
126
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
102
127
  items: import("zod").ZodArray<import("zod").ZodObject<{
103
128
  id: import("zod").ZodUUID;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin-console/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EACL,iBAAiB,EAGlB,MAAM,kCAAkC,CAAC;AAE1C,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgEtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/admin-console/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAa,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EACL,iBAAiB,EAGlB,MAAM,kCAAkC,CAAC;AAE1C,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEtB"}
@@ -11,7 +11,13 @@ export function createBackofficeRouter(backofficeService, adminGuard, audit) {
11
11
  }),
12
12
  listUsers: os.listUsers.handler(async ({ input, context }) => {
13
13
  await adminGuard.assert(context, 'player', 'view');
14
- return backofficeService.listUsers(input.page, input.limit, input.search);
14
+ return backofficeService.listUsers({
15
+ page: input.page,
16
+ limit: input.limit,
17
+ search: input.search,
18
+ sortBy: input.sortBy,
19
+ sortOrder: input.sortOrder,
20
+ });
15
21
  }),
16
22
  getUser: os.getUser.handler(async ({ input, context }) => {
17
23
  await adminGuard.assert(context, 'player', 'view');
@@ -26,7 +32,7 @@ export function createBackofficeRouter(backofficeService, adminGuard, audit) {
26
32
  await adminGuard.assert(context, 'admin', 'update');
27
33
  }
28
34
  const before = await mapErrors({ NOT_FOUND: UserNotFoundError }, () => backofficeService.getUser(input.userId));
29
- const updated = await mapErrors({ NOT_FOUND: UserNotFoundError }, () => backofficeService.updateUser(input.userId, { isActive: input.isActive, role: input.role }, caller.userId));
35
+ const updated = await mapErrors({ NOT_FOUND: UserNotFoundError }, () => backofficeService.updateUser(input.userId, { isActive: input.isActive, role: input.role }, caller.userId, { ip: caller.ip, userAgent: caller.userAgent }));
30
36
  await audit.record({
31
37
  actorId: caller.userId,
32
38
  actorType: 'admin',
@@ -35,6 +41,8 @@ export function createBackofficeRouter(backofficeService, adminGuard, audit) {
35
41
  resourceId: input.userId,
36
42
  before: { isActive: before.isActive, role: before.role },
37
43
  after: { isActive: updated.isActive, role: updated.role },
44
+ ip: caller.ip,
45
+ userAgent: caller.userAgent,
38
46
  });
39
47
  return updated;
40
48
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin-console/router/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/admin-console/router/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AdminUserDirectory, AdminUserRow, AdminWalletReporting, User, UserRole } from '@openora/core/contracts';
1
+ import type { AdminUserDirectory, AdminUserListOptions, AdminUserRow, AdminWalletReporting, User, UserRole, ClientMeta } from '@openora/core/contracts';
2
2
  import type { TransactionFilter } from '../contract/index.js';
3
3
  export declare const UserNotFoundError: new (id: string) => Error;
4
4
  export declare const TransactionNotFoundError: new (id: string) => Error;
@@ -13,7 +13,7 @@ export declare class BackofficeService {
13
13
  totalWithdrawals: string;
14
14
  totalBonusClaimed: string;
15
15
  }>;
16
- listUsers(page: number, limit: number, search?: string): Promise<{
16
+ listUsers({ page, limit, search, sortBy, sortOrder }: AdminUserListOptions): Promise<{
17
17
  items: import("@openora/core/server").SerializedRow<AdminUserRow, "createdAt" | "lockoutUntil">[];
18
18
  total: number;
19
19
  page: number;
@@ -23,7 +23,7 @@ export declare class BackofficeService {
23
23
  updateUser(userId: User['id'], data: {
24
24
  isActive?: boolean;
25
25
  role?: UserRole;
26
- }, actorId: User['id']): Promise<import("@openora/core/server").SerializedRow<AdminUserRow, "createdAt" | "lockoutUntil">>;
26
+ }, actorId: User['id'], meta?: ClientMeta): Promise<import("@openora/core/server").SerializedRow<AdminUserRow, "createdAt" | "lockoutUntil">>;
27
27
  listTransactions(filters: TransactionFilter): Promise<{
28
28
  items: {
29
29
  playerEmail: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"backoffice.service.d.ts","sourceRoot":"","sources":["../../../src/admin-console/service/backoffice.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,IAAI,EACJ,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAC3D,eAAO,MAAM,wBAAwB,2BAAmC,CAAC;AAsBzE,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,oBAAoB;IAG5C,QAAQ;;;;;;;IAWR,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;IAKtD,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;IAQ1B,UAAU,CACd,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE,EAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC;IASf,gBAAgB,CAAC,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;;;IAoD3C,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;YASjB,eAAe;CAQ9B"}
1
+ {"version":3,"file":"backoffice.service.d.ts","sourceRoot":"","sources":["../../../src/admin-console/service/backoffice.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,IAAI,EACJ,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAC3D,eAAO,MAAM,wBAAwB,2BAAmC,CAAC;AAsBzE,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,oBAAoB;IAG5C,QAAQ;;;;;;;IAWR,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,oBAAoB;;;;;;IAK1E,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;IAQ1B,UAAU,CACd,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE,EAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,EAAE,UAAU;IASb,gBAAgB,CAAC,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;;;IAwD3C,cAAc,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;YASjB,eAAe;CAQ9B"}
@@ -35,8 +35,8 @@ export class BackofficeService {
35
35
  totalBonusClaimed: '0',
36
36
  };
37
37
  }
38
- async listUsers(page, limit, search) {
39
- const { rows, total } = await this.users.list({ page, limit, search });
38
+ async listUsers({ page, limit, search, sortBy, sortOrder }) {
39
+ const { rows, total } = await this.users.list({ page, limit, search, sortBy, sortOrder });
40
40
  return { items: rows.map(toAdminUser), total, page, limit };
41
41
  }
42
42
  async getUser(userId) {
@@ -46,15 +46,15 @@ export class BackofficeService {
46
46
  }
47
47
  return toAdminUser(row);
48
48
  }
49
- async updateUser(userId, data, actorId) {
50
- const row = await this.users.update(userId, data, actorId);
49
+ async updateUser(userId, data, actorId, meta) {
50
+ const row = await this.users.update(userId, data, actorId, meta);
51
51
  if (!row) {
52
52
  throw new UserNotFoundError(userId);
53
53
  }
54
54
  return toAdminUser(row);
55
55
  }
56
56
  async listTransactions(filters) {
57
- const { page, limit, userId, type, currency, rail, status, dateFrom, dateTo, amountMin, amountMax, player, } = filters;
57
+ const { page, limit, userId, type, currency, rail, status, dateFrom, dateTo, amountMin, amountMax, player, sortBy, sortOrder, } = filters;
58
58
  // `userId` = exact wallet.userId match; `player` = free-text resolved to ids.
59
59
  // When both are set the result is their intersection.
60
60
  let userIds;
@@ -80,6 +80,8 @@ export class BackofficeService {
80
80
  dateTo: dateTo ? new Date(dateTo) : undefined,
81
81
  amountMin,
82
82
  amountMax,
83
+ sortBy,
84
+ sortOrder,
83
85
  });
84
86
  const players = await this.lookupPlayerMap(rows.map((r) => r.userId));
85
87
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"backoffice.service.js","sourceRoot":"","sources":["../../../src/admin-console/service/backoffice.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backoffice.service.js","sourceRoot":"","sources":["../../../src/admin-console/service/backoffice.service.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,16 @@ export declare const AuditLogEntrySchema: z.ZodObject<{
29
29
  createdAt: z.ZodISODateTime;
30
30
  }, z.core.$strip>;
31
31
  export type AuditLogEntry = z.infer<typeof AuditLogEntrySchema>;
32
+ export declare const AUDIT_SORT_BY_VALUES: readonly ["createdAt", "action", "actorId", "actorType", "resourceType", "resourceId"];
33
+ export declare const AuditSortBySchema: z.ZodDefault<z.ZodEnum<{
34
+ createdAt: "createdAt";
35
+ actorId: "actorId";
36
+ action: "action";
37
+ actorType: "actorType";
38
+ resourceType: "resourceType";
39
+ resourceId: "resourceId";
40
+ }>>;
41
+ export type AuditSortBy = z.infer<typeof AuditSortBySchema>;
32
42
  export declare const AuditListFiltersSchema: z.ZodObject<{
33
43
  page: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
34
44
  limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
@@ -45,9 +55,29 @@ export declare const AuditListFiltersSchema: z.ZodObject<{
45
55
  q: z.ZodOptional<z.ZodString>;
46
56
  fromDate: z.ZodOptional<z.ZodISODate>;
47
57
  toDate: z.ZodOptional<z.ZodISODate>;
58
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
59
+ createdAt: "createdAt";
60
+ actorId: "actorId";
61
+ action: "action";
62
+ actorType: "actorType";
63
+ resourceType: "resourceType";
64
+ resourceId: "resourceId";
65
+ }>>>;
66
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
67
+ asc: "asc";
68
+ desc: "desc";
69
+ }>>>;
48
70
  }, z.core.$strip>;
49
71
  export type AuditListFilters = z.infer<typeof AuditListFiltersSchema>;
50
72
  export declare const AuditExportFiltersSchema: z.ZodObject<{
73
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
74
+ createdAt: "createdAt";
75
+ actorId: "actorId";
76
+ action: "action";
77
+ actorType: "actorType";
78
+ resourceType: "resourceType";
79
+ resourceId: "resourceId";
80
+ }>>>;
51
81
  actorId: z.ZodOptional<z.ZodString>;
52
82
  action: z.ZodOptional<z.ZodString>;
53
83
  actorType: z.ZodOptional<z.ZodEnum<{
@@ -61,6 +91,10 @@ export declare const AuditExportFiltersSchema: z.ZodObject<{
61
91
  q: z.ZodOptional<z.ZodString>;
62
92
  fromDate: z.ZodOptional<z.ZodISODate>;
63
93
  toDate: z.ZodOptional<z.ZodISODate>;
94
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
95
+ asc: "asc";
96
+ desc: "desc";
97
+ }>>>;
64
98
  }, z.core.$strip>;
65
99
  export type AuditExportFilters = z.infer<typeof AuditExportFiltersSchema>;
66
100
  export declare const auditContract: {
@@ -80,6 +114,18 @@ export declare const auditContract: {
80
114
  q: z.ZodOptional<z.ZodString>;
81
115
  fromDate: z.ZodOptional<z.ZodISODate>;
82
116
  toDate: z.ZodOptional<z.ZodISODate>;
117
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
118
+ createdAt: "createdAt";
119
+ actorId: "actorId";
120
+ action: "action";
121
+ actorType: "actorType";
122
+ resourceType: "resourceType";
123
+ resourceId: "resourceId";
124
+ }>>>;
125
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
126
+ asc: "asc";
127
+ desc: "desc";
128
+ }>>>;
83
129
  }, z.core.$strip>, z.ZodObject<{
84
130
  items: z.ZodArray<z.ZodObject<{
85
131
  id: z.ZodUUID;
@@ -108,6 +154,14 @@ export declare const auditContract: {
108
154
  limit: z.ZodNumber;
109
155
  }, z.core.$strip>, Record<never, never>, Record<never, never>>;
110
156
  exportCsv: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
157
+ sortBy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
158
+ createdAt: "createdAt";
159
+ actorId: "actorId";
160
+ action: "action";
161
+ actorType: "actorType";
162
+ resourceType: "resourceType";
163
+ resourceId: "resourceId";
164
+ }>>>;
111
165
  actorId: z.ZodOptional<z.ZodString>;
112
166
  action: z.ZodOptional<z.ZodString>;
113
167
  actorType: z.ZodOptional<z.ZodEnum<{
@@ -121,6 +175,10 @@ export declare const auditContract: {
121
175
  q: z.ZodOptional<z.ZodString>;
122
176
  fromDate: z.ZodOptional<z.ZodISODate>;
123
177
  toDate: z.ZodOptional<z.ZodISODate>;
178
+ sortOrder: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
179
+ asc: "asc";
180
+ desc: "desc";
181
+ }>>>;
124
182
  }, z.core.$strip>, z.ZodObject<{
125
183
  csv: z.ZodString;
126
184
  }, z.core.$strip>, Record<never, never>, Record<never, never>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAOzB,eAAO,MAAM,WAAW,wCAAyC,CAAC;AAClE,eAAO,MAAM,oBAAoB;;;;EAAsB,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AASlE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;iBAmB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;iBAYjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAA2D,CAAC;AACjG,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAOzB,eAAO,MAAM,WAAW,wCAAyC,CAAC;AAClE,eAAO,MAAM,oBAAoB;;;;EAAsB,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AASlE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;iBAmB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB,wFAOvB,CAAC;AACX,eAAO,MAAM,iBAAiB;;;;;;;GAAoD,CAAC;AACnF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAItE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUzB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { oc } from '@orpc/contract';
2
2
  import * as z from 'zod';
3
3
  import { TimestampSchema, UuidSchema } from '@openora/core/contracts';
4
- import { PageQuerySchema, paginated } from '@openora/core/contracts/kit';
4
+ import { PageQuerySchema, SortOrderSchema, paginated } from '@openora/core/contracts/kit';
5
5
  // The value tuple is the single source of truth: `z.enum` derives the contract here
6
6
  // and the Drizzle `pgEnum` in audit/schema derives the DB enum from the same tuple,
7
7
  // so the two can never drift.
@@ -33,6 +33,15 @@ export const AuditLogEntrySchema = z.object({
33
33
  hash: z.string(),
34
34
  createdAt: TimestampSchema,
35
35
  });
36
+ export const AUDIT_SORT_BY_VALUES = [
37
+ 'createdAt',
38
+ 'action',
39
+ 'actorId',
40
+ 'actorType',
41
+ 'resourceType',
42
+ 'resourceId',
43
+ ];
44
+ export const AuditSortBySchema = z.enum(AUDIT_SORT_BY_VALUES).default('createdAt');
36
45
  export const AuditListFiltersSchema = PageQuerySchema.extend({
37
46
  actorId: z.string().optional(),
38
47
  actorType: AuditActorTypeSchema.optional(),
@@ -45,8 +54,17 @@ export const AuditListFiltersSchema = PageQuerySchema.extend({
45
54
  q: z.string().trim().min(1).optional(),
46
55
  fromDate: z.iso.date().optional(),
47
56
  toDate: z.iso.date().optional(),
57
+ sortBy: AuditSortBySchema.optional(),
58
+ sortOrder: SortOrderSchema.default('desc').optional(),
59
+ });
60
+ // Export inherits sortBy/sortOrder from the list schema; override default sort order to
61
+ // ascending (chronological) to match prior exportCsv behaviour (asc by seq).
62
+ export const AuditExportFiltersSchema = AuditListFiltersSchema.omit({
63
+ page: true,
64
+ limit: true,
65
+ }).extend({
66
+ sortOrder: SortOrderSchema.default('asc').optional(),
48
67
  });
49
- export const AuditExportFiltersSchema = AuditListFiltersSchema.omit({ page: true, limit: true });
50
68
  export const auditContract = {
51
69
  list: oc
52
70
  .route({ method: 'GET', path: '/audit/logs' })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/audit/contract/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/audit/contract/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,18 @@ export declare function createAuditRouter(svc: AuditService, adminGuard: AdminGu
17
17
  q: import("zod").ZodOptional<import("zod").ZodString>;
18
18
  fromDate: import("zod").ZodOptional<import("zod").ZodISODate>;
19
19
  toDate: import("zod").ZodOptional<import("zod").ZodISODate>;
20
+ sortBy: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
21
+ createdAt: "createdAt";
22
+ actorId: "actorId";
23
+ action: "action";
24
+ actorType: "actorType";
25
+ resourceType: "resourceType";
26
+ resourceId: "resourceId";
27
+ }>>>;
28
+ sortOrder: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
29
+ asc: "asc";
30
+ desc: "desc";
31
+ }>>>;
20
32
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
21
33
  items: import("zod").ZodArray<import("zod").ZodObject<{
22
34
  id: import("zod").ZodUUID;
@@ -45,6 +57,14 @@ export declare function createAuditRouter(svc: AuditService, adminGuard: AdminGu
45
57
  limit: import("zod").ZodNumber;
46
58
  }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
47
59
  exportCsv: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
60
+ sortBy: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
61
+ createdAt: "createdAt";
62
+ actorId: "actorId";
63
+ action: "action";
64
+ actorType: "actorType";
65
+ resourceType: "resourceType";
66
+ resourceId: "resourceId";
67
+ }>>>;
48
68
  actorId: import("zod").ZodOptional<import("zod").ZodString>;
49
69
  action: import("zod").ZodOptional<import("zod").ZodString>;
50
70
  actorType: import("zod").ZodOptional<import("zod").ZodEnum<{
@@ -58,6 +78,10 @@ export declare function createAuditRouter(svc: AuditService, adminGuard: AdminGu
58
78
  q: import("zod").ZodOptional<import("zod").ZodString>;
59
79
  fromDate: import("zod").ZodOptional<import("zod").ZodISODate>;
60
80
  toDate: import("zod").ZodOptional<import("zod").ZodISODate>;
81
+ sortOrder: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodEnum<{
82
+ asc: "asc";
83
+ desc: "desc";
84
+ }>>>;
61
85
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
62
86
  csv: import("zod").ZodString;
63
87
  }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8B1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/audit/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB1E"}