@openora/core 0.4.0 → 0.4.1-canary.11

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 (427) hide show
  1. package/LICENSE-COMMERCIAL.md +2 -2
  2. package/README.md +8 -2
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/admin-console/__tests__/backoffice.service.test.js +1 -1
  5. package/dist/admin-console/__tests__/backoffice.service.test.js.map +1 -1
  6. package/dist/admin-console/contract/index.d.ts +14 -14
  7. package/dist/admin-console/contract/index.d.ts.map +1 -1
  8. package/dist/admin-console/contract/index.js +8 -8
  9. package/dist/admin-console/contract/index.js.map +1 -1
  10. package/dist/admin-console/router/index.d.ts +7 -7
  11. package/dist/admin-console/service/backoffice.service.d.ts +22 -49
  12. package/dist/admin-console/service/backoffice.service.d.ts.map +1 -1
  13. package/dist/admin-console/service/backoffice.service.js +16 -31
  14. package/dist/admin-console/service/backoffice.service.js.map +1 -1
  15. package/dist/audit/__tests__/audit.service.test.js +29 -2
  16. package/dist/audit/__tests__/audit.service.test.js.map +1 -1
  17. package/dist/audit/contract/index.d.ts.map +1 -1
  18. package/dist/audit/contract/index.js +2 -0
  19. package/dist/audit/contract/index.js.map +1 -1
  20. package/dist/audit/plugin.d.ts.map +1 -1
  21. package/dist/audit/plugin.js +54 -4
  22. package/dist/audit/plugin.js.map +1 -1
  23. package/dist/audit/service/audit.service.d.ts +1 -0
  24. package/dist/audit/service/audit.service.d.ts.map +1 -1
  25. package/dist/audit/service/audit.service.js +53 -25
  26. package/dist/audit/service/audit.service.js.map +1 -1
  27. package/dist/casino/gaming/contract/index.d.ts.map +1 -1
  28. package/dist/casino/gaming/contract/index.js +3 -3
  29. package/dist/casino/gaming/contract/index.js.map +1 -1
  30. package/dist/casino/gaming/drizzle/migrations/0001_easy_ben_grimm.sql +4 -0
  31. package/dist/casino/gaming/drizzle/migrations/meta/0001_snapshot.json +188 -0
  32. package/dist/casino/gaming/drizzle/migrations/meta/_journal.json +7 -0
  33. package/dist/casino/gaming/schema/index.js +2 -2
  34. package/dist/casino/gaming/schema/index.js.map +1 -1
  35. package/dist/casino/gaming/service/gaming.service.d.ts +11 -11
  36. package/dist/casino/gaming/service/gaming.service.d.ts.map +1 -1
  37. package/dist/casino/gaming/service/gaming.service.js +4 -14
  38. package/dist/casino/gaming/service/gaming.service.js.map +1 -1
  39. package/dist/cms/__tests__/cms.cache.test.js +1 -1
  40. package/dist/cms/__tests__/cms.cache.test.js.map +1 -1
  41. package/dist/cms/__tests__/cms.router.test.d.ts +2 -0
  42. package/dist/cms/__tests__/cms.router.test.d.ts.map +1 -0
  43. package/dist/cms/__tests__/cms.router.test.js +51 -0
  44. package/dist/cms/__tests__/cms.router.test.js.map +1 -0
  45. package/dist/cms/router/index.d.ts.map +1 -1
  46. package/dist/cms/router/index.js +12 -12
  47. package/dist/cms/router/index.js.map +1 -1
  48. package/dist/cms/service/cms.service.d.ts +7 -7
  49. package/dist/cms/service/cms.service.d.ts.map +1 -1
  50. package/dist/cms/service/cms.service.js +39 -23
  51. package/dist/cms/service/cms.service.js.map +1 -1
  52. package/dist/compliance/__tests__/compliance.service.test.js +2 -1
  53. package/dist/compliance/__tests__/compliance.service.test.js.map +1 -1
  54. package/dist/compliance/__tests__/kyc.service.test.js +12 -10
  55. package/dist/compliance/__tests__/kyc.service.test.js.map +1 -1
  56. package/dist/compliance/__tests__/rg-monitoring.service.test.js +17 -6
  57. package/dist/compliance/__tests__/rg-monitoring.service.test.js.map +1 -1
  58. package/dist/compliance/__tests__/rg.contract.test.js +18 -10
  59. package/dist/compliance/__tests__/rg.contract.test.js.map +1 -1
  60. package/dist/compliance/__tests__/rg.router.test.js +5 -4
  61. package/dist/compliance/__tests__/rg.router.test.js.map +1 -1
  62. package/dist/compliance/__tests__/rg.service.test.js +18 -12
  63. package/dist/compliance/__tests__/rg.service.test.js.map +1 -1
  64. package/dist/compliance/contract/index.d.ts +20 -14
  65. package/dist/compliance/contract/index.d.ts.map +1 -1
  66. package/dist/compliance/contract/limits.d.ts +9 -2
  67. package/dist/compliance/contract/limits.d.ts.map +1 -1
  68. package/dist/compliance/contract/limits.js +21 -3
  69. package/dist/compliance/contract/limits.js.map +1 -1
  70. package/dist/compliance/contract/rg.d.ts +28 -23
  71. package/dist/compliance/contract/rg.d.ts.map +1 -1
  72. package/dist/compliance/contract/rg.js +14 -9
  73. package/dist/compliance/contract/rg.js.map +1 -1
  74. package/dist/compliance/drizzle/migrations/0001_funny_vance_astro.sql +5 -0
  75. package/dist/compliance/drizzle/migrations/meta/0001_snapshot.json +660 -0
  76. package/dist/compliance/drizzle/migrations/meta/_journal.json +7 -0
  77. package/dist/compliance/plugin.d.ts.map +1 -1
  78. package/dist/compliance/plugin.js +26 -12
  79. package/dist/compliance/plugin.js.map +1 -1
  80. package/dist/compliance/router/index.d.ts +20 -14
  81. package/dist/compliance/router/index.d.ts.map +1 -1
  82. package/dist/compliance/router/index.js +2 -1
  83. package/dist/compliance/router/index.js.map +1 -1
  84. package/dist/compliance/schema/index.d.ts +31 -14
  85. package/dist/compliance/schema/index.d.ts.map +1 -1
  86. package/dist/compliance/schema/index.js +10 -7
  87. package/dist/compliance/schema/index.js.map +1 -1
  88. package/dist/compliance/service/compliance.service.d.ts +27 -22
  89. package/dist/compliance/service/compliance.service.d.ts.map +1 -1
  90. package/dist/compliance/service/compliance.service.js +9 -22
  91. package/dist/compliance/service/compliance.service.js.map +1 -1
  92. package/dist/compliance/service/kyc.service.d.ts +22 -19
  93. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  94. package/dist/compliance/service/kyc.service.js +19 -24
  95. package/dist/compliance/service/kyc.service.js.map +1 -1
  96. package/dist/compliance/service/re-kyc-trigger.d.ts +4 -4
  97. package/dist/compliance/service/re-kyc-trigger.d.ts.map +1 -1
  98. package/dist/compliance/service/re-kyc-trigger.js +10 -6
  99. package/dist/compliance/service/re-kyc-trigger.js.map +1 -1
  100. package/dist/compliance/service/rg-eval.d.ts.map +1 -1
  101. package/dist/compliance/service/rg-eval.js +4 -2
  102. package/dist/compliance/service/rg-eval.js.map +1 -1
  103. package/dist/compliance/service/rg-monitoring.service.d.ts +6 -5
  104. package/dist/compliance/service/rg-monitoring.service.d.ts.map +1 -1
  105. package/dist/compliance/service/rg-monitoring.service.js +62 -31
  106. package/dist/compliance/service/rg-monitoring.service.js.map +1 -1
  107. package/dist/compliance/service/rg.service.d.ts +28 -6
  108. package/dist/compliance/service/rg.service.d.ts.map +1 -1
  109. package/dist/compliance/service/rg.service.js +60 -34
  110. package/dist/compliance/service/rg.service.js.map +1 -1
  111. package/dist/contracts/adapters/admin-wallet-reporting.d.ts +5 -5
  112. package/dist/contracts/adapters/payment.d.ts +2 -2
  113. package/dist/contracts/adapters/wallet-commands.d.ts +5 -5
  114. package/dist/contracts/adapters/wallet-reader.d.ts +2 -2
  115. package/dist/contracts/adapters/wallet-reader.d.ts.map +1 -1
  116. package/dist/contracts/schemas/common.d.ts +2 -5
  117. package/dist/contracts/schemas/common.d.ts.map +1 -1
  118. package/dist/contracts/schemas/common.js +3 -4
  119. package/dist/contracts/schemas/common.js.map +1 -1
  120. package/dist/contracts/schemas/events.d.ts +35 -9
  121. package/dist/contracts/schemas/events.d.ts.map +1 -1
  122. package/dist/contracts/schemas/events.js +32 -7
  123. package/dist/contracts/schemas/events.js.map +1 -1
  124. package/dist/contracts/schemas/platform-config.d.ts +9 -9
  125. package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
  126. package/dist/contracts/schemas/platform-config.js +6 -5
  127. package/dist/contracts/schemas/platform-config.js.map +1 -1
  128. package/dist/contracts/schemas/player.d.ts +2 -2
  129. package/dist/contracts/schemas/player.js +3 -3
  130. package/dist/contracts/schemas/player.js.map +1 -1
  131. package/dist/contracts/schemas/tag.d.ts +2 -2
  132. package/dist/contracts/schemas/tag.js +3 -3
  133. package/dist/contracts/schemas/tag.js.map +1 -1
  134. package/dist/engagement/chat/moderation/moderate.d.ts.map +1 -1
  135. package/dist/engagement/chat/moderation/moderate.js +2 -1
  136. package/dist/engagement/chat/moderation/moderate.js.map +1 -1
  137. package/dist/engagement/chat/react/use-chat-stream.d.ts +2 -3
  138. package/dist/engagement/chat/react/use-chat-stream.d.ts.map +1 -1
  139. package/dist/engagement/chat/react/use-chat-stream.js +4 -2
  140. package/dist/engagement/chat/react/use-chat-stream.js.map +1 -1
  141. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  142. package/dist/engagement/chat/router/index.js +2 -1
  143. package/dist/engagement/chat/router/index.js.map +1 -1
  144. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  145. package/dist/engagement/chat/service/chat.service.js +22 -11
  146. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  147. package/dist/engagement/notifications/__tests__/notifications.service.test.js +4 -3
  148. package/dist/engagement/notifications/__tests__/notifications.service.test.js.map +1 -1
  149. package/dist/engagement/notifications/contract/index.d.ts +24 -2
  150. package/dist/engagement/notifications/contract/index.d.ts.map +1 -1
  151. package/dist/engagement/notifications/contract/index.js +10 -1
  152. package/dist/engagement/notifications/contract/index.js.map +1 -1
  153. package/dist/engagement/notifications/index.d.ts +1 -1
  154. package/dist/engagement/notifications/index.d.ts.map +1 -1
  155. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  156. package/dist/engagement/notifications/plugin.js +6 -3
  157. package/dist/engagement/notifications/plugin.js.map +1 -1
  158. package/dist/engagement/notifications/router/index.d.ts +4 -1
  159. package/dist/engagement/notifications/router/index.d.ts.map +1 -1
  160. package/dist/engagement/notifications/router/index.js +15 -6
  161. package/dist/engagement/notifications/router/index.js.map +1 -1
  162. package/dist/engagement/notifications/service/notifications.service.d.ts +6 -13
  163. package/dist/engagement/notifications/service/notifications.service.d.ts.map +1 -1
  164. package/dist/engagement/notifications/service/notifications.service.js +6 -14
  165. package/dist/engagement/notifications/service/notifications.service.js.map +1 -1
  166. package/dist/iam/__tests__/iam.service.test.js +14 -9
  167. package/dist/iam/__tests__/iam.service.test.js.map +1 -1
  168. package/dist/iam/plugin.d.ts.map +1 -1
  169. package/dist/iam/plugin.js +4 -2
  170. package/dist/iam/plugin.js.map +1 -1
  171. package/dist/iam/seed/seed-default-roles.d.ts.map +1 -1
  172. package/dist/iam/seed/seed-default-roles.js +2 -1
  173. package/dist/iam/seed/seed-default-roles.js.map +1 -1
  174. package/dist/iam/service/iam.service.d.ts +19 -17
  175. package/dist/iam/service/iam.service.d.ts.map +1 -1
  176. package/dist/iam/service/iam.service.js +68 -34
  177. package/dist/iam/service/iam.service.js.map +1 -1
  178. package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
  179. package/dist/pam/identity/admin-user-directory.js +18 -9
  180. package/dist/pam/identity/admin-user-directory.js.map +1 -1
  181. package/dist/pam/identity/router/index.d.ts.map +1 -1
  182. package/dist/pam/identity/router/index.js +4 -2
  183. package/dist/pam/identity/router/index.js.map +1 -1
  184. package/dist/pam/identity/service/identity.service.d.ts +24 -2
  185. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  186. package/dist/pam/identity/service/identity.service.js +51 -19
  187. package/dist/pam/identity/service/identity.service.js.map +1 -1
  188. package/dist/pam/identity/service/login-enforcement.service.d.ts +3 -3
  189. package/dist/pam/identity/service/login-enforcement.service.d.ts.map +1 -1
  190. package/dist/pam/identity/service/login-enforcement.service.js.map +1 -1
  191. package/dist/pam/identity/service/session.service.d.ts +5 -3
  192. package/dist/pam/identity/service/session.service.d.ts.map +1 -1
  193. package/dist/pam/identity/service/session.service.js +3 -3
  194. package/dist/pam/identity/service/session.service.js.map +1 -1
  195. package/dist/pam/player-management/__tests__/kyc-status-writer.test.js +2 -1
  196. package/dist/pam/player-management/__tests__/kyc-status-writer.test.js.map +1 -1
  197. package/dist/pam/player-management/__tests__/player.router.test.js +2 -2
  198. package/dist/pam/player-management/__tests__/player.router.test.js.map +1 -1
  199. package/dist/pam/player-management/__tests__/player.service.test.js +2 -1
  200. package/dist/pam/player-management/__tests__/player.service.test.js.map +1 -1
  201. package/dist/pam/player-management/contract/index.d.ts +10 -10
  202. package/dist/pam/player-management/router/index.d.ts +8 -8
  203. package/dist/pam/player-management/service/kyc-status-writer.d.ts.map +1 -1
  204. package/dist/pam/player-management/service/kyc-status-writer.js +2 -1
  205. package/dist/pam/player-management/service/kyc-status-writer.js.map +1 -1
  206. package/dist/pam/player-management/service/player.service.d.ts +15 -15
  207. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  208. package/dist/pam/player-management/service/player.service.js +15 -12
  209. package/dist/pam/player-management/service/player.service.js.map +1 -1
  210. package/dist/pam/player-note/schema/index.d.ts +4 -4
  211. package/dist/pam/player-note/schema/index.js +6 -6
  212. package/dist/pam/player-note/schema/index.js.map +1 -1
  213. package/dist/pam/player-note/service/player-note.service.d.ts +11 -3
  214. package/dist/pam/player-note/service/player-note.service.d.ts.map +1 -1
  215. package/dist/pam/player-note/service/player-note.service.js +1 -1
  216. package/dist/pam/player-note/service/player-note.service.js.map +1 -1
  217. package/dist/pam/profile/__tests__/profile.service.test.js +2 -1
  218. package/dist/pam/profile/__tests__/profile.service.test.js.map +1 -1
  219. package/dist/pam/profile/contract/index.d.ts +4 -4
  220. package/dist/pam/profile/react/profile.d.ts +6 -7
  221. package/dist/pam/profile/react/profile.d.ts.map +1 -1
  222. package/dist/pam/profile/react/profile.js.map +1 -1
  223. package/dist/pam/profile/router/index.d.ts +4 -4
  224. package/dist/pam/profile/service/profile.service.d.ts +4 -4
  225. package/dist/pam/profile/service/profile.service.d.ts.map +1 -1
  226. package/dist/pam/profile/service/profile.service.js +2 -1
  227. package/dist/pam/profile/service/profile.service.js.map +1 -1
  228. package/dist/pam/shared/headers-mapper.d.ts.map +1 -1
  229. package/dist/pam/shared/headers-mapper.js +2 -1
  230. package/dist/pam/shared/headers-mapper.js.map +1 -1
  231. package/dist/pam/shared/player-mapper.d.ts +17 -2
  232. package/dist/pam/shared/player-mapper.d.ts.map +1 -1
  233. package/dist/pam/shared/player-mapper.js +2 -2
  234. package/dist/pam/shared/player-mapper.js.map +1 -1
  235. package/dist/pam/tag/__tests__/get-active-tag-keys.test.js +2 -1
  236. package/dist/pam/tag/__tests__/get-active-tag-keys.test.js.map +1 -1
  237. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js +19 -18
  238. package/dist/pam/tag/__tests__/tag-evaluation.service.test.js.map +1 -1
  239. package/dist/pam/tag/__tests__/tag-mappers.test.js +6 -6
  240. package/dist/pam/tag/__tests__/tag-mappers.test.js.map +1 -1
  241. package/dist/pam/tag/__tests__/tag-rule.service.test.js +14 -14
  242. package/dist/pam/tag/__tests__/tag-rule.service.test.js.map +1 -1
  243. package/dist/pam/tag/__tests__/tag.router.test.d.ts +2 -0
  244. package/dist/pam/tag/__tests__/tag.router.test.d.ts.map +1 -0
  245. package/dist/pam/tag/__tests__/tag.router.test.js +38 -0
  246. package/dist/pam/tag/__tests__/tag.router.test.js.map +1 -0
  247. package/dist/pam/tag/contract/index.d.ts +3 -3
  248. package/dist/pam/tag/drizzle/migrations/0001_neat_iron_monger.sql +2 -0
  249. package/dist/pam/tag/drizzle/migrations/meta/0001_snapshot.json +295 -0
  250. package/dist/pam/tag/drizzle/migrations/meta/_journal.json +7 -0
  251. package/dist/pam/tag/router/index.d.ts +3 -3
  252. package/dist/pam/tag/schema/index.d.ts +16 -16
  253. package/dist/pam/tag/schema/index.d.ts.map +1 -1
  254. package/dist/pam/tag/schema/index.js +19 -19
  255. package/dist/pam/tag/schema/index.js.map +1 -1
  256. package/dist/pam/tag/seed/data/default-tag-rules.js +6 -6
  257. package/dist/pam/tag/seed/data/default-tag-rules.js.map +1 -1
  258. package/dist/pam/tag/seed/seed-default-tag-rules.d.ts.map +1 -1
  259. package/dist/pam/tag/seed/seed-default-tag-rules.js +5 -3
  260. package/dist/pam/tag/seed/seed-default-tag-rules.js.map +1 -1
  261. package/dist/pam/tag/service/tag-evaluation.service.d.ts.map +1 -1
  262. package/dist/pam/tag/service/tag-evaluation.service.js +32 -18
  263. package/dist/pam/tag/service/tag-evaluation.service.js.map +1 -1
  264. package/dist/pam/tag/service/tag-mappers.d.ts +8 -2
  265. package/dist/pam/tag/service/tag-mappers.d.ts.map +1 -1
  266. package/dist/pam/tag/service/tag-mappers.js +3 -8
  267. package/dist/pam/tag/service/tag-mappers.js.map +1 -1
  268. package/dist/pam/tag/service/tag-rule.service.d.ts +34 -4
  269. package/dist/pam/tag/service/tag-rule.service.d.ts.map +1 -1
  270. package/dist/pam/tag/service/tag-rule.service.js +9 -15
  271. package/dist/pam/tag/service/tag-rule.service.js.map +1 -1
  272. package/dist/pam/tag/service/tag.service.d.ts +51 -8
  273. package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
  274. package/dist/pam/tag/service/tag.service.js +6 -11
  275. package/dist/pam/tag/service/tag.service.js.map +1 -1
  276. package/dist/react/context/api-client.d.ts.map +1 -1
  277. package/dist/react/context/api-client.js +14 -7
  278. package/dist/react/context/api-client.js.map +1 -1
  279. package/dist/react/hooks/use-event-stream.d.ts.map +1 -1
  280. package/dist/react/hooks/use-event-stream.js +6 -3
  281. package/dist/react/hooks/use-event-stream.js.map +1 -1
  282. package/dist/react/hooks/use-paginated-list.js +3 -3
  283. package/dist/react/hooks/use-paginated-list.js.map +1 -1
  284. package/dist/server/auth/admin-guard.d.ts +12 -0
  285. package/dist/server/auth/admin-guard.d.ts.map +1 -1
  286. package/dist/server/auth/admin-guard.js +14 -1
  287. package/dist/server/auth/admin-guard.js.map +1 -1
  288. package/dist/server/auth/auth.d.ts +9 -0
  289. package/dist/server/auth/auth.d.ts.map +1 -1
  290. package/dist/server/auth/auth.js +9 -1
  291. package/dist/server/auth/auth.js.map +1 -1
  292. package/dist/server/auth/permission-levels.d.ts.map +1 -1
  293. package/dist/server/auth/permission-levels.js +12 -6
  294. package/dist/server/auth/permission-levels.js.map +1 -1
  295. package/dist/server/db/drizzle.d.ts.map +1 -1
  296. package/dist/server/db/drizzle.js +2 -1
  297. package/dist/server/db/drizzle.js.map +1 -1
  298. package/dist/server/db/drizzle.service.d.ts.map +1 -1
  299. package/dist/server/db/drizzle.service.js +2 -1
  300. package/dist/server/db/drizzle.service.js.map +1 -1
  301. package/dist/server/db/index.d.ts +1 -1
  302. package/dist/server/db/index.d.ts.map +1 -1
  303. package/dist/server/db/index.js +1 -1
  304. package/dist/server/db/index.js.map +1 -1
  305. package/dist/server/db/migrate.d.ts.map +1 -1
  306. package/dist/server/db/migrate.js +2 -1
  307. package/dist/server/db/migrate.js.map +1 -1
  308. package/dist/server/db/outbox/__tests__/relay.test.js +4 -2
  309. package/dist/server/db/outbox/__tests__/relay.test.js.map +1 -1
  310. package/dist/server/db/outbox/relay.d.ts +15 -0
  311. package/dist/server/db/outbox/relay.d.ts.map +1 -1
  312. package/dist/server/db/outbox/relay.js +21 -14
  313. package/dist/server/db/outbox/relay.js.map +1 -1
  314. package/dist/server/db/query-helpers.d.ts +2 -0
  315. package/dist/server/db/query-helpers.d.ts.map +1 -1
  316. package/dist/server/db/query-helpers.js +28 -1
  317. package/dist/server/db/query-helpers.js.map +1 -1
  318. package/dist/server/kernel/__tests__/event-bus.test.js +10 -7
  319. package/dist/server/kernel/__tests__/event-bus.test.js.map +1 -1
  320. package/dist/server/kernel/__tests__/job-queue.test.js +5 -2
  321. package/dist/server/kernel/__tests__/job-queue.test.js.map +1 -1
  322. package/dist/server/kernel/__tests__/rate-limiter.test.js +10 -5
  323. package/dist/server/kernel/__tests__/rate-limiter.test.js.map +1 -1
  324. package/dist/server/kernel/__tests__/redis-cache.test.js +2 -1
  325. package/dist/server/kernel/__tests__/redis-cache.test.js.map +1 -1
  326. package/dist/server/kernel/bullmq-job-queue.d.ts +12 -0
  327. package/dist/server/kernel/bullmq-job-queue.d.ts.map +1 -1
  328. package/dist/server/kernel/bullmq-job-queue.js +21 -4
  329. package/dist/server/kernel/bullmq-job-queue.js.map +1 -1
  330. package/dist/server/kernel/cache.d.ts.map +1 -1
  331. package/dist/server/kernel/cache.js +14 -7
  332. package/dist/server/kernel/cache.js.map +1 -1
  333. package/dist/server/kernel/container.d.ts +10 -0
  334. package/dist/server/kernel/container.d.ts.map +1 -1
  335. package/dist/server/kernel/container.js +12 -1
  336. package/dist/server/kernel/container.js.map +1 -1
  337. package/dist/server/kernel/event-bus.d.ts +9 -0
  338. package/dist/server/kernel/event-bus.d.ts.map +1 -1
  339. package/dist/server/kernel/event-bus.js +9 -1
  340. package/dist/server/kernel/event-bus.js.map +1 -1
  341. package/dist/server/kernel/event-stream.d.ts.map +1 -1
  342. package/dist/server/kernel/event-stream.js +2 -1
  343. package/dist/server/kernel/event-stream.js.map +1 -1
  344. package/dist/server/kernel/job-queue.d.ts +12 -0
  345. package/dist/server/kernel/job-queue.d.ts.map +1 -1
  346. package/dist/server/kernel/job-queue.js +38 -15
  347. package/dist/server/kernel/job-queue.js.map +1 -1
  348. package/dist/server/kernel/ownership.d.ts.map +1 -1
  349. package/dist/server/kernel/ownership.js +2 -1
  350. package/dist/server/kernel/ownership.js.map +1 -1
  351. package/dist/server/kernel/platform-config-loader.d.ts.map +1 -1
  352. package/dist/server/kernel/platform-config-loader.js +34 -16
  353. package/dist/server/kernel/platform-config-loader.js.map +1 -1
  354. package/dist/server/kernel/rate-limiter.d.ts.map +1 -1
  355. package/dist/server/kernel/rate-limiter.js +6 -3
  356. package/dist/server/kernel/rate-limiter.js.map +1 -1
  357. package/dist/server/kernel/realtime-transport.d.ts.map +1 -1
  358. package/dist/server/kernel/realtime-transport.js +10 -5
  359. package/dist/server/kernel/realtime-transport.js.map +1 -1
  360. package/dist/server/kernel/redis-cache.d.ts.map +1 -1
  361. package/dist/server/kernel/redis-cache.js +10 -5
  362. package/dist/server/kernel/redis-cache.js.map +1 -1
  363. package/dist/server/kernel/redis-rate-limiter.d.ts +11 -0
  364. package/dist/server/kernel/redis-rate-limiter.d.ts.map +1 -1
  365. package/dist/server/kernel/redis-rate-limiter.js +13 -1
  366. package/dist/server/kernel/redis-rate-limiter.js.map +1 -1
  367. package/dist/server/kernel/serialize-row.d.ts.map +1 -1
  368. package/dist/server/kernel/serialize-row.js +4 -2
  369. package/dist/server/kernel/serialize-row.js.map +1 -1
  370. package/dist/server/plugin-host/load-extensions.js +2 -1
  371. package/dist/server/plugin-host/load-extensions.js.map +1 -1
  372. package/dist/server/plugin-host/load-plugins.d.ts.map +1 -1
  373. package/dist/server/plugin-host/load-plugins.js +4 -2
  374. package/dist/server/plugin-host/load-plugins.js.map +1 -1
  375. package/dist/server/plugin-host/service-manifest.d.ts.map +1 -1
  376. package/dist/server/plugin-host/service-manifest.js +4 -2
  377. package/dist/server/plugin-host/service-manifest.js.map +1 -1
  378. package/dist/server/runtime/create-app.d.ts +12 -0
  379. package/dist/server/runtime/create-app.d.ts.map +1 -1
  380. package/dist/server/runtime/create-app.js +27 -6
  381. package/dist/server/runtime/create-app.js.map +1 -1
  382. package/dist/wallet/__tests__/admin-reporting.test.js +2 -2
  383. package/dist/wallet/__tests__/admin-reporting.test.js.map +1 -1
  384. package/dist/wallet/__tests__/wallet-auto-rule.router.test.js +5 -5
  385. package/dist/wallet/__tests__/wallet-auto-rule.router.test.js.map +1 -1
  386. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js +45 -34
  387. package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js.map +1 -1
  388. package/dist/wallet/__tests__/wallet-commands.service.test.js +54 -37
  389. package/dist/wallet/__tests__/wallet-commands.service.test.js.map +1 -1
  390. package/dist/wallet/__tests__/wallet-kyc-gate.test.js +5 -5
  391. package/dist/wallet/__tests__/wallet-kyc-gate.test.js.map +1 -1
  392. package/dist/wallet/__tests__/wallet.rate-limit.test.js +2 -2
  393. package/dist/wallet/__tests__/wallet.rate-limit.test.js.map +1 -1
  394. package/dist/wallet/__tests__/wallet.service.test.js +62 -34
  395. package/dist/wallet/__tests__/wallet.service.test.js.map +1 -1
  396. package/dist/wallet/adapters/mock/mock-payment-adapter.d.ts +2 -2
  397. package/dist/wallet/adapters/wallet-reader.service.d.ts +1 -1
  398. package/dist/wallet/adapters/wallet-reader.service.js +1 -1
  399. package/dist/wallet/adapters/wallet-reader.service.js.map +1 -1
  400. package/dist/wallet/admin-reporting.d.ts +4 -4
  401. package/dist/wallet/admin-reporting.d.ts.map +1 -1
  402. package/dist/wallet/admin-reporting.js +8 -8
  403. package/dist/wallet/admin-reporting.js.map +1 -1
  404. package/dist/wallet/contract/index.d.ts +20 -20
  405. package/dist/wallet/contract/index.d.ts.map +1 -1
  406. package/dist/wallet/contract/index.js +14 -10
  407. package/dist/wallet/contract/index.js.map +1 -1
  408. package/dist/wallet/drizzle/migrations/0001_redundant_micromacro.sql +4 -0
  409. package/dist/wallet/drizzle/migrations/meta/0001_snapshot.json +397 -0
  410. package/dist/wallet/drizzle/migrations/meta/_journal.json +7 -0
  411. package/dist/wallet/plugin.d.ts.map +1 -1
  412. package/dist/wallet/plugin.js +5 -1
  413. package/dist/wallet/plugin.js.map +1 -1
  414. package/dist/wallet/router/index.d.ts +11 -11
  415. package/dist/wallet/schema/index.js +3 -3
  416. package/dist/wallet/schema/index.js.map +1 -1
  417. package/dist/wallet/service/wallet-commands.service.d.ts +1 -0
  418. package/dist/wallet/service/wallet-commands.service.d.ts.map +1 -1
  419. package/dist/wallet/service/wallet-commands.service.js +32 -24
  420. package/dist/wallet/service/wallet-commands.service.js.map +1 -1
  421. package/dist/wallet/service/wallet.service.d.ts +46 -18
  422. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  423. package/dist/wallet/service/wallet.service.js +152 -74
  424. package/dist/wallet/service/wallet.service.js.map +1 -1
  425. package/oxlint/oxlintrc.json +19 -3
  426. package/package.json +1 -1
  427. package/turbo-generators/src/config.ts +18 -6
@@ -1,11 +1,20 @@
1
- import { pageToOffset } from '@openora/core/server';
2
- import { and, eq, or, gt, gte, lte, isNull, desc, sql } from 'drizzle-orm';
1
+ import { pageToOffset, moneyToNumber, mapConcurrent } from '@openora/core/server';
2
+ import { and, eq, or, gt, gte, lte, isNull, inArray, desc, sql } from 'drizzle-orm';
3
3
  import { userLimit, rgFlag, rgExclusion } from '../schema/index.js';
4
4
  import { wallet, walletTransaction } from '@openora/core/wallet/schema';
5
5
  import { gameRound } from '@openora/core/casino/schema/gaming';
6
6
  import { session } from '@openora/core/pam/schema/identity';
7
7
  import { periodWindow, isAtThreshold, thresholdPct } from './rg-eval.js';
8
+ // The recompute trigger carried on the enqueued job - which upstream event fired.
9
+ export const RG_EVAL_TRIGGERS = [
10
+ 'wallet.deposit.completed',
11
+ 'gaming.round.ended',
12
+ 'rg.exclusion.login_blocked',
13
+ ];
8
14
  const SESSION_LIMIT = { type: 'session', period: 'session' };
15
+ // Cap in-flight flag writes per sweep so a large session-limit population can't exhaust the
16
+ // shared pg pool. ponytail: fixed cap; raise only if a single sweep can't keep up.
17
+ const SWEEP_CONCURRENCY = 10;
9
18
  export class RgMonitoringService {
10
19
  drizzle;
11
20
  directory;
@@ -33,16 +42,21 @@ export class RgMonitoringService {
33
42
  .from(userLimit)
34
43
  .where(eq(userLimit.userId, userId));
35
44
  for (const limit of limits) {
36
- if (limit.period === 'session' || limit.type === 'session')
45
+ // Money-type limits only (deposit/wager/loss); the session-type limit is handled by sweep().
46
+ if (limit.period === 'session' || limit.type === 'session' || limit.amount === null) {
37
47
  continue;
48
+ }
49
+ const limitAmount = limit.amount;
38
50
  const { from } = periodWindow(limit.period, now);
39
- const actual = await this.spendFor(userId, limit.type, from, now);
40
- if (isAtThreshold(actual, limit.amount)) {
51
+ const actualAmount = await this.spendFor(userId, limit.type, from, now);
52
+ // Threshold comparison is a review-flag decision, not a ledger write - moneyToNumber
53
+ // is the documented single conversion point (see the helper's own doc comment).
54
+ if (isAtThreshold(moneyToNumber(actualAmount), moneyToNumber(limitAmount))) {
41
55
  await this.raiseFlag(userId, 'limit_threshold', limit.type, {
42
- actual,
43
- limit: limit.amount,
56
+ actual: actualAmount,
57
+ limit: limitAmount,
44
58
  period: limit.period,
45
- pct: thresholdPct(actual, limit.amount),
59
+ pct: thresholdPct(moneyToNumber(actualAmount), moneyToNumber(limitAmount)),
46
60
  });
47
61
  }
48
62
  else {
@@ -59,41 +73,55 @@ export class RgMonitoringService {
59
73
  .select()
60
74
  .from(userLimit)
61
75
  .where(and(eq(userLimit.type, SESSION_LIMIT.type), eq(userLimit.period, SESSION_LIMIT.period)));
62
- for (const limit of sessionLimits) {
63
- const [longest] = await this.drizzle.db
64
- .select({ createdAt: session.createdAt })
76
+ const userIds = sessionLimits.map((l) => l.userId);
77
+ const activeSessions = userIds.length
78
+ ? await this.drizzle.db
79
+ .select({ userId: session.userId, createdAt: session.createdAt })
65
80
  .from(session)
66
- .where(and(eq(session.userId, limit.userId), gt(session.expiresAt, now)))
67
- .orderBy(session.createdAt)
68
- .limit(1);
69
- const elapsedMinutes = longest ? (now.getTime() - longest.createdAt.getTime()) / 60000 : 0;
70
- if (longest && isAtThreshold(elapsedMinutes, limit.amount)) {
71
- await this.raiseFlag(limit.userId, 'session_time', null, {
81
+ .where(and(inArray(session.userId, userIds), gt(session.expiresAt, now)))
82
+ : [];
83
+ const earliestByUser = new Map();
84
+ for (const s of activeSessions) {
85
+ const current = earliestByUser.get(s.userId);
86
+ if (!current || s.createdAt < current) {
87
+ earliestByUser.set(s.userId, s.createdAt);
88
+ }
89
+ }
90
+ const pending = sessionLimits.filter((limit) => limit.minutes !== null);
91
+ await mapConcurrent(pending, SWEEP_CONCURRENCY, (limit) => {
92
+ const limitMinutes = limit.minutes;
93
+ const longest = earliestByUser.get(limit.userId) ?? null;
94
+ const elapsedMinutes = longest ? (now.getTime() - longest.getTime()) / 60000 : 0;
95
+ if (longest && isAtThreshold(elapsedMinutes, limitMinutes)) {
96
+ return this.raiseFlag(limit.userId, 'session_time', null, {
72
97
  sessionMinutes: elapsedMinutes,
73
- limitMinutes: limit.amount,
74
- pct: thresholdPct(elapsedMinutes, limit.amount),
98
+ limitMinutes,
99
+ pct: thresholdPct(elapsedMinutes, limitMinutes),
75
100
  });
76
101
  }
77
- else {
78
- await this.clearFlag(limit.userId, 'session_time', null);
79
- }
80
- }
102
+ return this.clearFlag(limit.userId, 'session_time', null);
103
+ });
81
104
  }
82
105
  async listFlags(filters) {
83
106
  const db = this.drizzle.db;
84
107
  const { page, limit, flagType, limitType, status, fromDate, toDate } = filters;
85
108
  const offset = pageToOffset(page, limit);
86
109
  const conditions = [];
87
- if (flagType)
110
+ if (flagType) {
88
111
  conditions.push(eq(rgFlag.flagType, flagType));
89
- if (limitType)
112
+ }
113
+ if (limitType) {
90
114
  conditions.push(eq(rgFlag.limitType, limitType));
91
- if (status)
115
+ }
116
+ if (status) {
92
117
  conditions.push(eq(rgFlag.status, status));
93
- if (fromDate)
118
+ }
119
+ if (fromDate) {
94
120
  conditions.push(gte(rgFlag.flaggedAt, new Date(fromDate)));
95
- if (toDate)
121
+ }
122
+ if (toDate) {
96
123
  conditions.push(lte(rgFlag.flaggedAt, new Date(toDate)));
124
+ }
97
125
  const where = conditions.length > 0 ? and(...conditions) : undefined;
98
126
  const [rows, countResult] = await Promise.all([
99
127
  db
@@ -127,24 +155,27 @@ export class RgMonitoringService {
127
155
  return { items, total: countResult[0]?.count ?? 0, page, limit };
128
156
  }
129
157
  async spendFor(userId, type, from, to) {
130
- if (type === 'deposit')
158
+ if (type === 'deposit') {
131
159
  return this.depositsSum(userId, from, to);
160
+ }
132
161
  return this.betsSum(userId, from, to);
133
162
  }
163
+ // Decimal string, matching userLimit.amount (same unit as walletTransaction.amount).
134
164
  async depositsSum(userId, from, to) {
135
165
  const [row] = await this.drizzle.db
136
166
  .select({ total: sql `coalesce(sum(${walletTransaction.amount}), 0)` })
137
167
  .from(walletTransaction)
138
168
  .innerJoin(wallet, eq(wallet.id, walletTransaction.walletId))
139
169
  .where(and(eq(wallet.userId, userId), eq(walletTransaction.type, 'deposit'), eq(walletTransaction.status, 'completed'), gte(walletTransaction.createdAt, from), lte(walletTransaction.createdAt, to)));
140
- return Number(row?.total ?? 0);
170
+ return row?.total ?? '0';
141
171
  }
172
+ // Decimal string, matching userLimit.amount (same unit as gameRound.betAmount).
142
173
  async betsSum(userId, from, to) {
143
174
  const [rounds] = await this.drizzle.db
144
175
  .select({ total: sql `coalesce(sum(${gameRound.betAmount}), 0)` })
145
176
  .from(gameRound)
146
177
  .where(and(eq(gameRound.userId, userId), gte(gameRound.startedAt, from), lte(gameRound.startedAt, to)));
147
- return Number(rounds?.total ?? 0);
178
+ return rounds?.total ?? '0';
148
179
  }
149
180
  async raiseFlag(userId, flagType, limitType, detail) {
150
181
  const [existing] = await this.drizzle.db
@@ -1 +1 @@
1
- {"version":3,"file":"rg-monitoring.service.js","sourceRoot":"","sources":["../../../src/compliance/service/rg-monitoring.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rg-monitoring.service.js","sourceRoot":"","sources":["../../../src/compliance/service/rg-monitoring.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DrizzleService, type EventBus } from '@openora/core/server';
2
- import type { LoginEnforcementPort, SendEmailPort, AdminUserDirectory } from '@openora/core/contracts';
2
+ import type { LoginEnforcementPort, SendEmailPort, AdminUserDirectory, User } from '@openora/core/contracts';
3
3
  import type { Limit, RgExclusion, SetPlayerLimitInput, ActivateCoolingOffInput, ActivateSelfExclusionInput, LiftSelfExclusionInput, RgSection } from '../contract/index.js';
4
4
  export declare const ExclusionNotFoundError: new (id: string) => Error;
5
5
  export declare const ActiveExclusionError: new () => Error;
@@ -12,6 +12,15 @@ export type RgServiceDeps = {
12
12
  email?: SendEmailPort | null;
13
13
  directory?: AdminUserDirectory | null;
14
14
  };
15
+ /**
16
+ * Owns player-facing and admin responsible-gambling controls: deposit/session
17
+ * limits, cooling-off, and self-exclusion. Every mutation that changes the set
18
+ * of active exclusions ends by recomputing login enforcement from scratch
19
+ * (`syncEnforcement`) rather than patching it incrementally, so a lift/expiry
20
+ * of one exclusion can never leave a stale block from another. Precedence:
21
+ * an active self-exclusion always wins with an indefinite block; otherwise
22
+ * the longest-expiring active cooling-off; otherwise unblocked.
23
+ */
15
24
  export declare class RgService {
16
25
  private readonly drizzle;
17
26
  private readonly events;
@@ -19,11 +28,24 @@ export declare class RgService {
19
28
  private readonly email;
20
29
  private readonly directory;
21
30
  constructor(deps: RgServiceDeps);
22
- setPlayerLimit(userId: string, input: SetPlayerLimitInput, actorId: string): Promise<Limit>;
23
- activateCoolingOff(userId: string, input: ActivateCoolingOffInput, actorId: string): Promise<RgExclusion>;
24
- activateSelfExclusion(userId: string, input: ActivateSelfExclusionInput, actorId: string): Promise<RgExclusion>;
25
- liftSelfExclusion(userId: string, input: LiftSelfExclusionInput, actorId: string): Promise<RgExclusion>;
26
- getRgSection(userId: string): Promise<RgSection>;
31
+ setPlayerLimit(userId: User['id'], input: SetPlayerLimitInput, actorId: User['id']): Promise<Limit>;
32
+ activateCoolingOff(userId: User['id'], input: ActivateCoolingOffInput, actorId: User['id']): Promise<RgExclusion>;
33
+ /**
34
+ * `isPermanent: true` stores `expiresAt: null` - a permanent exclusion has
35
+ * no time-based lapse and can only ever be cleared by an explicit
36
+ * `liftSelfExclusion` (which itself rejects lifting a permanent one). Only
37
+ * one active self-exclusion may exist per player at a time.
38
+ */
39
+ activateSelfExclusion(userId: User['id'], input: ActivateSelfExclusionInput, actorId: User['id']): Promise<RgExclusion>;
40
+ /**
41
+ * A permanent self-exclusion (`isPermanent`/`expiresAt: null`) can never be
42
+ * lifted through this path (`PermanentExclusionLiftError`) - by design,
43
+ * there is no self-service or admin override. A fixed-term exclusion can
44
+ * only be lifted once its minimum period has actually elapsed
45
+ * (`ExclusionPeriodNotElapsedError` otherwise), even for an admin actor.
46
+ */
47
+ liftSelfExclusion(userId: User['id'], input: LiftSelfExclusionInput, actorId: User['id']): Promise<RgExclusion>;
48
+ getRgSection(userId: User['id']): Promise<RgSection>;
27
49
  expireLapsedCoolingOffs(): Promise<void>;
28
50
  private expireLapsedCoolingOff;
29
51
  private syncEnforcement;
@@ -1 +1 @@
1
- {"version":3,"file":"rg.service.d.ts","sourceRoot":"","sources":["../../../src/compliance/service/rg.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAKd,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAO9B,eAAO,MAAM,sBAAsB,2BAAiC,CAAC;AACrE,eAAO,MAAM,oBAAoB,iBAGhC,CAAC;AACF,eAAO,MAAM,2BAA2B,iBAGvC,CAAC;AACF,eAAO,MAAM,8BAA8B,iBAG1C,CAAC;AA2BF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAE1C,IAAI,EAAE,aAAa;IAQzB,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;IAqCX,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IAqCjB,qBAAqB,CACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IA0CjB,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,CAAC;IA2CjB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBhD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9C,OAAO,CAAC,sBAAsB;YAiBhB,eAAe;YAwBf,uBAAuB;YAqBvB,MAAM;CAUrB"}
1
+ {"version":3,"file":"rg.service.d.ts","sourceRoot":"","sources":["../../../src/compliance/service/rg.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAMd,KAAK,QAAQ,EACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,IAAI,EACL,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,SAAS,EACV,MAAM,sBAAsB,CAAC;AAO9B,eAAO,MAAM,sBAAsB,2BAAiC,CAAC;AACrE,eAAO,MAAM,oBAAoB,iBAGhC,CAAC;AACF,eAAO,MAAM,2BAA2B,iBAGvC,CAAC;AACF,eAAO,MAAM,8BAA8B,iBAG1C,CAAC;AAoBF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,QAAQ,CAAC;IACjB,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;gBAE1C,IAAI,EAAE,aAAa;IAQzB,cAAc,CAClB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,KAAK,CAAC;IA2CX,kBAAkB,CACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,WAAW,CAAC;IAwCvB;;;;;OAKG;IACG,qBAAqB,CACzB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,0BAA0B,EACjC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,WAAW,CAAC;IA6CvB;;;;;;OAMG;IACG,iBAAiB,CACrB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAClB,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAClB,OAAO,CAAC,WAAW,CAAC;IAoDjB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBpD,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9C,OAAO,CAAC,sBAAsB;YAiBhB,eAAe;YAwBf,uBAAuB;YAyBvB,MAAM;CAcrB"}
@@ -1,6 +1,7 @@
1
- import { createLogger, makeNotFoundError, makeConflictError, serializeRow, } from '@openora/core/server';
1
+ import { createLogger, findOneOrThrow, makeNotFoundError, makeConflictError, serializeRow, } from '@openora/core/server';
2
2
  import { and, eq, or, gt, lte, desc } from 'drizzle-orm';
3
3
  import { userLimit, rgExclusion } from '../schema/index.js';
4
+ import { LimitNotFoundError } from './compliance.service.js';
4
5
  const logger = createLogger('compliance-rg');
5
6
  export const ExclusionNotFoundError = makeNotFoundError('Exclusion');
6
7
  export const ActiveExclusionError = makeConflictError('ActiveExclusionError', 'An active exclusion of this kind already exists for this player');
@@ -13,20 +14,22 @@ function addMonths(from, months) {
13
14
  return d;
14
15
  }
15
16
  function toLimitDto(row) {
16
- return {
17
- id: row.id,
18
- userId: row.userId,
19
- type: row.type,
20
- amount: row.amount,
21
- period: row.period,
22
- createdAt: row.createdAt.toISOString(),
23
- };
17
+ return serializeRow(row, { dateFields: ['createdAt'] });
24
18
  }
25
19
  function toExclusionDto(row) {
26
20
  return serializeRow(row, {
27
21
  dateFields: ['startsAt', 'expiresAt', 'liftedAt', 'createdAt', 'updatedAt'],
28
22
  });
29
23
  }
24
+ /**
25
+ * Owns player-facing and admin responsible-gambling controls: deposit/session
26
+ * limits, cooling-off, and self-exclusion. Every mutation that changes the set
27
+ * of active exclusions ends by recomputing login enforcement from scratch
28
+ * (`syncEnforcement`) rather than patching it incrementally, so a lift/expiry
29
+ * of one exclusion can never leave a stale block from another. Precedence:
30
+ * an active self-exclusion always wins with an indefinite block; otherwise
31
+ * the longest-expiring active cooling-off; otherwise unblocked.
32
+ */
30
33
  export class RgService {
31
34
  drizzle;
32
35
  events;
@@ -42,18 +45,18 @@ export class RgService {
42
45
  }
43
46
  async setPlayerLimit(userId, input, actorId) {
44
47
  const [prior] = await this.drizzle.db
45
- .select({ amount: userLimit.amount })
48
+ .select({ amount: userLimit.amount, minutes: userLimit.minutes })
46
49
  .from(userLimit)
47
50
  .where(and(eq(userLimit.userId, userId), eq(userLimit.type, input.type), eq(userLimit.period, input.period)))
48
51
  .limit(1);
49
- const [row] = await this.drizzle.db
52
+ const row = findOneOrThrow(await this.drizzle.db
50
53
  .insert(userLimit)
51
54
  .values({ ...input, userId })
52
55
  .onConflictDoUpdate({
53
56
  target: [userLimit.userId, userLimit.type, userLimit.period],
54
- set: { amount: input.amount },
57
+ set: { amount: input.amount, minutes: input.minutes },
55
58
  })
56
- .returning();
59
+ .returning(), new LimitNotFoundError(userId));
57
60
  this.events.emit('rg.limit.set', {
58
61
  userId,
59
62
  actorId,
@@ -61,9 +64,12 @@ export class RgService {
61
64
  type: input.type,
62
65
  period: input.period,
63
66
  amount: input.amount,
67
+ minutes: input.minutes,
64
68
  previousAmount: prior?.amount ?? null,
69
+ previousMinutes: prior?.minutes ?? null,
65
70
  });
66
- await this.notify(userId, 'Your gambling limit was updated', `A ${input.period} ${input.type} limit of ${input.amount} is now active on your account.`);
71
+ const limitDescription = input.type === 'session' ? `${input.minutes} minutes` : input.amount;
72
+ await this.notify(userId, 'Your gambling limit was updated', `A ${input.period} ${input.type} limit of ${limitDescription} is now active on your account.`);
67
73
  return toLimitDto(row);
68
74
  }
69
75
  async activateCoolingOff(userId, input, actorId) {
@@ -72,19 +78,19 @@ export class RgService {
72
78
  const expiresAt = new Date(now.getTime() + input.durationHours * HOUR_MS);
73
79
  const row = await this.drizzle.db.transaction(async (tx) => {
74
80
  await this.expireLapsedCoolingOff(userId, tx, now);
75
- const [r] = await tx
81
+ const r = findOneOrThrow(await tx
76
82
  .insert(rgExclusion)
77
83
  .values({
78
84
  userId,
79
85
  kind: 'cooling_off',
80
86
  status: 'active',
81
87
  reason: input.reason,
82
- permanent: false,
88
+ isPermanent: false,
83
89
  startsAt: now,
84
90
  expiresAt,
85
91
  createdBy: actorId,
86
92
  })
87
- .returning();
93
+ .returning(), new ExclusionNotFoundError(userId));
88
94
  await this.syncEnforcement(userId, tx);
89
95
  return r;
90
96
  });
@@ -98,26 +104,32 @@ export class RgService {
98
104
  await this.notify(userId, 'Cooling-off period activated', `A cooling-off period is active on your account until ${expiresAt.toISOString()}.`);
99
105
  return toExclusionDto(row);
100
106
  }
107
+ /**
108
+ * `isPermanent: true` stores `expiresAt: null` - a permanent exclusion has
109
+ * no time-based lapse and can only ever be cleared by an explicit
110
+ * `liftSelfExclusion` (which itself rejects lifting a permanent one). Only
111
+ * one active self-exclusion may exist per player at a time.
112
+ */
101
113
  async activateSelfExclusion(userId, input, actorId) {
102
114
  await this.assertNoActiveExclusion(userId, 'self_exclusion');
103
115
  const now = new Date();
104
- const expiresAt = input.permanent || input.durationMonths === undefined
116
+ const expiresAt = input.isPermanent || input.durationMonths === undefined
105
117
  ? null
106
118
  : addMonths(now, input.durationMonths);
107
119
  const row = await this.drizzle.db.transaction(async (tx) => {
108
- const [r] = await tx
120
+ const r = findOneOrThrow(await tx
109
121
  .insert(rgExclusion)
110
122
  .values({
111
123
  userId,
112
124
  kind: 'self_exclusion',
113
125
  status: 'active',
114
126
  reason: input.reason,
115
- permanent: input.permanent,
127
+ isPermanent: input.isPermanent,
116
128
  startsAt: now,
117
129
  expiresAt,
118
130
  createdBy: actorId,
119
131
  })
120
- .returning();
132
+ .returning(), new ExclusionNotFoundError(userId));
121
133
  await this.syncEnforcement(userId, tx);
122
134
  return r;
123
135
  });
@@ -125,34 +137,44 @@ export class RgService {
125
137
  userId,
126
138
  actorId,
127
139
  exclusionId: row.id,
128
- permanent: input.permanent,
140
+ isPermanent: input.isPermanent,
129
141
  expiresAt: expiresAt ? expiresAt.toISOString() : null,
130
142
  reason: input.reason,
131
143
  });
132
- await this.notify(userId, 'Self-exclusion activated', input.permanent
133
- ? 'A permanent self-exclusion is now active on your account.'
134
- : `A self-exclusion is active on your account until at least ${expiresAt.toISOString()}.`);
144
+ await this.notify(userId, 'Self-exclusion activated', expiresAt
145
+ ? `A self-exclusion is active on your account until at least ${expiresAt.toISOString()}.`
146
+ : 'A permanent self-exclusion is now active on your account.');
135
147
  return toExclusionDto(row);
136
148
  }
149
+ /**
150
+ * A permanent self-exclusion (`isPermanent`/`expiresAt: null`) can never be
151
+ * lifted through this path (`PermanentExclusionLiftError`) - by design,
152
+ * there is no self-service or admin override. A fixed-term exclusion can
153
+ * only be lifted once its minimum period has actually elapsed
154
+ * (`ExclusionPeriodNotElapsedError` otherwise), even for an admin actor.
155
+ */
137
156
  async liftSelfExclusion(userId, input, actorId) {
138
157
  const [existing] = await this.drizzle.db
139
158
  .select()
140
159
  .from(rgExclusion)
141
160
  .where(and(eq(rgExclusion.userId, userId), eq(rgExclusion.kind, 'self_exclusion'), eq(rgExclusion.status, 'active')))
142
161
  .limit(1);
143
- if (!existing)
162
+ if (!existing) {
144
163
  throw new ExclusionNotFoundError(userId);
145
- if (existing.permanent || existing.expiresAt === null)
164
+ }
165
+ if (existing.isPermanent || existing.expiresAt === null) {
146
166
  throw new PermanentExclusionLiftError();
147
- if (new Date() < existing.expiresAt)
167
+ }
168
+ if (new Date() < existing.expiresAt) {
148
169
  throw new ExclusionPeriodNotElapsedError();
170
+ }
149
171
  const now = new Date();
150
172
  const row = await this.drizzle.db.transaction(async (tx) => {
151
- const [r] = await tx
173
+ const r = findOneOrThrow(await tx
152
174
  .update(rgExclusion)
153
175
  .set({ status: 'lifted', liftedAt: now, liftedReason: input.reason, liftedBy: actorId })
154
176
  .where(eq(rgExclusion.id, existing.id))
155
- .returning();
177
+ .returning(), new ExclusionNotFoundError(existing.id));
156
178
  // Recompute from what remains - a still-active cooling-off keeps its own block
157
179
  // rather than being cleared by this lift.
158
180
  await this.syncEnforcement(userId, tx);
@@ -236,26 +258,30 @@ export class RgService {
236
258
  ];
237
259
  // A lapsed-but-not-yet-swept cooling-off must not block a fresh one; a self-exclusion
238
260
  // has no time-based lapse (only an explicit lift clears it).
239
- if (kind === 'cooling_off')
261
+ if (kind === 'cooling_off') {
240
262
  conditions.push(gt(rgExclusion.expiresAt, now));
263
+ }
241
264
  const [existing] = await this.drizzle.db
242
265
  .select({ id: rgExclusion.id })
243
266
  .from(rgExclusion)
244
267
  .where(and(...conditions))
245
268
  .limit(1);
246
- if (existing)
269
+ if (existing) {
247
270
  throw new ActiveExclusionError();
271
+ }
248
272
  }
249
273
  // Best-effort player notification. Both the email port and the directory are optional
250
274
  // (guarded by c.has at wiring). A lookup/send failure must not fail an RG action that
251
275
  // already committed - log without PII (no email, no reason text) and move on.
252
276
  async notify(userId, subject, body) {
253
- if (!this.email || !this.directory)
277
+ if (!this.email || !this.directory) {
254
278
  return;
279
+ }
255
280
  try {
256
281
  const [summary] = await this.directory.lookupPlayers([userId]);
257
- if (!summary?.email)
282
+ if (!summary?.email) {
258
283
  return;
284
+ }
259
285
  await this.email.send({ to: summary.email, subject, body });
260
286
  }
261
287
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"rg.service.js","sourceRoot":"","sources":["../../../src/compliance/service/rg.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rg.service.js","sourceRoot":"","sources":["../../../src/compliance/service/rg.service.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export type AdminTxRow = {
4
4
  id: string;
5
5
  userId: string;
6
6
  type: WalletTransactionType;
7
- amount: number;
7
+ amount: string;
8
8
  currency: string;
9
9
  status: WalletTransactionStatus;
10
10
  rail: WalletRail | null;
@@ -27,13 +27,13 @@ export type AdminTxListOptions = {
27
27
  status?: WalletTransactionStatus;
28
28
  dateFrom?: Date;
29
29
  dateTo?: Date;
30
- amountMin?: number;
31
- amountMax?: number;
30
+ amountMin?: string;
31
+ amountMax?: string;
32
32
  };
33
33
  export type AdminWalletReporting = {
34
34
  totals(): Promise<{
35
- deposits: number;
36
- withdrawals: number;
35
+ deposits: string;
36
+ withdrawals: string;
37
37
  }>;
38
38
  listTransactions(opts: AdminTxListOptions): Promise<{
39
39
  rows: AdminTxRow[];
@@ -1,10 +1,10 @@
1
1
  import { type Token } from './token.js';
2
2
  export type PaymentAdapter = {
3
- processDeposit(amount: number, currency: string, metadata: Record<string, unknown>): Promise<{
3
+ processDeposit(amount: string, currency: string, metadata: Record<string, unknown>): Promise<{
4
4
  externalId: string;
5
5
  status: string;
6
6
  }>;
7
- processWithdrawal(amount: number, currency: string, metadata: Record<string, unknown>): Promise<{
7
+ processWithdrawal(amount: string, currency: string, metadata: Record<string, unknown>): Promise<{
8
8
  externalId: string;
9
9
  status: string;
10
10
  }>;
@@ -2,24 +2,24 @@ import type { WalletTransactionType } from '../schemas/wallet-tx.js';
2
2
  import { type Token } from './token.js';
3
3
  export type WalletDebitArgs = {
4
4
  userId: string;
5
- amount: number;
5
+ amount: string;
6
6
  type: WalletTransactionType;
7
7
  };
8
8
  export type WalletDebitOutcome = {
9
9
  ok: true;
10
- newBalance: number;
10
+ newBalance: string;
11
11
  } | {
12
12
  ok: false;
13
- available: number;
13
+ available: string;
14
14
  };
15
15
  export type WalletCreditArgs = {
16
16
  userId: string;
17
- amount: number;
17
+ amount: string;
18
18
  type: WalletTransactionType;
19
19
  };
20
20
  export type WalletCreditOutcome = {
21
21
  ok: true;
22
- newBalance: number;
22
+ newBalance: string;
23
23
  } | {
24
24
  ok: false;
25
25
  reason: string;
@@ -1,6 +1,6 @@
1
1
  export type WalletReader = {
2
- /** Sum of all completed deposits for a player in the wallet's decimal unit (same as wallet_transaction.amount). Used for high_roller evaluation. */
3
- getLifetimeDeposit(userId: string): Promise<number>;
2
+ /** Sum of all completed deposits for a player, as a decimal string (same as wallet_transaction.amount). Used for high_roller evaluation. */
3
+ getLifetimeDeposit(userId: string): Promise<string>;
4
4
  /** Count of completed withdrawals for a player within the last windowDays days. Used for high_risk evaluation. */
5
5
  getWithdrawalCountInWindow(userId: string, windowDays: number): Promise<number>;
6
6
  };